Re: omapdrm regressions on n900

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



* Peter Ujfalusi <peter.ujfalusi@xxxxxx> [170413 06:49]:
> On 2017-04-13 10:37, Tomi Valkeinen wrote:
> > On 12/04/17 21:17, Tony Lindgren wrote:
> > > Looks like commit a09d2bc15035 ("drm/omap: Use omapdss_stack_is_ready()
> > > to check that the display stack is up") causes a regression on n900
> > > where /sys/class/graphics/fb0 no longer exists so fb0 can't be
> > > unblanked. Reverting the commit above fixes the issue.
> > 
> > Hmm yes, looks like omapdss_register_display() is broken if there are no
> > aliases defined. Peter, can you have a look at it?
> 
> Hrm, not sure what is broken there:
> 
> if (dssdev->dev->of_node) {
> 	id = of_alias_get_id(dssdev->dev->of_node, "display");
> 
> 	if (id < 0)
> 		id = disp_num_counter++;
> } else {
> 	id = disp_num_counter++;
> }
> 
> if there are no aliases, of_alias_get_id() would return -ENODEV (-19). In
> such case the code will fall back to number the displays in load order.
> Probably the issue is that the TV would be the first display in the list and
> since it is not connected the FB is not created for it.
> The aliases in the DT file should fix the ordering and most likely fix the
> problem as well.

Adding the aliases fixes the /sys/class/graphics/fb0 issue in next
as suggested by Tomi.

> Unfortunately I can not boot my n900 with mainline kernel no matter how hard
> I try (I can not load the kernel with flasher-3.5 nor with 0xFFFF), so I can
> not test it.

I had that same issue last year and it turned out to be the xhci controller
on the PC.. The symptoms were that Nokia devices would not enumerate in
the bootloader mode, or only would do it rarely. I think it's some timeout
issue. The fix was to install a cheapo ohci+ehci PCIe controller.. Eventually
I actually ended up swapping the the motherboard because USB was so flakey
on that motherboard in general. Avoid motherboards that have some kind of
active USB mapping between USB2 and USB3 in the BIOS at least for now..

> > Tony, as a quick test, you could try adding display aliases to n900's
> > dts. I think something like this:
> > 
> > 	aliases {
> > 		display0 = &acx565akm;
> > 		display1 = &tv;
> > 	};

Yes that helps see the patch I used below.

> > Interestingly, on my AM5 EVM board things work just fine, even if I
> > remove the aliases, and even if I see that the omapdss_register_display
> > does things badly. So possibly there's something else wrong too.
> > 
> > > Then another issue I'm seeing is that current mainline and next
> > > produce the following omap_crtc_error_irq errors:
> > > 
> > > tsc2005 spi1.0: GPIO lookup for consumer reset
> > > tsc2005 spi1.0: using device tree for GPIO lookup
> > > of_get_named_gpiod_flags: parsed 'reset-gpios' property of node '/ocp@68000000/spi@48098000/tsc2005@0[0]' - status (0)
> > > input: TSC2005 touchscreen as /devices/platform/68000000.ocp/48098000.spi/spi_master/spi1/spi1.0/input/input0
> > > omapdss_dss 48050000.dss: 48050000.dss supply vdda_video not found, using dummy regulator
> > > DSS: OMAP DSS rev 2.0
> > > omapdss_dss 48050000.dss: bound 48050400.dispc (ops dispc_component_ops [omapdss])
> > > omapdss_dss 48050000.dss: bound 48050c00.encoder (ops venc_component_ops [omapdss])
> > > of_get_named_gpiod_flags: parsed 'reset-gpios' property of node '/ocp@68000000/spi@48098000/acx565akm@2[0]' - status (0)
> > > acx565akm spi1.2: omapfb: acx565akm rev 8b LCD detected
> > > omapdrm omapdrm.0: DMM not available, disable DMM support
> > > [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
> > > [drm] No driver support for vblank timestamp query.
> > > [drm:omap_crtc_error_irq] *ERROR* lcd: errors: 00004022
> > > Console: switching to colour frame buffer device 100x30
> > > [drm:omap_crtc_error_irq] *ERROR* lcd: errors: 00004020
> > > [drm:omap_crtc_error_irq] *ERROR* lcd: errors: 00004000
> > 
> > That's sync lost, so some config is wrong... When did it work the last
> > time? v4.10?

Yes I think v4.10 works without those and v4.11-rc has them. They
do not show up every time though.

> > > And then one more issue.. Starting X on n900 seems to produce
> > > two desktops on top half of the LCD that are both 1/4 of the
> > > size of the LCD :)
> > 
> > That's with the sync lost errors? If you get sync losts, you've lost
> > already and you will see random things on the screen.

This issue seems to be also in v4.9.y. Console works properly but
X is somehow 1/4 the size of the LCD. I have my n900 in a rack so
I may not have noticed it earlier beyond checking that X starts fine.

Regards,

Tony

8< ----------------------
>From tony Mon Sep 17 00:00:00 2001
From: Tony Lindgren <tony@xxxxxxxxxxx>
Date: Thu, 13 Apr 2017 07:31:28 -0700
Subject: [PATCH] ARM: dts: Fix LCD alias for n900

Commit a09d2bc15035 ("drm/omap: Use omapdss_stack_is_ready() to
check that the display stack is up") caused /sys/class/graphics/fb0
to no longer appear so LCD can't be unblanked.

Fix the issue by adding aliases as suggested by Tomi Valkeinen
<tomi.valkeinen@xxxxxx>.

Fixes: a09d2bc15035 ("drm/omap: Use omapdss_stack_is_ready() to
check that the display stack is up")
Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx>
---
 arch/arm/boot/dts/omap3-n900.dts | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/arch/arm/boot/dts/omap3-n900.dts b/arch/arm/boot/dts/omap3-n900.dts
--- a/arch/arm/boot/dts/omap3-n900.dts
+++ b/arch/arm/boot/dts/omap3-n900.dts
@@ -31,6 +31,8 @@
 	compatible = "nokia,omap3-n900", "ti,omap3430", "ti,omap3";
 
 	aliases {
+		display0 = &lcd;
+		display1 = &tv;
 		i2c0;
 		i2c1 = &i2c1;
 		i2c2 = &i2c2;
@@ -889,7 +891,7 @@
 		ti,esd-recovery-timeout-ms = <8000>;
 	};
 
-	acx565akm@2 {
+	lcd: acx565akm@2 {
 		compatible = "sony,acx565akm";
 		spi-max-frequency = <6000000>;
 		reg = <2>;
-- 
2.12.2
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux