diff mbox

[v2] ARM: shmobile: dts: Add common file for AA121TD01 panel

Message ID 87vbd4227u.wl%kuninori.morimoto.gx@renesas.com (mailing list archive)
State Accepted
Commit 5325f83aba3cc80a1d3aa62a0350a107cfae7a43
Delegated to: Simon Horman
Headers show

Commit Message

Kuninori Morimoto July 28, 2015, 7:06 a.m. UTC
From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>

The Mitsubishi AA121TD01 panel is commonly used with the Marzen, Lager
and Koelsch boards. Create a .dtsi file that describe the panel and its
connection to the board.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
v1 -> v2

 - tidyup panel-timing / width / height settings

 arch/arm/boot/dts/r8a77xx-aa121td01-panel.dtsi | 41 ++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)
 create mode 100644 arch/arm/boot/dts/r8a77xx-aa121td01-panel.dtsi

Comments

Kuninori Morimoto July 28, 2015, 7:21 a.m. UTC | #1
Hi Laurent
Cc Magnus

> From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
> 
> The Mitsubishi AA121TD01 panel is commonly used with the Marzen, Lager
> and Koelsch boards. Create a .dtsi file that describe the panel and its
> connection to the board.
> 
> Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
> ---

I tested this panel on Koelsch board (with I2C fixup local patch),
and it works well for me.
But, on Lager (with I2C fixup local patch), it doesn't work.
But, it seems not panel issue, LVDS issue (?).

On Lager board, modetest listed VGA/HDMI/LDVS
(I attached it on this mail)
VGA works well for me, but, it can't get HDMI size information,
and it dead if I tried LDVS.
(I attached log on this mail)

I'm using renesas-drivers-2015-07-14-v4.2-rc2

--- modetest list ----------------

> modetest -M rcar-du -c
Connectors:
id      encoder status          name            size (mm)       modes   encoders
42      41      connected       VGA-1           0x0             5       41
  modes:
        name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot)
  1024x768 60 1024 1048 1184 1344 768 771 777 806 flags: nhsync, nvsync; type: driver
  800x600 60 800 840 968 1056 600 601 605 628 flags: phsync, pvsync; type: driver
  800x600 56 800 824 896 1024 600 601 603 625 flags: phsync, pvsync; type: driver
  848x480 60 848 864 976 1088 480 486 494 517 flags: phsync, pvsync; type: driver
  640x480 60 640 656 752 800 480 490 492 525 flags: nhsync, nvsync; type: driver
  props:
        1 EDID:
                flags: immutable blob
                blobs:

                value:
        2 DPMS:
                flags: enum
                enums: On=0 Standby=1 Suspend=2 Off=3
                value: 3
44      0       disconnected    HDMI-A-1        0x0             0       43
  props:
        1 EDID:
                flags: immutable blob
                blobs:

                value:
        2 DPMS:
                flags: enum
                enums: On=0 Standby=1 Suspend=2 Off=3
                value: 3
46      45      connected       LVDS-1          261x163         1       45
  modes:
        name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot)
  1280x800 60 1280 1300 1370 1440 800 803 808 823 flags: ; type: preferred, driver
  props:
        1 EDID:
                flags: immutable blob
                blobs:

                value:
        2 DPMS:
                flags: enum
                enums: On=0 Standby=1 Suspend=2 Off=3
                value: 3


--- LVDS dead ------------------


> modetest -M rcar-du -s 46:1280x800@AR24
setting mode 1280x800-60Hz@AR24 on connectors 46, crtc 39
------------[ cut here ]------------
WARNING: CPU: 2 PID: 977 at /opt/home/morimoto/WORK/linux/drivers/gpu/drm/drm_irq.c:1171 drm_wait_one_vblank+0x118/0x138()
vblank wait timed out on crtc 1
CPU: 2 PID: 977 Comm: modetest Tainted: G        W       4.2.0-rc1-00223-gf187fe9-dirty #317
Hardware name: Generic R8A7790 (Flattened Device Tree)
Backtrace: 
[<c0012f84>] (dump_backtrace) from [<c001312c>] (show_stack+0x18/0x1c)
 r7:c05e27fc r6:ee053500 r5:00000009 r4:00000000
[<c0013114>] (show_stack) from [<c04b765c>] (dump_stack+0x78/0x94)
[<c04b75e4>] (dump_stack) from [<c0026260>] (warn_slowpath_common+0x88/0xb4)
 r5:00000009 r4:ee13bb40
[<c00261d8>] (warn_slowpath_common) from [<c00262f8>] (warn_slowpath_fmt+0x38/0x40)
 r9:00000000 r8:00000058 r7:ee13bb6c r6:ee008c00 r5:00000000 r4:00000001
