Message ID | cover.dddc064d8bb83e46744336af67dcb13139e5747d.1599120059.git-series.maxime@cerno.tech (mailing list archive) |
---|---|
Headers | show |
Series | drm/vc4: Support BCM2711 Display Pipeline | expand |
Hi Maxime, On 9/3/20 5:00 PM, Maxime Ripard wrote: > Hi everyone, > > Here's a (pretty long) series to introduce support in the VC4 DRM driver > for the display pipeline found in the BCM2711 (and thus the RaspberryPi 4). > > The main differences are that there's two HDMI controllers and that there's > more pixelvalve now. Those pixelvalve come with a mux in the HVS that still > have only 3 FIFOs. Both of those differences are breaking a bunch of > expectations in the driver, so we first need a good bunch of cleanup and > reworks to introduce support for the new controllers. > > Similarly, the HDMI controller has all its registers shuffled and split in > multiple controllers now, so we need a bunch of changes to support this as > well. > > Only the HDMI support is enabled for now (even though the DPI and DSI > outputs have been tested too). > > Let me know if you have any comments > Maxime > > Cc: bcm-kernel-feedback-list@broadcom.com > Cc: devicetree@vger.kernel.org > Cc: Kamal Dasu <kdasu.kdev@gmail.com> > Cc: Philipp Zabel <p.zabel@pengutronix.de> > Cc: Rob Herring <robh+dt@kernel.org> > Cc: Stephen Boyd <sboyd@kernel.org> > > Changes from v4: > - Rebased on top of next-20200828 > - Collected the various tags > - Fixed some issues with 4k support and dual output (thanks Hoegeun!) Thanks for your v5 patchset. I tested all patches based on the next-20200812. Everything else is fine, but the dual hdmi modetest doesn't work well in my environment... In my environment, dsi is not connected, I have seen your answer[1]. Do you have any other settings? For example in config.txt. [1] https://lkml.org/lkml/2020/9/2/566 > - Fixed typos in commit logs (thanks Dave!) > - Split the csc setup hook into its own patch again > - Added the CEC clock to the DT binding > - Fixed the DT binding example > - Reduced the number of calls to of_device_is_compatible in vc4_kms_load > - Added back the check for the state commit in our commit hook Best regards, Hoegeun
Hi, On Thu, Sep 03, 2020 at 10:00:32AM +0200, Maxime Ripard wrote: > Hi everyone, > > Here's a (pretty long) series to introduce support in the VC4 DRM driver > for the display pipeline found in the BCM2711 (and thus the RaspberryPi 4). > > The main differences are that there's two HDMI controllers and that there's > more pixelvalve now. Those pixelvalve come with a mux in the HVS that still > have only 3 FIFOs. Both of those differences are breaking a bunch of > expectations in the driver, so we first need a good bunch of cleanup and > reworks to introduce support for the new controllers. > > Similarly, the HDMI controller has all its registers shuffled and split in > multiple controllers now, so we need a bunch of changes to support this as > well. > > Only the HDMI support is enabled for now (even though the DPI and DSI > outputs have been tested too). I've applied the patches 1-79 to drm-misc. I guess the final DT patch should go through the arm-soc tree? Thanks to everyone involved in the reviews Maxime
Hi Maxime, On Mon, 2020-09-07 at 18:22 +0200, Maxime Ripard wrote: > Hi, > > On Thu, Sep 03, 2020 at 10:00:32AM +0200, Maxime Ripard wrote: > > Hi everyone, > > > > Here's a (pretty long) series to introduce support in the VC4 DRM driver > > for the display pipeline found in the BCM2711 (and thus the RaspberryPi 4). > > > > The main differences are that there's two HDMI controllers and that there's > > more pixelvalve now. Those pixelvalve come with a mux in the HVS that still > > have only 3 FIFOs. Both of those differences are breaking a bunch of > > expectations in the driver, so we first need a good bunch of cleanup and > > reworks to introduce support for the new controllers. > > > > Similarly, the HDMI controller has all its registers shuffled and split in > > multiple controllers now, so we need a bunch of changes to support this as > > well. > > > > Only the HDMI support is enabled for now (even though the DPI and DSI > > outputs have been tested too). > > I've applied the patches 1-79 to drm-misc. I guess the final DT patch > should go through the arm-soc tree? I'll take care of it tomorrow. Regards, Nicolas
Hi Hoegeun, On Mon, Sep 07, 2020 at 08:49:12PM +0900, Hoegeun Kwon wrote: > On 9/3/20 5:00 PM, Maxime Ripard wrote: > > Hi everyone, > > > > Here's a (pretty long) series to introduce support in the VC4 DRM driver > > for the display pipeline found in the BCM2711 (and thus the RaspberryPi 4). > > > > The main differences are that there's two HDMI controllers and that there's > > more pixelvalve now. Those pixelvalve come with a mux in the HVS that still > > have only 3 FIFOs. Both of those differences are breaking a bunch of > > expectations in the driver, so we first need a good bunch of cleanup and > > reworks to introduce support for the new controllers. > > > > Similarly, the HDMI controller has all its registers shuffled and split in > > multiple controllers now, so we need a bunch of changes to support this as > > well. > > > > Only the HDMI support is enabled for now (even though the DPI and DSI > > outputs have been tested too). > > > > Let me know if you have any comments > > Maxime > > > > Cc: bcm-kernel-feedback-list@broadcom.com > > Cc: devicetree@vger.kernel.org > > Cc: Kamal Dasu <kdasu.kdev@gmail.com> > > Cc: Philipp Zabel <p.zabel@pengutronix.de> > > Cc: Rob Herring <robh+dt@kernel.org> > > Cc: Stephen Boyd <sboyd@kernel.org> > > > > Changes from v4: > > - Rebased on top of next-20200828 > > - Collected the various tags > > - Fixed some issues with 4k support and dual output (thanks Hoegeun!) > > Thanks for your v5 patchset. > > I tested all patches based on the next-20200812. Thanks again for testing all the patches > Everything else is fine, but the dual hdmi modetest doesn't work well in my > environment... > > In my environment, dsi is not connected, I have seen your answer[1]. Can you share a bit more your setup? What monitors are being connected to each HDMI port? Do you hotplug any? Maxime
Hi Maxime, On 9/8/20 9:00 PM, Maxime Ripard wrote: > Hi Hoegeun, > > On Mon, Sep 07, 2020 at 08:49:12PM +0900, Hoegeun Kwon wrote: >> On 9/3/20 5:00 PM, Maxime Ripard wrote: >>> Hi everyone, >>> >>> Here's a (pretty long) series to introduce support in the VC4 DRM driver >>> for the display pipeline found in the BCM2711 (and thus the RaspberryPi 4). >>> >>> The main differences are that there's two HDMI controllers and that there's >>> more pixelvalve now. Those pixelvalve come with a mux in the HVS that still >>> have only 3 FIFOs. Both of those differences are breaking a bunch of >>> expectations in the driver, so we first need a good bunch of cleanup and >>> reworks to introduce support for the new controllers. >>> >>> Similarly, the HDMI controller has all its registers shuffled and split in >>> multiple controllers now, so we need a bunch of changes to support this as >>> well. >>> >>> Only the HDMI support is enabled for now (even though the DPI and DSI >>> outputs have been tested too). >>> >>> Let me know if you have any comments >>> Maxime >>> >>> Cc: bcm-kernel-feedback-list@broadcom.com >>> Cc: devicetree@vger.kernel.org >>> Cc: Kamal Dasu <kdasu.kdev@gmail.com> >>> Cc: Philipp Zabel <p.zabel@pengutronix.de> >>> Cc: Rob Herring <robh+dt@kernel.org> >>> Cc: Stephen Boyd <sboyd@kernel.org> >>> >>> Changes from v4: >>> - Rebased on top of next-20200828 >>> - Collected the various tags >>> - Fixed some issues with 4k support and dual output (thanks Hoegeun!) >> Thanks for your v5 patchset. >> >> I tested all patches based on the next-20200812. > Thanks again for testing all the patches > >> Everything else is fine, but the dual hdmi modetest doesn't work well in my >> environment... >> >> In my environment, dsi is not connected, I have seen your answer[1]. > Can you share a bit more your setup? What monitors are being connected > to each HDMI port? Do you hotplug any? Yes, Monitors are being connected to each HDMI ports. (did not use hotplug) When booting, both HDMI-0 and 1 are recognized and the kernel log is output. But after run modetest on HDMI-0(works) and modetest on HDMI-1(works), crtc timed out occurs on HDMI-0 and does not work. When HDMI-0 is not working we do a modetest on HDMI-0, it will work agin after about 40 sec. Below is the log for modetest. root:~> modetest -Mvc4 -s 32:1280x720 - HDMI-0 works setting mode 1280x720-60Hz@XR24 on connectors 32, crtc 64 failed to set gamma: Invalid argument root:~> modetest -Mvc4 -s 32:1280x720 - HDMI-0 works setting mode 1280x720-60Hz@XR24 on connectors 32, crtc 64 failed to set gamma: Invalid argument root:~> modetest -Mvc4 -s 38:1280x720 - HDMI-1 works setting mode 1280x720-60Hz@XR24 on connectors 38, crtc 69 failed to set gamma: Invalid argument - Crtc timed out occurs on HDMI-0 and does not work. [ 71.134283] [drm:drm_atomic_helper_wait_for_flip_done] *ERROR* [CRTC:64:crtc-3] flip_done timed out [ 81.374296] [drm:drm_atomic_helper_wait_for_dependencies] *ERROR* [CRTC:64:crtc-3] flip_done timed out [ 91.618380] [drm:drm_atomic_helper_wait_for_dependencies] *ERROR* [CONNECTOR:32:HDMI-A-1] flip_done timed out [ 101.854274] [drm:drm_atomic_helper_wait_for_dependencies] *ERROR* [PLANE:60:plane-3] flip_done timed out [ 112.094271] [drm:drm_atomic_helper_wait_for_flip_done] *ERROR* [CRTC:64:crtc-3] flip_done timed out [ 122.590311] [drm:drm_atomic_helper_wait_for_dependencies] *ERROR* [CRTC:64:crtc-3] flip_done timed out root:~> modetest -Mvc4 -s 32:1280x720 [ 132.830309] [drm:drm_atomic_helper_wait_for_dependencies] *ERROR* [CONNECTOR:32:HDMI-A-1] flip_done timed out [ 143.070307] [drm:drm_atomic_helper_wait_for_dependencies] *ERROR* [PLANE:60:plane-3] flip_done timed out [ 153.310303] [drm:drm_atomic_helper_wait_for_flip_done] *ERROR* [CRTC:64:crtc-3] flip_done timed out setting mode 1280x720-60Hz@XR24 on connectors 32, crtc 64 [ 163.550340] [drm:drm_atomic_helper_wait_for_dependencies] *ERROR* [CRTC:64:crtc-3] flip_done timed out [ 173.790277] [drm:drm_atomic_helper_wait_for_dependencies] *ERROR* [CONNECTOR:32:HDMI-A-1] flip_done timed out [ 184.030286] [drm:drm_atomic_helper_wait_for_dependencies] *ERROR* [PLANE:60:plane-3] flip_done timed out failed to set gamma: Invalid argument - HDMI-0 works Best regards, Hoegeun
On Mon, Sep 14, 2020 at 07:14:11PM +0900, Hoegeun Kwon wrote: > Hi Maxime, > > On 9/8/20 9:00 PM, Maxime Ripard wrote: > > Hi Hoegeun, > > > > On Mon, Sep 07, 2020 at 08:49:12PM +0900, Hoegeun Kwon wrote: > >> On 9/3/20 5:00 PM, Maxime Ripard wrote: > >>> Hi everyone, > >>> > >>> Here's a (pretty long) series to introduce support in the VC4 DRM driver > >>> for the display pipeline found in the BCM2711 (and thus the RaspberryPi 4). > >>> > >>> The main differences are that there's two HDMI controllers and that there's > >>> more pixelvalve now. Those pixelvalve come with a mux in the HVS that still > >>> have only 3 FIFOs. Both of those differences are breaking a bunch of > >>> expectations in the driver, so we first need a good bunch of cleanup and > >>> reworks to introduce support for the new controllers. > >>> > >>> Similarly, the HDMI controller has all its registers shuffled and split in > >>> multiple controllers now, so we need a bunch of changes to support this as > >>> well. > >>> > >>> Only the HDMI support is enabled for now (even though the DPI and DSI > >>> outputs have been tested too). > >>> > >>> Let me know if you have any comments > >>> Maxime > >>> > >>> Cc: bcm-kernel-feedback-list@broadcom.com > >>> Cc: devicetree@vger.kernel.org > >>> Cc: Kamal Dasu <kdasu.kdev@gmail.com> > >>> Cc: Philipp Zabel <p.zabel@pengutronix.de> > >>> Cc: Rob Herring <robh+dt@kernel.org> > >>> Cc: Stephen Boyd <sboyd@kernel.org> > >>> > >>> Changes from v4: > >>> - Rebased on top of next-20200828 > >>> - Collected the various tags > >>> - Fixed some issues with 4k support and dual output (thanks Hoegeun!) > >> Thanks for your v5 patchset. > >> > >> I tested all patches based on the next-20200812. > > Thanks again for testing all the patches > > > >> Everything else is fine, but the dual hdmi modetest doesn't work well in my > >> environment... > >> > >> In my environment, dsi is not connected, I have seen your answer[1]. > > Can you share a bit more your setup? What monitors are being connected > > to each HDMI port? Do you hotplug any? > Yes, Monitors are being connected to each HDMI ports. (did not use hotplug) > > When booting, both HDMI-0 and 1 are recognized and the kernel log is output. > But after run modetest on HDMI-0(works) and modetest on HDMI-1(works), > crtc timed out occurs on HDMI-0 and does not work. > > When HDMI-0 is not working we do a modetest on HDMI-0, it will work agin > after about 40 sec. > > Below is the log for modetest. > > > root:~> modetest -Mvc4 -s 32:1280x720 - HDMI-0 works > setting mode 1280x720-60Hz@XR24 on connectors 32, crtc 64 > failed to set gamma: Invalid argument > > root:~> modetest -Mvc4 -s 32:1280x720 - HDMI-0 works > setting mode 1280x720-60Hz@XR24 on connectors 32, crtc 64 > failed to set gamma: Invalid argument > > root:~> modetest -Mvc4 -s 38:1280x720 - HDMI-1 works > setting mode 1280x720-60Hz@XR24 on connectors 38, crtc 69 > failed to set gamma: Invalid argument > > - Crtc timed out occurs on HDMI-0 and > does not work. > > [ 71.134283] [drm:drm_atomic_helper_wait_for_flip_done] *ERROR* > [CRTC:64:crtc-3] flip_done timed out > [ 81.374296] [drm:drm_atomic_helper_wait_for_dependencies] *ERROR* > [CRTC:64:crtc-3] flip_done timed out > [ 91.618380] [drm:drm_atomic_helper_wait_for_dependencies] *ERROR* > [CONNECTOR:32:HDMI-A-1] flip_done timed out > [ 101.854274] [drm:drm_atomic_helper_wait_for_dependencies] *ERROR* > [PLANE:60:plane-3] flip_done timed out > > [ 112.094271] [drm:drm_atomic_helper_wait_for_flip_done] *ERROR* > [CRTC:64:crtc-3] flip_done timed out > [ 122.590311] [drm:drm_atomic_helper_wait_for_dependencies] *ERROR* > [CRTC:64:crtc-3] flip_done timed out > > root:~> modetest -Mvc4 -s 32:1280x720 > [ 132.830309] [drm:drm_atomic_helper_wait_for_dependencies] *ERROR* > [CONNECTOR:32:HDMI-A-1] flip_done timed out > [ 143.070307] [drm:drm_atomic_helper_wait_for_dependencies] *ERROR* > [PLANE:60:plane-3] flip_done timed out > [ 153.310303] [drm:drm_atomic_helper_wait_for_flip_done] *ERROR* > [CRTC:64:crtc-3] flip_done timed out > setting mode 1280x720-60Hz@XR24 on connectors 32, crtc 64 > [ 163.550340] [drm:drm_atomic_helper_wait_for_dependencies] *ERROR* > [CRTC:64:crtc-3] flip_done timed out > [ 173.790277] [drm:drm_atomic_helper_wait_for_dependencies] *ERROR* > [CONNECTOR:32:HDMI-A-1] flip_done timed out > [ 184.030286] [drm:drm_atomic_helper_wait_for_dependencies] *ERROR* > [PLANE:60:plane-3] flip_done timed out > failed to set gamma: Invalid argument - HDMI-0 works Thanks :) I was able to reproduce it just by also letting X boot. I'm on a good path to fix it and found a workaround. I'll send you the patch in the upcoming days :) Thanks again, Maxime
On Wed, Sep 16, 2020 at 06:57:05PM +0200, Maxime Ripard wrote: > On Mon, Sep 14, 2020 at 07:14:11PM +0900, Hoegeun Kwon wrote: > > Hi Maxime, > > > > On 9/8/20 9:00 PM, Maxime Ripard wrote: > > > Hi Hoegeun, > > > > > > On Mon, Sep 07, 2020 at 08:49:12PM +0900, Hoegeun Kwon wrote: > > >> On 9/3/20 5:00 PM, Maxime Ripard wrote: > > >>> Hi everyone, > > >>> > > >>> Here's a (pretty long) series to introduce support in the VC4 DRM driver > > >>> for the display pipeline found in the BCM2711 (and thus the RaspberryPi 4). > > >>> > > >>> The main differences are that there's two HDMI controllers and that there's > > >>> more pixelvalve now. Those pixelvalve come with a mux in the HVS that still > > >>> have only 3 FIFOs. Both of those differences are breaking a bunch of > > >>> expectations in the driver, so we first need a good bunch of cleanup and > > >>> reworks to introduce support for the new controllers. > > >>> > > >>> Similarly, the HDMI controller has all its registers shuffled and split in > > >>> multiple controllers now, so we need a bunch of changes to support this as > > >>> well. > > >>> > > >>> Only the HDMI support is enabled for now (even though the DPI and DSI > > >>> outputs have been tested too). > > >>> > > >>> Let me know if you have any comments > > >>> Maxime > > >>> > > >>> Cc: bcm-kernel-feedback-list@broadcom.com > > >>> Cc: devicetree@vger.kernel.org > > >>> Cc: Kamal Dasu <kdasu.kdev@gmail.com> > > >>> Cc: Philipp Zabel <p.zabel@pengutronix.de> > > >>> Cc: Rob Herring <robh+dt@kernel.org> > > >>> Cc: Stephen Boyd <sboyd@kernel.org> > > >>> > > >>> Changes from v4: > > >>> - Rebased on top of next-20200828 > > >>> - Collected the various tags > > >>> - Fixed some issues with 4k support and dual output (thanks Hoegeun!) > > >> Thanks for your v5 patchset. > > >> > > >> I tested all patches based on the next-20200812. > > > Thanks again for testing all the patches > > > > > >> Everything else is fine, but the dual hdmi modetest doesn't work well in my > > >> environment... > > >> > > >> In my environment, dsi is not connected, I have seen your answer[1]. > > > Can you share a bit more your setup? What monitors are being connected > > > to each HDMI port? Do you hotplug any? > > Yes, Monitors are being connected to each HDMI ports. (did not use hotplug) > > > > When booting, both HDMI-0 and 1 are recognized and the kernel log is output. > > But after run modetest on HDMI-0(works) and modetest on HDMI-1(works), > > crtc timed out occurs on HDMI-0 and does not work. > > > > When HDMI-0 is not working we do a modetest on HDMI-0, it will work agin > > after about 40 sec. > > > > Below is the log for modetest. > > > > > > root:~> modetest -Mvc4 -s 32:1280x720 - HDMI-0 works > > setting mode 1280x720-60Hz@XR24 on connectors 32, crtc 64 > > failed to set gamma: Invalid argument > > > > root:~> modetest -Mvc4 -s 32:1280x720 - HDMI-0 works > > setting mode 1280x720-60Hz@XR24 on connectors 32, crtc 64 > > failed to set gamma: Invalid argument > > > > root:~> modetest -Mvc4 -s 38:1280x720 - HDMI-1 works > > setting mode 1280x720-60Hz@XR24 on connectors 38, crtc 69 > > failed to set gamma: Invalid argument > > > > - Crtc timed out occurs on HDMI-0 and > > does not work. > > > > [ 71.134283] [drm:drm_atomic_helper_wait_for_flip_done] *ERROR* > > [CRTC:64:crtc-3] flip_done timed out > > [ 81.374296] [drm:drm_atomic_helper_wait_for_dependencies] *ERROR* > > [CRTC:64:crtc-3] flip_done timed out > > [ 91.618380] [drm:drm_atomic_helper_wait_for_dependencies] *ERROR* > > [CONNECTOR:32:HDMI-A-1] flip_done timed out > > [ 101.854274] [drm:drm_atomic_helper_wait_for_dependencies] *ERROR* > > [PLANE:60:plane-3] flip_done timed out > > > > [ 112.094271] [drm:drm_atomic_helper_wait_for_flip_done] *ERROR* > > [CRTC:64:crtc-3] flip_done timed out > > [ 122.590311] [drm:drm_atomic_helper_wait_for_dependencies] *ERROR* > > [CRTC:64:crtc-3] flip_done timed out > > > > root:~> modetest -Mvc4 -s 32:1280x720 > > [ 132.830309] [drm:drm_atomic_helper_wait_for_dependencies] *ERROR* > > [CONNECTOR:32:HDMI-A-1] flip_done timed out > > [ 143.070307] [drm:drm_atomic_helper_wait_for_dependencies] *ERROR* > > [PLANE:60:plane-3] flip_done timed out > > [ 153.310303] [drm:drm_atomic_helper_wait_for_flip_done] *ERROR* > > [CRTC:64:crtc-3] flip_done timed out > > setting mode 1280x720-60Hz@XR24 on connectors 32, crtc 64 > > [ 163.550340] [drm:drm_atomic_helper_wait_for_dependencies] *ERROR* > > [CRTC:64:crtc-3] flip_done timed out > > [ 173.790277] [drm:drm_atomic_helper_wait_for_dependencies] *ERROR* > > [CONNECTOR:32:HDMI-A-1] flip_done timed out > > [ 184.030286] [drm:drm_atomic_helper_wait_for_dependencies] *ERROR* > > [PLANE:60:plane-3] flip_done timed out > > failed to set gamma: Invalid argument - HDMI-0 works > > Thanks :) > > I was able to reproduce it just by also letting X boot. I'm on a good > path to fix it and found a workaround. I'll send you the patch in the > upcoming days :) It took a bit longer than expected but the last 4 patches I just sent should fix that issue Thanks for reporting it! Maxime