Commit 754bd2ff authored by Heiner Kallweit's avatar Heiner Kallweit Committed by Wolfram Sang

fbdev: remove I2C_CLASS_DDC support

After removal of the legacy EEPROM driver and I2C_CLASS_DDC support in
olpc_dcon there's no i2c client driver left supporting I2C_CLASS_DDC.
Class-based device auto-detection is a legacy mechanism and shouldn't
be used in new code. So we can remove this class completely now.
Acked-by: default avatarHelge Deller <deller@gmx.de>
Acked-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
Signed-off-by: default avatarHeiner Kallweit <hkallweit1@gmail.com>
Signed-off-by: default avatarWolfram Sang <wsa@kernel.org>
parent e965a707
...@@ -116,7 +116,6 @@ unsigned char *fb_ddc_read(struct i2c_adapter *adapter) ...@@ -116,7 +116,6 @@ unsigned char *fb_ddc_read(struct i2c_adapter *adapter)
algo_data->setsda(algo_data->data, 1); algo_data->setsda(algo_data->data, 1);
algo_data->setscl(algo_data->data, 1); algo_data->setscl(algo_data->data, 1);
adapter->class |= I2C_CLASS_DDC;
return edid; return edid;
} }
......
...@@ -1234,7 +1234,6 @@ static int cyber2000fb_setup_ddc_bus(struct cfb_info *cfb) ...@@ -1234,7 +1234,6 @@ static int cyber2000fb_setup_ddc_bus(struct cfb_info *cfb)
strscpy(cfb->ddc_adapter.name, cfb->fb.fix.id, strscpy(cfb->ddc_adapter.name, cfb->fb.fix.id,
sizeof(cfb->ddc_adapter.name)); sizeof(cfb->ddc_adapter.name));
cfb->ddc_adapter.owner = THIS_MODULE; cfb->ddc_adapter.owner = THIS_MODULE;
cfb->ddc_adapter.class = I2C_CLASS_DDC;
cfb->ddc_adapter.algo_data = &cfb->ddc_algo; cfb->ddc_adapter.algo_data = &cfb->ddc_algo;
cfb->ddc_adapter.dev.parent = cfb->fb.device; cfb->ddc_adapter.dev.parent = cfb->fb.device;
cfb->ddc_algo.setsda = cyber2000fb_ddc_setsda; cfb->ddc_algo.setsda = cyber2000fb_ddc_setsda;
......
...@@ -163,7 +163,6 @@ static int i740fb_setup_ddc_bus(struct fb_info *info) ...@@ -163,7 +163,6 @@ static int i740fb_setup_ddc_bus(struct fb_info *info)
strscpy(par->ddc_adapter.name, info->fix.id, strscpy(par->ddc_adapter.name, info->fix.id,
sizeof(par->ddc_adapter.name)); sizeof(par->ddc_adapter.name));
par->ddc_adapter.owner = THIS_MODULE; par->ddc_adapter.owner = THIS_MODULE;
par->ddc_adapter.class = I2C_CLASS_DDC;
par->ddc_adapter.algo_data = &par->ddc_algo; par->ddc_adapter.algo_data = &par->ddc_algo;
par->ddc_adapter.dev.parent = info->device; par->ddc_adapter.dev.parent = info->device;
par->ddc_algo.setsda = i740fb_ddc_setsda; par->ddc_algo.setsda = i740fb_ddc_setsda;
......
...@@ -99,8 +99,7 @@ static int intelfb_gpio_getsda(void *data) ...@@ -99,8 +99,7 @@ static int intelfb_gpio_getsda(void *data)
static int intelfb_setup_i2c_bus(struct intelfb_info *dinfo, static int intelfb_setup_i2c_bus(struct intelfb_info *dinfo,
struct intelfb_i2c_chan *chan, struct intelfb_i2c_chan *chan,
const u32 reg, const char *name, const u32 reg, const char *name)
int class)
{ {
int rc; int rc;
...@@ -108,7 +107,6 @@ static int intelfb_setup_i2c_bus(struct intelfb_info *dinfo, ...@@ -108,7 +107,6 @@ static int intelfb_setup_i2c_bus(struct intelfb_info *dinfo,
chan->reg = reg; chan->reg = reg;
snprintf(chan->adapter.name, sizeof(chan->adapter.name), snprintf(chan->adapter.name, sizeof(chan->adapter.name),
"intelfb %s", name); "intelfb %s", name);
chan->adapter.class = class;
chan->adapter.owner = THIS_MODULE; chan->adapter.owner = THIS_MODULE;
chan->adapter.algo_data = &chan->algo; chan->adapter.algo_data = &chan->algo;
chan->adapter.dev.parent = &chan->dinfo->pdev->dev; chan->adapter.dev.parent = &chan->dinfo->pdev->dev;
...@@ -144,8 +142,7 @@ void intelfb_create_i2c_busses(struct intelfb_info *dinfo) ...@@ -144,8 +142,7 @@ void intelfb_create_i2c_busses(struct intelfb_info *dinfo)
dinfo->output[i].type = INTELFB_OUTPUT_ANALOG; dinfo->output[i].type = INTELFB_OUTPUT_ANALOG;
/* setup the DDC bus for analog output */ /* setup the DDC bus for analog output */
intelfb_setup_i2c_bus(dinfo, &dinfo->output[i].ddc_bus, GPIOA, intelfb_setup_i2c_bus(dinfo, &dinfo->output[i].ddc_bus, GPIOA, "CRTDDC_A");
"CRTDDC_A", I2C_CLASS_DDC);
i++; i++;
/* need to add the output busses for each device /* need to add the output busses for each device
...@@ -159,10 +156,8 @@ void intelfb_create_i2c_busses(struct intelfb_info *dinfo) ...@@ -159,10 +156,8 @@ void intelfb_create_i2c_busses(struct intelfb_info *dinfo)
case INTEL_855GM: case INTEL_855GM:
case INTEL_865G: case INTEL_865G:
dinfo->output[i].type = INTELFB_OUTPUT_DVO; dinfo->output[i].type = INTELFB_OUTPUT_DVO;
intelfb_setup_i2c_bus(dinfo, &dinfo->output[i].ddc_bus, 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");
intelfb_setup_i2c_bus(dinfo, &dinfo->output[i].i2c_bus,
GPIOE, "DVOI2C_E", 0);
i++; i++;
break; break;
case INTEL_915G: case INTEL_915G:
...@@ -176,7 +171,7 @@ void intelfb_create_i2c_busses(struct intelfb_info *dinfo) ...@@ -176,7 +171,7 @@ void intelfb_create_i2c_busses(struct intelfb_info *dinfo)
/* SDVO ports have a single control bus - 2 devices */ /* SDVO ports have a single control bus - 2 devices */
dinfo->output[i].type = INTELFB_OUTPUT_SDVO; dinfo->output[i].type = INTELFB_OUTPUT_SDVO;
intelfb_setup_i2c_bus(dinfo, &dinfo->output[i].i2c_bus, intelfb_setup_i2c_bus(dinfo, &dinfo->output[i].i2c_bus,
GPIOE, "SDVOCTRL_E", 0); GPIOE, "SDVOCTRL_E");
/* TODO: initialize the SDVO */ /* TODO: initialize the SDVO */
/* I830SDVOInit(pScrn, i, DVOB); */ /* I830SDVOInit(pScrn, i, DVOB); */
i++; i++;
......
...@@ -100,8 +100,7 @@ static const struct i2c_algo_bit_data matrox_i2c_algo_template = ...@@ -100,8 +100,7 @@ static const struct i2c_algo_bit_data matrox_i2c_algo_template =
}; };
static int i2c_bus_reg(struct i2c_bit_adapter* b, struct matrox_fb_info* minfo, 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; int err;
...@@ -112,7 +111,6 @@ static int i2c_bus_reg(struct i2c_bit_adapter* b, struct matrox_fb_info* minfo, ...@@ -112,7 +111,6 @@ static int i2c_bus_reg(struct i2c_bit_adapter* b, struct matrox_fb_info* minfo,
snprintf(b->adapter.name, sizeof(b->adapter.name), name, snprintf(b->adapter.name, sizeof(b->adapter.name), name,
minfo->fbcon.node); minfo->fbcon.node);
i2c_set_adapdata(&b->adapter, b); i2c_set_adapdata(&b->adapter, b);
b->adapter.class = class;
b->adapter.algo_data = &b->bac; b->adapter.algo_data = &b->bac;
b->adapter.dev.parent = &minfo->pcidev->dev; b->adapter.dev.parent = &minfo->pcidev->dev;
b->bac = matrox_i2c_algo_template; b->bac = matrox_i2c_algo_template;
...@@ -160,27 +158,24 @@ static void* i2c_matroxfb_probe(struct matrox_fb_info* minfo) { ...@@ -160,27 +158,24 @@ static void* i2c_matroxfb_probe(struct matrox_fb_info* minfo) {
case MGA_2164: case MGA_2164:
err = i2c_bus_reg(&m2info->ddc1, minfo, err = i2c_bus_reg(&m2info->ddc1, minfo,
DDC1B_DATA, DDC1B_CLK, DDC1B_DATA, DDC1B_CLK,
"DDC:fb%u #0", I2C_CLASS_DDC); "DDC:fb%u #0");
break; break;
default: default:
err = i2c_bus_reg(&m2info->ddc1, minfo, err = i2c_bus_reg(&m2info->ddc1, minfo,
DDC1_DATA, DDC1_CLK, DDC1_DATA, DDC1_CLK,
"DDC:fb%u #0", I2C_CLASS_DDC); "DDC:fb%u #0");
break; break;
} }
if (err) if (err)
goto fail_ddc1; goto fail_ddc1;
if (minfo->devflags.dualhead) { if (minfo->devflags.dualhead) {
err = i2c_bus_reg(&m2info->ddc2, minfo, err = i2c_bus_reg(&m2info->ddc2, minfo, DDC2_DATA, DDC2_CLK, "DDC:fb%u #1");
DDC2_DATA, DDC2_CLK,
"DDC:fb%u #1", I2C_CLASS_DDC);
if (err == -ENODEV) { if (err == -ENODEV) {
printk(KERN_INFO "i2c-matroxfb: VGA->TV plug detected, DDC unavailable.\n"); printk(KERN_INFO "i2c-matroxfb: VGA->TV plug detected, DDC unavailable.\n");
} else if (err) } else if (err)
printk(KERN_INFO "i2c-matroxfb: Could not register secondary output i2c bus. Continuing anyway.\n"); printk(KERN_INFO "i2c-matroxfb: Could not register secondary output i2c bus. Continuing anyway.\n");
/* Register maven bus even on G450/G550 */ /* Register maven bus even on G450/G550 */
err = i2c_bus_reg(&m2info->maven, minfo, err = i2c_bus_reg(&m2info->maven, minfo, MAT_DATA, MAT_CLK, "MAVEN:fb%u");
MAT_DATA, MAT_CLK, "MAVEN:fb%u", 0);
if (err) if (err)
printk(KERN_INFO "i2c-matroxfb: Could not register Maven i2c bus. Continuing anyway.\n"); printk(KERN_INFO "i2c-matroxfb: Could not register Maven i2c bus. Continuing anyway.\n");
else { else {
......
...@@ -252,7 +252,6 @@ static int s3fb_setup_ddc_bus(struct fb_info *info) ...@@ -252,7 +252,6 @@ static int s3fb_setup_ddc_bus(struct fb_info *info)
strscpy(par->ddc_adapter.name, info->fix.id, strscpy(par->ddc_adapter.name, info->fix.id,
sizeof(par->ddc_adapter.name)); sizeof(par->ddc_adapter.name));
par->ddc_adapter.owner = THIS_MODULE; par->ddc_adapter.owner = THIS_MODULE;
par->ddc_adapter.class = I2C_CLASS_DDC;
par->ddc_adapter.algo_data = &par->ddc_algo; par->ddc_adapter.algo_data = &par->ddc_algo;
par->ddc_adapter.dev.parent = info->device; par->ddc_adapter.dev.parent = info->device;
par->ddc_algo.setsda = s3fb_ddc_setsda; par->ddc_algo.setsda = s3fb_ddc_setsda;
......
...@@ -1267,7 +1267,6 @@ static int tdfxfb_setup_ddc_bus(struct tdfxfb_i2c_chan *chan, const char *name, ...@@ -1267,7 +1267,6 @@ static int tdfxfb_setup_ddc_bus(struct tdfxfb_i2c_chan *chan, const char *name,
strscpy(chan->adapter.name, name, sizeof(chan->adapter.name)); strscpy(chan->adapter.name, name, sizeof(chan->adapter.name));
chan->adapter.owner = THIS_MODULE; chan->adapter.owner = THIS_MODULE;
chan->adapter.class = I2C_CLASS_DDC;
chan->adapter.algo_data = &chan->algo; chan->adapter.algo_data = &chan->algo;
chan->adapter.dev.parent = dev; chan->adapter.dev.parent = dev;
chan->algo.setsda = tdfxfb_ddc_setsda; chan->algo.setsda = tdfxfb_ddc_setsda;
......
...@@ -274,7 +274,6 @@ static int tridentfb_setup_ddc_bus(struct fb_info *info) ...@@ -274,7 +274,6 @@ static int tridentfb_setup_ddc_bus(struct fb_info *info)
strscpy(par->ddc_adapter.name, info->fix.id, strscpy(par->ddc_adapter.name, info->fix.id,
sizeof(par->ddc_adapter.name)); sizeof(par->ddc_adapter.name));
par->ddc_adapter.owner = THIS_MODULE; par->ddc_adapter.owner = THIS_MODULE;
par->ddc_adapter.class = I2C_CLASS_DDC;
par->ddc_adapter.algo_data = &par->ddc_algo; par->ddc_adapter.algo_data = &par->ddc_algo;
par->ddc_adapter.dev.parent = info->device; par->ddc_adapter.dev.parent = info->device;
if (is_oldclock(par->chip_id)) { /* not sure if this check is OK */ if (is_oldclock(par->chip_id)) { /* not sure if this check is OK */
......
...@@ -201,7 +201,6 @@ static int create_i2c_bus(struct i2c_adapter *adapter, ...@@ -201,7 +201,6 @@ static int create_i2c_bus(struct i2c_adapter *adapter,
sprintf(adapter->name, "viafb i2c io_port idx 0x%02x", sprintf(adapter->name, "viafb i2c io_port idx 0x%02x",
adap_cfg->ioport_index); adap_cfg->ioport_index);
adapter->owner = THIS_MODULE; adapter->owner = THIS_MODULE;
adapter->class = I2C_CLASS_DDC;
adapter->algo_data = algo; adapter->algo_data = algo;
if (pdev) if (pdev)
adapter->dev.parent = &pdev->dev; adapter->dev.parent = &pdev->dev;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment