i2c: designware: use generic table matching
authorAlexandre Belloni <alexandre.belloni@bootlin.com>
Fri, 31 Aug 2018 15:11:08 +0000 (17:11 +0200)
committerWolfram Sang <wsa@the-dreams.de>
Sun, 2 Sep 2018 21:51:15 +0000 (23:51 +0200)
Switch to device_get_match_data in probe to match the device specific data
instead of using the acpi specific function.

Suggested-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Tested-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
Acked-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
drivers/i2c/busses/i2c-designware-platdrv.c

index b5750fd..99012f2 100644 (file)
@@ -86,7 +86,6 @@ static int dw_i2c_acpi_configure(struct platform_device *pdev)
        struct i2c_timings *t = &dev->timings;
        u32 ss_ht = 0, fp_ht = 0, hs_ht = 0, fs_ht = 0;
        acpi_handle handle = ACPI_HANDLE(&pdev->dev);
-       const struct acpi_device_id *id;
        struct acpi_device *adev;
        const char *uid;
 
@@ -119,10 +118,6 @@ static int dw_i2c_acpi_configure(struct platform_device *pdev)
                break;
        }
 
-       id = acpi_match_device(pdev->dev.driver->acpi_match_table, &pdev->dev);
-       if (id && id->driver_data)
-               dev->flags |= (u32)id->driver_data;
-
        if (acpi_bus_get_device(handle, &adev))
                return -ENODEV;
 
@@ -291,6 +286,8 @@ static int dw_i2c_plat_probe(struct platform_device *pdev)
        else
                t->bus_freq_hz = 400000;
 
+       dev->flags |= (uintptr_t)device_get_match_data(&pdev->dev);
+
        if (has_acpi_companion(&pdev->dev))
                dw_i2c_acpi_configure(pdev);