All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/5] drm/vc4: Use the firmware to stop the display pipeline
@ 2021-11-17 14:50 ` Maxime Ripard
  0 siblings, 0 replies; 27+ messages in thread
From: Maxime Ripard @ 2021-11-17 14:50 UTC (permalink / raw)
  To: Scott Branden, Nicolas Saenz Julienne, Rob Herring, Frank Rowand,
	Ray Jui, Florian Fainelli, Daniel Vetter, David Airlie,
	Maarten Lankhorst, Thomas Zimmermann, Maxime Ripard
  Cc: linux-rpi-kernel, dri-devel, linux-arm-kernel, Dave Stevenson,
	Phil Elwell, Tim Gover, Dom Cobley, devicetree,
	bcm-kernel-feedback-list

Hi,

The VC4 driver has had limited support to disable the HDMI controllers and
pixelvalves at boot if the firmware has enabled them.

However, this proved to be limited, and a bit unreliable so a new firmware
command has been introduced some time ago to make it free all its resources and
disable any display output it might have enabled.

This series takes advantage of that command to call it once the transition from
simplefb to the KMS driver has been done.

Let me know what you think,
Maxime

Maxime Ripard (5):
  dt-bindings: display: vc4: Add optional phandle to firmware
  firmware: raspberrypi: Add RPI_FIRMWARE_NOTIFY_DISPLAY_DONE
  drm/vc4: Remove conflicting framebuffers before callind bind_all
  drm/vc4: Notify the firmware when DRM is in charge
  ARM: dts: rpi: Add the firmware node to vc4

 .../bindings/display/brcm,bcm2835-vc4.yaml    |  5 ++++
 arch/arm/boot/dts/bcm2835-rpi.dtsi            |  4 +++
 drivers/gpu/drm/vc4/vc4_drv.c                 | 27 ++++++++++++++++---
 drivers/gpu/drm/vc4/vc4_drv.h                 |  2 ++
 include/soc/bcm2835/raspberrypi-firmware.h    |  1 +
 5 files changed, 35 insertions(+), 4 deletions(-)

-- 
2.33.1


^ permalink raw reply	[flat|nested] 27+ messages in thread

* [PATCH 0/5] drm/vc4: Use the firmware to stop the display pipeline
@ 2021-11-17 14:50 ` Maxime Ripard
  0 siblings, 0 replies; 27+ messages in thread
From: Maxime Ripard @ 2021-11-17 14:50 UTC (permalink / raw)
  To: Scott Branden, Nicolas Saenz Julienne, Rob Herring, Frank Rowand,
	Ray Jui, Florian Fainelli, Daniel Vetter, David Airlie,
	Maarten Lankhorst, Thomas Zimmermann, Maxime Ripard
  Cc: devicetree, Dom Cobley, Tim Gover, Dave Stevenson, dri-devel,
	bcm-kernel-feedback-list, linux-rpi-kernel, Phil Elwell,
	linux-arm-kernel

Hi,

The VC4 driver has had limited support to disable the HDMI controllers and
pixelvalves at boot if the firmware has enabled them.

However, this proved to be limited, and a bit unreliable so a new firmware
command has been introduced some time ago to make it free all its resources and
disable any display output it might have enabled.

This series takes advantage of that command to call it once the transition from
simplefb to the KMS driver has been done.

Let me know what you think,
Maxime

Maxime Ripard (5):
  dt-bindings: display: vc4: Add optional phandle to firmware
  firmware: raspberrypi: Add RPI_FIRMWARE_NOTIFY_DISPLAY_DONE
  drm/vc4: Remove conflicting framebuffers before callind bind_all
  drm/vc4: Notify the firmware when DRM is in charge
  ARM: dts: rpi: Add the firmware node to vc4

 .../bindings/display/brcm,bcm2835-vc4.yaml    |  5 ++++
 arch/arm/boot/dts/bcm2835-rpi.dtsi            |  4 +++
 drivers/gpu/drm/vc4/vc4_drv.c                 | 27 ++++++++++++++++---
 drivers/gpu/drm/vc4/vc4_drv.h                 |  2 ++
 include/soc/bcm2835/raspberrypi-firmware.h    |  1 +
 5 files changed, 35 insertions(+), 4 deletions(-)

-- 
2.33.1


^ permalink raw reply	[flat|nested] 27+ messages in thread

* [PATCH 0/5] drm/vc4: Use the firmware to stop the display pipeline
@ 2021-11-17 14:50 ` Maxime Ripard
  0 siblings, 0 replies; 27+ messages in thread
From: Maxime Ripard @ 2021-11-17 14:50 UTC (permalink / raw)
  To: Scott Branden, Nicolas Saenz Julienne, Rob Herring, Frank Rowand,
	Ray Jui, Florian Fainelli, Daniel Vetter, David Airlie,
	Maarten Lankhorst, Thomas Zimmermann, Maxime Ripard
  Cc: linux-rpi-kernel, dri-devel, linux-arm-kernel, Dave Stevenson,
	Phil Elwell, Tim Gover, Dom Cobley, devicetree,
	bcm-kernel-feedback-list

Hi,

The VC4 driver has had limited support to disable the HDMI controllers and
pixelvalves at boot if the firmware has enabled them.

However, this proved to be limited, and a bit unreliable so a new firmware
command has been introduced some time ago to make it free all its resources and
disable any display output it might have enabled.

This series takes advantage of that command to call it once the transition from
simplefb to the KMS driver has been done.

Let me know what you think,
Maxime

Maxime Ripard (5):
  dt-bindings: display: vc4: Add optional phandle to firmware
  firmware: raspberrypi: Add RPI_FIRMWARE_NOTIFY_DISPLAY_DONE
  drm/vc4: Remove conflicting framebuffers before callind bind_all
  drm/vc4: Notify the firmware when DRM is in charge
  ARM: dts: rpi: Add the firmware node to vc4

 .../bindings/display/brcm,bcm2835-vc4.yaml    |  5 ++++
 arch/arm/boot/dts/bcm2835-rpi.dtsi            |  4 +++
 drivers/gpu/drm/vc4/vc4_drv.c                 | 27 ++++++++++++++++---
 drivers/gpu/drm/vc4/vc4_drv.h                 |  2 ++
 include/soc/bcm2835/raspberrypi-firmware.h    |  1 +
 5 files changed, 35 insertions(+), 4 deletions(-)

-- 
2.33.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 27+ messages in thread

* [PATCH 1/5] dt-bindings: display: vc4: Add optional phandle to firmware
  2021-11-17 14:50 ` Maxime Ripard
  (?)
@ 2021-11-17 14:50   ` Maxime Ripard
  -1 siblings, 0 replies; 27+ messages in thread
From: Maxime Ripard @ 2021-11-17 14:50 UTC (permalink / raw)
  To: Scott Branden, Nicolas Saenz Julienne, Rob Herring, Frank Rowand,
	Ray Jui, Florian Fainelli, Daniel Vetter, David Airlie,
	Maarten Lankhorst, Thomas Zimmermann, Maxime Ripard
  Cc: linux-rpi-kernel, dri-devel, linux-arm-kernel, Dave Stevenson,
	Phil Elwell, Tim Gover, Dom Cobley, devicetree,
	bcm-kernel-feedback-list

The firmware can free all the resources it was using to run the display
engine that won't be needed once the kernel has taken over.

Thus, we need a phandle to the firmware DT node to be able to send that
message when relevant.

Signed-off-by: Maxime Ripard <maxime@cerno.tech>
---
 .../devicetree/bindings/display/brcm,bcm2835-vc4.yaml        | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/Documentation/devicetree/bindings/display/brcm,bcm2835-vc4.yaml b/Documentation/devicetree/bindings/display/brcm,bcm2835-vc4.yaml
index 49a5e041aa49..18de6912b833 100644
--- a/Documentation/devicetree/bindings/display/brcm,bcm2835-vc4.yaml
+++ b/Documentation/devicetree/bindings/display/brcm,bcm2835-vc4.yaml
@@ -21,6 +21,11 @@ properties:
       - brcm,bcm2835-vc4
       - brcm,cygnus-vc4
 
+  raspberrypi,firmware:
+    $ref: "/schemas/types.yaml#/definitions/phandle"
+    description: >
+      Phandle to the firmware node
+
 required:
   - compatible
 
-- 
2.33.1


^ permalink raw reply related	[flat|nested] 27+ messages in thread

* [PATCH 1/5] dt-bindings: display: vc4: Add optional phandle to firmware
@ 2021-11-17 14:50   ` Maxime Ripard
  0 siblings, 0 replies; 27+ messages in thread
From: Maxime Ripard @ 2021-11-17 14:50 UTC (permalink / raw)
  To: Scott Branden, Nicolas Saenz Julienne, Rob Herring, Frank Rowand,
	Ray Jui, Florian Fainelli, Daniel Vetter, David Airlie,
	Maarten Lankhorst, Thomas Zimmermann, Maxime Ripard
  Cc: devicetree, Dom Cobley, Tim Gover, Dave Stevenson, dri-devel,
	bcm-kernel-feedback-list, linux-rpi-kernel, Phil Elwell,
	linux-arm-kernel

The firmware can free all the resources it was using to run the display
engine that won't be needed once the kernel has taken over.

Thus, we need a phandle to the firmware DT node to be able to send that
message when relevant.

Signed-off-by: Maxime Ripard <maxime@cerno.tech>
---
 .../devicetree/bindings/display/brcm,bcm2835-vc4.yaml        | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/Documentation/devicetree/bindings/display/brcm,bcm2835-vc4.yaml b/Documentation/devicetree/bindings/display/brcm,bcm2835-vc4.yaml
index 49a5e041aa49..18de6912b833 100644
--- a/Documentation/devicetree/bindings/display/brcm,bcm2835-vc4.yaml
+++ b/Documentation/devicetree/bindings/display/brcm,bcm2835-vc4.yaml
@@ -21,6 +21,11 @@ properties:
       - brcm,bcm2835-vc4
       - brcm,cygnus-vc4
 
+  raspberrypi,firmware:
+    $ref: "/schemas/types.yaml#/definitions/phandle"
+    description: >
+      Phandle to the firmware node
+
 required:
   - compatible
 
-- 
2.33.1


^ permalink raw reply related	[flat|nested] 27+ messages in thread

* [PATCH 1/5] dt-bindings: display: vc4: Add optional phandle to firmware
@ 2021-11-17 14:50   ` Maxime Ripard
  0 siblings, 0 replies; 27+ messages in thread
From: Maxime Ripard @ 2021-11-17 14:50 UTC (permalink / raw)
  To: Scott Branden, Nicolas Saenz Julienne, Rob Herring, Frank Rowand,
	Ray Jui, Florian Fainelli, Daniel Vetter, David Airlie,
	Maarten Lankhorst, Thomas Zimmermann, Maxime Ripard
  Cc: linux-rpi-kernel, dri-devel, linux-arm-kernel, Dave Stevenson,
	Phil Elwell, Tim Gover, Dom Cobley, devicetree,
	bcm-kernel-feedback-list

The firmware can free all the resources it was using to run the display
engine that won't be needed once the kernel has taken over.

Thus, we need a phandle to the firmware DT node to be able to send that
message when relevant.

Signed-off-by: Maxime Ripard <maxime@cerno.tech>
---
 .../devicetree/bindings/display/brcm,bcm2835-vc4.yaml        | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/Documentation/devicetree/bindings/display/brcm,bcm2835-vc4.yaml b/Documentation/devicetree/bindings/display/brcm,bcm2835-vc4.yaml
index 49a5e041aa49..18de6912b833 100644
--- a/Documentation/devicetree/bindings/display/brcm,bcm2835-vc4.yaml
+++ b/Documentation/devicetree/bindings/display/brcm,bcm2835-vc4.yaml
@@ -21,6 +21,11 @@ properties:
       - brcm,bcm2835-vc4
       - brcm,cygnus-vc4
 
+  raspberrypi,firmware:
+    $ref: "/schemas/types.yaml#/definitions/phandle"
+    description: >
+      Phandle to the firmware node
+
 required:
   - compatible
 
-- 
2.33.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 27+ messages in thread

* [PATCH 2/5] firmware: raspberrypi: Add RPI_FIRMWARE_NOTIFY_DISPLAY_DONE
  2021-11-17 14:50 ` Maxime Ripard
  (?)
@ 2021-11-17 14:50   ` Maxime Ripard
  -1 siblings, 0 replies; 27+ messages in thread
From: Maxime Ripard @ 2021-11-17 14:50 UTC (permalink / raw)
  To: Scott Branden, Nicolas Saenz Julienne, Rob Herring, Frank Rowand,
	Ray Jui, Florian Fainelli, Daniel Vetter, David Airlie,
	Maarten Lankhorst, Thomas Zimmermann, Maxime Ripard
  Cc: linux-rpi-kernel, dri-devel, linux-arm-kernel, Dave Stevenson,
	Phil Elwell, Tim Gover, Dom Cobley, devicetree,
	bcm-kernel-feedback-list

The RPI_FIRMWARE_NOTIFY_DISPLAY_DONE firmware call allows to tell the
firmware the kernel is in charge of the display now and the firmware can
free whatever resources it was using.

Signed-off-by: Maxime Ripard <maxime@cerno.tech>
---
 include/soc/bcm2835/raspberrypi-firmware.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/include/soc/bcm2835/raspberrypi-firmware.h b/include/soc/bcm2835/raspberrypi-firmware.h
index 73ad784fca96..811ea668c4a1 100644
--- a/include/soc/bcm2835/raspberrypi-firmware.h
+++ b/include/soc/bcm2835/raspberrypi-firmware.h
@@ -91,6 +91,7 @@ enum rpi_firmware_property_tag {
 	RPI_FIRMWARE_GET_POE_HAT_VAL =                        0x00030049,
 	RPI_FIRMWARE_SET_POE_HAT_VAL =                        0x00030050,
 	RPI_FIRMWARE_NOTIFY_XHCI_RESET =                      0x00030058,
+	RPI_FIRMWARE_NOTIFY_DISPLAY_DONE =                    0x00030066,
 
 	/* Dispmanx TAGS */
 	RPI_FIRMWARE_FRAMEBUFFER_ALLOCATE =                   0x00040001,
-- 
2.33.1


^ permalink raw reply related	[flat|nested] 27+ messages in thread

* [PATCH 2/5] firmware: raspberrypi: Add RPI_FIRMWARE_NOTIFY_DISPLAY_DONE
@ 2021-11-17 14:50   ` Maxime Ripard
  0 siblings, 0 replies; 27+ messages in thread
From: Maxime Ripard @ 2021-11-17 14:50 UTC (permalink / raw)
  To: Scott Branden, Nicolas Saenz Julienne, Rob Herring, Frank Rowand,
	Ray Jui, Florian Fainelli, Daniel Vetter, David Airlie,
	Maarten Lankhorst, Thomas Zimmermann, Maxime Ripard
  Cc: devicetree, Dom Cobley, Tim Gover, Dave Stevenson, dri-devel,
	bcm-kernel-feedback-list, linux-rpi-kernel, Phil Elwell,
	linux-arm-kernel

