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

Commit bbb19555 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull DeviceTree fixes from Rob Herring:

 - Fix compile error drivers/spi/spi-rspi.c with !CONFIG_OF
 - Fix warnings for unused/uninitialized variables with !CONFIG_OF
 - Fix PCIe bus matching for powerpc
 - Add documentation for various vendor strings

* tag 'dt-fixes-for-3.14' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux:
  DT: Add vendor prefix for Spansion Inc.
  of/device: Nullify match table in of_match_device() for CONFIG_OF=n
  dt-bindings: add vendor-prefix for neonode
  of: fix PCI bus match for PCIe slots
  of: restructure for_each macros to fix compile warnings
  of: add vendor prefix for Honeywell
  of: Update qcom vendor prefix description
  of: add vendor prefix for Allwinner Technology
parents 738b52bb 860a445c
Loading
Loading
Loading
Loading
+5 −1
Original line number Original line Diff line number Diff line
@@ -8,6 +8,7 @@ ad Avionic Design GmbH
adi	Analog Devices, Inc.
adi	Analog Devices, Inc.
aeroflexgaisler	Aeroflex Gaisler AB
aeroflexgaisler	Aeroflex Gaisler AB
ak	Asahi Kasei Corp.
ak	Asahi Kasei Corp.
allwinner	Allwinner Technology Co., Ltd.
altr	Altera Corp.
altr	Altera Corp.
amcc	Applied Micro Circuits Corporation (APM, formally AMCC)
amcc	Applied Micro Circuits Corporation (APM, formally AMCC)
amstaos	AMS-Taos Inc.
amstaos	AMS-Taos Inc.
@@ -40,6 +41,7 @@ gmt Global Mixed-mode Technology, Inc.
gumstix	Gumstix, Inc.
gumstix	Gumstix, Inc.
haoyu	Haoyu Microelectronic Co. Ltd.
haoyu	Haoyu Microelectronic Co. Ltd.
hisilicon	Hisilicon Limited.
hisilicon	Hisilicon Limited.
honeywell	Honeywell
hp	Hewlett Packard
hp	Hewlett Packard
ibm	International Business Machines (IBM)
ibm	International Business Machines (IBM)
idt	Integrated Device Technologies, Inc.
idt	Integrated Device Technologies, Inc.
@@ -55,6 +57,7 @@ maxim Maxim Integrated Products
microchip	Microchip Technology Inc.
microchip	Microchip Technology Inc.
mosaixtech	Mosaix Technologies, Inc.
mosaixtech	Mosaix Technologies, Inc.
national	National Semiconductor
national	National Semiconductor
neonode		Neonode Inc.
nintendo	Nintendo
nintendo	Nintendo
nvidia	NVIDIA
nvidia	NVIDIA
nxp	NXP Semiconductors
nxp	NXP Semiconductors
@@ -64,7 +67,7 @@ phytec PHYTEC Messtechnik GmbH
picochip	Picochip Ltd
picochip	Picochip Ltd
powervr	PowerVR (deprecated, use img)
powervr	PowerVR (deprecated, use img)
qca	Qualcomm Atheros, Inc.
qca	Qualcomm Atheros, Inc.
qcom	Qualcomm, Inc.
qcom	Qualcomm Technologies, Inc
ralink	Mediatek/Ralink Technology Corp.
ralink	Mediatek/Ralink Technology Corp.
ramtron	Ramtron International
ramtron	Ramtron International
realtek Realtek Semiconductor Corp.
realtek Realtek Semiconductor Corp.
@@ -78,6 +81,7 @@ silabs Silicon Laboratories
simtek
simtek
sirf	SiRF Technology, Inc.
sirf	SiRF Technology, Inc.
snps 	Synopsys, Inc.
snps 	Synopsys, Inc.
spansion	Spansion Inc.
st	STMicroelectronics
st	STMicroelectronics
ste	ST-Ericsson
ste	ST-Ericsson
stericsson	ST-Ericsson
stericsson	ST-Ericsson
+3 −2
Original line number Original line Diff line number Diff line
@@ -99,11 +99,12 @@ static unsigned int of_bus_default_get_flags(const __be32 *addr)
static int of_bus_pci_match(struct device_node *np)
static int of_bus_pci_match(struct device_node *np)
{
{
	/*
	/*
 	 * "pciex" is PCI Express
	 * "vci" is for the /chaos bridge on 1st-gen PCI powermacs
	 * "vci" is for the /chaos bridge on 1st-gen PCI powermacs
	 * "ht" is hypertransport
	 * "ht" is hypertransport
	 */
	 */
	return !strcmp(np->type, "pci") || !strcmp(np->type, "vci") ||
	return !strcmp(np->type, "pci") || !strcmp(np->type, "pciex") ||
		!strcmp(np->type, "ht");
		!strcmp(np->type, "vci") || !strcmp(np->type, "ht");
}
}


