diff options
Diffstat (limited to 'target/linux/brcm2708/patches-4.1/0111-mailbox-bcm2835-Support-ARCH_BCM270x.patch')
-rw-r--r-- | target/linux/brcm2708/patches-4.1/0111-mailbox-bcm2835-Support-ARCH_BCM270x.patch | 112 |
1 files changed, 0 insertions, 112 deletions
diff --git a/target/linux/brcm2708/patches-4.1/0111-mailbox-bcm2835-Support-ARCH_BCM270x.patch b/target/linux/brcm2708/patches-4.1/0111-mailbox-bcm2835-Support-ARCH_BCM270x.patch deleted file mode 100644 index 4fb6ac8..0000000 --- a/target/linux/brcm2708/patches-4.1/0111-mailbox-bcm2835-Support-ARCH_BCM270x.patch +++ /dev/null @@ -1,112 +0,0 @@ -From 5291d4bfaaa621a18ac0c47dcf43e9366bb52476 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= <noralf@tronnes.org> -Date: Fri, 26 Jun 2015 14:19:30 +0200 -Subject: [PATCH 111/222] mailbox: bcm2835: Support ARCH_BCM270x -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Make it possible to use bcm2835-mailbox without Device Tree. -Load driver early because of lacking support for deferred probing -in many drivers. - -Signed-off-by: Noralf Trønnes <noralf@tronnes.org> ---- - drivers/mailbox/Kconfig | 2 +- - drivers/mailbox/bcm2835-mailbox.c | 18 ++++++++++++++++-- - drivers/mailbox/mailbox.c | 13 ++++++++++++- - 3 files changed, 29 insertions(+), 4 deletions(-) - ---- a/drivers/mailbox/Kconfig -+++ b/drivers/mailbox/Kconfig -@@ -69,7 +69,7 @@ config ALTERA_MBOX - - config BCM2835_MBOX - tristate "BCM2835 Mailbox" -- depends on ARCH_BCM2835 -+ depends on ARCH_BCM2835 || ARCH_BCM2708 || ARCH_BCM2709 - help - An implementation of the BCM2385 Mailbox. It is used to invoke - the services of the Videocore. Say Y here if you want to use the ---- a/drivers/mailbox/bcm2835-mailbox.c -+++ b/drivers/mailbox/bcm2835-mailbox.c -@@ -51,12 +51,15 @@ - #define MAIL1_WRT (ARM_0_MAIL1 + 0x00) - #define MAIL1_STA (ARM_0_MAIL1 + 0x18) - -+/* On ARCH_BCM270x these come through <linux/interrupt.h> (arm_control.h ) */ -+#ifndef ARM_MS_FULL - /* Status register: FIFO state. */ - #define ARM_MS_FULL BIT(31) - #define ARM_MS_EMPTY BIT(30) - - /* Configuration register: Enable interrupts. */ - #define ARM_MC_IHAVEDATAIRQEN BIT(0) -+#endif - - struct bcm2835_mbox { - void __iomem *regs; -@@ -151,7 +154,7 @@ static int bcm2835_mbox_probe(struct pla - return -ENOMEM; - spin_lock_init(&mbox->lock); - -- ret = devm_request_irq(dev, irq_of_parse_and_map(dev->of_node, 0), -+ ret = devm_request_irq(dev, platform_get_irq(pdev, 0), - bcm2835_mbox_irq, 0, dev_name(dev), mbox); - if (ret) { - dev_err(dev, "Failed to register a mailbox IRQ handler: %d\n", -@@ -210,7 +213,18 @@ static struct platform_driver bcm2835_mb - .probe = bcm2835_mbox_probe, - .remove = bcm2835_mbox_remove, - }; --module_platform_driver(bcm2835_mbox_driver); -+ -+static int __init bcm2835_mbox_init(void) -+{ -+ return platform_driver_register(&bcm2835_mbox_driver); -+} -+arch_initcall(bcm2835_mbox_init); -+ -+static void __init bcm2835_mbox_exit(void) -+{ -+ platform_driver_unregister(&bcm2835_mbox_driver); -+} -+module_exit(bcm2835_mbox_exit); - - MODULE_AUTHOR("Lubomir Rintel <lkundrak@v3.sk>"); - MODULE_DESCRIPTION("BCM2835 mailbox IPC driver"); ---- a/drivers/mailbox/mailbox.c -+++ b/drivers/mailbox/mailbox.c -@@ -304,13 +304,23 @@ struct mbox_chan *mbox_request_channel(s - unsigned long flags; - int ret; - -- if (!dev || !dev->of_node) { -+ if (!dev) { - pr_debug("%s: No owner device node\n", __func__); - return ERR_PTR(-ENODEV); - } - - mutex_lock(&con_mutex); - -+ if (!dev->of_node) { -+ chan = NULL; -+ /* pick the first controller in the list */ -+ list_for_each_entry(mbox, &mbox_cons, node) { -+ chan = &mbox->chans[0]; -+ break; -+ } -+ goto skip_dt; -+ } -+ - if (of_parse_phandle_with_args(dev->of_node, "mboxes", - "#mbox-cells", index, &spec)) { - dev_dbg(dev, "%s: can't parse \"mboxes\" property\n", __func__); -@@ -327,6 +337,7 @@ struct mbox_chan *mbox_request_channel(s - - of_node_put(spec.np); - -+skip_dt: - if (!chan || chan->cl || !try_module_get(mbox->dev->driver->owner)) { - dev_dbg(dev, "%s: mailbox not free\n", __func__); - mutex_unlock(&con_mutex); |