[<c00262c4>] (warn_slowpath_fmt) from [<c024f670>] (drm_wait_one_vblank+0x118/0x138)
 r3:00000001 r2:c05f2f53
[<c024f558>] (drm_wait_one_vblank) from [<c024f6b0>] (drm_crtc_wait_one_vblank+0x20/0x24)
 r9:c06cb768 r8:ee008c00 r7:c0527014 r6:00000001 r5:ee338388 r4:ee008c00
[<c024f690>] (drm_crtc_wait_one_vblank) from [<c0267c38>] (rcar_du_crtc_stop+0x48/0x16c)
 r5:ee338388 r4:ee338388
[<c0267bf0>] (rcar_du_crtc_stop) from [<c0267d7c>] (rcar_du_crtc_disable+0x20/0x38)
 r10:c06cb768 r9:c06cb768 r8:ee008c00 r7:c0527014 r6:00000001 r5:ee338388
 r4:ee338388
[<c0267d5c>] (rcar_du_crtc_disable) from [<c0244da0>] (drm_atomic_helper_commit_modeset_disables+0x1a0/0x33c)
 r5:ee338388 r4:ee9b0040
[<c0244c00>] (drm_atomic_helper_commit_modeset_disables) from [<c0268b0c>] (rcar_du_atomic_complete+0x28/0xbc)
 r10:ee33a010 r9:ee90c300 r8:00000000 r7:ee90c300 r6:ee008c00 r5:ee9b0040
 r4:ee338010 r3:00000011
[<c0268ae4>] (rcar_du_atomic_complete) from [<c0268df8>] (rcar_du_atomic_commit+0x258/0x298)
 r7:ee9b0040 r6:ee008c00 r5:ee33a818 r4:00000000
[<c0268ba0>] (rcar_du_atomic_commit) from [<c0265ef0>] (drm_atomic_commit+0x58/0x68)
 r10:edcf6810 r9:00000000 r8:ee338388 r7:00000003 r6:ee9b0040 r5:ee008c00
 r4:ee9b0040
[<c0265e98>] (drm_atomic_commit) from [<c0245e9c>] (drm_atomic_helper_set_config+0x33c/0x388)
 r5:ee13bd34 r4:00000000
[<c0245b60>] (drm_atomic_helper_set_config) from [<c0256da8>] (drm_mode_set_config_internal+0x54/0xcc)
 r10:ee008c00 r9:ee008dc4 r8:ee008c00 r7:00000000 r6:ee008c00 r5:ee338388
 r4:00000000 r3:c0245b60
[<c0256d54>] (drm_mode_set_config_internal) from [<c0256eb0>] (drm_framebuffer_remove+0x90/0x100)
 r7:ee008e14 r6:ee008c00 r5:ee941100 r4:ee338388
[<c0256e20>] (drm_framebuffer_remove) from [<c02578dc>] (drm_fb_release+0x78/0x88)
 r7:ee941178 r6:ee28d6d4 r5:ee28d74c r4:ee28d6d4
[<c0257864>] (drm_fb_release) from [<c024c33c>] (drm_release+0x2a8/0x484)
 r9:ee008d00 r8:eeaaa300 r7:ee008c34 r6:ee28d780 r5:ee008c00 r4:ee28d700
[<c024c094>] (drm_release) from [<c00cba38>] (__fput+0xe0/0x1a0)
 r10:ee93f7c8 r9:00000008 r8:ee93cad0 r7:ee442b28 r6:00000000 r5:eeb29d28
 r4:ee93f7c0
[<c00cb958>] (__fput) from [<c00cbb58>] (____fput+0x10/0x14)
 r10:ee103280 r9:ee18f3f8 r8:00000001 r7:ee13be58 r6:c06a61ec r5:00000000
 r4:ee053500
[<c00cbb48>] (____fput) from [<c003d688>] (task_work_run+0xbc/0xd0)
[<c003d5cc>] (task_work_run) from [<c0028700>] (do_exit+0x3c0/0x870)
 r7:ee13be58 r6:ee0538ec r5:ee18f3c0 r4:ee053500
[<c0028340>] (do_exit) from [<c0028c40>] (do_group_exit+0x54/0xd8)
 r7:ee13a000
[<c0028bec>] (do_group_exit) from [<c00324c0>] (get_signal+0x4e4/0x554)
 r7:ee13a000 r6:ee917544 r5:ee13bed0 r4:00000009
[<c0031fdc>] (get_signal) from [<c0012774>] (do_signal+0x94/0x360)
 r10:00000000 r9:ee13a000 r8:000215dc r7:fffffe00 r6:ee13bfb0 r5:000215d8
 r4:00000001
