Merge remote-tracking branch 'robh/for-next' into devicetree/next
This commit is contained in:
@@ -1,15 +1,20 @@
|
||||
config DTC
|
||||
bool
|
||||
|
||||
config OF
|
||||
bool
|
||||
menuconfig OF
|
||||
bool "Device Tree and Open Firmware support"
|
||||
help
|
||||
This option enables the device tree infrastructure.
|
||||
It is automatically selected by platforms that need it or can
|
||||
be enabled manually for unittests, overlays or
|
||||
compile-coverage.
|
||||
|
||||
menu "Device Tree and Open Firmware support"
|
||||
depends on OF
|
||||
if OF
|
||||
|
||||
config OF_UNITTEST
|
||||
bool "Device Tree runtime unit tests"
|
||||
depends on OF_IRQ && OF_EARLY_FLATTREE
|
||||
depends on OF_IRQ
|
||||
select OF_EARLY_FLATTREE
|
||||
select OF_RESOLVE
|
||||
help
|
||||
This option builds in test cases for the device tree infrastructure
|
||||
@@ -97,4 +102,4 @@ config OF_OVERLAY
|
||||
While this option is selected automatically when needed, you can
|
||||
enable it manually to improve device tree unit test coverage.
|
||||
|
||||
endmenu # OF
|
||||
endif # OF
|
||||
|
@@ -16,6 +16,3 @@ obj-$(CONFIG_OF_RESOLVE) += resolver.o
|
||||
obj-$(CONFIG_OF_OVERLAY) += overlay.o
|
||||
|
||||
obj-$(CONFIG_OF_UNITTEST) += unittest-data/
|
||||
|
||||
CFLAGS_fdt.o = -I$(src)/../../scripts/dtc/libfdt
|
||||
CFLAGS_fdt_address.o = -I$(src)/../../scripts/dtc/libfdt
|
||||
|
@@ -712,7 +712,7 @@ int __weak pci_register_io_range(phys_addr_t addr, resource_size_t size)
|
||||
}
|
||||
|
||||
/* add the range to the list */
|
||||
range = kzalloc(sizeof(*range), GFP_KERNEL);
|
||||
range = kzalloc(sizeof(*range), GFP_ATOMIC);
|
||||
if (!range) {
|
||||
err = -ENOMEM;
|
||||
goto end_register;
|
||||
|
@@ -163,6 +163,18 @@ void of_device_unregister(struct platform_device *ofdev)
|
||||
}
|
||||
EXPORT_SYMBOL(of_device_unregister);
|
||||
|
||||
const void *of_device_get_match_data(const struct device *dev)
|
||||
{
|
||||
const struct of_device_id *match;
|
||||
|
||||
match = of_match_device(dev->driver->of_match_table, dev);
|
||||
if (!match)
|
||||
return NULL;
|
||||
|
||||
return match->data;
|
||||
}
|
||||
EXPORT_SYMBOL(of_device_get_match_data);
|
||||
|
||||
ssize_t of_device_get_modalias(struct device *dev, char *str, ssize_t len)
|
||||
{
|
||||
const char *compat;
|
||||
|
@@ -171,7 +171,7 @@ static void *unflatten_dt_alloc(void **mem, unsigned long size,
|
||||
* @dryrun: If true, do not allocate device nodes but still calculate needed
|
||||
* memory size
|
||||
*/
|
||||
static void * unflatten_dt_node(void *blob,
|
||||
static void * unflatten_dt_node(const void *blob,
|
||||
void *mem,
|
||||
int *poffset,
|
||||
struct device_node *dad,
|
||||
@@ -381,7 +381,7 @@ static void * unflatten_dt_node(void *blob,
|
||||
* @dt_alloc: An allocator that provides a virtual address to memory
|
||||
* for the resulting tree
|
||||
*/
|
||||
static void __unflatten_device_tree(void *blob,
|
||||
static void __unflatten_device_tree(const void *blob,
|
||||
struct device_node **mynodes,
|
||||
void * (*dt_alloc)(u64 size, u64 align))
|
||||
{
|
||||
@@ -444,7 +444,7 @@ static void *kernel_tree_alloc(u64 size, u64 align)
|
||||
* pointers of the nodes so the normal device-tree walking functions
|
||||
* can be used.
|
||||
*/
|
||||
void of_fdt_unflatten_tree(unsigned long *blob,
|
||||
void of_fdt_unflatten_tree(const unsigned long *blob,
|
||||
struct device_node **mynodes)
|
||||
{
|
||||
__unflatten_device_tree(blob, mynodes, &kernel_tree_alloc);
|
||||
@@ -1018,6 +1018,11 @@ void * __init __weak early_init_dt_alloc_memory_arch(u64 size, u64 align)
|
||||
return __va(memblock_alloc(size, align));
|
||||
}
|
||||
#else
|
||||
void __init __weak early_init_dt_add_memory_arch(u64 base, u64 size)
|
||||
{
|
||||
WARN_ON(1);
|
||||
}
|
||||
|
||||
int __init __weak early_init_dt_reserve_memory_arch(phys_addr_t base,
|
||||
phys_addr_t size, bool nomap)
|
||||
{
|
||||
@@ -1025,6 +1030,12 @@ int __init __weak early_init_dt_reserve_memory_arch(phys_addr_t base,
|
||||
&base, &size, nomap ? " (nomap)" : "");
|
||||
return -ENOSYS;
|
||||
}
|
||||
|
||||
void * __init __weak early_init_dt_alloc_memory_arch(u64 size, u64 align)
|
||||
{
|
||||
WARN_ON(1);
|
||||
return NULL;
|
||||
}
|
||||
#endif
|
||||
|
||||
bool __init early_init_dt_verify(void *params)
|
||||
|
@@ -333,7 +333,7 @@ static DEFINE_IDR(ov_idr);
|
||||
* of the overlay in a list. This list can be used to prevent
|
||||
* illegal overlay removals.
|
||||
*
|
||||
* Returns the id of the created overlay, or an negative error number
|
||||
* Returns the id of the created overlay, or a negative error number
|
||||
*/
|
||||
int of_overlay_create(struct device_node *tree)
|
||||
{
|
||||
@@ -481,7 +481,7 @@ static int overlay_removal_is_ok(struct of_overlay *ov)
|
||||
*
|
||||
* Removes an overlay if it is permissible.
|
||||
*
|
||||
* Returns 0 on success, or an negative error number
|
||||
* Returns 0 on success, or a negative error number
|
||||
*/
|
||||
int of_overlay_destroy(int id)
|
||||
{
|
||||
@@ -528,7 +528,7 @@ EXPORT_SYMBOL_GPL(of_overlay_destroy);
|
||||
*
|
||||
* Removes all overlays from the system in the correct order.
|
||||
*
|
||||
* Returns 0 on success, or an negative error number
|
||||
* Returns 0 on success, or a negative error number
|
||||
*/
|
||||
int of_overlay_destroy_all(void)
|
||||
{
|
||||
|
Reference in New Issue
Block a user