]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/video/intelfb/intelfb_i2c.c
i2c: Let framebuffer drivers set their I2C bus class to DDC
[linux-2.6-omap-h63xx.git] / drivers / video / intelfb / intelfb_i2c.c
index ca95f09d8b43f7e9f88ddf7681e361f386493c0c..fcf9fadbf5722d328f521af00aa8fe5675e16da0 100644 (file)
@@ -100,7 +100,8 @@ static int intelfb_gpio_getsda(void *data)
 
 static int intelfb_setup_i2c_bus(struct intelfb_info *dinfo,
                                 struct intelfb_i2c_chan *chan,
-                                const u32 reg, const char *name)
+                                const u32 reg, const char *name,
+                                int class)
 {
        int rc;
 
@@ -108,6 +109,7 @@ static int intelfb_setup_i2c_bus(struct intelfb_info *dinfo,
        chan->reg                       = reg;
        snprintf(chan->adapter.name, sizeof(chan->adapter.name),
                 "intelfb %s", name);
+       chan->adapter.class             = class;
        chan->adapter.owner             = THIS_MODULE;
        chan->adapter.id                = I2C_HW_B_INTELFB;
        chan->adapter.algo_data         = &chan->algo;
@@ -145,7 +147,7 @@ void intelfb_create_i2c_busses(struct intelfb_info *dinfo)
 
        /* setup the DDC bus for analog output */
        intelfb_setup_i2c_bus(dinfo, &dinfo->output[i].ddc_bus, GPIOA,
-                             "CRTDDC_A");
+                             "CRTDDC_A", I2C_CLASS_DDC);
        i++;
 
        /* need to add the output busses for each device
@@ -159,9 +161,9 @@ void intelfb_create_i2c_busses(struct intelfb_info *dinfo)
        case INTEL_865G:
                dinfo->output[i].type = INTELFB_OUTPUT_DVO;
                intelfb_setup_i2c_bus(dinfo, &dinfo->output[i].ddc_bus,
-                                     GPIOD, "DVODDC_D");
+                                     GPIOD, "DVODDC_D", I2C_CLASS_DDC);
                intelfb_setup_i2c_bus(dinfo, &dinfo->output[i].i2c_bus,
-                                     GPIOE, "DVOI2C_E");
+                                     GPIOE, "DVOI2C_E", 0);
                i++;
                break;
        case INTEL_915G:
@@ -174,7 +176,7 @@ void intelfb_create_i2c_busses(struct intelfb_info *dinfo)
                /* SDVO ports have a single control bus - 2 devices */
                dinfo->output[i].type = INTELFB_OUTPUT_SDVO;
                intelfb_setup_i2c_bus(dinfo, &dinfo->output[i].i2c_bus,
-                                     GPIOE, "SDVOCTRL_E");
+                                     GPIOE, "SDVOCTRL_E", 0);
                /* TODO: initialize the SDVO */
                /* I830SDVOInit(pScrn, i, DVOB); */
                i++;