mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-13 10:08:19 +00:00
DeviceTree fixes for 3.18:
- 2 fixes for OF selftest code - Fix for PowerPC address parsing to disable work-around except on old PowerMACs - Fix a crash when earlycon is enabled, but no device is found - DT documentation fixes and missing vendor prefixes All but the doc updates are also for stable. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQEcBAABAgAGBQJUbqAVAAoJEMhvYp4jgsXiNLUH/A5cpNKcs2D0GCpDxxkZa6X/ o5vwuECwd7dFH83lkFWdNFCNJ6B7hUUG3RDO63SgzZch2auQR1yETJrXSbUNeDKM HMp3CVvVjqFz7h86H2x+mijxUPJl7YWtFuC1RQUJkMGULC16BnYLSVGrrqHI37BJ E5hdmfJtARUGcmZO291JB9bdfuR5gAfIR4GIYsAQHn0RbiuST/L1DyL2QFkh69eW yyeB9elIw+xYBUlEVMkq5LmH12l0VA1eSIofBWEfj40cCax1CblL1nzV1+s7oHpv JrATuyfxlTjs/tdUeeV/lMT4Vg/ICWsbPJKWb4UaJv0nH+u+oGiKSCyl5X4DH4c= =M65+ -----END PGP SIGNATURE----- Merge tag 'devicetree-fixes-for-3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux Pull devicetree fixes from Rob Herring: "DeviceTree fixes for 3.18: - two fixes for OF selftest code - fix for PowerPC address parsing to disable work-around except on old PowerMACs - fix a crash when earlycon is enabled, but no device is found - DT documentation fixes and missing vendor prefixes All but the doc updates are also for stable" * tag 'devicetree-fixes-for-3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: of/selftest: Fix testing when /aliases is missing of/selftest: Fix off-by-one error in removal path documentation: pinctrl bindings: Fix trivial typo 'abitrary' devicetree: bindings: Add vendor prefix for Micron Technology, Inc. of: Add vendor prefix for Chips&Media, Inc. of/base: Fix PowerPC address parsing hack devicetree: vendor-prefixes.txt: fix whitespace of: Fix crash if an earlycon driver is not found of/irq: Drop obsolete 'interrupts' vs 'interrupts-extended' text of: Spelling s/stucture/structure/ devicetree: bindings: add sandisk to the vendor prefixes
This commit is contained in:
commit
2e29a6d086
18 changed files with 42 additions and 25 deletions
|
@ -30,10 +30,6 @@ should only be used when a device has multiple interrupt parents.
|
||||||
Example:
|
Example:
|
||||||
interrupts-extended = <&intc1 5 1>, <&intc2 1 0>;
|
interrupts-extended = <&intc1 5 1>, <&intc2 1 0>;
|
||||||
|
|
||||||
A device node may contain either "interrupts" or "interrupts-extended", but not
|
|
||||||
both. If both properties are present, then the operating system should log an
|
|
||||||
error and use only the data in "interrupts".
|
|
||||||
|
|
||||||
2) Interrupt controller nodes
|
2) Interrupt controller nodes
|
||||||
-----------------------------
|
-----------------------------
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@ Please refer to pinctrl-bindings.txt in this directory for details of the
|
||||||
common pinctrl bindings used by client devices, including the meaning of the
|
common pinctrl bindings used by client devices, including the meaning of the
|
||||||
phrase "pin configuration node".
|
phrase "pin configuration node".
|
||||||
|
|
||||||
TZ1090-PDC's pin configuration nodes act as a container for an abitrary number
|
TZ1090-PDC's pin configuration nodes act as a container for an arbitrary number
|
||||||
of subnodes. Each of these subnodes represents some desired configuration for a
|
of subnodes. Each of these subnodes represents some desired configuration for a
|
||||||
pin, a group, or a list of pins or groups. This configuration can include the
|
pin, a group, or a list of pins or groups. This configuration can include the
|
||||||
mux function to select on those pin(s)/group(s), and various pin configuration
|
mux function to select on those pin(s)/group(s), and various pin configuration
|
||||||
|
|
|
@ -9,7 +9,7 @@ Please refer to pinctrl-bindings.txt in this directory for details of the
|
||||||
common pinctrl bindings used by client devices, including the meaning of the
|
common pinctrl bindings used by client devices, including the meaning of the
|
||||||
phrase "pin configuration node".
|
phrase "pin configuration node".
|
||||||
|
|
||||||
TZ1090's pin configuration nodes act as a container for an abitrary number of
|
TZ1090's pin configuration nodes act as a container for an arbitrary number of
|
||||||
subnodes. Each of these subnodes represents some desired configuration for a
|
subnodes. Each of these subnodes represents some desired configuration for a
|
||||||
pin, a group, or a list of pins or groups. This configuration can include the
|
pin, a group, or a list of pins or groups. This configuration can include the
|
||||||
mux function to select on those pin(s)/group(s), and various pin configuration
|
mux function to select on those pin(s)/group(s), and various pin configuration
|
||||||
|
|
|
@ -9,7 +9,7 @@ Please refer to pinctrl-bindings.txt in this directory for details of the
|
||||||
common pinctrl bindings used by client devices, including the meaning of the
|
common pinctrl bindings used by client devices, including the meaning of the
|
||||||
phrase "pin configuration node".
|
phrase "pin configuration node".
|
||||||
|
|
||||||
Lantiq's pin configuration nodes act as a container for an abitrary number of
|
Lantiq's pin configuration nodes act as a container for an arbitrary number of
|
||||||
subnodes. Each of these subnodes represents some desired configuration for a
|
subnodes. Each of these subnodes represents some desired configuration for a
|
||||||
pin, a group, or a list of pins or groups. This configuration can include the
|
pin, a group, or a list of pins or groups. This configuration can include the
|
||||||
mux function to select on those group(s), and two pin configuration parameters:
|
mux function to select on those group(s), and two pin configuration parameters:
|
||||||
|
|
|
@ -9,7 +9,7 @@ Please refer to pinctrl-bindings.txt in this directory for details of the
|
||||||
common pinctrl bindings used by client devices, including the meaning of the
|
common pinctrl bindings used by client devices, including the meaning of the
|
||||||
phrase "pin configuration node".
|
phrase "pin configuration node".
|
||||||
|
|
||||||
Lantiq's pin configuration nodes act as a container for an abitrary number of
|
Lantiq's pin configuration nodes act as a container for an arbitrary number of
|
||||||
subnodes. Each of these subnodes represents some desired configuration for a
|
subnodes. Each of these subnodes represents some desired configuration for a
|
||||||
pin, a group, or a list of pins or groups. This configuration can include the
|
pin, a group, or a list of pins or groups. This configuration can include the
|
||||||
mux function to select on those group(s), and two pin configuration parameters:
|
mux function to select on those group(s), and two pin configuration parameters:
|
||||||
|
|
|
@ -9,7 +9,7 @@ Please refer to pinctrl-bindings.txt in this directory for details of the
|
||||||
common pinctrl bindings used by client devices, including the meaning of the
|
common pinctrl bindings used by client devices, including the meaning of the
|
||||||
phrase "pin configuration node".
|
phrase "pin configuration node".
|
||||||
|
|
||||||
Tegra's pin configuration nodes act as a container for an abitrary number of
|
Tegra's pin configuration nodes act as a container for an arbitrary number of
|
||||||
subnodes. Each of these subnodes represents some desired configuration for a
|
subnodes. Each of these subnodes represents some desired configuration for a
|
||||||
pin, a group, or a list of pins or groups. This configuration can include the
|
pin, a group, or a list of pins or groups. This configuration can include the
|
||||||
mux function to select on those pin(s)/group(s), and various pin configuration
|
mux function to select on those pin(s)/group(s), and various pin configuration
|
||||||
|
|
|
@ -13,7 +13,7 @@ Optional properties:
|
||||||
Please refer to pinctrl-bindings.txt in this directory for details of the common
|
Please refer to pinctrl-bindings.txt in this directory for details of the common
|
||||||
pinctrl bindings used by client devices.
|
pinctrl bindings used by client devices.
|
||||||
|
|
||||||
SiRFprimaII's pinmux nodes act as a container for an abitrary number of subnodes.
|
SiRFprimaII's pinmux nodes act as a container for an arbitrary number of subnodes.
|
||||||
Each of these subnodes represents some desired configuration for a group of pins.
|
Each of these subnodes represents some desired configuration for a group of pins.
|
||||||
|
|
||||||
Required subnode-properties:
|
Required subnode-properties:
|
||||||
|
|
|
@ -32,7 +32,7 @@ Required properties:
|
||||||
Please refer to pinctrl-bindings.txt in this directory for details of the common
|
Please refer to pinctrl-bindings.txt in this directory for details of the common
|
||||||
pinctrl bindings used by client devices.
|
pinctrl bindings used by client devices.
|
||||||
|
|
||||||
SPEAr's pinmux nodes act as a container for an abitrary number of subnodes. Each
|
SPEAr's pinmux nodes act as a container for an arbitrary number of subnodes. Each
|
||||||
of these subnodes represents muxing for a pin, a group, or a list of pins or
|
of these subnodes represents muxing for a pin, a group, or a list of pins or
|
||||||
groups.
|
groups.
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,7 @@ Please refer to pinctrl-bindings.txt in this directory for details of the
|
||||||
common pinctrl bindings used by client devices, including the meaning of the
|
common pinctrl bindings used by client devices, including the meaning of the
|
||||||
phrase "pin configuration node".
|
phrase "pin configuration node".
|
||||||
|
|
||||||
Qualcomm's pin configuration nodes act as a container for an abitrary number of
|
Qualcomm's pin configuration nodes act as a container for an arbitrary number of
|
||||||
subnodes. Each of these subnodes represents some desired configuration for a
|
subnodes. Each of these subnodes represents some desired configuration for a
|
||||||
pin, a group, or a list of pins or groups. This configuration can include the
|
pin, a group, or a list of pins or groups. This configuration can include the
|
||||||
mux function to select on those pin(s)/group(s), and various pin configuration
|
mux function to select on those pin(s)/group(s), and various pin configuration
|
||||||
|
|
|
@ -47,7 +47,7 @@ Please refer to pinctrl-bindings.txt in this directory for details of the
|
||||||
common pinctrl bindings used by client devices, including the meaning of the
|
common pinctrl bindings used by client devices, including the meaning of the
|
||||||
phrase "pin configuration node".
|
phrase "pin configuration node".
|
||||||
|
|
||||||
The pin configuration nodes act as a container for an abitrary number of
|
The pin configuration nodes act as a container for an arbitrary number of
|
||||||
subnodes. Each of these subnodes represents some desired configuration for a
|
subnodes. Each of these subnodes represents some desired configuration for a
|
||||||
pin, a group, or a list of pins or groups. This configuration can include the
|
pin, a group, or a list of pins or groups. This configuration can include the
|
||||||
mux function to select on those pin(s)/group(s), and various pin configuration
|
mux function to select on those pin(s)/group(s), and various pin configuration
|
||||||
|
|
|
@ -18,7 +18,7 @@ Please refer to pinctrl-bindings.txt in this directory for details of the
|
||||||
common pinctrl bindings used by client devices, including the meaning of the
|
common pinctrl bindings used by client devices, including the meaning of the
|
||||||
phrase "pin configuration node".
|
phrase "pin configuration node".
|
||||||
|
|
||||||
Qualcomm's pin configuration nodes act as a container for an abitrary number of
|
Qualcomm's pin configuration nodes act as a container for an arbitrary number of
|
||||||
subnodes. Each of these subnodes represents some desired configuration for a
|
subnodes. Each of these subnodes represents some desired configuration for a
|
||||||
pin, a group, or a list of pins or groups. This configuration can include the
|
pin, a group, or a list of pins or groups. This configuration can include the
|
||||||
mux function to select on those pin(s)/group(s), and various pin configuration
|
mux function to select on those pin(s)/group(s), and various pin configuration
|
||||||
|
|
|
@ -47,7 +47,7 @@ Please refer to pinctrl-bindings.txt in this directory for details of the
|
||||||
common pinctrl bindings used by client devices, including the meaning of the
|
common pinctrl bindings used by client devices, including the meaning of the
|
||||||
phrase "pin configuration node".
|
phrase "pin configuration node".
|
||||||
|
|
||||||
The pin configuration nodes act as a container for an abitrary number of
|
The pin configuration nodes act as a container for an arbitrary number of
|
||||||
subnodes. Each of these subnodes represents some desired configuration for a
|
subnodes. Each of these subnodes represents some desired configuration for a
|
||||||
pin, a group, or a list of pins or groups. This configuration can include the
|
pin, a group, or a list of pins or groups. This configuration can include the
|
||||||
mux function to select on those pin(s)/group(s), and various pin configuration
|
mux function to select on those pin(s)/group(s), and various pin configuration
|
||||||
|
|
|
@ -18,7 +18,7 @@ Please refer to pinctrl-bindings.txt in this directory for details of the
|
||||||
common pinctrl bindings used by client devices, including the meaning of the
|
common pinctrl bindings used by client devices, including the meaning of the
|
||||||
phrase "pin configuration node".
|
phrase "pin configuration node".
|
||||||
|
|
||||||
Qualcomm's pin configuration nodes act as a container for an abitrary number of
|
Qualcomm's pin configuration nodes act as a container for an arbitrary number of
|
||||||
subnodes. Each of these subnodes represents some desired configuration for a
|
subnodes. Each of these subnodes represents some desired configuration for a
|
||||||
pin, a group, or a list of pins or groups. This configuration can include the
|
pin, a group, or a list of pins or groups. This configuration can include the
|
||||||
mux function to select on those pin(s)/group(s), and various pin configuration
|
mux function to select on those pin(s)/group(s), and various pin configuration
|
||||||
|
|
|
@ -34,6 +34,7 @@ chipidea Chipidea, Inc
|
||||||
chrp Common Hardware Reference Platform
|
chrp Common Hardware Reference Platform
|
||||||
chunghwa Chunghwa Picture Tubes Ltd.
|
chunghwa Chunghwa Picture Tubes Ltd.
|
||||||
cirrus Cirrus Logic, Inc.
|
cirrus Cirrus Logic, Inc.
|
||||||
|
cnm Chips&Media, Inc.
|
||||||
cortina Cortina Systems, Inc.
|
cortina Cortina Systems, Inc.
|
||||||
crystalfontz Crystalfontz America, Inc.
|
crystalfontz Crystalfontz America, Inc.
|
||||||
dallas Maxim Integrated Products (formerly Dallas Semiconductor)
|
dallas Maxim Integrated Products (formerly Dallas Semiconductor)
|
||||||
|
@ -92,6 +93,7 @@ maxim Maxim Integrated Products
|
||||||
mediatek MediaTek Inc.
|
mediatek MediaTek Inc.
|
||||||
micrel Micrel Inc.
|
micrel Micrel Inc.
|
||||||
microchip Microchip Technology Inc.
|
microchip Microchip Technology Inc.
|
||||||
|
micron Micron Technology Inc.
|
||||||
mitsubishi Mitsubishi Electric Corporation
|
mitsubishi Mitsubishi Electric Corporation
|
||||||
mosaixtech Mosaix Technologies, Inc.
|
mosaixtech Mosaix Technologies, Inc.
|
||||||
moxa Moxa
|
moxa Moxa
|
||||||
|
@ -127,6 +129,7 @@ renesas Renesas Electronics Corporation
|
||||||
ricoh Ricoh Co. Ltd.
|
ricoh Ricoh Co. Ltd.
|
||||||
rockchip Fuzhou Rockchip Electronics Co., Ltd
|
rockchip Fuzhou Rockchip Electronics Co., Ltd
|
||||||
samsung Samsung Semiconductor
|
samsung Samsung Semiconductor
|
||||||
|
sandisk Sandisk Corporation
|
||||||
sbs Smart Battery System
|
sbs Smart Battery System
|
||||||
schindler Schindler
|
schindler Schindler
|
||||||
seagate Seagate Technology PLC
|
seagate Seagate Technology PLC
|
||||||
|
@ -138,7 +141,7 @@ silergy Silergy Corp.
|
||||||
sirf SiRF Technology, Inc.
|
sirf SiRF Technology, Inc.
|
||||||
sitronix Sitronix Technology Corporation
|
sitronix Sitronix Technology Corporation
|
||||||
smsc Standard Microsystems Corporation
|
smsc Standard Microsystems Corporation
|
||||||
snps Synopsys, Inc.
|
snps Synopsys, Inc.
|
||||||
solidrun SolidRun
|
solidrun SolidRun
|
||||||
sony Sony Corporation
|
sony Sony Corporation
|
||||||
spansion Spansion Inc.
|
spansion Spansion Inc.
|
||||||
|
|
|
@ -450,6 +450,21 @@ static struct of_bus *of_match_bus(struct device_node *np)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int of_empty_ranges_quirk(void)
|
||||||
|
{
|
||||||
|
if (IS_ENABLED(CONFIG_PPC)) {
|
||||||
|
/* To save cycles, we cache the result */
|
||||||
|
static int quirk_state = -1;
|
||||||
|
|
||||||
|
if (quirk_state < 0)
|
||||||
|
quirk_state =
|
||||||
|
of_machine_is_compatible("Power Macintosh") ||
|
||||||
|
of_machine_is_compatible("MacRISC");
|
||||||
|
return quirk_state;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
static int of_translate_one(struct device_node *parent, struct of_bus *bus,
|
static int of_translate_one(struct device_node *parent, struct of_bus *bus,
|
||||||
struct of_bus *pbus, __be32 *addr,
|
struct of_bus *pbus, __be32 *addr,
|
||||||
int na, int ns, int pna, const char *rprop)
|
int na, int ns, int pna, const char *rprop)
|
||||||
|
@ -475,12 +490,10 @@ static int of_translate_one(struct device_node *parent, struct of_bus *bus,
|
||||||
* This code is only enabled on powerpc. --gcl
|
* This code is only enabled on powerpc. --gcl
|
||||||
*/
|
*/
|
||||||
ranges = of_get_property(parent, rprop, &rlen);
|
ranges = of_get_property(parent, rprop, &rlen);
|
||||||
#if !defined(CONFIG_PPC)
|
if (ranges == NULL && !of_empty_ranges_quirk()) {
|
||||||
if (ranges == NULL) {
|
|
||||||
pr_err("OF: no ranges; cannot translate\n");
|
pr_err("OF: no ranges; cannot translate\n");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
#endif /* !defined(CONFIG_PPC) */
|
|
||||||
if (ranges == NULL || rlen == 0) {
|
if (ranges == NULL || rlen == 0) {
|
||||||
offset = of_read_number(addr, na);
|
offset = of_read_number(addr, na);
|
||||||
memset(addr, 0, pna * 4);
|
memset(addr, 0, pna * 4);
|
||||||
|
|
|
@ -247,7 +247,7 @@ void of_node_release(struct kobject *kobj)
|
||||||
* @allocflags: Allocation flags (typically pass GFP_KERNEL)
|
* @allocflags: Allocation flags (typically pass GFP_KERNEL)
|
||||||
*
|
*
|
||||||
* Copy a property by dynamically allocating the memory of both the
|
* Copy a property by dynamically allocating the memory of both the
|
||||||
* property stucture and the property name & contents. The property's
|
* property structure and the property name & contents. The property's
|
||||||
* flags have the OF_DYNAMIC bit set so that we can differentiate between
|
* flags have the OF_DYNAMIC bit set so that we can differentiate between
|
||||||
* dynamically allocated properties and not.
|
* dynamically allocated properties and not.
|
||||||
* Returns the newly allocated property or NULL on out of memory error.
|
* Returns the newly allocated property or NULL on out of memory error.
|
||||||
|
|
|
@ -773,7 +773,7 @@ int __init early_init_dt_scan_chosen_serial(void)
|
||||||
if (offset < 0)
|
if (offset < 0)
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
|
||||||
while (match->compatible) {
|
while (match->compatible[0]) {
|
||||||
unsigned long addr;
|
unsigned long addr;
|
||||||
if (fdt_node_check_compatible(fdt, offset, match->compatible)) {
|
if (fdt_node_check_compatible(fdt, offset, match->compatible)) {
|
||||||
match++;
|
match++;
|
||||||
|
|
|
@ -896,10 +896,14 @@ static void selftest_data_remove(void)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
while (last_node_index >= 0) {
|
while (last_node_index-- > 0) {
|
||||||
if (nodes[last_node_index]) {
|
if (nodes[last_node_index]) {
|
||||||
np = of_find_node_by_path(nodes[last_node_index]->full_name);
|
np = of_find_node_by_path(nodes[last_node_index]->full_name);
|
||||||
if (strcmp(np->full_name, "/aliases") != 0) {
|
if (np == nodes[last_node_index]) {
|
||||||
|
if (of_aliases == np) {
|
||||||
|
of_node_put(of_aliases);
|
||||||
|
of_aliases = NULL;
|
||||||
|
}
|
||||||
detach_node_and_children(np);
|
detach_node_and_children(np);
|
||||||
} else {
|
} else {
|
||||||
for_each_property_of_node(np, prop) {
|
for_each_property_of_node(np, prop) {
|
||||||
|
@ -908,7 +912,6 @@ static void selftest_data_remove(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
last_node_index--;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -921,6 +924,8 @@ static int __init of_selftest(void)
|
||||||
res = selftest_data_add();
|
res = selftest_data_add();
|
||||||
if (res)
|
if (res)
|
||||||
return res;
|
return res;
|
||||||
|
if (!of_aliases)
|
||||||
|
of_aliases = of_find_node_by_path("/aliases");
|
||||||
|
|
||||||
np = of_find_node_by_path("/testcase-data/phandle-tests/consumer-a");
|
np = of_find_node_by_path("/testcase-data/phandle-tests/consumer-a");
|
||||||
if (!np) {
|
if (!np) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue