Use the ddc pointer provided by the generic connector.

Signed-off-by: Andrzej Pietrasiewicz <andrze...@collabora.com>
---
 drivers/gpu/drm/zte/zx_hdmi.c | 25 +++++++++----------------
 1 file changed, 9 insertions(+), 16 deletions(-)

diff --git a/drivers/gpu/drm/zte/zx_hdmi.c b/drivers/gpu/drm/zte/zx_hdmi.c
index bfe918b27c5c..862a855ea14a 100644
--- a/drivers/gpu/drm/zte/zx_hdmi.c
+++ b/drivers/gpu/drm/zte/zx_hdmi.c
@@ -29,15 +29,11 @@
 #define ZX_HDMI_INFOFRAME_SIZE         31
 #define DDC_SEGMENT_ADDR               0x30
 
-struct zx_hdmi_i2c {
-       struct i2c_adapter adap;
-       struct mutex lock;
-};
-
 struct zx_hdmi {
        struct drm_connector connector;
        struct drm_encoder encoder;
-       struct zx_hdmi_i2c *ddc;
+       /* protects ddc access */
+       struct mutex ddc_lock;
        struct device *dev;
        struct drm_device *drm;
        void __iomem *mmio;
@@ -264,7 +260,7 @@ static int zx_hdmi_connector_get_modes(struct drm_connector 
*connector)
        struct edid *edid;
        int ret;
 
-       edid = drm_get_edid(connector, &hdmi->ddc->adap);
+       edid = drm_get_edid(connector, connector->ddc);
        if (!edid)
                return 0;
 
@@ -562,10 +558,9 @@ static int zx_hdmi_i2c_xfer(struct i2c_adapter *adap, 
struct i2c_msg *msgs,
                            int num)
 {
        struct zx_hdmi *hdmi = i2c_get_adapdata(adap);
-       struct zx_hdmi_i2c *ddc = hdmi->ddc;
        int i, ret = 0;
 
-       mutex_lock(&ddc->lock);
+       mutex_lock(&hdmi->ddc_lock);
 
        /* Enable DDC master access */
        hdmi_writeb_mask(hdmi, TPI_DDC_MASTER_EN, HW_DDC_MASTER, HW_DDC_MASTER);
@@ -590,7 +585,7 @@ static int zx_hdmi_i2c_xfer(struct i2c_adapter *adap, 
struct i2c_msg *msgs,
        /* Disable DDC master access */
        hdmi_writeb_mask(hdmi, TPI_DDC_MASTER_EN, HW_DDC_MASTER, 0);
 
-       mutex_unlock(&ddc->lock);
+       mutex_unlock(&hdmi->ddc_lock);
 
        return ret;
 }
@@ -608,17 +603,15 @@ static const struct i2c_algorithm zx_hdmi_algorithm = {
 static int zx_hdmi_ddc_register(struct zx_hdmi *hdmi)
 {
        struct i2c_adapter *adap;
-       struct zx_hdmi_i2c *ddc;
        int ret;
 
-       ddc = devm_kzalloc(hdmi->dev, sizeof(*ddc), GFP_KERNEL);
-       if (!ddc)
+       adap = devm_kzalloc(hdmi->dev, sizeof(*adap), GFP_KERNEL);
+       if (!adap)
                return -ENOMEM;
 
-       hdmi->ddc = ddc;
-       mutex_init(&ddc->lock);
+       hdmi->connector.ddc = adap;
+       mutex_init(&hdmi->ddc_lock);
 
-       adap = &ddc->adap;
        adap->owner = THIS_MODULE;
        adap->class = I2C_CLASS_DDC;
        adap->dev.parent = hdmi->dev;
-- 
2.17.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to