The RPI_FIRMWARE_NOTIFY_DISPLAY_DONE firmware call allows to tell the
firmware the kernel is in charge of the display now and the firmware can
free whatever resources it was using.

Signed-off-by: Maxime Ripard <maxime@cerno.tech>
---
 include/soc/bcm2835/raspberrypi-firmware.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/include/soc/bcm2835/raspberrypi-firmware.h b/include/soc/bcm2835/raspberrypi-firmware.h
index 73ad784fca96..811ea668c4a1 100644
--- a/include/soc/bcm2835/raspberrypi-firmware.h
+++ b/include/soc/bcm2835/raspberrypi-firmware.h
@@ -91,6 +91,7 @@ enum rpi_firmware_property_tag {
 	RPI_FIRMWARE_GET_POE_HAT_VAL =                        0x00030049,
 	RPI_FIRMWARE_SET_POE_HAT_VAL =                        0x00030050,
 	RPI_FIRMWARE_NOTIFY_XHCI_RESET =                      0x00030058,
+	RPI_FIRMWARE_NOTIFY_DISPLAY_DONE =                    0x00030066,
 
 	/* Dispmanx TAGS */
 	RPI_FIRMWARE_FRAMEBUFFER_ALLOCATE =                   0x00040001,
-- 
2.33.1


^ permalink raw reply related	[flat|nested] 27+ messages in thread

* [PATCH 2/5] firmware: raspberrypi: Add RPI_FIRMWARE_NOTIFY_DISPLAY_DONE
@ 2021-11-17 14:50   ` Maxime Ripard
  0 siblings, 0 replies; 27+ messages in thread
From: Maxime Ripard @ 2021-11-17 14:50 UTC (permalink / raw)
  To: Scott Branden, Nicolas Saenz Julienne, Rob Herring, Frank Rowand,
	Ray Jui, Florian Fainelli, Daniel Vetter, David Airlie,
	Maarten Lankhorst, Thomas Zimmermann, Maxime Ripard
  Cc: linux-rpi-kernel, dri-devel, linux-arm-kernel, Dave Stevenson,
	Phil Elwell, Tim Gover, Dom Cobley, devicetree,
	bcm-kernel-feedback-list

The RPI_FIRMWARE_NOTIFY_DISPLAY_DONE firmware call allows to tell the
firmware the kernel is in charge of the display now and the firmware can
free whatever resources it was using.

Signed-off-by: Maxime Ripard <maxime@cerno.tech>
---
 include/soc/bcm2835/raspberrypi-firmware.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/include/soc/bcm2835/raspberrypi-firmware.h b/include/soc/bcm2835/raspberrypi-firmware.h
index 73ad784fca96..811ea668c4a1 100644
--- a/include/soc/bcm2835/raspberrypi-firmware.h
+++ b/include/soc/bcm2835/raspberrypi-firmware.h
@@ -91,6 +91,7 @@ enum rpi_firmware_property_tag {
 	RPI_FIRMWARE_GET_POE_HAT_VAL =                        0x00030049,
 	RPI_FIRMWARE_SET_POE_HAT_VAL =                        0x00030050,
 	RPI_FIRMWARE_NOTIFY_XHCI_RESET =                      0x00030058,
+	RPI_FIRMWARE_NOTIFY_DISPLAY_DONE =                    0x00030066,
 
 	/* Dispmanx TAGS */
 	RPI_FIRMWARE_FRAMEBUFFER_ALLOCATE =                   0x00040001,
-- 
2.33.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 27+ messages in thread

* [PATCH 3/5] drm/vc4: Remove conflicting framebuffers before callind bind_all
  2021-11-17 14:50 ` Maxime Ripard
  (?)
@ 2021-11-17 14:50   ` Maxime Ripard
  -1 siblings, 0 replies; 27+ messages in thread
From: Maxime Ripard @ 2021-11-17 14:50 UTC (permalink / raw)
  To: Scott Branden, Nicolas Saenz Julienne, Rob Herring, Frank Rowand,
	Ray Jui, Florian Fainelli, Daniel Vetter, David Airlie,
	Maarten Lankhorst, Thomas Zimmermann, Maxime Ripard
  Cc: linux-rpi-kernel, dri-devel, linux-arm-kernel, Dave Stevenson,
	Phil Elwell, Tim Gover, Dom Cobley, devicetree,
	bcm-kernel-feedback-list

The bind hooks will modify their controller registers, so simplefb is
going to be unusable anyway. Let's avoid any transient state where it
could still be in the system but no longer functionnal.

Signed-off-by: Maxime Ripard <maxime@cerno.tech>
---
 drivers/gpu/drm/vc4/vc4_drv.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/vc4/vc4_drv.c b/drivers/gpu/drm/vc4/vc4_drv.c
index 16abc3a3d601..8ab89f805826 100644
--- a/drivers/gpu/drm/vc4/vc4_drv.c
+++ b/drivers/gpu/drm/vc4/vc4_drv.c
@@ -251,6 +251,10 @@ static int vc4_drm_bind(struct device *dev)
 	if (ret)
 		return ret;
 
+	ret = drm_aperture_remove_framebuffers(false, &vc4_drm_driver);
+	if (ret)
+		return ret;
+
 	ret = component_bind_all(dev, drm);
 	if (ret)
 		return ret;
@@ -259,10 +263,6 @@ static int vc4_drm_bind(struct device *dev)
 	if (ret)
 		goto unbind_all;
 
-	ret = drm_aperture_remove_framebuffers(false, &vc4_drm_driver);
-	if (ret)
-		goto unbind_all;
-
 	ret = vc4_kms_load(drm);
 	if (ret < 0)
 		goto unbind_all;
-- 
2.33.1


^ permalink raw reply related	[flat|nested] 27+ messages in thread

* [PATCH 3/5] drm/vc4: Remove conflicting framebuffers before callind bind_all
@ 2021-11-17 14:50   ` Maxime Ripard
  0 siblings, 0 replies; 27+ messages in thread
From: Maxime Ripard @ 2021-11-17 14:50 UTC (permalink / raw)
  To: Scott Branden, Nicolas Saenz Julienne, Rob Herring, Frank Rowand,
	Ray Jui, Florian Fainelli, Daniel Vetter, David Airlie,
	Maarten Lankhorst, Thomas Zimmermann, Maxime Ripard
  Cc: devicetree, Dom Cobley, Tim Gover, Dave Stevenson, dri-devel,
	bcm-kernel-feedback-list, linux-rpi-kernel, Phil Elwell,
	linux-arm-kernel

The bind hooks will modify their controller registers, so simplefb is
going to be unusable anyway. Let's avoid any transient state where it
could still be in the system but no longer functionnal.

Signed-off-by: Maxime Ripard <maxime@cerno.tech>
---
 drivers/gpu/drm/vc4/vc4_drv.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/vc4/vc4_drv.c b/drivers/gpu/drm/vc4/vc4_drv.c
index 16abc3a3d601..8ab89f805826 100644
--- a/drivers/gpu/drm/vc4/vc4_drv.c
+++ b/drivers/gpu/drm/vc4/vc4_drv.c
@@ -251,6 +251,10 @@ static int vc4_drm_bind(struct device *dev)
 	if (ret)
 		return ret;
 
+	ret = drm_aperture_remove_framebuffers(false, &vc4_drm_driver);
+	if (ret)
+		return ret;
+
 	ret = component_bind_all(dev, drm);
 	if (ret)
 		return ret;
@@ -259,10 +263,6 @@ static int vc4_drm_bind(struct device *dev)
 	if (ret)
 		goto unbind_all;
 
-	ret = drm_aperture_remove_framebuffers(false, &vc4_drm_driver);
-	if (ret)
-		goto unbind_all;
-
 	ret = vc4_kms_load(drm);
 	if (ret < 0)
 		goto unbind_all;
-- 
2.33.1


^ permalink raw reply related	[flat|nested] 27+ messages in thread

* [PATCH 3/5] drm/vc4: Remove conflicting framebuffers before callind bind_all
@ 2021-11-17 14:50   ` Maxime Ripard
  0 siblings, 0 replies; 27+ messages in thread
From: Maxime Ripard @ 2021-11-17 14:50 UTC (permalink / raw)
  To: Scott Branden, Nicolas Saenz Julienne, Rob Herring, Frank Rowand,
	Ray Jui, Florian Fainelli, Daniel Vetter, David Airlie,
	Maarten Lankhorst, Thomas Zimmermann, Maxime Ripard
  Cc: linux-rpi-kernel, dri-devel, linux-arm-kernel, Dave Stevenson,
	Phil Elwell, Tim Gover, Dom Cobley, devicetree,
	bcm-kernel-feedback-list

The bind hooks will modify their controller registers, so simplefb is
going to be unusable anyway. Let's avoid any transient state where it
could still be in the system but no longer functionnal.

Signed-off-by: Maxime Ripard <maxime@cerno.tech>
---
 drivers/gpu/drm/vc4/vc4_drv.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/vc4/vc4_drv.c b/drivers/gpu/drm/vc4/vc4_drv.c
index 16abc3a3d601..8ab89f805826 100644
--- a/drivers/gpu/drm/vc4/vc4_drv.c
+++ b/drivers/gpu/drm/vc4/vc4_drv.c
@@ -251,6 +251,10 @@ static int vc4_drm_bind(struct device *dev)
 	if (ret)
 		return ret;
 
+	ret = drm_aperture_remove_framebuffers(false, &vc4_drm_driver);
+	if (ret)
+		return ret;
+
 	ret = component_bind_all(dev, drm);
 	if (ret)
 		return ret;
@@ -259,10 +263,6 @@ static int vc4_drm_bind(struct device *dev)
 	if (ret)
 		goto unbind_all;
 
-	ret = drm_aperture_remove_framebuffers(false, &vc4_drm_driver);
-	if (ret)
-		goto unbind_all;
-
 	ret = vc4_kms_load(drm);
 	if (ret < 0)
 		goto unbind_all;
-- 
2.33.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 27+ messages in thread

* [PATCH 4/5] drm/vc4: Notify the firmware when DRM is in charge
  2021-11-17 14:50 ` Maxime Ripard
  (?)
@ 2021-11-17 14:50   ` Maxime Ripard
  -1 siblings, 0 replies; 27+ messages in thread
From: Maxime Ripard @ 2021-11-17 14:50 UTC (permalink / raw)
  To: Scott Branden, Nicolas Saenz Julienne, Rob Herring, Frank Rowand,
	Ray Jui, Florian Fainelli, Daniel Vetter, David Airlie,
	Maarten Lankhorst, Thomas Zimmermann, Maxime Ripard
  Cc: linux-rpi-kernel, dri-devel, linux-arm-kernel, Dave Stevenson,
	Phil Elwell, Tim Gover, Dom Cobley, devicetree,
	bcm-kernel-feedback-list

Once the call to drm_fb_helper_remove_conflicting_framebuffers() has
been made, simplefb has been unregistered and the KMS driver is entirely
in charge of the display.

Thus, we can notify the firmware it can free whatever resource it was
using to maintain simplefb functional.

Signed-off-by: Maxime Ripard <maxime@cerno.tech>
---
 drivers/gpu/drm/vc4/vc4_drv.c | 19 +++++++++++++++++++
 drivers/gpu/drm/vc4/vc4_drv.h |  2 ++
 2 files changed, 21 insertions(+)

diff --git a/drivers/gpu/drm/vc4/vc4_drv.c b/drivers/gpu/drm/vc4/vc4_drv.c
index 8ab89f805826..d09fa9c130da 100644
--- a/drivers/gpu/drm/vc4/vc4_drv.c
+++ b/drivers/gpu/drm/vc4/vc4_drv.c
@@ -37,6 +37,8 @@
 #include <drm/drm_fb_helper.h>
 #include <drm/drm_vblank.h>
 
+#include <soc/bcm2835/raspberrypi-firmware.h>
+
 #include "uapi/drm/vc4_drm.h"
 
 #include "vc4_drv.h"
@@ -251,10 +253,27 @@ static int vc4_drm_bind(struct device *dev)
 	if (ret)
 		return ret;
 
+	node = of_parse_phandle(dev->of_node, "raspberrypi,firmware", 0);
+	if (node) {
+		vc4->firmware = rpi_firmware_get(node);
+		of_node_put(node);
+
+		if (!vc4->firmware)
+			return -EPROBE_DEFER;
+	}
+
 	ret = drm_aperture_remove_framebuffers(false, &vc4_drm_driver);
 	if (ret)
 		return ret;
 
+	if (vc4->firmware) {
+		ret = rpi_firmware_property(vc4->firmware,
+					    RPI_FIRMWARE_NOTIFY_DISPLAY_DONE,
+					    NULL, 0);
+		if (ret)
+			drm_warn(drm, "Couldn't stop firmware display driver: %d\n", ret);
+	}
+
 	ret = component_bind_all(dev, drm);
 	if (ret)
 		return ret;
diff --git a/drivers/gpu/drm/vc4/vc4_drv.h b/drivers/gpu/drm/vc4/vc4_drv.h
index 4329e09d357c..b840654c53a9 100644
--- a/drivers/gpu/drm/vc4/vc4_drv.h
+++ b/drivers/gpu/drm/vc4/vc4_drv.h
@@ -76,6 +76,8 @@ struct vc4_dev {
 
 	unsigned int irq;
 
+	struct rpi_firmware *firmware;
+
 	struct vc4_hvs *hvs;
 	struct vc4_v3d *v3d;
 	struct vc4_dpi *dpi;
-- 
2.33.1


^ permalink raw reply related	[flat|nested] 27+ messages in thread

* [PATCH 4/5] drm/vc4: Notify the firmware when DRM is in charge
@ 2021-11-17 14:50   ` Maxime Ripard
  0 siblings, 0 replies; 27+ messages in thread
From: Maxime Ripard @ 2021-11-17 14:50 UTC (permalink / raw)
  To: Scott Branden, Nicolas Saenz Julienne, Rob Herring, Frank Rowand,
	Ray Jui, Florian Fainelli, Daniel Vetter, David Airlie,
	Maarten Lankhorst, Thomas Zimmermann, Maxime Ripard
  Cc: devicetree, Dom Cobley, Tim Gover, Dave Stevenson, dri-devel,
	bcm-kernel-feedback-list, linux-rpi-kernel, Phil Elwell,
	linux-arm-kernel

Once the call to drm_fb_helper_remove_conflicting_framebuffers() has
been made, simplefb has been unregistered and the KMS driver is entirely
in charge of the display.

Thus, we can notify the firmware it can free whatever resource it was
using to maintain simplefb functional.

Signed-off-by: Maxime Ripard <maxime@cerno.tech>
---
 drivers/gpu/drm/vc4/vc4_drv.c | 19 +++++++++++++++++++
 drivers/gpu/drm/vc4/vc4_drv.h |  2 ++
 2 files changed, 21 insertions(+)

diff --git a/drivers/gpu/drm/vc4/vc4_drv.c b/drivers/gpu/drm/vc4/vc4_drv.c
index 8ab89f805826..d09fa9c130da 100644
--- a/drivers/gpu/drm/vc4/vc4_drv.c
+++ b/drivers/gpu/drm/vc4/vc4_drv.c
@@ -37,6 +37,8 @@
 #include <drm/drm_fb_helper.h>
 #include <drm/drm_vblank.h>
 
+#include <soc/bcm2835/raspberrypi-firmware.h>
+
 #include "uapi/drm/vc4_drm.h"
 
 #include "vc4_drv.h"
@@ -251,10 +253,27 @@ static int vc4_drm_bind(struct device *dev)
 	if (ret)
 		return ret;
 
+	node = of_parse_phandle(dev->of_node, "raspberrypi,firmware", 0);
+	if (node) {
+		vc4->firmware = rpi_firmware_get(node);
+		of_node_put(node);
+
+		if (!vc4->firmware)
+			return -EPROBE_DEFER;
+	}
+
 	ret = drm_aperture_remove_framebuffers(false, &vc4_drm_driver);
 	if (ret)
 		return ret;
 
+	if (vc4->firmware) {
+		ret = rpi_firmware_property(vc4->firmware,
+					    RPI_FIRMWARE_NOTIFY_DISPLAY_DONE,
+					    NULL, 0);
+		if (ret)
+			drm_warn(drm, "Couldn't stop firmware display driver: %d\n", ret);
+	}
+
 	ret = component_bind_all(dev, drm);
 	if (ret)
 		return ret;
diff --git a/drivers/gpu/drm/vc4/vc4_drv.h b/drivers/gpu/drm/vc4/vc4_drv.h
index 4329e09d357c..b840654c53a9 100644
--- a/drivers/gpu/drm/vc4/vc4_drv.h
+++ b/drivers/gpu/drm/vc4/vc4_drv.h
@@ -76,6 +76,8 @@ struct vc4_dev {
 
 	unsigned int irq;
 
+	struct rpi_firmware *firmware;
+
 	struct vc4_hvs *hvs;
 	struct vc4_v3d *v3d;
 	struct vc4_dpi *dpi;
-- 
2.33.1


^ permalink raw reply related	[flat|nested] 27+ messages in thread

* [PATCH 4/5] drm/vc4: Notify the firmware when DRM is in charge
@ 2021-11-17 14:50   ` Maxime Ripard
  0 siblings, 0 replies; 27+ messages in thread
From: Maxime Ripard @ 2021-11-17 14:50 UTC (permalink / raw)
  To: Scott Branden, Nicolas Saenz Julienne, Rob Herring, Frank Rowand,
	Ray Jui, Florian Fainelli, Daniel Vetter, David Airlie,
	Maarten Lankhorst, Thomas Zimmermann, Maxime Ripard
  Cc: linux-rpi-kernel, dri-devel, linux-arm-kernel, Dave Stevenson,
	Phil Elwell, Tim Gover, Dom Cobley, devicetree,
	bcm-kernel-feedback-list

Once the call to drm_fb_helper_remove_conflicting_framebuffers() has
been made, simplefb has been unregistered and the KMS driver is entirely
in charge of the display.

Thus, we can notify the firmware it can free whatever resource it was
using to maintain simplefb functional.

Signed-off-by: Maxime Ripard <maxime@cerno.tech>
---
 drivers/gpu/drm/vc4/vc4_drv.c | 19 +++++++++++++++++++
 drivers/gpu/drm/vc4/vc4_drv.h |  2 ++
 2 files changed, 21 insertions(+)

diff --git a/drivers/gpu/drm/vc4/vc4_drv.c b/drivers/gpu/drm/vc4/vc4_drv.c
index 8ab89f805826..d09fa9c130da 100644
--- a/drivers/gpu/drm/vc4/vc4_drv.c
+++ b/drivers/gpu/drm/vc4/vc4_drv.c
@@ -37,6 +37,8 @@
 #include <drm/drm_fb_helper.h>
 #include <drm/drm_vblank.h>
 
+#include <soc/bcm2835/raspberrypi-firmware.h>
+
 #include "uapi/drm/vc4_drm.h"
 
 #include "vc4_drv.h"
@@ -251,10 +253,27 @@ static int vc4_drm_bind(struct device *dev)
 	if (ret)
 		return ret;
 
+	node = of_parse_phandle(dev->of_node, "raspberrypi,firmware", 0);
+	if (node) {
+		vc4->firmware = rpi_firmware_get(node);
+		of_node_put(node);
+
+		if (!vc4->firmware)
+			return -EPROBE_DEFER;
+	}
+
 	ret = drm_aperture_remove_framebuffers(false, &vc4_drm_driver);
 	if (ret)
 		return ret;
 
+	if (vc4->firmware) {
+		ret = rpi_firmware_property(vc4->firmware,
+					    RPI_FIRMWARE_NOTIFY_DISPLAY_DONE,
+					    NULL, 0);
+		if (ret)
+			drm_warn(drm, "Couldn't stop firmware display driver: %d\n", ret);
+	}
+
 	ret = component_bind_all(dev, drm);
 	if (ret)
 		return ret;
diff --git a/drivers/gpu/drm/vc4/vc4_drv.h b/drivers/gpu/drm/vc4/vc4_drv.h
index 4329e09d357c..b840654c53a9 100644
--- a/drivers/gpu/drm/vc4/vc4_drv.h
+++ b/drivers/gpu/drm/vc4/vc4_drv.h
@@ -76,6 +76,8 @@ struct vc4_dev {
 
 	unsigned int irq;
 
+	struct rpi_firmware *firmware;
+
 	struct vc4_hvs *hvs;
 	struct vc4_v3d *v3d;
 	struct vc4_dpi *dpi;
-- 
2.33.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 27+ messages in thread

* [PATCH 5/5] ARM: dts: rpi: Add the firmware node to vc4
  2021-11-17 14:50 ` Maxime Ripard
  (?)
@ 2021-11-17 14:50   ` Maxime Ripard
  -1 siblings, 0 replies; 27+ messages in thread
From: Maxime Ripard @ 2021-11-17 14:50 UTC (permalink / raw)
  To: Scott Branden, Nicolas Saenz Julienne, Rob Herring, Frank Rowand,
	Ray Jui, Florian Fainelli, Daniel Vetter, David Airlie,
	Maarten Lankhorst, Thomas Zimmermann, Maxime Ripard
  Cc: linux-rpi-kernel, dri-devel, linux-arm-kernel, Dave Stevenson,
	Phil Elwell, Tim Gover, Dom Cobley, devicetree,
	bcm-kernel-feedback-list

Add the firmware phandle to the vc4 node so that we can send it the
message that we're done with the firmware display.

Signed-off-by: Maxime Ripard <maxime@cerno.tech>
---
 arch/arm/boot/dts/bcm2835-rpi.dtsi | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/arch/arm/boot/dts/bcm2835-rpi.dtsi b/arch/arm/boot/dts/bcm2835-rpi.dtsi
index 87ddcad76083..bc5dc51ba579 100644
--- a/arch/arm/boot/dts/bcm2835-rpi.dtsi
+++ b/arch/arm/boot/dts/bcm2835-rpi.dtsi
@@ -67,6 +67,10 @@ &usb {
 	power-domains = <&power RPI_POWER_DOMAIN_USB>;
 };
 
+&vc4 {
+	raspberrypi,firmware = <&firmware>;
+};
+
 &vec {
 	power-domains = <&power RPI_POWER_DOMAIN_VEC>;
 	status = "okay";
-- 
2.33.1


^ permalink raw reply related	[flat|nested] 27+ messages in thread

* [PATCH 5/5] ARM: dts: rpi: Add the firmware node to vc4
@ 2021-11-17 14:50   ` Maxime Ripard
  0 siblings, 0 replies; 27+ messages in thread
From: Maxime Ripard @ 2021-11-17 14:50 UTC (permalink / raw)
  To: Scott Branden, Nicolas Saenz Julienne, Rob Herring, Frank Rowand,
	Ray Jui, Florian Fainelli, Daniel Vetter, David Airlie,
	Maarten Lankhorst, Thomas Zimmermann, Maxime Ripard
  Cc: devicetree, Dom Cobley, Tim Gover, Dave Stevenson, dri-devel,
	bcm-kernel-feedback-list, linux-rpi-kernel, Phil Elwell,
	linux-arm-kernel

Add the firmware phandle to the vc4 node so that we can send it the
message that we're done with the firmware display.

Signed-off-by: Maxime Ripard <maxime@cerno.tech>
---
 arch/arm/boot/dts/bcm2835-rpi.dtsi | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/arch/arm/boot/dts/bcm2835-rpi.dtsi b/arch/arm/boot/dts/bcm2835-rpi.dtsi
index 87ddcad76083..bc5dc51ba579 100644
--- a/arch/arm/boot/dts/bcm2835-rpi.dtsi
+++ b/arch/arm/boot/dts/bcm2835-rpi.dtsi
@@ -67,6 +67,10 @@ &usb {
 	power-domains = <&power RPI_POWER_DOMAIN_USB>;
 };
 
+&vc4 {
+	raspberrypi,firmware = <&firmware>;
+};
+
 &vec {
 	power-domains = <&power RPI_POWER_DOMAIN_VEC>;
 	status = "okay";
-- 
2.33.1


^ permalink raw reply related	[flat|nested] 27+ messages in thread

* [PATCH 5/5] ARM: dts: rpi: Add the firmware node to vc4
@ 2021-11-17 14:50   ` Maxime Ripard
  0 siblings, 0 replies; 27+ messages in thread
From: Maxime Ripard @ 2021-11-17 14:50 UTC (permalink / raw)
  To: Scott Branden, Nicolas Saenz Julienne, Rob Herring, Frank Rowand,
	Ray Jui, Florian Fainelli, Daniel Vetter, David Airlie,
	Maarten Lankhorst, Thomas Zimmermann, Maxime Ripard
  Cc: linux-rpi-kernel, dri-devel, linux-arm-kernel, Dave Stevenson,
	Phil Elwell, Tim Gover, Dom Cobley, devicetree,
	bcm-kernel-feedback-list

Add the firmware phandle to the vc4 node so that we can send it the
message that we're done with the firmware display.

Signed-off-by: Maxime Ripard <maxime@cerno.tech>
---
 arch/arm/boot/dts/bcm2835-rpi.dtsi | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/arch/arm/boot/dts/bcm2835-rpi.dtsi b/arch/arm/boot/dts/bcm2835-rpi.dtsi
index 87ddcad76083..bc5dc51ba579 100644
--- a/arch/arm/boot/dts/bcm2835-rpi.dtsi
+++ b/arch/arm/boot/dts/bcm2835-rpi.dtsi
@@ -67,6 +67,10 @@ &usb {
 	power-domains = <&power RPI_POWER_DOMAIN_USB>;
 };
 
+&vc4 {
+	raspberrypi,firmware = <&firmware>;
+};
+
 &vec {
 	power-domains = <&power RPI_POWER_DOMAIN_VEC>;
 	status = "okay";
-- 
2.33.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 27+ messages in thread

* Re: [PATCH 1/5] dt-bindings: display: vc4: Add optional phandle to firmware
  2021-11-17 14:50   ` Maxime Ripard
  (?)
@ 2021-11-29 22:49     ` Rob Herring
  -1 siblings, 0 replies; 27+ messages in thread
From: Rob Herring @ 2021-11-29 22:49 UTC (permalink / raw)
  To: Maxime Ripard
  Cc: devicetree, Nicolas Saenz Julienne, Tim Gover, Scott Branden,
	Dave Stevenson, David Airlie, Ray Jui, dri-devel,
	Florian Fainelli, bcm-kernel-feedback-list, linux-rpi-kernel,
	Thomas Zimmermann, Daniel Vetter, Frank Rowand, Phil Elwell,
	linux-arm-kernel, Dom Cobley

On Wed, Nov 17, 2021 at 03:50:36PM +0100, Maxime Ripard wrote:
> The firmware can free all the resources it was using to run the display
> engine that won't be needed once the kernel has taken over.
> 
> Thus, we need a phandle to the firmware DT node to be able to send that
> message when relevant.

Why? Just use of_find_compatible_node(). 

> 
> Signed-off-by: Maxime Ripard <maxime@cerno.tech>
> ---
>  .../devicetree/bindings/display/brcm,bcm2835-vc4.yaml        | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/display/brcm,bcm2835-vc4.yaml b/Documentation/devicetree/bindings/display/brcm,bcm2835-vc4.yaml
> index 49a5e041aa49..18de6912b833 100644
> --- a/Documentation/devicetree/bindings/display/brcm,bcm2835-vc4.yaml
> +++ b/Documentation/devicetree/bindings/display/brcm,bcm2835-vc4.yaml
> @@ -21,6 +21,11 @@ properties:
>        - brcm,bcm2835-vc4
>        - brcm,cygnus-vc4
>  
> +  raspberrypi,firmware:
> +    $ref: "/schemas/types.yaml#/definitions/phandle"
> +    description: >
> +      Phandle to the firmware node
> +
>  required:
>    - compatible
>  
> -- 
> 2.33.1
> 
> 

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [PATCH 1/5] dt-bindings: display: vc4: Add optional phandle to firmware
@ 2021-11-29 22:49     ` Rob Herring
  0 siblings, 0 replies; 27+ messages in thread
From: Rob Herring @ 2021-11-29 22:49 UTC (permalink / raw)
  To: Maxime Ripard
  Cc: Scott Branden, Nicolas Saenz Julienne, Frank Rowand, Ray Jui,
	Florian Fainelli, Daniel Vetter, David Airlie, Maarten Lankhorst,
	Thomas Zimmermann, linux-rpi-kernel, dri-devel, linux-arm-kernel,
	Dave Stevenson, Phil Elwell, Tim Gover, Dom Cobley, devicetree,
	bcm-kernel-feedback-list

On Wed, Nov 17, 2021 at 03:50:36PM +0100, Maxime Ripard wrote:
> The firmware can free all the resources it was using to run the display
> engine that won't be needed once the kernel has taken over.
> 
> Thus, we need a phandle to the firmware DT node to be able to send that
> message when relevant.

Why? Just use of_find_compatible_node(). 

> 
> Signed-off-by: Maxime Ripard <maxime@cerno.tech>
> ---
>  .../devicetree/bindings/display/brcm,bcm2835-vc4.yaml        | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/display/brcm,bcm2835-vc4.yaml b/Documentation/devicetree/bindings/display/brcm,bcm2835-vc4.yaml
> index 49a5e041aa49..18de6912b833 100644
> --- a/Documentation/devicetree/bindings/display/brcm,bcm2835-vc4.yaml
> +++ b/Documentation/devicetree/bindings/display/brcm,bcm2835-vc4.yaml
> @@ -21,6 +21,11 @@ properties:
>        - brcm,bcm2835-vc4
>        - brcm,cygnus-vc4
>  
> +  raspberrypi,firmware:
> +    $ref: "/schemas/types.yaml#/definitions/phandle"
> +    description: >
> +      Phandle to the firmware node
> +
>  required:
>    - compatible
>  
> -- 
> 2.33.1
> 
> 

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [PATCH 1/5] dt-bindings: display: vc4: Add optional phandle to firmware
@ 2021-11-29 22:49     ` Rob Herring
  0 siblings, 0 replies; 27+ messages in thread
From: Rob Herring @ 2021-11-29 22:49 UTC (permalink / raw)
  To: Maxime Ripard
  Cc: Scott Branden, Nicolas Saenz Julienne, Frank Rowand, Ray Jui,
	Florian Fainelli, Daniel Vetter, David Airlie, Maarten Lankhorst,
	Thomas Zimmermann, linux-rpi-kernel, dri-devel, linux-arm-kernel,
	Dave Stevenson, Phil Elwell, Tim Gover, Dom Cobley, devicetree,
	bcm-kernel-feedback-list

On Wed, Nov 17, 2021 at 03:50:36PM +0100, Maxime Ripard wrote:
> The firmware can free all the resources it was using to run the display
> engine that won't be needed once the kernel has taken over.
> 
> Thus, we need a phandle to the firmware DT node to be able to send that
> message when relevant.

Why? Just use of_find_compatible_node(). 

> 
> Signed-off-by: Maxime Ripard <maxime@cerno.tech>
> ---
>  .../devicetree/bindings/display/brcm,bcm2835-vc4.yaml        | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/display/brcm,bcm2835-vc4.yaml b/Documentation/devicetree/bindings/display/brcm,bcm2835-vc4.yaml
> index 49a5e041aa49..18de6912b833 100644
> --- a/Documentation/devicetree/bindings/display/brcm,bcm2835-vc4.yaml
> +++ b/Documentation/devicetree/bindings/display/brcm,bcm2835-vc4.yaml
> @@ -21,6 +21,11 @@ properties:
>        - brcm,bcm2835-vc4
>        - brcm,cygnus-vc4
>  
> +  raspberrypi,firmware:
> +    $ref: "/schemas/types.yaml#/definitions/phandle"
> +    description: >
> +      Phandle to the firmware node
> +
>  required:
>    - compatible
>  
> -- 
> 2.33.1
> 
> 

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [PATCH 0/5] drm/vc4: Use the firmware to stop the display pipeline
  2021-11-17 14:50 ` Maxime Ripard
  (?)
@ 2021-11-30 11:45   ` nicolas saenz julienne
  -1 siblings, 0 replies; 27+ messages in thread
From: nicolas saenz julienne @ 2021-11-30 11:45 UTC (permalink / raw)
  To: Maxime Ripard, Scott Branden, Rob Herring, Frank Rowand, Ray Jui,
	Florian Fainelli, Daniel Vetter, David Airlie, Maarten Lankhorst,
	Thomas Zimmermann
  Cc: linux-rpi-kernel, dri-devel, linux-arm-kernel, Dave Stevenson,
	Phil Elwell, Tim Gover, Dom Cobley, devicetree,
	bcm-kernel-feedback-list

Hi Maxime,

On Wed, 2021-11-17 at 15:50 +0100, Maxime Ripard wrote:
> Hi,
> 
> The VC4 driver has had limited support to disable the HDMI controllers and
> pixelvalves at boot if the firmware has enabled them.
> 
> However, this proved to be limited, and a bit unreliable so a new firmware
> command has been introduced some time ago to make it free all its resources and
> disable any display output it might have enabled.
> 
> This series takes advantage of that command to call it once the transition from
> simplefb to the KMS driver has been done.

I think it would make sense to integrate this funtionality into
'reset/reset-raspberrypi.c' and pass it to VC4 as a reset controller. It fits
the same startup situation as the one we have with the USB controller. Also, it
would contain the firmware weirdness in a single spot.

Otherwise, please use 'devm_rpi_firmware_get()'.

Regards,
Nicolas

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [PATCH 0/5] drm/vc4: Use the firmware to stop the display pipeline
@ 2021-11-30 11:45   ` nicolas saenz julienne
  0 siblings, 0 replies; 27+ messages in thread
From: nicolas saenz julienne @ 2021-11-30 11:45 UTC (permalink / raw)
  To: Maxime Ripard, Scott Branden, Rob Herring, Frank Rowand, Ray Jui,
	Florian Fainelli, Daniel Vetter, David Airlie, Maarten Lankhorst,
	Thomas Zimmermann
  Cc: linux-rpi-kernel, dri-devel, linux-arm-kernel, Dave Stevenson,
	Phil Elwell, Tim Gover, Dom Cobley, devicetree,
	bcm-kernel-feedback-list

Hi Maxime,

On Wed, 2021-11-17 at 15:50 +0100, Maxime Ripard wrote:
> Hi,
> 
> The VC4 driver has had limited support to disable the HDMI controllers and
> pixelvalves at boot if the firmware has enabled them.
> 
> However, this proved to be limited, and a bit unreliable so a new firmware
> command has been introduced some time ago to make it free all its resources and
> disable any display output it might have enabled.
> 
> This series takes advantage of that command to call it once the transition from
> simplefb to the KMS driver has been done.

I think it would make sense to integrate this funtionality into
'reset/reset-raspberrypi.c' and pass it to VC4 as a reset controller. It fits
the same startup situation as the one we have with the USB controller. Also, it
would contain the firmware weirdness in a single spot.

Otherwise, please use 'devm_rpi_firmware_get()'.

Regards,
Nicolas

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [PATCH 0/5] drm/vc4: Use the firmware to stop the display pipeline
@ 2021-11-30 11:45   ` nicolas saenz julienne
  0 siblings, 0 replies; 27+ messages in thread
From: nicolas saenz julienne @ 2021-11-30 11:45 UTC (permalink / raw)
  To: Maxime Ripard, Scott Branden, Rob Herring, Frank Rowand, Ray Jui,
	Florian Fainelli, Daniel Vetter, David Airlie, Maarten Lankhorst,
	Thomas Zimmermann
  Cc: devicetree, Dom Cobley, Tim Gover, Dave Stevenson, dri-devel,
	bcm-kernel-feedback-list, linux-rpi-kernel, Phil Elwell,
	linux-arm-kernel

Hi Maxime,

On Wed, 2021-11-17 at 15:50 +0100, Maxime Ripard wrote:
> Hi,
> 
> The VC4 driver has had limited support to disable the HDMI controllers and
> pixelvalves at boot if the firmware has enabled them.
> 
> However, this proved to be limited, and a bit unreliable so a new firmware
> command has been introduced some time ago to make it free all its resources and
> disable any display output it might have enabled.
> 
> This series takes advantage of that command to call it once the transition from
> simplefb to the KMS driver has been done.

I think it would make sense to integrate this funtionality into
'reset/reset-raspberrypi.c' and pass it to VC4 as a reset controller. It fits
the same startup situation as the one we have with the USB controller. Also, it
would contain the firmware weirdness in a single spot.

Otherwise, please use 'devm_rpi_firmware_get()'.

Regards,
Nicolas

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [PATCH 0/5] drm/vc4: Use the firmware to stop the display pipeline
  2021-11-30 11:45   ` nicolas saenz julienne
  (?)
@ 2021-12-03 13:50     ` Maxime Ripard
  -1 siblings, 0 replies; 27+ messages in thread
From: Maxime Ripard @ 2021-12-03 13:50 UTC (permalink / raw)
  To: nicolas saenz julienne
  Cc: Scott Branden, Rob Herring, Frank Rowand, Ray Jui,
	Florian Fainelli, Daniel Vetter, David Airlie, Maarten Lankhorst,
	Thomas Zimmermann, linux-rpi-kernel, dri-devel, linux-arm-kernel,
	Dave Stevenson, Phil Elwell, Tim Gover, Dom Cobley, devicetree,
	bcm-kernel-feedback-list

[-- Attachment #1: Type: text/plain, Size: 1438 bytes --]

Hi Nicolas,

On Tue, Nov 30, 2021 at 12:45:49PM +0100, nicolas saenz julienne wrote:
> On Wed, 2021-11-17 at 15:50 +0100, Maxime Ripard wrote:
> > The VC4 driver has had limited support to disable the HDMI controllers and
> > pixelvalves at boot if the firmware has enabled them.
> > 
> > However, this proved to be limited, and a bit unreliable so a new firmware
> > command has been introduced some time ago to make it free all its resources and
> > disable any display output it might have enabled.
> > 
> > This series takes advantage of that command to call it once the transition from
> > simplefb to the KMS driver has been done.
> 
> I think it would make sense to integrate this funtionality into
> 'reset/reset-raspberrypi.c' and pass it to VC4 as a reset controller. It fits
> the same startup situation as the one we have with the USB controller. Also, it
> would contain the firmware weirdness in a single spot.

I don't really think it makes sense. It's not really made for that
purpose, affects multiple devices (basically, all of the devices from
the display pipeline), and can even have some side effects on clocks and
memory. Plus, it can only be done once iirc, so a later call to reset
the pipeline will be ineffective, even if we changed its state.

So yeah, it doesn't really fit into the reset abstraction.

> Otherwise, please use 'devm_rpi_firmware_get()'.

Will do, thanks!
Maxime

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [PATCH 0/5] drm/vc4: Use the firmware to stop the display pipeline
@ 2021-12-03 13:50     ` Maxime Ripard
  0 siblings, 0 replies; 27+ messages in thread
From: Maxime Ripard @ 2021-12-03 13:50 UTC (permalink / raw)
  To: nicolas saenz julienne
  Cc: devicetree, Florian Fainelli, Tim Gover, Scott Branden,
	Dave Stevenson, David Airlie, Ray Jui, dri-devel, Rob Herring,
	bcm-kernel-feedback-list, linux-rpi-kernel, Thomas Zimmermann,
	Daniel Vetter, Frank Rowand, Phil Elwell, linux-arm-kernel,
	Dom Cobley

[-- Attachment #1: Type: text/plain, Size: 1438 bytes --]

Hi Nicolas,

On Tue, Nov 30, 2021 at 12:45:49PM +0100, nicolas saenz julienne wrote:
> On Wed, 2021-11-17 at 15:50 +0100, Maxime Ripard wrote:
> > The VC4 driver has had limited support to disable the HDMI controllers and
> > pixelvalves at boot if the firmware has enabled them.
> > 
> > However, this proved to be limited, and a bit unreliable so a new firmware
> > command has been introduced some time ago to make it free all its resources and
> > disable any display output it might have enabled.
> > 
> > This series takes advantage of that command to call it once the transition from
> > simplefb to the KMS driver has been done.
> 
> I think it would make sense to integrate this funtionality into
> 'reset/reset-raspberrypi.c' and pass it to VC4 as a reset controller. It fits
> the same startup situation as the one we have with the USB controller. Also, it
> would contain the firmware weirdness in a single spot.

I don't really think it makes sense. It's not really made for that
purpose, affects multiple devices (basically, all of the devices from
the display pipeline), and can even have some side effects on clocks and
memory. Plus, it can only be done once iirc, so a later call to reset
the pipeline will be ineffective, even if we changed its state.

So yeah, it doesn't really fit into the reset abstraction.

> Otherwise, please use 'devm_rpi_firmware_get()'.

Will do, thanks!
Maxime

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [PATCH 0/5] drm/vc4: Use the firmware to stop the display pipeline
@ 2021-12-03 13:50     ` Maxime Ripard
  0 siblings, 0 replies; 27+ messages in thread
From: Maxime Ripard @ 2021-12-03 13:50 UTC (permalink / raw)
  To: nicolas saenz julienne
  Cc: Scott Branden, Rob Herring, Frank Rowand, Ray Jui,
	Florian Fainelli, Daniel Vetter, David Airlie, Maarten Lankhorst,
	Thomas Zimmermann, linux-rpi-kernel, dri-devel, linux-arm-kernel,
	Dave Stevenson, Phil Elwell, Tim Gover, Dom Cobley, devicetree,
	bcm-kernel-feedback-list


[-- Attachment #1.1: Type: text/plain, Size: 1438 bytes --]

Hi Nicolas,

On Tue, Nov 30, 2021 at 12:45:49PM +0100, nicolas saenz julienne wrote:
> On Wed, 2021-11-17 at 15:50 +0100, Maxime Ripard wrote:
> > The VC4 driver has had limited support to disable the HDMI controllers and
> > pixelvalves at boot if the firmware has enabled them.
> > 
> > However, this proved to be limited, and a bit unreliable so a new firmware
> > command has been introduced some time ago to make it free all its resources and
> > disable any display output it might have enabled.
> > 
> > This series takes advantage of that command to call it once the transition from
> > simplefb to the KMS driver has been done.
> 
> I think it would make sense to integrate this funtionality into
> 'reset/reset-raspberrypi.c' and pass it to VC4 as a reset controller. It fits
> the same startup situation as the one we have with the USB controller. Also, it
> would contain the firmware weirdness in a single spot.

I don't really think it makes sense. It's not really made for that
purpose, affects multiple devices (basically, all of the devices from
the display pipeline), and can even have some side effects on clocks and
memory. Plus, it can only be done once iirc, so a later call to reset
the pipeline will be ineffective, even if we changed its state.

So yeah, it doesn't really fit into the reset abstraction.

> Otherwise, please use 'devm_rpi_firmware_get()'.

Will do, thanks!
Maxime

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

[-- Attachment #2: Type: text/plain, Size: 176 bytes --]

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 27+ messages in thread

end of thread, other threads:[~2021-12-03 13:52 UTC | newest]

Thread overview: 27+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-17 14:50 [PATCH 0/5] drm/vc4: Use the firmware to stop the display pipeline Maxime Ripard
2021-11-17 14:50 ` Maxime Ripard
2021-11-17 14:50 ` Maxime Ripard
2021-11-17 14:50 ` [PATCH 1/5] dt-bindings: display: vc4: Add optional phandle to firmware Maxime Ripard
2021-11-17 14:50   ` Maxime Ripard
2021-11-17 14:50   ` Maxime Ripard
2021-11-29 22:49   ` Rob Herring
2021-11-29 22:49     ` Rob Herring
2021-11-29 22:49     ` Rob Herring
2021-11-17 14:50 ` [PATCH 2/5] firmware: raspberrypi: Add RPI_FIRMWARE_NOTIFY_DISPLAY_DONE Maxime Ripard
2021-11-17 14:50   ` Maxime Ripard
2021-11-17 14:50   ` Maxime Ripard
2021-11-17 14:50 ` [PATCH 3/5] drm/vc4: Remove conflicting framebuffers before callind bind_all Maxime Ripard
2021-11-17 14:50   ` Maxime Ripard
2021-11-17 14:50   ` Maxime Ripard
2021-11-17 14:50 ` [PATCH 4/5] drm/vc4: Notify the firmware when DRM is in charge Maxime Ripard
2021-11-17 14:50   ` Maxime Ripard
2021-11-17 14:50   ` Maxime Ripard
2021-11-17 14:50 ` [PATCH 5/5] ARM: dts: rpi: Add the firmware node to vc4 Maxime Ripard
2021-11-17 14:50   ` Maxime Ripard
2021-11-17 14:50   ` Maxime Ripard
2021-11-30 11:45 ` [PATCH 0/5] drm/vc4: Use the firmware to stop the display pipeline nicolas saenz julienne
2021-11-30 11:45   ` nicolas saenz julienne
2021-11-30 11:45   ` nicolas saenz julienne
2021-12-03 13:50   ` Maxime Ripard
2021-12-03 13:50     ` Maxime Ripard
2021-12-03 13:50     ` Maxime Ripard

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.