[<c00126e0>] (do_signal) from [<c0012bb4>] (do_work_pending+0x58/0xb0)
 r9:ee13a000 r8:c000fd84 r7:00000003 r6:ee13bfb0 r5:ee13a010 r4:c000fd84
[<c0012b5c>] (do_work_pending) from [<c000fc2c>] (work_pending+0xc/0x20)
 r7:00000003 r6:00000001 r5:00001000 r4:000342e4
---[ end trace a644a4a45e5f5e9d ]---


Best regards
---
Kuninori Morimoto
--
To unsubscribe from this list: send the line "unsubscribe linux-sh" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Magnus Damm July 29, 2015, 7:32 a.m. UTC | #2
Hi Laurent, Morimoto-san, everyone,

I have now together with Morimoto-san tried to get a bit closer to
tracking down what the issue is for LVDS on Lager. This is what we
have observed so far:

- On Koelsch both LVDS panels work fine (aa104xd12 and aa121td01).
- On Koelsch HDMI works well too.

- On Lager the VGA output seems to work.
- On Lager the LVDS panel output does not work.
- On Lager the HDMI does not work.
- On Lager we get the crash described by Morimoto-san using the 1280x800 panel.
- On Lager we get no crash if we use the 1024x768 panel.

We seem to have some issues with Lager. =)

The Lager crash disappears if we force use of DU2 on LVDS1:

--- 0001/drivers/gpu/drm/rcar-du/rcar_du_drv.c
+++ work/drivers/gpu/drm/rcar-du/rcar_du_drv.c    2015-07-29
16:24:21.212366518 +0900
@@ -66,7 +66,7 @@ static const struct rcar_du_device_info
          * (currently unsupported) TCON output.
          */
         [RCAR_DU_OUTPUT_DPAD0] = {
-            .possible_crtcs = BIT(2) | BIT(1) | BIT(0),
+            .possible_crtcs = BIT(1) | BIT(0),
             .encoder_type = DRM_MODE_ENCODER_NONE,
             .port = 0,
         },
@@ -76,7 +76,7 @@ static const struct rcar_du_device_info
             .port = 1,
         },
         [RCAR_DU_OUTPUT_LVDS1] = {
-            .possible_crtcs = BIT(2) | BIT(1),
+            .possible_crtcs = BIT(2),
             .encoder_type = DRM_MODE_ENCODER_LVDS,
             .port = 2,
         },

Regardless of if the crash disappears or not we still get no output on
the LVDS panel on Lager.

As for kernel, Morimoto-san used renesas-drivers-2015-07-14-v4.2-rc2
with a real LVDS panel and I used renesas-devel-20150729-v4.2-rc4
without panel connected (but added 1024x768 panel in DTS).

Any ideas?

Cheers,

/ magnus


