diff mbox series

i2c: mux: Avoid potential false error message in i2c_mux_add_adapter

Message ID e4aa66a4-898c-4583-adf8-3f934f0893d4@gmail.com
State Accepted
Headers show
Series i2c: mux: Avoid potential false error message in i2c_mux_add_adapter | expand

Commit Message

Heiner Kallweit Sept. 23, 2023, 9:54 p.m. UTC
I2C_CLASS_DEPRECATED is a flag and not an actual class.
There's nothing speaking against both, parent and child, having
I2C_CLASS_DEPRECATED set. Therefore exclude it from the check.

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
---
I'm not aware of any current issue, therefore no Fixes tag.
However I'm preparing a change to i2c-i801 where this could
be an issue.
---
 drivers/i2c/i2c-mux.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Peter Rosin Sept. 24, 2023, 9:01 p.m. UTC | #1
Hi!

2023-09-23 at 23:54, Heiner Kallweit wrote:
> I2C_CLASS_DEPRECATED is a flag and not an actual class.
> There's nothing speaking against both, parent and child, having
> I2C_CLASS_DEPRECATED set. Therefore exclude it from the check.
> 
> Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>

Looks sane to me.

Acked-by: Peter Rosin <peda@axentia.se>

Cheers,
Peter
Wolfram Sang Sept. 25, 2023, 6:22 a.m. UTC | #2
On Sat, Sep 23, 2023 at 11:54:06PM +0200, Heiner Kallweit wrote:
> I2C_CLASS_DEPRECATED is a flag and not an actual class.
> There's nothing speaking against both, parent and child, having
> I2C_CLASS_DEPRECATED set. Therefore exclude it from the check.
> 
> Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>

Applied to for-current, thanks!
diff mbox series

Patch

diff --git a/drivers/i2c/i2c-mux.c b/drivers/i2c/i2c-mux.c
index 313904be5..57ff09f18 100644
--- a/drivers/i2c/i2c-mux.c
+++ b/drivers/i2c/i2c-mux.c
@@ -341,7 +341,7 @@  int i2c_mux_add_adapter(struct i2c_mux_core *muxc,
 		priv->adap.lock_ops = &i2c_parent_lock_ops;
 
 	/* Sanity check on class */
-	if (i2c_mux_parent_classes(parent) & class)
+	if (i2c_mux_parent_classes(parent) & class & ~I2C_CLASS_DEPRECATED)
 		dev_err(&parent->dev,
 			"Segment %d behind mux can't share classes with ancestors\n",
 			chan_id);