On Tue, Jan 26, 2016 at 05:59:13PM +0000, Jon Medhurst (Tixy) wrote:
I believe I've found a problem with the component helpers and/or how drivers use them. I discovered this whilst trying to get ARM's HDLCD driver [1] working on 4.5-rc1, however I believe that code is following a pattern used by drivers already in 4.5 and the problem isn't specific to it. This is what I have observed...
Hmm, it all looks plausible, and I'm again left wondering how the code passed testing over the last year (I've been running this code for ages both on iMX6 and Dove, where deferred probing does happen.)
Your patch looks like the right thing to do, so I'll add it to the component tree shortly - it should end up in linux-next in a few days time.
Thanks.
On Tue, 2016-01-26 at 22:35 +0000, Russell King - ARM Linux wrote:
On Tue, Jan 26, 2016 at 05:59:13PM +0000, Jon Medhurst (Tixy) wrote:
I believe I've found a problem with the component helpers and/or how drivers use them. I discovered this whilst trying to get ARM's HDLCD driver [1] working on 4.5-rc1, however I believe that code is following a pattern used by drivers already in 4.5 and the problem isn't specific to it. This is what I have observed...
Hmm, it all looks plausible, and I'm again left wondering how the code passed testing over the last year (I've been running this code for ages both on iMX6 and Dove, where deferred probing does happen.)
It depends on the order of things. To go wrong, components must already be there before the master is added, then the master needs to defer probing from it's bind callback. So, components deferring won't trigger the issue, neither will master deferring before any components have been added.
Your patch looks like the right thing to do, so I'll add it to the component tree shortly - it should end up in linux-next in a few days time.
Thanks. I wasn't sure if that patch was correct as I hadn't looked at any of this code before this week.
On Wed, 2016-01-27 at 09:18 +0000, Jon Medhurst (Tixy) wrote:
On Tue, 2016-01-26 at 22:35 +0000, Russell King - ARM Linux wrote:
On Tue, Jan 26, 2016 at 05:59:13PM +0000, Jon Medhurst (Tixy) wrote:
I believe I've found a problem with the component helpers and/or how drivers use them. I discovered this whilst trying to get ARM's HDLCD driver [1] working on 4.5-rc1, however I believe that code is following a pattern used by drivers already in 4.5 and the problem isn't specific to it. This is what I have observed...
Hmm, it all looks plausible, and I'm again left wondering how the code passed testing over the last year (I've been running this code for ages both on iMX6 and Dove, where deferred probing does happen.)
It depends on the order of things. To go wrong, components must already be there before the master is added, then the master needs to defer probing from it's bind callback. So, components deferring won't trigger the issue,
Actually, looks like drm drivers for armada and imx will end up calling component_bind_all from their bind callpath, so if components return -EPROBE_DEFER from their bind function, then the master will bail out with that, triggering my failure scenario. Hmmm...
dri-devel@lists.freedesktop.org