On Tue, Jul 28, 2015 at 4:21 PM, Kuninori Morimoto
<kuninori.morimoto.gx@renesas.com> wrote:
>
> Hi Laurent
> Cc Magnus
>
>> From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
>>
>> The Mitsubishi AA121TD01 panel is commonly used with the Marzen, Lager
>> and Koelsch boards. Create a .dtsi file that describe the panel and its
>> connection to the board.
>>
>> Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
>> ---
>
> I tested this panel on Koelsch board (with I2C fixup local patch),
> and it works well for me.
> But, on Lager (with I2C fixup local patch), it doesn't work.
> But, it seems not panel issue, LVDS issue (?).
>
> On Lager board, modetest listed VGA/HDMI/LDVS
> (I attached it on this mail)
> VGA works well for me, but, it can't get HDMI size information,
> and it dead if I tried LDVS.
> (I attached log on this mail)
>
> I'm using renesas-drivers-2015-07-14-v4.2-rc2
>
> --- modetest list ----------------
>
>> modetest -M rcar-du -c
> Connectors:
> id      encoder status          name            size (mm)       modes   encoders
> 42      41      connected       VGA-1           0x0             5       41
>   modes:
>         name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot)
>   1024x768 60 1024 1048 1184 1344 768 771 777 806 flags: nhsync, nvsync; type: driver
>   800x600 60 800 840 968 1056 600 601 605 628 flags: phsync, pvsync; type: driver
>   800x600 56 800 824 896 1024 600 601 603 625 flags: phsync, pvsync; type: driver
>   848x480 60 848 864 976 1088 480 486 494 517 flags: phsync, pvsync; type: driver
>   640x480 60 640 656 752 800 480 490 492 525 flags: nhsync, nvsync; type: driver
>   props:
>         1 EDID:
>                 flags: immutable blob
>                 blobs:
>
>                 value:
>         2 DPMS:
>                 flags: enum
>                 enums: On=0 Standby=1 Suspend=2 Off=3
>                 value: 3
> 44      0       disconnected    HDMI-A-1        0x0             0       43
>   props:
>         1 EDID:
>                 flags: immutable blob
>                 blobs:
>
>                 value:
>         2 DPMS:
>                 flags: enum
>                 enums: On=0 Standby=1 Suspend=2 Off=3
>                 value: 3
> 46      45      connected       LVDS-1          261x163         1       45
>   modes:
>         name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot)
>   1280x800 60 1280 1300 1370 1440 800 803 808 823 flags: ; type: preferred, driver
>   props:
>         1 EDID:
>                 flags: immutable blob
>                 blobs:
>
>                 value:
>         2 DPMS:
>                 flags: enum
>                 enums: On=0 Standby=1 Suspend=2 Off=3
>                 value: 3
>
>
> --- LVDS dead ------------------
>
>
>> modetest -M rcar-du -s 46:1280x800@AR24
> setting mode 1280x800-60Hz@AR24 on connectors 46, crtc 39
> ------------[ cut here ]------------
> WARNING: CPU: 2 PID: 977 at /opt/home/morimoto/WORK/linux/drivers/gpu/drm/drm_irq.c:1171 drm_wait_one_vblank+0x118/0x138()
> vblank wait timed out on crtc 1
> CPU: 2 PID: 977 Comm: modetest Tainted: G        W       4.2.0-rc1-00223-gf187fe9-dirty #317
> Hardware name: Generic R8A7790 (Flattened Device Tree)
> Backtrace:
> [<c0012f84>] (dump_backtrace) from [<c001312c>] (show_stack+0x18/0x1c)
>  r7:c05e27fc r6:ee053500 r5:00000009 r4:00000000
> [<c0013114>] (show_stack) from [<c04b765c>] (dump_stack+0x78/0x94)
> [<c04b75e4>] (dump_stack) from [<c0026260>] (warn_slowpath_common+0x88/0xb4)
>  r5:00000009 r4:ee13bb40
> [<c00261d8>] (warn_slowpath_common) from [<c00262f8>] (warn_slowpath_fmt+0x38/0x40)
>  r9:00000000 r8:00000058 r7:ee13bb6c r6:ee008c00 r5:00000000 r4:00000001
> [<c00262c4>] (warn_slowpath_fmt) from [<c024f670>] (drm_wait_one_vblank+0x118/0x138)
>  r3:00000001 r2:c05f2f53
> [<c024f558>] (drm_wait_one_vblank) from [<c024f6b0>] (drm_crtc_wait_one_vblank+0x20/0x24)
>  r9:c06cb768 r8:ee008c00 r7:c0527014 r6:00000001 r5:ee338388 r4:ee008c00
> [<c024f690>] (drm_crtc_wait_one_vblank) from [<c0267c38>] (rcar_du_crtc_stop+0x48/0x16c)
>  r5:ee338388 r4:ee338388
> [<c0267bf0>] (rcar_du_crtc_stop) from [<c0267d7c>] (rcar_du_crtc_disable+0x20/0x38)
>  r10:c06cb768 r9:c06cb768 r8:ee008c00 r7:c0527014 r6:00000001 r5:ee338388
>  r4:ee338388
> [<c0267d5c>] (rcar_du_crtc_disable) from [<c0244da0>] (drm_atomic_helper_commit_modeset_disables+0x1a0/0x33c)
>  r5:ee338388 r4:ee9b0040
> [<c0244c00>] (drm_atomic_helper_commit_modeset_disables) from [<c0268b0c>] (rcar_du_atomic_complete+0x28/0xbc)
>  r10:ee33a010 r9:ee90c300 r8:00000000 r7:ee90c300 r6:ee008c00 r5:ee9b0040
>  r4:ee338010 r3:00000011
> [<c0268ae4>] (rcar_du_atomic_complete) from [<c0268df8>] (rcar_du_atomic_commit+0x258/0x298)
>  r7:ee9b0040 r6:ee008c00 r5:ee33a818 r4:00000000
> [<c0268ba0>] (rcar_du_atomic_commit) from [<c0265ef0>] (drm_atomic_commit+0x58/0x68)
>  r10:edcf6810 r9:00000000 r8:ee338388 r7:00000003 r6:ee9b0040 r5:ee008c00
>  r4:ee9b0040
> [<c0265e98>] (drm_atomic_commit) from [<c0245e9c>] (drm_atomic_helper_set_config+0x33c/0x388)
>  r5:ee13bd34 r4:00000000
> [<c0245b60>] (drm_atomic_helper_set_config) from [<c0256da8>] (drm_mode_set_config_internal+0x54/0xcc)
>  r10:ee008c00 r9:ee008dc4 r8:ee008c00 r7:00000000 r6:ee008c00 r5:ee338388
>  r4:00000000 r3:c0245b60
> [<c0256d54>] (drm_mode_set_config_internal) from [<c0256eb0>] (drm_framebuffer_remove+0x90/0x100)
>  r7:ee008e14 r6:ee008c00 r5:ee941100 r4:ee338388
> [<c0256e20>] (drm_framebuffer_remove) from [<c02578dc>] (drm_fb_release+0x78/0x88)
>  r7:ee941178 r6:ee28d6d4 r5:ee28d74c r4:ee28d6d4
> [<c0257864>] (drm_fb_release) from [<c024c33c>] (drm_release+0x2a8/0x484)
>  r9:ee008d00 r8:eeaaa300 r7:ee008c34 r6:ee28d780 r5:ee008c00 r4:ee28d700
> [<c024c094>] (drm_release) from [<c00cba38>] (__fput+0xe0/0x1a0)
>  r10:ee93f7c8 r9:00000008 r8:ee93cad0 r7:ee442b28 r6:00000000 r5:eeb29d28
>  r4:ee93f7c0
> [<c00cb958>] (__fput) from [<c00cbb58>] (____fput+0x10/0x14)
>  r10:ee103280 r9:ee18f3f8 r8:00000001 r7:ee13be58 r6:c06a61ec r5:00000000
>  r4:ee053500
> [<c00cbb48>] (____fput) from [<c003d688>] (task_work_run+0xbc/0xd0)
> [<c003d5cc>] (task_work_run) from [<c0028700>] (do_exit+0x3c0/0x870)
>  r7:ee13be58 r6:ee0538ec r5:ee18f3c0 r4:ee053500
> [<c0028340>] (do_exit) from [<c0028c40>] (do_group_exit+0x54/0xd8)
>  r7:ee13a000
> [<c0028bec>] (do_group_exit) from [<c00324c0>] (get_signal+0x4e4/0x554)
>  r7:ee13a000 r6:ee917544 r5:ee13bed0 r4:00000009
> [<c0031fdc>] (get_signal) from [<c0012774>] (do_signal+0x94/0x360)
>  r10:00000000 r9:ee13a000 r8:000215dc r7:fffffe00 r6:ee13bfb0 r5:000215d8
>  r4:00000001
> [<c00126e0>] (do_signal) from [<c0012bb4>] (do_work_pending+0x58/0xb0)
>  r9:ee13a000 r8:c000fd84 r7:00000003 r6:ee13bfb0 r5:ee13a010 r4:c000fd84
> [<c0012b5c>] (do_work_pending) from [<c000fc2c>] (work_pending+0xc/0x20)
>  r7:00000003 r6:00000001 r5:00001000 r4:000342e4
> ---[ end trace a644a4a45e5f5e9d ]---
>
>
> Best regards
> ---
> Kuninori Morimoto
--
To unsubscribe from this list: send the line "unsubscribe linux-sh" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Wolfram Sang Aug. 3, 2015, 7:38 a.m. UTC | #3
> I tested this panel on Koelsch board (with I2C fixup local patch),