static void of_bus_pci_count_cells(struct device_node *np,
static void of_bus_pci_count_cells(struct device_node *np,
+84 −69
Original line number Original line Diff line number Diff line
@@ -169,35 +169,15 @@ static inline const char *of_node_full_name(const struct device_node *np)


extern struct device_node *of_find_node_by_name(struct device_node *from,
extern struct device_node *of_find_node_by_name(struct device_node *from,
	const char *name);
	const char *name);
#define for_each_node_by_name(dn, name) \
	for (dn = of_find_node_by_name(NULL, name); dn; \
	     dn = of_find_node_by_name(dn, name))
extern struct device_node *of_find_node_by_type(struct device_node *from,
extern struct device_node *of_find_node_by_type(struct device_node *from,
	const char *type);
	const char *type);
#define for_each_node_by_type(dn, type) \
	for (dn = of_find_node_by_type(NULL, type); dn; \
	     dn = of_find_node_by_type(dn, type))
extern struct device_node *of_find_compatible_node(struct device_node *from,
extern struct device_node *of_find_compatible_node(struct device_node *from,
	const char *type, const char *compat);
	const char *type, const char *compat);
#define for_each_compatible_node(dn, type, compatible) \
	for (dn = of_find_compatible_node(NULL, type, compatible); dn; \
	     dn = of_find_compatible_node(dn, type, compatible))
extern struct device_node *of_find_matching_node_and_match(
extern struct device_node *of_find_matching_node_and_match(
	struct device_node *from,
	struct device_node *from,
	const struct of_device_id *matches,
	const struct of_device_id *matches,
	const struct of_device_id **match);
	const struct of_device_id **match);
static inline struct device_node *of_find_matching_node(

	struct device_node *from,
	const struct of_device_id *matches)
{
	return of_find_matching_node_and_match(from, matches, NULL);
}
#define for_each_matching_node(dn, matches) \
	for (dn = of_find_matching_node(NULL, matches); dn; \
	     dn = of_find_matching_node(dn, matches))
#define for_each_matching_node_and_match(dn, matches, match) \
	for (dn = of_find_matching_node_and_match(NULL, matches, match); \
	     dn; dn = of_find_matching_node_and_match(dn, matches, match))
extern struct device_node *of_find_node_by_path(const char *path);
extern struct device_node *of_find_node_by_path(const char *path);
extern struct device_node *of_find_node_by_phandle(phandle handle);
extern struct device_node *of_find_node_by_phandle(phandle handle);
extern struct device_node *of_get_parent(const struct device_node *node);
extern struct device_node *of_get_parent(const struct device_node *node);
@@ -209,43 +189,11 @@ extern struct device_node *of_get_next_available_child(


extern struct device_node *of_get_child_by_name(const struct device_node *node,
extern struct device_node *of_get_child_by_name(const struct device_node *node,
					const char *name);
					const char *name);
#define for_each_child_of_node(parent, child) \
	for (child = of_get_next_child(parent, NULL); child != NULL; \
	     child = of_get_next_child(parent, child))

#define for_each_available_child_of_node(parent, child) \
	for (child = of_get_next_available_child(parent, NULL); child != NULL; \
	     child = of_get_next_available_child(parent, child))

static inline int of_get_child_count(const struct device_node *np)
{
	struct device_node *child;
	int num = 0;

	for_each_child_of_node(np, child)
		num++;

	return num;
}

static inline int of_get_available_child_count(const struct device_node *np)
{
	struct device_node *child;
	int num = 0;

	for_each_available_child_of_node(np, child)
		num++;

	return num;
}


/* cache lookup */
/* cache lookup */
extern struct device_node *of_find_next_cache_node(const struct device_node *);
extern struct device_node *of_find_next_cache_node(const struct device_node *);
extern struct device_node *of_find_node_with_property(
extern struct device_node *of_find_node_with_property(
	struct device_node *from, const char *prop_name);
	struct device_node *from, const char *prop_name);
#define for_each_node_with_property(dn, prop_name) \
	for (dn = of_find_node_with_property(NULL, prop_name); dn; \
	     dn = of_find_node_with_property(dn, prop_name))


extern struct property *of_find_property(const struct device_node *np,
extern struct property *of_find_property(const struct device_node *np,
					 const char *name,
					 const char *name,
@@ -367,42 +315,53 @@ static inline struct device_node *of_find_node_by_name(struct device_node *from,
	return NULL;
	return NULL;
}
}


static inline struct device_node *of_get_parent(const struct device_node *node)
static inline struct device_node *of_find_node_by_type(struct device_node *from,
	const char *type)
{
{
	return NULL;
	return NULL;
}
}


static inline bool of_have_populated_dt(void)
static inline struct device_node *of_find_matching_node_and_match(
	struct device_node *from,
	const struct of_device_id *matches,
	const struct of_device_id **match)
{
{
	return false;
	return NULL;
}
}


/* Kill an unused variable warning on a device_node pointer */
static inline struct device_node *of_get_parent(const struct device_node *node)
static inline void __of_use_dn(const struct device_node *np)
{
{
	return NULL;
}
}


#define for_each_child_of_node(parent, child) \
static inline struct device_node *of_get_next_child(
	while (__of_use_dn(parent), __of_use_dn(child), 0)
	const struct device_node *node, struct device_node *prev)
{
	return NULL;
}


#define for_each_available_child_of_node(parent, child) \
static inline struct device_node *of_get_next_available_child(
	while (0)
	const struct device_node *node, struct device_node *prev)
{
	return NULL;
}


static inline struct device_node *of_get_child_by_name(
static inline struct device_node *of_find_node_with_property(
					const struct device_node *node,
	struct device_node *from, const char *prop_name)
					const char *name)
{
{
	return NULL;
	return NULL;
}
}


static inline int of_get_child_count(const struct device_node *np)
static inline bool of_have_populated_dt(void)
{
{
	return 0;
	return false;
}
}


static inline int of_get_available_child_count(const struct device_node *np)
static inline struct device_node *of_get_child_by_name(
					const struct device_node *node,
					const char *name)
{
{
	return 0;
	return NULL;
}
}


static inline int of_device_is_compatible(const struct device_node *device,
static inline int of_device_is_compatible(const struct device_node *device,
@@ -569,6 +528,13 @@ extern int of_node_to_nid(struct device_node *np);
static inline int of_node_to_nid(struct device_node *device) { return 0; }
static inline int of_node_to_nid(struct device_node *device) { return 0; }
#endif
#endif


static inline struct device_node *of_find_matching_node(
	struct device_node *from,
	const struct of_device_id *matches)
{
	return of_find_matching_node_and_match(from, matches, NULL);
}

/**
/**
 * of_property_read_bool - Findfrom a property
 * of_property_read_bool - Findfrom a property
 * @np:		device node from which the property value is to be read.
 * @np:		device node from which the property value is to be read.
@@ -618,6 +584,55 @@ static inline int of_property_read_u32(const struct device_node *np,
		s;						\
		s;						\
		s = of_prop_next_string(prop, s))
		s = of_prop_next_string(prop, s))


#define for_each_node_by_name(dn, name) \
	for (dn = of_find_node_by_name(NULL, name); dn; \
	     dn = of_find_node_by_name(dn, name))
#define for_each_node_by_type(dn, type) \
	for (dn = of_find_node_by_type(NULL, type); dn; \
	     dn = of_find_node_by_type(dn, type))
#define for_each_compatible_node(dn, type, compatible) \
	for (dn = of_find_compatible_node(NULL, type, compatible); dn; \
	     dn = of_find_compatible_node(dn, type, compatible))
#define for_each_matching_node(dn, matches) \
	for (dn = of_find_matching_node(NULL, matches); dn; \
	     dn = of_find_matching_node(dn, matches))
#define for_each_matching_node_and_match(dn, matches, match) \
	for (dn = of_find_matching_node_and_match(NULL, matches, match); \
	     dn; dn = of_find_matching_node_and_match(dn, matches, match))

#define for_each_child_of_node(parent, child) \
	for (child = of_get_next_child(parent, NULL); child != NULL; \
	     child = of_get_next_child(parent, child))
#define for_each_available_child_of_node(parent, child) \
	for (child = of_get_next_available_child(parent, NULL); child != NULL; \
	     child = of_get_next_available_child(parent, child))

#define for_each_node_with_property(dn, prop_name) \
	for (dn = of_find_node_with_property(NULL, prop_name); dn; \
	     dn = of_find_node_with_property(dn, prop_name))

static inline int of_get_child_count(const struct device_node *np)
{
	struct device_node *child;
	int num = 0;

	for_each_child_of_node(np, child)
		num++;

	return num;
}

static inline int of_get_available_child_count(const struct device_node *np)
{
	struct device_node *child;
	int num = 0;

	for_each_available_child_of_node(np, child)
		num++;

	return num;
}

#if defined(CONFIG_PROC_FS) && defined(CONFIG_PROC_DEVICETREE)
#if defined(CONFIG_PROC_FS) && defined(CONFIG_PROC_DEVICETREE)
extern void proc_device_tree_add_node(struct device_node *, struct proc_dir_entry *);
extern void proc_device_tree_add_node(struct device_node *, struct proc_dir_entry *);
extern void proc_device_tree_add_prop(struct proc_dir_entry *pde, struct property *prop);
extern void proc_device_tree_add_prop(struct proc_dir_entry *pde, struct property *prop);
+3 −1
Original line number Original line Diff line number Diff line
@@ -78,11 +78,13 @@ static inline int of_device_uevent_modalias(struct device *dev,


static inline void of_device_node_put(struct device *dev) { }
static inline void of_device_node_put(struct device *dev) { }


static inline const struct of_device_id *of_match_device(
static inline const struct of_device_id *__of_match_device(
		const struct of_device_id *matches, const struct device *dev)
		const struct of_device_id *matches, const struct device *dev)
{
{
	return NULL;
	return NULL;
}
}
#define of_match_device(matches, dev)	\
	__of_match_device(of_match_ptr(matches), (dev))


static inline struct device_node *of_cpu_device_node_get(int cpu)
static inline struct device_node *of_cpu_device_node_get(int cpu)
{
{