i2c: mux: gpio: Don't dereference fwnode from struct device
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Mon, 15 Nov 2021 15:42:00 +0000 (17:42 +0200)
committerWolfram Sang <wsa@kernel.org>
Tue, 23 Nov 2021 10:54:41 +0000 (11:54 +0100)
We have a special helper to get fwnode out of struct device.
Moreover, dereferencing it directly prevents the fwnode
modifications in the future.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Evan Green <evgreen@chromium.org>
Acked-by: Peter Rosin <peda@axentia.se>
Signed-off-by: Wolfram Sang <wsa@kernel.org>
drivers/i2c/muxes/i2c-mux-gpio.c

index 31e6eb1..b09c10f 100644 (file)
@@ -53,6 +53,7 @@ static int i2c_mux_gpio_probe_fw(struct gpiomux *mux,
                                 struct platform_device *pdev)
 {
        struct device *dev = &pdev->dev;
+       struct fwnode_handle *fwnode = dev_fwnode(dev);
        struct device_node *np = dev->of_node;
        struct device_node *adapter_np;
        struct i2c_adapter *adapter = NULL;
@@ -60,7 +61,7 @@ static int i2c_mux_gpio_probe_fw(struct gpiomux *mux,
        unsigned *values;
        int rc, i = 0;
 
-       if (is_of_node(dev->fwnode)) {
+       if (is_of_node(fwnode)) {
                if (!np)
                        return -ENODEV;
 
@@ -72,7 +73,7 @@ static int i2c_mux_gpio_probe_fw(struct gpiomux *mux,
                adapter = of_find_i2c_adapter_by_node(adapter_np);
                of_node_put(adapter_np);
 
-       } else if (is_acpi_node(dev->fwnode)) {
+       } else if (is_acpi_node(fwnode)) {
                /*
                 * In ACPI land the mux should be a direct child of the i2c
                 * bus it muxes.
@@ -111,7 +112,7 @@ static int i2c_mux_gpio_probe_fw(struct gpiomux *mux,
        }
        mux->data.values = values;
 
-       if (fwnode_property_read_u32(dev->fwnode, "idle-state", &mux->data.idle))
+       if (device_property_read_u32(dev, "idle-state", &mux->data.idle))
                mux->data.idle = I2C_MUX_GPIO_NO_IDLE;
 
        return 0;