Problem tryhing to bring up new LCD on OMAP Logic board
I'm using 2.6.31-rc5 from Kevin's PM branch (commit ID 70a1f2249bbe765f78cf5e220e4e3f539b41eb7f) and I'm trying to add in LCD panel support for our OMAP boards.
I've cloned drivers/video/lcd_omap3evm.c, and when I call into omapfb_main::omapfb_register_panel() it crashes with:
<4>Platform driver 'omapfb' needs updating - please use dev_pm_ops omapfb_probe:1829 pdev c03f0258
omap3logic: Registering platform driver
<4>Platform driver 'omap3logic_lcd' needs updating - please use dev_pm_ops
omap3logic_panel_probe:463 panel c0425de4 (name 15) omapfb_register_panel:1842
omapfb_do_probe:1673 pdev c03f0258 panel c0425de4 omapfb_do_probe:1697
<4>MUX: setup D28_34XX_DSS_PCLK (0xd80020d4): 0x0000 -> 0x0108 <4>MUX: setup D26_34XX_DSS_HSYNC (0xd80020d6): 0x0000 -> 0x0108 <4>MUX: setup D27_34XX_DSS_VSYNC (0xd80020d8): 0x0000 -> 0x0108 <4>MUX: setup E27_34XX_DSS_ACBIAS (0xd80020da): 0x0000 -> 0x0108 <4>MUX: setup AG22_34XX_DSS_D0 (0xd80020dc): 0x0000 -> 0x0108 <4>MUX: setup AH22_34XX_DSS_D1 (0xd80020de): 0x0000 -> 0x0108 <4>MUX: setup AG23_34XX_DSS_D2 (0xd80020e0): 0x0000 -> 0x0108 <4>MUX: setup AH23_34XX_DSS_D3 (0xd80020e2): 0x0000 -> 0x0108 <4>MUX: setup AG24_34XX_DSS_D4 (0xd80020e4): 0x0000 -> 0x0108 <4>MUX: setup AH24_34XX_DSS_D5 (0xd80020e6): 0x0000 -> 0x0108 <4>MUX: setup E26_34XX_DSS_D6 (0xd80020e8): 0x0000 -> 0x0108 <4>MUX: setup F28_34XX_DSS_D7 (0xd80020ea): 0x0000 -> 0x0108 <4>MUX: setup F27_34XX_DSS_D8 (0xd80020ec): 0x0000 -> 0x0108 <4>MUX: setup G26_34XX_DSS_D9 (0xd80020ee): 0x0000 -> 0x0108 <4>MUX: setup AD28_34XX_DSS_D10 (0xd80020f0): 0x0000 -> 0x0108 <4>MUX: setup AD27_34XX_DSS_D11 (0xd80020f2): 0x0000 -> 0x0108 <4>MUX: setup AB28_34XX_DSS_D12 (0xd80020f4): 0x0000 -> 0x0108 <4>MUX: setup AB27_34XX_DSS_D13 (0xd80020f6): 0x0000 -> 0x0108 <4>MUX: setup AA28_34XX_DSS_D14 (0xd80020f8): 0x0000 -> 0x0108 <4>MUX: setup AA27_34XX_DSS_D15 (0xd80020fa): 0x0000 -> 0x0108 <4>MUX: setup G26_34XX_DSS_D16 (0xd80020fc): 0x0000 -> 0x0108 <4>MUX: setup H27_34XX_DSS_D17 (0xd80020fe): 0x0000 -> 0x0108 <4>MUX: setup H26_34XX_DSS_D18 (0xd8002100): 0x0000 -> 0x0108 <4>MUX: setup H25_34XX_DSS_D19 (0xd8002102): 0x0000 -> 0x0108 <4>MUX: setup E28_34XX_DSS_D20 (0xd8002104): 0x0000 -> 0x0108 <4>MUX: setup J26_34XX_DSS_D21 (0xd8002106): 0x0000 -> 0x0108 <4>MUX: setup AC27_34XX_DSS_D22 (0xd8002108): 0x0000 -> 0x0108 <4>MUX: setup AC27_34XX_DSS_D23 (0xd800210a): 0x0000 -> 0x0108 <4>MUX: setup AD2_34XX_GPIO154 (0xd8002188): 0x0101 -> 0x0004 <4>MUX: setup AC1_34XX_GPIO155 (0xd800218a): 0x0101 -> 0x0004 <6>omapfb: configured for panel 15
omapfb_do_probe:1733
<6>omapfb: DISPC version 3.0 initialized omapfb_do_probe:1741
omapfb_do_probe:1745
planes_init:1540 region_cnt 1
<4>------------[ cut here ]------------
<4>WARNING: at kernel/mutex.c:207 __mutex_lock_slowpath+0xb8/0x240() <d>Modules linked in:
[<c0033444>] (unwind_backtrace+0x0/0xd4) from [<c005a02c>] (warn_slowpath_common+0x4c/0x68)
[<c005a02c>] (warn_slowpath_common+0x4c/0x68) from [<c02dc104>] (__mutex_lock_slowpath+0xb8/0x240)
[<c02dc104>] (__mutex_lock_slowpath+0xb8/0x240) from [<c02dc298>] (mutex_lock+0xc/0x1c)
[<c02dc298>] (mutex_lock+0xc/0x1c) from [<c01a417c>] (set_fb_fix +0x40/0xcc)
[<c01a417c>] (set_fb_fix+0x40/0xcc) from [<c01a4dc8>] (omapfb_do_probe +0x4d0/0x9d0)
[<c01a4dc8>] (omapfb_do_probe+0x4d0/0x9d0) from [<c01a7ef4>] (omap3logic_panel_probe+0x4c/0x6c)
[<c01a7ef4>] (omap3logic_panel_probe+0x4c/0x6c) from [<c01cbfe8>] (platform_drv_probe+0x1c/0x24)
[<c01cbfe8>] (platform_drv_probe+0x1c/0x24) from [<c01cb22c>] (driver_probe_device+0xb8/0x164)
[<c01cb22c>] (driver_probe_device+0xb8/0x164) from [<c01cb338>] (__driver_attach+0x60/0x84)
[<c01cb338>] (__driver_attach+0x60/0x84) from [<c01ca6b8>] (bus_for_each_dev+0x48/0x80)
[<c01ca6b8>] (bus_for_each_dev+0x48/0x80) from [<c01cac48>] (bus_add_driver+0xa0/0x224)
[<c01cac48>] (bus_add_driver+0xa0/0x224) from [<c01cb634>] (driver_register+0xac/0x134)
[<c01cb634>] (driver_register+0xac/0x134) from [<c002d2b0>] (do_one_initcall+0x50/0x17c)
[<c002d2b0>] (do_one_initcall+0x50/0x17c) from [<c000888c>] (kernel_init +0x88/0x100)
[<c000888c>] (kernel_init+0x88/0x100) from [<c002ece0>] (kernel_thread_exit+0x0/0x8)
I believe the problem is in set_fb_fix() (called from planes_init()) trying to pull the lock for fbi->mm_lock which is not initialized since register_framebuffer() has not yet been called (called after planes_init() is called).
Any ideas what I'm doing wrong?
Signature · 2 lines
Peter Barada <[email protected]> Logic Product Development, Inc.
Quoted 86 lines
I'm using 2.6.31-rc5 from Kevin's PM branch (commit ID
70a1f2249bbe765f78cf5e220e4e3f539b41eb7f) and I'm trying to add in LCD panel support for our OMAP boards.I've cloned
drivers/video/lcd_omap3evm.c, and when I call intoomapfb_main::omapfb_register_panel()it crashes with:<4>Platform driver 'omapfb' needs updating - please use
dev_pm_opsomapfb_probe:1829 pdevc03f0258
omap3logic: Registering platform driver
<4>Platform driver 'omap3logic_lcd' needs updating - please usedev_pm_ops
omap3logic_panel_probe:463 panelc0425de4(name 15) omapfb_register_panel:1842
omapfb_do_probe:1673 pdevc03f0258panelc0425de4omapfb_do_probe:1697
<4>MUX: setupD28_34XX_DSS_PCLK(0xd80020d4):0x0000->0x0108<4>MUX: setupD26_34XX_DSS_HSYNC(0xd80020d6):0x0000->0x0108<4>MUX: setupD27_34XX_DSS_VSYNC(0xd80020d8):0x0000->0x0108<4>MUX: setupE27_34XX_DSS_ACBIAS(0xd80020da):0x0000->0x0108<4>MUX: setupAG22_34XX_DSS_D0(0xd80020dc):0x0000->0x0108<4>MUX: setupAH22_34XX_DSS_D1(0xd80020de):0x0000->0x0108<4>MUX: setupAG23_34XX_DSS_D2(0xd80020e0):0x0000->0x0108<4>MUX: setupAH23_34XX_DSS_D3(0xd80020e2):0x0000->0x0108<4>MUX: setupAG24_34XX_DSS_D4(0xd80020e4):0x0000->0x0108<4>MUX: setupAH24_34XX_DSS_D5(0xd80020e6):0x0000->0x0108<4>MUX: setupE26_34XX_DSS_D6(0xd80020e8):0x0000->0x0108<4>MUX: setupF28_34XX_DSS_D7(0xd80020ea):0x0000->0x0108<4>MUX: setupF27_34XX_DSS_D8(0xd80020ec):0x0000->0x0108<4>MUX: setupG26_34XX_DSS_D9(0xd80020ee):0x0000->0x0108<4>MUX: setupAD28_34XX_DSS_D10(0xd80020f0):0x0000->0x0108<4>MUX: setupAD27_34XX_DSS_D11(0xd80020f2):0x0000->0x0108<4>MUX: setupAB28_34XX_DSS_D12(0xd80020f4):0x0000->0x0108<4>MUX: setupAB27_34XX_DSS_D13(0xd80020f6):0x0000->0x0108<4>MUX: setupAA28_34XX_DSS_D14(0xd80020f8):0x0000->0x0108<4>MUX: setupAA27_34XX_DSS_D15(0xd80020fa):0x0000->0x0108<4>MUX: setupG26_34XX_DSS_D16(0xd80020fc):0x0000->0x0108<4>MUX: setupH27_34XX_DSS_D17(0xd80020fe):0x0000->0x0108<4>MUX: setupH26_34XX_DSS_D18(0xd8002100):0x0000->0x0108<4>MUX: setupH25_34XX_DSS_D19(0xd8002102):0x0000->0x0108<4>MUX: setupE28_34XX_DSS_D20(0xd8002104):0x0000->0x0108<4>MUX: setupJ26_34XX_DSS_D21(0xd8002106):0x0000->0x0108<4>MUX: setupAC27_34XX_DSS_D22(0xd8002108):0x0000->0x0108<4>MUX: setupAC27_34XX_DSS_D23(0xd800210a):0x0000->0x0108<4>MUX: setupAD2_34XX_GPIO154(0xd8002188):0x0101->0x0004<4>MUX: setupAC1_34XX_GPIO155(0xd800218a):0x0101->0x0004<6>omapfb: configured for panel 15
omapfb_do_probe:1733
<6>omapfb: DISPC version 3.0 initialized omapfb_do_probe:1741
omapfb_do_probe:1745
planes_init:1540region_cnt1
<4>------------[ cut here ]------------
<4>WARNING: atkernel/mutex.c:207__mutex_lock_slowpath+0xb8/0x240() <d>Modules linked in:
[<c0033444>] (unwind_backtrace+0x0/0xd4) from [<c005a02c>] (warn_slowpath_common+0x4c/0x68)
[<c005a02c>] (warn_slowpath_common+0x4c/0x68) from [<c02dc104>] (__mutex_lock_slowpath+0xb8/0x240)
[<c02dc104>] (__mutex_lock_slowpath+0xb8/0x240) from [<c02dc298>] (mutex_lock+0xc/0x1c)
[<c02dc298>] (mutex_lock+0xc/0x1c) from [<c01a417c>] (set_fb_fix+0x40/0xcc)
[<c01a417c>] (set_fb_fix+0x40/0xcc) from [<c01a4dc8>] (omapfb_do_probe+0x4d0/0x9d0)
[<c01a4dc8>] (omapfb_do_probe+0x4d0/0x9d0) from [<c01a7ef4>] (omap3logic_panel_probe+0x4c/0x6c)
[<c01a7ef4>] (omap3logic_panel_probe+0x4c/0x6c) from [<c01cbfe8>] (platform_drv_probe+0x1c/0x24)
[<c01cbfe8>] (platform_drv_probe+0x1c/0x24) from [<c01cb22c>] (driver_probe_device+0xb8/0x164)
[<c01cb22c>] (driver_probe_device+0xb8/0x164) from [<c01cb338>] (__driver_attach+0x60/0x84)
[<c01cb338>] (__driver_attach+0x60/0x84) from [<c01ca6b8>] (bus_for_each_dev+0x48/0x80)
[<c01ca6b8>] (bus_for_each_dev+0x48/0x80) from [<c01cac48>] (bus_add_driver+0xa0/0x224)
[<c01cac48>] (bus_add_driver+0xa0/0x224) from [<c01cb634>] (driver_register+0xac/0x134)
[<c01cb634>] (driver_register+0xac/0x134) from [<c002d2b0>] (do_one_initcall+0x50/0x17c)
[<c002d2b0>] (do_one_initcall+0x50/0x17c) from [<c000888c>] (kernel_init+0x88/0x100)
[<c000888c>] (kernel_init+0x88/0x100) from [<c002ece0>] (kernel_thread_exit+0x0/0x8)
Quoted 7 lines
I believe the problem is in
set_fb_fix()(called fromplanes_init()) trying to pull the lock forfbi->mm_lockwhich is not initialized sinceregister_framebuffer()has not yet been called (called afterplanes_init()is called).Any ideas what I'm doing wrong?
Maybe this patch will help?
<http://patchwork.kernel.org/patch/42995/>
- Anand
Quoted 91 lines · Anand
Quoted 91 lines
I'm using 2.6.31-rc5 from Kevin's PM branch (commit ID
70a1f2249bbe765f78cf5e220e4e3f539b41eb7f) and I'm trying to add in LCD panel support for our OMAP boards.I've cloned
drivers/video/lcd_omap3evm.c, and when I call intoomapfb_main::omapfb_register_panel()it crashes with:<4>Platform driver 'omapfb' needs updating - please use
dev_pm_opsomapfb_probe:1829 pdevc03f0258
omap3logic: Registering platform driver
<4>Platform driver 'omap3logic_lcd' needs updating - please usedev_pm_ops
omap3logic_panel_probe:463 panelc0425de4(name 15) omapfb_register_panel:1842
omapfb_do_probe:1673 pdevc03f0258panelc0425de4omapfb_do_probe:1697
<4>MUX: setupD28_34XX_DSS_PCLK(0xd80020d4):0x0000->0x0108<4>MUX: setupD26_34XX_DSS_HSYNC(0xd80020d6):0x0000->0x0108<4>MUX: setupD27_34XX_DSS_VSYNC(0xd80020d8):0x0000->0x0108<4>MUX: setupE27_34XX_DSS_ACBIAS(0xd80020da):0x0000->0x0108<4>MUX: setupAG22_34XX_DSS_D0(0xd80020dc):0x0000->0x0108<4>MUX: setupAH22_34XX_DSS_D1(0xd80020de):0x0000->0x0108<4>MUX: setupAG23_34XX_DSS_D2(0xd80020e0):0x0000->0x0108<4>MUX: setupAH23_34XX_DSS_D3(0xd80020e2):0x0000->0x0108<4>MUX: setupAG24_34XX_DSS_D4(0xd80020e4):0x0000->0x0108<4>MUX: setupAH24_34XX_DSS_D5(0xd80020e6):0x0000->0x0108<4>MUX: setupE26_34XX_DSS_D6(0xd80020e8):0x0000->0x0108<4>MUX: setupF28_34XX_DSS_D7(0xd80020ea):0x0000->0x0108<4>MUX: setupF27_34XX_DSS_D8(0xd80020ec):0x0000->0x0108<4>MUX: setupG26_34XX_DSS_D9(0xd80020ee):0x0000->0x0108<4>MUX: setupAD28_34XX_DSS_D10(0xd80020f0):0x0000->0x0108<4>MUX: setupAD27_34XX_DSS_D11(0xd80020f2):0x0000->0x0108<4>MUX: setupAB28_34XX_DSS_D12(0xd80020f4):0x0000->0x0108<4>MUX: setupAB27_34XX_DSS_D13(0xd80020f6):0x0000->0x0108<4>MUX: setupAA28_34XX_DSS_D14(0xd80020f8):0x0000->0x0108<4>MUX: setupAA27_34XX_DSS_D15(0xd80020fa):0x0000->0x0108<4>MUX: setupG26_34XX_DSS_D16(0xd80020fc):0x0000->0x0108<4>MUX: setupH27_34XX_DSS_D17(0xd80020fe):0x0000->0x0108<4>MUX: setupH26_34XX_DSS_D18(0xd8002100):0x0000->0x0108<4>MUX: setupH25_34XX_DSS_D19(0xd8002102):0x0000->0x0108<4>MUX: setupE28_34XX_DSS_D20(0xd8002104):0x0000->0x0108<4>MUX: setupJ26_34XX_DSS_D21(0xd8002106):0x0000->0x0108<4>MUX: setupAC27_34XX_DSS_D22(0xd8002108):0x0000->0x0108<4>MUX: setupAC27_34XX_DSS_D23(0xd800210a):0x0000->0x0108<4>MUX: setupAD2_34XX_GPIO154(0xd8002188):0x0101->0x0004<4>MUX: setupAC1_34XX_GPIO155(0xd800218a):0x0101->0x0004<6>omapfb: configured for panel 15
omapfb_do_probe:1733
<6>omapfb: DISPC version 3.0 initialized omapfb_do_probe:1741
omapfb_do_probe:1745
planes_init:1540region_cnt1
<4>------------[ cut here ]------------
<4>WARNING: atkernel/mutex.c:207__mutex_lock_slowpath+0xb8/0x240() <d>Modules linked in:
[<c0033444>] (unwind_backtrace+0x0/0xd4) from [<c005a02c>] (warn_slowpath_common+0x4c/0x68)
[<c005a02c>] (warn_slowpath_common+0x4c/0x68) from [<c02dc104>] (__mutex_lock_slowpath+0xb8/0x240)
[<c02dc104>] (__mutex_lock_slowpath+0xb8/0x240) from [<c02dc298>] (mutex_lock+0xc/0x1c)
[<c02dc298>] (mutex_lock+0xc/0x1c) from [<c01a417c>] (set_fb_fix+0x40/0xcc)
[<c01a417c>] (set_fb_fix+0x40/0xcc) from [<c01a4dc8>] (omapfb_do_probe+0x4d0/0x9d0)
[<c01a4dc8>] (omapfb_do_probe+0x4d0/0x9d0) from [<c01a7ef4>] (omap3logic_panel_probe+0x4c/0x6c)
[<c01a7ef4>] (omap3logic_panel_probe+0x4c/0x6c) from [<c01cbfe8>] (platform_drv_probe+0x1c/0x24)
[<c01cbfe8>] (platform_drv_probe+0x1c/0x24) from [<c01cb22c>] (driver_probe_device+0xb8/0x164)
[<c01cb22c>] (driver_probe_device+0xb8/0x164) from [<c01cb338>] (__driver_attach+0x60/0x84)
[<c01cb338>] (__driver_attach+0x60/0x84) from [<c01ca6b8>] (bus_for_each_dev+0x48/0x80)
[<c01ca6b8>] (bus_for_each_dev+0x48/0x80) from [<c01cac48>] (bus_add_driver+0xa0/0x224)
[<c01cac48>] (bus_add_driver+0xa0/0x224) from [<c01cb634>] (driver_register+0xac/0x134)
[<c01cb634>] (driver_register+0xac/0x134) from [<c002d2b0>] (do_one_initcall+0x50/0x17c)
[<c002d2b0>] (do_one_initcall+0x50/0x17c) from [<c000888c>] (kernel_init+0x88/0x100)
[<c000888c>] (kernel_init+0x88/0x100) from [<c002ece0>] (kernel_thread_exit+0x0/0x8)I believe the problem is in
set_fb_fix()(called fromplanes_init()) trying to pull the lock forfbi->mm_lockwhich is not initialized sinceregister_framebuffer()has not yet been called (called afterplanes_init()is called).
Quoted 7 lines
Quoted 2 lines
Any ideas what I'm doing wrong?
Maybe this patch will help?
Thanks, that got me past the issue, but now, I get a whole raft of:
<4>__ratelimit: 1736188 callbacks suppressed__ratelimit: 1736188 callbacks suppressed
<3>omapfb omapfb: irq error status 4040
omapfb omapfb: irq error status 4040
<3>omapfb omapfb: irq error status 4062
omapfb omapfb: irq error status 4062
<3>omapfb omapfb: irq error status 4040
omapfb omapfb: irq error status 4040
<3>omapfb omapfb: irq error status 4062
omapfb omapfb: irq error status 4062
The log shows my panel timing:
omapfb: configured for panel 15
omapfb: DISPC version 3.0 initialized
Console: switching to colour frame buffer device 60x34
omapfb: Framebuffer initialized. Total vram 262144 planes 1
omapfb: Pixclock 9818 kHz hfreq 18.9 kHz vfreq 67.0 Hz
Which is pretty slow (omap3evm pixclock is 26MHz...).
What could be causing the fifo to underflow?
Signature · 2 lines
Peter Barada <[email protected]> Logic Product Development, Inc.
Quoted 139 lines
-----Original Message-----
From: [email protected] [mailto:linux-omap- [email protected]] On Behalf Of Peter Barada
Sent: Wednesday, August 26, 2009 1:37 AM
To: Gadiyar, Anand
Cc: linux-omap
Subject: RE: Problem tryhing to bring up new LCD on OMAP Logic boardQuoted 2 lines · Anand
Quoted 2 lines
I'm using 2.6.31-rc5 from Kevin's PM branch (commit ID
70a1f2249bbe765f78cf5e220e4e3f539b41eb7f) and I'm trying to addin LCD
Quoted 6 lines
Quoted 6 lines
panel support for our OMAP boards.
I've cloned
drivers/video/lcd_omap3evm.c, and when I call intoomapfb_main::omapfb_register_panel()it crashes with:<4>Platform driver 'omapfb' needs updating - please use
dev_pm_opsQuoted 38 lines
Quoted 38 lines
omapfb_probe:1829 pdev
c03f0258
omap3logic: Registering platform driver
<4>Platform driver 'omap3logic_lcd' needs updating - please usedev_pm_ops
omap3logic_panel_probe:463 panelc0425de4(name 15) omapfb_register_panel:1842
omapfb_do_probe:1673 pdevc03f0258panelc0425de4omapfb_do_probe:1697
<4>MUX: setupD28_34XX_DSS_PCLK(0xd80020d4):0x0000->0x0108<4>MUX: setupD26_34XX_DSS_HSYNC(0xd80020d6):0x0000->0x0108<4>MUX: setupD27_34XX_DSS_VSYNC(0xd80020d8):0x0000->0x0108<4>MUX: setupE27_34XX_DSS_ACBIAS(0xd80020da):0x0000->0x0108<4>MUX: setupAG22_34XX_DSS_D0(0xd80020dc):0x0000->0x0108<4>MUX: setupAH22_34XX_DSS_D1(0xd80020de):0x0000->0x0108<4>MUX: setupAG23_34XX_DSS_D2(0xd80020e0):0x0000->0x0108<4>MUX: setupAH23_34XX_DSS_D3(0xd80020e2):0x0000->0x0108<4>MUX: setupAG24_34XX_DSS_D4(0xd80020e4):0x0000->0x0108<4>MUX: setupAH24_34XX_DSS_D5(0xd80020e6):0x0000->0x0108<4>MUX: setupE26_34XX_DSS_D6(0xd80020e8):0x0000->0x0108<4>MUX: setupF28_34XX_DSS_D7(0xd80020ea):0x0000->0x0108<4>MUX: setupF27_34XX_DSS_D8(0xd80020ec):0x0000->0x0108<4>MUX: setupG26_34XX_DSS_D9(0xd80020ee):0x0000->0x0108<4>MUX: setupAD28_34XX_DSS_D10(0xd80020f0):0x0000->0x0108<4>MUX: setupAD27_34XX_DSS_D11(0xd80020f2):0x0000->0x0108<4>MUX: setupAB28_34XX_DSS_D12(0xd80020f4):0x0000->0x0108<4>MUX: setupAB27_34XX_DSS_D13(0xd80020f6):0x0000->0x0108<4>MUX: setupAA28_34XX_DSS_D14(0xd80020f8):0x0000->0x0108<4>MUX: setupAA27_34XX_DSS_D15(0xd80020fa):0x0000->0x0108<4>MUX: setupG26_34XX_DSS_D16(0xd80020fc):0x0000->0x0108<4>MUX: setupH27_34XX_DSS_D17(0xd80020fe):0x0000->0x0108<4>MUX: setupH26_34XX_DSS_D18(0xd8002100):0x0000->0x0108<4>MUX: setupH25_34XX_DSS_D19(0xd8002102):0x0000->0x0108<4>MUX: setupE28_34XX_DSS_D20(0xd8002104):0x0000->0x0108<4>MUX: setupJ26_34XX_DSS_D21(0xd8002106):0x0000->0x0108<4>MUX: setupAC27_34XX_DSS_D22(0xd8002108):0x0000->0x0108<4>MUX: setupAC27_34XX_DSS_D23(0xd800210a):0x0000->0x0108<4>MUX: setupAD2_34XX_GPIO154(0xd8002188):0x0101->0x0004<4>MUX: setupAC1_34XX_GPIO155(0xd800218a):0x0101->0x0004Quoted 8 lines
Quoted 8 lines
<6>omapfb: configured for panel 15
omapfb_do_probe:1733
<6>omapfb: DISPC version 3.0 initialized
omapfb_do_probe:1741
omapfb_do_probe:1745
planes_init:1540region_cnt1
<4>------------[ cut here ]------------
<4>WARNING: atkernel/mutex.c:207__mutex_lock_slowpath+0xb8/0x240()
Quoted 6 lines
Quoted 6 lines
<d>Modules linked in:
[<c0033444>] (unwind_backtrace+0x0/0xd4) from [<c005a02c>] (warn_slowpath_common+0x4c/0x68)
[<c005a02c>] (warn_slowpath_common+0x4c/0x68) from [<c02dc104>] (__mutex_lock_slowpath+0xb8/0x240)
[<c02dc104>] (__mutex_lock_slowpath+0xb8/0x240) from[<
c02dc298>]Quoted 4 lines
Quoted 4 lines
(
mutex_lock+0xc/0x1c)
[<c02dc298>] (mutex_lock+0xc/0x1c) from [<c01a417c>] (set_fb_fix+0x40/0xcc)
[<c01a417c>] (set_fb_fix+0x40/0xcc) from [<c01a4dc8>](
omapfb_do_probeQuoted 4 lines
Quoted 4 lines
+0x4d0/0x9d0)
[<c01a4dc8>] (omapfb_do_probe+0x4d0/0x9d0) from [<c01a7ef4>] (omap3logic_panel_probe+0x4c/0x6c)
[<c01a7ef4>] (omap3logic_panel_probe+0x4c/0x6c) from[<
c01cbfe8>]Quoted 6 lines
Quoted 6 lines
(
platform_drv_probe+0x1c/0x24)
[<c01cbfe8>] (platform_drv_probe+0x1c/0x24) from [<c01cb22c>] (driver_probe_device+0xb8/0x164)
[<c01cb22c>] (driver_probe_device+0xb8/0x164) from [<c01cb338>] (__driver_attach+0x60/0x84)
[<c01cb338>] (__driver_attach+0x60/0x84) from [<c01ca6b8>]Quoted 8 lines
Quoted 8 lines
(
bus_for_each_dev+0x48/0x80)
[<c01ca6b8>] (bus_for_each_dev+0x48/0x80) from [<c01cac48>] (bus_add_driver+0xa0/0x224)
[<c01cac48>] (bus_add_driver+0xa0/0x224) from [<c01cb634>] (driver_register+0xac/0x134)
[<c01cb634>] (driver_register+0xac/0x134) from [<c002d2b0>] (do_one_initcall+0x50/0x17c)
[<c002d2b0>] (do_one_initcall+0x50/0x17c) from [<c000888c>](
kernel_initQuoted 5 lines
Quoted 5 lines
+0x88/0x100)
[<c000888c>] (kernel_init+0x88/0x100) from [<c002ece0>] (kernel_thread_exit+0x0/0x8)I believe the problem is in
set_fb_fix()(called from
planes_init())Quoted 1 line
Quoted 1 line
trying to pull the lock for
fbi->mm_lockwhich is notinitialized since
Quoted 10 lines
Quoted 5 lines
register_framebuffer()has not yet been called (called afterplanes_init()is called).Any ideas what I'm doing wrong?
Maybe this patch will help?
Thanks, that got me past the issue, but now, I get a whole raft of:
<4>__ratelimit: 1736188 callbacks suppressed
__ratelimit: 1736188 callbacks suppressed
<3>omapfb omapfb: irq error status 4040
omapfb omapfb: irq error status 4040
<3>omapfb omapfb: irq error status 4062
omapfb omapfb: irq error status 4062
<3>omapfb omapfb: irq error status 4040
omapfb omapfb: irq error status 4040
<3>omapfb omapfb: irq error status 4062
omapfb omapfb: irq error status 4062The log shows my panel timing:
omapfb: configured for panel 15
omapfb: DISPC version 3.0 initialized
Console: switching to colour frame buffer device 60x34
omapfb: Framebuffer initialized. Total vram 262144 planes 1
omapfb: Pixclock 9818 kHz hfreq 18.9 kHz vfreq 67.0 Hz
Quoted 3 lines
Which is pretty slow (omap3evm pixclock is 26MHz...).
What could be causing the fifo to underflow?
[Hiremath, Vaibhav] Can you please provide Dispc and GFX register dump?
Thanks,
Vaibhav
Quoted 9 lines
--
Peter Barada <[email protected]>
Logic Product Development, Inc.
--
To unsubscribe from this list: send the line "unsubscribe linux- omap" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Quoted 138 lines · Vaibhav
Quoted 138 lines
-----Original Message-----
From: [email protected] [mailto:linux-omap- [email protected]] On Behalf Of Peter Barada
Sent: Wednesday, August 26, 2009 1:37 AM
To: Gadiyar, Anand
Cc: linux-omap
Subject: RE: Problem tryhing to bring up new LCD on OMAP Logic boardQuoted 2 lines · Anand
Quoted 2 lines
I'm using 2.6.31-rc5 from Kevin's PM branch (commit ID
70a1f2249bbe765f78cf5e220e4e3f539b41eb7f) and I'm trying to addin LCD
Quoted 6 lines
Quoted 6 lines
panel support for our OMAP boards.
I've cloned
drivers/video/lcd_omap3evm.c, and when I call intoomapfb_main::omapfb_register_panel()it crashes with:<4>Platform driver 'omapfb' needs updating - please use
dev_pm_opsQuoted 38 lines
Quoted 38 lines
omapfb_probe:1829 pdev
c03f0258
omap3logic: Registering platform driver
<4>Platform driver 'omap3logic_lcd' needs updating - please usedev_pm_ops
omap3logic_panel_probe:463 panelc0425de4(name 15) omapfb_register_panel:1842
omapfb_do_probe:1673 pdevc03f0258panelc0425de4omapfb_do_probe:1697
<4>MUX: setupD28_34XX_DSS_PCLK(0xd80020d4):0x0000->0x0108<4>MUX: setupD26_34XX_DSS_HSYNC(0xd80020d6):0x0000->0x0108<4>MUX: setupD27_34XX_DSS_VSYNC(0xd80020d8):0x0000->0x0108<4>MUX: setupE27_34XX_DSS_ACBIAS(0xd80020da):0x0000->0x0108<4>MUX: setupAG22_34XX_DSS_D0(0xd80020dc):0x0000->0x0108<4>MUX: setupAH22_34XX_DSS_D1(0xd80020de):0x0000->0x0108<4>MUX: setupAG23_34XX_DSS_D2(0xd80020e0):0x0000->0x0108<4>MUX: setupAH23_34XX_DSS_D3(0xd80020e2):0x0000->0x0108<4>MUX: setupAG24_34XX_DSS_D4(0xd80020e4):0x0000->0x0108<4>MUX: setupAH24_34XX_DSS_D5(0xd80020e6):0x0000->0x0108<4>MUX: setupE26_34XX_DSS_D6(0xd80020e8):0x0000->0x0108<4>MUX: setupF28_34XX_DSS_D7(0xd80020ea):0x0000->0x0108<4>MUX: setupF27_34XX_DSS_D8(0xd80020ec):0x0000->0x0108<4>MUX: setupG26_34XX_DSS_D9(0xd80020ee):0x0000->0x0108<4>MUX: setupAD28_34XX_DSS_D10(0xd80020f0):0x0000->0x0108<4>MUX: setupAD27_34XX_DSS_D11(0xd80020f2):0x0000->0x0108<4>MUX: setupAB28_34XX_DSS_D12(0xd80020f4):0x0000->0x0108<4>MUX: setupAB27_34XX_DSS_D13(0xd80020f6):0x0000->0x0108<4>MUX: setupAA28_34XX_DSS_D14(0xd80020f8):0x0000->0x0108<4>MUX: setupAA27_34XX_DSS_D15(0xd80020fa):0x0000->0x0108<4>MUX: setupG26_34XX_DSS_D16(0xd80020fc):0x0000->0x0108<4>MUX: setupH27_34XX_DSS_D17(0xd80020fe):0x0000->0x0108<4>MUX: setupH26_34XX_DSS_D18(0xd8002100):0x0000->0x0108<4>MUX: setupH25_34XX_DSS_D19(0xd8002102):0x0000->0x0108<4>MUX: setupE28_34XX_DSS_D20(0xd8002104):0x0000->0x0108<4>MUX: setupJ26_34XX_DSS_D21(0xd8002106):0x0000->0x0108<4>MUX: setupAC27_34XX_DSS_D22(0xd8002108):0x0000->0x0108<4>MUX: setupAC27_34XX_DSS_D23(0xd800210a):0x0000->0x0108<4>MUX: setupAD2_34XX_GPIO154(0xd8002188):0x0101->0x0004<4>MUX: setupAC1_34XX_GPIO155(0xd800218a):0x0101->0x0004Quoted 8 lines
Quoted 8 lines
<6>omapfb: configured for panel 15
omapfb_do_probe:1733
<6>omapfb: DISPC version 3.0 initialized
omapfb_do_probe:1741
omapfb_do_probe:1745
planes_init:1540region_cnt1
<4>------------[ cut here ]------------
<4>WARNING: atkernel/mutex.c:207__mutex_lock_slowpath+0xb8/0x240()
Quoted 6 lines
Quoted 6 lines
<d>Modules linked in:
[<c0033444>] (unwind_backtrace+0x0/0xd4) from [<c005a02c>] (warn_slowpath_common+0x4c/0x68)
[<c005a02c>] (warn_slowpath_common+0x4c/0x68) from [<c02dc104>] (__mutex_lock_slowpath+0xb8/0x240)
[<c02dc104>] (__mutex_lock_slowpath+0xb8/0x240) from[<
c02dc298>]Quoted 4 lines
Quoted 4 lines
(
mutex_lock+0xc/0x1c)
[<c02dc298>] (mutex_lock+0xc/0x1c) from [<c01a417c>] (set_fb_fix+0x40/0xcc)
[<c01a417c>] (set_fb_fix+0x40/0xcc) from [<c01a4dc8>](
omapfb_do_probeQuoted 4 lines
Quoted 4 lines
+0x4d0/0x9d0)
[<c01a4dc8>] (omapfb_do_probe+0x4d0/0x9d0) from [<c01a7ef4>] (omap3logic_panel_probe+0x4c/0x6c)
[<c01a7ef4>] (omap3logic_panel_probe+0x4c/0x6c) from[<
c01cbfe8>]Quoted 6 lines
Quoted 6 lines
(
platform_drv_probe+0x1c/0x24)
[<c01cbfe8>] (platform_drv_probe+0x1c/0x24) from [<c01cb22c>] (driver_probe_device+0xb8/0x164)
[<c01cb22c>] (driver_probe_device+0xb8/0x164) from [<c01cb338>] (__driver_attach+0x60/0x84)
[<c01cb338>] (__driver_attach+0x60/0x84) from [<c01ca6b8>]Quoted 8 lines
Quoted 8 lines
(
bus_for_each_dev+0x48/0x80)
[<c01ca6b8>] (bus_for_each_dev+0x48/0x80) from [<c01cac48>] (bus_add_driver+0xa0/0x224)
[<c01cac48>] (bus_add_driver+0xa0/0x224) from [<c01cb634>] (driver_register+0xac/0x134)
[<c01cb634>] (driver_register+0xac/0x134) from [<c002d2b0>] (do_one_initcall+0x50/0x17c)
[<c002d2b0>] (do_one_initcall+0x50/0x17c) from [<c000888c>](
kernel_initQuoted 5 lines
Quoted 5 lines
+0x88/0x100)
[<c000888c>] (kernel_init+0x88/0x100) from [<c002ece0>] (kernel_thread_exit+0x0/0x8)I believe the problem is in
set_fb_fix()(called from
planes_init())Quoted 1 line
Quoted 1 line
trying to pull the lock for
fbi->mm_lockwhich is notinitialized since
Quoted 10 lines
Quoted 5 lines
register_framebuffer()has not yet been called (called afterplanes_init()is called).Any ideas what I'm doing wrong?
Maybe this patch will help?
Thanks, that got me past the issue, but now, I get a whole raft of:
<4>__ratelimit: 1736188 callbacks suppressed
__ratelimit: 1736188 callbacks suppressed
<3>omapfb omapfb: irq error status 4040
omapfb omapfb: irq error status 4040
<3>omapfb omapfb: irq error status 4062
omapfb omapfb: irq error status 4062
<3>omapfb omapfb: irq error status 4040
omapfb omapfb: irq error status 4040
<3>omapfb omapfb: irq error status 4062
omapfb omapfb: irq error status 4062The log shows my panel timing:
omapfb: configured for panel 15
omapfb: DISPC version 3.0 initialized
Console: switching to colour frame buffer device 60x34
omapfb: Framebuffer initialized. Total vram 262144 planes 1
omapfb: Pixclock 9818 kHz hfreq 18.9 kHz vfreq 67.0 Hz
Quoted 4 lines
Quoted 3 lines
Which is pretty slow (omap3evm pixclock is 26MHz...).
What could be causing the fifo to underflow?
[Hiremath, Vaibhav] Can you please provide Dispc and GFX register dump?
Unfortunately the kernel doesn't get to a prompt as its suffering the video interrupt storm and overwhelms the console.
The lcd_panel structure passed to omap_register_panel() is:
{
.name = "15",
.config = OMAP_LCDC_PANEL_TFT | OMAP_LCDC_INV_VSYNC |OMAP_LCDC_INV_HSYNC,
.bpp = 16, .data_lines = 16, .x_res = 480, .y_res = 272, .pixel_clock = 10000, .hsw = 41, .hfp = 2, .hbp = 2, .vsw = 2, .vfp = 2, .vbp = 3, .init = omap3logic_panel_init, .cleanup = omap3logic_panel_cleanup, .enable = omap3logic_panel_enable, .disable = omap3logic_panel_disable, .get_caps = omap3logic_panel_get_caps, .set_bklight_level = omap3logic_bklight_setlevel, .get_bklight_level = omap3logic_bklight_getlevel, .get_bklight_max = omap3logic_bklight_getmaxlevel,
}
where the init only sets up and sequences the enable/backlight GPIO, using a 300mS delay between the init and backlight to make sure that the clocks provided to the panel have enough time to initialize the panel (LQ043T1DG01) before the backlight is turned on.
If I can get it to come up, how can I dump out the DISPC/GFX register set from Linux (is it in a debugfs file)?
Quoted 12 lines
Thanks,
VaibhavQuoted 9 lines
--
Peter Barada <[email protected]>
Logic Product Development, Inc.
--
To unsubscribe from this list: send the line "unsubscribe linux- omap" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Signature · 2 lines
Peter Barada <[email protected]> Logic Product Development, Inc.
Quoted 23 lines
-----Original Message-----
From: Peter Barada [mailto:[email protected]]
Sent: Wednesday, August 26, 2009 9:39 AM
To: Hiremath, Vaibhav
Cc: Gadiyar, Anand; linux-omap
Subject: RE: Problem tryhing to bring up new LCD on OMAP Logic boardQuoted 7 lines · Vaibhav
Quoted 7 lines
-----Original Message-----
From: [email protected] [mailto:linux-omap- [email protected]] On Behalf Of Peter Barada
Sent: Wednesday, August 26, 2009 1:37 AM
To: Gadiyar, Anand
Cc: linux-omap
Subject: RE: Problem tryhing to bring up new LCD on OMAP Logicboard
Quoted 4 lines
Quoted 4 lines · Anand
Quoted 2 lines
Quoted 2 lines
I'm using 2.6.31-rc5 from Kevin's PM branch (commit ID
70a1f2249bbe765f78cf5e220e4e3f539b41eb7f) and I'm trying toadd
Quoted 2 lines
Quoted 2 lines
in LCD
Quoted 1 line
Quoted 1 line
panel support for our OMAP boards.
<snip>
Quoted 39 lines
Quoted 5 lines
Quoted 4 lines
Which is pretty slow (omap3evm pixclock is 26MHz...).
What could be causing the fifo to underflow?
[Hiremath, Vaibhav] Can you please provide Dispc and GFX register
dump?
Unfortunately the kernel doesn't get to a prompt as its suffering the
video interrupt storm and overwhelms the console.The
lcd_panelstructure passed toomap_register_panel()is:{ .name = "15", .config = OMAP_LCDC_PANEL_TFT | OMAP_LCDC_INV_VSYNC|
OMAP_LCDC_INV_HSYNC,.bpp = 16, .data_lines = 16, .x_res = 480, .y_res = 272, .pixel_clock = 10000, .hsw = 41, .hfp = 2, .hbp = 2, .vsw = 2, .vfp = 2, .vbp = 3, .init = omap3logic_panel_init, .cleanup = omap3logic_panel_cleanup, .enable = omap3logic_panel_enable, .disable = omap3logic_panel_disable, .get_caps = omap3logic_panel_get_caps, .set_bklight_level = omap3logic_bklight_setlevel, .get_bklight_level = omap3logic_bklight_getlevel, .get_bklight_max = omap3logic_bklight_getmaxlevel,
Quoted 9 lines
}
where the init only sets up and sequences the enable/backlight GPIO, using a 300mS delay between the init and backlight to make sure that the
clocks provided to the panel have enough time to initialize the panel
(LQ043T1DG01) before the backlight is turned on.
[Hiremath, Vaibhav] Fortunately I had interfaced same LCD panel from Logic-PD with OMAP-DSS IP, you have to add delay in dpi.c file before panel->enable function call. Below is the code snippet and timing parameters which I used -
static int dpi_display_enable(struct omap_display *display) {
.........
/*This dealy is required as per LCD (lq043t1dg01) spec */ mdelay(300); r = panel->enable(display);
.....
}
static int sharp_ls_panel_enable(struct omap_display *display)
{
int r = 0;
/* wait couple of vsyncs until enabling the LCD */
msleep(50);
if (display->hw_config.panel_enable)
r = display->hw_config.panel_enable(display);
return r;
}static void sharp_ls_panel_disable(struct omap_display *display)
{
if (display->hw_config.panel_disable)
display->hw_config.panel_disable(display);
/* wait at least 5 vsyncs after disabling the LCD */
msleep(100);
}static struct omap_panel sharp_ls_panel = {
.owner = THIS_MODULE,
.name = "sharp-lq043t1dg01",
.init = sharp_ls_panel_init,
.cleanup = sharp_ls_panel_cleanup,
.enable = sharp_ls_panel_enable,
.disable = sharp_ls_panel_disable,
.suspend = sharp_ls_panel_suspend,
.resume = sharp_ls_panel_resume,
.timings = {
.x_res = 480,
.y_res = 272,
.pixel_clock = 9000,
.hsw = 42,
.hfp = 3,
.hbp = 2,
.vsw = 11,
.vfp = 3,
.vbp = 2,
},
.acb = 0,
.config = OMAP_DSS_LCD_TFT | OMAP_DSS_LCD_IVS | OMAP_DSS_LCD_IHS |
OMAP_DSS_LCD_IEO,
};Quoted 4 lines
If I can get it to come up, how can I dump out the DISPC/GFX register
set from Linux (is it in a debugfs file)?
[Hiremath, Vaibhav] For register dump you can make use of /dev/mem device node which will allow you to read physical memory. Just google for devmem.c, you will get one sample application, you just compile it and it should be ready to use.
Syntax for devmem is -
./devmem.o -r -4 -l <size in bytes> <physical address>
Thanks,
Vaibhav
Quoted 16 lines
Quoted 11 lines
Thanks,
VaibhavQuoted 9 lines
--
Peter Barada <[email protected]>
Logic Product Development, Inc.
--
To unsubscribe from this list: send the line "unsubscribe linux- omap" in
the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
Quoted 1 line
--
Peter Barada <[email protected]>
Logic Product Development, Inc.