Message ID | 5c521229-18be-47dc-baa9-cabd78420cad@gmail.com |
---|---|
State | New |
Headers | show |
Series | i2c: Mark I2C_CLASS_DDC as deprecated and emit warning if adapters declare support for it | expand |
Hi Heiner! > With removal of the legacy eeprom driver the only i2c client device > driver with I2C_CLASS_DDC is gone, so it's time to mark I2C_CLASS_DDC > as deprecated. OK, but I will need to wait until the eeprom-removal hits mainline. > Use pr_warn_once, because graphics adapters can have several i2c > busses and we may see the warning multiple times otherwise. > > Note: > Driver staging/olpc_dcon declares support for classes HWMON and DDC, > but only HWMON is used with the scx200_acb adapter driver on olpc > devices. And why don't we remove its DDC declaration here in this patch? Thanks for cleaning this up! Regards, Wolfram
On 26.10.2023 19:37, Wolfram Sang wrote: > Hi Heiner! > >> With removal of the legacy eeprom driver the only i2c client device >> driver with I2C_CLASS_DDC is gone, so it's time to mark I2C_CLASS_DDC >> as deprecated. > > OK, but I will need to wait until the eeprom-removal hits mainline. > >> Use pr_warn_once, because graphics adapters can have several i2c >> busses and we may see the warning multiple times otherwise. >> >> Note: >> Driver staging/olpc_dcon declares support for classes HWMON and DDC, >> but only HWMON is used with the scx200_acb adapter driver on olpc >> devices. > > And why don't we remove its DDC declaration here in this patch? > OK, will submit this as follow-up. > Thanks for cleaning this up! > > Regards, > > Wolfram >
diff --git a/drivers/i2c/i2c-core-base.c b/drivers/i2c/i2c-core-base.c index 60746652f..34b475823 100644 --- a/drivers/i2c/i2c-core-base.c +++ b/drivers/i2c/i2c-core-base.c @@ -1487,6 +1487,10 @@ static int i2c_register_adapter(struct i2c_adapter *adap) goto out_list; } + if (adap->class & I2C_CLASS_DDC) + pr_warn_once("adapter '%s': Probing for class DDC devices is deprecated\n", + adap->name); + if (!adap->lock_ops) adap->lock_ops = &i2c_adapter_lock_ops; diff --git a/include/linux/i2c.h b/include/linux/i2c.h index 0dae9db27..dfbd121b7 100644 --- a/include/linux/i2c.h +++ b/include/linux/i2c.h @@ -850,7 +850,7 @@ static inline void i2c_mark_adapter_resumed(struct i2c_adapter *adap) /* i2c adapter classes (bitmask) */ #define I2C_CLASS_HWMON (1<<0) /* lm_sensors, ... */ -#define I2C_CLASS_DDC (1<<3) /* DDC bus on graphics adapters */ +#define I2C_CLASS_DDC (1<<3) /* Deprecated: DDC bus on graphics adapters */ #define I2C_CLASS_SPD (1<<7) /* Memory modules */ /* Warn users that the adapter doesn't support classes anymore */ #define I2C_CLASS_DEPRECATED (1<<8)
With removal of the legacy eeprom driver the only i2c client device driver with I2C_CLASS_DDC is gone, so it's time to mark I2C_CLASS_DDC as deprecated. Use pr_warn_once, because graphics adapters can have several i2c busses and we may see the warning multiple times otherwise. Note: Driver staging/olpc_dcon declares support for classes HWMON and DDC, but only HWMON is used with the scx200_acb adapter driver on olpc devices. Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> --- drivers/i2c/i2c-core-base.c | 4 ++++ include/linux/i2c.h | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-)