Also removes random module and switches to new bcm2711 thermal driver. Boot tested on RPi 4B v1.1 4G. Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
		
			
				
	
	
		
			196 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			196 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
From 13bb65d33681b0095214033a5e80186faa325854 Mon Sep 17 00:00:00 2001
 | 
						|
From: Maxime Ripard <maxime@cerno.tech>
 | 
						|
Date: Wed, 18 Dec 2019 18:35:12 +0100
 | 
						|
Subject: [PATCH] drm/vc4: hdmi: Move structure to header
 | 
						|
 | 
						|
We will need to share the vc4_hdmi and related structures with multiple
 | 
						|
files, so let's create a header for it.
 | 
						|
 | 
						|
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
 | 
						|
---
 | 
						|
 drivers/gpu/drm/vc4/vc4_hdmi.c | 76 +-----------------------------
 | 
						|
 drivers/gpu/drm/vc4/vc4_hdmi.h | 86 ++++++++++++++++++++++++++++++++++
 | 
						|
 2 files changed, 87 insertions(+), 75 deletions(-)
 | 
						|
 create mode 100644 drivers/gpu/drm/vc4/vc4_hdmi.h
 | 
						|
 | 
						|
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
 | 
						|
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
 | 
						|
@@ -48,87 +48,13 @@
 | 
						|
 #include <sound/soc.h>
 | 
						|
 #include "media/cec.h"
 | 
						|
 #include "vc4_drv.h"
 | 
						|
+#include "vc4_hdmi.h"
 | 
						|
 #include "vc4_regs.h"
 | 
						|
 
 | 
						|
 #define HSM_CLOCK_FREQ 163682864
 | 
						|
 #define CEC_CLOCK_FREQ 40000
 | 
						|
 #define CEC_CLOCK_DIV  (HSM_CLOCK_FREQ / CEC_CLOCK_FREQ)
 | 
						|
 
 | 
						|
-/* HDMI audio information */
 | 
						|
-struct vc4_hdmi_audio {
 | 
						|
-	struct snd_soc_card card;
 | 
						|
-	struct snd_soc_dai_link link;
 | 
						|
-	struct snd_soc_dai_link_component cpu;
 | 
						|
-	struct snd_soc_dai_link_component codec;
 | 
						|
-	struct snd_soc_dai_link_component platform;
 | 
						|
-	int samplerate;
 | 
						|
-	int channels;
 | 
						|
-	struct snd_dmaengine_dai_dma_data dma_data;
 | 
						|
-	struct snd_pcm_substream *substream;
 | 
						|
-};
 | 
						|
-
 | 
						|
-/* General HDMI hardware state. */
 | 
						|
-struct vc4_hdmi {
 | 
						|
-	struct platform_device *pdev;
 | 
						|
-
 | 
						|
-	struct drm_encoder *encoder;
 | 
						|
-	struct drm_connector *connector;
 | 
						|
-
 | 
						|
-	struct vc4_hdmi_audio audio;
 | 
						|
-
 | 
						|
-	struct i2c_adapter *ddc;
 | 
						|
-	void __iomem *hdmicore_regs;
 | 
						|
-	void __iomem *hd_regs;
 | 
						|
-	int hpd_gpio;
 | 
						|
-	bool hpd_active_low;
 | 
						|
-
 | 
						|
-	struct cec_adapter *cec_adap;
 | 
						|
-	struct cec_msg cec_rx_msg;
 | 
						|
-	bool cec_tx_ok;
 | 
						|
-	bool cec_irq_was_rx;
 | 
						|
-
 | 
						|
-	struct clk *pixel_clock;
 | 
						|
-	struct clk *hsm_clock;
 | 
						|
-
 | 
						|
-	struct debugfs_regset32 hdmi_regset;
 | 
						|
-	struct debugfs_regset32 hd_regset;
 | 
						|
-};
 | 
						|
-
 | 
						|
-#define HDMI_READ(offset) readl(vc4->hdmi->hdmicore_regs + offset)
 | 
						|
-#define HDMI_WRITE(offset, val) writel(val, vc4->hdmi->hdmicore_regs + offset)
 | 
						|
-#define HD_READ(offset) readl(vc4->hdmi->hd_regs + offset)
 | 
						|
-#define HD_WRITE(offset, val) writel(val, vc4->hdmi->hd_regs + offset)
 | 
						|
-
 | 
						|
-/* VC4 HDMI encoder KMS struct */
 | 
						|
-struct vc4_hdmi_encoder {
 | 
						|
-	struct vc4_encoder base;
 | 
						|
-	bool hdmi_monitor;
 | 
						|
-	bool limited_rgb_range;
 | 
						|
-};
 | 
						|
-
 | 
						|
-static inline struct vc4_hdmi_encoder *
 | 
						|
-to_vc4_hdmi_encoder(struct drm_encoder *encoder)
 | 
						|
-{
 | 
						|
-	return container_of(encoder, struct vc4_hdmi_encoder, base.base);
 | 
						|
-}
 | 
						|
-
 | 
						|
-/* VC4 HDMI connector KMS struct */
 | 
						|
-struct vc4_hdmi_connector {
 | 
						|
-	struct drm_connector base;
 | 
						|
-
 | 
						|
-	/* Since the connector is attached to just the one encoder,
 | 
						|
-	 * this is the reference to it so we can do the best_encoder()
 | 
						|
-	 * hook.
 | 
						|
-	 */
 | 
						|
-	struct drm_encoder *encoder;
 | 
						|
-};
 | 
						|
