On 02/01/2016 07:11 AM, Liviu Dudau wrote: > On Fri, Jan 29, 2016 at 05:12:28PM -0500, Akshay Bhat wrote: >> >> >> On 01/28/2016 05:29 PM, Rob Clark wrote: >>> can't really say if that is the issue in this case, but these are the >>> symptoms you'd see if the kernel was built without some driver that >>> imx-drm depends on[1]. The kernel will only try to reprobe a driver >>> if some other driver has loaded since it last deferred (otherwise, it >>> would be pointless, you'd just -EPROBE_DEFER again). >>> >>> [1] which is a really annoying thing about devicetree.. there's no >>> good way to figure out which drivers need to be enabled in kernel >>> config.. >>> >>> BR, >>> -R >>> >> >> I agree a missing driver would show the symptoms I am seeing. However I have >> verified this is not the case by moving i2c above gpu in the makefile and >> keeping everything else the same. This results in the i2c mux driver init >> (pca9547) being called before the drm init and everything works fine in that >> case (indicates no missing driver). >> >> Also from the original log you can see that there are a lot of modules that >> are loaded after the drm driver does a probe defer, yet there is no entries >> in the bootlog for the drm driver being re-probed. In the next-20151202 >> kernel log you can see it being re-probed. This points to the drm probe >> deferral being broken. >> >> Thanks for your input, any other ideas are welcome. > > I think your problem is similar to what Tixy has found when testing HDLCD, > which also uses the components API. He has posted a patch here: > > http://www.spinics.net/lists/arm-kernel/msg477090.html > > Russell has added it to his branch, seems to be available in linux-next > as commit 57480484f9f7631738ef2. > > Best regards, > Liviu >
Liviu, I re-tested with next-20160201 which contains the above patch and still see the issue where the re-probe does not work. Thanks, Akshay dmesg | grep -i 'drm \| pca' [ 1.266320] [drm] Initialized drm 1.1.0 20060810 [ 1.437590] imx-drm display-subsystem: bound imx-ipuv3-crtc.2 (ops ipu_crtc_ops) [ 1.445237] imx-drm display-subsystem: bound imx-ipuv3-crtc.3 (ops ipu_crtc_ops) [ 1.452856] imx-drm display-subsystem: bound imx-ipuv3-crtc.6 (ops ipu_crtc_ops) [ 1.460453] imx-drm display-subsystem: bound imx-ipuv3-crtc.7 (ops ipu_crtc_ops) [ 1.468188] imx-drm display-subsystem: failed to bind 120000.hdmi (ops dw_hdmi_imx_ops): -517 [ 1.479742] imx-drm display-subsystem: master bind failed: -517 [ 2.169468] pca954x 0-0070: registered 8 multiplexed busses for I2C mux pca9547 [ 2.223390] pca954x 1-0070: registered 8 multiplexed busses for I2C mux pca9547 dmesg |head -n2 [ 0.000000] Booting Linux on physical CPU 0x0 [ 0.000000] Linux version 4.5.0-rc1-next-20160201-00007-g3c1226b (nodeax at timesysab) (gcc version 4.8.5 (Timesys 20150713) ) #168 SMP Mon Feb 1 13:12:04 EST 2016