I2C fixup? The NACK issue?
Kuninori Morimoto Aug. 3, 2015, 8:34 a.m. UTC | #4
Hi Wolfram

> > I tested this panel on Koelsch board (with I2C fixup local patch),
> 
> I2C fixup? The NACK issue?

I don't know detail.
But, I need to use gpio-i2c to use HDMI, otherwise it doesn't work.

--
To unsubscribe from this list: send the line "unsubscribe linux-sh" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Magnus Damm Aug. 3, 2015, 8:38 a.m. UTC | #5
Hi Morimoto-san,

On Mon, Aug 3, 2015 at 5:34 PM, Kuninori Morimoto
<kuninori.morimoto.gx@renesas.com> wrote:
>
> Hi Wolfram
>
>> > I tested this panel on Koelsch board (with I2C fixup local patch),
>>
>> I2C fixup? The NACK issue?
>
> I don't know detail.
> But, I need to use gpio-i2c to use HDMI, otherwise it doesn't work.

I wonder if it is possible to use the "I2C master" bind/unbind code
developed by Wolfram to switch to GPIO bit-bang at run-time?

Cheers,

/ magnus
--
To unsubscribe from this list: send the line "unsubscribe linux-sh" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Laurent Pinchart Aug. 4, 2015, 10:47 p.m. UTC | #6
Hi Morimoto-san,

Thank you for the patch.

On Tuesday 28 July 2015 07:06:45 Kuninori Morimoto wrote:
> From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
> 
> The Mitsubishi AA121TD01 panel is commonly used with the Marzen, Lager
> and Koelsch boards. Create a .dtsi file that describe the panel and its
> connection to the board.
> 
> Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>

The timings now look good to me, great !

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

