Merge tag 'driver-core-5.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git...
authorLinus Torvalds <torvalds@linux-foundation.org>
Wed, 5 Aug 2020 18:52:17 +0000 (11:52 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 5 Aug 2020 18:52:17 +0000 (11:52 -0700)
Pull driver core updates from Greg KH:
 "Here is the "big" set of changes to the driver core, and some drivers
  using the changes, for 5.9-rc1.

  "Biggest" thing in here is the device link exposure in sysfs, to help
  to tame the madness that is SoC device tree representations and driver
  interactions with it.

  Other stuff in here that is interesting is:

   - device probe log helper so that drivers can report problems in a
     unified way easier.

   - devres functions added

   - DEVICE_ATTR_ADMIN_* macro added to make it harder to write
     incorrect sysfs file permissions

   - documentation cleanups

   - ability for debugfs to be present in the kernel, yet not exposed to
     userspace. Needed for systems that want it enabled, but do not
     trust users, so they can still use some kernel functions that were
     otherwise disabled.

   - other minor fixes and cleanups

  The patches outside of drivers/base/ all have acks from the respective
  subsystem maintainers to go through this tree instead of theirs.

  All of these have been in linux-next with no reported issues"

* tag 'driver-core-5.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (39 commits)
  drm/bridge: lvds-codec: simplify error handling
  drm/bridge/sii8620: fix resource acquisition error handling
  driver core: add deferring probe reason to devices_deferred property
  driver core: add device probe log helper
  driver core: Avoid binding drivers to dead devices
  Revert "test_firmware: Test platform fw loading on non-EFI systems"
  firmware_loader: EFI firmware loader must handle pre-allocated buffer
  selftest/firmware: Add selftest timeout in settings
  test_firmware: Test platform fw loading on non-EFI systems
  driver core: Change delimiter in devlink device's name to "--"
  debugfs: Add access restriction option
  tracefs: Remove unnecessary debug_fs checks.
  driver core: Fix probe_count imbalance in really_probe()
  kobject: remove unused KOBJ_MAX action
  driver core: Fix sleeping in invalid context during device link deletion
  driver core: Add waiting_for_supplier sysfs file for devices
  driver core: Add state_synced sysfs file for devices that support it
  driver core: Expose device link details in sysfs
  driver core: Drop mention of obsolete bus rwsem from kernel-doc
  debugfs: file: Remove unnecessary cast in kfree()
  ...

1  2 
Documentation/admin-guide/kernel-parameters.txt
drivers/gpu/drm/bridge/sil-sii8620.c
include/linux/device.h
lib/Kconfig.debug
tools/testing/selftests/kselftest/runner.sh

Simple merge
@@@ -634,11 -595,38 +606,41 @@@ struct device 
      defined(CONFIG_ARCH_HAS_SYNC_DMA_FOR_CPU_ALL)
        bool                    dma_coherent:1;
  #endif
 +#ifdef CONFIG_DMA_OPS_BYPASS
 +      bool                    dma_ops_bypass : 1;
 +#endif
  };
  
+ /**
+  * struct device_link - Device link representation.
+  * @supplier: The device on the supplier end of the link.
+  * @s_node: Hook to the supplier device's list of links to consumers.
+  * @consumer: The device on the consumer end of the link.
+  * @c_node: Hook to the consumer device's list of links to suppliers.
+  * @link_dev: device used to expose link details in sysfs
+  * @status: The state of the link (with respect to the presence of drivers).
+  * @flags: Link flags.
+  * @rpm_active: Whether or not the consumer device is runtime-PM-active.
+  * @kref: Count repeated addition of the same link.
+  * @rcu_head: An RCU head to use for deferred execution of SRCU callbacks.
+  * @supplier_preactivated: Supplier has been made active before consumer probe.
+  */
+ struct device_link {
+       struct device *supplier;
+       struct list_head s_node;
+       struct device *consumer;
+       struct list_head c_node;
+       struct device link_dev;
+       enum device_link_state status;
+       u32 flags;
+       refcount_t rpm_active;
+       struct kref kref;
+ #ifdef CONFIG_SRCU
+       struct rcu_head rcu_head;
+ #endif
+       bool supplier_preactivated; /* Owned by consumer probe. */
+ };
  static inline struct device *kobj_to_dev(struct kobject *kobj)
  {
        return container_of(kobj, struct device, kobj);
Simple merge
@@@ -77,10 -81,10 +81,10 @@@ run_one(
                echo "ok $test_num $TEST_HDR_MSG") ||
                (rc=$?; \
                if [ $rc -eq $skip_rc ]; then   \
 -                      echo "not ok $test_num $TEST_HDR_MSG # SKIP"
 +                      echo "ok $test_num $TEST_HDR_MSG # SKIP"
                elif [ $rc -eq $timeout_rc ]; then \
                        echo "#"
-                       echo "not ok $test_num $TEST_HDR_MSG # TIMEOUT"
+                       echo "not ok $test_num $TEST_HDR_MSG # TIMEOUT $kselftest_timeout seconds"
                else
                        echo "not ok $test_num $TEST_HDR_MSG # exit=$rc"
                fi)