]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - include/linux/i2c.h
Merge git://git.infradead.org/mtd-2.6
[karo-tx-linux.git] / include / linux / i2c.h
index 4bae0b72ed3cdba567f306bddb2a2e26326f7fc4..1f66fa06a97cae66e39d3ad6f6cef8fc221ea955 100644 (file)
@@ -384,11 +384,15 @@ static inline void i2c_set_adapdata(struct i2c_adapter *dev, void *data)
        dev_set_drvdata(&dev->dev, data);
 }
 
-static inline int i2c_parent_is_i2c_adapter(const struct i2c_adapter *adapter)
+static inline struct i2c_adapter *
+i2c_parent_is_i2c_adapter(const struct i2c_adapter *adapter)
 {
-       return adapter->dev.parent != NULL
-               && adapter->dev.parent->bus == &i2c_bus_type
-               && adapter->dev.parent->type == &i2c_adapter_type;
+       struct device *parent = adapter->dev.parent;
+
+       if (parent != NULL && parent->type == &i2c_adapter_type)
+               return to_i2c_adapter(parent);
+       else
+               return NULL;
 }
 
 /* Adapter locking functions, exported for shared pin cases */