> ---
> v1 -> v2
> 
>  - tidyup panel-timing / width / height settings
> 
>  arch/arm/boot/dts/r8a77xx-aa121td01-panel.dtsi | 41 +++++++++++++++++++++++
>  1 file changed, 41 insertions(+)
>  create mode 100644 arch/arm/boot/dts/r8a77xx-aa121td01-panel.dtsi
> 
> diff --git a/arch/arm/boot/dts/r8a77xx-aa121td01-panel.dtsi
> b/arch/arm/boot/dts/r8a77xx-aa121td01-panel.dtsi new file mode 100644
> index 0000000..a07ebf8
> --- /dev/null
> +++ b/arch/arm/boot/dts/r8a77xx-aa121td01-panel.dtsi
> @@ -0,0 +1,41 @@
> +/*
> + * Common file for the AA121TD01 panel connected to Renesas R-Car boards
> + *
> + * Copyright (C) 2015 Renesas Electronics Corp.
> + *
> + * This file is licensed under the terms of the GNU General Public License
> + * version 2.  This program is licensed "as is" without any warranty of any
> + * kind, whether express or implied.
> + */
> +
> +/ {
> +	panel {
> +		compatible = "mitsubishi,aa121td01", "panel-dpi";
> +
> +		width-mm = <261>;
> +		height-mm = <163>;
> +
> +		panel-timing {
> +			/* 1280x800 @60Hz */
> +			clock-frequency = <71000000>;
> +			hactive = <1280>;
> +			vactive = <800>;
> +			hsync-len = <70>;
> +			hfront-porch = <20>;
> +			hback-porch = <70>;
> +			vsync-len = <5>;
> +			vfront-porch = <3>;
> +			vback-porch = <15>;
> +		};
> +
> +		port {
> +			panel_in: endpoint {
> +				remote-endpoint = <&lvds_connector>;
> +			};
> +		};
> +	};
> +};
> +
> +&lvds_connector {
> +	remote-endpoint = <&panel_in>;
> +};
Laurent Pinchart Aug. 4, 2015, 10:48 p.m. UTC | #7
On Monday 03 August 2015 17:38:37 Magnus Damm wrote:
> On Mon, Aug 3, 2015 at 5:34 PM, Kuninori Morimoto wrote:
> > Hi Wolfram
> > 
> >> > I tested this panel on Koelsch board (with I2C fixup local patch),
> >> 
> >> I2C fixup? The NACK issue?
> > 
> > I don't know detail.
> > But, I need to use gpio-i2c to use HDMI, otherwise it doesn't work.
> 
> I wonder if it is possible to use the "I2C master" bind/unbind code
> developed by Wolfram to switch to GPIO bit-bang at run-time?

Or to fix the hardware I2C controller driver ? :-)
Magnus Damm Aug. 5, 2015, 12:52 a.m. UTC | #8
Hi Laurent,

On Wed, Aug 5, 2015 at 7:48 AM, Laurent Pinchart
<laurent.pinchart@ideasonboard.com> wrote:
> On Monday 03 August 2015 17:38:37 Magnus Damm wrote:
>> On Mon, Aug 3, 2015 at 5:34 PM, Kuninori Morimoto wrote:
>> > Hi Wolfram
>> >
>> >> > I tested this panel on Koelsch board (with I2C fixup local patch),
>> >>
>> >> I2C fixup? The NACK issue?
>> >
>> > I don't know detail.
>> > But, I need to use gpio-i2c to use HDMI, otherwise it doesn't work.
>>
>> I wonder if it is possible to use the "I2C master" bind/unbind code
>> developed by Wolfram to switch to GPIO bit-bang at run-time?
>
> Or to fix the hardware I2C controller driver ? :-)

That would be the best way forward yes. I suspect that it may take
quite some time to do so, so until then it would be nice to not have
to carry local patches to get basic stuff working...

Cheers,

/ magnus
--
To unsubscribe from this list: send the line "unsubscribe linux-sh" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Simon Horman Aug. 13, 2015, 12:02 a.m. UTC | #9
On Wed, Aug 05, 2015 at 09:52:57AM +0900, Magnus Damm wrote:
> Hi Laurent,
> 
> On Wed, Aug 5, 2015 at 7:48 AM, Laurent Pinchart
> <laurent.pinchart@ideasonboard.com> wrote:
> > On Monday 03 August 2015 17:38:37 Magnus Damm wrote:
> >> On Mon, Aug 3, 2015 at 5:34 PM, Kuninori Morimoto wrote:
> >> > Hi Wolfram
> >> >
> >> >> > I tested this panel on Koelsch board (with I2C fixup local patch),
> >> >>
> >> >> I2C fixup? The NACK issue?
> >> >
> >> > I don't know detail.
> >> > But, I need to use gpio-i2c to use HDMI, otherwise it doesn't work.
> >>
> >> I wonder if it is possible to use the "I2C master" bind/unbind code
> >> developed by Wolfram to switch to GPIO bit-bang at run-time?
> >
> > Or to fix the hardware I2C controller driver ? :-)
> 
> That would be the best way forward yes. I suspect that it may take
> quite some time to do so, so until then it would be nice to not have
> to carry local patches to get basic stuff working...

