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

Commit a18d783f authored by Linus Torvalds's avatar Linus Torvalds
Browse files

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

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

Pull driver core updates from Greg KH:
 "Here are all of the driver core and related patches for 4.19-rc1.

  Nothing huge here, just a number of small cleanups and the ability to
  now stop the deferred probing after init happens.

  All of these have been in linux-next for a while with only a merge
  issue reported"

* tag 'driver-core-4.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (21 commits)
  base: core: Remove WARN_ON from link dependencies check
  drivers/base: stop new probing during shutdown
  drivers: core: Remove glue dirs from sysfs earlier
  driver core: remove unnecessary function extern declare
  sysfs.h: fix non-kernel-doc comment
  PM / Domains: Stop deferring probe at the end of initcall
  iommu: Remove IOMMU_OF_DECLARE
  iommu: Stop deferring probe at end of initcalls
  pinctrl: Support stopping deferred probe after initcalls
  dt-bindings: pinctrl: add a 'pinctrl-use-default' property
  driver core: allow stopping deferred probe after init
  driver core: add a debugfs entry to show deferred devices
  sysfs: Fix internal_create_group() for named group updates
  base: fix order of OF initialization
  linux/device.h: fix kernel-doc notation warning
  Documentation: update firmware loader fallback reference
  kobject: Replace strncpy with memcpy
  drivers: base: cacheinfo: use OF property_read_u32 instead of get_property,read_number
  kernfs: Replace strncpy with memcpy
  device: Add #define dev_fmt similar to #define pr_fmt
  ...
parents d5acba26 d2fc88a6
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -812,6 +812,15 @@
			Defaults to the default architecture's huge page size
			if not specified.

	deferred_probe_timeout=
			[KNL] Debugging option to set a timeout in seconds for
			deferred probe to give up waiting on dependencies to
			probe. Only specific dependencies (subsystems or
			drivers) that have opted in will be ignored. A timeout of 0
			will timeout at the end of initcalls. This option will also
			dump out devices still on the deferred probe list after
			retrying.

	dhash_entries=	[KNL]
			Set number of hash buckets for dentry cache.

+6 −0
Original line number Diff line number Diff line
@@ -103,6 +103,12 @@ Optional properties:
#pinctrl-cells:	Number of pin control cells in addition to the index within the
		pin controller device instance

pinctrl-use-default: Boolean. Indicates that the OS can use the boot default
		pin configuration. This allows using an OS that does not have a
		driver for the pin controller. This property can be set either
		globally for the pin controller or in child nodes for individual
		pin group control.

Pin controller devices should contain the pin configuration nodes that client
devices reference.

+6 −1
Original line number Diff line number Diff line
@@ -92,7 +92,7 @@ the loading file.

The firmware device used to help load firmware using sysfs is only created if
direct firmware loading fails and if the fallback mechanism is enabled for your
firmware request, this is set up with fw_load_from_user_helper().  It is
firmware request, this is set up with :c:func:`firmware_fallback_sysfs`. It is
important to re-iterate that no device is created if a direct filesystem lookup
succeeded.

@@ -108,6 +108,11 @@ firmware_data_read() and firmware_loading_show() are just provided for the
test_firmware driver for testing, they are not called in normal use or
expected to be used regularly by userspace.

firmware_fallback_sysfs
-----------------------
.. kernel-doc:: drivers/base/firmware_loader/fallback.c
   :functions: firmware_fallback_sysfs

Firmware kobject uevent fallback mechanism
==========================================

+0 −2
Original line number Diff line number Diff line
@@ -84,8 +84,6 @@ struct device_private {
#define to_device_private_bus(obj)	\
	container_of(obj, struct device_private, knode_bus)

extern int device_private_init(struct device *dev);

/* initialisation functions */
extern int devices_init(void);
extern int buses_init(void);
+10 −14
Original line number Diff line number Diff line
@@ -74,52 +74,48 @@ static inline int get_cacheinfo_idx(enum cache_type type)
static void cache_size(struct cacheinfo *this_leaf, struct device_node *np)
{
	const char *propname;
	const __be32 *cache_size;
	int ct_idx;

	ct_idx = get_cacheinfo_idx(this_leaf->type);
	propname = cache_type_info[ct_idx].size_prop;

	cache_size = of_get_property(np, propname, NULL);
	if (cache_size)
		this_leaf->size = of_read_number(cache_size, 1);
	if (of_property_read_u32(np, propname, &this_leaf->size))
		this_leaf->size = 0;
}

/* not cache_line_size() because that's a macro in include/linux/cache.h */
static void cache_get_line_size(struct cacheinfo *this_leaf,
				struct device_node *np)
{
	const __be32 *line_size;
	int i, lim, ct_idx;

	ct_idx = get_cacheinfo_idx(this_leaf->type);
	lim = ARRAY_SIZE(cache_type_info[ct_idx].line_size_props);

	for (i = 0; i < lim; i++) {
		int ret;
		u32 line_size;
		const char *propname;

		propname = cache_type_info[ct_idx].line_size_props[i];
		line_size = of_get_property(np, propname, NULL);
		if (line_size)
		ret = of_property_read_u32(np, propname, &line_size);
		if (!ret) {
			this_leaf->coherency_line_size = line_size;
			break;
		}

	if (line_size)
		this_leaf->coherency_line_size = of_read_number(line_size, 1);
	}
}

static void cache_nr_sets(struct cacheinfo *this_leaf, struct device_node *np)
{
	const char *propname;
	const __be32 *nr_sets;
	int ct_idx;

	ct_idx = get_cacheinfo_idx(this_leaf->type);
	propname = cache_type_info[ct_idx].nr_sets_prop;

	nr_sets = of_get_property(np, propname, NULL);
	if (nr_sets)
		this_leaf->number_of_sets = of_read_number(nr_sets, 1);
	if (of_property_read_u32(np, propname, &this_leaf->number_of_sets))
		this_leaf->number_of_sets = 0;
}

static void cache_associativity(struct cacheinfo *this_leaf)
Loading