Merge tag 'driver-core-5.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git...
authorLinus Torvalds <torvalds@linux-foundation.org>
Wed, 18 Sep 2019 17:04:39 +0000 (10:04 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 18 Sep 2019 17:04:39 +0000 (10:04 -0700)
Pull driver core updates from Greg Kroah-Hartman:
 "Here is the big driver core update for 5.4-rc1.

  There was a bit of a churn in here, with a number of core and OF
  platform patches being added to the tree, and then after much
  discussion and review and a day-long in-person meeting, they were
  decided to be reverted and a new set of patches is currently being
  reviewed on the mailing list.

  Other than that churn, there are two "persistent" branches in here
  that other trees will be pulling in as well during the merge window.
  One branch to add support for drivers to have the driver core
  automatically add sysfs attribute files when a driver is bound to a
  device so that the driver doesn't have to manually do it (and then
  clean it up, as it always gets it wrong).

  There's another branch in here for generic lookup helpers for the
  driver core that lots of busses are starting to use. That's the
  majority of the non-driver-core changes in this patch series.

  There's also some on-going debugfs file creation cleanup that has been
  slowly happening over the past few releases, with the goal to
  hopefully get that done sometime next year.

  All of these have been in linux-next for a while now with no reported
  issues"

[ Note that the above-mentioned generic lookup helpers branch was
  already brought in by the LED merge (commit 4feaab05dc1e) that had
  shared it.

  Also note that that common branch introduced an i2c bug due to a bad
  conversion, which got fixed here. - Linus ]

* tag 'driver-core-5.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (49 commits)
  coccinelle: platform_get_irq: Fix parse error
  driver-core: add include guard to linux/container.h
  sysfs: add BIN_ATTR_WO() macro
  driver core: platform: Export platform_get_irq_optional()
  hwmon: pwm-fan: Use platform_get_irq_optional()
  driver core: platform: Introduce platform_get_irq_optional()
  Revert "driver core: Add support for linking devices during device addition"
  Revert "driver core: Add edit_links() callback for drivers"
  Revert "of/platform: Add functional dependency link from DT bindings"
  Revert "driver core: Add sync_state driver/bus callback"
  Revert "of/platform: Pause/resume sync state during init and of_platform_populate()"
  Revert "of/platform: Create device links for all child-supplier depencencies"
  Revert "of/platform: Don't create device links for default busses"
  Revert "of/platform: Fix fn definitons for of_link_is_valid() and of_link_property()"
  Revert "of/platform: Fix device_links_supplier_sync_state_resume() warning"
  Revert "of/platform: Disable generic device linking code for PowerPC"
  devcoredump: fix typo in comment
  devcoredump: use memory_read_from_buffer
  of/platform: Disable generic device linking code for PowerPC
  device.h: Fix warnings for mismatched parameter names in comments
  ...

1  2 
drivers/base/core.c
drivers/base/power/runtime.c
drivers/i2c/i2c-core-acpi.c

Simple merge
index 50def99df9706733599416a7dd14c648fc890dfe,45a8fbe6987a8497d5542959fd860b9878d54052..48616f358854a4562222877b5dd779e4d1434460
@@@ -1642,9 -1640,8 +1642,9 @@@ void pm_runtime_clean_up_links(struct d
  
        idx = device_links_read_lock();
  
 -      list_for_each_entry_rcu(link, &dev->links.consumers, s_node) {
 +      list_for_each_entry_rcu(link, &dev->links.consumers, s_node,
 +                              device_links_read_lock_held()) {
-               if (link->flags & DL_FLAG_STATELESS)
+               if (!(link->flags & DL_FLAG_MANAGED))
                        continue;
  
                while (refcount_dec_not_one(&link->rpm_active))
index bb6b39fe343a80f0b3ae072e17696c5b25f382a5,f60f7a95d48e75d2a3bf63cc14fe0796e52f9001..9cb2aa1e20ef31a2707a5e82678cf15264b2a572
@@@ -344,9 -344,23 +344,22 @@@ u32 i2c_acpi_find_bus_speed(struct devi
  }
  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 device *dev = bus_find_device_by_acpi_dev(&i2c_bus_type, handle);
+       struct device *dev;
+       dev = bus_find_device(&i2c_bus_type, NULL, handle,
+                             i2c_acpi_find_match_adapter);
  
        return dev ? i2c_verify_adapter(dev) : NULL;
  }