I am marking this patch as deferred for now.
If you feel that is not appropriate please don't hesitate to let me know.
Alternatively, please feel free to repost this patch when you
feel it is appropriate.
--
To unsubscribe from this list: send the line "unsubscribe linux-sh" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Laurent Pinchart Aug. 14, 2015, 8:44 p.m. UTC | #10
Hi Magnus,

On Wednesday 29 July 2015 16:32:43 Magnus Damm wrote:
> Hi Laurent, Morimoto-san, everyone,
> 
> I have now together with Morimoto-san tried to get a bit closer to
> tracking down what the issue is for LVDS on Lager. This is what we
> have observed so far:
> 
> - On Koelsch both LVDS panels work fine (aa104xd12 and aa121td01).
> - On Koelsch HDMI works well too.

Good news so far :-)

> - On Lager the VGA output seems to work.
> - On Lager the LVDS panel output does not work.
> - On Lager the HDMI does not work.

How do they "not work" ?

I've tested both here using modetest without any issue, neither with renesas-
devel-20150729-v4.2-rc4 nor with renesas-drivers-2015-07-14-v4.2-rc2. To test 
HDMI, I ran (your connector numbers may vary)

modetest -M rcar-du -s 44:1280x800@AR24

and to test LVDS

modetest -M rcar-du -s 46:1280x800@AR24

after applying Morimoto-san's AA121TD01 panel patch.

The HDMI tests were performed twice, once with the display connected at boot 
and once after connecting the display at runtime. Both worked fine, the screen 
showed the fbdev console and the test pattern when running modetest.

As my LVDS panel is an AA104XD12 the image showed some artifacts when fed with 
1280x800 (most notably cropping and a bit of flickering), but it worked 
nonetheless.

> - On Lager we get the crash described by Morimoto-san using the 1280x800
> panel.

I couldn't reproduce that crash either.

> - On Lager we get no crash if we use the 1024x768 panel.
> 
> We seem to have some issues with Lager. =)
> 
> The Lager crash disappears if we force use of DU2 on LVDS1:
> 
> --- 0001/drivers/gpu/drm/rcar-du/rcar_du_drv.c
> +++ work/drivers/gpu/drm/rcar-du/rcar_du_drv.c    2015-07-29
> 16:24:21.212366518 +0900
> @@ -66,7 +66,7 @@ static const struct rcar_du_device_info
>           * (currently unsupported) TCON output.
>           */
>          [RCAR_DU_OUTPUT_DPAD0] = {
> -            .possible_crtcs = BIT(2) | BIT(1) | BIT(0),
> +            .possible_crtcs = BIT(1) | BIT(0),
>              .encoder_type = DRM_MODE_ENCODER_NONE,
>              .port = 0,
>          },
> @@ -76,7 +76,7 @@ static const struct rcar_du_device_info
>              .port = 1,
>          },
>          [RCAR_DU_OUTPUT_LVDS1] = {
> -            .possible_crtcs = BIT(2) | BIT(1),
> +            .possible_crtcs = BIT(2),
>              .encoder_type = DRM_MODE_ENCODER_LVDS,
>              .port = 2,
>          },
> 
> Regardless of if the crash disappears or not we still get no output on
> the LVDS panel on Lager.
>
> As for kernel, Morimoto-san used renesas-drivers-2015-07-14-v4.2-rc2
> with a real LVDS panel and I used renesas-devel-20150729-v4.2-rc4
> without panel connected (but added 1024x768 panel in DTS).
> 
> Any ideas?

That might be a bit of a stupid question, but have you verified that the 
connectors pinout (both data and backlight) is compatible ?
Magnus Damm Oct. 2, 2015, 5:05 a.m. UTC | #11
Hi Simon,

