On 10/19/2016 01:16 PM, Eugeniy Paltsev wrote: > ARC PGU driver starts crashing on initialization after > 'commit e12c2f645557 ("drm/i2c: adv7511: Convert to drm_bridge")' > This happenes because in "arcpgu_drm_hdmi_init" function we get pointer > of "drm_i2c_encoder_driver" structure, which doesn't exist after > adv7511 hdmi encoder interface changed from slave encoder to drm bridge. > So, when we call "encoder_init" function from this structure driver > crashes. > > Bootlog: > ------------------------------------->8-------------------------------- > [drm] Initialized drm 1.1.0 20060810 > arcpgu e0017000.pgu: arc_pgu ID: 0xabbabaab > arcpgu e0017000.pgu: assigned reserved memory node frame_buffer at 9e000000 > Path: (null) > CPU: 0 PID: 1 Comm: swapper Not tainted 4.8.0-00001-gb5642252fa01-dirty #8 > task: 9a058000 task.stack: 9a032000 > > [ECR ]: 0x00220100 => Invalid Read @ 0x00000004 by insn @ 0x803934e8 > [EFA ]: 0x00000004 > [BLINK ]: drm_atomic_helper_connector_dpms+0xa6/0x230 > [ERET ]: drm_atomic_helper_connector_dpms+0xa4/0x230 > [STAT32]: 0x00000846 : K DE E2 E1 > BTA: 0x8016d949 SP: 0x9a033e34 FP: 0x00000000 > LPS: 0x8036f6fc LPE: 0x8036f700 LPC: 0x00000000 > r00: 0x8063c118 r01: 0x805b98ac r02: 0x00000b11 > r03: 0x00000000 r04: 0x9a010f54 r05: 0x00000000 > r06: 0x00000001 r07: 0x00000000 r08: 0x00000028 > r09: 0x00000001 r10: 0x00000007 r11: 0x00000054 > r12: 0x720a3033 > > Stack Trace: > drm_atomic_helper_connector_dpms+0xa4/0x230 > arcpgu_drm_hdmi_init+0xbc/0x228 > arcpgu_probe+0x168/0x244 > platform_drv_probe+0x26/0x64 > really_probe+0x1f0/0x32c > __driver_attach+0xa8/0xd0 > bus_for_each_dev+0x3c/0x74 > bus_add_driver+0xc2/0x184 > driver_register+0x50/0xec > do_one_initcall+0x3a/0x120 > kernel_init_freeable+0x108/0x1a0 > ------------------------------------->8-------------------------------- > > Fix ARC PGU driver to be able work with drm bridge hdmi encoder > interface. The hdmi connector code isn't needed anymore as we expect > the adv7511 bridge driver to create/manage the connector. Tested-by: Ramiro Oliveira <Ramiro.Oliveira at synopsys.com>