* [PATCH v5 00/80] drm/vc4: Support BCM2711 Display Pipeline
@ 2020-09-03 8:00 ` Maxime Ripard
2020-09-07 11:49 ` Hoegeun Kwon
2020-09-07 16:22 ` Maxime Ripard
0 siblings, 2 replies; 10+ messages in thread
From: Maxime Ripard @ 2020-09-03 8:00 UTC (permalink / raw)
To: Nicolas Saenz Julienne, Eric Anholt
Cc: dri-devel, linux-rpi-kernel, bcm-kernel-feedback-list,
linux-arm-kernel, linux-kernel, Dave Stevenson, Tim Gover,
Phil Elwell, Maxime Ripard, devicetree, Kamal Dasu,
Philipp Zabel, Rob Herring, Stephen Boyd
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!)
- 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
Changes from v3:
- Rebased on top of next-20200708
- Added a name to the HDMI audio codec component
- Only disable the BCM2711 HDMI pixelvalves at boot
- Fixed an error in the HVS binding
- Fix a framebuffer size condition that was inverted
- Changed the channel allocation algorithm using Eric's suggestion
- Always write the muxing values instead of updating if needed
- Improved a bit the hvs_available_channels comment in the structure
- Change atomic_complete_commit code to use for_each_new_crtc_in_state
- Change the muxing code to take into account disparities between the
BCM2711 and previous SoCs.
- Only change the clock rate on BCM2711 during a modeset
- Fix a crash at atomic_disable
- Use clk_set_min_rate for the core clock too
- Add a few defines, and simplify the FIFO level stuff
- Reordered the patches according to Eric's reviews
- Fixed a regression with VID_CTL setting on RPI3
Changes from v2:
- Rebased on top of next-20200526
- Split the firmware clock series away
- Removed the stuck pixel (with all the subsequent pixels being shifted
by one
- Fixed the writeback issue too.
- Fix the dual output
- Fixed the return value of phy_get_cp_current
- Enhanced the comment on the reset delay
- Increase the max width and height
- Made a proper Kconfig option for the DVP clock driver
- Fixed the alsa card name collision
Changes from v1:
- Rebased on top of 5.7-rc1
- Run checkpatch
- Added audio support
- Fixed some HDMI timeouts
- Swiched to clk_hw_register_gate_parent_data
- Reorder Kconfig symbols in drivers/i2c/busses
- Make the firmware clocks a child of the firmware node
- Switch DVP clock driver to clk_hw interface
- constify raspberrypi_clk_data in raspberrypi_clock_property
- Don't mark firmware clocks as IGNORE_UNUSED
- Change from reset_ms to reset_us in reset-simple, and add a bit more
comments
- Remove generic clk patch to test if a NULL pointer is returned
- Removed misleading message in the is_prepared renaming patch commit
message
- Constify HDMI controller variants
- Fix a bug in the allocation size of the clk data array
- Added a mention in the DT binding conversion patches about the breakage
- Merged a few fixes from kbuild
- Fixed a few bisection and CEC build issues
- Collected Acked-by and Reviewed-by
- Change Dave email address to raspberrypi.com
Dave Stevenson (7):
drm/vc4: Add support for the BCM2711 HVS5
drm/vc4: plane: Change LBM alignment constraint on LBM
drm/vc4: plane: Optimize the LBM allocation size
drm/vc4: hdmi: Use reg-names to retrieve the HDMI audio registers
drm/vc4: hdmi: Reset audio infoframe on encoder_enable if previously streaming
drm/vc4: hdmi: Set the b-frame marker to the match ALSA's default.
drm/vc4: hdmi: Add audio-related callbacks
Hoegeun Kwon (1):
drm/vc4: hdmi: Add pixel BVB clock control
Maxime Ripard (72):
dt-bindings: display: Add support for the BCM2711 HVS
drm/vc4: hvs: Boost the core clock during modeset
drm/vc4: plane: Create more planes
drm/vc4: crtc: Deal with different number of pixel per clock
drm/vc4: crtc: Use a shared interrupt
drm/vc4: crtc: Move the cob allocation outside of bind
drm/vc4: crtc: Rename HVS channel to output
drm/vc4: crtc: Use local chan variable
drm/vc4: crtc: Enable and disable the PV in atomic_enable / disable
drm/vc4: kms: Convert to for_each_new_crtc_state
drm/vc4: crtc: Assign output to channel automatically
drm/vc4: crtc: Add FIFO depth to vc4_crtc_data
drm/vc4: crtc: Add function to compute FIFO level bits
drm/vc4: crtc: Rename HDMI encoder type to HDMI0
drm/vc4: crtc: Add HDMI1 encoder type
drm/vc4: crtc: Disable color management for HVS5
drm/vc4: crtc: Turn pixelvalve reset into a function
drm/vc4: crtc: Move PV dump to config_pv
drm/vc4: crtc: Move HVS init and close to a function
drm/vc4: crtc: Move the HVS gamma LUT setup to our init function
drm/vc4: hvs: Make sure our channel is reset
drm/vc4: crtc: Remove mode_set_nofb
drm/vc4: crtc: Remove redundant pixelvalve reset
drm/vc4: crtc: Move HVS channel init before the PV initialisation
drm/vc4: encoder: Add finer-grained encoder callbacks
drm/vc4: crtc: Add a delay after disabling the PixelValve output
drm/vc4: crtc: Clear the PixelValve FIFO on disable
drm/vc4: crtc: Clear the PixelValve FIFO during configuration
drm/vc4: hvs: Make the stop_channel function public
drm/vc4: hvs: Introduce a function to get the assigned FIFO
drm/vc4: crtc: Move the CRTC disable out
drm/vc4: drv: Disable the CRTC at boot time
dt-bindings: display: vc4: pv: Add BCM2711 pixel valves
drm/vc4: crtc: Add BCM2711 pixelvalves
drm/vc4: hdmi: Use debugfs private field
drm/vc4: hdmi: Move structure to header
drm/vc4: hdmi: rework connectors and encoders
drm/vc4: hdmi: Remove DDC argument to connector_init
drm/vc4: hdmi: Rename hdmi to vc4_hdmi
drm/vc4: hdmi: Move accessors to vc4_hdmi
drm/vc4: hdmi: Use local vc4_hdmi directly
drm/vc4: hdmi: Add container_of macros for encoders and connectors
drm/vc4: hdmi: Pass vc4_hdmi to CEC code
drm/vc4: hdmi: Retrieve the vc4_hdmi at unbind using our device
drm/vc4: hdmi: Remove vc4_dev hdmi pointer
drm/vc4: hdmi: Remove vc4_hdmi_connector
drm/vc4: hdmi: Introduce resource init and variant
drm/vc4: hdmi: Implement a register layout abstraction
drm/vc4: hdmi: Add reset callback
drm/vc4: hdmi: Add PHY init and disable function
drm/vc4: hdmi: Add PHY RNG enable / disable function
drm/vc4: hdmi: Add a CSC setup callback
drm/vc4: hdmi: Add a set_timings callback
drm/vc4: hdmi: Store the encoder type in the variant structure
drm/vc4: hdmi: Deal with multiple debugfs files
drm/vc4: hdmi: Move CEC init to its own function
drm/vc4: hdmi: Add CEC support flag
drm/vc4: hdmi: Remove unused CEC_CLOCK_DIV define
drm/vc4: hdmi: Rename drm_encoder pointer in mode_valid
drm/vc4: hdmi: Adjust HSM clock rate depending on pixel rate
drm/vc4: hdmi: Use clk_set_min_rate instead
drm/vc4: hdmi: Deal with multiple ALSA cards
drm/vc4: hdmi: Remove register dumps in enable
drm/vc4: hdmi: Always recenter the HDMI FIFO
drm/vc4: hdmi: Implement finer-grained hooks
drm/vc4: hdmi: Do the VID_CTL configuration at once
drm/vc4: hdmi: Switch to blank pixels when disabled
drm/vc4: hdmi: Support the BCM2711 HDMI controllers
dt-bindings: display: vc4: hdmi: Add BCM2711 HDMI controllers bindings
dt-bindings: display: vc4: Document BCM2711 VC5
drm/vc4: drv: Support BCM2711
ARM: dts: bcm2711: Enable the display pipeline
Documentation/devicetree/bindings/display/brcm,bcm2711-hdmi.yaml | 117 +++++-
Documentation/devicetree/bindings/display/brcm,bcm2835-hvs.yaml | 18 +-
Documentation/devicetree/bindings/display/brcm,bcm2835-pixelvalve0.yaml | 5 +-
Documentation/devicetree/bindings/display/brcm,bcm2835-vc4.yaml | 1 +-
arch/arm/boot/dts/bcm2711-rpi-4-b.dts | 48 ++-
arch/arm/boot/dts/bcm2711.dtsi | 122 ++++-
drivers/gpu/drm/vc4/Makefile | 1 +-
drivers/gpu/drm/vc4/vc4_crtc.c | 354 +++++++++++----
drivers/gpu/drm/vc4/vc4_drv.c | 5 +-
drivers/gpu/drm/vc4/vc4_drv.h | 43 +-
drivers/gpu/drm/vc4/vc4_hdmi.c | 1650 +++++++++++++++++++++++++++++++++++++++++++-----------------------------
drivers/gpu/drm/vc4/vc4_hdmi.h | 184 ++++++++-
drivers/gpu/drm/vc4/vc4_hdmi_phy.c | 520 +++++++++++++++++++++++-
drivers/gpu/drm/vc4/vc4_hdmi_regs.h | 442 +++++++++++++++++++-
drivers/gpu/drm/vc4/vc4_hvs.c | 269 +++++++-----
drivers/gpu/drm/vc4/vc4_kms.c | 229 +++++++++-
drivers/gpu/drm/vc4/vc4_plane.c | 222 +++++++---
drivers/gpu/drm/vc4/vc4_regs.h | 177 +++-----
drivers/gpu/drm/vc4/vc4_txp.c | 4 +-
19 files changed, 3406 insertions(+), 1005 deletions(-)
create mode 100644 Documentation/devicetree/bindings/display/brcm,bcm2711-hdmi.yaml
create mode 100644 drivers/gpu/drm/vc4/vc4_hdmi.h
create mode 100644 drivers/gpu/drm/vc4/vc4_hdmi_phy.c
create mode 100644 drivers/gpu/drm/vc4/vc4_hdmi_regs.h
base-commit: 20c0f70ad7bf5aaf2e22ef974867d0708373fe93
--
git-series 0.9.1
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v5 00/80] drm/vc4: Support BCM2711 Display Pipeline
2020-09-03 8:00 ` [PATCH v5 00/80] drm/vc4: Support BCM2711 Display Pipeline Maxime Ripard
@ 2020-09-07 11:49 ` Hoegeun Kwon
2020-09-08 12:00 ` Maxime Ripard
2020-09-07 16:22 ` Maxime Ripard
1 sibling, 1 reply; 10+ messages in thread
From: Hoegeun Kwon @ 2020-09-07 11:49 UTC (permalink / raw)
To: Maxime Ripard, Nicolas Saenz Julienne, Eric Anholt
Cc: devicetree, Tim Gover, Dave Stevenson, Stephen Boyd, Kamal Dasu,
linux-kernel, dri-devel, Rob Herring, bcm-kernel-feedback-list,
linux-rpi-kernel, Phil Elwell, linux-arm-kernel, Hoegeun Kwon
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
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v5 00/80] drm/vc4: Support BCM2711 Display Pipeline
2020-09-03 8:00 ` [PATCH v5 00/80] drm/vc4: Support BCM2711 Display Pipeline Maxime Ripard
2020-09-07 11:49 ` Hoegeun Kwon
@ 2020-09-07 16:22 ` Maxime Ripard
2020-09-07 18:21 ` Nicolas Saenz Julienne
1 sibling, 1 reply; 10+ messages in thread
From: Maxime Ripard @ 2020-09-07 16:22 UTC (permalink / raw)
To: Nicolas Saenz Julienne, Eric Anholt
Cc: dri-devel, linux-rpi-kernel, bcm-kernel-feedback-list,
linux-arm-kernel, linux-kernel, Dave Stevenson, Tim Gover,
Phil Elwell, devicetree, Kamal Dasu, Philipp Zabel, Rob Herring,
Stephen Boyd
[-- Attachment #1: Type: text/plain, Size: 1059 bytes --]
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
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v5 00/80] drm/vc4: Support BCM2711 Display Pipeline
2020-09-07 16:22 ` Maxime Ripard
@ 2020-09-07 18:21 ` Nicolas Saenz Julienne
0 siblings, 0 replies; 10+ messages in thread
From: Nicolas Saenz Julienne @ 2020-09-07 18:21 UTC (permalink / raw)
To: Maxime Ripard, Eric Anholt
Cc: dri-devel, linux-rpi-kernel, bcm-kernel-feedback-list,
linux-arm-kernel, linux-kernel, Dave Stevenson, Tim Gover,
Phil Elwell, devicetree, Kamal Dasu, Philipp Zabel, Rob Herring,
Stephen Boyd
[-- Attachment #1: Type: text/plain, Size: 1177 bytes --]
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
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v5 00/80] drm/vc4: Support BCM2711 Display Pipeline
2020-09-07 11:49 ` Hoegeun Kwon
@ 2020-09-08 12:00 ` Maxime Ripard
2020-09-14 10:14 ` Hoegeun Kwon
0 siblings, 1 reply; 10+ messages in thread
From: Maxime Ripard @ 2020-09-08 12:00 UTC (permalink / raw)
To: Hoegeun Kwon
Cc: Nicolas Saenz Julienne, Eric Anholt, devicetree, Tim Gover,
Dave Stevenson, Stephen Boyd, Kamal Dasu, linux-kernel,
dri-devel, Rob Herring, bcm-kernel-feedback-list,
linux-rpi-kernel, Phil Elwell, linux-arm-kernel
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
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v5 00/80] drm/vc4: Support BCM2711 Display Pipeline
2020-09-08 12:00 ` Maxime Ripard
@ 2020-09-14 10:14 ` Hoegeun Kwon
2020-09-16 16:57 ` Maxime Ripard
0 siblings, 1 reply; 10+ messages in thread
From: Hoegeun Kwon @ 2020-09-14 10:14 UTC (permalink / raw)
To: Maxime Ripard
Cc: Nicolas Saenz Julienne, Eric Anholt, devicetree, Tim Gover,
Dave Stevenson, Stephen Boyd, Kamal Dasu, linux-kernel,
dri-devel, Rob Herring, bcm-kernel-feedback-list,
linux-rpi-kernel, Phil Elwell, linux-arm-kernel,
나성국,
Hoegeun Kwon
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
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v5 00/80] drm/vc4: Support BCM2711 Display Pipeline
2020-09-14 10:14 ` Hoegeun Kwon
@ 2020-09-16 16:57 ` Maxime Ripard
2020-10-08 11:27 ` Maxime Ripard
0 siblings, 1 reply; 10+ messages in thread
From: Maxime Ripard @ 2020-09-16 16:57 UTC (permalink / raw)
To: Hoegeun Kwon
Cc: Nicolas Saenz Julienne, Eric Anholt, devicetree, Tim Gover,
Dave Stevenson, Stephen Boyd, Kamal Dasu, linux-kernel,
dri-devel, Rob Herring, bcm-kernel-feedback-list,
linux-rpi-kernel, Phil Elwell, linux-arm-kernel,
나성국
[-- Attachment #1: Type: text/plain, Size: 4931 bytes --]
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
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v5 00/80] drm/vc4: Support BCM2711 Display Pipeline
2020-09-16 16:57 ` Maxime Ripard
@ 2020-10-08 11:27 ` Maxime Ripard
0 siblings, 0 replies; 10+ messages in thread
From: Maxime Ripard @ 2020-10-08 11:27 UTC (permalink / raw)
To: Hoegeun Kwon
Cc: Nicolas Saenz Julienne, Eric Anholt, devicetree, Tim Gover,
Dave Stevenson, Stephen Boyd, Kamal Dasu, linux-kernel,
dri-devel, Rob Herring, bcm-kernel-feedback-list,
linux-rpi-kernel, Phil Elwell, linux-arm-kernel,
나성국
[-- Attachment #1: Type: text/plain, Size: 5332 bytes --]
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
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v5 00/80] drm/vc4: Support BCM2711 Display Pipeline
2020-09-04 10:16 Jian-Hong Pan
@ 2020-09-07 16:14 ` Maxime Ripard
0 siblings, 0 replies; 10+ messages in thread
From: Maxime Ripard @ 2020-09-07 16:14 UTC (permalink / raw)
To: Jian-Hong Pan
Cc: bcm-kernel-feedback-list, dave.stevenson, devicetree, dri-devel,
eric, kdasu.kdev, linux-arm-kernel, linux-kernel,
linux-rpi-kernel, nsaenzjulienne, p.zabel, phil, robh+dt, sboyd,
tim.gover, Linux Upstreaming Team
[-- Attachment #1: Type: text/plain, Size: 1093 bytes --]
Hi!
On Fri, Sep 04, 2020 at 06:16:16PM +0800, Jian-Hong Pan wrote:
> Thanks for version 5 patch series!
>
> I applied it based on linux-next tag next-20200828 and build it with
> the config [1] to test on RPi 4
> However, It fails to get HDMI state machine clock and pixel bcb clock.
> Then, vc4-drm probes failed. Full dmseg [2]:
>
> [ 2.552675] [drm:vc5_hdmi_init_resources] *ERROR* Failed to get
> HDMI state machine clock
> [ 2.557974] raspberrypi-firmware soc:firmware: Attached to firmware
> from 2020-06-01T13:23:40
> [ 2.567612] of_clk_hw_onecell_get: invalid index 14
> [ 2.567636] [drm:vc5_hdmi_init_resources] *ERROR* Failed to get
> pixel bvb clock
> [ 2.567664] vc4-drm gpu: failed to bind fef00700.hdmi (ops vc4_hdmi_ops): -2
> [ 2.567731] vc4-drm gpu: master bind failed: -2
> [ 2.567755] vc4-drm: probe of gpu failed with error -2
Sorry, I should have mentionned it in the cover letter. This series
depends on that patch from Hoegeun:
https://lore.kernel.org/dri-devel/20200901040759.29992-2-hoegeun.kwon@samsung.com/
Maxime
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v5 00/80] drm/vc4: Support BCM2711 Display Pipeline
@ 2020-09-04 10:16 Jian-Hong Pan
2020-09-07 16:14 ` Maxime Ripard
0 siblings, 1 reply; 10+ messages in thread
From: Jian-Hong Pan @ 2020-09-04 10:16 UTC (permalink / raw)
To: maxime
Cc: bcm-kernel-feedback-list, dave.stevenson, devicetree, dri-devel,
eric, kdasu.kdev, linux-arm-kernel, linux-kernel,
linux-rpi-kernel, nsaenzjulienne, p.zabel, phil, robh+dt, sboyd,
tim.gover, Linux Upstreaming Team
Hi Maxime,
Thanks for version 5 patch series!
I applied it based on linux-next tag next-20200828 and build it with
the config [1] to test on RPi 4
However, It fails to get HDMI state machine clock and pixel bcb clock.
Then, vc4-drm probes failed. Full dmseg [2]:
[ 2.552675] [drm:vc5_hdmi_init_resources] *ERROR* Failed to get
HDMI state machine clock
[ 2.557974] raspberrypi-firmware soc:firmware: Attached to firmware
from 2020-06-01T13:23:40
[ 2.567612] of_clk_hw_onecell_get: invalid index 14
[ 2.567636] [drm:vc5_hdmi_init_resources] *ERROR* Failed to get
pixel bvb clock
[ 2.567664] vc4-drm gpu: failed to bind fef00700.hdmi (ops vc4_hdmi_ops): -2
[ 2.567731] vc4-drm gpu: master bind failed: -2
[ 2.567755] vc4-drm: probe of gpu failed with error -2
I decompile bcm2711-rpi-4-b.dtb. Both hdmi@7ef00700 and hdmi@7ef05700
show the clocks member.
hdmi@7ef00700 {
compatible = "brcm,bcm2711-hdmi0";
reg = <0x7ef00700 0x300 0x7ef00300 0x200 0x7ef00f00 0x80
0x7ef00f80 0x80 0x7ef01b00 0x200 0x7ef01f00 0x400 0x7ef00200 0x80
0x7ef04300 0x100 0x7ef20000 0x100>;
reg-names = "hdmi\0dvp\0phy\0rm\0packet\0metadata\0csc\0cec\0hd";
clock-names = "hdmi\0bvb\0audio\0cec";
resets = <0x17 0x00>;
ddc = <0x18>;
dmas = <0x19 0x0a>;
dma-names = "audio-rx";
status = "okay";
clocks = <0x10 0x0d 0x10 0x0e 0x17 0x00 0x1a>;
};
hdmi@7ef05700 {
compatible = "brcm,bcm2711-hdmi1";
reg = <0x7ef05700 0x300 0x7ef05300 0x200 0x7ef05f00 0x80
0x7ef05f80 0x80 0x7ef06b00 0x200 0x7ef06f00 0x400 0x7ef00280 0x80
0x7ef09300 0x100 0x7ef20000 0x100>;
reg-names = "hdmi\0dvp\0phy\0rm\0packet\0metadata\0csc\0cec\0hd";
ddc = <0x1b>;
clock-names = "hdmi\0bvb\0audio\0cec";
resets = <0x17 0x01>;
dmas = <0x19 0x11>;
dma-names = "audio-rx";
status = "okay";
clocks = <0x10 0x0d 0x10 0x0e 0x17 0x01 0x1a>;
};
Also re-check runtime device tree, they are the same values as mentioned above:
$ xxd /proc/device-tree/soc/hdmi@7ef00700/clocks
00000000: 0000 0010 0000 000d 0000 0010 0000 000e ................
00000010: 0000 0017 0000 0000 0000 001a ............
$ xxd /proc/device-tree/soc/hdmi@7ef05700/clocks
00000000: 0000 0010 0000 000d 0000 0010 0000 000e ................
00000010: 0000 0017 0000 0001 0000 001a ............
Do I miss something?
[1]: https://gist.github.com/starnight/649ea5a8384313f0354aca504f78ad70#file-config
[2]: https://gist.github.com/starnight/649ea5a8384313f0354aca504f78ad70#file-dmesg-log
Jian-Hong Pan
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2020-10-08 11:27 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <CGME20200904071259epcas1p3de4209531c0bc5ed6ea9ef19827b6ed5@epcas1p3.samsung.com>
2020-09-03 8:00 ` [PATCH v5 00/80] drm/vc4: Support BCM2711 Display Pipeline Maxime Ripard
2020-09-07 11:49 ` Hoegeun Kwon
2020-09-08 12:00 ` Maxime Ripard
2020-09-14 10:14 ` Hoegeun Kwon
2020-09-16 16:57 ` Maxime Ripard
2020-10-08 11:27 ` Maxime Ripard
2020-09-07 16:22 ` Maxime Ripard
2020-09-07 18:21 ` Nicolas Saenz Julienne
2020-09-04 10:16 Jian-Hong Pan
2020-09-07 16:14 ` Maxime Ripard
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).