]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
fbdev: remove I2C_CLASS_DDC support
authorHeiner Kallweit <hkallweit1@gmail.com>
Thu, 23 Nov 2023 09:40:25 +0000 (10:40 +0100)
committerWolfram Sang <wsa@kernel.org>
Thu, 18 Jan 2024 20:10:41 +0000 (21:10 +0100)
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>
drivers/video/fbdev/core/fb_ddc.c
drivers/video/fbdev/cyber2000fb.c
drivers/video/fbdev/i740fb.c
drivers/video/fbdev/intelfb/intelfb_i2c.c
drivers/video/fbdev/matrox/i2c-matroxfb.c
drivers/video/fbdev/s3fb.c
drivers/video/fbdev/tdfxfb.c
drivers/video/fbdev/tridentfb.c
drivers/video/fbdev/via/via_i2c.c

index 8bf5f2f54be7b8760fd89b027fd3d686c00ada14..e2514321986297bda06f3c29ce7bfae3cc6fe2ef 100644 (file)
@@ -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;
 }
 
index 52105dc1a72f3f916bb7313f54fe7d72e9aa05bf..79775dedacebcaee33904ab94cb9d21369cff3b9 100644 (file)
@@ -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;
index 1897e65ab7031dfbf9f3e907ac245661bc88ba18..9b74dae71472c459e1d46eb0e0890ccb5debc9e0 100644 (file)
@@ -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;
index 3300bd31d9d7e1a7bcc5e28a696db8bbac0f8f5c..f24c7cb4c2ea612f4b599f0474176ca38e8acb4e 100644 (file)
@@ -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++;
index e2e4705e3fe0e21b9e178e1b8ae50277480c6244..bb048e14b2cf1cb763d7547482e651769febf923 100644 (file)
@@ -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 {
index 589b349cb63e08983e03624c9ef7fea34da11623..07722a5ea8eff8a63e5827e4a79349f00689ee46 100644 (file)
@@ -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;
index 22aa953138b0f339f0c4f077c02276d0f86dea29..51ebe78359ec34e4aff34a29d60275131966adb3 100644 (file)
@@ -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;
index 816d40b6f689cb54051324803a469093b129e9bd..516cf2a187575da096f233591fb35bb6f7c23d7b 100644 (file)
@@ -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 */
index c35e530e0ec9d775668ad4924c1e21a8c8cc3c9b..582502810575970f11fd646f491f4e806f44225d 100644 (file)
@@ -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;