diff options
5 files changed, 471 insertions, 1 deletions
diff --git a/target/linux/brcm47xx/patches-4.14/901-Revert-bcma-switch-GPIO-portions-to-use-GPIOLIB_IRQC.patch b/target/linux/brcm47xx/patches-4.14/901-Revert-bcma-switch-GPIO-portions-to-use-GPIOLIB_IRQC.patch index f1cfcd3e12..3ec853951f 100644 --- a/target/linux/brcm47xx/patches-4.14/901-Revert-bcma-switch-GPIO-portions-to-use-GPIOLIB_IRQC.patch +++ b/target/linux/brcm47xx/patches-4.14/901-Revert-bcma-switch-GPIO-portions-to-use-GPIOLIB_IRQC.patch @@ -188,7 +188,7 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com> chip->direction_input = bcma_gpio_direction_input; chip->direction_output = bcma_gpio_direction_output; - chip->owner = THIS_MODULE; -- chip->parent = bcma_bus_get_host_dev(bus); +- chip->parent = bus->dev; +#if IS_BUILTIN(CONFIG_BCM47XX) || IS_BUILTIN(CONFIG_ARCH_BCM_5301X) + chip->to_irq = bcma_gpio_to_irq; +#endif diff --git a/target/linux/generic/backport-4.14/080-v5.1-0001-bcma-keep-a-direct-pointer-to-the-struct-device.patch b/target/linux/generic/backport-4.14/080-v5.1-0001-bcma-keep-a-direct-pointer-to-the-struct-device.patch new file mode 100644 index 0000000000..cc32aee17b --- /dev/null +++ b/target/linux/generic/backport-4.14/080-v5.1-0001-bcma-keep-a-direct-pointer-to-the-struct-device.patch @@ -0,0 +1,199 @@ +From 5a1c18b761ddb299a06746948b9ec2814b04fa92 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl> +Date: Wed, 2 Jan 2019 00:00:01 +0100 +Subject: [PATCH] bcma: keep a direct pointer to the struct device +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Accessing struct device is pretty useful/common so having a direct +pointer: +1) Simplifies some code +2) Makes bcma_bus_get_host_dev() unneeded +3) Allows further improvements like using dev_* printing helpers + +Signed-off-by: Rafał Miłecki <rafal@milecki.pl> +Signed-off-by: Kalle Valo <kvalo@codeaurora.org> +--- + drivers/bcma/bcma_private.h | 1 - + drivers/bcma/driver_gpio.c | 2 +- + drivers/bcma/host_pci.c | 2 ++ + drivers/bcma/host_soc.c | 4 ++-- + drivers/bcma/main.c | 45 +++++++++---------------------------- + include/linux/bcma/bcma.h | 11 +++------ + 6 files changed, 18 insertions(+), 47 deletions(-) + +--- a/drivers/bcma/bcma_private.h ++++ b/drivers/bcma/bcma_private.h +@@ -33,7 +33,6 @@ int __init bcma_bus_early_register(struc + int bcma_bus_suspend(struct bcma_bus *bus); + int bcma_bus_resume(struct bcma_bus *bus); + #endif +-struct device *bcma_bus_get_host_dev(struct bcma_bus *bus); + + /* scan.c */ + void bcma_detect_chip(struct bcma_bus *bus); +--- a/drivers/bcma/driver_gpio.c ++++ b/drivers/bcma/driver_gpio.c +@@ -183,7 +183,7 @@ int bcma_gpio_init(struct bcma_drv_cc *c + chip->direction_input = bcma_gpio_direction_input; + chip->direction_output = bcma_gpio_direction_output; + chip->owner = THIS_MODULE; +- chip->parent = bcma_bus_get_host_dev(bus); ++ chip->parent = bus->dev; + #if IS_BUILTIN(CONFIG_OF) + chip->of_node = cc->core->dev.of_node; + #endif +--- a/drivers/bcma/host_pci.c ++++ b/drivers/bcma/host_pci.c +@@ -196,6 +196,8 @@ static int bcma_host_pci_probe(struct pc + goto err_pci_release_regions; + } + ++ bus->dev = &dev->dev; ++ + /* Map MMIO */ + err = -ENOMEM; + bus->mmio = pci_iomap(dev, 0, ~0UL); +--- a/drivers/bcma/host_soc.c ++++ b/drivers/bcma/host_soc.c +@@ -179,7 +179,6 @@ int __init bcma_host_soc_register(struct + /* Host specific */ + bus->hosttype = BCMA_HOSTTYPE_SOC; + bus->ops = &bcma_host_soc_ops; +- bus->host_pdev = NULL; + + /* Initialize struct, detect chip */ + bcma_init_bus(bus); +@@ -213,6 +212,8 @@ static int bcma_host_soc_probe(struct pl + if (!bus) + return -ENOMEM; + ++ bus->dev = dev; ++ + /* Map MMIO */ + bus->mmio = of_iomap(np, 0); + if (!bus->mmio) +@@ -221,7 +222,6 @@ static int bcma_host_soc_probe(struct pl + /* Host specific */ + bus->hosttype = BCMA_HOSTTYPE_SOC; + bus->ops = &bcma_host_soc_ops; +- bus->host_pdev = pdev; + + /* Initialize struct, detect chip */ + bcma_init_bus(bus); +--- a/drivers/bcma/main.c ++++ b/drivers/bcma/main.c +@@ -223,8 +223,8 @@ unsigned int bcma_core_irq(struct bcma_d + mips_irq = bcma_core_mips_irq(core); + return mips_irq <= 4 ? mips_irq + 2 : 0; + } +- if (bus->host_pdev) +- return bcma_of_get_irq(&bus->host_pdev->dev, core, num); ++ if (bus->dev) ++ return bcma_of_get_irq(bus->dev, core, num); + return 0; + case BCMA_HOSTTYPE_SDIO: + return 0; +@@ -239,18 +239,18 @@ void bcma_prepare_core(struct bcma_bus * + core->dev.release = bcma_release_core_dev; + core->dev.bus = &bcma_bus_type; + dev_set_name(&core->dev, "bcma%d:%d", bus->num, core->core_index); +- core->dev.parent = bcma_bus_get_host_dev(bus); +- if (core->dev.parent) +- bcma_of_fill_device(core->dev.parent, core); ++ core->dev.parent = bus->dev; ++ if (bus->dev) ++ bcma_of_fill_device(bus->dev, core); + + switch (bus->hosttype) { + case BCMA_HOSTTYPE_PCI: +- core->dma_dev = &bus->host_pci->dev; ++ core->dma_dev = bus->dev; + core->irq = bus->host_pci->irq; + break; + case BCMA_HOSTTYPE_SOC: +- if (IS_ENABLED(CONFIG_OF) && bus->host_pdev) { +- core->dma_dev = &bus->host_pdev->dev; ++ if (IS_ENABLED(CONFIG_OF) && bus->dev) { ++ core->dma_dev = bus->dev; + } else { + core->dev.dma_mask = &core->dev.coherent_dma_mask; + core->dma_dev = &core->dev; +@@ -261,28 +261,6 @@ void bcma_prepare_core(struct bcma_bus * + } + } + +-struct device *bcma_bus_get_host_dev(struct bcma_bus *bus) +-{ +- switch (bus->hosttype) { +- case BCMA_HOSTTYPE_PCI: +- if (bus->host_pci) +- return &bus->host_pci->dev; +- else +- return NULL; +- case BCMA_HOSTTYPE_SOC: +- if (bus->host_pdev) +- return &bus->host_pdev->dev; +- else +- return NULL; +- case BCMA_HOSTTYPE_SDIO: +- if (bus->host_sdio) +- return &bus->host_sdio->dev; +- else +- return NULL; +- } +- return NULL; +-} +- + void bcma_init_bus(struct bcma_bus *bus) + { + mutex_lock(&bcma_buses_mutex); +@@ -402,7 +380,6 @@ int bcma_bus_register(struct bcma_bus *b + { + int err; + struct bcma_device *core; +- struct device *dev; + + /* Scan for devices (cores) */ + err = bcma_bus_scan(bus); +@@ -425,10 +402,8 @@ int bcma_bus_register(struct bcma_bus *b + bcma_core_pci_early_init(&bus->drv_pci[0]); + } + +- dev = bcma_bus_get_host_dev(bus); +- if (dev) { +- of_platform_default_populate(dev->of_node, NULL, dev); +- } ++ if (bus->dev) ++ of_platform_default_populate(bus->dev->of_node, NULL, bus->dev); + + /* Cores providing flash access go before SPROM init */ + list_for_each_entry(core, &bus->cores, list) { +--- a/include/linux/bcma/bcma.h ++++ b/include/linux/bcma/bcma.h +@@ -332,6 +332,8 @@ extern int bcma_arch_register_fallback_s + struct ssb_sprom *out)); + + struct bcma_bus { ++ struct device *dev; ++ + /* The MMIO area. */ + void __iomem *mmio; + +@@ -339,14 +341,7 @@ struct bcma_bus { + + enum bcma_hosttype hosttype; + bool host_is_pcie2; /* Used for BCMA_HOSTTYPE_PCI only */ +- union { +- /* Pointer to the PCI bus (only for BCMA_HOSTTYPE_PCI) */ +- struct pci_dev *host_pci; +- /* Pointer to the SDIO device (only for BCMA_HOSTTYPE_SDIO) */ +- struct sdio_func *host_sdio; +- /* Pointer to platform device (only for BCMA_HOSTTYPE_SOC) */ +- struct platform_device *host_pdev; +- }; ++ struct pci_dev *host_pci; /* PCI bus pointer (BCMA_HOSTTYPE_PCI only) */ + + struct bcma_chipinfo chipinfo; + diff --git a/target/linux/generic/backport-4.14/080-v5.1-0002-bcma-use-dev_-printing-functions.patch b/target/linux/generic/backport-4.14/080-v5.1-0002-bcma-use-dev_-printing-functions.patch new file mode 100644 index 0000000000..7ce8ba8967 --- /dev/null +++ b/target/linux/generic/backport-4.14/080-v5.1-0002-bcma-use-dev_-printing-functions.patch @@ -0,0 +1,36 @@ +From 777bc4801a6868fcbff09ffb6e30f023e7c5ed38 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl> +Date: Wed, 2 Jan 2019 00:00:02 +0100 +Subject: [PATCH] bcma: use dev_* printing functions +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +It provides more meaningful messages. + +Signed-off-by: Rafał Miłecki <rafal@milecki.pl> +Signed-off-by: Kalle Valo <kvalo@codeaurora.org> +--- + drivers/bcma/bcma_private.h | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +--- a/drivers/bcma/bcma_private.h ++++ b/drivers/bcma/bcma_private.h +@@ -10,13 +10,13 @@ + #include <linux/delay.h> + + #define bcma_err(bus, fmt, ...) \ +- pr_err("bus%d: " fmt, (bus)->num, ##__VA_ARGS__) ++ dev_err((bus)->dev, "bus%d: " fmt, (bus)->num, ##__VA_ARGS__) + #define bcma_warn(bus, fmt, ...) \ +- pr_warn("bus%d: " fmt, (bus)->num, ##__VA_ARGS__) ++ dev_warn((bus)->dev, "bus%d: " fmt, (bus)->num, ##__VA_ARGS__) + #define bcma_info(bus, fmt, ...) \ +- pr_info("bus%d: " fmt, (bus)->num, ##__VA_ARGS__) ++ dev_info((bus)->dev, "bus%d: " fmt, (bus)->num, ##__VA_ARGS__) + #define bcma_debug(bus, fmt, ...) \ +- pr_debug("bus%d: " fmt, (bus)->num, ##__VA_ARGS__) ++ dev_dbg((bus)->dev, "bus%d: " fmt, (bus)->num, ##__VA_ARGS__) + + struct bcma_bus; + diff --git a/target/linux/generic/backport-4.19/080-v5.1-0001-bcma-keep-a-direct-pointer-to-the-struct-device.patch b/target/linux/generic/backport-4.19/080-v5.1-0001-bcma-keep-a-direct-pointer-to-the-struct-device.patch new file mode 100644 index 0000000000..cc32aee17b --- /dev/null +++ b/target/linux/generic/backport-4.19/080-v5.1-0001-bcma-keep-a-direct-pointer-to-the-struct-device.patch @@ -0,0 +1,199 @@ +From 5a1c18b761ddb299a06746948b9ec2814b04fa92 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl> +Date: Wed, 2 Jan 2019 00:00:01 +0100 +Subject: [PATCH] bcma: keep a direct pointer to the struct device +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Accessing struct device is pretty useful/common so having a direct +pointer: +1) Simplifies some code +2) Makes bcma_bus_get_host_dev() unneeded +3) Allows further improvements like using dev_* printing helpers + +Signed-off-by: Rafał Miłecki <rafal@milecki.pl> +Signed-off-by: Kalle Valo <kvalo@codeaurora.org> +--- + drivers/bcma/bcma_private.h | 1 - + drivers/bcma/driver_gpio.c | 2 +- + drivers/bcma/host_pci.c | 2 ++ + drivers/bcma/host_soc.c | 4 ++-- + drivers/bcma/main.c | 45 +++++++++---------------------------- + include/linux/bcma/bcma.h | 11 +++------ + 6 files changed, 18 insertions(+), 47 deletions(-) + +--- a/drivers/bcma/bcma_private.h ++++ b/drivers/bcma/bcma_private.h +@@ -33,7 +33,6 @@ int __init bcma_bus_early_register(struc + int bcma_bus_suspend(struct bcma_bus *bus); + int bcma_bus_resume(struct bcma_bus *bus); + #endif +-struct device *bcma_bus_get_host_dev(struct bcma_bus *bus); + + /* scan.c */ + void bcma_detect_chip(struct bcma_bus *bus); +--- a/drivers/bcma/driver_gpio.c ++++ b/drivers/bcma/driver_gpio.c +@@ -183,7 +183,7 @@ int bcma_gpio_init(struct bcma_drv_cc *c + chip->direction_input = bcma_gpio_direction_input; + chip->direction_output = bcma_gpio_direction_output; + chip->owner = THIS_MODULE; +- chip->parent = bcma_bus_get_host_dev(bus); ++ chip->parent = bus->dev; + #if IS_BUILTIN(CONFIG_OF) + chip->of_node = cc->core->dev.of_node; + #endif +--- a/drivers/bcma/host_pci.c ++++ b/drivers/bcma/host_pci.c +@@ -196,6 +196,8 @@ static int bcma_host_pci_probe(struct pc + goto err_pci_release_regions; + } + ++ bus->dev = &dev->dev; ++ + /* Map MMIO */ + err = -ENOMEM; + bus->mmio = pci_iomap(dev, 0, ~0UL); +--- a/drivers/bcma/host_soc.c ++++ b/drivers/bcma/host_soc.c +@@ -179,7 +179,6 @@ int __init bcma_host_soc_register(struct + /* Host specific */ + bus->hosttype = BCMA_HOSTTYPE_SOC; + bus->ops = &bcma_host_soc_ops; +- bus->host_pdev = NULL; + + /* Initialize struct, detect chip */ + bcma_init_bus(bus); +@@ -213,6 +212,8 @@ static int bcma_host_soc_probe(struct pl + if (!bus) + return -ENOMEM; + ++ bus->dev = dev; ++ + /* Map MMIO */ + bus->mmio = of_iomap(np, 0); + if (!bus->mmio) +@@ -221,7 +222,6 @@ static int bcma_host_soc_probe(struct pl + /* Host specific */ + bus->hosttype = BCMA_HOSTTYPE_SOC; + bus->ops = &bcma_host_soc_ops; +- bus->host_pdev = pdev; + + /* Initialize struct, detect chip */ + bcma_init_bus(bus); +--- a/drivers/bcma/main.c ++++ b/drivers/bcma/main.c +@@ -223,8 +223,8 @@ unsigned int bcma_core_irq(struct bcma_d + mips_irq = bcma_core_mips_irq(core); + return mips_irq <= 4 ? mips_irq + 2 : 0; + } +- if (bus->host_pdev) +- return bcma_of_get_irq(&bus->host_pdev->dev, core, num); ++ if (bus->dev) ++ return bcma_of_get_irq(bus->dev, core, num); + return 0; + case BCMA_HOSTTYPE_SDIO: + return 0; +@@ -239,18 +239,18 @@ void bcma_prepare_core(struct bcma_bus * + core->dev.release = bcma_release_core_dev; + core->dev.bus = &bcma_bus_type; + dev_set_name(&core->dev, "bcma%d:%d", bus->num, core->core_index); +- core->dev.parent = bcma_bus_get_host_dev(bus); +- if (core->dev.parent) +- bcma_of_fill_device(core->dev.parent, core); ++ core->dev.parent = bus->dev; ++ if (bus->dev) ++ bcma_of_fill_device(bus->dev, core); + + switch (bus->hosttype) { + case BCMA_HOSTTYPE_PCI: +- core->dma_dev = &bus->host_pci->dev; ++ core->dma_dev = bus->dev; + core->irq = bus->host_pci->irq; + break; + case BCMA_HOSTTYPE_SOC: +- if (IS_ENABLED(CONFIG_OF) && bus->host_pdev) { +- core->dma_dev = &bus->host_pdev->dev; ++ if (IS_ENABLED(CONFIG_OF) && bus->dev) { ++ core->dma_dev = bus->dev; + } else { + core->dev.dma_mask = &core->dev.coherent_dma_mask; + core->dma_dev = &core->dev; +@@ -261,28 +261,6 @@ void bcma_prepare_core(struct bcma_bus * + } + } + +-struct device *bcma_bus_get_host_dev(struct bcma_bus *bus) +-{ +- switch (bus->hosttype) { +- case BCMA_HOSTTYPE_PCI: +- if (bus->host_pci) +- return &bus->host_pci->dev; +- else +- return NULL; +- case BCMA_HOSTTYPE_SOC: +- if (bus->host_pdev) +- return &bus->host_pdev->dev; +- else +- return NULL; +- case BCMA_HOSTTYPE_SDIO: +- if (bus->host_sdio) +- return &bus->host_sdio->dev; +- else +- return NULL; +- } +- return NULL; +-} +- + void bcma_init_bus(struct bcma_bus *bus) + { + mutex_lock(&bcma_buses_mutex); +@@ -402,7 +380,6 @@ int bcma_bus_register(struct bcma_bus *b + { + int err; + struct bcma_device *core; +- struct device *dev; + + /* Scan for devices (cores) */ + err = bcma_bus_scan(bus); +@@ -425,10 +402,8 @@ int bcma_bus_register(struct bcma_bus *b + bcma_core_pci_early_init(&bus->drv_pci[0]); + } + +- dev = bcma_bus_get_host_dev(bus); +- if (dev) { +- of_platform_default_populate(dev->of_node, NULL, dev); +- } ++ if (bus->dev) ++ of_platform_default_populate(bus->dev->of_node, NULL, bus->dev); + + /* Cores providing flash access go before SPROM init */ + list_for_each_entry(core, &bus->cores, list) { +--- a/include/linux/bcma/bcma.h ++++ b/include/linux/bcma/bcma.h +@@ -332,6 +332,8 @@ extern int bcma_arch_register_fallback_s + struct ssb_sprom *out)); + + struct bcma_bus { ++ struct device *dev; ++ + /* The MMIO area. */ + void __iomem *mmio; + +@@ -339,14 +341,7 @@ struct bcma_bus { + + enum bcma_hosttype hosttype; + bool host_is_pcie2; /* Used for BCMA_HOSTTYPE_PCI only */ +- union { +- /* Pointer to the PCI bus (only for BCMA_HOSTTYPE_PCI) */ +- struct pci_dev *host_pci; +- /* Pointer to the SDIO device (only for BCMA_HOSTTYPE_SDIO) */ +- struct sdio_func *host_sdio; +- /* Pointer to platform device (only for BCMA_HOSTTYPE_SOC) */ +- struct platform_device *host_pdev; +- }; ++ struct pci_dev *host_pci; /* PCI bus pointer (BCMA_HOSTTYPE_PCI only) */ + + struct bcma_chipinfo chipinfo; + diff --git a/target/linux/generic/backport-4.19/080-v5.1-0002-bcma-use-dev_-printing-functions.patch b/target/linux/generic/backport-4.19/080-v5.1-0002-bcma-use-dev_-printing-functions.patch new file mode 100644 index 0000000000..7ce8ba8967 --- /dev/null +++ b/target/linux/generic/backport-4.19/080-v5.1-0002-bcma-use-dev_-printing-functions.patch @@ -0,0 +1,36 @@ +From 777bc4801a6868fcbff09ffb6e30f023e7c5ed38 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl> +Date: Wed, 2 Jan 2019 00:00:02 +0100 +Subject: [PATCH] bcma: use dev_* printing functions +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +It provides more meaningful messages. + +Signed-off-by: Rafał Miłecki <rafal@milecki.pl> +Signed-off-by: Kalle Valo <kvalo@codeaurora.org> +--- + drivers/bcma/bcma_private.h | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +--- a/drivers/bcma/bcma_private.h ++++ b/drivers/bcma/bcma_private.h +@@ -10,13 +10,13 @@ + #include <linux/delay.h> + + #define bcma_err(bus, fmt, ...) \ +- pr_err("bus%d: " fmt, (bus)->num, ##__VA_ARGS__) ++ dev_err((bus)->dev, "bus%d: " fmt, (bus)->num, ##__VA_ARGS__) + #define bcma_warn(bus, fmt, ...) \ +- pr_warn("bus%d: " fmt, (bus)->num, ##__VA_ARGS__) ++ dev_warn((bus)->dev, "bus%d: " fmt, (bus)->num, ##__VA_ARGS__) + #define bcma_info(bus, fmt, ...) \ +- pr_info("bus%d: " fmt, (bus)->num, ##__VA_ARGS__) ++ dev_info((bus)->dev, "bus%d: " fmt, (bus)->num, ##__VA_ARGS__) + #define bcma_debug(bus, fmt, ...) \ +- pr_debug("bus%d: " fmt, (bus)->num, ##__VA_ARGS__) ++ dev_dbg((bus)->dev, "bus%d: " fmt, (bus)->num, ##__VA_ARGS__) + + struct bcma_bus; + |