mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 19:21:31 -04:00
DeviceTree updates for 4.6:
- New tool dtx_diff to diff DT files. - Sync kernel's dtc/libfdt to current dtc repo master. - Fix for reserved memory regions located in highmem. - Document standard unit suffixes for DT properties. - Various DT binding doc updates. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAABAgAGBQJW7B34AAoJEPr7XbWNvGHDI4QP/0W0s3dvJ4l/TNeu/n1ZN8i7 H4FYNcNGVEPJMaI4gIV+GOnxJ4hTnEX2ftG9MEZCywVHWNCg4IAaIW1wQ52Sufnc Uncc9qO0MMR5Y1Siu/DuLi+ARyPQrke3M/o5xU9XJjSdz9QpnYw1MpMnpAJANomk /8Wjn2jEBHDJrxmJ73nE/CAVu8iFyWHTmt5pDQBoQub2NVuAX6rNcVmpmr0PhDMd 0CKokB+wmLHZEA2R4BBefjLwwKU1WrF/5ytXpsJ01NeZsExagJZz1fQdy3Z6o1Xx PRTukmmNhknatNTJOD8XmLr/SWN2CKNuJK5EOoV2opAvN/fc+mrk95DGKzjh5n64 aCRHzZgKAOYOqdVJKHfJ9hfzgG/zdt4mt1RKhLD+6qZNoSeQSrtikN3DWibPMZQR uHRC9fqalx+W4cBH4jakGYrpsbQOaQFjb6vHY8V/auSB2cx97YVuKCawnSerjWZv 1tu8dqNG0qwt9g0hgA+ycwitulUNSLSvLGp3mxBJXN2ULPHygCw53JUWFQEZhoAa JQqZ7lrUSE+AEp6Cwc0sNn07UMoCAoZKbTaurm2rn2RrKMfnirbf/sdZkc9Hq2pg TIJOJlmJmvheoCl7894iV1l18ooPqldk6h8d9fc6rngaQYkNaV0c9nlaMLTa2Rwi bVztrJItiymIhjIB86Iw =hz7v -----END PGP SIGNATURE----- Merge tag 'devicetree-for-4.6' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux Pull DeviceTree updates from Rob Herring: - new tool 'dtx_diff' to diff DT files - sync kernel's dtc/libfdt to current dtc repo master - fix for reserved memory regions located in highmem - document standard unit suffixes for DT properties - various DT binding doc updates * tag 'devicetree-for-4.6' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: of: Add vendor prefix for eGalax_eMPIA Technology Inc Input: ads7846: Add description how to use internal reference (ADS7846) ARM: realview: add EB syscon variants to bindings devicetree: bindings: ARM: Use "uV" for micro-volt serial: fsl-imx-uart: Fix typo in fsl,dte-mode description of: add 'const' for of_property_*_string*() parameter '*np' of/unittest: fix infinite loop in of_unittest_destroy_tracked_overlays() of: alloc anywhere from memblock if range not specified kbuild: Allow using host dtc instead of kernel's copy of: resolver: Add missing of_node_get and of_node_put of: Add United Radiant Technology Corporation vendor prefix dt/bindings: add documentation on standard property unit suffixes scripts/dtc: Update to upstream commit b06e55c88b9b ARM: boot: Add an implementation of strnlen for libfdt scripts/dtc: dtx_diff - add info to error message dtc: create tool to diff device trees
This commit is contained in:
commit
31e182363b
25 changed files with 827 additions and 133 deletions
|
|
@ -1341,10 +1341,10 @@ EXPORT_SYMBOL_GPL(of_property_read_u64_array);
|
|||
*
|
||||
* The out_string pointer is modified only if a valid string can be decoded.
|
||||
*/
|
||||
int of_property_read_string(struct device_node *np, const char *propname,
|
||||
int of_property_read_string(const struct device_node *np, const char *propname,
|
||||
const char **out_string)
|
||||
{
|
||||
struct property *prop = of_find_property(np, propname, NULL);
|
||||
const struct property *prop = of_find_property(np, propname, NULL);
|
||||
if (!prop)
|
||||
return -EINVAL;
|
||||
if (!prop->value)
|
||||
|
|
@ -1365,10 +1365,10 @@ EXPORT_SYMBOL_GPL(of_property_read_string);
|
|||
* This function searches a string list property and returns the index
|
||||
* of a specific string value.
|
||||
*/
|
||||
int of_property_match_string(struct device_node *np, const char *propname,
|
||||
int of_property_match_string(const struct device_node *np, const char *propname,
|
||||
const char *string)
|
||||
{
|
||||
struct property *prop = of_find_property(np, propname, NULL);
|
||||
const struct property *prop = of_find_property(np, propname, NULL);
|
||||
size_t l;
|
||||
int i;
|
||||
const char *p, *end;
|
||||
|
|
@ -1404,10 +1404,11 @@ EXPORT_SYMBOL_GPL(of_property_match_string);
|
|||
* Don't call this function directly. It is a utility helper for the
|
||||
* of_property_read_string*() family of functions.
|
||||
*/
|
||||
int of_property_read_string_helper(struct device_node *np, const char *propname,
|
||||
const char **out_strs, size_t sz, int skip)
|
||||
int of_property_read_string_helper(const struct device_node *np,
|
||||
const char *propname, const char **out_strs,
|
||||
size_t sz, int skip)
|
||||
{
|
||||
struct property *prop = of_find_property(np, propname, NULL);
|
||||
const struct property *prop = of_find_property(np, propname, NULL);
|
||||
int l = 0, i = 0;
|
||||
const char *p, *end;
|
||||
|
||||
|
|
|
|||
|
|
@ -32,11 +32,13 @@ int __init __weak early_init_dt_alloc_reserved_memory_arch(phys_addr_t size,
|
|||
phys_addr_t align, phys_addr_t start, phys_addr_t end, bool nomap,
|
||||
phys_addr_t *res_base)
|
||||
{
|
||||
phys_addr_t base;
|
||||
/*
|
||||
* We use __memblock_alloc_base() because memblock_alloc_base()
|
||||
* panic()s on allocation failure.
|
||||
*/
|
||||
phys_addr_t base = __memblock_alloc_base(size, align, end);
|
||||
end = !end ? MEMBLOCK_ALLOC_ANYWHERE : end;
|
||||
base = __memblock_alloc_base(size, align, end);
|
||||
if (!base)
|
||||
return -ENOMEM;
|
||||
|
||||
|
|
|
|||
|
|
@ -36,12 +36,14 @@ static struct device_node *__of_find_node_by_full_name(struct device_node *node,
|
|||
|
||||
/* check */
|
||||
if (of_node_cmp(node->full_name, full_name) == 0)
|
||||
return node;
|
||||
return of_node_get(node);
|
||||
|
||||
for_each_child_of_node(node, child) {
|
||||
found = __of_find_node_by_full_name(child, full_name);
|
||||
if (found != NULL)
|
||||
if (found != NULL) {
|
||||
of_node_put(child);
|
||||
return found;
|
||||
}
|
||||
}
|
||||
|
||||
return NULL;
|
||||
|
|
@ -174,6 +176,7 @@ static int __of_adjust_phandle_ref(struct device_node *node,
|
|||
if (of_prop_cmp(sprop->name, propstr) == 0)
|
||||
break;
|
||||
}
|
||||
of_node_put(refnode);
|
||||
|
||||
if (!sprop) {
|
||||
pr_err("%s: Could not find property '%s'\n",
|
||||
|
|
|
|||
|
|
@ -1165,6 +1165,11 @@ static void of_unittest_destroy_tracked_overlays(void)
|
|||
continue;
|
||||
|
||||
ret = of_overlay_destroy(id + overlay_first_id);
|
||||
if (ret == -ENODEV) {
|
||||
pr_warn("%s: no overlay to destroy for #%d\n",
|
||||
__func__, id + overlay_first_id);
|
||||
continue;
|
||||
}
|
||||
if (ret != 0) {
|
||||
defers++;
|
||||
pr_warn("%s: overlay destroy failed for #%d\n",
|
||||
|
|
|
|||
Loading…
Reference in a new issue