diff mbox

omap DSS fails with tft410 driver panel?

Message ID CAGDS+nmaGK1igkYnz0EQEycUU=LsD5yz9wxmipSnWohKvAPTXA@mail.gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Steve Sakoman Nov. 27, 2012, 7:15 p.m. UTC
On Tue, Nov 27, 2012 at 3:32 AM, Tomi Valkeinen <tomi.valkeinen@ti.com> wrote:

> Ok. So X is configuring video2 overlay for some reason. XVideo, perhaps?

That was my guess too, and after some digging I am fairly certain this
is the case.

> Anyway, I guess it's a valid thing to configure the overlay with
> paddr == 0 when the overlay is disabled. In fact, paddr == 0 check
> is in any case quite limited, as if the board's physical memory
> doesn't contain the given paddr, the DSS HW will fail just as it
> would for paddr 0. So the paddr == 0 check is more of a sanity check
> than a comprehensive test.
>
> Can you try the following patch:
>
> diff --git a/drivers/video/omap2/dss/overlay.c b/drivers/video/omap2/dss/overlay.c
> index 45f4994..e271e28 100644
> --- a/drivers/video/omap2/dss/overlay.c
> +++ b/drivers/video/omap2/dss/overlay.c
> @@ -130,11 +130,6 @@ void dss_uninit_overlays(struct platform_device *pdev)
>  int dss_ovl_simple_check(struct omap_overlay *ovl,
>                 const struct omap_overlay_info *info)
>  {
> -       if (info->paddr == 0) {
> -               DSSERR("check_overlay: paddr cannot be 0\n");
> -               return -EINVAL;
> -       }
> -
>         if ((ovl->caps & OMAP_DSS_OVL_CAP_SCALE) == 0) {
>                 if (info->out_width != 0 && info->width != info->out_width) {
>                         DSSERR("check_overlay: overlay %d doesn't support "


I tried something similar over the weekend (just removed the return so
I still got the error printout) and found that the simple_check failed
in 2 more places.

Here is the patch I ended up with to get a successful simple_check:


After digging a little more it turned out that the continual
restarting of X wasn't due to the above error, but to a build system
glitch.  So the above issue doesn't block a basic X session.

I checked XVideo both with and without the above patch and it is
broken in both cases.  I'm beginning to suspect that this might be a
user space bug and will do a little investigation.

Because of this I don't think any dss changes should be made at this point.

During my testing I think I uncovered another issue :-(

I set omapdss.def_disp=lcd43 on the kernel command line to see if the
behavior changed with the LCD as the default device.

What I encountered was a null pointer crash:

[    3.483062] fbcvt: 1024x768@60: CVT Name - .786M3-R
[    3.488250] Unable to handle kernel NULL pointer dereference at
virtual address 00000028
[    3.496765] pgd = c0004000
[    3.499603] [00000028] *pgd=00000000
[    3.503387] Internal error: Oops: 5 [#1] PREEMPT ARM
[    3.508605] Modules linked in:
[    3.511810] CPU: 0    Not tainted  (3.6.0 #1)
[    3.516357] PC is at dss_mgr_check_timings+0x4/0x30
[    3.521484] LR is at dpi_check_timings+0x18/0xb8
[    3.526336] pc : [<c025df70>]    lr : [<c0260dc0>]    psr: 40000013
[    3.526336] sp : dec2bd88  ip : 22222222  fp : def7e180
[    3.538330] r10: def951c0  r9 : def61000  r8 : de41b858
[    3.543823] r7 : dec2bdfc  r6 : c06c0a50  r5 : dec2be00  r4 : deea1cd4
[    3.550659] r3 : dec1ba40  r2 : dec2bdc8  r1 : dec2be00  r0 : 00000000
[    3.557495] Flags: nZcv  IRQs on  FIQs on  Mode SVC_32  ISA ARM
Segment kernel
[    3.565155] Control: 10c5387d  Table: 80004019  DAC: 00000015
[    3.571166] Process swapper (pid: 1, stack limit = 0xdec2a2f0)
[    3.577270] Stack: (0xdec2bd88 to 0xdec2c000)
[    3.581848] bd80:                   dec1ba40 c0260dc0 ffffffff
deea1cd4 def7e180 c046a7d0
[    3.590423] bda0: 22222222 22222222 22222222 22222222 deea1cd4
c06c0a50 dec2be00 dec2bdfc
[    3.598968] bdc0: deea1cd4 c06c0a50 dec2be00 c026e738 c06c0a50
00000000 de41b800 c046749c
[    3.607513] bde0: 0000003d c0495788 00000018 00000000 00000010
def98640 dec00140 00000000
[    3.616088] be00: 03000400 0000dac0 00300020 00040050 0003000f
00000001 00000000 00000000
[    3.624664] be20: 00000001 00000000 00000000 c0459380 deea257c
c06c0d00 dec2be50 00000000
[    3.633209] be40: c025cc10 c029a98c 00000000 c029ae80 dec075d8
00000000 00000000 de41b800
[    3.641784] be60: c06c1200 c06c3098 c06c3090 de41b80c 00000002
00000001 de41b800 c0689470
[    3.650360] be80: def99148 def99148 dec2beb8 c01371c4 dec1ba40
00000000 def99148 decdf208
[    3.658935] bea0: def95240 c0137e24 00000000 c0054e18 00000000
00000003 decdf208 00000000
[    3.667510] bec0: c06e25dc c06c3098 c06e25dc c06e25dc c029c728
0000009e 00000000 c068920c
[    3.676055] bee0: 00000000 c029d830 c029d81c c029c514 c06e25dc
c06c3098 c06c3098 c06c30cc
[    3.684631] bf00: c06e25dc c029c790 00000000 dec2bf18 c06e25dc
c029aa9c dec077d8 decd9670
[    3.693176] bf20: c06e25dc c06e25dc c06e8868 def95240 00000000
c029bb2c c05a9b18 c05a9b18
[    3.701751] bf40: c06e25dc 00000001 c06a0c9c c0710300 0000009e
c029ccb4 00000000 c06e25c8
[    3.710296] bf60: 00000001 c06a0c9c c0710300 0000009e c068920c
c029daa4 00000007 c06967d8
[    3.718872] bf80: c06a0c9c c0689234 dec2a000 c0008654 c068920c
976c0d2e c06a0cc4 00000008
[    3.727447] bfa0: 00000007 c06967d8 c06a0c9c c0710300 0000009e
c0669160 c06967e0 c06698d8
[    3.735992] bfc0: 00000007 00000007 c0669160 00000013 00000000
00000000 00000000 c06697a0
[    3.744567] bfe0: c000eea8 00000013 00000000 00000000 00000000
c000eea8 fffffff7 dffefffe
[    3.753143] [<c025df70>] (dss_mgr_check_timings+0x4/0x30) from
[<c0260dc0>] (dpi_check_timings+0x18/0xb8)
[    3.763183] [<c0260dc0>] (dpi_check_timings+0x18/0xb8) from
[<c026e738>] (tfp410_check_timings+0x28/0x3c)
[    3.773223] [<c026e738>] (tfp410_check_timings+0x28/0x3c) from
[<c046749c>] (omapfb_parse_def_modes+0x338/0x3f4)
[    3.783905] [<c046749c>] (omapfb_parse_def_modes+0x338/0x3f4) from
[<c0689470>] (omapfb_probe+0x210/0x600)
[    3.794036] [<c0689470>] (omapfb_probe+0x210/0x600) from
[<c029d830>] (platform_drv_probe+0x14/0x18)
[    3.803619] [<c029d830>] (platform_drv_probe+0x14/0x18) from
[<c029c514>] (driver_probe_device+0x11c/0x330)
[    3.813812] [<c029c514>] (driver_probe_device+0x11c/0x330) from
[<c029c790>] (__driver_attach+0x68/0x8c)
[    3.823760] [<c029c790>] (__driver_attach+0x68/0x8c) from
[<c029aa9c>] (bus_for_each_dev+0x48/0x80)
[    3.833251] [<c029aa9c>] (bus_for_each_dev+0x48/0x80) from
[<c029bb2c>] (bus_add_driver+0xf0/0x248)
[    3.842742] [<c029bb2c>] (bus_add_driver+0xf0/0x248) from
[<c029ccb4>] (driver_register+0x9c/0x12c)
[    3.852203] [<c029ccb4>] (driver_register+0x9c/0x12c) from
[<c029daa4>] (platform_driver_probe+0x18/0x9c)
[    3.862243] [<c029daa4>] (platform_driver_probe+0x18/0x9c) from
[<c0689234>] (omapfb_init+0x28/0x54)
[    3.871826] [<c0689234>] (omapfb_init+0x28/0x54) from [<c0008654>]
(do_one_initcall+0x90/0x160)
[    3.880950] [<c0008654>] (do_one_initcall+0x90/0x160) from
[<c06698d8>] (kernel_init+0x138/0x1f8)
[    3.890228] [<c06698d8>] (kernel_init+0x138/0x1f8) from
[<c000eea8>] (kernel_thread_exit+0x0/0x8)
[    3.899566] Code: e3e00015 e8bd8010 c05d88aa e92d4008 (e5900028)
[    3.906097] ---[ end trace 38f657b10d460537 ]---

It seems that dss_mgr_check_timings is being called with a null dssdev->manager.

Other than the fact that there should be a null pointer check in the
code, it seems that this is a regression since it used to be possible
to switch the default display in this fashion.  Is this no longer
allowed?

Steve
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Tomi Valkeinen Nov. 29, 2012, 11:22 a.m. UTC | #1
On 2012-11-27 21:15, Steve Sakoman wrote:

> During my testing I think I uncovered another issue :-(
> 
> I set omapdss.def_disp=lcd43 on the kernel command line to see if the
> behavior changed with the LCD as the default device.
> 
> What I encountered was a null pointer crash:
> 
> [    3.483062] fbcvt: 1024x768@60: CVT Name - .786M3-R
> [    3.488250] Unable to handle kernel NULL pointer dereference at
> virtual address 00000028
> [    3.496765] pgd = c0004000
> [    3.499603] [00000028] *pgd=00000000
> [    3.503387] Internal error: Oops: 5 [#1] PREEMPT ARM
> [    3.508605] Modules linked in:
> [    3.511810] CPU: 0    Not tainted  (3.6.0 #1)
> [    3.516357] PC is at dss_mgr_check_timings+0x4/0x30
> [    3.521484] LR is at dpi_check_timings+0x18/0xb8
> [    3.526336] pc : [<c025df70>]    lr : [<c0260dc0>]    psr: 40000013
> [    3.526336] sp : dec2bd88  ip : 22222222  fp : def7e180
> [    3.538330] r10: def951c0  r9 : def61000  r8 : de41b858
> [    3.543823] r7 : dec2bdfc  r6 : c06c0a50  r5 : dec2be00  r4 : deea1cd4
> [    3.550659] r3 : dec1ba40  r2 : dec2bdc8  r1 : dec2be00  r0 : 00000000
> [    3.557495] Flags: nZcv  IRQs on  FIQs on  Mode SVC_32  ISA ARM
> Segment kernel
> [    3.565155] Control: 10c5387d  Table: 80004019  DAC: 00000015
> [    3.571166] Process swapper (pid: 1, stack limit = 0xdec2a2f0)
> [    3.577270] Stack: (0xdec2bd88 to 0xdec2c000)
> [    3.581848] bd80:                   dec1ba40 c0260dc0 ffffffff
> deea1cd4 def7e180 c046a7d0
> [    3.590423] bda0: 22222222 22222222 22222222 22222222 deea1cd4
> c06c0a50 dec2be00 dec2bdfc
> [    3.598968] bdc0: deea1cd4 c06c0a50 dec2be00 c026e738 c06c0a50
> 00000000 de41b800 c046749c
> [    3.607513] bde0: 0000003d c0495788 00000018 00000000 00000010
> def98640 dec00140 00000000
> [    3.616088] be00: 03000400 0000dac0 00300020 00040050 0003000f
> 00000001 00000000 00000000
> [    3.624664] be20: 00000001 00000000 00000000 c0459380 deea257c
> c06c0d00 dec2be50 00000000
> [    3.633209] be40: c025cc10 c029a98c 00000000 c029ae80 dec075d8
> 00000000 00000000 de41b800
> [    3.641784] be60: c06c1200 c06c3098 c06c3090 de41b80c 00000002
> 00000001 de41b800 c0689470
> [    3.650360] be80: def99148 def99148 dec2beb8 c01371c4 dec1ba40
> 00000000 def99148 decdf208
> [    3.658935] bea0: def95240 c0137e24 00000000 c0054e18 00000000
> 00000003 decdf208 00000000
> [    3.667510] bec0: c06e25dc c06c3098 c06e25dc c06e25dc c029c728
> 0000009e 00000000 c068920c
> [    3.676055] bee0: 00000000 c029d830 c029d81c c029c514 c06e25dc
> c06c3098 c06c3098 c06c30cc
> [    3.684631] bf00: c06e25dc c029c790 00000000 dec2bf18 c06e25dc
> c029aa9c dec077d8 decd9670
> [    3.693176] bf20: c06e25dc c06e25dc c06e8868 def95240 00000000
> c029bb2c c05a9b18 c05a9b18
> [    3.701751] bf40: c06e25dc 00000001 c06a0c9c c0710300 0000009e
> c029ccb4 00000000 c06e25c8
> [    3.710296] bf60: 00000001 c06a0c9c c0710300 0000009e c068920c
> c029daa4 00000007 c06967d8
> [    3.718872] bf80: c06a0c9c c0689234 dec2a000 c0008654 c068920c
> 976c0d2e c06a0cc4 00000008
> [    3.727447] bfa0: 00000007 c06967d8 c06a0c9c c0710300 0000009e
> c0669160 c06967e0 c06698d8
> [    3.735992] bfc0: 00000007 00000007 c0669160 00000013 00000000
> 00000000 00000000 c06697a0
> [    3.744567] bfe0: c000eea8 00000013 00000000 00000000 00000000
> c000eea8 fffffff7 dffefffe
> [    3.753143] [<c025df70>] (dss_mgr_check_timings+0x4/0x30) from
> [<c0260dc0>] (dpi_check_timings+0x18/0xb8)
> [    3.763183] [<c0260dc0>] (dpi_check_timings+0x18/0xb8) from
> [<c026e738>] (tfp410_check_timings+0x28/0x3c)
> [    3.773223] [<c026e738>] (tfp410_check_timings+0x28/0x3c) from
> [<c046749c>] (omapfb_parse_def_modes+0x338/0x3f4)
> [    3.783905] [<c046749c>] (omapfb_parse_def_modes+0x338/0x3f4) from
> [<c0689470>] (omapfb_probe+0x210/0x600)
> [    3.794036] [<c0689470>] (omapfb_probe+0x210/0x600) from
> [<c029d830>] (platform_drv_probe+0x14/0x18)
> [    3.803619] [<c029d830>] (platform_drv_probe+0x14/0x18) from
> [<c029c514>] (driver_probe_device+0x11c/0x330)
> [    3.813812] [<c029c514>] (driver_probe_device+0x11c/0x330) from
> [<c029c790>] (__driver_attach+0x68/0x8c)
> [    3.823760] [<c029c790>] (__driver_attach+0x68/0x8c) from
> [<c029aa9c>] (bus_for_each_dev+0x48/0x80)
> [    3.833251] [<c029aa9c>] (bus_for_each_dev+0x48/0x80) from
> [<c029bb2c>] (bus_add_driver+0xf0/0x248)
> [    3.842742] [<c029bb2c>] (bus_add_driver+0xf0/0x248) from
> [<c029ccb4>] (driver_register+0x9c/0x12c)
> [    3.852203] [<c029ccb4>] (driver_register+0x9c/0x12c) from
> [<c029daa4>] (platform_driver_probe+0x18/0x9c)
> [    3.862243] [<c029daa4>] (platform_driver_probe+0x18/0x9c) from
> [<c0689234>] (omapfb_init+0x28/0x54)
> [    3.871826] [<c0689234>] (omapfb_init+0x28/0x54) from [<c0008654>]
> (do_one_initcall+0x90/0x160)
> [    3.880950] [<c0008654>] (do_one_initcall+0x90/0x160) from
> [<c06698d8>] (kernel_init+0x138/0x1f8)
> [    3.890228] [<c06698d8>] (kernel_init+0x138/0x1f8) from
> [<c000eea8>] (kernel_thread_exit+0x0/0x8)
> [    3.899566] Code: e3e00015 e8bd8010 c05d88aa e92d4008 (e5900028)
> [    3.906097] ---[ end trace 38f657b10d460537 ]---
> 
> It seems that dss_mgr_check_timings is being called with a null dssdev->manager.
> 
> Other than the fact that there should be a null pointer check in the
> code, it seems that this is a regression since it used to be possible
> to switch the default display in this fashion.  Is this no longer
> allowed?

It is allowed. Which kernel is that? I tried v3.7-rc4 and the current
omapdss master, both work for me with overo + lcd43 add on.

 Tomi
Enric Balletbo Serra Nov. 29, 2012, 11:33 a.m. UTC | #2
2012/11/29 Tomi Valkeinen <tomi.valkeinen@ti.com>:
> On 2012-11-27 21:15, Steve Sakoman wrote:
>
>> During my testing I think I uncovered another issue :-(
>>
>> I set omapdss.def_disp=lcd43 on the kernel command line to see if the
>> behavior changed with the LCD as the default device.
>>
>> What I encountered was a null pointer crash:
>>
>> [    3.483062] fbcvt: 1024x768@60: CVT Name - .786M3-R
>> [    3.488250] Unable to handle kernel NULL pointer dereference at
>> virtual address 00000028
>> [    3.496765] pgd = c0004000
>> [    3.499603] [00000028] *pgd=00000000
>> [    3.503387] Internal error: Oops: 5 [#1] PREEMPT ARM
>> [    3.508605] Modules linked in:
>> [    3.511810] CPU: 0    Not tainted  (3.6.0 #1)
>> [    3.516357] PC is at dss_mgr_check_timings+0x4/0x30
>> [    3.521484] LR is at dpi_check_timings+0x18/0xb8
>> [    3.526336] pc : [<c025df70>]    lr : [<c0260dc0>]    psr: 40000013
>> [    3.526336] sp : dec2bd88  ip : 22222222  fp : def7e180
>> [    3.538330] r10: def951c0  r9 : def61000  r8 : de41b858
>> [    3.543823] r7 : dec2bdfc  r6 : c06c0a50  r5 : dec2be00  r4 : deea1cd4
>> [    3.550659] r3 : dec1ba40  r2 : dec2bdc8  r1 : dec2be00  r0 : 00000000
>> [    3.557495] Flags: nZcv  IRQs on  FIQs on  Mode SVC_32  ISA ARM
>> Segment kernel
>> [    3.565155] Control: 10c5387d  Table: 80004019  DAC: 00000015
>> [    3.571166] Process swapper (pid: 1, stack limit = 0xdec2a2f0)
>> [    3.577270] Stack: (0xdec2bd88 to 0xdec2c000)
>> [    3.581848] bd80:                   dec1ba40 c0260dc0 ffffffff
>> deea1cd4 def7e180 c046a7d0
>> [    3.590423] bda0: 22222222 22222222 22222222 22222222 deea1cd4
>> c06c0a50 dec2be00 dec2bdfc
>> [    3.598968] bdc0: deea1cd4 c06c0a50 dec2be00 c026e738 c06c0a50
>> 00000000 de41b800 c046749c
>> [    3.607513] bde0: 0000003d c0495788 00000018 00000000 00000010
>> def98640 dec00140 00000000
>> [    3.616088] be00: 03000400 0000dac0 00300020 00040050 0003000f
>> 00000001 00000000 00000000
>> [    3.624664] be20: 00000001 00000000 00000000 c0459380 deea257c
>> c06c0d00 dec2be50 00000000
>> [    3.633209] be40: c025cc10 c029a98c 00000000 c029ae80 dec075d8
>> 00000000 00000000 de41b800
>> [    3.641784] be60: c06c1200 c06c3098 c06c3090 de41b80c 00000002
>> 00000001 de41b800 c0689470
>> [    3.650360] be80: def99148 def99148 dec2beb8 c01371c4 dec1ba40
>> 00000000 def99148 decdf208
>> [    3.658935] bea0: def95240 c0137e24 00000000 c0054e18 00000000
>> 00000003 decdf208 00000000
>> [    3.667510] bec0: c06e25dc c06c3098 c06e25dc c06e25dc c029c728
>> 0000009e 00000000 c068920c
>> [    3.676055] bee0: 00000000 c029d830 c029d81c c029c514 c06e25dc
>> c06c3098 c06c3098 c06c30cc
>> [    3.684631] bf00: c06e25dc c029c790 00000000 dec2bf18 c06e25dc
>> c029aa9c dec077d8 decd9670
>> [    3.693176] bf20: c06e25dc c06e25dc c06e8868 def95240 00000000
>> c029bb2c c05a9b18 c05a9b18
>> [    3.701751] bf40: c06e25dc 00000001 c06a0c9c c0710300 0000009e
>> c029ccb4 00000000 c06e25c8
>> [    3.710296] bf60: 00000001 c06a0c9c c0710300 0000009e c068920c
>> c029daa4 00000007 c06967d8
>> [    3.718872] bf80: c06a0c9c c0689234 dec2a000 c0008654 c068920c
>> 976c0d2e c06a0cc4 00000008
>> [    3.727447] bfa0: 00000007 c06967d8 c06a0c9c c0710300 0000009e
>> c0669160 c06967e0 c06698d8
>> [    3.735992] bfc0: 00000007 00000007 c0669160 00000013 00000000
>> 00000000 00000000 c06697a0
>> [    3.744567] bfe0: c000eea8 00000013 00000000 00000000 00000000
>> c000eea8 fffffff7 dffefffe
>> [    3.753143] [<c025df70>] (dss_mgr_check_timings+0x4/0x30) from
>> [<c0260dc0>] (dpi_check_timings+0x18/0xb8)
>> [    3.763183] [<c0260dc0>] (dpi_check_timings+0x18/0xb8) from
>> [<c026e738>] (tfp410_check_timings+0x28/0x3c)
>> [    3.773223] [<c026e738>] (tfp410_check_timings+0x28/0x3c) from
>> [<c046749c>] (omapfb_parse_def_modes+0x338/0x3f4)
>> [    3.783905] [<c046749c>] (omapfb_parse_def_modes+0x338/0x3f4) from
>> [<c0689470>] (omapfb_probe+0x210/0x600)
>> [    3.794036] [<c0689470>] (omapfb_probe+0x210/0x600) from
>> [<c029d830>] (platform_drv_probe+0x14/0x18)
>> [    3.803619] [<c029d830>] (platform_drv_probe+0x14/0x18) from
>> [<c029c514>] (driver_probe_device+0x11c/0x330)
>> [    3.813812] [<c029c514>] (driver_probe_device+0x11c/0x330) from
>> [<c029c790>] (__driver_attach+0x68/0x8c)
>> [    3.823760] [<c029c790>] (__driver_attach+0x68/0x8c) from
>> [<c029aa9c>] (bus_for_each_dev+0x48/0x80)
>> [    3.833251] [<c029aa9c>] (bus_for_each_dev+0x48/0x80) from
>> [<c029bb2c>] (bus_add_driver+0xf0/0x248)
>> [    3.842742] [<c029bb2c>] (bus_add_driver+0xf0/0x248) from
>> [<c029ccb4>] (driver_register+0x9c/0x12c)
>> [    3.852203] [<c029ccb4>] (driver_register+0x9c/0x12c) from
>> [<c029daa4>] (platform_driver_probe+0x18/0x9c)
>> [    3.862243] [<c029daa4>] (platform_driver_probe+0x18/0x9c) from
>> [<c0689234>] (omapfb_init+0x28/0x54)
>> [    3.871826] [<c0689234>] (omapfb_init+0x28/0x54) from [<c0008654>]
>> (do_one_initcall+0x90/0x160)
>> [    3.880950] [<c0008654>] (do_one_initcall+0x90/0x160) from
>> [<c06698d8>] (kernel_init+0x138/0x1f8)
>> [    3.890228] [<c06698d8>] (kernel_init+0x138/0x1f8) from
>> [<c000eea8>] (kernel_thread_exit+0x0/0x8)
>> [    3.899566] Code: e3e00015 e8bd8010 c05d88aa e92d4008 (e5900028)
>> [    3.906097] ---[ end trace 38f657b10d460537 ]---
>>
>> It seems that dss_mgr_check_timings is being called with a null dssdev->manager.
>>
>> Other than the fact that there should be a null pointer check in the
>> code, it seems that this is a regression since it used to be possible
>> to switch the default display in this fashion.  Is this no longer
>> allowed?
>
> It is allowed. Which kernel is that? I tried v3.7-rc4 and the current
> omapdss master, both work for me with overo + lcd43 add on.
>

Sorry for the delay, I also can't reproduce the issue, I think is
related due I upgrated the X server to a newer version. I would
recover my old rootfs to try to reproduce the issue...

>  Tomi
>
>
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Steve Sakoman Nov. 29, 2012, 2:18 p.m. UTC | #3
On Thu, Nov 29, 2012 at 3:22 AM, Tomi Valkeinen <tomi.valkeinen@ti.com> wrote:
> On 2012-11-27 21:15, Steve Sakoman wrote:
>> It seems that dss_mgr_check_timings is being called with a null dssdev->manager.
>>
>> Other than the fact that there should be a null pointer check in the
>> code, it seems that this is a regression since it used to be possible
>> to switch the default display in this fashion.  Is this no longer
>> allowed?
>
> It is allowed. Which kernel is that? I tried v3.7-rc4 and the current
> omapdss master, both work for me with overo + lcd43 add on.

It is stock Linux 3.6 (i.e. commit a0d271cbfed1dd50278c6b06bead3d00ba0a88f9)

Steve
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Steve Sakoman Nov. 29, 2012, 2:24 p.m. UTC | #4
On Thu, Nov 29, 2012 at 3:33 AM, Enric Balletbo Serra
<eballetbo@gmail.com> wrote:

> Sorry for the delay, I also can't reproduce the issue, I think is
> related due I upgrated the X server to a newer version. I would
> recover my old rootfs to try to reproduce the issue...

I am using xorg-server-1.11.2, which version have you switched to?

Steve
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Enric Balletbo Serra Nov. 29, 2012, 2:30 p.m. UTC | #5
2012/11/29 Steve Sakoman <sakoman@gmail.com>:
> On Thu, Nov 29, 2012 at 3:33 AM, Enric Balletbo Serra
> <eballetbo@gmail.com> wrote:
>
>> Sorry for the delay, I also can't reproduce the issue, I think is
>> related due I upgrated the X server to a newer version. I would
>> recover my old rootfs to try to reproduce the issue...
>
> I am using xorg-server-1.11.2, which version have you switched to?

I'm using version 1.13.0, but now I'm not sure if I have solved the
problem using this version or updating the kernel. I need to check.

>
> Steve
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Tomi Valkeinen Nov. 29, 2012, 2:31 p.m. UTC | #6
On 2012-11-29 16:18, Steve Sakoman wrote:
> On Thu, Nov 29, 2012 at 3:22 AM, Tomi Valkeinen <tomi.valkeinen@ti.com> wrote:
>> On 2012-11-27 21:15, Steve Sakoman wrote:
>>> It seems that dss_mgr_check_timings is being called with a null dssdev->manager.
>>>
>>> Other than the fact that there should be a null pointer check in the
>>> code, it seems that this is a regression since it used to be possible
>>> to switch the default display in this fashion.  Is this no longer
>>> allowed?
>>
>> It is allowed. Which kernel is that? I tried v3.7-rc4 and the current
>> omapdss master, both work for me with overo + lcd43 add on.
> 
> It is stock Linux 3.6 (i.e. commit a0d271cbfed1dd50278c6b06bead3d00ba0a88f9)

Still can't reproduce. So does the null pointer deref happen at boot
time? What display related kernel boot options do you have? This looks
funny, considering lcd43 is a bit smaller lcd:

[    3.483062] fbcvt: 1024x768@60: CVT Name - .786M3-R

 Tomi
Steve Sakoman Nov. 29, 2012, 2:53 p.m. UTC | #7
On Thu, Nov 29, 2012 at 6:31 AM, Tomi Valkeinen <tomi.valkeinen@ti.com> wrote:

>> It is stock Linux 3.6 (i.e. commit a0d271cbfed1dd50278c6b06bead3d00ba0a88f9)
>
> Still can't reproduce. So does the null pointer deref happen at boot
> time? What display related kernel boot options do you have? This looks
> funny, considering lcd43 is a bit smaller lcd:

Yes, it happens at boot time.

The boot options:

[    0.000000] Kernel command line: console=ttyO2,115200n8 mpurate=500
vram=12M omapfb.mode=dvi:1024x768MR-16@60 omapdss.def_disp=lcd43
root=/dev/mmcblk0p2 rw rootfstype=ext3 rootwait

My DSS config options:

#
# Frame buffer hardware drivers
#
# CONFIG_FB_S1D13XXX is not set
# CONFIG_FB_TMIO is not set
# CONFIG_FB_SMSCUFX is not set
# CONFIG_FB_UDL is not set
# CONFIG_FB_VIRTUAL is not set
# CONFIG_FB_METRONOME is not set
# CONFIG_FB_BROADSHEET is not set
# CONFIG_FB_AUO_K190X is not set
CONFIG_OMAP2_VRAM=y
CONFIG_OMAP2_VRFB=y
CONFIG_OMAP2_DSS=y
CONFIG_OMAP2_VRAM_SIZE=12
CONFIG_OMAP2_DSS_DEBUG_SUPPORT=y
# CONFIG_OMAP2_DSS_COLLECT_IRQ_STATS is not set
CONFIG_OMAP2_DSS_DPI=y
# CONFIG_OMAP2_DSS_RFBI is not set
CONFIG_OMAP2_DSS_VENC=y
# CONFIG_OMAP2_DSS_SDI is not set
CONFIG_OMAP2_DSS_DSI=y
CONFIG_OMAP2_DSS_MIN_FCK_PER_PCK=0
CONFIG_OMAP2_DSS_SLEEP_AFTER_VENC_RESET=y
CONFIG_FB_OMAP2=y
CONFIG_FB_OMAP2_DEBUG_SUPPORT=y
CONFIG_FB_OMAP2_NUM_FBS=3

#
# OMAP2/3 Display Device Drivers
#
CONFIG_PANEL_GENERIC_DPI=y
CONFIG_PANEL_TFP410=y
CONFIG_PANEL_LGPHILIPS_LB035Q02=y
CONFIG_PANEL_SHARP_LS037V7DW01=y
# CONFIG_PANEL_NEC_NL8048HL11_01B is not set
# CONFIG_PANEL_PICODLP is not set
# CONFIG_PANEL_TAAL is not set
# CONFIG_PANEL_TPO_TD043MTEA1 is not set
# CONFIG_EXYNOS_VIDEO is not set
CONFIG_BACKLIGHT_LCD_SUPPORT=y
CONFIG_LCD_CLASS_DEVICE=m
# CONFIG_LCD_L4F00242T03 is not set
# CONFIG_LCD_LMS283GF05 is not set
# CONFIG_LCD_LTV350QV is not set
# CONFIG_LCD_TDO24M is not set
# CONFIG_LCD_VGG2432A4 is not set
# CONFIG_LCD_PLATFORM is not set
# CONFIG_LCD_S6E63M0 is not set
# CONFIG_LCD_LD9040 is not set
# CONFIG_LCD_AMS369FG06 is not set
CONFIG_BACKLIGHT_CLASS_DEVICE=y
CONFIG_BACKLIGHT_GENERIC=m
# CONFIG_BACKLIGHT_ADP8860 is not set
# CONFIG_BACKLIGHT_ADP8870 is not set
# CONFIG_BACKLIGHT_LP855X is not set
# CONFIG_BACKLIGHT_PANDORA is not set


Steve
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Tomi Valkeinen Nov. 29, 2012, 2:56 p.m. UTC | #8
On 2012-11-29 16:53, Steve Sakoman wrote:
> On Thu, Nov 29, 2012 at 6:31 AM, Tomi Valkeinen <tomi.valkeinen@ti.com> wrote:
> 
>>> It is stock Linux 3.6 (i.e. commit a0d271cbfed1dd50278c6b06bead3d00ba0a88f9)
>>
>> Still can't reproduce. So does the null pointer deref happen at boot
>> time? What display related kernel boot options do you have? This looks
>> funny, considering lcd43 is a bit smaller lcd:
> 
> Yes, it happens at boot time.
> 
> The boot options:
> 
> [    0.000000] Kernel command line: console=ttyO2,115200n8 mpurate=500
> vram=12M omapfb.mode=dvi:1024x768MR-16@60 omapdss.def_disp=lcd43
> root=/dev/mmcblk0p2 rw rootfstype=ext3 rootwait

Ok, now I see it. It happens because DVI is not configured to be used,
but you have DVI video mode specified in the command line.

I'll study this further and make a fix.

 Tomi
Javier Martinez Canillas Dec. 18, 2012, 8:31 a.m. UTC | #9
On Thu, Nov 29, 2012 at 3:56 PM, Tomi Valkeinen <tomi.valkeinen@ti.com> wrote:
> On 2012-11-29 16:53, Steve Sakoman wrote:
>> On Thu, Nov 29, 2012 at 6:31 AM, Tomi Valkeinen <tomi.valkeinen@ti.com> wrote:
>>
>>>> It is stock Linux 3.6 (i.e. commit a0d271cbfed1dd50278c6b06bead3d00ba0a88f9)
>>>
>>> Still can't reproduce. So does the null pointer deref happen at boot
>>> time? What display related kernel boot options do you have? This looks
>>> funny, considering lcd43 is a bit smaller lcd:
>>
>> Yes, it happens at boot time.
>>
>> The boot options:
>>
>> [    0.000000] Kernel command line: console=ttyO2,115200n8 mpurate=500
>> vram=12M omapfb.mode=dvi:1024x768MR-16@60 omapdss.def_disp=lcd43
>> root=/dev/mmcblk0p2 rw rootfstype=ext3 rootwait
>
> Ok, now I see it. It happens because DVI is not configured to be used,
> but you have DVI video mode specified in the command line.
>
> I'll study this further and make a fix.
>
>  Tomi
>
>
>

Hello folks,

Did you find a solution for this?

I still have the issue, when trying to start X I got:

[   25.152160] OMAPFB: ioctl QUERY_PLANE
[   25.156066] OMAPFB: ioctl SETUP_PLANE
[   25.160095] OMAPFB: omapfb_setup_plane
[   25.164093] omapdss OVERLAY error: check_overlay: paddr cannot be 0
[   25.170684] omapdss OVERLAY error: check_overlay: paddr cannot be 0
[   25.177337] omapfb omapfb: setup_plane failed
[   25.181976] OMAPFB: ioctl failed: -22

I'm using the arm-soc.git tree with the latest fixes and cleanups for
v3.8 sent by Tony yesterday and Xorg 1.13.

The latest commit id is:

commit aad05c3602ba5c42ff8d0e572b2f614f25779ede
Merge: eccf4b3 f64d204
Author: Olof Johansson <olof@lixom.net>
Date:   Mon Dec 17 18:44:26 2012 -0800

    Merge branch 'late/omap-cleanup' into for-next

I've CONFIG_OMAP2_DSS, CONFIG_FB_OMAP2 and CONFIG_PANEL_TFP410
built-in and this is my kernel command line is:

console=ttyO2,115200n8 mpurate=auto vram=12M
omapfb.mode=dvi:1024x768MR-16@60 omapfb.debug=y omapdss.def_disp=dvi
root=/dev/mmcblk0p2 rw rootfstype=ext4 rootwait

Also I have this log about a locking dependency:

[   24.690795]
[   24.690826] ======================================================
[   24.690826] [ INFO: possible circular locking dependency detected ]
[   24.690826] 3.7.0-00017-g6c2ecfb-dirty #144 Not tainted
[   24.690826] -------------------------------------------------------
[   24.690826] Xorg/1259 is trying to acquire lock:
[   24.690887]  ((fb_notifier_list).rwsem){.+.+.+}, at: [<c0068708>]
__blocking_notifier_call_chain+0x30/0x60
[   24.690887]
[   24.690887] but task is already holding lock:
[   24.690917]  (console_lock){+.+.+.}, at: [<c02cec98>] do_fb_ioctl+0x200/0x5d8
[   24.690917]
[   24.690917] which lock already depends on the new lock.
[   24.690917]
[   24.690917]
[   24.690917] the existing dependency chain (in reverse order) is:
[   24.690948]
[   24.690948] -> #1 (console_lock){+.+.+.}:
[   24.690979]        [<c00902a4>] lock_acquire+0x9c/0x124
[   24.690979]        [<c0042b0c>] console_lock+0x50/0x64
[   24.691009]        [<c0320bd0>] register_con_driver+0x38/0x134
[   24.691009]        [<c03221a0>] take_over_console+0x18/0x44
[   24.691040]        [<c02d7674>] fbcon_takeover+0x64/0xc8
[   24.691070]        [<c04f4dd4>] notifier_call_chain+0x44/0x84
[   24.691070]        [<c0068720>] __blocking_notifier_call_chain+0x48/0x60
[   24.691070]        [<c0068750>] blocking_notifier_call_chain+0x18/0x20
[   24.691101]        [<c02cf654>] register_framebuffer+0x16c/0x23c
[   24.691131]        [<c04ee990>] omapfb_create_framebuffers+0x520/0x700
[   24.691131]        [<c0723480>] omapfb_probe+0x4e4/0x768
[   24.691162]        [<c03399f8>] platform_drv_probe+0x18/0x1c
[   24.691162]        [<c03387b4>] driver_probe_device+0x78/0x210
[   24.691192]        [<c03389e0>] __driver_attach+0x94/0x98
[   24.691192]        [<c03370b4>] bus_for_each_dev+0x50/0x7c
[   24.691223]        [<c0337fe0>] bus_add_driver+0x178/0x240
[   24.691223]        [<c0338eb0>] driver_register+0x78/0x144
[   24.691253]        [<c0339be8>] platform_driver_probe+0x18/0x9c
[   24.691253]        [<c0722f70>] omapfb_init+0x28/0x54
[   24.691284]        [<c00086a4>] do_one_initcall+0x34/0x178
[   24.691284]        [<c04e47ac>] kernel_init+0x100/0x2b4
[   24.691314]        [<c0013170>] ret_from_fork+0x14/0x24
[   24.691314]
[   24.691314] -> #0 ((fb_notifier_list).rwsem){.+.+.+}:
[   24.691345]        [<c008f85c>] __lock_acquire+0x15e4/0x1b00
[   24.691345]        [<c00902a4>] lock_acquire+0x9c/0x124
[   24.691375]        [<c04f0eb8>] down_read+0x2c/0x3c
[   24.691375]        [<c0068708>] __blocking_notifier_call_chain+0x30/0x60
[   24.691406]        [<c0068750>] blocking_notifier_call_chain+0x18/0x20
[   24.691406]        [<c02ce1c0>] fb_blank+0x34/0x98
[   24.691436]        [<c02cecb0>] do_fb_ioctl+0x218/0x5d8
[   24.691436]        [<c0114924>] do_vfs_ioctl+0x80/0x5f0
[   24.691467]        [<c0114f04>] sys_ioctl+0x70/0x78
[   24.691467]        [<c00130c0>] ret_fast_syscall+0x0/0x3c
[   24.691467]
[   24.691467] other info that might help us debug this:
[   24.691467]
[   24.691497]  Possible unsafe locking scenario:
[   24.691497]
[   24.691497]        CPU0                    CPU1
[   24.691497]        ----                    ----
[   24.691497]   lock(console_lock);
[   24.691497]                                lock((fb_notifier_list).rwsem);
[   24.691528]                                lock(console_lock);
[   24.691528]   lock((fb_notifier_list).rwsem);
[   24.691528]
[   24.691528]  *** DEADLOCK ***
[   24.691528]
[   24.691528] 2 locks held by Xorg/1259:
[   24.691558]  #0:  (&fb_info->lock){+.+.+.}, at: [<c02cdf9c>]
lock_fb_info+0x18/0x3c
[   24.691589]  #1:  (console_lock){+.+.+.}, at: [<c02cec98>]
do_fb_ioctl+0x200/0x5d8
[   24.691589]
[   24.691589] stack backtrace:
[   24.691619] [<c001ac2c>] (unwind_backtrace+0x0/0xf0) from
[<c04eb508>] (print_circular_bug+0x278/0x2c4)
[   24.691650] [<c04eb508>] (print_circular_bug+0x278/0x2c4) from
[<c008f85c>] (__lock_acquire+0x15e4/0x1b00)
[   24.691650] [<c008f85c>] (__lock_acquire+0x15e4/0x1b00) from
[<c00902a4>] (lock_acquire+0x9c/0x124)
[   24.691680] [<c00902a4>] (lock_acquire+0x9c/0x124) from
[<c04f0eb8>] (down_read+0x2c/0x3c)
[   24.691711] [<c04f0eb8>] (down_read+0x2c/0x3c) from [<c0068708>]
(__blocking_notifier_call_chain+0x30/0x60)
[   24.691711] [<c0068708>] (__blocking_notifier_call_chain+0x30/0x60)
from [<c0068750>] (blocking_notifier_call_chain+0x18/0x20)
[   24.691741] [<c0068750>] (blocking_notifier_call_chain+0x18/0x20)
from [<c02ce1c0>] (fb_blank+0x34/0x98)
[   24.691741] [<c02ce1c0>] (fb_blank+0x34/0x98) from [<c02cecb0>]
(do_fb_ioctl+0x218/0x5d8)
[   24.691772] [<c02cecb0>] (do_fb_ioctl+0x218/0x5d8) from
[<c0114924>] (do_vfs_ioctl+0x80/0x5f0)
[   24.691772] [<c0114924>] (do_vfs_ioctl+0x80/0x5f0) from
[<c0114f04>] (sys_ioctl+0x70/0x78)
[   24.691802] [<c0114f04>] (sys_ioctl+0x70/0x78) from [<c00130c0>]
(ret_fast_syscall+0x0/0x3c)

I will look at this, but just wanted to ask first in case I missed
some patches that already fix this.

My complete .config [1], dmesg [2] and xorg.conf [3].

Thanks a lot and best regards,
Javier

[1]: http://fpaste.org/DJgw/
[2]: http://fpaste.org/XEs5/
[3]: http://fpaste.org/dhWd/
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Javier Martinez Canillas Dec. 18, 2012, 11:23 a.m. UTC | #10
On Tue, Dec 18, 2012 at 9:31 AM, Javier Martinez Canillas
<martinez.javier@gmail.com> wrote:
> On Thu, Nov 29, 2012 at 3:56 PM, Tomi Valkeinen <tomi.valkeinen@ti.com> wrote:
>> On 2012-11-29 16:53, Steve Sakoman wrote:
>>> On Thu, Nov 29, 2012 at 6:31 AM, Tomi Valkeinen <tomi.valkeinen@ti.com> wrote:
>>>
>>>>> It is stock Linux 3.6 (i.e. commit a0d271cbfed1dd50278c6b06bead3d00ba0a88f9)
>>>>
>>>> Still can't reproduce. So does the null pointer deref happen at boot
>>>> time? What display related kernel boot options do you have? This looks
>>>> funny, considering lcd43 is a bit smaller lcd:
>>>
>>> Yes, it happens at boot time.
>>>
>>> The boot options:
>>>
>>> [    0.000000] Kernel command line: console=ttyO2,115200n8 mpurate=500
>>> vram=12M omapfb.mode=dvi:1024x768MR-16@60 omapdss.def_disp=lcd43
>>> root=/dev/mmcblk0p2 rw rootfstype=ext3 rootwait
>>
>> Ok, now I see it. It happens because DVI is not configured to be used,
>> but you have DVI video mode specified in the command line.
>>
>> I'll study this further and make a fix.
>>
>>  Tomi
>>
>>
>>
>
> Hello folks,
>
> Did you find a solution for this?
>
> I still have the issue, when trying to start X I got:
>
> [   25.152160] OMAPFB: ioctl QUERY_PLANE
> [   25.156066] OMAPFB: ioctl SETUP_PLANE
> [   25.160095] OMAPFB: omapfb_setup_plane
> [   25.164093] omapdss OVERLAY error: check_overlay: paddr cannot be 0
> [   25.170684] omapdss OVERLAY error: check_overlay: paddr cannot be 0
> [   25.177337] omapfb omapfb: setup_plane failed
> [   25.181976] OMAPFB: ioctl failed: -22
>
> I'm using the arm-soc.git tree with the latest fixes and cleanups for
> v3.8 sent by Tony yesterday and Xorg 1.13.
>
> The latest commit id is:
>
> commit aad05c3602ba5c42ff8d0e572b2f614f25779ede
> Merge: eccf4b3 f64d204
> Author: Olof Johansson <olof@lixom.net>
> Date:   Mon Dec 17 18:44:26 2012 -0800
>
>     Merge branch 'late/omap-cleanup' into for-next
>
> I've CONFIG_OMAP2_DSS, CONFIG_FB_OMAP2 and CONFIG_PANEL_TFP410
> built-in and this is my kernel command line is:
>
> console=ttyO2,115200n8 mpurate=auto vram=12M
> omapfb.mode=dvi:1024x768MR-16@60 omapfb.debug=y omapdss.def_disp=dvi
> root=/dev/mmcblk0p2 rw rootfstype=ext4 rootwait
>
> Also I have this log about a locking dependency:
>
> [   24.690795]
> [   24.690826] ======================================================
> [   24.690826] [ INFO: possible circular locking dependency detected ]
> [   24.690826] 3.7.0-00017-g6c2ecfb-dirty #144 Not tainted
> [   24.690826] -------------------------------------------------------
> [   24.690826] Xorg/1259 is trying to acquire lock:
> [   24.690887]  ((fb_notifier_list).rwsem){.+.+.+}, at: [<c0068708>]
> __blocking_notifier_call_chain+0x30/0x60
> [   24.690887]
> [   24.690887] but task is already holding lock:
> [   24.690917]  (console_lock){+.+.+.}, at: [<c02cec98>] do_fb_ioctl+0x200/0x5d8
> [   24.690917]
> [   24.690917] which lock already depends on the new lock.
> [   24.690917]
> [   24.690917]
> [   24.690917] the existing dependency chain (in reverse order) is:
> [   24.690948]
> [   24.690948] -> #1 (console_lock){+.+.+.}:
> [   24.690979]        [<c00902a4>] lock_acquire+0x9c/0x124
> [   24.690979]        [<c0042b0c>] console_lock+0x50/0x64
> [   24.691009]        [<c0320bd0>] register_con_driver+0x38/0x134
> [   24.691009]        [<c03221a0>] take_over_console+0x18/0x44
> [   24.691040]        [<c02d7674>] fbcon_takeover+0x64/0xc8
> [   24.691070]        [<c04f4dd4>] notifier_call_chain+0x44/0x84
> [   24.691070]        [<c0068720>] __blocking_notifier_call_chain+0x48/0x60
> [   24.691070]        [<c0068750>] blocking_notifier_call_chain+0x18/0x20
> [   24.691101]        [<c02cf654>] register_framebuffer+0x16c/0x23c
> [   24.691131]        [<c04ee990>] omapfb_create_framebuffers+0x520/0x700
> [   24.691131]        [<c0723480>] omapfb_probe+0x4e4/0x768
> [   24.691162]        [<c03399f8>] platform_drv_probe+0x18/0x1c
> [   24.691162]        [<c03387b4>] driver_probe_device+0x78/0x210
> [   24.691192]        [<c03389e0>] __driver_attach+0x94/0x98
> [   24.691192]        [<c03370b4>] bus_for_each_dev+0x50/0x7c
> [   24.691223]        [<c0337fe0>] bus_add_driver+0x178/0x240
> [   24.691223]        [<c0338eb0>] driver_register+0x78/0x144
> [   24.691253]        [<c0339be8>] platform_driver_probe+0x18/0x9c
> [   24.691253]        [<c0722f70>] omapfb_init+0x28/0x54
> [   24.691284]        [<c00086a4>] do_one_initcall+0x34/0x178
> [   24.691284]        [<c04e47ac>] kernel_init+0x100/0x2b4
> [   24.691314]        [<c0013170>] ret_from_fork+0x14/0x24
> [   24.691314]
> [   24.691314] -> #0 ((fb_notifier_list).rwsem){.+.+.+}:
> [   24.691345]        [<c008f85c>] __lock_acquire+0x15e4/0x1b00
> [   24.691345]        [<c00902a4>] lock_acquire+0x9c/0x124
> [   24.691375]        [<c04f0eb8>] down_read+0x2c/0x3c
> [   24.691375]        [<c0068708>] __blocking_notifier_call_chain+0x30/0x60
> [   24.691406]        [<c0068750>] blocking_notifier_call_chain+0x18/0x20
> [   24.691406]        [<c02ce1c0>] fb_blank+0x34/0x98
> [   24.691436]        [<c02cecb0>] do_fb_ioctl+0x218/0x5d8
> [   24.691436]        [<c0114924>] do_vfs_ioctl+0x80/0x5f0
> [   24.691467]        [<c0114f04>] sys_ioctl+0x70/0x78
> [   24.691467]        [<c00130c0>] ret_fast_syscall+0x0/0x3c
> [   24.691467]
> [   24.691467] other info that might help us debug this:
> [   24.691467]
> [   24.691497]  Possible unsafe locking scenario:
> [   24.691497]
> [   24.691497]        CPU0                    CPU1
> [   24.691497]        ----                    ----
> [   24.691497]   lock(console_lock);
> [   24.691497]                                lock((fb_notifier_list).rwsem);
> [   24.691528]                                lock(console_lock);
> [   24.691528]   lock((fb_notifier_list).rwsem);
> [   24.691528]
> [   24.691528]  *** DEADLOCK ***
> [   24.691528]
> [   24.691528] 2 locks held by Xorg/1259:
> [   24.691558]  #0:  (&fb_info->lock){+.+.+.}, at: [<c02cdf9c>]
> lock_fb_info+0x18/0x3c
> [   24.691589]  #1:  (console_lock){+.+.+.}, at: [<c02cec98>]
> do_fb_ioctl+0x200/0x5d8
> [   24.691589]
> [   24.691589] stack backtrace:
> [   24.691619] [<c001ac2c>] (unwind_backtrace+0x0/0xf0) from
> [<c04eb508>] (print_circular_bug+0x278/0x2c4)
> [   24.691650] [<c04eb508>] (print_circular_bug+0x278/0x2c4) from
> [<c008f85c>] (__lock_acquire+0x15e4/0x1b00)
> [   24.691650] [<c008f85c>] (__lock_acquire+0x15e4/0x1b00) from
> [<c00902a4>] (lock_acquire+0x9c/0x124)
> [   24.691680] [<c00902a4>] (lock_acquire+0x9c/0x124) from
> [<c04f0eb8>] (down_read+0x2c/0x3c)
> [   24.691711] [<c04f0eb8>] (down_read+0x2c/0x3c) from [<c0068708>]
> (__blocking_notifier_call_chain+0x30/0x60)
> [   24.691711] [<c0068708>] (__blocking_notifier_call_chain+0x30/0x60)
> from [<c0068750>] (blocking_notifier_call_chain+0x18/0x20)
> [   24.691741] [<c0068750>] (blocking_notifier_call_chain+0x18/0x20)
> from [<c02ce1c0>] (fb_blank+0x34/0x98)
> [   24.691741] [<c02ce1c0>] (fb_blank+0x34/0x98) from [<c02cecb0>]
> (do_fb_ioctl+0x218/0x5d8)
> [   24.691772] [<c02cecb0>] (do_fb_ioctl+0x218/0x5d8) from
> [<c0114924>] (do_vfs_ioctl+0x80/0x5f0)
> [   24.691772] [<c0114924>] (do_vfs_ioctl+0x80/0x5f0) from
> [<c0114f04>] (sys_ioctl+0x70/0x78)
> [   24.691802] [<c0114f04>] (sys_ioctl+0x70/0x78) from [<c00130c0>]
> (ret_fast_syscall+0x0/0x3c)
>
> I will look at this, but just wanted to ask first in case I missed
> some patches that already fix this.
>
> My complete .config [1], dmesg [2] and xorg.conf [3].
>
> Thanks a lot and best regards,
> Javier
>
> [1]: http://fpaste.org/DJgw/
> [2]: http://fpaste.org/XEs5/
> [3]: http://fpaste.org/dhWd/

I've confirmed that this is the same issue that Steve had
(dss_ovl_simple_check() failing due info->paddr == 0), so I tried his
patch to force dss_ovl_simple_check() to always succeed. The second
SETUP_PLANE ioctl doesn't fail anymore and I can see Xorg server is
running.

But still I don't have any output on the screen. Any hints will be appreciated.

Here is my complete dmesg:

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 3.7.0-00017-g6c2ecfb-dirty (javier@munra)
(gcc version 4.6.3 (crosstool-NG linaro-1.13.1+bzr2368 - Linaro GCC
2012.03) ) #155 SMP Tue Dec 18 12:14:19 CET 2012
[    0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c53c7d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing
instruction cache
[    0.000000] Machine: IGEP v2 board
[    0.000000] Memory policy: ECC disabled, Data cache writeback
[    0.000000] On node 0 totalpages: 130816
[    0.000000] free_area_init_node: node 0, pgdat c07e09c0,
node_mem_map c0d40000
[    0.000000]   Normal zone: 1024 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000]   Normal zone: 129792 pages, LIFO batch:31
[    0.000000] OMAP3630 ES1.2 (l2cache iva sgx neon isp 192mhz_clk )
[    0.000000] Clocking rate (Crystal/Core/MPU): 26.0/400/600 MHz
[    0.000000] PERCPU: Embedded 9 pages/cpu @c1148000 s12992 r8192 d15680 u36864
[    0.000000] pcpu-alloc: s12992 r8192 d15680 u36864 alloc=9*4096
[    0.000000] pcpu-alloc: [0] 0
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.
Total pages: 129792
[    0.000000] Kernel command line: console=ttyO2,115200n8
mpurate=auto vram=12M omapfb.mode=dvi:1024x768MR-16@60 omapfb.debug=y
omapdss.def_disp=dvi root=/dev/mmcblk0p2 rw rootfstype=ext4 rootwait
[    0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)
[    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.000000] __ex_table already sorted, skipping sort
[    0.000000] Memory: 511MB = 511MB total
[    0.000000] Memory: 505132k/505132k available, 19156k reserved, 0K highmem
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
[    0.000000]     vmalloc : 0xe0800000 - 0xff000000   ( 488 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xe0000000   ( 512 MB)
[    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
[    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)
[    0.000000]       .text : 0xc0008000 - 0xc06fc424   (7122 kB)
[    0.000000]       .init : 0xc06fd000 - 0xc07512c0   ( 337 kB)
[    0.000000]       .data : 0xc0752000 - 0xc07e3388   ( 581 kB)
[    0.000000]        .bss : 0xc07e33ac - 0xc0d3fab0   (5490 kB)
[    0.000000] Hierarchical RCU implementation.
[    0.000000] 	RCU restricting CPUs from NR_CPUS=2 to nr_cpu_ids=1.
[    0.000000] NR_IRQS:16 nr_irqs:16 16
[    0.000000] IRQ: Found an INTC at 0xfa200000 (revision 4.0) with 96
interrupts
[    0.000000] Total of 96 interrupts on 1 active controller
[    0.000000] OMAP clockevent source: GPTIMER1 at 32768 Hz
[    0.000000] sched_clock: 32 bits at 32kHz, resolution 30517ns,
wraps every 131071999ms
[    0.000000] OMAP clocksource: 32k_counter at 32768 Hz
[    0.000000] Console: colour dummy device 80x30
[    0.000000] Lock dependency validator: Copyright (c) 2006 Red Hat,
Inc., Ingo Molnar
[    0.000000] ... MAX_LOCKDEP_SUBCLASSES:  8
[    0.000000] ... MAX_LOCK_DEPTH:          48
[    0.000000] ... MAX_LOCKDEP_KEYS:        8191
[    0.000000] ... CLASSHASH_SIZE:          4096
[    0.000000] ... MAX_LOCKDEP_ENTRIES:     16384
[    0.000000] ... MAX_LOCKDEP_CHAINS:      32768
[    0.000000] ... CHAINHASH_SIZE:          16384
[    0.000000]  memory used by lock dependency info: 3695 kB
[    0.000000]  per task-struct memory footprint: 1152 bytes
[    0.001007] Calibrating delay loop... 397.57 BogoMIPS (lpj=1554432)
[    0.109374] pid_max: default: 32768 minimum: 301
[    0.109954] Security Framework initialized
[    0.110107] Mount-cache hash table entries: 512
[    0.114685] CPU: Testing write buffer coherency: ok
[    0.115509] CPU0: thread -1, cpu 0, socket -1, mpidr 0
[    0.115570] Setting up static identity map for 0x804f8070 - 0x804f80e0
[    0.118194] Brought up 1 CPUs
[    0.118225] SMP: Total of 1 processors activated (397.57 BogoMIPS).
[    0.121429] devtmpfs: initialized
[    0.178405] pinctrl core: initialized pinctrl subsystem
[    0.185058] regulator-dummy: no parameters
[    0.187011] NET: Registered protocol family 16
[    0.187896] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.189819] omap-gpmc omap-gpmc: GPMC revision 5.0
[    0.200897] gpiochip_add: registered GPIOs 0 to 31 on device: gpio
[    0.201385] OMAP GPIO hardware version 2.5
[    0.203857] gpiochip_add: registered GPIOs 32 to 63 on device: gpio
[    0.206451] gpiochip_add: registered GPIOs 64 to 95 on device: gpio
[    0.208709] gpiochip_add: registered GPIOs 96 to 127 on device: gpio
[    0.211242] gpiochip_add: registered GPIOs 128 to 159 on device: gpio
[    0.213562] gpiochip_add: registered GPIOs 160 to 191 on device: gpio
[    0.220794] omap_mux_init: Add partition: #1: core, flags: 4
[    0.223358] IGEP2: Hardware Revision C (B-NON compatible)
[    0.230804] _omap_mux_get_by_name: Could not find signal uart4_rx.uart4_rx
[    0.239440] Reprogramming SDRC clock to 400000000 Hz
[    0.240264] IGEP: initializing NAND memory device
[    0.252227] hw-breakpoint: debug architecture 0x4 unsupported.
[    0.267913]  omap-mcbsp.2: alias fck already exists
[    0.268707]  omap-mcbsp.3: alias fck already exists
[    0.272338] OMAP DMA hardware revision 5.0
[    0.276702]  arm-pmu: alias fck already exists
[    0.342346] bio: create slab <bio-0> at 0
[    0.432434] omap-dma-engine omap-dma-engine: OMAP DMA engine driver
[    0.433410] fixed-dummy: no parameters
[    0.434448] vwlan: 3300 mV normal
[    0.441284] SCSI subsystem initialized
[    0.443695] usbcore: registered new interface driver usbfs
[    0.444213] usbcore: registered new interface driver hub
[    0.445007] usbcore: registered new device driver usb
[    0.450622] omap_i2c omap_i2c.3: bus 3 rev1.4.0 at 100 kHz
[    0.464324] twl 1-0048: PIH (irq 23) chaining IRQs 338..346
[    0.464965] twl 1-0048: power (irq 343) chaining IRQs 346..353
[    0.467926] twl4030_gpio twl4030_gpio: gpio (irq 338) chaining IRQs 354..371
[    0.468353] gpiochip_find_base: found new base at 492
[    0.469909] gpiochip_add: registered GPIOs 492 to 511 on device: twl4030
[    0.480804] VIO: 1800 mV normal standby
[    0.483184] vdd_mpu_iva: 600 <--> 1450 mV normal
[    0.485565] vdd_core: 600 <--> 1450 mV normal
[    0.487762] VMMC1: 1850 <--> 3150 mV at 3150 mV normal standby
[    0.490661] VDVI: 1800 mV normal standby
[    0.491485] omap_i2c omap_i2c.1: bus 1 rev1.4.0 at 2600 kHz
[    0.499176] Switching to clocksource 32k_counter
[    0.643341] NET: Registered protocol family 2
[    0.645416] TCP established hash table entries: 4096 (order: 3, 32768 bytes)
[    0.645721] TCP bind hash table entries: 4096 (order: 5, 147456 bytes)
[    0.647979] TCP: Hash tables configured (established 4096 bind 4096)
[    0.648681] TCP: reno registered
[    0.648712] UDP hash table entries: 256 (order: 2, 20480 bytes)
[    0.649047] UDP-Lite hash table entries: 256 (order: 2, 20480 bytes)
[    0.650085] NET: Registered protocol family 1
[    0.651397] RPC: Registered named UNIX socket transport module.
[    0.651428] RPC: Registered udp transport module.
[    0.651458] RPC: Registered tcp transport module.
[    0.651458] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.652557] NetWinder Floating Point Emulator V0.97 (double precision)
[    0.652893] CPU PMU: probing PMU on CPU 0
[    0.652923] hw perfevents: enabled with ARMv7 Cortex-A8 PMU driver,
5 counters available
[    0.842712] VFS: Disk quotas dquot_6.5.2
[    0.843048] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    0.846191] NFS: Registering the id_resolver key type
[    0.846679] Key type id_resolver registered
[    0.846710] Key type id_legacy registered
[    0.846862] jffs2: version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.
[    0.847442] msgmni has been set to 986
[    0.851013] io scheduler noop registered
[    0.851043] io scheduler deadline registered
[    0.851135] io scheduler cfq registered (default)
[    0.855895] OMAP DSS rev 2.0
[    0.888336] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[    0.896820] omap_uart.0: ttyO0 at MMIO 0x4806a000 (irq = 88) is a OMAP UART0
[    0.899444] omap_uart.1: ttyO1 at MMIO 0x4806c000 (irq = 89) is a OMAP UART1
[    0.901397] omap_uart.2: ttyO2 at MMIO 0x49020000 (irq = 90) is a OMAP UART2
[    1.611419] console [ttyO2] enabled
[    1.617340] omap_uart.3: ttyO3 at MMIO 0x49042000 (irq = 96) is a OMAP UART3
[    1.662353] brd: module loaded
[    1.687408] loop: module loaded
[    1.698608] mtdoops: mtd device (mtddev=name/number) must be supplied
[    1.706298] NAND device: Manufacturer ID: 0x2c, Chip ID: 0xbc
(Micron NAND 512MiB 1,8V 16-bit), page size: 2048, OOB size: 64
[    1.718414] Creating 5 MTD partitions on "omap2-nand.0":
[    1.724029] 0x000000000000-0x000000080000 : "X-Loader"
[    1.737426] 0x000000080000-0x000000200000 : "U-Boot"
[    1.748809] 0x000000200000-0x000000280000 : "Environment"
[    1.760040] 0x000000280000-0x000000580000 : "Kernel"
[    1.772552] 0x000000580000-0x000020000000 : "File System"
[    2.223999] OneNAND driver initializing
[    2.238800] smsc911x: Driver version 2008-10-21
[    2.251861] libphy: smsc911x-mdio: probed
[    2.256439] smsc911x smsc911x.0 eth0: attached PHY driver [SMSC
LAN8700] (mii_bus:phy_addr=smsc911x-0:01, irq=-1)
[    2.268829] smsc911x smsc911x.0 eth0: MAC Address: 4e:5f:57:5d:d2:c5
[    2.277496] usbcore: registered new interface driver asix
[    2.283813] usbcore: registered new interface driver cdc_ether
[    2.290618] usbcore: registered new interface driver smsc95xx
[    2.297241] usbcore: registered new interface driver net1080
[    2.303680] usbcore: registered new interface driver cdc_subset
[    2.310485] usbcore: registered new interface driver zaurus
[    2.316955] usbcore: registered new interface driver cdc_ncm
[    2.325286] usbcore: registered new interface driver cdc_wdm
[    2.331359] Initializing USB Mass Storage driver...
[    2.337097] usbcore: registered new interface driver usb-storage
[    2.343505] USB Mass Storage support registered.
[    2.348937] usbcore: registered new interface driver usbtest
[    2.357238] mousedev: PS/2 mouse device common for all mice
[    2.365661] input: TWL4030 Keypad as
/devices/platform/omap_i2c.1/i2c-1/1-004a/twl4030_keypad/input/input0
[    2.384185] input: twl4030_pwrbutton as
/devices/platform/omap_i2c.1/i2c-1/1-004b/twl4030_pwrbutton/input/input1
[    2.397186] twl_rtc twl_rtc: Power up reset detected.
[    2.404022] twl_rtc twl_rtc: Enabling TWL-RTC
[    2.413330] twl_rtc twl_rtc: rtc core: registered twl_rtc as rtc0
[    2.421386] i2c /dev entries driver
[    2.428680] Driver for 1-wire Dallas network protocol.
[    2.438079] omap_wdt: OMAP Watchdog Timer Rev 0x31: initial timeout 60 sec
[    2.446624] twl4030_wdt twl4030_wdt: Failed to register misc device
[    2.453460] twl4030_wdt: probe of twl4030_wdt failed with error -16
[    2.463409] omap-dma-engine omap-dma-engine: allocating channel for 48
[    2.470550] omap-dma-engine omap-dma-engine: allocating channel for 47
[    2.525421] omap-dma-engine omap-dma-engine: allocating channel for 62
[    2.532470] omap-dma-engine omap-dma-engine: allocating channel for 61
[    2.569366] mmc0: new SDIO card at address 0001
[    2.920196] usbcore: registered new interface driver usbhid
[    2.926239] usbhid: USB HID core driver
[    2.932037] oprofile: using arm/armv7
[    2.936737] TCP: cubic registered
[    2.940338] Initializing XFRM netlink socket
[    2.945068] NET: Registered protocol family 17
[    2.949859] NET: Registered protocol family 15
[    2.955017] Key type dns_resolver registered
[    2.959655] VFP support v0.3: implementor 41 architecture 3 part 30
variant c rev 3
[    2.978881] ThumbEE CPU extension supported.
[    2.991058] OMAPFB: omapfb_init
[    2.991302] OMAPFB: omapfb_probe
[    2.994323] fbcvt: 1024x768@60: CVT Name - .786M3-R
[    2.999938] OMAPFB: create 3 framebuffers
[    2.999999] OMAPFB: fb_infos allocated
[    2.999999] OMAPFB: allocating 1572864 bytes for fb 0
[    3.002807] OMAPFB: allocated VRAM paddr 9f600000, vaddr e090c000
[    3.002838] OMAPFB: region0 phys 9f600000 virt e090c000 size=1572864
[    3.002868] OMAPFB: region1 phys 00000000 virt   (null) size=0
[    3.002868] OMAPFB: region2 phys 00000000 virt   (null) size=0
[    3.002868] OMAPFB: fbmems allocated
[    3.003082] OMAPFB: check_fb_var 0
[    3.003082] OMAPFB: max frame size 1572864, line size 2048
[    3.003112] OMAPFB: xres = 1024, yres = 768, vxres = 1024, vyres = 768
[    3.003143] OMAPFB: set_fb_fix
[    3.005126] OMAPFB: fb_infos initialized
[    3.010009] OMAPFB: set_par(0)
[    3.010070] OMAPFB: set_fb_fix
[    3.010070] OMAPFB: apply_changes, fb 0, ovl 0
[    3.010131] OMAPFB: setup_overlay 0, posx 0, posy 0, outw 1024, outh 768
[    3.010162] OMAPFB: paddr 9f600000
[    3.010314] OMAPFB: pan_display(0)
[    3.010314] OMAPFB: setcmap
[    3.010345] OMAPFB: setcmap
[    3.019195] Console: switching to colour frame buffer device 128x48
[    3.019195] OMAPFB: pan_display(0)
[    3.019195] OMAPFB: setcmap
[    3.027313] OMAPFB: setcmap
[    3.036560] OMAPFB: framebuffers registered
[    3.036590] OMAPFB: apply_changes, fb 0, ovl 0
[    3.036621] OMAPFB: setup_overlay 0, posx 0, posy 0, outw 1024, outh 768
[    3.036621] OMAPFB: paddr 9f600000
[    3.036682] OMAPFB: apply_changes, fb 1, ovl 1
[    3.036743] OMAPFB: apply_changes, fb 2, ovl 2
[    3.036834] OMAPFB: create_framebuffers done
[    3.036865] OMAPFB: mgr->apply'ed
[    3.039794] OMAPFB: create sysfs for fbs
[    3.039825] OMAPFB: create sysfs for fbs
[    3.041259] VDVI: incomplete constraints, leaving on
[    3.051971] twl_rtc twl_rtc: setting system clock to 2000-01-01
00:00:00 UTC (946684800)
[    3.065521] Waiting for root device /dev/mmcblk0p2...
[    3.222808] mmc1: host does not support reading read-only switch.
assuming write-enable.
[    3.231597] mmc1: new SDHC card at address e624
[    3.238830] mmcblk0: mmc1:e624 SU08G 7.40 GiB
[    3.255645]  mmcblk0: p1 p2
[    3.322967] EXT4-fs (mmcblk0p2): warning: maximal mount count
reached, running e2fsck is recommended
[    3.341094] EXT4-fs (mmcblk0p2): mounted filesystem with ordered
data mode. Opts: (null)
[    3.349884] VFS: Mounted root (ext4 filesystem) on device 179:2.
[    3.381835] devtmpfs: mounted
[    3.385833] Freeing init memory: 336K
[    4.150543] OMAPFB: pan_display(0)
[    4.150573] OMAPFB: setcmap
[    4.150573] OMAPFB: setcmap
[    4.161651] OMAPFB: user mmap region start 9f600000, len 1572864,
off 9f600000
>[    4.548126] udevd[780]: starting version 182
[    7.068847] omap-twl4030 omap-twl4030: ASoC: CPU DAI omap-mcbsp.2
not registered
[    7.076965] omap-twl4030 omap-twl4030: snd_soc_register_card() failed: -517
[    7.084411] platform omap-twl4030: Driver omap-twl4030 requests
probe deferral
[    7.171356] omap-twl4030 omap-twl4030: ASoC: CODEC twl4030-codec
not registered
[    7.179565] omap-twl4030 omap-twl4030: snd_soc_register_card() failed: -517
[    7.186950] platform omap-twl4030: Driver omap-twl4030 requests
probe deferral
[    7.387695] lib80211: common routines for IEEE802.11 drivers
[    7.394042] lib80211_crypt: registered algorithm 'NULL'
[    7.551940] omap-twl4030 omap-twl4030: ASoC: CODEC twl4030-codec
not registered
[    7.560028] omap-twl4030 omap-twl4030: snd_soc_register_card() failed: -517
[    7.567504] platform omap-twl4030: Driver omap-twl4030 requests
probe deferral
[    8.216064] cfg80211: Calling CRDA to update world regulatory domain
[    8.364746] omap-twl4030 omap-twl4030:  twl4030-hifi <->
omap-mcbsp.2 mapping ok
[    8.573333] libertas_sdio: Libertas SDIO driver
[    8.578369] libertas_sdio: Copyright Pierre Ossman
[   11.256774] libertas_sdio: failed to find firmware (-2)
[   12.367126] EXT4-fs (mmcblk0p2): re-mounted. Opts: data=ordered
[   13.176910] smsc911x smsc911x.0 eth0: SMSC911x/921x identified at
0xe08c8000, IRQ: 290
[   24.423065] OMAPFB: check_var(0)
[   24.423156] OMAPFB: check_fb_var 0
[   24.423187] OMAPFB: max frame size 1572864, line size 2048
[   24.423187] OMAPFB: xres = 1024, yres = 768, vxres = 1024, vyres = 768
[   24.423278] OMAPFB: set_par(0)
[   24.423278] OMAPFB: set_fb_fix
[   24.423278] OMAPFB: apply_changes, fb 0, ovl 0
[   24.423339] OMAPFB: setup_overlay 0, posx 0, posy 0, outw 1024, outh 768
[   24.423339] OMAPFB: paddr 9f600000
[   24.423858] OMAPFB: pan_display(0)
[   24.423858] OMAPFB: setcmap
[   24.423950] OMAPFB: pan_display(0)
[   24.423950] OMAPFB: setcmap
[   24.423950] OMAPFB: setcmap
[   24.433532] OMAPFB: setcmap
[   24.436462] OMAPFB: ioctl GET_CAPS
[   24.436676] OMAPFB: ioctl QUERY_MEM
[   24.445281] OMAPFB: user mmap region start 9f600000, len 1572864,
off 9f600000
[   24.547180] OMAPFB: ioctl QUERY_PLANE
[   24.547302] OMAPFB: ioctl SETUP_PLANE
[   24.547302] OMAPFB: omapfb_setup_plane
[   24.547424] OMAPFB: setup_overlay 0, posx 0, posy 0, outw 1024, outh 768
[   24.547424] OMAPFB: paddr 9f600000
[   24.547790]
[   24.547790] ======================================================
[   24.547790] [ INFO: possible circular locking dependency detected ]
[   24.547821] 3.7.0-00017-g6c2ecfb-dirty #155 Not tainted
[   24.547821] -------------------------------------------------------
[   24.547821] Xorg/1277 is trying to acquire lock:
[   24.547882]  ((fb_notifier_list).rwsem){.+.+.+}, at: [<c0068708>]
__blocking_notifier_call_chain+0x30/0x60
[   24.547882]
[   24.547882] but task is already holding lock:
[   24.547912]  (console_lock){+.+.+.}, at: [<c02cec98>] do_fb_ioctl+0x200/0x5d8
[   24.547912]
[   24.547912] which lock already depends on the new lock.
[   24.547912]
[   24.547912]
[   24.547912] the existing dependency chain (in reverse order) is:
[   24.547943]
[   24.547943] -> #1 (console_lock){+.+.+.}:
[   24.547943]        [<c00902a4>] lock_acquire+0x9c/0x124
[   24.547973]        [<c0042b0c>] console_lock+0x50/0x64
[   24.548004]        [<c0320bcc>] register_con_driver+0x38/0x134
[   24.548004]        [<c032219c>] take_over_console+0x18/0x44
[   24.548034]        [<c02d7674>] fbcon_takeover+0x64/0xc8
[   24.548034]        [<c04f4dd4>] notifier_call_chain+0x44/0x84
[   24.548065]        [<c0068720>] __blocking_notifier_call_chain+0x48/0x60
[   24.548065]        [<c0068750>] blocking_notifier_call_chain+0x18/0x20
[   24.548095]        [<c02cf654>] register_framebuffer+0x16c/0x23c
[   24.548095]        [<c04ee990>] omapfb_create_framebuffers+0x520/0x700
[   24.548126]        [<c0723480>] omapfb_probe+0x4e4/0x768
[   24.548126]        [<c03399f4>] platform_drv_probe+0x18/0x1c
[   24.548156]        [<c03387b0>] driver_probe_device+0x78/0x210
[   24.548187]        [<c03389dc>] __driver_attach+0x94/0x98
[   24.548187]        [<c03370b0>] bus_for_each_dev+0x50/0x7c
[   24.548187]        [<c0337fdc>] bus_add_driver+0x178/0x240
[   24.548217]        [<c0338eac>] driver_register+0x78/0x144
[   24.548217]        [<c0339be4>] platform_driver_probe+0x18/0x9c
[   24.548248]        [<c0722f70>] omapfb_init+0x28/0x54
[   24.548248]        [<c00086a4>] do_one_initcall+0x34/0x178
[   24.548278]        [<c04e47a8>] kernel_init+0x100/0x2b4
[   24.548309]        [<c0013170>] ret_from_fork+0x14/0x24
[   24.548309]
[   24.548309] -> #0 ((fb_notifier_list).rwsem){.+.+.+}:
[   24.548339]        [<c008f85c>] __lock_acquire+0x15e4/0x1b00
[   24.548339]        [<c00902a4>] lock_acquire+0x9c/0x124
[   24.548370]        [<c04f0eb8>] down_read+0x2c/0x3c
[   24.548370]        [<c0068708>] __blocking_notifier_call_chain+0x30/0x60
[   24.548370]        [<c0068750>] blocking_notifier_call_chain+0x18/0x20
[   24.548400]        [<c02ce1c0>] fb_blank+0x34/0x98
[   24.548400]        [<c02cecb0>] do_fb_ioctl+0x218/0x5d8
[   24.548431]        [<c0114924>] do_vfs_ioctl+0x80/0x5f0
[   24.548431]        [<c0114f04>] sys_ioctl+0x70/0x78
[   24.548461]        [<c00130c0>] ret_fast_syscall+0x0/0x3c
[   24.548461]
[   24.548461] other info that might help us debug this:
[   24.548461]
[   24.548461]  Possible unsafe locking scenario:
[   24.548461]
[   24.548461]        CPU0                    CPU1
[   24.548461]        ----                    ----
[   24.548492]   lock(console_lock);
[   24.548492]                                lock((fb_notifier_list).rwsem);
[   24.548492]                                lock(console_lock);
[   24.548522]   lock((fb_notifier_list).rwsem);
[   24.548522]
[   24.548522]  *** DEADLOCK ***
[   24.548522]
[   24.548522] 2 locks held by Xorg/1277:
[   24.548553]  #0:  (&fb_info->lock){+.+.+.}, at: [<c02cdf9c>]
lock_fb_info+0x18/0x3c
[   24.548583]  #1:  (console_lock){+.+.+.}, at: [<c02cec98>]
do_fb_ioctl+0x200/0x5d8
[   24.548583]
[   24.548583] stack backtrace:
[   24.548614] [<c001ac2c>] (unwind_backtrace+0x0/0xf0) from
[<c04eb508>] (print_circular_bug+0x278/0x2c4)
[   24.548614] [<c04eb508>] (print_circular_bug+0x278/0x2c4) from
[<c008f85c>] (__lock_acquire+0x15e4/0x1b00)
[   24.548645] [<c008f85c>] (__lock_acquire+0x15e4/0x1b00) from
[<c00902a4>] (lock_acquire+0x9c/0x124)
[   24.548675] [<c00902a4>] (lock_acquire+0x9c/0x124) from
[<c04f0eb8>] (down_read+0x2c/0x3c)
[   24.548675] [<c04f0eb8>] (down_read+0x2c/0x3c) from [<c0068708>]
(__blocking_notifier_call_chain+0x30/0x60)
[   24.548706] [<c0068708>] (__blocking_notifier_call_chain+0x30/0x60)
from [<c0068750>] (blocking_notifier_call_chain+0x18/0x20)
[   24.548706] [<c0068750>] (blocking_notifier_call_chain+0x18/0x20)
from [<c02ce1c0>] (fb_blank+0x34/0x98)
[   24.548736] [<c02ce1c0>] (fb_blank+0x34/0x98) from [<c02cecb0>]
(do_fb_ioctl+0x218/0x5d8)
[   24.548736] [<c02cecb0>] (do_fb_ioctl+0x218/0x5d8) from
[<c0114924>] (do_vfs_ioctl+0x80/0x5f0)
[   24.548767] [<c0114924>] (do_vfs_ioctl+0x80/0x5f0) from
[<c0114f04>] (sys_ioctl+0x70/0x78)
[   24.548797] [<c0114f04>] (sys_ioctl+0x70/0x78) from [<c00130c0>]
(ret_fast_syscall+0x0/0x3c)
[   25.008056] OMAPFB: ioctl QUERY_PLANE
[   25.011962] OMAPFB: ioctl SETUP_PLANE
[   25.015930] OMAPFB: omapfb_setup_plane
[   25.019897] omapdss OVERLAY error: check_overlay: paddr cannot be 0
[   25.026580] omapdss OVERLAY error: check_overlay: overlay 2 doesn't
support mode 0
[   25.034576] omapdss OVERLAY error: check_overlay: rotation type 0
not supported
[   25.044525] OMAPFB: ioctl QUERY_MEM
[   25.048339] OMAPFB: ioctl QUERY_PLANE
[   25.052215] OMAPFB: ioctl GET_CAPS
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Javier Martinez Canillas Dec. 18, 2012, 1:45 p.m. UTC | #11
On Tue, Dec 18, 2012 at 12:23 PM, Javier Martinez Canillas
<martinez.javier@gmail.com> wrote:
> On Tue, Dec 18, 2012 at 9:31 AM, Javier Martinez Canillas
> <martinez.javier@gmail.com> wrote:
>> On Thu, Nov 29, 2012 at 3:56 PM, Tomi Valkeinen <tomi.valkeinen@ti.com> wrote:
>>> On 2012-11-29 16:53, Steve Sakoman wrote:
>>>> On Thu, Nov 29, 2012 at 6:31 AM, Tomi Valkeinen <tomi.valkeinen@ti.com> wrote:
>>>>
>>>>>> It is stock Linux 3.6 (i.e. commit a0d271cbfed1dd50278c6b06bead3d00ba0a88f9)
>>>>>
>>>>> Still can't reproduce. So does the null pointer deref happen at boot
>>>>> time? What display related kernel boot options do you have? This looks
>>>>> funny, considering lcd43 is a bit smaller lcd:
>>>>
>>>> Yes, it happens at boot time.
>>>>
>>>> The boot options:
>>>>
>>>> [    0.000000] Kernel command line: console=ttyO2,115200n8 mpurate=500
>>>> vram=12M omapfb.mode=dvi:1024x768MR-16@60 omapdss.def_disp=lcd43
>>>> root=/dev/mmcblk0p2 rw rootfstype=ext3 rootwait
>>>
>>> Ok, now I see it. It happens because DVI is not configured to be used,
>>> but you have DVI video mode specified in the command line.
>>>
>>> I'll study this further and make a fix.
>>>
>>>  Tomi
>>>
>>>
>>>
>>
>> Hello folks,
>>
>> Did you find a solution for this?
>>
>> I still have the issue, when trying to start X I got:
>>
>> [   25.152160] OMAPFB: ioctl QUERY_PLANE
>> [   25.156066] OMAPFB: ioctl SETUP_PLANE
>> [   25.160095] OMAPFB: omapfb_setup_plane
>> [   25.164093] omapdss OVERLAY error: check_overlay: paddr cannot be 0
>> [   25.170684] omapdss OVERLAY error: check_overlay: paddr cannot be 0
>> [   25.177337] omapfb omapfb: setup_plane failed
>> [   25.181976] OMAPFB: ioctl failed: -22
>>
>> I'm using the arm-soc.git tree with the latest fixes and cleanups for
>> v3.8 sent by Tony yesterday and Xorg 1.13.
>>
>> The latest commit id is:
>>
>> commit aad05c3602ba5c42ff8d0e572b2f614f25779ede
>> Merge: eccf4b3 f64d204
>> Author: Olof Johansson <olof@lixom.net>
>> Date:   Mon Dec 17 18:44:26 2012 -0800
>>
>>     Merge branch 'late/omap-cleanup' into for-next
>>
>> I've CONFIG_OMAP2_DSS, CONFIG_FB_OMAP2 and CONFIG_PANEL_TFP410
>> built-in and this is my kernel command line is:
>>
>> console=ttyO2,115200n8 mpurate=auto vram=12M
>> omapfb.mode=dvi:1024x768MR-16@60 omapfb.debug=y omapdss.def_disp=dvi
>> root=/dev/mmcblk0p2 rw rootfstype=ext4 rootwait
>>
>> Also I have this log about a locking dependency:
>>
>> [   24.690795]
>> [   24.690826] ======================================================
>> [   24.690826] [ INFO: possible circular locking dependency detected ]
>> [   24.690826] 3.7.0-00017-g6c2ecfb-dirty #144 Not tainted
>> [   24.690826] -------------------------------------------------------
>> [   24.690826] Xorg/1259 is trying to acquire lock:
>> [   24.690887]  ((fb_notifier_list).rwsem){.+.+.+}, at: [<c0068708>]
>> __blocking_notifier_call_chain+0x30/0x60
>> [   24.690887]
>> [   24.690887] but task is already holding lock:
>> [   24.690917]  (console_lock){+.+.+.}, at: [<c02cec98>] do_fb_ioctl+0x200/0x5d8
>> [   24.690917]
>> [   24.690917] which lock already depends on the new lock.
>> [   24.690917]
>> [   24.690917]
>> [   24.690917] the existing dependency chain (in reverse order) is:
>> [   24.690948]
>> [   24.690948] -> #1 (console_lock){+.+.+.}:
>> [   24.690979]        [<c00902a4>] lock_acquire+0x9c/0x124
>> [   24.690979]        [<c0042b0c>] console_lock+0x50/0x64
>> [   24.691009]        [<c0320bd0>] register_con_driver+0x38/0x134
>> [   24.691009]        [<c03221a0>] take_over_console+0x18/0x44
>> [   24.691040]        [<c02d7674>] fbcon_takeover+0x64/0xc8
>> [   24.691070]        [<c04f4dd4>] notifier_call_chain+0x44/0x84
>> [   24.691070]        [<c0068720>] __blocking_notifier_call_chain+0x48/0x60
>> [   24.691070]        [<c0068750>] blocking_notifier_call_chain+0x18/0x20
>> [   24.691101]        [<c02cf654>] register_framebuffer+0x16c/0x23c
>> [   24.691131]        [<c04ee990>] omapfb_create_framebuffers+0x520/0x700
>> [   24.691131]        [<c0723480>] omapfb_probe+0x4e4/0x768
>> [   24.691162]        [<c03399f8>] platform_drv_probe+0x18/0x1c
>> [   24.691162]        [<c03387b4>] driver_probe_device+0x78/0x210
>> [   24.691192]        [<c03389e0>] __driver_attach+0x94/0x98
>> [   24.691192]        [<c03370b4>] bus_for_each_dev+0x50/0x7c
>> [   24.691223]        [<c0337fe0>] bus_add_driver+0x178/0x240
>> [   24.691223]        [<c0338eb0>] driver_register+0x78/0x144
>> [   24.691253]        [<c0339be8>] platform_driver_probe+0x18/0x9c
>> [   24.691253]        [<c0722f70>] omapfb_init+0x28/0x54
>> [   24.691284]        [<c00086a4>] do_one_initcall+0x34/0x178
>> [   24.691284]        [<c04e47ac>] kernel_init+0x100/0x2b4
>> [   24.691314]        [<c0013170>] ret_from_fork+0x14/0x24
>> [   24.691314]
>> [   24.691314] -> #0 ((fb_notifier_list).rwsem){.+.+.+}:
>> [   24.691345]        [<c008f85c>] __lock_acquire+0x15e4/0x1b00
>> [   24.691345]        [<c00902a4>] lock_acquire+0x9c/0x124
>> [   24.691375]        [<c04f0eb8>] down_read+0x2c/0x3c
>> [   24.691375]        [<c0068708>] __blocking_notifier_call_chain+0x30/0x60
>> [   24.691406]        [<c0068750>] blocking_notifier_call_chain+0x18/0x20
>> [   24.691406]        [<c02ce1c0>] fb_blank+0x34/0x98
>> [   24.691436]        [<c02cecb0>] do_fb_ioctl+0x218/0x5d8
>> [   24.691436]        [<c0114924>] do_vfs_ioctl+0x80/0x5f0
>> [   24.691467]        [<c0114f04>] sys_ioctl+0x70/0x78
>> [   24.691467]        [<c00130c0>] ret_fast_syscall+0x0/0x3c
>> [   24.691467]
>> [   24.691467] other info that might help us debug this:
>> [   24.691467]
>> [   24.691497]  Possible unsafe locking scenario:
>> [   24.691497]
>> [   24.691497]        CPU0                    CPU1
>> [   24.691497]        ----                    ----
>> [   24.691497]   lock(console_lock);
>> [   24.691497]                                lock((fb_notifier_list).rwsem);
>> [   24.691528]                                lock(console_lock);
>> [   24.691528]   lock((fb_notifier_list).rwsem);
>> [   24.691528]
>> [   24.691528]  *** DEADLOCK ***
>> [   24.691528]
>> [   24.691528] 2 locks held by Xorg/1259:
>> [   24.691558]  #0:  (&fb_info->lock){+.+.+.}, at: [<c02cdf9c>]
>> lock_fb_info+0x18/0x3c
>> [   24.691589]  #1:  (console_lock){+.+.+.}, at: [<c02cec98>]
>> do_fb_ioctl+0x200/0x5d8
>> [   24.691589]
>> [   24.691589] stack backtrace:
>> [   24.691619] [<c001ac2c>] (unwind_backtrace+0x0/0xf0) from
>> [<c04eb508>] (print_circular_bug+0x278/0x2c4)
>> [   24.691650] [<c04eb508>] (print_circular_bug+0x278/0x2c4) from
>> [<c008f85c>] (__lock_acquire+0x15e4/0x1b00)
>> [   24.691650] [<c008f85c>] (__lock_acquire+0x15e4/0x1b00) from
>> [<c00902a4>] (lock_acquire+0x9c/0x124)
>> [   24.691680] [<c00902a4>] (lock_acquire+0x9c/0x124) from
>> [<c04f0eb8>] (down_read+0x2c/0x3c)
>> [   24.691711] [<c04f0eb8>] (down_read+0x2c/0x3c) from [<c0068708>]
>> (__blocking_notifier_call_chain+0x30/0x60)
>> [   24.691711] [<c0068708>] (__blocking_notifier_call_chain+0x30/0x60)
>> from [<c0068750>] (blocking_notifier_call_chain+0x18/0x20)
>> [   24.691741] [<c0068750>] (blocking_notifier_call_chain+0x18/0x20)
>> from [<c02ce1c0>] (fb_blank+0x34/0x98)
>> [   24.691741] [<c02ce1c0>] (fb_blank+0x34/0x98) from [<c02cecb0>]
>> (do_fb_ioctl+0x218/0x5d8)
>> [   24.691772] [<c02cecb0>] (do_fb_ioctl+0x218/0x5d8) from
>> [<c0114924>] (do_vfs_ioctl+0x80/0x5f0)
>> [   24.691772] [<c0114924>] (do_vfs_ioctl+0x80/0x5f0) from
>> [<c0114f04>] (sys_ioctl+0x70/0x78)
>> [   24.691802] [<c0114f04>] (sys_ioctl+0x70/0x78) from [<c00130c0>]
>> (ret_fast_syscall+0x0/0x3c)
>>
>> I will look at this, but just wanted to ask first in case I missed
>> some patches that already fix this.
>>
>> My complete .config [1], dmesg [2] and xorg.conf [3].
>>
>> Thanks a lot and best regards,
>> Javier
>>
>> [1]: http://fpaste.org/DJgw/
>> [2]: http://fpaste.org/XEs5/
>> [3]: http://fpaste.org/dhWd/
>
> I've confirmed that this is the same issue that Steve had
> (dss_ovl_simple_check() failing due info->paddr == 0), so I tried his
> patch to force dss_ovl_simple_check() to always succeed. The second
> SETUP_PLANE ioctl doesn't fail anymore and I can see Xorg server is
> running.
>
> But still I don't have any output on the screen. Any hints will be appreciated.
>
> Here is my complete dmesg:
>
> [    0.000000] Booting Linux on physical CPU 0x0
> [    0.000000] Linux version 3.7.0-00017-g6c2ecfb-dirty (javier@munra)
> (gcc version 4.6.3 (crosstool-NG linaro-1.13.1+bzr2368 - Linaro GCC
> 2012.03) ) #155 SMP Tue Dec 18 12:14:19 CET 2012
> [    0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c53c7d
> [    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing
> instruction cache
> [    0.000000] Machine: IGEP v2 board
> [    0.000000] Memory policy: ECC disabled, Data cache writeback
> [    0.000000] On node 0 totalpages: 130816
> [    0.000000] free_area_init_node: node 0, pgdat c07e09c0,
> node_mem_map c0d40000
> [    0.000000]   Normal zone: 1024 pages used for memmap
> [    0.000000]   Normal zone: 0 pages reserved
> [    0.000000]   Normal zone: 129792 pages, LIFO batch:31
> [    0.000000] OMAP3630 ES1.2 (l2cache iva sgx neon isp 192mhz_clk )
> [    0.000000] Clocking rate (Crystal/Core/MPU): 26.0/400/600 MHz
> [    0.000000] PERCPU: Embedded 9 pages/cpu @c1148000 s12992 r8192 d15680 u36864
> [    0.000000] pcpu-alloc: s12992 r8192 d15680 u36864 alloc=9*4096
> [    0.000000] pcpu-alloc: [0] 0
> [    0.000000] Built 1 zonelists in Zone order, mobility grouping on.
> Total pages: 129792
> [    0.000000] Kernel command line: console=ttyO2,115200n8
> mpurate=auto vram=12M omapfb.mode=dvi:1024x768MR-16@60 omapfb.debug=y
> omapdss.def_disp=dvi root=/dev/mmcblk0p2 rw rootfstype=ext4 rootwait
> [    0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)
> [    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
> [    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
> [    0.000000] __ex_table already sorted, skipping sort
> [    0.000000] Memory: 511MB = 511MB total
> [    0.000000] Memory: 505132k/505132k available, 19156k reserved, 0K highmem
> [    0.000000] Virtual kernel memory layout:
> [    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
> [    0.000000]     fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
> [    0.000000]     vmalloc : 0xe0800000 - 0xff000000   ( 488 MB)
> [    0.000000]     lowmem  : 0xc0000000 - 0xe0000000   ( 512 MB)
> [    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
> [    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)
> [    0.000000]       .text : 0xc0008000 - 0xc06fc424   (7122 kB)
> [    0.000000]       .init : 0xc06fd000 - 0xc07512c0   ( 337 kB)
> [    0.000000]       .data : 0xc0752000 - 0xc07e3388   ( 581 kB)
> [    0.000000]        .bss : 0xc07e33ac - 0xc0d3fab0   (5490 kB)
> [    0.000000] Hierarchical RCU implementation.
> [    0.000000]  RCU restricting CPUs from NR_CPUS=2 to nr_cpu_ids=1.
> [    0.000000] NR_IRQS:16 nr_irqs:16 16
> [    0.000000] IRQ: Found an INTC at 0xfa200000 (revision 4.0) with 96
> interrupts
> [    0.000000] Total of 96 interrupts on 1 active controller
> [    0.000000] OMAP clockevent source: GPTIMER1 at 32768 Hz
> [    0.000000] sched_clock: 32 bits at 32kHz, resolution 30517ns,
> wraps every 131071999ms
> [    0.000000] OMAP clocksource: 32k_counter at 32768 Hz
> [    0.000000] Console: colour dummy device 80x30
> [    0.000000] Lock dependency validator: Copyright (c) 2006 Red Hat,
> Inc., Ingo Molnar
> [    0.000000] ... MAX_LOCKDEP_SUBCLASSES:  8
> [    0.000000] ... MAX_LOCK_DEPTH:          48
> [    0.000000] ... MAX_LOCKDEP_KEYS:        8191
> [    0.000000] ... CLASSHASH_SIZE:          4096
> [    0.000000] ... MAX_LOCKDEP_ENTRIES:     16384
> [    0.000000] ... MAX_LOCKDEP_CHAINS:      32768
> [    0.000000] ... CHAINHASH_SIZE:          16384
> [    0.000000]  memory used by lock dependency info: 3695 kB
> [    0.000000]  per task-struct memory footprint: 1152 bytes
> [    0.001007] Calibrating delay loop... 397.57 BogoMIPS (lpj=1554432)
> [    0.109374] pid_max: default: 32768 minimum: 301
> [    0.109954] Security Framework initialized
> [    0.110107] Mount-cache hash table entries: 512
> [    0.114685] CPU: Testing write buffer coherency: ok
> [    0.115509] CPU0: thread -1, cpu 0, socket -1, mpidr 0
> [    0.115570] Setting up static identity map for 0x804f8070 - 0x804f80e0
> [    0.118194] Brought up 1 CPUs
> [    0.118225] SMP: Total of 1 processors activated (397.57 BogoMIPS).
> [    0.121429] devtmpfs: initialized
> [    0.178405] pinctrl core: initialized pinctrl subsystem
> [    0.185058] regulator-dummy: no parameters
> [    0.187011] NET: Registered protocol family 16
> [    0.187896] DMA: preallocated 256 KiB pool for atomic coherent allocations
> [    0.189819] omap-gpmc omap-gpmc: GPMC revision 5.0
> [    0.200897] gpiochip_add: registered GPIOs 0 to 31 on device: gpio
> [    0.201385] OMAP GPIO hardware version 2.5
> [    0.203857] gpiochip_add: registered GPIOs 32 to 63 on device: gpio
> [    0.206451] gpiochip_add: registered GPIOs 64 to 95 on device: gpio
> [    0.208709] gpiochip_add: registered GPIOs 96 to 127 on device: gpio
> [    0.211242] gpiochip_add: registered GPIOs 128 to 159 on device: gpio
> [    0.213562] gpiochip_add: registered GPIOs 160 to 191 on device: gpio
> [    0.220794] omap_mux_init: Add partition: #1: core, flags: 4
> [    0.223358] IGEP2: Hardware Revision C (B-NON compatible)
> [    0.230804] _omap_mux_get_by_name: Could not find signal uart4_rx.uart4_rx
> [    0.239440] Reprogramming SDRC clock to 400000000 Hz
> [    0.240264] IGEP: initializing NAND memory device
> [    0.252227] hw-breakpoint: debug architecture 0x4 unsupported.
> [    0.267913]  omap-mcbsp.2: alias fck already exists
> [    0.268707]  omap-mcbsp.3: alias fck already exists
> [    0.272338] OMAP DMA hardware revision 5.0
> [    0.276702]  arm-pmu: alias fck already exists
> [    0.342346] bio: create slab <bio-0> at 0
> [    0.432434] omap-dma-engine omap-dma-engine: OMAP DMA engine driver
> [    0.433410] fixed-dummy: no parameters
> [    0.434448] vwlan: 3300 mV normal
> [    0.441284] SCSI subsystem initialized
> [    0.443695] usbcore: registered new interface driver usbfs
> [    0.444213] usbcore: registered new interface driver hub
> [    0.445007] usbcore: registered new device driver usb
> [    0.450622] omap_i2c omap_i2c.3: bus 3 rev1.4.0 at 100 kHz
> [    0.464324] twl 1-0048: PIH (irq 23) chaining IRQs 338..346
> [    0.464965] twl 1-0048: power (irq 343) chaining IRQs 346..353
> [    0.467926] twl4030_gpio twl4030_gpio: gpio (irq 338) chaining IRQs 354..371
> [    0.468353] gpiochip_find_base: found new base at 492
> [    0.469909] gpiochip_add: registered GPIOs 492 to 511 on device: twl4030
> [    0.480804] VIO: 1800 mV normal standby
> [    0.483184] vdd_mpu_iva: 600 <--> 1450 mV normal
> [    0.485565] vdd_core: 600 <--> 1450 mV normal
> [    0.487762] VMMC1: 1850 <--> 3150 mV at 3150 mV normal standby
> [    0.490661] VDVI: 1800 mV normal standby
> [    0.491485] omap_i2c omap_i2c.1: bus 1 rev1.4.0 at 2600 kHz
> [    0.499176] Switching to clocksource 32k_counter
> [    0.643341] NET: Registered protocol family 2
> [    0.645416] TCP established hash table entries: 4096 (order: 3, 32768 bytes)
> [    0.645721] TCP bind hash table entries: 4096 (order: 5, 147456 bytes)
> [    0.647979] TCP: Hash tables configured (established 4096 bind 4096)
> [    0.648681] TCP: reno registered
> [    0.648712] UDP hash table entries: 256 (order: 2, 20480 bytes)
> [    0.649047] UDP-Lite hash table entries: 256 (order: 2, 20480 bytes)
> [    0.650085] NET: Registered protocol family 1
> [    0.651397] RPC: Registered named UNIX socket transport module.
> [    0.651428] RPC: Registered udp transport module.
> [    0.651458] RPC: Registered tcp transport module.
> [    0.651458] RPC: Registered tcp NFSv4.1 backchannel transport module.
> [    0.652557] NetWinder Floating Point Emulator V0.97 (double precision)
> [    0.652893] CPU PMU: probing PMU on CPU 0
> [    0.652923] hw perfevents: enabled with ARMv7 Cortex-A8 PMU driver,
> 5 counters available
> [    0.842712] VFS: Disk quotas dquot_6.5.2
> [    0.843048] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
> [    0.846191] NFS: Registering the id_resolver key type
> [    0.846679] Key type id_resolver registered
> [    0.846710] Key type id_legacy registered
> [    0.846862] jffs2: version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.
> [    0.847442] msgmni has been set to 986
> [    0.851013] io scheduler noop registered
> [    0.851043] io scheduler deadline registered
> [    0.851135] io scheduler cfq registered (default)
> [    0.855895] OMAP DSS rev 2.0
> [    0.888336] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
> [    0.896820] omap_uart.0: ttyO0 at MMIO 0x4806a000 (irq = 88) is a OMAP UART0
> [    0.899444] omap_uart.1: ttyO1 at MMIO 0x4806c000 (irq = 89) is a OMAP UART1
> [    0.901397] omap_uart.2: ttyO2 at MMIO 0x49020000 (irq = 90) is a OMAP UART2
> [    1.611419] console [ttyO2] enabled
> [    1.617340] omap_uart.3: ttyO3 at MMIO 0x49042000 (irq = 96) is a OMAP UART3
> [    1.662353] brd: module loaded
> [    1.687408] loop: module loaded
> [    1.698608] mtdoops: mtd device (mtddev=name/number) must be supplied
> [    1.706298] NAND device: Manufacturer ID: 0x2c, Chip ID: 0xbc
> (Micron NAND 512MiB 1,8V 16-bit), page size: 2048, OOB size: 64
> [    1.718414] Creating 5 MTD partitions on "omap2-nand.0":
> [    1.724029] 0x000000000000-0x000000080000 : "X-Loader"
> [    1.737426] 0x000000080000-0x000000200000 : "U-Boot"
> [    1.748809] 0x000000200000-0x000000280000 : "Environment"
> [    1.760040] 0x000000280000-0x000000580000 : "Kernel"
> [    1.772552] 0x000000580000-0x000020000000 : "File System"
> [    2.223999] OneNAND driver initializing
> [    2.238800] smsc911x: Driver version 2008-10-21
> [    2.251861] libphy: smsc911x-mdio: probed
> [    2.256439] smsc911x smsc911x.0 eth0: attached PHY driver [SMSC
> LAN8700] (mii_bus:phy_addr=smsc911x-0:01, irq=-1)
> [    2.268829] smsc911x smsc911x.0 eth0: MAC Address: 4e:5f:57:5d:d2:c5
> [    2.277496] usbcore: registered new interface driver asix
> [    2.283813] usbcore: registered new interface driver cdc_ether
> [    2.290618] usbcore: registered new interface driver smsc95xx
> [    2.297241] usbcore: registered new interface driver net1080
> [    2.303680] usbcore: registered new interface driver cdc_subset
> [    2.310485] usbcore: registered new interface driver zaurus
> [    2.316955] usbcore: registered new interface driver cdc_ncm
> [    2.325286] usbcore: registered new interface driver cdc_wdm
> [    2.331359] Initializing USB Mass Storage driver...
> [    2.337097] usbcore: registered new interface driver usb-storage
> [    2.343505] USB Mass Storage support registered.
> [    2.348937] usbcore: registered new interface driver usbtest
> [    2.357238] mousedev: PS/2 mouse device common for all mice
> [    2.365661] input: TWL4030 Keypad as
> /devices/platform/omap_i2c.1/i2c-1/1-004a/twl4030_keypad/input/input0
> [    2.384185] input: twl4030_pwrbutton as
> /devices/platform/omap_i2c.1/i2c-1/1-004b/twl4030_pwrbutton/input/input1
> [    2.397186] twl_rtc twl_rtc: Power up reset detected.
> [    2.404022] twl_rtc twl_rtc: Enabling TWL-RTC
> [    2.413330] twl_rtc twl_rtc: rtc core: registered twl_rtc as rtc0
> [    2.421386] i2c /dev entries driver
> [    2.428680] Driver for 1-wire Dallas network protocol.
> [    2.438079] omap_wdt: OMAP Watchdog Timer Rev 0x31: initial timeout 60 sec
> [    2.446624] twl4030_wdt twl4030_wdt: Failed to register misc device
> [    2.453460] twl4030_wdt: probe of twl4030_wdt failed with error -16
> [    2.463409] omap-dma-engine omap-dma-engine: allocating channel for 48
> [    2.470550] omap-dma-engine omap-dma-engine: allocating channel for 47
> [    2.525421] omap-dma-engine omap-dma-engine: allocating channel for 62
> [    2.532470] omap-dma-engine omap-dma-engine: allocating channel for 61
> [    2.569366] mmc0: new SDIO card at address 0001
> [    2.920196] usbcore: registered new interface driver usbhid
> [    2.926239] usbhid: USB HID core driver
> [    2.932037] oprofile: using arm/armv7
> [    2.936737] TCP: cubic registered
> [    2.940338] Initializing XFRM netlink socket
> [    2.945068] NET: Registered protocol family 17
> [    2.949859] NET: Registered protocol family 15
> [    2.955017] Key type dns_resolver registered
> [    2.959655] VFP support v0.3: implementor 41 architecture 3 part 30
> variant c rev 3
> [    2.978881] ThumbEE CPU extension supported.
> [    2.991058] OMAPFB: omapfb_init
> [    2.991302] OMAPFB: omapfb_probe
> [    2.994323] fbcvt: 1024x768@60: CVT Name - .786M3-R
> [    2.999938] OMAPFB: create 3 framebuffers
> [    2.999999] OMAPFB: fb_infos allocated
> [    2.999999] OMAPFB: allocating 1572864 bytes for fb 0
> [    3.002807] OMAPFB: allocated VRAM paddr 9f600000, vaddr e090c000
> [    3.002838] OMAPFB: region0 phys 9f600000 virt e090c000 size=1572864
> [    3.002868] OMAPFB: region1 phys 00000000 virt   (null) size=0
> [    3.002868] OMAPFB: region2 phys 00000000 virt   (null) size=0
> [    3.002868] OMAPFB: fbmems allocated
> [    3.003082] OMAPFB: check_fb_var 0
> [    3.003082] OMAPFB: max frame size 1572864, line size 2048
> [    3.003112] OMAPFB: xres = 1024, yres = 768, vxres = 1024, vyres = 768
> [    3.003143] OMAPFB: set_fb_fix
> [    3.005126] OMAPFB: fb_infos initialized
> [    3.010009] OMAPFB: set_par(0)
> [    3.010070] OMAPFB: set_fb_fix
> [    3.010070] OMAPFB: apply_changes, fb 0, ovl 0
> [    3.010131] OMAPFB: setup_overlay 0, posx 0, posy 0, outw 1024, outh 768
> [    3.010162] OMAPFB: paddr 9f600000
> [    3.010314] OMAPFB: pan_display(0)
> [    3.010314] OMAPFB: setcmap
> [    3.010345] OMAPFB: setcmap
> [    3.019195] Console: switching to colour frame buffer device 128x48
> [    3.019195] OMAPFB: pan_display(0)
> [    3.019195] OMAPFB: setcmap
> [    3.027313] OMAPFB: setcmap
> [    3.036560] OMAPFB: framebuffers registered
> [    3.036590] OMAPFB: apply_changes, fb 0, ovl 0
> [    3.036621] OMAPFB: setup_overlay 0, posx 0, posy 0, outw 1024, outh 768
> [    3.036621] OMAPFB: paddr 9f600000
> [    3.036682] OMAPFB: apply_changes, fb 1, ovl 1
> [    3.036743] OMAPFB: apply_changes, fb 2, ovl 2
> [    3.036834] OMAPFB: create_framebuffers done
> [    3.036865] OMAPFB: mgr->apply'ed
> [    3.039794] OMAPFB: create sysfs for fbs
> [    3.039825] OMAPFB: create sysfs for fbs
> [    3.041259] VDVI: incomplete constraints, leaving on
> [    3.051971] twl_rtc twl_rtc: setting system clock to 2000-01-01
> 00:00:00 UTC (946684800)
> [    3.065521] Waiting for root device /dev/mmcblk0p2...
> [    3.222808] mmc1: host does not support reading read-only switch.
> assuming write-enable.
> [    3.231597] mmc1: new SDHC card at address e624
> [    3.238830] mmcblk0: mmc1:e624 SU08G 7.40 GiB
> [    3.255645]  mmcblk0: p1 p2
> [    3.322967] EXT4-fs (mmcblk0p2): warning: maximal mount count
> reached, running e2fsck is recommended
> [    3.341094] EXT4-fs (mmcblk0p2): mounted filesystem with ordered
> data mode. Opts: (null)
> [    3.349884] VFS: Mounted root (ext4 filesystem) on device 179:2.
> [    3.381835] devtmpfs: mounted
> [    3.385833] Freeing init memory: 336K
> [    4.150543] OMAPFB: pan_display(0)
> [    4.150573] OMAPFB: setcmap
> [    4.150573] OMAPFB: setcmap
> [    4.161651] OMAPFB: user mmap region start 9f600000, len 1572864,
> off 9f600000
>>[    4.548126] udevd[780]: starting version 182
> [    7.068847] omap-twl4030 omap-twl4030: ASoC: CPU DAI omap-mcbsp.2
> not registered
> [    7.076965] omap-twl4030 omap-twl4030: snd_soc_register_card() failed: -517
> [    7.084411] platform omap-twl4030: Driver omap-twl4030 requests
> probe deferral
> [    7.171356] omap-twl4030 omap-twl4030: ASoC: CODEC twl4030-codec
> not registered
> [    7.179565] omap-twl4030 omap-twl4030: snd_soc_register_card() failed: -517
> [    7.186950] platform omap-twl4030: Driver omap-twl4030 requests
> probe deferral
> [    7.387695] lib80211: common routines for IEEE802.11 drivers
> [    7.394042] lib80211_crypt: registered algorithm 'NULL'
> [    7.551940] omap-twl4030 omap-twl4030: ASoC: CODEC twl4030-codec
> not registered
> [    7.560028] omap-twl4030 omap-twl4030: snd_soc_register_card() failed: -517
> [    7.567504] platform omap-twl4030: Driver omap-twl4030 requests
> probe deferral
> [    8.216064] cfg80211: Calling CRDA to update world regulatory domain
> [    8.364746] omap-twl4030 omap-twl4030:  twl4030-hifi <->
> omap-mcbsp.2 mapping ok
> [    8.573333] libertas_sdio: Libertas SDIO driver
> [    8.578369] libertas_sdio: Copyright Pierre Ossman
> [   11.256774] libertas_sdio: failed to find firmware (-2)
> [   12.367126] EXT4-fs (mmcblk0p2): re-mounted. Opts: data=ordered
> [   13.176910] smsc911x smsc911x.0 eth0: SMSC911x/921x identified at
> 0xe08c8000, IRQ: 290
> [   24.423065] OMAPFB: check_var(0)
> [   24.423156] OMAPFB: check_fb_var 0
> [   24.423187] OMAPFB: max frame size 1572864, line size 2048
> [   24.423187] OMAPFB: xres = 1024, yres = 768, vxres = 1024, vyres = 768
> [   24.423278] OMAPFB: set_par(0)
> [   24.423278] OMAPFB: set_fb_fix
> [   24.423278] OMAPFB: apply_changes, fb 0, ovl 0
> [   24.423339] OMAPFB: setup_overlay 0, posx 0, posy 0, outw 1024, outh 768
> [   24.423339] OMAPFB: paddr 9f600000
> [   24.423858] OMAPFB: pan_display(0)
> [   24.423858] OMAPFB: setcmap
> [   24.423950] OMAPFB: pan_display(0)
> [   24.423950] OMAPFB: setcmap
> [   24.423950] OMAPFB: setcmap
> [   24.433532] OMAPFB: setcmap
> [   24.436462] OMAPFB: ioctl GET_CAPS
> [   24.436676] OMAPFB: ioctl QUERY_MEM
> [   24.445281] OMAPFB: user mmap region start 9f600000, len 1572864,
> off 9f600000
> [   24.547180] OMAPFB: ioctl QUERY_PLANE
> [   24.547302] OMAPFB: ioctl SETUP_PLANE
> [   24.547302] OMAPFB: omapfb_setup_plane
> [   24.547424] OMAPFB: setup_overlay 0, posx 0, posy 0, outw 1024, outh 768
> [   24.547424] OMAPFB: paddr 9f600000
> [   24.547790]
> [   24.547790] ======================================================
> [   24.547790] [ INFO: possible circular locking dependency detected ]
> [   24.547821] 3.7.0-00017-g6c2ecfb-dirty #155 Not tainted
> [   24.547821] -------------------------------------------------------
> [   24.547821] Xorg/1277 is trying to acquire lock:
> [   24.547882]  ((fb_notifier_list).rwsem){.+.+.+}, at: [<c0068708>]
> __blocking_notifier_call_chain+0x30/0x60
> [   24.547882]
> [   24.547882] but task is already holding lock:
> [   24.547912]  (console_lock){+.+.+.}, at: [<c02cec98>] do_fb_ioctl+0x200/0x5d8
> [   24.547912]
> [   24.547912] which lock already depends on the new lock.
> [   24.547912]
> [   24.547912]
> [   24.547912] the existing dependency chain (in reverse order) is:
> [   24.547943]
> [   24.547943] -> #1 (console_lock){+.+.+.}:
> [   24.547943]        [<c00902a4>] lock_acquire+0x9c/0x124
> [   24.547973]        [<c0042b0c>] console_lock+0x50/0x64
> [   24.548004]        [<c0320bcc>] register_con_driver+0x38/0x134
> [   24.548004]        [<c032219c>] take_over_console+0x18/0x44
> [   24.548034]        [<c02d7674>] fbcon_takeover+0x64/0xc8
> [   24.548034]        [<c04f4dd4>] notifier_call_chain+0x44/0x84
> [   24.548065]        [<c0068720>] __blocking_notifier_call_chain+0x48/0x60
> [   24.548065]        [<c0068750>] blocking_notifier_call_chain+0x18/0x20
> [   24.548095]        [<c02cf654>] register_framebuffer+0x16c/0x23c
> [   24.548095]        [<c04ee990>] omapfb_create_framebuffers+0x520/0x700
> [   24.548126]        [<c0723480>] omapfb_probe+0x4e4/0x768
> [   24.548126]        [<c03399f4>] platform_drv_probe+0x18/0x1c
> [   24.548156]        [<c03387b0>] driver_probe_device+0x78/0x210
> [   24.548187]        [<c03389dc>] __driver_attach+0x94/0x98
> [   24.548187]        [<c03370b0>] bus_for_each_dev+0x50/0x7c
> [   24.548187]        [<c0337fdc>] bus_add_driver+0x178/0x240
> [   24.548217]        [<c0338eac>] driver_register+0x78/0x144
> [   24.548217]        [<c0339be4>] platform_driver_probe+0x18/0x9c
> [   24.548248]        [<c0722f70>] omapfb_init+0x28/0x54
> [   24.548248]        [<c00086a4>] do_one_initcall+0x34/0x178
> [   24.548278]        [<c04e47a8>] kernel_init+0x100/0x2b4
> [   24.548309]        [<c0013170>] ret_from_fork+0x14/0x24
> [   24.548309]
> [   24.548309] -> #0 ((fb_notifier_list).rwsem){.+.+.+}:
> [   24.548339]        [<c008f85c>] __lock_acquire+0x15e4/0x1b00
> [   24.548339]        [<c00902a4>] lock_acquire+0x9c/0x124
> [   24.548370]        [<c04f0eb8>] down_read+0x2c/0x3c
> [   24.548370]        [<c0068708>] __blocking_notifier_call_chain+0x30/0x60
> [   24.548370]        [<c0068750>] blocking_notifier_call_chain+0x18/0x20
> [   24.548400]        [<c02ce1c0>] fb_blank+0x34/0x98
> [   24.548400]        [<c02cecb0>] do_fb_ioctl+0x218/0x5d8
> [   24.548431]        [<c0114924>] do_vfs_ioctl+0x80/0x5f0
> [   24.548431]        [<c0114f04>] sys_ioctl+0x70/0x78
> [   24.548461]        [<c00130c0>] ret_fast_syscall+0x0/0x3c
> [   24.548461]
> [   24.548461] other info that might help us debug this:
> [   24.548461]
> [   24.548461]  Possible unsafe locking scenario:
> [   24.548461]
> [   24.548461]        CPU0                    CPU1
> [   24.548461]        ----                    ----
> [   24.548492]   lock(console_lock);
> [   24.548492]                                lock((fb_notifier_list).rwsem);
> [   24.548492]                                lock(console_lock);
> [   24.548522]   lock((fb_notifier_list).rwsem);
> [   24.548522]
> [   24.548522]  *** DEADLOCK ***
> [   24.548522]
> [   24.548522] 2 locks held by Xorg/1277:
> [   24.548553]  #0:  (&fb_info->lock){+.+.+.}, at: [<c02cdf9c>]
> lock_fb_info+0x18/0x3c
> [   24.548583]  #1:  (console_lock){+.+.+.}, at: [<c02cec98>]
> do_fb_ioctl+0x200/0x5d8
> [   24.548583]
> [   24.548583] stack backtrace:
> [   24.548614] [<c001ac2c>] (unwind_backtrace+0x0/0xf0) from
> [<c04eb508>] (print_circular_bug+0x278/0x2c4)
> [   24.548614] [<c04eb508>] (print_circular_bug+0x278/0x2c4) from
> [<c008f85c>] (__lock_acquire+0x15e4/0x1b00)
> [   24.548645] [<c008f85c>] (__lock_acquire+0x15e4/0x1b00) from
> [<c00902a4>] (lock_acquire+0x9c/0x124)
> [   24.548675] [<c00902a4>] (lock_acquire+0x9c/0x124) from
> [<c04f0eb8>] (down_read+0x2c/0x3c)
> [   24.548675] [<c04f0eb8>] (down_read+0x2c/0x3c) from [<c0068708>]
> (__blocking_notifier_call_chain+0x30/0x60)
> [   24.548706] [<c0068708>] (__blocking_notifier_call_chain+0x30/0x60)
> from [<c0068750>] (blocking_notifier_call_chain+0x18/0x20)
> [   24.548706] [<c0068750>] (blocking_notifier_call_chain+0x18/0x20)
> from [<c02ce1c0>] (fb_blank+0x34/0x98)
> [   24.548736] [<c02ce1c0>] (fb_blank+0x34/0x98) from [<c02cecb0>]
> (do_fb_ioctl+0x218/0x5d8)
> [   24.548736] [<c02cecb0>] (do_fb_ioctl+0x218/0x5d8) from
> [<c0114924>] (do_vfs_ioctl+0x80/0x5f0)
> [   24.548767] [<c0114924>] (do_vfs_ioctl+0x80/0x5f0) from
> [<c0114f04>] (sys_ioctl+0x70/0x78)
> [   24.548797] [<c0114f04>] (sys_ioctl+0x70/0x78) from [<c00130c0>]
> (ret_fast_syscall+0x0/0x3c)
> [   25.008056] OMAPFB: ioctl QUERY_PLANE
> [   25.011962] OMAPFB: ioctl SETUP_PLANE
> [   25.015930] OMAPFB: omapfb_setup_plane
> [   25.019897] omapdss OVERLAY error: check_overlay: paddr cannot be 0
> [   25.026580] omapdss OVERLAY error: check_overlay: overlay 2 doesn't
> support mode 0
> [   25.034576] omapdss OVERLAY error: check_overlay: rotation type 0
> not supported
> [   25.044525] OMAPFB: ioctl QUERY_MEM
> [   25.048339] OMAPFB: ioctl QUERY_PLANE
> [   25.052215] OMAPFB: ioctl GET_CAPS

Hi,

I've tested with the latest stable kernel (Linux 3.7.1) and the video
output is working correctly with the same user-space components.
The complete dmesg is here: http://fpaste.org/1Kv4/

Looking at the logs for both kernels I realized that there are two
differences main between the working (3.7.1) and non-working
(mainline) kernel (besides the versions of course):

a) The number of framebuffers created (working 1, non working 3)
b) The omapfb now uses dma_alloc_attrs to allocate memory instead of
the now removed OMAP-specific omap_vram_alloc

For a) I built mainline with CONFIG_FB_OMAP2_NUM_FBS=1 and that made
the error about the overlay paddr being zero disappear (OVERLAY error:
check_overlay: paddr cannot be 0) but still no video on the screen.

Conversely I build 3.7.1 with CONFIG_FB_OMAP2_NUM_FBS=3 and even
though I had the paddr can't be zero error, video is working
correctly. So it seems that error shouldn't affect the video display.

For b) I tried to built mainline with CONFIG_CMA=y but it didn't work either.

Thanks a lot and best regards,
Javier
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Tomi Valkeinen Dec. 19, 2012, 8:24 a.m. UTC | #12
On 2012-12-18 10:31, Javier Martinez Canillas wrote:

> Did you find a solution for this?

Not that I know.

> Also I have this log about a locking dependency:
> 
> [   24.690795]
> [   24.690826] ======================================================
> [   24.690826] [ INFO: possible circular locking dependency detected ]
> [   24.690826] 3.7.0-00017-g6c2ecfb-dirty #144 Not tainted
> [   24.690826] -------------------------------------------------------

I've also seen these. But they don't seem to happen with linux-next (or
Linus' current tree). I haven't been able to figure out the reason for
the warning, but as they seem to have disappeared, they may be related
to something else than omapfb/omapdss.

 Tomi
Tomi Valkeinen Dec. 19, 2012, 8:33 a.m. UTC | #13
On 2012-12-18 15:45, Javier Martinez Canillas wrote:
> Hi,
> 
> I've tested with the latest stable kernel (Linux 3.7.1) and the video
> output is working correctly with the same user-space components.
> The complete dmesg is here: http://fpaste.org/1Kv4/
> 
> Looking at the logs for both kernels I realized that there are two
> differences main between the working (3.7.1) and non-working
> (mainline) kernel (besides the versions of course):
> 
> a) The number of framebuffers created (working 1, non working 3)
> b) The omapfb now uses dma_alloc_attrs to allocate memory instead of
> the now removed OMAP-specific omap_vram_alloc
> 
> For a) I built mainline with CONFIG_FB_OMAP2_NUM_FBS=1 and that made
> the error about the overlay paddr being zero disappear (OVERLAY error:
> check_overlay: paddr cannot be 0) but still no video on the screen.

Ok. I think the reason for that is that the paddr errors come from X
trying to setup the video overlays with paddr 0. The video overlays are
by default on fb1 and fb2, so they are not present if you set the
NUM_FBS to 1.

> Conversely I build 3.7.1 with CONFIG_FB_OMAP2_NUM_FBS=3 and even
> though I had the paddr can't be zero error, video is working
> correctly. So it seems that error shouldn't affect the video display.

Hmm, so do you get any display with 3.8, before X is started, using
plain fb? For example, break the boot before X is started, and do

cat /dev/urandom > /dev/fb0

Do you have an userspace image I could download to reproduce this?

> For b) I tried to built mainline with CONFIG_CMA=y but it didn't work either.

I don't think the vram change affects this, except if you see errors
about mem alloc. But yes, I think you should enable CMA with 3.8,
although allocation may work fine for smaller displays even without CMA.

 Tomi
Javier Martinez Canillas Dec. 19, 2012, 11:27 a.m. UTC | #14
On Wed, Dec 19, 2012 at 9:33 AM, Tomi Valkeinen <tomi.valkeinen@ti.com> wrote:
> On 2012-12-18 15:45, Javier Martinez Canillas wrote:
>> Hi,
>>
>> I've tested with the latest stable kernel (Linux 3.7.1) and the video
>> output is working correctly with the same user-space components.
>> The complete dmesg is here: http://fpaste.org/1Kv4/
>>
>> Looking at the logs for both kernels I realized that there are two
>> differences main between the working (3.7.1) and non-working
>> (mainline) kernel (besides the versions of course):
>>
>> a) The number of framebuffers created (working 1, non working 3)
>> b) The omapfb now uses dma_alloc_attrs to allocate memory instead of
>> the now removed OMAP-specific omap_vram_alloc
>>
>> For a) I built mainline with CONFIG_FB_OMAP2_NUM_FBS=1 and that made
>> the error about the overlay paddr being zero disappear (OVERLAY error:
>> check_overlay: paddr cannot be 0) but still no video on the screen.
>
> Ok. I think the reason for that is that the paddr errors come from X
> trying to setup the video overlays with paddr 0. The video overlays are
> by default on fb1 and fb2, so they are not present if you set the
> NUM_FBS to 1.
>

Yes, that's what I thought, I'll just use CONFIG_FB_OMAP2_NUM_FBS=1
then on my defconfig.

>> Conversely I build 3.7.1 with CONFIG_FB_OMAP2_NUM_FBS=3 and even
>> though I had the paddr can't be zero error, video is working
>> correctly. So it seems that error shouldn't affect the video display.
>
> Hmm, so do you get any display with 3.8, before X is started, using
> plain fb? For example, break the boot before X is started, and do
>
> cat /dev/urandom > /dev/fb0
>
> Do you have an userspace image I could download to reproduce this?
>
>> For b) I tried to built mainline with CONFIG_CMA=y but it didn't work either.
>
> I don't think the vram change affects this, except if you see errors
> about mem alloc. But yes, I think you should enable CMA with 3.8,
> although allocation may work fine for smaller displays even without CMA.
>
>  Tomi
>
>

Hi Tomi,

At the end it was a red herring.

The problem was not in the kernel but in U-Boot that now only sets the
OMAP mux pins of the peripherals that uses. So the DSS OMAP mux pins
and the OMAP GPIO line that is used to power up the TFP410 chip has to
now be set in the kernel.

We will send a patch for the igep0020 board file to fix the issue.

Thanks a lot for your help and sorry for the noise!

Best regards,
Javier
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

--- a/drivers/video/omap2/dss/overlay.c
+++ b/drivers/video/omap2/dss/overlay.c
@@ -610,7 +610,7 @@  int dss_ovl_simple_check(struct omap_overlay *ovl,
 {
     if (info->paddr == 0) {
         DSSERR("check_overlay: paddr cannot be 0\n");
-        return -EINVAL;
+//        return -EINVAL;
     }

     if ((ovl->caps & OMAP_DSS_OVL_CAP_SCALE) == 0) {
@@ -630,7 +630,7 @@  int dss_ovl_simple_check(struct omap_overlay *ovl,
     if ((ovl->supported_modes & info->color_mode) == 0) {
         DSSERR("check_overlay: overlay %d doesn't support mode %d\n",
                 ovl->id, info->color_mode);
-        return -EINVAL;
+//        return -EINVAL;
     }

     if (info->zorder >= omap_dss_get_num_overlays()) {
@@ -641,7 +641,7 @@  int dss_ovl_simple_check(struct omap_overlay *ovl,
     if (dss_feat_rotation_type_supported(info->rotation_type) == 0) {
         DSSERR("check_overlay: rotation type %d not supported\n",
                 info->rotation_type);
-        return -EINVAL;
+//        return -EINVAL;
     }

     return 0;