Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 098c3055 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'driver-core-4.10-rc1' of...

Merge tag 'driver-core-4.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core

Pull driver core updates from Greg KH:
 "Here's the new driver core patches for 4.10-rc1.

  Big thing here is the nice addition of "functional dependencies" to
  the driver core. The idea has been talked about for a very long time,
  great job to Rafael for stepping up and implementing it. It's been
  tested for longer than the 4.9-rc1 date, we held off on merging it
  earlier in order to feel more comfortable about it.

  Other than that, it's just a handful of small other patches, some good
  cleanups to the mess that is the firmware class code, and we have a
  test driver for the deferred probe logic.

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

* tag 'driver-core-4.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (30 commits)
  firmware: Correct handling of fw_state_wait() return value
  driver core: Silence device links sphinx warning
  firmware: remove warning at documentation generation time
  drivers: base: dma-mapping: Fix typo in dmam_alloc_non_coherent comments
  driver core: test_async: fix up typo found by 0-day
  firmware: move fw_state_is_done() into UHM section
  firmware: do not use fw_lock for fw_state protection
  firmware: drop bit ops in favor of simple state machine
  firmware: refactor loading status
  firmware: fix usermode helper fallback loading
  driver core: firmware_class: convert to use class_groups
  driver core: devcoredump: convert to use class_groups
  driver core: class: add class_groups support
  kernfs: Declare two local data structures static
  driver-core: fix platform_no_drv_owner.cocci warnings
  drivers/base/memory.c: Remove unused 'first_page' variable
  driver core: add CLASS_ATTR_WO()
  drivers: base: cacheinfo: support DT overrides for cache properties
  drivers: base: cacheinfo: add pr_fmt logging
  drivers: base: cacheinfo: fix boot error message when acpi is enabled
  ...
parents 72cca7ba 5d47ec02
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
What:		/sys/devices/.../deferred_probe
Date:		August 2016
Contact:	Ben Hutchings <ben.hutchings@codethink.co.uk>
Description:
		The /sys/devices/.../deferred_probe attribute is
		present for all devices.  If a driver detects during
		probing a device that a related device is not yet
		ready, it may defer probing of the first device.  The
		kernel will retry probing the first device after any
		other device is successfully probed.  This attribute
		reads as 1 if probing of this device is currently
		deferred, or 0 otherwise.
+2 −0
Original line number Diff line number Diff line
@@ -934,6 +934,8 @@ static int __populate_cache_leaves(unsigned int cpu)
		ci_leaf_init(this_leaf++, &id4_regs);
		__cache_cpumap_setup(cpu, idx, &id4_regs);
	}
	this_cpu_ci->cpu_map_populated = true;

	return 0;
}

+2 −0
Original line number Diff line number Diff line
@@ -224,6 +224,8 @@ config DEBUG_TEST_DRIVER_REMOVE
	  unusable. You should say N here unless you are explicitly looking to
	  test this functionality.

source "drivers/base/test/Kconfig"

config SYS_HYPERVISOR
	bool
	default n
+2 −0
Original line number Diff line number Diff line
@@ -24,5 +24,7 @@ obj-$(CONFIG_PINCTRL) += pinctrl.o
obj-$(CONFIG_DEV_COREDUMP) += devcoredump.o
obj-$(CONFIG_GENERIC_MSI_IRQ_DOMAIN) += platform-msi.o

obj-y			+= test/

ccflags-$(CONFIG_DEBUG_DRIVER) := -DDEBUG
+15 −0
Original line number Diff line number Diff line
@@ -107,6 +107,9 @@ extern void bus_remove_device(struct device *dev);

extern int bus_add_driver(struct device_driver *drv);
extern void bus_remove_driver(struct device_driver *drv);
extern void device_release_driver_internal(struct device *dev,
					   struct device_driver *drv,
					   struct device *parent);

extern void driver_detach(struct device_driver *drv);
extern int driver_probe_device(struct device_driver *drv, struct device *dev);
@@ -138,6 +141,8 @@ extern void device_unblock_probing(void);
extern struct kset *devices_kset;
extern void devices_kset_move_last(struct device *dev);

extern struct device_attribute dev_attr_deferred_probe;

#if defined(CONFIG_MODULES) && defined(CONFIG_SYSFS)
extern void module_add_driver(struct module *mod, struct device_driver *drv);
extern void module_remove_driver(struct device_driver *drv);
@@ -152,3 +157,13 @@ extern int devtmpfs_init(void);
#else
static inline int devtmpfs_init(void) { return 0; }
#endif

/* Device links support */
extern int device_links_read_lock(void);
extern void device_links_read_unlock(int idx);
extern int device_links_check_suppliers(struct device *dev);
extern void device_links_driver_bound(struct device *dev);
extern void device_links_driver_cleanup(struct device *dev);
extern void device_links_no_driver(struct device *dev);
extern bool device_links_busy(struct device *dev);
extern void device_links_unbind_consumers(struct device *dev);
Loading