hc
2024-01-03 2f7c68cb55ecb7331f2381deb497c27155f32faf
kernel/drivers/gpu/drm/msm/hdmi/hdmi.h
....@@ -19,16 +19,8 @@
1919 #include "msm_drv.h"
2020 #include "hdmi.xml.h"
2121
22
-#define HDMI_MAX_NUM_GPIO 6
23
-
2422 struct hdmi_phy;
2523 struct hdmi_platform_config;
26
-
27
-struct hdmi_gpio_data {
28
- struct gpio_desc *gpiod;
29
- bool output;
30
- int value;
31
-};
3224
3325 struct hdmi_audio {
3426 bool enabled;
....@@ -60,6 +52,8 @@
6052 struct regulator **pwr_regs;
6153 struct clk **hpd_clks;
6254 struct clk **pwr_clks;
55
+
56
+ struct gpio_desc *hpd_gpiod;
6357
6458 struct hdmi_phy *phy;
6559 struct device *phy_dev;
....@@ -109,10 +103,14 @@
109103 /* clks that need to be on for screen pwr (ie pixel clk): */
110104 const char **pwr_clk_names;
111105 int pwr_clk_cnt;
112
-
113
- /* gpio's: */
114
- struct hdmi_gpio_data gpios[HDMI_MAX_NUM_GPIO];
115106 };
107
+
108
+struct hdmi_bridge {
109
+ struct drm_bridge base;
110
+ struct hdmi *hdmi;
111
+ struct work_struct hpd_work;
112
+};
113
+#define to_hdmi_bridge(x) container_of(x, struct hdmi_bridge, base)
116114
117115 void msm_hdmi_set_mode(struct hdmi *hdmi, bool power_on);
118116
....@@ -230,13 +228,11 @@
230228 struct drm_bridge *msm_hdmi_bridge_init(struct hdmi *hdmi);
231229 void msm_hdmi_bridge_destroy(struct drm_bridge *bridge);
232230
233
-/*
234
- * hdmi connector:
235
- */
236
-
237
-void msm_hdmi_connector_irq(struct drm_connector *connector);
238
-struct drm_connector *msm_hdmi_connector_init(struct hdmi *hdmi);
239
-int msm_hdmi_hpd_enable(struct drm_connector *connector);
231
+void msm_hdmi_hpd_irq(struct drm_bridge *bridge);
232
+enum drm_connector_status msm_hdmi_bridge_detect(
233
+ struct drm_bridge *bridge);
234
+int msm_hdmi_hpd_enable(struct drm_bridge *bridge);
235
+void msm_hdmi_hpd_disable(struct hdmi_bridge *hdmi_bridge);
240236
241237 /*
242238 * i2c adapter for ddc: