Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

authored by

Heiner Kallweit and committed by
Wolfram Sang
754bd2ff e965a707

+10 -27
-1
drivers/video/fbdev/core/fb_ddc.c
··· 116 116 algo_data->setsda(algo_data->data, 1); 117 117 algo_data->setscl(algo_data->data, 1); 118 118 119 - adapter->class |= I2C_CLASS_DDC; 120 119 return edid; 121 120 } 122 121
-1
drivers/video/fbdev/cyber2000fb.c
··· 1234 1234 strscpy(cfb->ddc_adapter.name, cfb->fb.fix.id, 1235 1235 sizeof(cfb->ddc_adapter.name)); 1236 1236 cfb->ddc_adapter.owner = THIS_MODULE; 1237 - cfb->ddc_adapter.class = I2C_CLASS_DDC; 1238 1237 cfb->ddc_adapter.algo_data = &cfb->ddc_algo; 1239 1238 cfb->ddc_adapter.dev.parent = cfb->fb.device; 1240 1239 cfb->ddc_algo.setsda = cyber2000fb_ddc_setsda;
-1
drivers/video/fbdev/i740fb.c
··· 163 163 strscpy(par->ddc_adapter.name, info->fix.id, 164 164 sizeof(par->ddc_adapter.name)); 165 165 par->ddc_adapter.owner = THIS_MODULE; 166 - par->ddc_adapter.class = I2C_CLASS_DDC; 167 166 par->ddc_adapter.algo_data = &par->ddc_algo; 168 167 par->ddc_adapter.dev.parent = info->device; 169 168 par->ddc_algo.setsda = i740fb_ddc_setsda;
+5 -10
drivers/video/fbdev/intelfb/intelfb_i2c.c
··· 99 99 100 100 static int intelfb_setup_i2c_bus(struct intelfb_info *dinfo, 101 101 struct intelfb_i2c_chan *chan, 102 - const u32 reg, const char *name, 103 - int class) 102 + const u32 reg, const char *name) 104 103 { 105 104 int rc; 106 105 ··· 107 108 chan->reg = reg; 108 109 snprintf(chan->adapter.name, sizeof(chan->adapter.name), 109 110 "intelfb %s", name); 110 - chan->adapter.class = class; 111 111 chan->adapter.owner = THIS_MODULE; 112 112 chan->adapter.algo_data = &chan->algo; 113 113 chan->adapter.dev.parent = &chan->dinfo->pdev->dev; ··· 142 144 dinfo->output[i].type = INTELFB_OUTPUT_ANALOG; 143 145 144 146 /* setup the DDC bus for analog output */ 145 - intelfb_setup_i2c_bus(dinfo, &dinfo->output[i].ddc_bus, GPIOA, 146 - "CRTDDC_A", I2C_CLASS_DDC); 147 + intelfb_setup_i2c_bus(dinfo, &dinfo->output[i].ddc_bus, GPIOA, "CRTDDC_A"); 147 148 i++; 148 149 149 150 /* need to add the output busses for each device ··· 156 159 case INTEL_855GM: 157 160 case INTEL_865G: 158 161 dinfo->output[i].type = INTELFB_OUTPUT_DVO; 159 - intelfb_setup_i2c_bus(dinfo, &dinfo->output[i].ddc_bus, 160 - GPIOD, "DVODDC_D", I2C_CLASS_DDC); 161 - intelfb_setup_i2c_bus(dinfo, &dinfo->output[i].i2c_bus, 162 - GPIOE, "DVOI2C_E", 0); 162 + intelfb_setup_i2c_bus(dinfo, &dinfo->output[i].ddc_bus, GPIOD, "DVODDC_D"); 163 + intelfb_setup_i2c_bus(dinfo, &dinfo->output[i].i2c_bus, GPIOE, "DVOI2C_E"); 163 164 i++; 164 165 break; 165 166 case INTEL_915G: ··· 171 176 /* SDVO ports have a single control bus - 2 devices */ 172 177 dinfo->output[i].type = INTELFB_OUTPUT_SDVO; 173 178 intelfb_setup_i2c_bus(dinfo, &dinfo->output[i].i2c_bus, 174 - GPIOE, "SDVOCTRL_E", 0); 179 + GPIOE, "SDVOCTRL_E"); 175 180 /* TODO: initialize the SDVO */ 176 181 /* I830SDVOInit(pScrn, i, DVOB); */ 177 182 i++;
+5 -10
drivers/video/fbdev/matrox/i2c-matroxfb.c
··· 100 100 }; 101 101 102 102 static int i2c_bus_reg(struct i2c_bit_adapter* b, struct matrox_fb_info* minfo, 103 - unsigned int data, unsigned int clock, const char *name, 104 - int class) 103 + unsigned int data, unsigned int clock, const char *name) 105 104 { 106 105 int err; 107 106 ··· 111 112 snprintf(b->adapter.name, sizeof(b->adapter.name), name, 112 113 minfo->fbcon.node); 113 114 i2c_set_adapdata(&b->adapter, b); 114 - b->adapter.class = class; 115 115 b->adapter.algo_data = &b->bac; 116 116 b->adapter.dev.parent = &minfo->pcidev->dev; 117 117 b->bac = matrox_i2c_algo_template; ··· 158 160 case MGA_2164: 159 161 err = i2c_bus_reg(&m2info->ddc1, minfo, 160 162 DDC1B_DATA, DDC1B_CLK, 161 - "DDC:fb%u #0", I2C_CLASS_DDC); 163 + "DDC:fb%u #0"); 162 164 break; 163 165 default: 164 166 err = i2c_bus_reg(&m2info->ddc1, minfo, 165 167 DDC1_DATA, DDC1_CLK, 166 - "DDC:fb%u #0", I2C_CLASS_DDC); 168 + "DDC:fb%u #0"); 167 169 break; 168 170 } 169 171 if (err) 170 172 goto fail_ddc1; 171 173 if (minfo->devflags.dualhead) { 172 - err = i2c_bus_reg(&m2info->ddc2, minfo, 173 - DDC2_DATA, DDC2_CLK, 174 - "DDC:fb%u #1", I2C_CLASS_DDC); 174 + err = i2c_bus_reg(&m2info->ddc2, minfo, DDC2_DATA, DDC2_CLK, "DDC:fb%u #1"); 175 175 if (err == -ENODEV) { 176 176 printk(KERN_INFO "i2c-matroxfb: VGA->TV plug detected, DDC unavailable.\n"); 177 177 } else if (err) 178 178 printk(KERN_INFO "i2c-matroxfb: Could not register secondary output i2c bus. Continuing anyway.\n"); 179 179 /* Register maven bus even on G450/G550 */ 180 - err = i2c_bus_reg(&m2info->maven, minfo, 181 - MAT_DATA, MAT_CLK, "MAVEN:fb%u", 0); 180 + err = i2c_bus_reg(&m2info->maven, minfo, MAT_DATA, MAT_CLK, "MAVEN:fb%u"); 182 181 if (err) 183 182 printk(KERN_INFO "i2c-matroxfb: Could not register Maven i2c bus. Continuing anyway.\n"); 184 183 else {
-1
drivers/video/fbdev/s3fb.c
··· 252 252 strscpy(par->ddc_adapter.name, info->fix.id, 253 253 sizeof(par->ddc_adapter.name)); 254 254 par->ddc_adapter.owner = THIS_MODULE; 255 - par->ddc_adapter.class = I2C_CLASS_DDC; 256 255 par->ddc_adapter.algo_data = &par->ddc_algo; 257 256 par->ddc_adapter.dev.parent = info->device; 258 257 par->ddc_algo.setsda = s3fb_ddc_setsda;
-1
drivers/video/fbdev/tdfxfb.c
··· 1267 1267 1268 1268 strscpy(chan->adapter.name, name, sizeof(chan->adapter.name)); 1269 1269 chan->adapter.owner = THIS_MODULE; 1270 - chan->adapter.class = I2C_CLASS_DDC; 1271 1270 chan->adapter.algo_data = &chan->algo; 1272 1271 chan->adapter.dev.parent = dev; 1273 1272 chan->algo.setsda = tdfxfb_ddc_setsda;
-1
drivers/video/fbdev/tridentfb.c
··· 274 274 strscpy(par->ddc_adapter.name, info->fix.id, 275 275 sizeof(par->ddc_adapter.name)); 276 276 par->ddc_adapter.owner = THIS_MODULE; 277 - par->ddc_adapter.class = I2C_CLASS_DDC; 278 277 par->ddc_adapter.algo_data = &par->ddc_algo; 279 278 par->ddc_adapter.dev.parent = info->device; 280 279 if (is_oldclock(par->chip_id)) { /* not sure if this check is OK */
-1
drivers/video/fbdev/via/via_i2c.c
··· 201 201 sprintf(adapter->name, "viafb i2c io_port idx 0x%02x", 202 202 adap_cfg->ioport_index); 203 203 adapter->owner = THIS_MODULE; 204 - adapter->class = I2C_CLASS_DDC; 205 204 adapter->algo_data = algo; 206 205 if (pdev) 207 206 adapter->dev.parent = &pdev->dev;