|
@@ -104,7 +104,9 @@ static struct i2c_algo_bit_data matrox_i2c_algo_template =
|
|
|
};
|
|
|
|
|
|
static int i2c_bus_reg(struct i2c_bit_adapter* b, struct matrox_fb_info* minfo,
|
|
|
- unsigned int data, unsigned int clock, const char* name) {
|
|
|
+ unsigned int data, unsigned int clock, const char *name,
|
|
|
+ int class)
|
|
|
+{
|
|
|
int err;
|
|
|
|
|
|
b->minfo = minfo;
|
|
@@ -114,6 +116,7 @@ static int i2c_bus_reg(struct i2c_bit_adapter* b, struct matrox_fb_info* minfo,
|
|
|
snprintf(b->adapter.name, sizeof(b->adapter.name), name,
|
|
|
minfo->fbcon.node);
|
|
|
i2c_set_adapdata(&b->adapter, b);
|
|
|
+ b->adapter.class = class;
|
|
|
b->adapter.algo_data = &b->bac;
|
|
|
b->adapter.dev.parent = &ACCESS_FBINFO(pcidev)->dev;
|
|
|
b->bac = matrox_i2c_algo_template;
|
|
@@ -159,22 +162,29 @@ static void* i2c_matroxfb_probe(struct matrox_fb_info* minfo) {
|
|
|
switch (ACCESS_FBINFO(chip)) {
|
|
|
case MGA_2064:
|
|
|
case MGA_2164:
|
|
|
- err = i2c_bus_reg(&m2info->ddc1, minfo, DDC1B_DATA, DDC1B_CLK, "DDC:fb%u #0");
|
|
|
+ err = i2c_bus_reg(&m2info->ddc1, minfo,
|
|
|
+ DDC1B_DATA, DDC1B_CLK,
|
|
|
+ "DDC:fb%u #0", I2C_CLASS_DDC);
|
|
|
break;
|
|
|
default:
|
|
|
- err = i2c_bus_reg(&m2info->ddc1, minfo, DDC1_DATA, DDC1_CLK, "DDC:fb%u #0");
|
|
|
+ err = i2c_bus_reg(&m2info->ddc1, minfo,
|
|
|
+ DDC1_DATA, DDC1_CLK,
|
|
|
+ "DDC:fb%u #0", I2C_CLASS_DDC);
|
|
|
break;
|
|
|
}
|
|
|
if (err)
|
|
|
goto fail_ddc1;
|
|
|
if (ACCESS_FBINFO(devflags.dualhead)) {
|
|
|
- err = i2c_bus_reg(&m2info->ddc2, minfo, DDC2_DATA, DDC2_CLK, "DDC:fb%u #1");
|
|
|
+ err = i2c_bus_reg(&m2info->ddc2, minfo,
|
|
|
+ DDC2_DATA, DDC2_CLK,
|
|
|
+ "DDC:fb%u #1", I2C_CLASS_DDC);
|
|
|
if (err == -ENODEV) {
|
|
|
printk(KERN_INFO "i2c-matroxfb: VGA->TV plug detected, DDC unavailable.\n");
|
|
|
} else if (err)
|
|
|
printk(KERN_INFO "i2c-matroxfb: Could not register secondary output i2c bus. Continuing anyway.\n");
|
|
|
/* Register maven bus even on G450/G550 */
|
|
|
- err = i2c_bus_reg(&m2info->maven, minfo, MAT_DATA, MAT_CLK, "MAVEN:fb%u");
|
|
|
+ err = i2c_bus_reg(&m2info->maven, minfo,
|
|
|
+ MAT_DATA, MAT_CLK, "MAVEN:fb%u", 0);
|
|
|
if (err)
|
|
|
printk(KERN_INFO "i2c-matroxfb: Could not register Maven i2c bus. Continuing anyway.\n");
|
|
|
}
|