[PATCH] bcma: populate bus DT subnodes as platform_device-s
From: zajec5@gmail.com (Rafał Miłecki)
Date: 2015-07-23 00:30:41
Also in:
linux-wireless
On 28 June 2015 at 17:17, Rafa? Mi?ecki [off-list ref] wrote:
quoted hunk ↗ jump to hunk
Our bus should allow defining children nodes as we may want to specify devices attached to the bus. This is required e.g. to specify NAND or ChipCommon cores and use bus's address and IRQ mappings. Signed-off-by: Rafa? Mi?ecki <zajec5@gmail.com> --- drivers/bcma/main.c | 8 ++++++++ 1 file changed, 8 insertions(+)diff --git a/drivers/bcma/main.c b/drivers/bcma/main.c index 9635f10..5912847 100644 --- a/drivers/bcma/main.c +++ b/drivers/bcma/main.c@@ -12,6 +12,7 @@ #include <linux/slab.h> #include <linux/of_address.h> #include <linux/of_irq.h> +#include <linux/of_platform.h> MODULE_DESCRIPTION("Broadcom's specific AMBA driver"); MODULE_LICENSE("GPL");@@ -409,6 +410,13 @@ int bcma_bus_register(struct bcma_bus *bus) bcma_core_pci_early_init(&bus->drv_pci[0]); } + if (bus->host_pdev) { + struct device *dev = &bus->host_pdev->dev; + + of_platform_populate(dev->of_node, of_default_bus_match_table, + NULL, dev); + } +
This caused a compile error when using bcma as module: ERROR: "of_default_bus_match_table" [drivers/bcma/bcma.ko] undefined! There are two options I guess: 1) Export of_default_bus_match_table 2) Use some better condition like if (IS_BUILTIN(CONFIG_BCMA) && bus->host_pdev) Unfortunately I'm on my long holidays right now. Hauke: do you think you can find a moment to handle this? Sorry for the problem :| -- Rafa?