This patch isn't the good one, I send the fix here: http://lists.freedesktop.org/archives/dri-devel/2015-July/086568.html Regards, Benjamin 2015-07-16 3:13 GMT+02:00 Xinwei Kong <kong.kongxinwei@xxxxxxxxxxxxx>: > Thank you for Russel. > > It is Right, when this sti_tvout (component) finish executing component ".bind" > function while sti_hdmi or sti_hda is not registered. the bug will occur . > > this patch will prepare this bug by calling master .bind of sti_tvout after > sti_hdmi or sti_hda is register to finish binding sti_hdmi or sti_hda component, > however, it also slove to bring the "drm_dev" struct into the sti_hdmi or sti_hda. > > Thank you > Xinwei > > On 2015/7/15 21:17, Benjamin Gaignard wrote: >> Thanks a lot Russell, I have now understand where was my mistake. >> >> >> 2015-07-15 12:42 GMT+02:00 Russell King - ARM Linux <linux@xxxxxxxxxxxxxxxx>: >>> On Wed, Jul 15, 2015 at 12:19:01PM +0200, Benjamin Gaignard wrote: >>>> The build order in Makefile hasn't been change so the bug doesn't occur... >>>> >>>> In addition of taking care of not changing build order in Makefile, >>>> I would like to understand what is the expected behavior of component >>>> framework when >>>> master call component_bind_all() before any component_add() calls. >>>> >>>> Should component bind function be called in component_add() ? >>>> Is up to component to detect that master is already bounded ? >>>> >>>> Russell can you tell us what to do in this case ? >>> >>> I don't follow, and you certainly should never get into the situation >>> you're alluding to (where the master is already bound but a component >>> is not.) >>> >>> The way this should work is: >>> >>> - master and components register themselves into the component helper >>> in a random order. >>> - when the master registers, it gives the component helper a set of >>> matches which it uses to determine which components are required. >>> - when the component helper determines that all components and the >>> master have been registered, it calls the master bind function. >>> - the master bind function is responsible for the classical subsystem >>> initialisation, calling component_bind_all() to cause the individual >>> components bind() method to be called. >>> >>> So, you should never _ever_ be in the situation where initcall ordering >>> matters, or where the master is already bound but a component hasn't >>> registered. >>> >>> -- >>> FTTC broadband for 0.8mile line: currently at 10.5Mbps down 400kbps up >>> according to speedtest.net. >> >> >> > -- Benjamin Gaignard Graphic Working Group Linaro.org │ Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel