mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-09-18 22:14:16 +00:00
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: Helge Deller <deller@gmx.de> Acked-by: Thomas Zimmermann <tzimmermann@suse.de> Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> Signed-off-by: Wolfram Sang <wsa@kernel.org>
This commit is contained in:
parent
e965a70727
commit
754bd2fffc
9 changed files with 10 additions and 27 deletions
|
@ -116,7 +116,6 @@ unsigned char *fb_ddc_read(struct i2c_adapter *adapter)
|
|||
algo_data->setsda(algo_data->data, 1);
|
||||
algo_data->setscl(algo_data->data, 1);
|
||||
|
||||
adapter->class |= I2C_CLASS_DDC;
|
||||
return edid;
|
||||
}
|
||||
|
||||
|
|
|
@ -1234,7 +1234,6 @@ static int cyber2000fb_setup_ddc_bus(struct cfb_info *cfb)
|
|||
strscpy(cfb->ddc_adapter.name, cfb->fb.fix.id,
|
||||
sizeof(cfb->ddc_adapter.name));
|
||||
cfb->ddc_adapter.owner = THIS_MODULE;
|
||||
cfb->ddc_adapter.class = I2C_CLASS_DDC;
|
||||
cfb->ddc_adapter.algo_data = &cfb->ddc_algo;
|
||||
cfb->ddc_adapter.dev.parent = cfb->fb.device;
|
||||
cfb->ddc_algo.setsda = cyber2000fb_ddc_setsda;
|
||||
|
|
|
@ -163,7 +163,6 @@ static int i740fb_setup_ddc_bus(struct fb_info *info)
|
|||
strscpy(par->ddc_adapter.name, info->fix.id,
|
||||
sizeof(par->ddc_adapter.name));
|
||||
par->ddc_adapter.owner = THIS_MODULE;
|
||||
par->ddc_adapter.class = I2C_CLASS_DDC;
|
||||
par->ddc_adapter.algo_data = &par->ddc_algo;
|
||||
par->ddc_adapter.dev.parent = info->device;
|
||||
par->ddc_algo.setsda = i740fb_ddc_setsda;
|
||||
|
|
|
@ -99,8 +99,7 @@ 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,
|
||||
int class)
|
||||
const u32 reg, const char *name)
|
||||
{
|
||||
int rc;
|
||||
|
||||
|
@ -108,7 +107,6 @@ 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.algo_data = &chan->algo;
|
||||
chan->adapter.dev.parent = &chan->dinfo->pdev->dev;
|
||||
|
@ -144,8 +142,7 @@ void intelfb_create_i2c_busses(struct intelfb_info *dinfo)
|
|||
dinfo->output[i].type = INTELFB_OUTPUT_ANALOG;
|
||||
|
||||
/* setup the DDC bus for analog output */
|
||||
intelfb_setup_i2c_bus(dinfo, &dinfo->output[i].ddc_bus, GPIOA,
|
||||
"CRTDDC_A", I2C_CLASS_DDC);
|
||||
intelfb_setup_i2c_bus(dinfo, &dinfo->output[i].ddc_bus, GPIOA, "CRTDDC_A");
|
||||
i++;
|
||||
|
||||
/* need to add the output busses for each device
|
||||
|
@ -159,10 +156,8 @@ void intelfb_create_i2c_busses(struct intelfb_info *dinfo)
|
|||
case INTEL_855GM:
|
||||
case INTEL_865G:
|
||||
dinfo->output[i].type = INTELFB_OUTPUT_DVO;
|
||||
intelfb_setup_i2c_bus(dinfo, &dinfo->output[i].ddc_bus,
|
||||
GPIOD, "DVODDC_D", I2C_CLASS_DDC);
|
||||
intelfb_setup_i2c_bus(dinfo, &dinfo->output[i].i2c_bus,
|
||||
GPIOE, "DVOI2C_E", 0);
|
||||
intelfb_setup_i2c_bus(dinfo, &dinfo->output[i].ddc_bus, GPIOD, "DVODDC_D");
|
||||
intelfb_setup_i2c_bus(dinfo, &dinfo->output[i].i2c_bus, GPIOE, "DVOI2C_E");
|
||||
i++;
|
||||
break;
|
||||
case INTEL_915G:
|
||||
|
@ -176,7 +171,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", 0);
|
||||
GPIOE, "SDVOCTRL_E");
|
||||
/* TODO: initialize the SDVO */
|
||||
/* I830SDVOInit(pScrn, i, DVOB); */
|
||||
i++;
|
||||
|
|
|
@ -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,
|
||||
unsigned int data, unsigned int clock, const char *name,
|
||||
int class)
|
||||
unsigned int data, unsigned int clock, const char *name)
|
||||
{
|
||||
int err;
|
||||
|
||||
|
@ -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,
|
||||
minfo->fbcon.node);
|
||||
i2c_set_adapdata(&b->adapter, b);
|
||||
b->adapter.class = class;
|
||||
b->adapter.algo_data = &b->bac;
|
||||
b->adapter.dev.parent = &minfo->pcidev->dev;
|
||||
b->bac = matrox_i2c_algo_template;
|
||||
|
@ -160,27 +158,24 @@ static void* i2c_matroxfb_probe(struct matrox_fb_info* minfo) {
|
|||
case MGA_2164:
|
||||
err = i2c_bus_reg(&m2info->ddc1, minfo,
|
||||
DDC1B_DATA, DDC1B_CLK,
|
||||
"DDC:fb%u #0", I2C_CLASS_DDC);
|
||||
"DDC:fb%u #0");
|
||||
break;
|
||||
default:
|
||||
err = i2c_bus_reg(&m2info->ddc1, minfo,
|
||||
DDC1_DATA, DDC1_CLK,
|
||||
"DDC:fb%u #0", I2C_CLASS_DDC);
|
||||
"DDC:fb%u #0");
|
||||
break;
|
||||
}
|
||||
if (err)
|
||||
goto fail_ddc1;
|
||||
if (minfo->devflags.dualhead) {
|
||||
err = i2c_bus_reg(&m2info->ddc2, minfo,
|
||||
DDC2_DATA, DDC2_CLK,
|
||||
"DDC:fb%u #1", I2C_CLASS_DDC);
|
||||
err = i2c_bus_reg(&m2info->ddc2, minfo, DDC2_DATA, DDC2_CLK, "DDC:fb%u #1");
|
||||
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", 0);
|
||||
err = i2c_bus_reg(&m2info->maven, minfo, MAT_DATA, MAT_CLK, "MAVEN:fb%u");
|
||||
if (err)
|
||||
printk(KERN_INFO "i2c-matroxfb: Could not register Maven i2c bus. Continuing anyway.\n");
|
||||
else {
|
||||
|
|
|
@ -252,7 +252,6 @@ static int s3fb_setup_ddc_bus(struct fb_info *info)
|
|||
strscpy(par->ddc_adapter.name, info->fix.id,
|
||||
sizeof(par->ddc_adapter.name));
|
||||
par->ddc_adapter.owner = THIS_MODULE;
|
||||
par->ddc_adapter.class = I2C_CLASS_DDC;
|
||||
par->ddc_adapter.algo_data = &par->ddc_algo;
|
||||
par->ddc_adapter.dev.parent = info->device;
|
||||
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,
|
|||
|
||||
strscpy(chan->adapter.name, name, sizeof(chan->adapter.name));
|
||||
chan->adapter.owner = THIS_MODULE;
|
||||
chan->adapter.class = I2C_CLASS_DDC;
|
||||
chan->adapter.algo_data = &chan->algo;
|
||||
chan->adapter.dev.parent = dev;
|
||||
chan->algo.setsda = tdfxfb_ddc_setsda;
|
||||
|
|
|
@ -274,7 +274,6 @@ static int tridentfb_setup_ddc_bus(struct fb_info *info)
|
|||
strscpy(par->ddc_adapter.name, info->fix.id,
|
||||
sizeof(par->ddc_adapter.name));
|
||||
par->ddc_adapter.owner = THIS_MODULE;
|
||||
par->ddc_adapter.class = I2C_CLASS_DDC;
|
||||
par->ddc_adapter.algo_data = &par->ddc_algo;
|
||||
par->ddc_adapter.dev.parent = info->device;
|
||||
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,
|
|||
sprintf(adapter->name, "viafb i2c io_port idx 0x%02x",
|
||||
adap_cfg->ioport_index);
|
||||
adapter->owner = THIS_MODULE;
|
||||
adapter->class = I2C_CLASS_DDC;
|
||||
adapter->algo_data = algo;
|
||||
if (pdev)
|
||||
adapter->dev.parent = &pdev->dev;
|
||||
|
|
Loading…
Add table
Reference in a new issue