]> Git Repo - J-linux.git/blobdiff - drivers/i2c/i2c-core-acpi.c
Merge tag 'acpi-5.16-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael...
[J-linux.git] / drivers / i2c / i2c-core-acpi.c
index c025919cdaaeeba0e4f9a1ace6980a5f64a7f770..92c1cc07ed468fd727b16a01c0bdfb965f4425e4 100644 (file)
@@ -398,24 +398,20 @@ u32 i2c_acpi_find_bus_speed(struct device *dev)
 }
 EXPORT_SYMBOL_GPL(i2c_acpi_find_bus_speed);
 
-static int i2c_acpi_find_match_adapter(struct device *dev, const void *data)
-{
-       struct i2c_adapter *adapter = i2c_verify_adapter(dev);
-
-       if (!adapter)
-               return 0;
-
-       return ACPI_HANDLE(dev) == (acpi_handle)data;
-}
-
 struct i2c_adapter *i2c_acpi_find_adapter_by_handle(acpi_handle handle)
 {
+       struct i2c_adapter *adapter;
        struct device *dev;
 
-       dev = bus_find_device(&i2c_bus_type, NULL, handle,
-                             i2c_acpi_find_match_adapter);
+       dev = bus_find_device(&i2c_bus_type, NULL, handle, device_match_acpi_handle);
+       if (!dev)
+               return NULL;
+
+       adapter = i2c_verify_adapter(dev);
+       if (!adapter)
+               put_device(dev);
 
-       return dev ? i2c_verify_adapter(dev) : NULL;
+       return adapter;
 }
 EXPORT_SYMBOL_GPL(i2c_acpi_find_adapter_by_handle);
 
This page took 0.026586 seconds and 4 git commands to generate.