of: remove of_default_bus_ids
PATCH 1/1 of: remove of_default_bus_ids
From: Jonas Bonn <[email protected]>
This list used was by only two platforms with all other platforms defining an own list of valid bus id's to pass to of_platform_bus_probe. This patch:
i) copies the default list to the two platforms that depended on it (powerpc)
ii) remove the usage of of_default_bus_ids in of_platform_bus_probe iii) removes the definition of the list from all architectures that defined it
Passing a NULL 'matches' parameter to of_platform_bus_probe is still valid; the function returns no error in that case as the NULL value is equivalent to an empty list.
Signed-off-by Jonas Bonn <[email protected]>
[[email protected]: added __initdata annotations, warn on and return error on missing match table, and fix whitespace errors]
Signed-off-by Grant Likely <[email protected]>
--- arch/microblaze/kernel/Makefile | 2 + arch/microblaze/kernel/of_platform.c | 49 ----------------------------- arch/powerpc/kernel/of_platform.c | 24 -------------- arch/powerpc/platforms/cell/qpace_setup.c | 14 ++++++++ arch/powerpc/platforms/cell/setup.c | 14 ++++++++ drivers/of/platform.c | 4 +- include/linux/of_platform.h | 2 - 7 files changed, 28 insertions(+), 81 deletions(-) delete mode 100644 arch/microblaze/kernel/of_platform.c
arch/microblaze/kernel/Makefile +1 -1
@@ -16,7 +16,7 @@ extra-y := head.o vmlinux.lds obj-y += dma.o exceptions.o \ hw_exception_handler.o init_task.o intc.o irq.o \ - of_platform.o process.o prom.o prom_parse.o ptrace.o \ + process.o prom.o prom_parse.o ptrace.o \ setup.o signal.o sys_microblaze.o timer.o traps.o reset.o obj-y += cpu/
arch/microblaze/kernel/of_platform.c deleted +0 -49
49 lines not on this page · raw message
arch/powerpc/kernel/of_platform.c +0 -24
@@ -28,30 +28,6 @@#include <asm/ppc-pci.h> #include <asm/atomic.h> -/* -* The list of OF IDs below is used for matching bus types in the -* system whose devices are to be exposed as of_platform_devices. -* -* This is the default list valid for most platforms. This file provides -* functions who can take an explicit list if necessary though -* -* The search is always performed recursively looking for children of -* the provided device_node and recursively if such a children matches -* a bus type in the list -*/ - -const struct of_device_id of_default_bus_ids[] = { - { .type ="soc" , }, - { .compatible ="soc" , }, - { .type ="spider" , }, - { .type ="axon" , }, - { .type ="plb5" , }, - { .type ="plb4" , }, - { .type ="opb" , }, - { .type ="ebc" , }, - {}, -}; -#ifdef CONFIG_PPC_OF_PLATFORM_PCI /* The probing of PCI controllers from of_platform is currently
arch/powerpc/platforms/cell/qpace_setup.c +13 -1
@@ -61,12 +61,24 @@ static void qpace_progress(char *s, unsigned short hex)printk ("*** %04x : %s\n" , hex, s ? s :"" ); } +static const struct of_device_id qpace_bus_ids[]__initdata = { + { .type ="soc" , }, + { .compatible ="soc" , }, + { .type ="spider" , }, + { .type ="axon" , }, + { .type ="plb5" , }, + { .type ="plb4" , }, + { .type ="opb" , }, + { .type ="ebc" , }, + {}, +}; +static int __init qpace_publish_devices (void ) {int node;/* Publish OF platform devices for southbridge IOs */ -of_platform_bus_probe (NULL ,NULL ,NULL ); +of_platform_bus_probe (NULL , qpace_bus_ids,NULL );/* There is no device for the MIC memory controller, thus we create * a platform device for it to attach the EDAC driver to.
arch/powerpc/platforms/cell/setup.c +13 -1
@@ -141,6 +141,18 @@ static int __devinit cell_setup_phb(struct pci_controller *phb)return 0 ; } +static const struct of_device_id cell_bus_ids[]__initdata = { + { .type ="soc" , }, + { .compatible ="soc" , }, + { .type ="spider" , }, + { .type ="axon" , }, + { .type ="plb5" , }, + { .type ="plb4" , }, + { .type ="opb" , }, + { .type ="ebc" , }, + {}, +}; +static int __init cell_publish_devices (void ) {struct device_node *root =of_find_node_by_path ("/" );
@@ -148,7 +160,7 @@ static int __init cell_publish_devices(void)int node;/* Publish OF platform devices for southbridge IOs */ -of_platform_bus_probe (NULL ,NULL ,NULL ); +of_platform_bus_probe (NULL , cell_bus_ids,NULL );/* On spider based blades, we need to manually create the OF * platform devices for the PCI host bridges
drivers/of/platform.c +1 -3
@@ -701,9 +701,7 @@ int of_platform_bus_probe(struct device_node *root,struct platform_device *dev;int rc =0 ; -if (matches ==NULL ) - matches = of_default_bus_ids; -if (matches ==OF_NO_DEEP_PROBE ) +if (WARN_ON (!matches || matches ==OF_NO_DEEP_PROBE ))return -EINVAL ;if (root ==NULL ) root =of_find_node_by_path ("/" );
include/linux/of_platform.h +0 -2
@@ -19,8 +19,6 @@#include <linux/of_device.h> #include <linux/platform_device.h> -extern const struct of_device_id of_default_bus_ids[]; -/* * An of_platform_driver driver is attached to a basic of_device on * the "platform bus" (platform_bus_type).