-
 | 
						|
-static inline struct vc4_hdmi_connector *
 | 
						|
-to_vc4_hdmi_connector(struct drm_connector *connector)
 | 
						|
-{
 | 
						|
-	return container_of(connector, struct vc4_hdmi_connector, base);
 | 
						|
-}
 | 
						|
-
 | 
						|
 static const struct debugfs_reg32 hdmi_regs[] = {
 | 
						|
 	VC4_REG32(VC4_HDMI_CORE_REV),
 | 
						|
 	VC4_REG32(VC4_HDMI_SW_RESET_CONTROL),
 | 
						|
--- /dev/null
 | 
						|
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.h
 | 
						|
@@ -0,0 +1,86 @@
 | 
						|
+#ifndef _VC4_HDMI_H_
 | 
						|
+#define _VC4_HDMI_H_
 | 
						|
+
 | 
						|
+#include <drm/drm_connector.h>
 | 
						|
+#include <media/cec.h>
 | 
						|
+#include <sound/dmaengine_pcm.h>
 | 
						|
+#include <sound/soc.h>
 | 
						|
+
 | 
						|
+#include "vc4_drv.h"
 | 
						|
+
 | 
						|
+/* HDMI audio information */
 | 
						|
+struct vc4_hdmi_audio {
 | 
						|
+	struct snd_soc_card card;
 | 
						|
+	struct snd_soc_dai_link link;
 | 
						|
+	struct snd_soc_dai_link_component cpu;
 | 
						|
+	struct snd_soc_dai_link_component codec;
 | 
						|
+	struct snd_soc_dai_link_component platform;
 | 
						|
+	int samplerate;
 | 
						|
+	int channels;
 | 
						|
+	struct snd_dmaengine_dai_dma_data dma_data;
 | 
						|
+	struct snd_pcm_substream *substream;
 | 
						|
+};
 | 
						|
+
 | 
						|
+/* General HDMI hardware state. */
 | 
						|
+struct vc4_hdmi {
 | 
						|
+	struct platform_device *pdev;
 | 
						|
+
 | 
						|
+	struct drm_encoder *encoder;
 | 
						|
+	struct drm_connector *connector;
 | 
						|
+
 | 
						|
+	struct vc4_hdmi_audio audio;
 | 
						|
+
 | 
						|
+	struct i2c_adapter *ddc;
 | 
						|
+	void __iomem *hdmicore_regs;
 | 
						|
+	void __iomem *hd_regs;
 | 
						|
+	int hpd_gpio;
 | 
						|
+	bool hpd_active_low;
 | 
						|
+
 | 
						|
+	struct cec_adapter *cec_adap;
 | 
						|
+	struct cec_msg cec_rx_msg;
 | 
						|
+	bool cec_tx_ok;
 | 
						|
+	bool cec_irq_was_rx;
 | 
						|
+
 | 
						|
+	struct clk *pixel_clock;
 | 
						|
+	struct clk *hsm_clock;
 | 
						|
+
 | 
						|
+	struct debugfs_regset32 hdmi_regset;
 | 
						|
+	struct debugfs_regset32 hd_regset;
 | 
						|
+};
 | 
						|
+
 | 
						|
+#define HDMI_READ(offset) readl(vc4->hdmi->hdmicore_regs + offset)
 | 
						|
+#define HDMI_WRITE(offset, val) writel(val, vc4->hdmi->hdmicore_regs + offset)
 | 
						|
+#define HD_READ(offset) readl(vc4->hdmi->hd_regs + offset)
 | 
						|
+#define HD_WRITE(offset, val) writel(val, vc4->hdmi->hd_regs + offset)
 | 
						|
+
 | 
						|
+/* VC4 HDMI encoder KMS struct */
 | 
						|
+struct vc4_hdmi_encoder {
 | 
						|
+	struct vc4_encoder base;
 | 
						|
+	bool hdmi_monitor;
 | 
						|
+	bool limited_rgb_range;
 | 
						|
+};
 | 
						|
+
 | 
						|
+static inline struct vc4_hdmi_encoder *
 | 
						|
+to_vc4_hdmi_encoder(struct drm_encoder *encoder)
 | 
						|
+{
 | 
						|
+	return container_of(encoder, struct vc4_hdmi_encoder, base.base);
 | 
						|
+}
 | 
						|
+
 | 
						|
+/* VC4 HDMI connector KMS struct */
 | 
						|
+struct vc4_hdmi_connector {
 | 
						|
+	struct drm_connector base;
 | 
						|
+
 | 
						|
+	/* Since the connector is attached to just the one encoder,
 | 
						|
+	 * this is the reference to it so we can do the best_encoder()
 | 
						|
+	 * hook.
 | 
						|
+	 */
 | 
						|
+	struct drm_encoder *encoder;
 | 
						|
+};
 | 
						|
+
 | 
						|
+static inline struct vc4_hdmi_connector *
 | 
						|
+to_vc4_hdmi_connector(struct drm_connector *connector)
 | 
						|
+{
 | 
						|
+	return container_of(connector, struct vc4_hdmi_connector, base);
 | 
						|
+}
 | 
						|
+
 | 
						|
+#endif /* _VC4_HDMI_H_ */
 |