drm/radeon/kms: dont't pass a radeon_connector to radeon_i2c_do_lock()
authorAlex Deucher <alexdeucher@gmail.com>
Thu, 5 Nov 2009 23:27:30 +0000 (18:27 -0500)
committerDave Airlie <airlied@redhat.com>
Wed, 2 Dec 2009 01:36:38 +0000 (11:36 +1000)
We need this for supporting things other than ddc on i2c.

Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
drivers/gpu/drm/radeon/radeon_connectors.c
drivers/gpu/drm/radeon/radeon_display.c
drivers/gpu/drm/radeon/radeon_i2c.c
drivers/gpu/drm/radeon/radeon_mode.h

index 29763ce..93f6a97 100644 (file)
@@ -445,10 +445,10 @@ static enum drm_connector_status radeon_lvds_detect(struct drm_connector *connec
                ret = connector_status_connected;
        else {
                if (radeon_connector->ddc_bus) {
-                       radeon_i2c_do_lock(radeon_connector, 1);
+                       radeon_i2c_do_lock(radeon_connector->ddc_bus, 1);
                        radeon_connector->edid = drm_get_edid(&radeon_connector->base,
                                                              &radeon_connector->ddc_bus->adapter);
-                       radeon_i2c_do_lock(radeon_connector, 0);
+                       radeon_i2c_do_lock(radeon_connector->ddc_bus, 0);
                        if (radeon_connector->edid)
                                ret = connector_status_connected;
                }
@@ -553,17 +553,17 @@ static enum drm_connector_status radeon_vga_detect(struct drm_connector *connect
        if (!encoder)
                ret = connector_status_disconnected;
 
-       radeon_i2c_do_lock(radeon_connector, 1);
+       radeon_i2c_do_lock(radeon_connector->ddc_bus, 1);
        dret = radeon_ddc_probe(radeon_connector);
-       radeon_i2c_do_lock(radeon_connector, 0);
+       radeon_i2c_do_lock(radeon_connector->ddc_bus, 0);
        if (dret) {
                if (radeon_connector->edid) {
                        kfree(radeon_connector->edid);
                        radeon_connector->edid = NULL;
                }
-               radeon_i2c_do_lock(radeon_connector, 1);
+               radeon_i2c_do_lock(radeon_connector->ddc_bus, 1);
                radeon_connector->edid = drm_get_edid(&radeon_connector->base, &radeon_connector->ddc_bus->adapter);
-               radeon_i2c_do_lock(radeon_connector, 0);
+               radeon_i2c_do_lock(radeon_connector->ddc_bus, 0);
 
                if (!radeon_connector->edid) {
                        DRM_ERROR("%s: probed a monitor but no|invalid EDID\n",
@@ -708,17 +708,17 @@ static enum drm_connector_status radeon_dvi_detect(struct drm_connector *connect
        enum drm_connector_status ret = connector_status_disconnected;
        bool dret;
 
-       radeon_i2c_do_lock(radeon_connector, 1);
+       radeon_i2c_do_lock(radeon_connector->ddc_bus, 1);
        dret = radeon_ddc_probe(radeon_connector);
-       radeon_i2c_do_lock(radeon_connector, 0);
+       radeon_i2c_do_lock(radeon_connector->ddc_bus, 0);
        if (dret) {
                if (radeon_connector->edid) {
                        kfree(radeon_connector->edid);
                        radeon_connector->edid = NULL;
                }
-               radeon_i2c_do_lock(radeon_connector, 1);
+               radeon_i2c_do_lock(radeon_connector->ddc_bus, 1);
                radeon_connector->edid = drm_get_edid(&radeon_connector->base, &radeon_connector->ddc_bus->adapter);
-               radeon_i2c_do_lock(radeon_connector, 0);
+               radeon_i2c_do_lock(radeon_connector->ddc_bus, 0);
 
                if (!radeon_connector->edid) {
                        DRM_ERROR("%s: probed a monitor but no|invalid EDID\n",
index c85df4a..a3def19 100644 (file)
@@ -339,9 +339,9 @@ int radeon_ddc_get_modes(struct radeon_connector *radeon_connector)
        if (!radeon_connector->ddc_bus)
                return -1;
        if (!radeon_connector->edid) {
-               radeon_i2c_do_lock(radeon_connector, 1);
+               radeon_i2c_do_lock(radeon_connector->ddc_bus, 1);
                radeon_connector->edid = drm_get_edid(&radeon_connector->base, &radeon_connector->ddc_bus->adapter);
-               radeon_i2c_do_lock(radeon_connector, 0);
+               radeon_i2c_do_lock(radeon_connector->ddc_bus, 0);
        }
 
        if (radeon_connector->edid) {
@@ -361,9 +361,9 @@ static int radeon_ddc_dump(struct drm_connector *connector)
 
        if (!radeon_connector->ddc_bus)
                return -1;
-       radeon_i2c_do_lock(radeon_connector, 1);
+       radeon_i2c_do_lock(radeon_connector->ddc_bus, 1);
        edid = drm_get_edid(connector, &radeon_connector->ddc_bus->adapter);
-       radeon_i2c_do_lock(radeon_connector, 0);
+       radeon_i2c_do_lock(radeon_connector->ddc_bus, 0);
        if (edid) {
                kfree(edid);
        }
index dd438d3..d8296ac 100644 (file)
@@ -59,11 +59,11 @@ bool radeon_ddc_probe(struct radeon_connector *radeon_connector)
 }
 
 
-void radeon_i2c_do_lock(struct radeon_connector *radeon_connector, int lock_state)
+void radeon_i2c_do_lock(struct radeon_i2c_chan *i2c, int lock_state)
 {
-       struct radeon_device *rdev = radeon_connector->base.dev->dev_private;
+       struct radeon_device *rdev = i2c->dev->dev_private;
+       struct radeon_i2c_bus_rec *rec = &i2c->rec;
        uint32_t temp;
-       struct radeon_i2c_bus_rec *rec = &radeon_connector->ddc_bus->rec;
 
        /* RV410 appears to have a bug where the hw i2c in reset
         * holds the i2c port in a bad state - switch hw i2c away before
@@ -156,8 +156,8 @@ static void set_data(void *i2c_priv, int data)
 }
 
 struct radeon_i2c_chan *radeon_i2c_create(struct drm_device *dev,
-               struct radeon_i2c_bus_rec *rec,
-               const char *name)
+                                         struct radeon_i2c_bus_rec *rec,
+                                         const char *name)
 {
        struct radeon_i2c_chan *i2c;
        int ret;
index ace726a..491a1ec 100644 (file)
@@ -426,7 +426,7 @@ void radeon_atombios_init_crtc(struct drm_device *dev,
                               struct radeon_crtc *radeon_crtc);
 void radeon_legacy_init_crtc(struct drm_device *dev,
                             struct radeon_crtc *radeon_crtc);
-void radeon_i2c_do_lock(struct radeon_connector *radeon_connector, int lock_state);
+extern void radeon_i2c_do_lock(struct radeon_i2c_chan *i2c, int lock_state);
 
 void radeon_get_clock_info(struct drm_device *dev);