On Thu, Aug 13, 2015 at 9:02 AM, Simon Horman <horms@verge.net.au> wrote:
> On Wed, Aug 05, 2015 at 09:52:57AM +0900, Magnus Damm wrote:
>> Hi Laurent,
>>
>> On Wed, Aug 5, 2015 at 7:48 AM, Laurent Pinchart
>> <laurent.pinchart@ideasonboard.com> wrote:
>> > On Monday 03 August 2015 17:38:37 Magnus Damm wrote:
>> >> On Mon, Aug 3, 2015 at 5:34 PM, Kuninori Morimoto wrote:
>> >> > Hi Wolfram
>> >> >
>> >> >> > I tested this panel on Koelsch board (with I2C fixup local patch),
>> >> >>
>> >> >> I2C fixup? The NACK issue?
>> >> >
>> >> > I don't know detail.
>> >> > But, I need to use gpio-i2c to use HDMI, otherwise it doesn't work.
>> >>
>> >> I wonder if it is possible to use the "I2C master" bind/unbind code
>> >> developed by Wolfram to switch to GPIO bit-bang at run-time?
>> >
>> > Or to fix the hardware I2C controller driver ? :-)
>>
>> That would be the best way forward yes. I suspect that it may take
>> quite some time to do so, so until then it would be nice to not have
>> to carry local patches to get basic stuff working...
>
> I am marking this patch as deferred for now.
> If you feel that is not appropriate please don't hesitate to let me know.
> Alternatively, please feel free to repost this patch when you
> feel it is appropriate.

I don't think this patch should be deferred. The I2C issue discussed
in this thread has little to do with the new panel definition. So
please consider picking up this patch so we can support the new LVDS
panel.

Cheers,

/ magnus
--
To unsubscribe from this list: send the line "unsubscribe linux-sh" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Simon Horman Oct. 2, 2015, 6:12 a.m. UTC | #12
On Fri, Oct 02, 2015 at 02:05:53PM +0900, Magnus Damm wrote:
> Hi Simon,
> 
> On Thu, Aug 13, 2015 at 9:02 AM, Simon Horman <horms@verge.net.au> wrote:
> > On Wed, Aug 05, 2015 at 09:52:57AM +0900, Magnus Damm wrote:
> >> Hi Laurent,
> >>
> >> On Wed, Aug 5, 2015 at 7:48 AM, Laurent Pinchart
> >> <laurent.pinchart@ideasonboard.com> wrote:
> >> > On Monday 03 August 2015 17:38:37 Magnus Damm wrote:
> >> >> On Mon, Aug 3, 2015 at 5:34 PM, Kuninori Morimoto wrote:
> >> >> > Hi Wolfram
> >> >> >
> >> >> >> > I tested this panel on Koelsch board (with I2C fixup local patch),
> >> >> >>
> >> >> >> I2C fixup? The NACK issue?
> >> >> >
> >> >> > I don't know detail.
> >> >> > But, I need to use gpio-i2c to use HDMI, otherwise it doesn't work.
> >> >>
> >> >> I wonder if it is possible to use the "I2C master" bind/unbind code
> >> >> developed by Wolfram to switch to GPIO bit-bang at run-time?
> >> >
> >> > Or to fix the hardware I2C controller driver ? :-)
> >>
> >> That would be the best way forward yes. I suspect that it may take
> >> quite some time to do so, so until then it would be nice to not have
> >> to carry local patches to get basic stuff working...
> >
> > I am marking this patch as deferred for now.
> > If you feel that is not appropriate please don't hesitate to let me know.
> > Alternatively, please feel free to repost this patch when you
> > feel it is appropriate.
> 
> I don't think this patch should be deferred. The I2C issue discussed
> in this thread has little to do with the new panel definition. So
> please consider picking up this patch so we can support the new LVDS
> panel.

Sure, done.
--
To unsubscribe from this list: send the line "unsubscribe linux-sh" 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

diff --git a/arch/arm/boot/dts/r8a77xx-aa121td01-panel.dtsi b/arch/arm/boot/dts/r8a77xx-aa121td01-panel.dtsi
new file mode 100644
index 0000000..a07ebf8
--- /dev/null
+++ b/arch/arm/boot/dts/r8a77xx-aa121td01-panel.dtsi
@@ -0,0 +1,41 @@ 
+/*
+ * Common file for the AA121TD01 panel connected to Renesas R-Car boards
+ *
+ * Copyright (C) 2015 Renesas Electronics Corp.
+ *
+ * This file is licensed under the terms of the GNU General Public License
+ * version 2.  This program is licensed "as is" without any warranty of any
+ * kind, whether express or implied.
+ */
+
+/ {
+	panel {
+		compatible = "mitsubishi,aa121td01", "panel-dpi";
+
+		width-mm = <261>;
+		height-mm = <163>;
+
+		panel-timing {
+			/* 1280x800 @60Hz */
+			clock-frequency = <71000000>;
+			hactive = <1280>;
+			vactive = <800>;
+			hsync-len = <70>;
+			hfront-porch = <20>;
+			hback-porch = <70>;
+			vsync-len = <5>;
+			vfront-porch = <3>;
+			vback-porch = <15>;
+		};
+
+		port {
+			panel_in: endpoint {
+				remote-endpoint = <&lvds_connector>;
+			};
+		};
+	};
+};
+
+&lvds_connector {
+	remote-endpoint = <&panel_in>;
+};