From 87ab4287d3fc76549201442378d3fcdb5f98f3aa Mon Sep 17 00:00:00 2001 From: MilhouseVH Date: Sun, 12 Nov 2017 23:19:39 +0000 Subject: [PATCH] RPi: update linux support patch for linux 4.14-rc1 --- .../patches/linux/linux-01-RPi_support.patch | 2379 ++++------------- 1 file changed, 518 insertions(+), 1861 deletions(-) diff --git a/projects/RPi/patches/linux/linux-01-RPi_support.patch b/projects/RPi/patches/linux/linux-01-RPi_support.patch index 667a767bc2..dca9750c40 100644 --- a/projects/RPi/patches/linux/linux-01-RPi_support.patch +++ b/projects/RPi/patches/linux/linux-01-RPi_support.patch @@ -1,7 +1,7 @@ -From 6de11925d24bc10497a476e2a412b143f8342a12 Mon Sep 17 00:00:00 2001 +From 2c6d82a3f5e0aadd118ad2b2c1f2437b01291e67 Mon Sep 17 00:00:00 2001 From: Steve Glendinning Date: Thu, 19 Feb 2015 18:47:12 +0000 -Subject: [PATCH 001/141] smsx95xx: fix crimes against truesize +Subject: [PATCH 001/126] smsx95xx: fix crimes against truesize smsc95xx is adjusting truesize when it shouldn't, and following a recent patch from Eric this is now triggering warnings. @@ -13,7 +13,7 @@ Signed-off-by: Steve Glendinning 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/net/usb/smsc95xx.c b/drivers/net/usb/smsc95xx.c -index 340c13484e5cc7dd5001577b7522d5a4318bd5b6..7d3d98f0405ad948f9ab3e035a70e15c667e4fa1 100644 +index 309b88acd3d0b6ca1528dde7b27a23926f9be952..25e37195ceb00cfc0ced7638e8b571a1b0b8e6f1 100644 --- a/drivers/net/usb/smsc95xx.c +++ b/drivers/net/usb/smsc95xx.c @@ -82,6 +82,10 @@ static bool turbo_mode = true; @@ -27,7 +27,7 @@ index 340c13484e5cc7dd5001577b7522d5a4318bd5b6..7d3d98f0405ad948f9ab3e035a70e15c static int __must_check __smsc95xx_read_reg(struct usbnet *dev, u32 index, u32 *data, int in_pm) { -@@ -1960,7 +1964,8 @@ static int smsc95xx_rx_fixup(struct usbnet *dev, struct sk_buff *skb) +@@ -1959,7 +1963,8 @@ static int smsc95xx_rx_fixup(struct usbnet *dev, struct sk_buff *skb) if (dev->net->features & NETIF_F_RXCSUM) smsc95xx_rx_csum_offload(skb); skb_trim(skb, skb->len - 4); /* remove fcs */ @@ -37,7 +37,7 @@ index 340c13484e5cc7dd5001577b7522d5a4318bd5b6..7d3d98f0405ad948f9ab3e035a70e15c return 1; } -@@ -1978,7 +1983,8 @@ static int smsc95xx_rx_fixup(struct usbnet *dev, struct sk_buff *skb) +@@ -1977,7 +1982,8 @@ static int smsc95xx_rx_fixup(struct usbnet *dev, struct sk_buff *skb) if (dev->net->features & NETIF_F_RXCSUM) smsc95xx_rx_csum_offload(ax_skb); skb_trim(ax_skb, ax_skb->len - 4); /* remove fcs */ @@ -48,10 +48,10 @@ index 340c13484e5cc7dd5001577b7522d5a4318bd5b6..7d3d98f0405ad948f9ab3e035a70e15c usbnet_skb_return(dev, ax_skb); } -From d45d4ac0adf3a9ef20b947ef5561e644dbcd0588 Mon Sep 17 00:00:00 2001 +From eebed5915a40f74b012d85945fed8c30ede36a81 Mon Sep 17 00:00:00 2001 From: Sam Nazarko Date: Fri, 1 Apr 2016 17:27:21 +0100 -Subject: [PATCH 002/141] smsc95xx: Experimental: Enable turbo_mode and +Subject: [PATCH 002/126] smsc95xx: Experimental: Enable turbo_mode and packetsize=2560 by default See: http://forum.kodi.tv/showthread.php?tid=285288 @@ -60,7 +60,7 @@ See: http://forum.kodi.tv/showthread.php?tid=285288 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/drivers/net/usb/smsc95xx.c b/drivers/net/usb/smsc95xx.c -index 7d3d98f0405ad948f9ab3e035a70e15c667e4fa1..8d34e517db08d895e6135f785c42bf639671815c 100644 +index 25e37195ceb00cfc0ced7638e8b571a1b0b8e6f1..09c7d4a07299e70b1cdc9df2c2c4cb39d2207c37 100644 --- a/drivers/net/usb/smsc95xx.c +++ b/drivers/net/usb/smsc95xx.c @@ -86,6 +86,10 @@ static bool truesize_mode = false; @@ -74,7 +74,7 @@ index 7d3d98f0405ad948f9ab3e035a70e15c667e4fa1..8d34e517db08d895e6135f785c42bf63 static int __must_check __smsc95xx_read_reg(struct usbnet *dev, u32 index, u32 *data, int in_pm) { -@@ -1107,13 +1111,13 @@ static int smsc95xx_reset(struct usbnet *dev) +@@ -1106,13 +1110,13 @@ static int smsc95xx_reset(struct usbnet *dev) if (!turbo_mode) { burst_cap = 0; @@ -94,10 +94,10 @@ index 7d3d98f0405ad948f9ab3e035a70e15c667e4fa1..8d34e517db08d895e6135f785c42bf63 netif_dbg(dev, ifup, dev->net, "rx_urb_size=%ld\n", -From 027723e2dad0ea6dde59c07e91bca00ea1877736 Mon Sep 17 00:00:00 2001 +From 45bf110535b0c4c737fe0f06333efa7142f59bfe Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 26 Mar 2013 17:26:38 +0000 -Subject: [PATCH 003/141] Allow mac address to be set in smsc95xx +Subject: [PATCH 003/126] Allow mac address to be set in smsc95xx Signed-off-by: popcornmix --- @@ -105,7 +105,7 @@ Signed-off-by: popcornmix 1 file changed, 56 insertions(+) diff --git a/drivers/net/usb/smsc95xx.c b/drivers/net/usb/smsc95xx.c -index 8d34e517db08d895e6135f785c42bf639671815c..5df7e105c41532c3185e46ee54f43a371b787caa 100644 +index 09c7d4a07299e70b1cdc9df2c2c4cb39d2207c37..4d9704d0b184df9bd7ddbe6769e40a7584f22a42 100644 --- a/drivers/net/usb/smsc95xx.c +++ b/drivers/net/usb/smsc95xx.c @@ -60,6 +60,7 @@ @@ -127,7 +127,7 @@ index 8d34e517db08d895e6135f785c42bf639671815c..5df7e105c41532c3185e46ee54f43a37 static int __must_check __smsc95xx_read_reg(struct usbnet *dev, u32 index, u32 *data, int in_pm) { -@@ -919,6 +924,53 @@ static int smsc95xx_ioctl(struct net_device *netdev, struct ifreq *rq, int cmd) +@@ -918,6 +923,53 @@ static int smsc95xx_ioctl(struct net_device *netdev, struct ifreq *rq, int cmd) return generic_mii_ioctl(&dev->mii, if_mii(rq), cmd, NULL); } @@ -181,7 +181,7 @@ index 8d34e517db08d895e6135f785c42bf639671815c..5df7e105c41532c3185e46ee54f43a37 static void smsc95xx_init_mac_address(struct usbnet *dev) { const u8 *mac_addr; -@@ -940,6 +992,10 @@ static void smsc95xx_init_mac_address(struct usbnet *dev) +@@ -939,6 +991,10 @@ static void smsc95xx_init_mac_address(struct usbnet *dev) } } @@ -193,10 +193,10 @@ index 8d34e517db08d895e6135f785c42bf639671815c..5df7e105c41532c3185e46ee54f43a37 eth_hw_addr_random(dev->net); netif_dbg(dev, ifup, dev->net, "MAC address set to eth_random_addr\n"); -From c1d64b379842ba1444d01c895297ac5b5cc980eb Mon Sep 17 00:00:00 2001 +From 34031692ec7ff852b9e07cba03f912d0a5308e68 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 13 Mar 2015 12:43:36 +0000 -Subject: [PATCH 004/141] Protect __release_resource against resources without +Subject: [PATCH 004/126] Protect __release_resource against resources without parents Without this patch, removing a device tree overlay can crash here. @@ -224,10 +224,10 @@ index 9b5f04404152c296af3a96132f27cfc80ffa9af9..f8a9af6e6b915812be2ba2c1c2b40106 for (;;) { tmp = *p; -From c2fd20c54cb6925a811f60285e9f85b5ff6f3a08 Mon Sep 17 00:00:00 2001 +From 9092689dbaef48a0be3e599067943aa6fc7e894a Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 4 Dec 2015 17:41:50 +0000 -Subject: [PATCH 005/141] irq-bcm2836: Prevent spurious interrupts, and trap +Subject: [PATCH 005/126] irq-bcm2836: Prevent spurious interrupts, and trap them early The old arch-specific IRQ macros included a dsb to ensure the @@ -242,7 +242,7 @@ though, so trap them early. 1 file changed, 1 insertion(+) diff --git a/drivers/irqchip/irq-bcm2836.c b/drivers/irqchip/irq-bcm2836.c -index e7463e3c08143acae3e8cc5682f918c6a0b07ebd..a8db33b50ad9ff83d284fa54fe4d3b65f859df0f 100644 +index dc8c1e3eafe794a3af83dd987a6d6362d14dd5ee..e8204d9af58f1b893505c06902a83390c2ea8509 100644 --- a/drivers/irqchip/irq-bcm2836.c +++ b/drivers/irqchip/irq-bcm2836.c @@ -175,6 +175,7 @@ __exception_irq_entry bcm2836_arm_irqchip_handle_irq(struct pt_regs *regs) @@ -254,10 +254,10 @@ index e7463e3c08143acae3e8cc5682f918c6a0b07ebd..a8db33b50ad9ff83d284fa54fe4d3b65 #endif } else if (stat) { -From d8c5c99e76d1a3b8f8d76dc37f7dff46dd38a8b3 Mon Sep 17 00:00:00 2001 +From 6d222670741dd194bfa2423045ffff852324029d Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 9 Feb 2017 14:33:30 +0000 -Subject: [PATCH 006/141] irq-bcm2836: Avoid "Invalid trigger warning" +Subject: [PATCH 006/126] irq-bcm2836: Avoid "Invalid trigger warning" Initialise the level for each IRQ to avoid a warning from the arm arch timer code. @@ -268,7 +268,7 @@ Signed-off-by: Phil Elwell 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/irqchip/irq-bcm2836.c b/drivers/irqchip/irq-bcm2836.c -index a8db33b50ad9ff83d284fa54fe4d3b65f859df0f..c4e151451cf8c8ebde5225515eac2786d6f61d46 100644 +index e8204d9af58f1b893505c06902a83390c2ea8509..6e3fab9587b782e026c01fa6b6e40338ef0c8d0a 100644 --- a/drivers/irqchip/irq-bcm2836.c +++ b/drivers/irqchip/irq-bcm2836.c @@ -157,7 +157,7 @@ static void bcm2836_arm_irqchip_register_irq(int hwirq, struct irq_chip *chip) @@ -281,10 +281,10 @@ index a8db33b50ad9ff83d284fa54fe4d3b65f859df0f..c4e151451cf8c8ebde5225515eac2786 static void -From 090cf3193ec1f62d846da29763867047af985d89 Mon Sep 17 00:00:00 2001 +From 4a6ae291c0d82491eaeaeab09703fb484070a6dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 12 Jun 2015 19:01:05 +0200 -Subject: [PATCH 007/141] irqchip: bcm2835: Add FIQ support +Subject: [PATCH 007/126] irqchip: bcm2835: Add FIQ support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -314,7 +314,7 @@ index 73be3d5788510e953a460c76437db3f22c3d7bda..3c7d01eaa341b03ced0ba9aadb705463 select PINCTRL_BCM2835 help diff --git a/drivers/irqchip/irq-bcm2835.c b/drivers/irqchip/irq-bcm2835.c -index 44d7c38dde479d771f3552e914bf8c1c1f5019f7..42ff5e6a8e0d532f5b60a1e7af7cc4d941bd5008 100644 +index d2da8a1e6b1b71381e382d034e7a94e865a6c3da..c4903360eabc2bef04f8e745782cea268fb22897 100644 --- a/drivers/irqchip/irq-bcm2835.c +++ b/drivers/irqchip/irq-bcm2835.c @@ -54,7 +54,7 @@ @@ -381,9 +381,9 @@ index 44d7c38dde479d771f3552e914bf8c1c1f5019f7..42ff5e6a8e0d532f5b60a1e7af7cc4d9 } static struct irq_chip armctrl_chip = { -@@ -150,8 +178,9 @@ static int __init armctrl_of_init(struct device_node *node, - panic("%s: unable to map IC registers\n", - node->full_name); +@@ -149,8 +177,9 @@ static int __init armctrl_of_init(struct device_node *node, + if (!base) + panic("%pOF: unable to map IC registers\n", node); - intc.domain = irq_domain_add_linear(node, MAKE_HWIRQ(NR_BANKS, 0), - &armctrl_ops, NULL); @@ -391,9 +391,9 @@ index 44d7c38dde479d771f3552e914bf8c1c1f5019f7..42ff5e6a8e0d532f5b60a1e7af7cc4d9 + intc.domain = irq_domain_add_linear(node, NUMBER_IRQS * 2, + &armctrl_ops, NULL); if (!intc.domain) - panic("%s: unable to create IRQ domain\n", node->full_name); + panic("%pOF: unable to create IRQ domain\n", node); -@@ -181,6 +210,18 @@ static int __init armctrl_of_init(struct device_node *node, +@@ -180,6 +209,18 @@ static int __init armctrl_of_init(struct device_node *node, set_handle_irq(bcm2835_handle_irq); } @@ -413,10 +413,10 @@ index 44d7c38dde479d771f3552e914bf8c1c1f5019f7..42ff5e6a8e0d532f5b60a1e7af7cc4d9 } -From be07b11df6009bfa349572edec26e6da596dfc1e Mon Sep 17 00:00:00 2001 +From 36fdfbb634818bc601224919e360a58da3d8be5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 23 Oct 2015 16:26:55 +0200 -Subject: [PATCH 008/141] irqchip: irq-bcm2835: Add 2836 FIQ support +Subject: [PATCH 008/126] irqchip: irq-bcm2835: Add 2836 FIQ support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -427,7 +427,7 @@ Signed-off-by: Noralf Trønnes 1 file changed, 41 insertions(+), 2 deletions(-) diff --git a/drivers/irqchip/irq-bcm2835.c b/drivers/irqchip/irq-bcm2835.c -index 42ff5e6a8e0d532f5b60a1e7af7cc4d941bd5008..eccf6ed025299cb480884f5bcbe77abf55a6bbb1 100644 +index c4903360eabc2bef04f8e745782cea268fb22897..13356d3b7bcd508f058c6a9e3c4b0b385d478ef4 100644 --- a/drivers/irqchip/irq-bcm2835.c +++ b/drivers/irqchip/irq-bcm2835.c @@ -50,8 +50,11 @@ @@ -498,7 +498,7 @@ index 42ff5e6a8e0d532f5b60a1e7af7cc4d941bd5008..eccf6ed025299cb480884f5bcbe77abf } static struct irq_chip armctrl_chip = { -@@ -210,6 +240,15 @@ static int __init armctrl_of_init(struct device_node *node, +@@ -209,6 +239,15 @@ static int __init armctrl_of_init(struct device_node *node, set_handle_irq(bcm2835_handle_irq); } @@ -515,10 +515,10 @@ index 42ff5e6a8e0d532f5b60a1e7af7cc4d941bd5008..eccf6ed025299cb480884f5bcbe77abf for (b = 0; b < NR_BANKS; b++) { for (i = 0; i < bank_irqs[b]; i++) { -From c199f9463e698ce33ba575abc5e9e3f28b161c76 Mon Sep 17 00:00:00 2001 +From f7965650d51f8e13a1ac0aa49c6cf7fb5dee493d Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 8 May 2017 16:43:40 +0100 -Subject: [PATCH 009/141] irq_bcm2836: Send event when onlining sleeping cores +Subject: [PATCH 009/126] irq_bcm2836: Send event when onlining sleeping cores In order to reduce power consumption and bus traffic, it is sensible for secondary cores to enter a low-power idle state when waiting to @@ -540,7 +540,7 @@ Signed-off-by: Phil Elwell 1 file changed, 3 insertions(+) diff --git a/drivers/irqchip/irq-bcm2836.c b/drivers/irqchip/irq-bcm2836.c -index c4e151451cf8c8ebde5225515eac2786d6f61d46..bee4d2d2ebacc3233423bb9d825e076b9f52fccd 100644 +index 6e3fab9587b782e026c01fa6b6e40338ef0c8d0a..86b357ae027bf8ba1ac32cd150a8cf21e36597e2 100644 --- a/drivers/irqchip/irq-bcm2836.c +++ b/drivers/irqchip/irq-bcm2836.c @@ -227,6 +227,9 @@ static int __init bcm2836_smp_boot_secondary(unsigned int cpu, @@ -554,10 +554,10 @@ index c4e151451cf8c8ebde5225515eac2786d6f61d46..bee4d2d2ebacc3233423bb9d825e076b } -From f876e6c9734f4ca21614366dd879f29be4378aa6 Mon Sep 17 00:00:00 2001 +From e4a86aedb1f222b4822240e1deb092002c6579b2 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 14 Jul 2015 10:26:09 +0100 -Subject: [PATCH 010/141] spidev: Add "spidev" compatible string to silence +Subject: [PATCH 010/126] spidev: Add "spidev" compatible string to silence warning See: https://github.com/raspberrypi/linux/issues/1054 @@ -578,367 +578,10 @@ index cda10719d1d1b21b32866d2b79363faa461ab8e1..4f3779d3aa0960640506725bde918075 }; MODULE_DEVICE_TABLE(of, spidev_dt_ids); -From 2ddcadf6a46363e20a969c2e9eea6bb6f381d2ff Mon Sep 17 00:00:00 2001 -From: popcornmix -Date: Tue, 3 Jan 2017 18:25:01 +0000 -Subject: [PATCH 011/141] Revert "pinctrl: bcm2835: switch to GPIOLIB_IRQCHIP" - -This reverts commit 85ae9e512f437cd09bf61564bdba29ab88bab3e3. ---- - drivers/pinctrl/bcm/Kconfig | 1 - - drivers/pinctrl/bcm/pinctrl-bcm2835.c | 144 ++++++++++++++++++---------------- - 2 files changed, 76 insertions(+), 69 deletions(-) - -diff --git a/drivers/pinctrl/bcm/Kconfig b/drivers/pinctrl/bcm/Kconfig -index e8c4e4f934a6d388bef3e77b89dc19d1e3a6db66..5691311b93991043e9074c330646d0b4837d296e 100644 ---- a/drivers/pinctrl/bcm/Kconfig -+++ b/drivers/pinctrl/bcm/Kconfig -@@ -20,7 +20,6 @@ config PINCTRL_BCM2835 - bool - select PINMUX - select PINCONF -- select GPIOLIB_IRQCHIP - - config PINCTRL_IPROC_GPIO - bool "Broadcom iProc GPIO (with PINCONF) driver" -diff --git a/drivers/pinctrl/bcm/pinctrl-bcm2835.c b/drivers/pinctrl/bcm/pinctrl-bcm2835.c -index 230883168e99a1a3fecc7916ef0a7e0de7e8b3f1..ff3789a11b3c36b922b9d08035abb638187c2f5a 100644 ---- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c -+++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c -@@ -24,10 +24,12 @@ - #include - #include - #include -+#include - #include - #include - #include - #include -+#include - #include - #include - #include -@@ -79,6 +81,11 @@ enum bcm2835_pinconf_param { - #define BCM2835_PINCONF_UNPACK_PARAM(_conf_) ((_conf_) >> 16) - #define BCM2835_PINCONF_UNPACK_ARG(_conf_) ((_conf_) & 0xffff) - -+struct bcm2835_gpio_irqdata { -+ struct bcm2835_pinctrl *pc; -+ int irqgroup; -+}; -+ - struct bcm2835_pinctrl { - struct device *dev; - void __iomem *base; -@@ -89,13 +96,16 @@ struct bcm2835_pinctrl { - unsigned int irq_type[BCM2835_NUM_GPIOS]; - - struct pinctrl_dev *pctl_dev; -+ struct irq_domain *irq_domain; - struct gpio_chip gpio_chip; - struct pinctrl_gpio_range gpio_range; - -- int irq_group[BCM2835_NUM_IRQS]; -+ struct bcm2835_gpio_irqdata irq_data[BCM2835_NUM_IRQS]; - spinlock_t irq_lock[BCM2835_NUM_BANKS]; - }; - -+static struct lock_class_key gpio_lock_class; -+ - /* pins are just named GPIO0..GPIO53 */ - #define BCM2835_GPIO_PIN(a) PINCTRL_PIN(a, "gpio" #a) - static struct pinctrl_pin_desc bcm2835_gpio_pins[] = { -@@ -353,6 +363,13 @@ static int bcm2835_gpio_direction_output(struct gpio_chip *chip, - return pinctrl_gpio_direction_output(chip->base + offset); - } - -+static int bcm2835_gpio_to_irq(struct gpio_chip *chip, unsigned offset) -+{ -+ struct bcm2835_pinctrl *pc = gpiochip_get_data(chip); -+ -+ return irq_linear_revmap(pc->irq_domain, offset); -+} -+ - static struct gpio_chip bcm2835_gpio_chip = { - .label = MODULE_NAME, - .owner = THIS_MODULE, -@@ -363,13 +380,14 @@ static struct gpio_chip bcm2835_gpio_chip = { - .get_direction = bcm2835_gpio_get_direction, - .get = bcm2835_gpio_get, - .set = bcm2835_gpio_set, -+ .to_irq = bcm2835_gpio_to_irq, - .base = -1, - .ngpio = BCM2835_NUM_GPIOS, - .can_sleep = false, - }; - --static void bcm2835_gpio_irq_handle_bank(struct bcm2835_pinctrl *pc, -- unsigned int bank, u32 mask) -+static int bcm2835_gpio_irq_handle_bank(struct bcm2835_pinctrl *pc, -+ unsigned int bank, u32 mask) - { - unsigned long events; - unsigned offset; -@@ -381,49 +399,34 @@ static void bcm2835_gpio_irq_handle_bank(struct bcm2835_pinctrl *pc, - events &= pc->enabled_irq_map[bank]; - for_each_set_bit(offset, &events, 32) { - gpio = (32 * bank) + offset; -- /* FIXME: no clue why the code looks up the type here */ - type = pc->irq_type[gpio]; - -- generic_handle_irq(irq_linear_revmap(pc->gpio_chip.irqdomain, -- gpio)); -+ generic_handle_irq(irq_linear_revmap(pc->irq_domain, gpio)); - } -+ -+ return (events != 0); - } - --static void bcm2835_gpio_irq_handler(struct irq_desc *desc) -+static irqreturn_t bcm2835_gpio_irq_handler(int irq, void *dev_id) - { -- struct gpio_chip *chip = irq_desc_get_handler_data(desc); -- struct bcm2835_pinctrl *pc = gpiochip_get_data(chip); -- struct irq_chip *host_chip = irq_desc_get_chip(desc); -- int irq = irq_desc_get_irq(desc); -- int group; -- int i; -- -- for (i = 0; i < ARRAY_SIZE(pc->irq); i++) { -- if (pc->irq[i] == irq) { -- group = pc->irq_group[i]; -- break; -- } -- } -- /* This should not happen, every IRQ has a bank */ -- if (i == ARRAY_SIZE(pc->irq)) -- BUG(); -- -- chained_irq_enter(host_chip, desc); -+ struct bcm2835_gpio_irqdata *irqdata = dev_id; -+ struct bcm2835_pinctrl *pc = irqdata->pc; -+ int handled = 0; - -- switch (group) { -+ switch (irqdata->irqgroup) { - case 0: /* IRQ0 covers GPIOs 0-27 */ -- bcm2835_gpio_irq_handle_bank(pc, 0, 0x0fffffff); -+ handled = bcm2835_gpio_irq_handle_bank(pc, 0, 0x0fffffff); - break; - case 1: /* IRQ1 covers GPIOs 28-45 */ -- bcm2835_gpio_irq_handle_bank(pc, 0, 0xf0000000); -- bcm2835_gpio_irq_handle_bank(pc, 1, 0x00003fff); -+ handled = bcm2835_gpio_irq_handle_bank(pc, 0, 0xf0000000) | -+ bcm2835_gpio_irq_handle_bank(pc, 1, 0x00003fff); - break; - case 2: /* IRQ2 covers GPIOs 46-53 */ -- bcm2835_gpio_irq_handle_bank(pc, 1, 0x003fc000); -+ handled = bcm2835_gpio_irq_handle_bank(pc, 1, 0x003fc000); - break; - } - -- chained_irq_exit(host_chip, desc); -+ return handled ? IRQ_HANDLED : IRQ_NONE; - } - - static inline void __bcm2835_gpio_irq_config(struct bcm2835_pinctrl *pc, -@@ -469,8 +472,7 @@ static void bcm2835_gpio_irq_config(struct bcm2835_pinctrl *pc, - - static void bcm2835_gpio_irq_enable(struct irq_data *data) - { -- struct gpio_chip *chip = irq_data_get_irq_chip_data(data); -- struct bcm2835_pinctrl *pc = gpiochip_get_data(chip); -+ struct bcm2835_pinctrl *pc = irq_data_get_irq_chip_data(data); - unsigned gpio = irqd_to_hwirq(data); - unsigned offset = GPIO_REG_SHIFT(gpio); - unsigned bank = GPIO_REG_OFFSET(gpio); -@@ -484,8 +486,7 @@ static void bcm2835_gpio_irq_enable(struct irq_data *data) - - static void bcm2835_gpio_irq_disable(struct irq_data *data) - { -- struct gpio_chip *chip = irq_data_get_irq_chip_data(data); -- struct bcm2835_pinctrl *pc = gpiochip_get_data(chip); -+ struct bcm2835_pinctrl *pc = irq_data_get_irq_chip_data(data); - unsigned gpio = irqd_to_hwirq(data); - unsigned offset = GPIO_REG_SHIFT(gpio); - unsigned bank = GPIO_REG_OFFSET(gpio); -@@ -591,8 +592,7 @@ static int __bcm2835_gpio_irq_set_type_enabled(struct bcm2835_pinctrl *pc, - - static int bcm2835_gpio_irq_set_type(struct irq_data *data, unsigned int type) - { -- struct gpio_chip *chip = irq_data_get_irq_chip_data(data); -- struct bcm2835_pinctrl *pc = gpiochip_get_data(chip); -+ struct bcm2835_pinctrl *pc = irq_data_get_irq_chip_data(data); - unsigned gpio = irqd_to_hwirq(data); - unsigned offset = GPIO_REG_SHIFT(gpio); - unsigned bank = GPIO_REG_OFFSET(gpio); -@@ -618,8 +618,7 @@ static int bcm2835_gpio_irq_set_type(struct irq_data *data, unsigned int type) - - static void bcm2835_gpio_irq_ack(struct irq_data *data) - { -- struct gpio_chip *chip = irq_data_get_irq_chip_data(data); -- struct bcm2835_pinctrl *pc = gpiochip_get_data(chip); -+ struct bcm2835_pinctrl *pc = irq_data_get_irq_chip_data(data); - unsigned gpio = irqd_to_hwirq(data); - - bcm2835_gpio_set_bit(pc, GPEDS0, gpio); -@@ -662,11 +661,10 @@ static void bcm2835_pctl_pin_dbg_show(struct pinctrl_dev *pctldev, - unsigned offset) - { - struct bcm2835_pinctrl *pc = pinctrl_dev_get_drvdata(pctldev); -- struct gpio_chip *chip = &pc->gpio_chip; - enum bcm2835_fsel fsel = bcm2835_pinctrl_fsel_get(pc, offset); - const char *fname = bcm2835_functions[fsel]; - int value = bcm2835_gpio_get_bit(pc, GPLEV0, offset); -- int irq = irq_find_mapping(chip->irqdomain, offset); -+ int irq = irq_find_mapping(pc->irq_domain, offset); - - seq_printf(s, "function %s in %s; irq %d (%s)", - fname, value ? "hi" : "lo", -@@ -1012,6 +1010,21 @@ static int bcm2835_pinctrl_probe(struct platform_device *pdev) - pc->gpio_chip.parent = dev; - pc->gpio_chip.of_node = np; - -+ pc->irq_domain = irq_domain_add_linear(np, BCM2835_NUM_GPIOS, -+ &irq_domain_simple_ops, NULL); -+ if (!pc->irq_domain) { -+ dev_err(dev, "could not create IRQ domain\n"); -+ return -ENOMEM; -+ } -+ -+ for (i = 0; i < BCM2835_NUM_GPIOS; i++) { -+ int irq = irq_create_mapping(pc->irq_domain, i); -+ irq_set_lockdep_class(irq, &gpio_lock_class); -+ irq_set_chip_and_handler(irq, &bcm2835_gpio_irq_chip, -+ handle_level_irq); -+ irq_set_chip_data(irq, pc); -+ } -+ - for (i = 0; i < BCM2835_NUM_BANKS; i++) { - unsigned long events; - unsigned offset; -@@ -1032,39 +1045,34 @@ static int bcm2835_pinctrl_probe(struct platform_device *pdev) - spin_lock_init(&pc->irq_lock[i]); - } - -- err = gpiochip_add_data(&pc->gpio_chip, pc); -- if (err) { -- dev_err(dev, "could not add GPIO chip\n"); -- return err; -+ for (i = 0; i < BCM2835_NUM_IRQS; i++) { -+ int len; -+ char *name; -+ pc->irq[i] = irq_of_parse_and_map(np, i); -+ pc->irq_data[i].pc = pc; -+ pc->irq_data[i].irqgroup = i; -+ -+ len = strlen(dev_name(pc->dev)) + 16; -+ name = devm_kzalloc(pc->dev, len, GFP_KERNEL); -+ if (!name) -+ return -ENOMEM; -+ snprintf(name, len, "%s:bank%d", dev_name(pc->dev), i); -+ -+ err = devm_request_irq(dev, pc->irq[i], -+ bcm2835_gpio_irq_handler, IRQF_SHARED, -+ name, &pc->irq_data[i]); -+ if (err) { -+ dev_err(dev, "unable to request IRQ %d\n", pc->irq[i]); -+ return err; -+ } - } - -- err = gpiochip_irqchip_add(&pc->gpio_chip, &bcm2835_gpio_irq_chip, -- 0, handle_level_irq, IRQ_TYPE_NONE); -+ err = gpiochip_add_data(&pc->gpio_chip, pc); - if (err) { -- dev_info(dev, "could not add irqchip\n"); -+ dev_err(dev, "could not add GPIO chip\n"); - return err; - } - -- for (i = 0; i < BCM2835_NUM_IRQS; i++) { -- pc->irq[i] = irq_of_parse_and_map(np, i); -- pc->irq_group[i] = i; -- -- if (pc->irq[i] == 0) -- continue; -- -- /* -- * Use the same handler for all groups: this is necessary -- * since we use one gpiochip to cover all lines - the -- * irq handler then needs to figure out which group and -- * bank that was firing the IRQ and look up the per-group -- * and bank data. -- */ -- gpiochip_set_chained_irqchip(&pc->gpio_chip, -- &bcm2835_gpio_irq_chip, -- pc->irq[i], -- bcm2835_gpio_irq_handler); -- } -- - pc->pctl_dev = devm_pinctrl_register(dev, &bcm2835_pinctrl_desc, pc); - if (IS_ERR(pc->pctl_dev)) { - gpiochip_remove(&pc->gpio_chip); - -From 1b0c13f7d7a1bf5ee2c73899b7acd23ca8455e2e Mon Sep 17 00:00:00 2001 -From: notro -Date: Thu, 10 Jul 2014 13:59:47 +0200 -Subject: [PATCH 012/141] pinctrl-bcm2835: Set base to 0 give expected gpio - numbering - -Signed-off-by: Noralf Tronnes ---- - drivers/pinctrl/bcm/pinctrl-bcm2835.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/drivers/pinctrl/bcm/pinctrl-bcm2835.c b/drivers/pinctrl/bcm/pinctrl-bcm2835.c -index ff3789a11b3c36b922b9d08035abb638187c2f5a..d2b537572095c86576f78536f737c102487f99f4 100644 ---- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c -+++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c -@@ -381,7 +381,7 @@ static struct gpio_chip bcm2835_gpio_chip = { - .get = bcm2835_gpio_get, - .set = bcm2835_gpio_set, - .to_irq = bcm2835_gpio_to_irq, -- .base = -1, -+ .base = 0, - .ngpio = BCM2835_NUM_GPIOS, - .can_sleep = false, - }; - -From 9135377adf88bf84777dba222e96c7af65bd21ef Mon Sep 17 00:00:00 2001 -From: Phil Elwell -Date: Thu, 26 Feb 2015 09:58:22 +0000 -Subject: [PATCH 013/141] pinctrl-bcm2835: Only request the interrupts listed - in the DTB - -Although the GPIO controller can generate three interrupts (four counting -the common one), the device tree files currently only specify two. In the -absence of the third, simply don't register that interrupt (as opposed to -registering 0), which has the effect of making it impossible to generate -interrupts for GPIOs 46-53 which, since they share pins with the SD card -interface, is unlikely to be a problem. ---- - drivers/pinctrl/bcm/pinctrl-bcm2835.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/drivers/pinctrl/bcm/pinctrl-bcm2835.c b/drivers/pinctrl/bcm/pinctrl-bcm2835.c -index d2b537572095c86576f78536f737c102487f99f4..a9d480df32562defbf8be0faf0a39bfe06ff71f9 100644 ---- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c -+++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c -@@ -1049,6 +1049,8 @@ static int bcm2835_pinctrl_probe(struct platform_device *pdev) - int len; - char *name; - pc->irq[i] = irq_of_parse_and_map(np, i); -+ if (pc->irq[i] == 0) -+ break; - pc->irq_data[i].pc = pc; - pc->irq_data[i].irqgroup = i; - - -From 4489235b313694be4bf4dfbe1440af47cc245d3c Mon Sep 17 00:00:00 2001 +From 02298bf05e981ff1db4733969b6ecc77f28babd8 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 24 Jun 2015 14:10:44 +0100 -Subject: [PATCH 014/141] spi-bcm2835: Support pin groups other than 7-11 +Subject: [PATCH 011/126] spi-bcm2835: Support pin groups other than 7-11 The spi-bcm2835 driver automatically uses GPIO chip-selects due to some unreliability of the native ones. In doing so it chooses the @@ -1019,10 +662,10 @@ index f35cc10772f6670397ea923ad30158270dd68578..5dfe20ffc2866fa6789825016c585175 /* and set up the "mode" and level */ dev_info(&spi->dev, "setting up native-CS%i as GPIO %i\n", -From 360455a32a51fd8e9cb633e5a27d2d1b0bae4a5b Mon Sep 17 00:00:00 2001 +From 55ddb6740815aaf8963b0c006d0bd837c028eee7 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 1 Jul 2016 22:09:24 +0100 -Subject: [PATCH 015/141] spi-bcm2835: Disable forced software CS +Subject: [PATCH 012/126] spi-bcm2835: Disable forced software CS Select software CS in bcm2708_common.dtsi, and disable the automatic conversion in the driver to allow hardware CS to be re-enabled with an @@ -1056,10 +699,10 @@ index 5dfe20ffc2866fa6789825016c585175a29705b6..8493474d286f7a1ac6454a22c61c8c2c return 0; } -From 4ccd1b7de3eb897d4a1deb43cd57f58fc61e20e4 Mon Sep 17 00:00:00 2001 +From 8f2bbfe1d1ce86c8641af37a40177fbd999c34ae Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 8 Nov 2016 21:35:38 +0000 -Subject: [PATCH 016/141] spi-bcm2835: Remove unused code +Subject: [PATCH 013/126] spi-bcm2835: Remove unused code --- drivers/spi/spi-bcm2835.c | 61 ----------------------------------------------- @@ -1147,10 +790,10 @@ index 8493474d286f7a1ac6454a22c61c8c2cef9121bf..33d75ad38a7f77d085321ace9101900a } -From 954b463e6167afffd769d66f3bbbfd2cdfaeed2e Mon Sep 17 00:00:00 2001 +From 2ae475ea79f35f0341bc92cc4d8ffc39a101eb12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Wed, 3 Jun 2015 12:26:13 +0200 -Subject: [PATCH 017/141] ARM: bcm2835: Set Serial number and Revision +Subject: [PATCH 014/126] ARM: bcm2835: Set Serial number and Revision MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -1203,10 +846,10 @@ index 0c1edfc98696da0e0bb7f4a18cdfbcdd27a9795d..8f152266ba9b470df2eaaed9ebcf158e static const char * const bcm2835_compat[] = { -From e25a3c68d2dcf060325b4e3e04d23bb8ce8969ef Mon Sep 17 00:00:00 2001 +From d6563fcf780109ef549b45219a0f513f5b740673 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Sat, 3 Oct 2015 22:22:55 +0200 -Subject: [PATCH 018/141] dmaengine: bcm2835: Load driver early and support +Subject: [PATCH 015/126] dmaengine: bcm2835: Load driver early and support legacy API MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -1224,10 +867,10 @@ Signed-off-by: Noralf Trønnes 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/drivers/dma/Kconfig b/drivers/dma/Kconfig -index fa8f9c07ce73f712c02de35c40c6a7ee2c42fd5f..f8883e93c4d89a3ae62a585329c8d5edb5c23058 100644 +index fadc4d8783bd8a48817867eeb0640e49b193d922..e5244c1f9318bd4dbd98111394113b3e9f8596c3 100644 --- a/drivers/dma/Kconfig +++ b/drivers/dma/Kconfig -@@ -125,7 +125,7 @@ config COH901318 +@@ -131,7 +131,7 @@ config COH901318 config DMA_BCM2835 tristate "BCM2835 DMA engine support" @@ -1309,10 +952,10 @@ index 6204cc32d09c5096df8aec304c3c37b3bcb6be44..599c218dc8a73172dd4bd4a058fc8f95 MODULE_ALIAS("platform:bcm2835-dma"); MODULE_DESCRIPTION("BCM2835 DMA engine driver"); -From bd4fbea8f3da63636c740f2b5fe880102430e51d Mon Sep 17 00:00:00 2001 +From 18d9d0b89f30c59181ff5636255710983eeacf0d Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 25 Jan 2016 17:25:12 +0000 -Subject: [PATCH 019/141] firmware: Updated mailbox header +Subject: [PATCH 016/126] firmware: Updated mailbox header --- include/soc/bcm2835/raspberrypi-firmware.h | 9 +++++++++ @@ -1373,10 +1016,10 @@ index cb979ad90401e299344dd5fae38d09c489d8bd58..30fb37fe175df604a738258a2a632bca RPI_FIRMWARE_VCHIQ_INIT = 0x00048010, -From 207e3bbaf9f20fcdc1066574c36d97eae8eae30f Mon Sep 17 00:00:00 2001 +From 3f4ebab0930bd203ff1520b56ed21cef77cc2c57 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 15 Jun 2016 16:48:41 +0100 -Subject: [PATCH 020/141] rtc: Add SPI alias for pcf2123 driver +Subject: [PATCH 017/126] rtc: Add SPI alias for pcf2123 driver Without this alias, Device Tree won't cause the driver to be loaded. @@ -1396,10 +1039,10 @@ index 8895f77726e8da5444afcd602dceff8f25a9b3fd..1833b8853ceb0e6147cceb93a00e558c MODULE_LICENSE("GPL"); +MODULE_ALIAS("spi:rtc-pcf2123"); -From aef72557c930118b10171089a9817e966b7f1ce2 Mon Sep 17 00:00:00 2001 +From 349105ce6dd70b64250a3d9d686ea3ddf6c3885d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 7 Oct 2016 16:50:59 +0200 -Subject: [PATCH 021/141] watchdog: bcm2835: Support setting reboot partition +Subject: [PATCH 018/126] watchdog: bcm2835: Support setting reboot partition MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -1501,10 +1144,10 @@ index b339e0e67b4c1275fd4992fea4f1e24c0575b783..26b7177573fac2af1cd4ab5488d2686f static int bcm2835_wdt_probe(struct platform_device *pdev) -From f1b24e918ce1d73b22446651b3cfaebff5bb2620 Mon Sep 17 00:00:00 2001 +From 8a0f4761e731ad693347aebf729aa872d69c1b27 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 5 Apr 2016 19:40:12 +0100 -Subject: [PATCH 022/141] reboot: Use power off rather than busy spinning when +Subject: [PATCH 019/126] reboot: Use power off rather than busy spinning when halt is requested --- @@ -1527,10 +1170,10 @@ index 3b2aa9a9fe268d45335f781c4aa22cf573753a1b..0180d89a34af45c56243fe0f17fbe209 /* -From 017df3c9c02cc0d5c55fd56950c45f246a95ae04 Mon Sep 17 00:00:00 2001 +From 15f5ff1db0527c471328ee9157e1cd374421faa9 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 9 Nov 2016 13:02:52 +0000 -Subject: [PATCH 023/141] bcm: Make RASPBERRYPI_POWER depend on PM +Subject: [PATCH 020/126] bcm: Make RASPBERRYPI_POWER depend on PM --- drivers/soc/bcm/Kconfig | 1 + @@ -1549,10 +1192,10 @@ index 49f1e2a75d614bc21db152327c7b425ae2504f8d..dccd2374ed00631abd441e3e9d78ee74 help This enables support for the RPi power domains which can be enabled -From 23defc0d2fac17743a6071482764c77dc2049d73 Mon Sep 17 00:00:00 2001 +From 5a996ec4e608762ac630fa664d33efe1c87333db Mon Sep 17 00:00:00 2001 From: Martin Sperl Date: Fri, 2 Sep 2016 16:45:27 +0100 -Subject: [PATCH 024/141] Register the clocks early during the boot process, so +Subject: [PATCH 021/126] Register the clocks early during the boot process, so that special/critical clocks can get enabled early on in the boot process avoiding the risk of disabling a clock, pll_divider or pll when a claiming driver fails to install propperly - maybe it needs to defer. @@ -1597,10 +1240,10 @@ index 58ce6af8452db9ca8b4d3c380a06e448919f6a8d..11d89d106026f15719ea25047d6f357b MODULE_AUTHOR("Eric Anholt "); MODULE_DESCRIPTION("BCM2835 clock driver"); -From ed813d5b13e1cc6ec024af70390cfeba5f688826 Mon Sep 17 00:00:00 2001 +From f5872dfc0a07a095778b55e64a5e2380142b5b6a Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 6 Dec 2016 17:05:39 +0000 -Subject: [PATCH 025/141] bcm2835-rng: Avoid initialising if already enabled +Subject: [PATCH 022/126] bcm2835-rng: Avoid initialising if already enabled Avoids the 0x40000 cycles of warmup again if firmware has already used it --- @@ -1626,10 +1269,10 @@ index 574211a495491d9d6021dcaefe4274a63ed02055..e66c0fca8c6090e32f72796c0877a1cf err = hwrng_register(&bcm2835_rng_ops); if (err) { -From 2ab2e50b7cc3f6829fee25b2c3dc9418fa0bf8ad Mon Sep 17 00:00:00 2001 +From e07009206a9c838561eaccf9afa298ace8b6c22e Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 24 Aug 2016 16:28:44 +0100 -Subject: [PATCH 026/141] kbuild: Ignore dtco targets when filtering symbols +Subject: [PATCH 023/126] kbuild: Ignore dtco targets when filtering symbols --- scripts/Kbuild.include | 2 +- @@ -1649,10 +1292,10 @@ index 9ffd3dda3889c56a7a72229bed21ff5c49d62856..00da6c9bacbf33334233e22ca5209ade esac | tr ";" "\n" | sed -rn 's/^.*=== __KSYM_(.*) ===.*$$/KSYM_\1/p' -From f4df6f0110c72e23425985b6010358f6e355e266 Mon Sep 17 00:00:00 2001 +From be5523f7e6c88d4f040946ae408429bfa3e2f3ed Mon Sep 17 00:00:00 2001 From: Robert Tiemann Date: Mon, 20 Jul 2015 11:01:25 +0200 -Subject: [PATCH 027/141] BCM2835_DT: Fix I2S register map +Subject: [PATCH 024/126] BCM2835_DT: Fix I2S register map --- Documentation/devicetree/bindings/dma/brcm,bcm2835-dma.txt | 4 ++-- @@ -1690,10 +1333,10 @@ index 65783de0aedf3da79adc36fd077b7a89954ddb6b..a89fe4220fdc3f26f75ee66daf187554 dmas = <&dma 2>, <&dma 3>; -From 02ae10f1e05fba1ae9c67b0d7332a800f7ecaea8 Mon Sep 17 00:00:00 2001 +From 761bd42a0a2b9507bec7e1956ca1d711510601c0 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 13 Feb 2017 17:20:08 +0000 -Subject: [PATCH 028/141] clk-bcm2835: Mark used PLLs and dividers CRITICAL +Subject: [PATCH 025/126] clk-bcm2835: Mark used PLLs and dividers CRITICAL The VPU configures and relies on several PLLs and dividers. Mark all enabled dividers and their PLLs as CRITICAL to prevent the kernel from @@ -1721,10 +1364,10 @@ index 11d89d106026f15719ea25047d6f357b4bfcb2c5..fe8f5d65f2749cb3ddc878df61664826 divider->data = data; -From 14bb86fef6b6f78fd051deeea3c163b0bf9a916c Mon Sep 17 00:00:00 2001 +From f082f32a4b9f9937616740efecb459c499cfc7e4 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 13 Feb 2017 17:20:08 +0000 -Subject: [PATCH 029/141] clk-bcm2835: Add claim-clocks property +Subject: [PATCH 026/126] clk-bcm2835: Add claim-clocks property The claim-clocks property can be used to prevent PLLs and dividers from being marked as critical. It contains a vector of clock IDs, @@ -1826,10 +1469,10 @@ index fe8f5d65f2749cb3ddc878df616648267441e0ee..92b5e0f5145b32d3bfc3592fe381e8be sizeof(cprman_parent_names)); of_clk_parent_fill(dev->of_node, cprman->real_parent_names, -From 7e02583de0be15be365c6dfb6c90a5fad7cfa34b Mon Sep 17 00:00:00 2001 +From bff698d5176af4dfb53830d7aaea02fd7f789b67 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 6 Mar 2017 09:06:18 +0000 -Subject: [PATCH 030/141] clk-bcm2835: Read max core clock from firmware +Subject: [PATCH 027/126] clk-bcm2835: Read max core clock from firmware The VPU is responsible for managing the core clock, usually under direction from the bcm2835-cpufreq driver but not via the clk-bcm2835 @@ -1944,10 +1587,10 @@ index 92b5e0f5145b32d3bfc3592fe381e8be3cd90c72..336f8c9c44325d0a94e591a8557f7af2 for (i = 0; !of_property_read_u32_index(pdev->dev.of_node, "claim-clocks", -From 2c7248994981d9fd9d6d7fb84d8ecf6f196fa3e2 Mon Sep 17 00:00:00 2001 +From 36868958777e773b12b4873a158632b30b620b78 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 9 May 2016 17:28:18 -0700 -Subject: [PATCH 031/141] clk: bcm2835: Mark GPIO clocks enabled at boot as +Subject: [PATCH 028/126] clk: bcm2835: Mark GPIO clocks enabled at boot as critical. These divide off of PLLD_PER and are used for the ethernet and wifi @@ -1968,11 +1611,10 @@ diff --git a/drivers/clk/bcm/clk-bcm2835.c b/drivers/clk/bcm/clk-bcm2835.c index 336f8c9c44325d0a94e591a8557f7af246adc857..caa05e5ad0b7b5cd683e04fb3591a3dfcb40823f 100644 --- a/drivers/clk/bcm/clk-bcm2835.c +++ b/drivers/clk/bcm/clk-bcm2835.c -@@ -1483,6 +1483,15 @@ static struct clk_hw *bcm2835_register_clock(struct bcm2835_cprman *cprman, - init.name = data->name; +@@ -1484,6 +1484,15 @@ static struct clk_hw *bcm2835_register_clock(struct bcm2835_cprman *cprman, init.flags = data->flags | CLK_IGNORE_UNUSED; -+ /* + /* + * Some GPIO clocks for ethernet/wifi PLLs are marked as + * critical (since some platforms use them), but if the + * firmware didn't have them turned on then they clearly @@ -1981,14 +1623,15 @@ index 336f8c9c44325d0a94e591a8557f7af246adc857..caa05e5ad0b7b5cd683e04fb3591a3df + if ((cprman_read(cprman, data->ctl_reg) & CM_ENABLE) == 0) + init.flags &= ~CLK_IS_CRITICAL; + - /* ++ /* * Pass the CLK_SET_RATE_PARENT flag if we are allowed to propagate * rate changes on at least of the parents. + */ -From 088d0eabf924eb6ce4001e165800765b227fa195 Mon Sep 17 00:00:00 2001 +From 360ae64a346d177744f4dcd4573af03dc7ddbfd7 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 9 Feb 2017 14:36:44 +0000 -Subject: [PATCH 032/141] sound: Demote deferral errors to INFO level +Subject: [PATCH 029/126] sound: Demote deferral errors to INFO level At present there is no mechanism to specify driver load order, which can lead to deferrals and repeated retries until successful. @@ -2001,10 +1644,10 @@ Signed-off-by: Phil Elwell 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c -index 13c875e2392a40ec5651d7c12a28b9ac9f3aab85..23d56057e49b5ff6b6c3c352c150fee8cf7d8752 100644 +index fee4b0ef5566cf9e8de0bf5c568706da9cab2ea2..c728a4148903e983d61b6ae65765ba11d54c8638 100644 --- a/sound/soc/soc-core.c +++ b/sound/soc/soc-core.c -@@ -1072,7 +1072,7 @@ static int soc_bind_dai_link(struct snd_soc_card *card, +@@ -1124,7 +1124,7 @@ static int soc_bind_dai_link(struct snd_soc_card *card, cpu_dai_component.dai_name = dai_link->cpu_dai_name; rtd->cpu_dai = snd_soc_find_dai(&cpu_dai_component); if (!rtd->cpu_dai) { @@ -2013,7 +1656,7 @@ index 13c875e2392a40ec5651d7c12a28b9ac9f3aab85..23d56057e49b5ff6b6c3c352c150fee8 dai_link->cpu_dai_name); goto _err_defer; } -@@ -1084,7 +1084,7 @@ static int soc_bind_dai_link(struct snd_soc_card *card, +@@ -1137,7 +1137,7 @@ static int soc_bind_dai_link(struct snd_soc_card *card, for (i = 0; i < rtd->num_codecs; i++) { codec_dais[i] = snd_soc_find_dai(&codecs[i]); if (!codec_dais[i]) { @@ -2023,10 +1666,10 @@ index 13c875e2392a40ec5651d7c12a28b9ac9f3aab85..23d56057e49b5ff6b6c3c352c150fee8 goto _err_defer; } -From dce88aeb39bbce0167eac223802c12e246bc9183 Mon Sep 17 00:00:00 2001 +From 75ba87de1ec11099dac87b9036f4f258140f8da3 Mon Sep 17 00:00:00 2001 From: Claggy3 Date: Sat, 11 Feb 2017 14:00:30 +0000 -Subject: [PATCH 033/141] Update vfpmodule.c +Subject: [PATCH 030/126] Update vfpmodule.c Christopher Alexander Tobias Schulze - May 2, 2015, 11:57 a.m. This patch fixes a problem with VFP state save and restore related @@ -2163,10 +1806,10 @@ index a71a48e71fffa8626fe90106815376c44bbe679b..d6c0a5a0a5ae3510db3ace5e3f5d3410 /* * Save the userland NEON/VFP state. Under UP, -From 91de2e3cd0518e2cab800f3beaa85d61af19d7d2 Mon Sep 17 00:00:00 2001 +From 64452daded3b501f9be7ddcfccce3f1445804888 Mon Sep 17 00:00:00 2001 From: Matt Flax Date: Wed, 8 Mar 2017 21:13:24 +1100 -Subject: [PATCH 034/141] ASoC: bcm2835_i2s.c: relax the ch2 register setting +Subject: [PATCH 031/126] ASoC: bcm2835_i2s.c: relax the ch2 register setting for 8 channels This patch allows ch2 registers to be set for 8 channels of audio. @@ -2187,10 +1830,10 @@ index 6ba20498202ed36906b52096893a88867a79269f..56df7d8a43d0aac055a91b0d24aca8e1 format |= BCM2835_I2S_CH1(BCM2835_I2S_CHPOS(ch1pos)); format |= BCM2835_I2S_CH2(BCM2835_I2S_CHPOS(ch2pos)); -From d3acd23b45f75dafee644962f5cead4f850a45d3 Mon Sep 17 00:00:00 2001 +From 9f76dc7a504389b6bb008bf9a96c3b1faa9914ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Tue, 1 Nov 2016 15:15:41 +0100 -Subject: [PATCH 035/141] i2c: bcm2835: Add debug support +Subject: [PATCH 032/126] i2c: bcm2835: Add debug support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -2379,10 +2022,10 @@ index cd07a69e2e9355540442785f95e90823b05c9d10..47167f403cc8329bd811b47c7011c299 if (i2c_dev->msg_err & BCM2835_I2C_S_ERR) return -EREMOTEIO; -From 1eed7178de5f39dde64ae19998bb9b7b514563d6 Mon Sep 17 00:00:00 2001 +From c22386d7629d9bda8e7d49e0630b8b6034ed49ad Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Thu, 18 Dec 2014 16:07:15 -0800 -Subject: [PATCH 036/141] mm: Remove the PFN busy warning +Subject: [PATCH 033/126] mm: Remove the PFN busy warning See commit dae803e165a11bc88ca8dbc07a11077caf97bbcb -- the warning is expected sometimes when using CMA. However, that commit still spams @@ -2394,10 +2037,10 @@ Signed-off-by: Eric Anholt 1 file changed, 2 deletions(-) diff --git a/mm/page_alloc.c b/mm/page_alloc.c -index 1423da8dd16f5bdc83e20ddf6665b2022a9a6492..6ce930c02160d55dc4eee1e7197a5efa6ba7d44a 100644 +index c841af88836ad63d548a2f007220203e4a8ddf9a..9bbca2b7597fdc9a29ddbb714938501021994963 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c -@@ -7692,8 +7692,6 @@ int alloc_contig_range(unsigned long start, unsigned long end, +@@ -7632,8 +7632,6 @@ int alloc_contig_range(unsigned long start, unsigned long end, /* Make sure the range is really isolated. */ if (test_pages_isolated(outer_start, end, false)) { @@ -2407,10 +2050,10 @@ index 1423da8dd16f5bdc83e20ddf6665b2022a9a6492..6ce930c02160d55dc4eee1e7197a5efa goto done; } -From 8e5606822154ec2efe996d577a8a4b2403763771 Mon Sep 17 00:00:00 2001 +From aade3bbf37cd09d06374f96425527b8866b4e221 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 23 Mar 2017 10:06:56 +0000 -Subject: [PATCH 037/141] ASoC: Add prompt for ICS43432 codec +Subject: [PATCH 034/126] ASoC: Add prompt for ICS43432 codec Without a prompt string, a config setting can't be included in a defconfig. Give CONFIG_SND_SOC_ICS43432 a prompt so that Pi soundcards @@ -2422,10 +2065,10 @@ Signed-off-by: Phil Elwell 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig -index 6c78b0b49b8145c24740d93c4174c059d91ddae9..d6450d5fc144737f967b8e00678baa9b8f92295f 100644 +index c367d11079bc90feec2ad0fa748d7ffc3035faba..91d5b531b69b49db97f7febbc60d33a20991cb0f 100644 --- a/sound/soc/codecs/Kconfig +++ b/sound/soc/codecs/Kconfig -@@ -571,7 +571,7 @@ config SND_SOC_HDAC_HDMI +@@ -579,7 +579,7 @@ config SND_SOC_HDAC_HDMI select HDMI config SND_SOC_ICS43432 @@ -2435,10 +2078,48 @@ index 6c78b0b49b8145c24740d93c4174c059d91ddae9..d6450d5fc144737f967b8e00678baa9b config SND_SOC_INNO_RK3036 tristate "Inno codec driver for RK3036 SoC" -From 4ac0a57c84b437c249338104698ba7b19f9b1bcd Mon Sep 17 00:00:00 2001 +From 7322c26bb87606500069bb6d833ddd7350a941f0 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Thu, 18 May 2017 15:36:46 +0100 +Subject: [PATCH 035/126] staging: bcm2835-audio: Fix memory corruption + +I'm all for fixing memory leaks, but freeing a block while it is still +being used is a recipe for hard-to-debug kernel exeptions. + +1) There is already a vchi method for freeing the instance, so use it. +2) Only call it on error, and then only before initted is false. + +Signed-off-by: Phil Elwell +Fixes: 0adbfd4694c2 ("staging: bcm2835-audio: fix memory leak in bcm2835_audio_open_connection()") +--- + drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c b/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c +index 5f3d8f2339e34834d11edfa8de1d5819e3e32b4f..89f96f3c02805f4114ec9b488e18d00e1f348239 100644 +--- a/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c ++++ b/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c +@@ -409,6 +409,7 @@ static int bcm2835_audio_open_connection(struct bcm2835_alsa_stream *alsa_stream + LOG_ERR("%s: failed to connect VCHI instance (ret=%d)\n", + __func__, ret); + ++ vchi_disconnect(vchi_instance); + ret = -EIO; + goto err_free_mem; + } +@@ -431,7 +432,6 @@ static int bcm2835_audio_open_connection(struct bcm2835_alsa_stream *alsa_stream + LOG_DBG(" success !\n"); + ret = 0; + err_free_mem: +- kfree(vchi_instance); + + return ret; + } + +From ce49639b3ff8ae7384977f0946bda66aff23189f Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 12 May 2013 12:24:19 +0100 -Subject: [PATCH 038/141] Main bcm2708/bcm2709 linux port +Subject: [PATCH 036/126] Main bcm2708/bcm2709 linux port MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -2541,7 +2222,7 @@ index 06d890a2342b1600e2eae6e350994ad59f5c3a08..30d96e81c0e052c725bdb00bb3df5619 ENTRY(cpu_v6_dcache_clean_area) diff --git a/drivers/irqchip/irq-bcm2835.c b/drivers/irqchip/irq-bcm2835.c -index eccf6ed025299cb480884f5bcbe77abf55a6bbb1..8ed457fd74bd23bee27b64a2c9e3828ce0e4fb87 100644 +index 13356d3b7bcd508f058c6a9e3c4b0b385d478ef4..fee691736c124c57ede4ab47a7c6bfa3b7c3b681 100644 --- a/drivers/irqchip/irq-bcm2835.c +++ b/drivers/irqchip/irq-bcm2835.c @@ -54,7 +54,9 @@ @@ -2562,7 +2243,7 @@ index eccf6ed025299cb480884f5bcbe77abf55a6bbb1..8ed457fd74bd23bee27b64a2c9e3828c #define FIQ_START (NR_IRQS_BANK0 + MAKE_HWIRQ(NR_BANKS - 1, 0)) static const int reg_pending[] __initconst = { 0x00, 0x04, 0x08 }; -@@ -256,10 +259,12 @@ static int __init armctrl_of_init(struct device_node *node, +@@ -255,10 +258,12 @@ static int __init armctrl_of_init(struct device_node *node, MAKE_HWIRQ(b, i) + NUMBER_IRQS); BUG_ON(irq <= 0); irq_set_chip(irq, &armctrl_chip); @@ -2626,10 +2307,10 @@ index cfb4b4496dd9f61362dea012176c146120fada07..d9c6c217c4d6a2408abe2665bf7f2700 MODULE_AUTHOR("Lubomir Rintel "); MODULE_DESCRIPTION("BCM2835 mailbox IPC driver"); -From 328e67e310cac366278ac949d8493f98e03add84 Mon Sep 17 00:00:00 2001 +From 814e3af926c15ea4fc967d266d72e3d11c2bb8d9 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 1 May 2013 19:46:17 +0100 -Subject: [PATCH 039/141] Add dwc_otg driver +Subject: [PATCH 037/126] Add dwc_otg driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -3296,7 +2977,7 @@ Related: https://github.com/raspberrypi/linux/issues/2024 drivers/usb/host/dwc_otg/dwc_otg_dbg.h | 117 + drivers/usb/host/dwc_otg/dwc_otg_driver.c | 1761 +++++ drivers/usb/host/dwc_otg/dwc_otg_driver.h | 86 + - drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.c | 1390 ++++ + drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.c | 1389 ++++ drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.h | 372 + drivers/usb/host/dwc_otg/dwc_otg_fiq_stub.S | 80 + drivers/usb/host/dwc_otg/dwc_otg_hcd.c | 4284 ++++++++++++ @@ -3317,7 +2998,7 @@ Related: https://github.com/raspberrypi/linux/issues/2024 drivers/usb/host/dwc_otg/test/dwc_otg_test.pm | 337 + drivers/usb/host/dwc_otg/test/test_mod_param.pl | 133 + drivers/usb/host/dwc_otg/test/test_sysfs.pl | 193 + - 70 files changed, 60008 insertions(+), 16 deletions(-) + 70 files changed, 60007 insertions(+), 16 deletions(-) create mode 100644 drivers/usb/gadget/file_storage.c create mode 100644 drivers/usb/host/dwc_common_port/Makefile create mode 100644 drivers/usb/host/dwc_common_port/Makefile.fbsd @@ -3448,10 +3129,10 @@ index bd3e0c5a6db25e7a162d922c6508de1ad0b68025..15c80079c97bb9eeec478932af88a293 return i; } diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c -index 3f44341259d85f161e56a63a06add218d7da4b91..4a5400076fd1c297a6f289754ed3286e4bf3f374 100644 +index 41eaf0b5251800c570736baf4775c35072e4d9fc..4aff5f417af7902a6505dbdd110f4e5009a3c1b0 100644 --- a/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c -@@ -5042,7 +5042,7 @@ static void port_event(struct usb_hub *hub, int port1) +@@ -5052,7 +5052,7 @@ static void port_event(struct usb_hub *hub, int port1) if (portchange & USB_PORT_STAT_C_OVERCURRENT) { u16 status = 0, unused; @@ -3461,7 +3142,7 @@ index 3f44341259d85f161e56a63a06add218d7da4b91..4a5400076fd1c297a6f289754ed3286e USB_PORT_FEAT_C_OVER_CURRENT); msleep(100); /* Cool down */ diff --git a/drivers/usb/core/message.c b/drivers/usb/core/message.c -index 371a07d874a370bc70ad6ef1499debac8b34b6fe..30d4879d2d9b1433d71eb6f99aa67f653608e88e 100644 +index 4c38ea41ae969e6fac8ced209a655957322ba36f..abb0d9b614f469a4fb356f47ca22fb9684fffa2f 100644 --- a/drivers/usb/core/message.c +++ b/drivers/usb/core/message.c @@ -1909,6 +1909,85 @@ int usb_set_configuration(struct usb_device *dev, int configuration) @@ -37296,10 +36977,10 @@ index 0000000000000000000000000000000000000000..6a8be63a0ab20f4e1c56251b85648aa2 +#endif diff --git a/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.c b/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.c new file mode 100644 -index 0000000000000000000000000000000000000000..b7731e7edb4602f93f028d786194822161bbf0f8 +index 0000000000000000000000000000000000000000..96fd44eb6414a2b70d8be307e9dcd4c4804cef2d --- /dev/null +++ b/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.c -@@ -0,0 +1,1390 @@ +@@ -0,0 +1,1389 @@ +/* + * dwc_otg_fiq_fsm.c - The finite state machine FIQ + * @@ -37386,7 +37067,6 @@ index 0000000000000000000000000000000000000000..b7731e7edb4602f93f028d7861948221 + unsigned long tmp; + uint32_t newval; + fiq_lock_t lockval; -+ smp_mb__before_spinlock(); + /* Nested locking, yay. If we are on the same CPU as the fiq, then the disable + * will be sufficient. If we are on a different CPU, then the lock protects us. */ + prefetchw(&lock->slock); @@ -63903,10 +63583,10 @@ index 0000000000000000000000000000000000000000..cdc9963176e5a4a0d5250613b61e26c5 +test_main(); +0; -From aa71d8897033183c388b5f1fb2a4f2db651ebf7c Mon Sep 17 00:00:00 2001 +From def8163cd70fb2a1a8284999d0425bfd6503f95b Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 17 Jun 2015 17:06:34 +0100 -Subject: [PATCH 040/141] bcm2708 framebuffer driver +Subject: [PATCH 038/126] bcm2708 framebuffer driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -63988,7 +63668,7 @@ Signed-off-by: Noralf Trønnes create mode 100644 drivers/video/fbdev/bcm2708_fb.c diff --git a/drivers/video/fbdev/Kconfig b/drivers/video/fbdev/Kconfig -index 5c6696bb56da89d1ca86f00f16c3c408303ca5ad..7b44601d1c58007cdb3adafdf5f3c33a0801b8c6 100644 +index 5e58f5ec0a28e449afa8813a652b1aa3469e0721..127978982287bf04b6ea215433bd905ed432aa2f 100644 --- a/drivers/video/fbdev/Kconfig +++ b/drivers/video/fbdev/Kconfig @@ -236,6 +236,20 @@ config FB_TILEBLITTING @@ -67365,10 +67045,10 @@ index 3c14e43b82fefe1d32f591d1b2f61d2cd28d0fa8..7626beb6a5bb8df601ddf0f6e6909d1f +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 -From bb5eb313ac5aba441a90f3ef9560bd7df042c08d Mon Sep 17 00:00:00 2001 +From fc95e1c758c4df4b1df63b69867eb303427a9996 Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Fri, 22 Nov 2013 14:22:53 +0100 -Subject: [PATCH 041/141] dmaengine: Add support for BCM2708 +Subject: [PATCH 039/126] dmaengine: Add support for BCM2708 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -67527,10 +67207,10 @@ bcm2708-dmaengine - Fix arm64 portability/build issues create mode 100644 include/linux/platform_data/dma-bcm2708.h diff --git a/drivers/dma/Kconfig b/drivers/dma/Kconfig -index f8883e93c4d89a3ae62a585329c8d5edb5c23058..ec67ffad5415015512958f1b76ccc181ce0cfa33 100644 +index e5244c1f9318bd4dbd98111394113b3e9f8596c3..845fb2ff22a243e8ca9bef585dc20b8dd200b77f 100644 --- a/drivers/dma/Kconfig +++ b/drivers/dma/Kconfig -@@ -125,7 +125,7 @@ config COH901318 +@@ -131,7 +131,7 @@ config COH901318 config DMA_BCM2835 tristate "BCM2835 DMA engine support" @@ -67539,7 +67219,7 @@ index f8883e93c4d89a3ae62a585329c8d5edb5c23058..ec67ffad5415015512958f1b76ccc181 select DMA_ENGINE select DMA_VIRTUAL_CHANNELS -@@ -529,6 +529,10 @@ config TIMB_DMA +@@ -535,6 +535,10 @@ config TIMB_DMA help Enable support for the Timberdale FPGA DMA engine. @@ -67551,10 +67231,10 @@ index f8883e93c4d89a3ae62a585329c8d5edb5c23058..ec67ffad5415015512958f1b76ccc181 tristate "CPPI 4.1 DMA support" depends on (ARCH_OMAP || ARCH_DAVINCI_DA8XX) diff --git a/drivers/dma/Makefile b/drivers/dma/Makefile -index d12ab2985ed121e20a6351ec4c23604c50111339..8013779881d1a9442bdc26b12af8c1740b342a99 100644 +index f08f8de1b567c1f4911cd4216be85cf203debd36..cb884f5403a2c873fed5d9e24b2ff9cbe564f4b6 100644 --- a/drivers/dma/Makefile +++ b/drivers/dma/Makefile -@@ -19,6 +19,7 @@ obj-$(CONFIG_AT_XDMAC) += at_xdmac.o +@@ -20,6 +20,7 @@ obj-$(CONFIG_AT_XDMAC) += at_xdmac.o obj-$(CONFIG_AXI_DMAC) += dma-axi-dmac.o obj-$(CONFIG_BCM_SBA_RAID) += bcm-sba-raid.o obj-$(CONFIG_COH901318) += coh901318.o coh901318_lli.o @@ -67999,10 +67679,10 @@ index 0000000000000000000000000000000000000000..c5bfff2765be4606077e6c8af73040ec + +#endif /* _PLAT_BCM2708_DMA_H */ -From e318469f64f5f4e5d91fb056be77ddf9d46d8a5c Mon Sep 17 00:00:00 2001 +From aab0a9271ac3b47d4d3e1df7e5d6fbc0298824d5 Mon Sep 17 00:00:00 2001 From: gellert Date: Fri, 15 Aug 2014 16:35:06 +0100 -Subject: [PATCH 042/141] MMC: added alternative MMC driver +Subject: [PATCH 040/126] MMC: added alternative MMC driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -68097,10 +67777,10 @@ Signed-off-by: Phil Elwell create mode 100644 drivers/mmc/host/bcm2835-mmc.c diff --git a/drivers/mmc/core/block.c b/drivers/mmc/core/block.c -index 8bd7aba811e969a3b7cfdc6cf12e685f25e8c37e..cd1eb5cf73358a0104fbf4b6ed8e72dd491d658d 100644 +index 29fc1e662891d7bc2157ff55740bd2f110f4e14d..6bc17be504192e2e06760913e33033643c974f3d 100644 --- a/drivers/mmc/core/block.c +++ b/drivers/mmc/core/block.c -@@ -125,6 +125,13 @@ static DEFINE_MUTEX(open_lock); +@@ -126,6 +126,13 @@ static DEFINE_MUTEX(open_lock); module_param(perdev_minors, int, 0444); MODULE_PARM_DESC(perdev_minors, "Minors numbers to allocate per device"); @@ -68112,9 +67792,9 @@ index 8bd7aba811e969a3b7cfdc6cf12e685f25e8c37e..cd1eb5cf73358a0104fbf4b6ed8e72dd +MODULE_PARM_DESC(card_quirks, "Force the use of the indicated quirks (a bitfield)"); + static inline int mmc_blk_part_switch(struct mmc_card *card, - struct mmc_blk_data *md); + unsigned int part_type); -@@ -2287,6 +2294,7 @@ static int mmc_blk_probe(struct mmc_card *card) +@@ -2437,6 +2444,7 @@ static int mmc_blk_probe(struct mmc_card *card) { struct mmc_blk_data *md, *part_md; char cap_str[10]; @@ -68122,7 +67802,7 @@ index 8bd7aba811e969a3b7cfdc6cf12e685f25e8c37e..cd1eb5cf73358a0104fbf4b6ed8e72dd /* * Check that the card supports the command class(es) we need. -@@ -2294,7 +2302,16 @@ static int mmc_blk_probe(struct mmc_card *card) +@@ -2444,7 +2452,16 @@ static int mmc_blk_probe(struct mmc_card *card) if (!(card->csd.cmdclass & CCC_BLOCK_READ)) return -ENODEV; @@ -68140,7 +67820,7 @@ index 8bd7aba811e969a3b7cfdc6cf12e685f25e8c37e..cd1eb5cf73358a0104fbf4b6ed8e72dd md = mmc_blk_alloc(card); if (IS_ERR(md)) -@@ -2302,9 +2319,14 @@ static int mmc_blk_probe(struct mmc_card *card) +@@ -2452,9 +2469,14 @@ static int mmc_blk_probe(struct mmc_card *card) string_get_size((u64)get_capacity(md->disk), 512, STRING_UNITS_2, cap_str, sizeof(cap_str)); @@ -68158,10 +67838,10 @@ index 8bd7aba811e969a3b7cfdc6cf12e685f25e8c37e..cd1eb5cf73358a0104fbf4b6ed8e72dd if (mmc_blk_alloc_parts(card, md)) goto out; diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c -index 26431267a3e2d790d4eae99e65881ca60bd2047d..0ec589ace762a27f3c5ea39226fef3a67442675f 100644 +index 66c9cf49ad2f11fe59de05eae716b6b797766cc4..d970bdaadb96b31ee1727425523af4b3d2010e32 100644 --- a/drivers/mmc/core/core.c +++ b/drivers/mmc/core/core.c -@@ -2211,7 +2211,8 @@ EXPORT_SYMBOL(mmc_erase); +@@ -2210,7 +2210,8 @@ EXPORT_SYMBOL(mmc_erase); int mmc_can_erase(struct mmc_card *card) { if ((card->host->caps & MMC_CAP_ERASE) && @@ -68172,10 +67852,10 @@ index 26431267a3e2d790d4eae99e65881ca60bd2047d..0ec589ace762a27f3c5ea39226fef3a6 return 0; } diff --git a/drivers/mmc/core/host.c b/drivers/mmc/core/host.c -index 1503412f826cd0e0e9ad37a0554b31596a49eb77..2f5b3cf86293b96b104eac7c6d48a5839d7e974b 100644 +index ad88deb2e8f3b046838a3539841717951c33a6c6..2b424604e17161400b9002eeb2e836e4b7c6737e 100644 --- a/drivers/mmc/core/host.c +++ b/drivers/mmc/core/host.c -@@ -344,15 +344,30 @@ struct mmc_host *mmc_alloc_host(int extra, struct device *dev) +@@ -350,15 +350,30 @@ struct mmc_host *mmc_alloc_host(int extra, struct device *dev) { int err; struct mmc_host *host; @@ -68227,7 +67907,7 @@ index fb725934fa21cee1b98fd7bc08227bf6d0317549..c9d5d644688c1509d7febcff0322fbab }; diff --git a/drivers/mmc/host/Kconfig b/drivers/mmc/host/Kconfig -index 5755b69f2f728ffb829f257c2016a8965ce19c93..267a5be5b029603fcb0a30d59c9c44784b6633d9 100644 +index 02179ed2a40d7a87d0d1ae7ed43e95388ef36a72..1e5e64e5df56d08fa865231eb01187f61526bef5 100644 --- a/drivers/mmc/host/Kconfig +++ b/drivers/mmc/host/Kconfig @@ -4,6 +4,35 @@ @@ -68263,14 +67943,14 @@ index 5755b69f2f728ffb829f257c2016a8965ce19c93..267a5be5b029603fcb0a30d59c9c4478 + + If unsure, say 2 here. + - config MMC_ARMMMCI - tristate "ARM AMBA Multimedia Card Interface support" - depends on ARM_AMBA + config MMC_DEBUG + bool "MMC host drivers debugginG" + depends on MMC != n diff --git a/drivers/mmc/host/Makefile b/drivers/mmc/host/Makefile -index 4d454711631158559c99a4df7953b17f3b1330d6..b27b702f59ba2b473a9d4da77eb5edb0f8763f03 100644 +index 303f5cd46cd9092171117639fcb2da5733dde146..854d1a8f4addd298a2a752d89b9a710befd55783 100644 --- a/drivers/mmc/host/Makefile +++ b/drivers/mmc/host/Makefile -@@ -18,6 +18,7 @@ obj-$(CONFIG_MMC_SDHCI_S3C) += sdhci-s3c.o +@@ -19,6 +19,7 @@ obj-$(CONFIG_MMC_SDHCI_S3C) += sdhci-s3c.o obj-$(CONFIG_MMC_SDHCI_SIRF) += sdhci-sirf.o obj-$(CONFIG_MMC_SDHCI_F_SDH30) += sdhci_f_sdh30.o obj-$(CONFIG_MMC_SDHCI_SPEAR) += sdhci-spear.o @@ -69869,7 +69549,7 @@ index 0000000000000000000000000000000000000000..c4a5e992c6fb4a40b933239350ed4bfc +MODULE_LICENSE("GPL v2"); +MODULE_AUTHOR("Gellert Weisz"); diff --git a/include/linux/mmc/card.h b/include/linux/mmc/card.h -index 46c73e97e61f08a41d9753079345f5965caebbc5..388c551ed11e9d06ea1c25b6553d47a8d668953a 100644 +index 279b39008a33bb68745d9ea55ea5dd7ed522fd1c..49bdea5791a289251019a89419804dde97dbd2d0 100644 --- a/include/linux/mmc/card.h +++ b/include/linux/mmc/card.h @@ -269,6 +269,8 @@ struct mmc_card { @@ -69882,10 +69562,10 @@ index 46c73e97e61f08a41d9753079345f5965caebbc5..388c551ed11e9d06ea1c25b6553d47a8 unsigned int erase_size; /* erase size in sectors */ -From e55e301b8ef832560bbce755d963b984c237e2ed Mon Sep 17 00:00:00 2001 +From 68ab1bd9c276aea2aa98b73bc2f7c91635fa02c0 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 25 Mar 2015 17:49:47 +0000 -Subject: [PATCH 043/141] Adding bcm2835-sdhost driver, and an overlay to +Subject: [PATCH 041/126] Adding bcm2835-sdhost driver, and an overlay to enable it BCM2835 has two SD card interfaces. This driver uses the other one. @@ -70059,7 +69739,7 @@ Signed-off-by: Phil Elwell create mode 100644 drivers/mmc/host/bcm2835-sdhost.c diff --git a/drivers/mmc/host/Kconfig b/drivers/mmc/host/Kconfig -index 267a5be5b029603fcb0a30d59c9c44784b6633d9..dc41121c101e2ac6fe000fe2ab556561a340b78f 100644 +index 1e5e64e5df56d08fa865231eb01187f61526bef5..b40e7507fe8846c408798288f1e7ef6f6728de2f 100644 --- a/drivers/mmc/host/Kconfig +++ b/drivers/mmc/host/Kconfig @@ -33,6 +33,16 @@ config MMC_BCM2835_PIO_DMA_BARRIER @@ -70076,14 +69756,14 @@ index 267a5be5b029603fcb0a30d59c9c44784b6633d9..dc41121c101e2ac6fe000fe2ab556561 + + If unsure, say N. + - config MMC_ARMMMCI - tristate "ARM AMBA Multimedia Card Interface support" - depends on ARM_AMBA + config MMC_DEBUG + bool "MMC host drivers debugginG" + depends on MMC != n diff --git a/drivers/mmc/host/Makefile b/drivers/mmc/host/Makefile -index b27b702f59ba2b473a9d4da77eb5edb0f8763f03..9ba643d3b2e12960f5ce4b0eb5d75c1c360980ce 100644 +index 854d1a8f4addd298a2a752d89b9a710befd55783..0d9808eadb2a714d29fdccae74445df5794ed2fc 100644 --- a/drivers/mmc/host/Makefile +++ b/drivers/mmc/host/Makefile -@@ -19,6 +19,7 @@ obj-$(CONFIG_MMC_SDHCI_SIRF) += sdhci-sirf.o +@@ -20,6 +20,7 @@ obj-$(CONFIG_MMC_SDHCI_SIRF) += sdhci-sirf.o obj-$(CONFIG_MMC_SDHCI_F_SDH30) += sdhci_f_sdh30.o obj-$(CONFIG_MMC_SDHCI_SPEAR) += sdhci-spear.o obj-$(CONFIG_MMC_BCM2835_MMC) += bcm2835-mmc.o @@ -72291,10 +71971,10 @@ index 0000000000000000000000000000000000000000..9c6f199a7830959f31012d86bc1f8b1a +MODULE_LICENSE("GPL v2"); +MODULE_AUTHOR("Phil Elwell"); -From c989a502868b6e9ee88a31dddd8c9ff20304a0fc Mon Sep 17 00:00:00 2001 +From 43815cbb870a02b9bdd15757340682319138b7e8 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 28 Oct 2016 15:36:43 +0100 -Subject: [PATCH 044/141] vc_mem: Add vc_mem driver for querying firmware +Subject: [PATCH 042/126] vc_mem: Add vc_mem driver for querying firmware memory addresses MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -72819,10 +72499,10 @@ index 0000000000000000000000000000000000000000..20a475377eb3078ea1ecaef2b24efc35 + +#endif /* _VC_MEM_H */ -From 92506c289d5eb00ef43e614de2a4348133dbdfb8 Mon Sep 17 00:00:00 2001 +From 9acdc2d35c3bc4d9657cd5601f351dd78515e56f Mon Sep 17 00:00:00 2001 From: Tim Gover Date: Tue, 22 Jul 2014 15:41:04 +0100 -Subject: [PATCH 045/141] vcsm: VideoCore shared memory service for BCM2835 +Subject: [PATCH 043/126] vcsm: VideoCore shared memory service for BCM2835 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -72906,7 +72586,7 @@ Signed-off-by: Dave Stevenson create mode 100644 include/linux/broadcom/vmcs_sm_ioctl.h diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig -index ccd239ab879ff326a1c7a85c2fd66fb8021d0f29..7cab65d4e530a701844bc4c3d65df2b4137b150d 100644 +index 6237143446002767402ba8af1f30a968e297d8c0..0aeb4d62816cc5421b9bb2d37fb3d9e39411b40a 100644 --- a/drivers/char/Kconfig +++ b/drivers/char/Kconfig @@ -4,6 +4,8 @@ @@ -77696,10 +77376,10 @@ index 0000000000000000000000000000000000000000..b75729d762f25aace133f7a008633b40 + +#endif /* __VMCS_SM_IOCTL_H__INCLUDED__ */ -From 111c3d7fc014716ddc0110003d9645be273dbebe Mon Sep 17 00:00:00 2001 +From e75eabc0faf3c8f3a5d256b6e299335b79ca8ecd Mon Sep 17 00:00:00 2001 From: Luke Wren Date: Fri, 21 Aug 2015 23:14:48 +0100 -Subject: [PATCH 046/141] Add /dev/gpiomem device for rootless user GPIO access +Subject: [PATCH 044/126] Add /dev/gpiomem device for rootless user GPIO access Signed-off-by: Luke Wren @@ -78007,10 +77687,10 @@ index 0000000000000000000000000000000000000000..f5e7f1ba8fb6f18dee77fad06a17480c +MODULE_DESCRIPTION("gpiomem driver for accessing GPIO from userspace"); +MODULE_AUTHOR("Luke Wren "); -From 12413f7c0d6585191c90d250f1cc2ff4a5bf9157 Mon Sep 17 00:00:00 2001 +From b7744cfa0d0d4969cfb50f03a507d92949f1f783 Mon Sep 17 00:00:00 2001 From: Luke Wren Date: Sat, 5 Sep 2015 01:14:45 +0100 -Subject: [PATCH 047/141] Add SMI driver +Subject: [PATCH 045/126] Add SMI driver Signed-off-by: Luke Wren --- @@ -78561,7 +78241,7 @@ index 8136dc7e863d7166a64c5ac8bddfa7f606e8c1fa..3db74632766eaacfe7a98d6cf4cf39db tristate "Analog Devices Digital Potentiometers" depends on (I2C || SPI) && SYSFS diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile -index b0b766416306e2e9ab4ffed550cb2a89b9f94280..fa5cba718065e656a29d7c9be0497e871a67d13f 100644 +index d84819dc2468c556228e486e2166005dccb731a5..f2d3afd0646071d74f343d1b21a45efd7bf3c676 100644 --- a/drivers/misc/Makefile +++ b/drivers/misc/Makefile @@ -9,6 +9,7 @@ obj-$(CONFIG_AD525X_DPOT_SPI) += ad525x_dpot-spi.o @@ -79961,10 +79641,10 @@ index 0000000000000000000000000000000000000000..ee3a75edfc033eeb0d90a687ffb68b10 + +#endif /* BCM2835_SMI_H */ -From a733e21bbf80060b7dc4cbedf67180ab48add72b Mon Sep 17 00:00:00 2001 +From 9f1b4cba1ac37f6f2c3b4309a0dac493f02bfac9 Mon Sep 17 00:00:00 2001 From: Martin Sperl Date: Tue, 26 Apr 2016 14:59:21 +0000 -Subject: [PATCH 048/141] MISC: bcm2835: smi: use clock manager and fix reload +Subject: [PATCH 046/126] MISC: bcm2835: smi: use clock manager and fix reload issues Use clock manager instead of self-made clockmanager. @@ -79998,7 +79678,7 @@ index 63a4ea08b9930a3a31a985f0a1d969b488ed49ec..1261540703127d1d63b9f3c87042c6e5 dma_addr_t smi_regs_busaddr; struct dma_chan *dma_chan; -@@ -72,50 +73,13 @@ struct bcm2835_smi_instance { +@@ -72,8 +73,7 @@ struct bcm2835_smi_instance { struct scatterlist buffer_sgl; @@ -80008,11 +79688,10 @@ index 63a4ea08b9930a3a31a985f0a1d969b488ed49ec..1261540703127d1d63b9f3c87042c6e5 /* Sometimes we are called into in an atomic context (e.g. by JFFS2 + MTD) so we can't use a mutex */ - spinlock_t transaction_lock; - }; +@@ -82,42 +82,6 @@ struct bcm2835_smi_instance { --/**************************************************************************** --* + /**************************************************************************** + * -* SMI clock manager setup -* -***************************************************************************/ @@ -80047,9 +79726,11 @@ index 63a4ea08b9930a3a31a985f0a1d969b488ed49ec..1261540703127d1d63b9f3c87042c6e5 - CM_SMI_CTL_ENAB, CM_SMI_CTL); -} - - /**************************************************************************** - * +-/**************************************************************************** +-* * SMI peripheral setup + * + ***************************************************************************/ @@ -894,42 +858,40 @@ static int bcm2835_smi_probe(struct platform_device *pdev) struct device_node *node = dev->of_node; struct resource *ioresource; @@ -80133,10 +79814,10 @@ index 63a4ea08b9930a3a31a985f0a1d969b488ed49ec..1261540703127d1d63b9f3c87042c6e5 return 0; } -From 1902668fe6bb2be2c72f9ec340cfe95682607cc6 Mon Sep 17 00:00:00 2001 +From 96f1fe17d1d0bf37cc6ec3649c8f95813c2aaa04 Mon Sep 17 00:00:00 2001 From: Luke Wren Date: Sat, 5 Sep 2015 01:16:10 +0100 -Subject: [PATCH 049/141] Add SMI NAND driver +Subject: [PATCH 047/126] Add SMI NAND driver Signed-off-by: Luke Wren --- @@ -80198,7 +79879,7 @@ index 0000000000000000000000000000000000000000..159544d6579070d376d146bd24a86653 +}; \ No newline at end of file diff --git a/drivers/mtd/nand/Kconfig b/drivers/mtd/nand/Kconfig -index dbfa72d61d5aa7b955e6d0728b127f69e79b3012..cb0e36dd772e8babb15f1a5f71797401f7153eb9 100644 +index 3f2036f31da47ae7209365c31aab0bb363b6940f..0534944728b7535b3b8324e9d91598c9b0c95dea 100644 --- a/drivers/mtd/nand/Kconfig +++ b/drivers/mtd/nand/Kconfig @@ -40,6 +40,13 @@ config MTD_SM_COMMON @@ -80229,7 +79910,7 @@ index ade5fc4c3819a79ffd575119ed6bbf5607bd8b7f..4312f9ac34ed8f3ae5d73dd1973a07e9 obj-$(CONFIG_MTD_NAND_TANGO) += tango_nand.o diff --git a/drivers/mtd/nand/bcm2835_smi_nand.c b/drivers/mtd/nand/bcm2835_smi_nand.c new file mode 100644 -index 0000000000000000000000000000000000000000..02adda6da18bd0ba9ab19a104975b79de58bfdce +index 0000000000000000000000000000000000000000..c4826ea1c2bae555ce780e61f1076dddc1fa80db --- /dev/null +++ b/drivers/mtd/nand/bcm2835_smi_nand.c @@ -0,0 +1,267 @@ @@ -80274,7 +79955,7 @@ index 0000000000000000000000000000000000000000..02adda6da18bd0ba9ab19a104975b79d +#include +#include +#include -+#include ++#include +#include + +#include @@ -80501,10 +80182,10 @@ index 0000000000000000000000000000000000000000..02adda6da18bd0ba9ab19a104975b79d + ("Driver for NAND chips using Broadcom Secondary Memory Interface"); +MODULE_AUTHOR("Luke Wren "); -From d1a1fdae06e40a2ce7c195bd30fae3fb6db1f361 Mon Sep 17 00:00:00 2001 +From 4e98c8b70451af0c06201c839e37d074ffcbbdbe Mon Sep 17 00:00:00 2001 From: Aron Szabo Date: Sat, 16 Jun 2012 12:15:55 +0200 -Subject: [PATCH 050/141] lirc: added support for RaspberryPi GPIO +Subject: [PATCH 048/126] lirc: added support for RaspberryPi GPIO lirc_rpi: Use read_current_timer to determine transmitter delay. Thanks to jjmz and others See: https://github.com/raspberrypi/linux/issues/525 @@ -81364,10 +81045,10 @@ index 0000000000000000000000000000000000000000..fb69624ccef00ddbdccf8256d6baf1b1 + +#endif -From 28e6f0fb9665d3c90e2e03cf023fb19b6a62dd9a Mon Sep 17 00:00:00 2001 +From b0c3236fd97324c7db26cd4d00f7ead13fc56b83 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 3 Jul 2013 00:49:20 +0100 -Subject: [PATCH 051/141] Add cpufreq driver +Subject: [PATCH 049/126] Add cpufreq driver Signed-off-by: popcornmix @@ -81383,12 +81064,12 @@ Signed-off-by: Dom Cobley create mode 100644 drivers/cpufreq/bcm2835-cpufreq.c diff --git a/drivers/cpufreq/Kconfig.arm b/drivers/cpufreq/Kconfig.arm -index 2011fec2d6ad9d5b4ad1b089c38a1be23baeb509..32caf32c8b247244930cbe27e8e5981728b8f3ac 100644 +index bdce4488ded1709b40282e8b14c614ee14e35ac8..e6e43bb9b51a9693932ce293195805a747f91f12 100644 --- a/drivers/cpufreq/Kconfig.arm +++ b/drivers/cpufreq/Kconfig.arm -@@ -242,6 +242,15 @@ config ARM_STI_CPUFREQ - this config option if you wish to add CPUFreq support for STi based - SoCs. +@@ -237,6 +237,15 @@ config ARM_TANGO_CPUFREQ + depends on CPUFREQ_DT && ARCH_TANGO + default y +config ARM_BCM2835_CPUFREQ + depends on RASPBERRYPI_FIRMWARE @@ -81403,13 +81084,13 @@ index 2011fec2d6ad9d5b4ad1b089c38a1be23baeb509..32caf32c8b247244930cbe27e8e59817 bool "Tegra20 CPUFreq support" depends on ARCH_TEGRA diff --git a/drivers/cpufreq/Makefile b/drivers/cpufreq/Makefile -index ab3a42cd29ef210bcf0cad2ee48c74cb954b14f2..f81761612a9bef474090a868305bb86ee57cd930 100644 +index c7af9b2a255e1914fafd89d5bcfe2032c8db5b07..1e572daefc43b65d718012cbf273266097255be9 100644 --- a/drivers/cpufreq/Makefile +++ b/drivers/cpufreq/Makefile -@@ -75,6 +75,7 @@ obj-$(CONFIG_ARM_SA1110_CPUFREQ) += sa1110-cpufreq.o - obj-$(CONFIG_ARM_SCPI_CPUFREQ) += scpi-cpufreq.o +@@ -75,6 +75,7 @@ obj-$(CONFIG_ARM_SCPI_CPUFREQ) += scpi-cpufreq.o obj-$(CONFIG_ARM_SPEAR_CPUFREQ) += spear-cpufreq.o obj-$(CONFIG_ARM_STI_CPUFREQ) += sti-cpufreq.o + obj-$(CONFIG_ARM_TANGO_CPUFREQ) += tango-cpufreq.o +obj-$(CONFIG_ARM_BCM2835_CPUFREQ) += bcm2835-cpufreq.o obj-$(CONFIG_ARM_TEGRA20_CPUFREQ) += tegra20-cpufreq.o obj-$(CONFIG_ARM_TEGRA124_CPUFREQ) += tegra124-cpufreq.o @@ -81631,10 +81312,10 @@ index 0000000000000000000000000000000000000000..99345969b0e4d651fd9033d67de2febb +module_init(bcm2835_cpufreq_module_init); +module_exit(bcm2835_cpufreq_module_exit); -From 1cc147f1cf205f70c271099c7ea564887c6e5d12 Mon Sep 17 00:00:00 2001 +From 387dd5c62231c157fef11057e2ebbb40063e16fd Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 17 Jun 2015 15:44:08 +0100 -Subject: [PATCH 052/141] Add Chris Boot's i2c driver +Subject: [PATCH 050/126] Add Chris Boot's i2c driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -81738,7 +81419,7 @@ both bcm2708_bsc_fifo_fill and ~drain are changed as well. create mode 100644 drivers/i2c/busses/i2c-bcm2708.c diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig -index 65fa29591d21641fd1bd4e4484d8daeef56f9bdb..82991e8031053ccca64798f079a8962ab1933873 100644 +index c06dce2c1da745fab9727715f5ffaa01a40d4d04..0e994077db9c2d8fd9d58c73d8377bac349d652b 100644 --- a/drivers/i2c/busses/Kconfig +++ b/drivers/i2c/busses/Kconfig @@ -8,6 +8,25 @@ menu "I2C Hardware Bus support" @@ -81768,7 +81449,7 @@ index 65fa29591d21641fd1bd4e4484d8daeef56f9bdb..82991e8031053ccca64798f079a8962a tristate "ALI 1535" depends on PCI diff --git a/drivers/i2c/busses/Makefile b/drivers/i2c/busses/Makefile -index 1b2fc815a4d838fffd96f8f40234092752477f31..68cfa5bbc26b1ea89ec0212559fadc10fa437346 100644 +index 47f3ac9a695ad21066fc5ab47df40a564913e024..d0d755cee1a28408a53a9f92b140dd8a431a6a5c 100644 --- a/drivers/i2c/busses/Makefile +++ b/drivers/i2c/busses/Makefile @@ -2,6 +2,8 @@ @@ -82299,10 +81980,10 @@ index 0000000000000000000000000000000000000000..962f2e5c7455d91bf32925d785f5f16b +MODULE_LICENSE("GPL v2"); +MODULE_ALIAS("platform:" DRV_NAME); -From 4810d8b27fc3f42aa36085f07e43a3905e2ae79d Mon Sep 17 00:00:00 2001 +From 514707f38d61469c5b479d27fadb0602cb8e10c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 26 Jun 2015 14:27:06 +0200 -Subject: [PATCH 053/141] char: broadcom: Add vcio module +Subject: [PATCH 051/126] char: broadcom: Add vcio module MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -82527,10 +82208,10 @@ index 0000000000000000000000000000000000000000..c19bc2075c77879563ef5e59038b5a14 +MODULE_DESCRIPTION("Mailbox userspace access"); +MODULE_LICENSE("GPL"); -From 1f28609cab527b4554e295055d265c002399b257 Mon Sep 17 00:00:00 2001 +From 562b7efb1b21dceb65bb258aeaec77f2cf12da52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 26 Jun 2015 14:25:01 +0200 -Subject: [PATCH 054/141] firmware: bcm2835: Support ARCH_BCM270x +Subject: [PATCH 052/126] firmware: bcm2835: Support ARCH_BCM270x MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -82613,10 +82294,10 @@ index dd506cd3a5b874f9e1acd07efb8cd151bb6145d1..3f070bd38a91511c986e3fb114b15bd4 MODULE_AUTHOR("Eric Anholt "); MODULE_DESCRIPTION("Raspberry Pi firmware driver"); -From 9b50dc066b99a7f6682c2a455e164f5d4d94d226 Mon Sep 17 00:00:00 2001 +From e38f72b1b0fb822bacba07693ac38c23974d54ad Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 11 May 2015 09:00:42 +0100 -Subject: [PATCH 055/141] scripts: Add mkknlimg and knlinfo scripts from tools +Subject: [PATCH 053/126] scripts: Add mkknlimg and knlinfo scripts from tools repo The Raspberry Pi firmware looks for a trailer on the kernel image to @@ -83143,10 +82824,10 @@ index 0000000000000000000000000000000000000000..84be2593ec1de8f97b0167ff06b3e05d + return $trailer; +} -From 2faf220f8a809f5733550ecce459a151fcb37758 Mon Sep 17 00:00:00 2001 +From 6b8863aa533590e05903dea482bdceb30302553b Mon Sep 17 00:00:00 2001 From: notro Date: Wed, 9 Jul 2014 14:46:08 +0200 -Subject: [PATCH 056/141] BCM2708: Add core Device Tree support +Subject: [PATCH 054/126] BCM2708: Add core Device Tree support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -83637,7 +83318,7 @@ index 3c79f85975aaa26c7c2e353fefc54d71d89bc5bf..eaaeb17e5986e5f7178b2851169444ac -*.dtb +*.dtb* diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile -index 4b17f35dc9a7167bcce9b5c9c9b35b7375add15c..7dd76e2bce867092846ce9bf5131d1a37ca965eb 100644 +index faf46abaa4a2773721a0c30b012a2ae52308daae..29914dd3a7723c462b4d62b37a0c467db1480404 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile @@ -1,5 +1,14 @@ @@ -83655,7 +83336,7 @@ index 4b17f35dc9a7167bcce9b5c9c9b35b7375add15c..7dd76e2bce867092846ce9bf5131d1a3 dtb-$(CONFIG_ARCH_ALPINE) += \ alpine-db.dtb dtb-$(CONFIG_MACH_ARTPEC6) += \ -@@ -1056,10 +1065,21 @@ dtb-$(CONFIG_ARCH_ZX) += zx296702-ad1.dtb +@@ -1068,10 +1077,21 @@ dtb-$(CONFIG_ARCH_ZX) += zx296702-ad1.dtb dtb-$(CONFIG_ARCH_ASPEED) += aspeed-bmc-opp-palmetto.dtb \ aspeed-bmc-opp-romulus.dtb \ aspeed-ast2500-evb.dtb @@ -95361,10 +95042,10 @@ index 993fb85982df2df2a7f8e20780d0cfbe3cb732e8..b44d8c993f1d347908b0a97525c8ff60 .PHONY: $(PHONY) diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib -index 58c05e5d9870b6c18a72da7dc44ff3112994946d..9842523b225a88505d796cc689c04f40359eaf3d 100644 +index 5e975fee0f5b44343807d2f4e92954cb521497dc..3cf3f3eef6abdac2695d321c3d1bbc94fbe6f2da 100644 --- a/scripts/Makefile.lib +++ b/scripts/Makefile.lib -@@ -324,6 +324,17 @@ cmd_dtc = mkdir -p $(dir ${dtc-tmp}) ; \ +@@ -315,6 +315,17 @@ cmd_dtc = mkdir -p $(dir ${dtc-tmp}) ; \ $(obj)/%.dtb: $(src)/%.dts FORCE $(call if_changed_dep,dtc) @@ -95383,10 +95064,10 @@ index 58c05e5d9870b6c18a72da7dc44ff3112994946d..9842523b225a88505d796cc689c04f40 # Bzip2 -From 86946be806589d04dae539c657f93137e14b9f5a Mon Sep 17 00:00:00 2001 +From 4ddd349728b2a193e05c1249d483d6f17e95c868 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 6 Feb 2015 13:50:57 +0000 -Subject: [PATCH 057/141] BCM270x_DT: Add pwr_led, and the required "input" +Subject: [PATCH 055/126] BCM270x_DT: Add pwr_led, and the required "input" trigger The "input" trigger makes the associated GPIO an input. This is to support @@ -95416,7 +95097,7 @@ See: https://github.com/raspberrypi/linux/issues/1064 create mode 100644 drivers/leds/trigger/ledtrig-input.c diff --git a/drivers/leds/leds-gpio.c b/drivers/leds/leds-gpio.c -index e753ba93ba1e544986f1774d9c33c45aab23a996..809a63b02443b25113f5f134150972d280c49bc5 100644 +index 764c31301f903cef5d785a4adf49b4056df0dc2d..9544067cafa5553a4396b68c568838f271a3d105 100644 --- a/drivers/leds/leds-gpio.c +++ b/drivers/leds/leds-gpio.c @@ -50,8 +50,15 @@ static void gpio_led_set(struct led_classdev *led_cdev, @@ -95547,13 +95228,13 @@ index 0000000000000000000000000000000000000000..27f8ebea43d86fc51c98db5c953da05b +MODULE_DESCRIPTION("Set LED GPIO to Input \"trigger\""); +MODULE_LICENSE("GPL"); diff --git a/include/linux/leds.h b/include/linux/leds.h -index 64c56d454f7df9f864a5242ce4212df586f66886..3fd74c8737871cb56f0355c858fc135e1188c1f8 100644 +index bf6db4fe895bcd67e04ee65e8f76ea104af6299f..8741dca6dba65e2d72fbdbc1702139c2c09981f2 100644 --- a/include/linux/leds.h +++ b/include/linux/leds.h -@@ -49,6 +49,9 @@ struct led_classdev { - #define LED_HW_PLUGGABLE (1 << 19) +@@ -50,6 +50,9 @@ struct led_classdev { #define LED_PANIC_INDICATOR (1 << 20) #define LED_BRIGHT_HW_CHANGED (1 << 21) + #define LED_RETAIN_AT_SHUTDOWN (1 << 22) + /* Additions for Raspberry Pi PWR LED */ +#define SET_GPIO_INPUT (1 << 30) +#define SET_GPIO_OUTPUT (1 << 31) @@ -95561,10 +95242,10 @@ index 64c56d454f7df9f864a5242ce4212df586f66886..3fd74c8737871cb56f0355c858fc135e /* set_brightness_work / blink_timer flags, atomic, private. */ unsigned long work_flags; -From d3303dfa22bbf70a5081c555c31a6446dabf5bd0 Mon Sep 17 00:00:00 2001 +From dc5d5f55601228b7d15316b5f3f351cad1ca7231 Mon Sep 17 00:00:00 2001 From: Siarhei Siamashka Date: Mon, 17 Jun 2013 13:32:11 +0300 -Subject: [PATCH 058/141] fbdev: add FBIOCOPYAREA ioctl +Subject: [PATCH 056/126] fbdev: add FBIOCOPYAREA ioctl Based on the patch authored by Ali Gholami Rudi at https://lkml.org/lkml/2009/7/13/153 @@ -95734,10 +95415,10 @@ index 37f60813fe1dd95d9f5f725c07ec2e75c09857bf..a048c964b11508042ffc582f452f2a4c if (ret == 0) { platform_set_drvdata(dev, fb); diff --git a/drivers/video/fbdev/core/fbmem.c b/drivers/video/fbdev/core/fbmem.c -index 7a42238db446b0093323505b710963ac94a53e15..6e3be5680f33a564cebec408d1e15ffddbe0f890 100644 +index f741ba8df01b8e28f4331f988d2b04219bb103b6..be8c43d62698a426504642a2b51ffd71b2ac90e8 100644 --- a/drivers/video/fbdev/core/fbmem.c +++ b/drivers/video/fbdev/core/fbmem.c -@@ -1084,6 +1084,31 @@ fb_blank(struct fb_info *info, int blank) +@@ -1086,6 +1086,31 @@ fb_blank(struct fb_info *info, int blank) } EXPORT_SYMBOL(fb_blank); @@ -95769,7 +95450,7 @@ index 7a42238db446b0093323505b710963ac94a53e15..6e3be5680f33a564cebec408d1e15ffd static long do_fb_ioctl(struct fb_info *info, unsigned int cmd, unsigned long arg) { -@@ -1094,6 +1119,7 @@ static long do_fb_ioctl(struct fb_info *info, unsigned int cmd, +@@ -1096,6 +1121,7 @@ static long do_fb_ioctl(struct fb_info *info, unsigned int cmd, struct fb_cmap cmap_from; struct fb_cmap_user cmap; struct fb_event event; @@ -95777,7 +95458,7 @@ index 7a42238db446b0093323505b710963ac94a53e15..6e3be5680f33a564cebec408d1e15ffd void __user *argp = (void __user *)arg; long ret = 0; -@@ -1211,6 +1237,15 @@ static long do_fb_ioctl(struct fb_info *info, unsigned int cmd, +@@ -1213,6 +1239,15 @@ static long do_fb_ioctl(struct fb_info *info, unsigned int cmd, unlock_fb_info(info); console_unlock(); break; @@ -95793,7 +95474,7 @@ index 7a42238db446b0093323505b710963ac94a53e15..6e3be5680f33a564cebec408d1e15ffd default: if (!lock_fb_info(info)) return -ENODEV; -@@ -1356,6 +1391,7 @@ static long fb_compat_ioctl(struct file *file, unsigned int cmd, +@@ -1358,6 +1393,7 @@ static long fb_compat_ioctl(struct file *file, unsigned int cmd, case FBIOPAN_DISPLAY: case FBIOGET_CON2FBMAP: case FBIOPUT_CON2FBMAP: @@ -95832,10 +95513,10 @@ index fb795c3b3c178ad3cd7c9e9e4547ffd492bac181..703fa8a70574323abe2fb32599254582 __u32 dx; /* screen-relative */ __u32 dy; -From 984f4d6b20744ee5131a5f2deed422ac13a5dd30 Mon Sep 17 00:00:00 2001 +From 7182d90559f9d9a5a912de8fba3263c13f09b43c Mon Sep 17 00:00:00 2001 From: Harm Hanemaaijer Date: Thu, 20 Jun 2013 20:21:39 +0200 -Subject: [PATCH 059/141] Speed up console framebuffer imageblit function +Subject: [PATCH 057/126] Speed up console framebuffer imageblit function Especially on platforms with a slower CPU but a relatively high framebuffer fill bandwidth, like current ARM devices, the existing @@ -96044,10 +95725,10 @@ index a2bb276a8b2463eee98eb237c4647bc00cd93601..436494fba15abecb400ef28688466faf start_index, pitch_index); } else -From d0140191f8e11e66d9ff99d5fbb142d3565a047d Mon Sep 17 00:00:00 2001 +From f0af3ff1cc08b1926b72a27cd5394824c3df1de1 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 8 May 2013 11:46:50 +0100 -Subject: [PATCH 060/141] enabling the realtime clock 1-wire chip DS1307 and +Subject: [PATCH 058/126] enabling the realtime clock 1-wire chip DS1307 and 1-wire on GPIO4 (as a module) 1-wire: Add support for configuring pin for w1-gpio kernel module @@ -96280,10 +95961,10 @@ index d58594a3232492e33f1dd4babd3798b03e0f0203..feae94256256316fd9d850c3d83325af unsigned int ext_pullup_enable_pin; unsigned int pullup_duration; diff --git a/include/linux/w1.h b/include/linux/w1.h -index 90cbe7e65059f6b604a87c6bf39cd9bbeae7684c..a52be51ee0a5511a75d4eaa8dacaec5e131ebdcf 100644 +index 5b2972946dda5f9ad415f1eaeaab67743a5cc0f0..b3558b7c9efb2484b40e31312aee197b824b9306 100644 --- a/include/linux/w1.h +++ b/include/linux/w1.h -@@ -155,6 +155,12 @@ struct w1_bus_master { +@@ -157,6 +157,12 @@ struct w1_bus_master { u8 (*set_pullup)(void *, int); @@ -96297,10 +95978,10 @@ index 90cbe7e65059f6b604a87c6bf39cd9bbeae7684c..a52be51ee0a5511a75d4eaa8dacaec5e u8, w1_slave_found_callback); }; -From ff6a8453190f2023de295e4639f1f5ede7908bd3 Mon Sep 17 00:00:00 2001 +From b09e73358fa9c869db4dd0f0ece58d5c0ca5674b Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 14 Jul 2014 22:02:09 +0100 -Subject: [PATCH 061/141] hid: Reduce default mouse polling interval to 60Hz +Subject: [PATCH 059/126] hid: Reduce default mouse polling interval to 60Hz Reduces overhead when using X --- @@ -96308,7 +95989,7 @@ Reduces overhead when using X 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/hid/usbhid/hid-core.c b/drivers/hid/usbhid/hid-core.c -index 3f11b02f9857648ba27138f39823a4017fb93d2f..09a81a447dd64887f6dbd8ec8dc402644c43b1a8 100644 +index 089bad8a9a21d6b35742df8819fabb4da5036730..c18a6e634e5f0760339990554d7905029dc3644f 100644 --- a/drivers/hid/usbhid/hid-core.c +++ b/drivers/hid/usbhid/hid-core.c @@ -48,7 +48,7 @@ @@ -96320,7 +96001,7 @@ index 3f11b02f9857648ba27138f39823a4017fb93d2f..09a81a447dd64887f6dbd8ec8dc40264 module_param_named(mousepoll, hid_mousepoll_interval, uint, 0644); MODULE_PARM_DESC(mousepoll, "Polling interval of mice"); -@@ -1098,7 +1098,9 @@ static int usbhid_start(struct hid_device *hid) +@@ -1088,7 +1088,9 @@ static int usbhid_start(struct hid_device *hid) /* Change the polling interval of mice and joysticks. */ switch (hid->collection->usage) { case HID_GD_MOUSE: @@ -96332,10 +96013,10 @@ index 3f11b02f9857648ba27138f39823a4017fb93d2f..09a81a447dd64887f6dbd8ec8dc40264 break; case HID_GD_JOYSTICK: -From c8c27d39caa433b1fa0b4a913f59489018948e41 Mon Sep 17 00:00:00 2001 +From ee65f476e9ec757930f6f82e5824c8088a961028 Mon Sep 17 00:00:00 2001 From: Gordon Hollingworth Date: Tue, 12 May 2015 14:47:56 +0100 -Subject: [PATCH 062/141] rpi-ft5406: Add touchscreen driver for pi LCD display +Subject: [PATCH 060/126] rpi-ft5406: Add touchscreen driver for pi LCD display Fix driver detection failure Check that the buffer response is non-zero meaning the touchscreen was detected @@ -96693,10 +96374,10 @@ index 30fb37fe175df604a738258a2a632bca3bfff33f..4a3d79d3b48eb483a4e4bf498f617515 RPI_FIRMWARE_FRAMEBUFFER_SET_BACKLIGHT = 0x0004800f, -From c733fbac6dca6fa12e37db95d110865d9d825424 Mon Sep 17 00:00:00 2001 +From afbffe8b319ba45bf223849ae2a0f28f18e078c4 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 28 Nov 2016 16:50:04 +0000 -Subject: [PATCH 063/141] Improve __copy_to_user and __copy_from_user +Subject: [PATCH 061/126] Improve __copy_to_user and __copy_from_user performance Provide a __copy_from_user that uses memcpy. On BCM2708, use @@ -96738,12 +96419,12 @@ Signed-off-by: Phil Elwell create mode 100644 arch/arm/lib/memset_rpi.S diff --git a/arch/arm/include/asm/string.h b/arch/arm/include/asm/string.h -index cf4f3aad0fc1c2154c6cf3839ff21bb1c46d6499..d69b70a6007dfc647ad164d1ee90d253c0686dee 100644 +index fe1c6af3a1b1a4cab35c6d125b43262d3d21fd85..54b40c9cc5f091a7aa77515321782bb2adedbc57 100644 --- a/arch/arm/include/asm/string.h +++ b/arch/arm/include/asm/string.h -@@ -24,6 +24,11 @@ extern void * memchr(const void *, int, __kernel_size_t); - #define __HAVE_ARCH_MEMSET - extern void * memset(void *, int, __kernel_size_t); +@@ -38,6 +38,11 @@ static inline void *memset64(uint64_t *p, uint64_t v, __kernel_size_t n) + return __memset64(p, v, n * 8, v >> 32); + } +#ifdef CONFIG_BCM2835_FAST_MEMCPY +#define __HAVE_ARCH_MEMCMP @@ -96754,10 +96435,10 @@ index cf4f3aad0fc1c2154c6cf3839ff21bb1c46d6499..d69b70a6007dfc647ad164d1ee90d253 #define memset(p,v,n) \ diff --git a/arch/arm/include/asm/uaccess.h b/arch/arm/include/asm/uaccess.h -index 0bf2347495f13e4db7fdc1c560b0976ec1fbd619..6c7927ab1a47a0bd24241772ed1dcb3e37827e61 100644 +index 87936dd5d1510572993d4bcc9b4fa1222a4dd3b2..17da428d0574b11de7551956b2896ea04d5d4273 100644 --- a/arch/arm/include/asm/uaccess.h +++ b/arch/arm/include/asm/uaccess.h -@@ -447,6 +447,9 @@ do { \ +@@ -449,6 +449,9 @@ do { \ extern unsigned long __must_check arm_copy_from_user(void *to, const void __user *from, unsigned long n); @@ -98271,10 +97952,10 @@ index 17ec37811c32f09126ed42753037e055c5cec115..c08f81812d0d56a0d90c1eb6777d0622 bool "Broadcom BCM63xx DSL SoC" depends on ARCH_MULTI_V7 -From f54933f6973fa352c66578db182eb7f64af873a6 Mon Sep 17 00:00:00 2001 +From 7a7b3ed1de8b25ddb176d96d5d58b5225220f11a Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 25 Jun 2015 12:16:11 +0100 -Subject: [PATCH 064/141] gpio-poweroff: Allow it to work on Raspberry Pi +Subject: [PATCH 062/126] gpio-poweroff: Allow it to work on Raspberry Pi The Raspberry Pi firmware manages the power-down and reboot process. To do this it installs a pm_power_off handler, causing @@ -98309,10 +97990,10 @@ index be3d81ff51cc3f510d85e4eed7a52960e51e7bc1..a030ae9fb1fca325061c093696e82186 "%s: pm_power_off function already registered", __func__); -From 797061d81434e672ead9c54effcb79e6eec6dc1c Mon Sep 17 00:00:00 2001 +From 6433f2b13ea88f151e33d0ce633f915c05fc4b44 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 14 Jul 2015 14:32:47 +0100 -Subject: [PATCH 065/141] mfd: Add Raspberry Pi Sense HAT core driver +Subject: [PATCH 063/126] mfd: Add Raspberry Pi Sense HAT core driver --- drivers/input/joystick/Kconfig | 8 + @@ -98522,7 +98203,7 @@ index 0000000000000000000000000000000000000000..6a416769065d2198344792eb02d8e38d +MODULE_AUTHOR("Serge Schneider "); +MODULE_LICENSE("GPL"); diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig -index 94ad2c1c3d9055df0b245e58db6dc4c9e9d9c2b2..19e45c8a6755d720b097c64bcb68c62747d54a22 100644 +index fc5e4fef89d222aa587473634bf056d9dee39578..ec1c7585650756c431538b78be7b6643831600e1 100644 --- a/drivers/mfd/Kconfig +++ b/drivers/mfd/Kconfig @@ -10,6 +10,14 @@ config MFD_CORE @@ -98541,11 +98222,11 @@ index 94ad2c1c3d9055df0b245e58db6dc4c9e9d9c2b2..19e45c8a6755d720b097c64bcb68c627 tristate "AMD CS5535 and CS5536 southbridge core functions" select MFD_CORE diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile -index 080793b3fd0ed7dc8a903ebef3c1b05dbf5822c4..0dc5c6d0d3cf54d7b26ccedb33cb4d8f21dcf37f 100644 +index c3d0a1b39bb6512505814882c4fedbd04687e057..3c5c15accadefac5c1a799be01d95ba079627752 100644 --- a/drivers/mfd/Makefile +++ b/drivers/mfd/Makefile -@@ -223,3 +223,4 @@ obj-$(CONFIG_MFD_SUN4I_GPADC) += sun4i-gpadc.o - +@@ -226,3 +226,4 @@ obj-$(CONFIG_MFD_SUN4I_GPADC) += sun4i-gpadc.o + obj-$(CONFIG_MFD_STM32_LPTIMER) += stm32-lptimer.o obj-$(CONFIG_MFD_STM32_TIMERS) += stm32-timers.o obj-$(CONFIG_MFD_MXS_LRADC) += mxs-lradc.o +obj-$(CONFIG_MFD_RPISENSE_CORE) += rpisense-core.o @@ -98713,7 +98394,7 @@ index 0000000000000000000000000000000000000000..eea9312dc96a496ce846b0c5a83e6e4f +MODULE_LICENSE("GPL"); + diff --git a/drivers/video/fbdev/Kconfig b/drivers/video/fbdev/Kconfig -index 7b44601d1c58007cdb3adafdf5f3c33a0801b8c6..98f8998239199f01374f93260aeafa51c85bbb86 100644 +index 127978982287bf04b6ea215433bd905ed432aa2f..c20eade6598ba421633fabf03090691d32298393 100644 --- a/drivers/video/fbdev/Kconfig +++ b/drivers/video/fbdev/Kconfig @@ -2510,3 +2510,16 @@ config FB_SM712 @@ -99177,10 +98858,10 @@ index 0000000000000000000000000000000000000000..56196dc2af10e464a1e3f98b028dca1c + +#endif -From 3ce31fd5a14116f27a76ac503735a01e4e530b86 Mon Sep 17 00:00:00 2001 +From eb6e9d1574195e3bcae06b33f937cf073f188f61 Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Fri, 22 Nov 2013 19:19:08 +0100 -Subject: [PATCH 066/141] ASoC: Add support for HifiBerry DAC +Subject: [PATCH 064/126] ASoC: Add support for HifiBerry DAC This adds a machine driver for the HifiBerry DAC. It is a sound card that can @@ -99355,10 +99036,10 @@ index 0000000000000000000000000000000000000000..ee9f133953544629282631e5ef3f73fe +MODULE_DESCRIPTION("ASoC Driver for HifiBerry DAC"); +MODULE_LICENSE("GPL v2"); -From db1564ce98a26a395577e7f9f3b35ce1b4c97ffd Mon Sep 17 00:00:00 2001 +From b9998485698b16cf9db4fcc113e9677706cc29c6 Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Mon, 25 Jan 2016 15:48:59 +0000 -Subject: [PATCH 067/141] ASoC: Add support for Rpi-DAC +Subject: [PATCH 065/126] ASoC: Add support for Rpi-DAC --- sound/soc/bcm/Kconfig | 7 +++ @@ -99524,10 +99205,10 @@ index 0000000000000000000000000000000000000000..38224467cbab7d5be3be731e73e2cf78 +MODULE_DESCRIPTION("ASoC Driver for RPi-DAC"); +MODULE_LICENSE("GPL v2"); diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig -index d6450d5fc144737f967b8e00678baa9b8f92295f..bdd081016d9eca07a5c72bf238f22b85c3454013 100644 +index 91d5b531b69b49db97f7febbc60d33a20991cb0f..f81a4ee69d1c97d8ff8d04db567c057865a8805b 100644 --- a/sound/soc/codecs/Kconfig +++ b/sound/soc/codecs/Kconfig -@@ -108,6 +108,7 @@ config SND_SOC_ALL_CODECS +@@ -109,6 +109,7 @@ config SND_SOC_ALL_CODECS select SND_SOC_PCM1681 if I2C select SND_SOC_PCM179X_I2C if I2C select SND_SOC_PCM179X_SPI if SPI_MASTER @@ -99535,7 +99216,7 @@ index d6450d5fc144737f967b8e00678baa9b8f92295f..bdd081016d9eca07a5c72bf238f22b85 select SND_SOC_PCM3008 select SND_SOC_PCM3168A_I2C if I2C select SND_SOC_PCM3168A_SPI if SPI_MASTER -@@ -739,6 +740,10 @@ config SND_SOC_RT5616 +@@ -753,6 +754,10 @@ config SND_SOC_RT5616 tristate "Realtek RT5616 CODEC" depends on I2C @@ -99547,10 +99228,10 @@ index d6450d5fc144737f967b8e00678baa9b8f92295f..bdd081016d9eca07a5c72bf238f22b85 tristate "Realtek ALC5631/RT5631 CODEC" depends on I2C diff --git a/sound/soc/codecs/Makefile b/sound/soc/codecs/Makefile -index 1755a54e3dc9379668de08326ed14b724fe4e4da..f1af18c2847a6c1bd3e0d97bcd42cc13aed24268 100644 +index 77c18189c9adb72244b91a5e657fb0393afc9117..b372c0ce9c77cf64eaa3e3878398bec565e3028f 100644 --- a/sound/soc/codecs/Makefile +++ b/sound/soc/codecs/Makefile -@@ -103,6 +103,7 @@ snd-soc-pcm1681-objs := pcm1681.o +@@ -104,6 +104,7 @@ snd-soc-pcm1681-objs := pcm1681.o snd-soc-pcm179x-codec-objs := pcm179x.o snd-soc-pcm179x-i2c-objs := pcm179x-i2c.o snd-soc-pcm179x-spi-objs := pcm179x-spi.o @@ -99558,14 +99239,14 @@ index 1755a54e3dc9379668de08326ed14b724fe4e4da..f1af18c2847a6c1bd3e0d97bcd42cc13 snd-soc-pcm3008-objs := pcm3008.o snd-soc-pcm3168a-objs := pcm3168a.o snd-soc-pcm3168a-i2c-objs := pcm3168a-i2c.o -@@ -347,6 +348,7 @@ obj-$(CONFIG_SND_SOC_PCM5102A) += snd-soc-pcm5102a.o +@@ -352,6 +353,7 @@ obj-$(CONFIG_SND_SOC_PCM5102A) += snd-soc-pcm5102a.o obj-$(CONFIG_SND_SOC_PCM512x) += snd-soc-pcm512x.o obj-$(CONFIG_SND_SOC_PCM512x_I2C) += snd-soc-pcm512x-i2c.o obj-$(CONFIG_SND_SOC_PCM512x_SPI) += snd-soc-pcm512x-spi.o +obj-$(CONFIG_SND_SOC_PCM1794A) += snd-soc-pcm1794a.o obj-$(CONFIG_SND_SOC_RL6231) += snd-soc-rl6231.o obj-$(CONFIG_SND_SOC_RL6347A) += snd-soc-rl6347a.o - obj-$(CONFIG_SND_SOC_RT286) += snd-soc-rt286.o + obj-$(CONFIG_SND_SOC_RT274) += snd-soc-rt274.o diff --git a/sound/soc/codecs/pcm1794a.c b/sound/soc/codecs/pcm1794a.c new file mode 100644 index 0000000000000000000000000000000000000000..afe1b419582aa40c4b2729d242bb13cd843e17f4 @@ -99642,10 +99323,10 @@ index 0000000000000000000000000000000000000000..afe1b419582aa40c4b2729d242bb13cd +MODULE_AUTHOR("Florian Meier "); +MODULE_LICENSE("GPL v2"); -From 8f1c611d40f2ad9b76852700f81a8cbe519a55d3 Mon Sep 17 00:00:00 2001 +From a0ba62489cc9c14ed92fa987f4112ec74291cc05 Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Wed, 15 Jan 2014 21:41:23 +0100 -Subject: [PATCH 068/141] ASoC: wm8804: Implement MCLK configuration options, +Subject: [PATCH 066/126] ASoC: wm8804: Implement MCLK configuration options, add 32bit support WM8804 can run with PLL frequencies of 256xfs and 128xfs for most sample rates. At 192kHz only 128xfs is supported. The existing driver selects 128xfs automatically for some lower samples rates. By using an @@ -99664,7 +99345,7 @@ Signed-off-by: Daniel Matuschek 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sound/soc/codecs/wm8804.c b/sound/soc/codecs/wm8804.c -index af95d648265b3e92e345101542b332aee35191d4..513f56ba132929662802d15cdc653af3d059a39c 100644 +index fc69b87443d80489382b97332de6d5ad12a58ec8..d8fdce81b297dcf02e144bdead0c6193c0f5c24b 100644 --- a/sound/soc/codecs/wm8804.c +++ b/sound/soc/codecs/wm8804.c @@ -304,6 +304,7 @@ static int wm8804_hw_params(struct snd_pcm_substream *substream, @@ -99694,10 +99375,10 @@ index af95d648265b3e92e345101542b332aee35191d4..513f56ba132929662802d15cdc653af3 .component_driver = { .dapm_widgets = wm8804_dapm_widgets, -From a004700318a459f2d28b8c5694d68516a1752b45 Mon Sep 17 00:00:00 2001 +From 21d5e7a1eb98d85b5c5ef7a6300585e961ed9e4c Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Wed, 15 Jan 2014 21:42:08 +0100 -Subject: [PATCH 069/141] ASoC: BCM:Add support for HiFiBerry Digi. Driver is +Subject: [PATCH 067/126] ASoC: BCM:Add support for HiFiBerry Digi. Driver is based on the patched WM8804 driver. Signed-off-by: Daniel Matuschek @@ -100041,10 +99722,10 @@ index 0000000000000000000000000000000000000000..7620dd02de40b6d644ff038b445d375d +MODULE_DESCRIPTION("ASoC Driver for HifiBerry Digi"); +MODULE_LICENSE("GPL v2"); -From 246cf713c6dcc2032b2649cb6bdcffb9ce38ae85 Mon Sep 17 00:00:00 2001 +From 5ae24d6bf4f664e20c9bddac612b005c11549964 Mon Sep 17 00:00:00 2001 From: Gordon Garrity Date: Sat, 8 Mar 2014 16:56:57 +0000 -Subject: [PATCH 070/141] Add IQaudIO Sound Card support for Raspberry Pi +Subject: [PATCH 068/126] Add IQaudIO Sound Card support for Raspberry Pi Set a limit of 0dB on Digital Volume Control @@ -100379,10 +100060,10 @@ index 0000000000000000000000000000000000000000..1ee4097c846376666775272ed692ca33 +MODULE_DESCRIPTION("ASoC Driver for IQAudio DAC"); +MODULE_LICENSE("GPL v2"); -From 877380ee08a9d3f3932138d7607ca5f4221664d4 Mon Sep 17 00:00:00 2001 +From f2ba03411f0b1952c343cb9a79053a0aafd7de3b Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Mon, 4 Aug 2014 10:06:56 +0200 -Subject: [PATCH 071/141] Added support for HiFiBerry DAC+ +Subject: [PATCH 069/126] Added support for HiFiBerry DAC+ The driver is based on the HiFiBerry DAC driver. However HiFiBerry DAC+ uses a different codec chip (PCM5122), therefore a new driver is necessary. @@ -100419,17 +100100,17 @@ Signed-off-by: DigitalDreamtime create mode 100644 sound/soc/bcm/hifiberry_dacplus.c diff --git a/drivers/clk/Makefile b/drivers/clk/Makefile -index cd376b3fb47adc2bd87c64dddb7ec775e51f8e21..9f85909bcf0a17b9b575833ccf011cb0878b4147 100644 +index c99f363826f02f683c6018ddf02a0d4d3a58033f..4a6afc6403f737a977c6aab1647adf6a8fe69d4e 100644 --- a/drivers/clk/Makefile +++ b/drivers/clk/Makefile -@@ -27,6 +27,7 @@ obj-$(CONFIG_COMMON_CLK_CS2000_CP) += clk-cs2000-cp.o - obj-$(CONFIG_ARCH_EFM32) += clk-efm32gg.o +@@ -28,6 +28,7 @@ obj-$(CONFIG_ARCH_EFM32) += clk-efm32gg.o obj-$(CONFIG_COMMON_CLK_GEMINI) += clk-gemini.o obj-$(CONFIG_ARCH_HIGHBANK) += clk-highbank.o + obj-$(CONFIG_CLK_HSDK) += clk-hsdk-pll.o +obj-$(CONFIG_SND_BCM2708_SOC_HIFIBERRY_DACPLUS) += clk-hifiberry-dacpro.o obj-$(CONFIG_COMMON_CLK_MAX77686) += clk-max77686.o - obj-$(CONFIG_ARCH_MB86S7X) += clk-mb86s7x.o obj-$(CONFIG_ARCH_MOXART) += clk-moxart.o + obj-$(CONFIG_ARCH_NOMADIK) += clk-nomadik.o diff --git a/drivers/clk/clk-hifiberry-dacpro.c b/drivers/clk/clk-hifiberry-dacpro.c new file mode 100644 index 0000000000000000000000000000000000000000..99cee2b1706c43170b4fc35c0023349b9019606c @@ -100998,10 +100679,10 @@ index 0000000000000000000000000000000000000000..b7b401cbe2b0d510d8b12d2dda6d5ff1 +MODULE_DESCRIPTION("ASoC Driver for HiFiBerry DAC+"); +MODULE_LICENSE("GPL v2"); diff --git a/sound/soc/codecs/pcm512x.c b/sound/soc/codecs/pcm512x.c -index 72b19e62f6267698aea45d2410d616d91c1825cb..c6839ef6e16754ed9de2698507b8986addd822fe 100644 +index 68feae262476492ae3a0b30855dbb09e96fa187e..f7b0977017ed5a6c02eafa0147d49d66876537bf 100644 --- a/sound/soc/codecs/pcm512x.c +++ b/sound/soc/codecs/pcm512x.c -@@ -854,7 +854,8 @@ static int pcm512x_set_dividers(struct snd_soc_dai *dai, +@@ -851,7 +851,8 @@ static int pcm512x_set_dividers(struct snd_soc_dai *dai, int fssp; int gpio; @@ -101012,10 +100693,10 @@ index 72b19e62f6267698aea45d2410d616d91c1825cb..c6839ef6e16754ed9de2698507b8986a dev_err(dev, "No LRCLK?\n"); return -EINVAL; -From 33fdb7bf7af5131b6ae20794f3a9cf07cb48e1d0 Mon Sep 17 00:00:00 2001 +From ec8cd527456da750b7f208e5fec74d5f5848c99f Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Mon, 4 Aug 2014 11:09:58 +0200 -Subject: [PATCH 072/141] Added driver for HiFiBerry Amp amplifier add-on board +Subject: [PATCH 070/126] Added driver for HiFiBerry Amp amplifier add-on board The driver contains a low-level hardware driver for the TAS5713 and the drivers for the Raspberry Pi I2S subsystem. @@ -101215,10 +100896,10 @@ index 0000000000000000000000000000000000000000..221c6c38e6465ffe5d5ad77fa80a0b14 +MODULE_DESCRIPTION("ASoC driver for HiFiBerry-AMP"); +MODULE_LICENSE("GPL v2"); diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig -index bdd081016d9eca07a5c72bf238f22b85c3454013..a3be6e005a895b995897cc007bb85c780a42de8b 100644 +index f81a4ee69d1c97d8ff8d04db567c057865a8805b..b3c63d86e5ef67c9f98031fcbf423ca16b3700ca 100644 --- a/sound/soc/codecs/Kconfig +++ b/sound/soc/codecs/Kconfig -@@ -150,6 +150,7 @@ config SND_SOC_ALL_CODECS +@@ -152,6 +152,7 @@ config SND_SOC_ALL_CODECS select SND_SOC_TFA9879 if I2C select SND_SOC_TLV320AIC23_I2C if I2C select SND_SOC_TLV320AIC23_SPI if SPI_MASTER @@ -101226,7 +100907,7 @@ index bdd081016d9eca07a5c72bf238f22b85c3454013..a3be6e005a895b995897cc007bb85c78 select SND_SOC_TLV320AIC26 if SPI_MASTER select SND_SOC_TLV320AIC31XX if I2C select SND_SOC_TLV320AIC32X4_I2C if I2C -@@ -874,6 +875,9 @@ config SND_SOC_TFA9879 +@@ -888,6 +889,9 @@ config SND_SOC_TFA9879 tristate "NXP Semiconductors TFA9879 amplifier" depends on I2C @@ -101237,10 +100918,10 @@ index bdd081016d9eca07a5c72bf238f22b85c3454013..a3be6e005a895b995897cc007bb85c78 tristate diff --git a/sound/soc/codecs/Makefile b/sound/soc/codecs/Makefile -index f1af18c2847a6c1bd3e0d97bcd42cc13aed24268..fc50753457b791eec4f369fd1d021330cd1857ee 100644 +index b372c0ce9c77cf64eaa3e3878398bec565e3028f..ce80fc03dc1429c6b2c06bbb0db7bdc81a930d7c 100644 --- a/sound/soc/codecs/Makefile +++ b/sound/soc/codecs/Makefile -@@ -155,6 +155,7 @@ snd-soc-tas5086-objs := tas5086.o +@@ -157,6 +157,7 @@ snd-soc-tas5086-objs := tas5086.o snd-soc-tas571x-objs := tas571x.o snd-soc-tas5720-objs := tas5720.o snd-soc-tfa9879-objs := tfa9879.o @@ -101248,7 +100929,7 @@ index f1af18c2847a6c1bd3e0d97bcd42cc13aed24268..fc50753457b791eec4f369fd1d021330 snd-soc-tlv320aic23-objs := tlv320aic23.o snd-soc-tlv320aic23-i2c-objs := tlv320aic23-i2c.o snd-soc-tlv320aic23-spi-objs := tlv320aic23-spi.o -@@ -389,6 +390,7 @@ obj-$(CONFIG_SND_SOC_TAS5086) += snd-soc-tas5086.o +@@ -396,6 +397,7 @@ obj-$(CONFIG_SND_SOC_TAS5086) += snd-soc-tas5086.o obj-$(CONFIG_SND_SOC_TAS571X) += snd-soc-tas571x.o obj-$(CONFIG_SND_SOC_TAS5720) += snd-soc-tas5720.o obj-$(CONFIG_SND_SOC_TFA9879) += snd-soc-tfa9879.o @@ -101850,10 +101531,10 @@ index 0000000000000000000000000000000000000000..8f019e04898754d2f87e9630137be9e8 + +#endif /* _TAS5713_H */ -From 9557ebc44e73d6791c145e355b7eb97f862d1119 Mon Sep 17 00:00:00 2001 +From daf296e472206fd17c847823bcee42e8799d1a4e Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Wed, 25 Mar 2015 09:26:17 +0100 -Subject: [PATCH 073/141] Add driver for rpi-proto +Subject: [PATCH 071/126] Add driver for rpi-proto Forward port of 3.10.x driver from https://github.com/koalo We are using a custom board and would like to use rpi 3.18.x @@ -102068,10 +101749,10 @@ index 0000000000000000000000000000000000000000..fadbfade100228aaafabb0d3bdf35c01 +MODULE_DESCRIPTION("ASoC Driver for Raspberry Pi connected to PROTO board (WM8731)"); +MODULE_LICENSE("GPL"); -From 8b3006e31ae33c4d39b93e075c65a7d4fbe95277 Mon Sep 17 00:00:00 2001 +From fb6a32c3a21e0791c3f7051efd2bc6db47257619 Mon Sep 17 00:00:00 2001 From: Jan Grulich Date: Mon, 24 Aug 2015 16:03:47 +0100 -Subject: [PATCH 074/141] RaspiDAC3 support +Subject: [PATCH 072/126] RaspiDAC3 support Signed-off-by: Jan Grulich @@ -102314,10 +101995,10 @@ index 0000000000000000000000000000000000000000..ad2b5b89bc8213dc2e277306ef50d6e3 +MODULE_DESCRIPTION("ASoC Driver for RaspiDAC Rev.3x"); +MODULE_LICENSE("GPL v2"); -From 6d57a413806b3150cc9894dd4c8192319aa8eeaa Mon Sep 17 00:00:00 2001 +From e58a2f3eaac2f441075508c03cd083e8780b113d Mon Sep 17 00:00:00 2001 From: Aaron Shaw Date: Thu, 7 Apr 2016 21:26:21 +0100 -Subject: [PATCH 075/141] Add Support for JustBoom Audio boards +Subject: [PATCH 073/126] Add Support for JustBoom Audio boards justboom-dac: Adjust for ALSA API change @@ -102773,10 +102454,10 @@ index 0000000000000000000000000000000000000000..909cf8928f2f4313982316f9c5b8a709 +MODULE_DESCRIPTION("ASoC Driver for JustBoom PI Digi HAT Sound Card"); +MODULE_LICENSE("GPL v2"); -From ebd70332a9ece5208278c7936a9b507bd1ebf3c5 Mon Sep 17 00:00:00 2001 +From 1b322c60274697d8b2ca69d3d42e1fb422f7f9ea Mon Sep 17 00:00:00 2001 From: Andrey Grodzovsky Date: Tue, 3 May 2016 22:10:59 -0400 -Subject: [PATCH 076/141] ARM: adau1977-adc: Add basic machine driver for +Subject: [PATCH 074/126] ARM: adau1977-adc: Add basic machine driver for adau1977 codec driver. This commit adds basic support for the codec usage including: Device tree overlay, @@ -102958,10 +102639,10 @@ index 0000000000000000000000000000000000000000..f3d7e5db7bb912e1d7ca6f8e8d42df5f +MODULE_DESCRIPTION("ASoC Driver for ADAU1977 ADC"); +MODULE_LICENSE("GPL v2"); -From 9f65384e00ea39e820ed948feaeca3a0e12206da Mon Sep 17 00:00:00 2001 +From c59b1e5bdd7c5c3524ffb51893f75675a8b1ac51 Mon Sep 17 00:00:00 2001 From: Matt Flax Date: Mon, 16 May 2016 21:36:31 +1000 -Subject: [PATCH 077/141] New AudioInjector.net Pi soundcard with low jitter +Subject: [PATCH 075/126] New AudioInjector.net Pi soundcard with low jitter audio in and out. Contains the sound/soc/bcm ALSA machine driver and necessary alterations to the Kconfig and Makefile. @@ -103212,10 +102893,10 @@ index 0000000000000000000000000000000000000000..491906bbf446826e55dd843f28e4860f +MODULE_ALIAS("platform:audioinjector-pi-soundcard"); + -From e7e73c9651fb2125128ac2f34a7de5ac842a98a5 Mon Sep 17 00:00:00 2001 +From 98f83fbdf22d0ab8915df3055ed920cdbc289615 Mon Sep 17 00:00:00 2001 From: DigitalDreamtime Date: Thu, 30 Jun 2016 18:38:42 +0100 -Subject: [PATCH 078/141] Add IQAudIO Digi WM8804 board support +Subject: [PATCH 076/126] Add IQAudIO Digi WM8804 board support Support IQAudIO Digi board with iqaudio_digi machine driver and iqaudio-digi-wm8804-audio overlay. @@ -103515,10 +103196,10 @@ index 0000000000000000000000000000000000000000..33aa2be8a43a12a12cfb5d844dd9732c +MODULE_DESCRIPTION("ASoC Driver for IQAudIO WM8804 Digi"); +MODULE_LICENSE("GPL v2"); -From 35a84531b8d8a1ee71d3198c66ebd59498974790 Mon Sep 17 00:00:00 2001 +From 304e4c7414fc75ead9d57d065edcb1cce7a0653c Mon Sep 17 00:00:00 2001 From: escalator2015 Date: Tue, 24 May 2016 16:20:09 +0100 -Subject: [PATCH 079/141] New driver for RRA DigiDAC1 soundcard using WM8741 + +Subject: [PATCH 077/126] New driver for RRA DigiDAC1 soundcard using WM8741 + WM8804 --- @@ -103991,10 +103672,10 @@ index 0000000000000000000000000000000000000000..f200688bb4ae32b90a0ced555aed94b0 +MODULE_DESCRIPTION("ASoC Driver for RRA DigiDAC1"); +MODULE_LICENSE("GPL v2"); -From ca05c15cc5ddfc826aae37b48ba0401310e3d314 Mon Sep 17 00:00:00 2001 +From eb8dc8dcf36a7d05df4139b05fd092d5420f0cd5 Mon Sep 17 00:00:00 2001 From: DigitalDreamtime Date: Sat, 2 Jul 2016 16:26:19 +0100 -Subject: [PATCH 080/141] Add support for Dion Audio LOCO DAC-AMP HAT +Subject: [PATCH 078/126] Add support for Dion Audio LOCO DAC-AMP HAT Using dedicated machine driver and pcm5102a codec driver. @@ -104167,10 +103848,10 @@ index 0000000000000000000000000000000000000000..65e03741d349a2dc5bd91f69855ea952 +MODULE_DESCRIPTION("ASoC Driver for DionAudio LOCO"); +MODULE_LICENSE("GPL v2"); -From bc990d78e32a758bfff686728793e178171d1a8d Mon Sep 17 00:00:00 2001 +From 34f56e0f2e6b6512988d9c34eefcba04ce492f35 Mon Sep 17 00:00:00 2001 From: Clive Messer Date: Mon, 19 Sep 2016 14:01:04 +0100 -Subject: [PATCH 081/141] Allo Piano DAC boards: Initial 2 channel (stereo) +Subject: [PATCH 079/126] Allo Piano DAC boards: Initial 2 channel (stereo) support (#1645) Add initial 2 channel (stereo) support for Allo Piano DAC (2.0/2.1) boards, @@ -104377,10 +104058,10 @@ index 0000000000000000000000000000000000000000..eaf50fb6dbca1970ae1c6f8662088b0f +MODULE_DESCRIPTION("ALSA ASoC Machine Driver for Allo Piano DAC"); +MODULE_LICENSE("GPL v2"); -From 17862c6e995d2902d88995ed8b5ea99ff41e1d09 Mon Sep 17 00:00:00 2001 +From 4e5cb39aea0adf8131f7cc371d0030e96febaf78 Mon Sep 17 00:00:00 2001 From: Raashid Muhammed Date: Mon, 27 Mar 2017 12:35:00 +0530 -Subject: [PATCH 082/141] Add support for Allo Piano DAC 2.1 plus add-on board +Subject: [PATCH 080/126] Add support for Allo Piano DAC 2.1 plus add-on board for Raspberry Pi. The Piano DAC 2.1 has support for 4 channels with subwoofer. @@ -105249,10 +104930,10 @@ index 0000000000000000000000000000000000000000..d4e99e3c6a383d92fb0cf9e8c1cd1e76 +MODULE_DESCRIPTION("ALSA ASoC Machine Driver for Allo Piano DAC Plus"); +MODULE_LICENSE("GPL v2"); -From beb77f395943696f2d5febb75669d8cadd09bf4c Mon Sep 17 00:00:00 2001 +From 05faa9b0c8454c4a3a392ee6f0815c24e7ef65b3 Mon Sep 17 00:00:00 2001 From: BabuSubashChandar Date: Tue, 28 Mar 2017 20:04:42 +0530 -Subject: [PATCH 083/141] Add support for Allo Boss DAC add-on board for +Subject: [PATCH 081/126] Add support for Allo Boss DAC add-on board for Raspberry Pi. (#1924) Signed-off-by: Baswaraj K @@ -105275,7 +104956,7 @@ Reviewed-by: BabuSubashChandar create mode 100644 sound/soc/bcm/allo-boss-dac.c diff --git a/drivers/clk/Makefile b/drivers/clk/Makefile -index 9f85909bcf0a17b9b575833ccf011cb0878b4147..1df694cf247220c7af1a770aec10811a8fb51fed 100644 +index 4a6afc6403f737a977c6aab1647adf6a8fe69d4e..f2967f0a357bf6c1843885eff5fc2efacbb3426c 100644 --- a/drivers/clk/Makefile +++ b/drivers/clk/Makefile @@ -17,6 +17,7 @@ endif @@ -105955,10 +105636,10 @@ index 0000000000000000000000000000000000000000..203ab76c7045b081578e23bda1099dd1 +MODULE_DESCRIPTION("ALSA ASoC Machine Driver for Allo Boss DAC"); +MODULE_LICENSE("GPL v2"); -From f989d40bceecb45c6072cb6142effd98028351a3 Mon Sep 17 00:00:00 2001 +From dcfb0be38297b086f31770c6cf1ef68a1a50d953 Mon Sep 17 00:00:00 2001 From: gtrainavicius Date: Sun, 23 Oct 2016 12:06:53 +0300 -Subject: [PATCH 084/141] Support for Blokas Labs pisound board +Subject: [PATCH 082/126] Support for Blokas Labs pisound board Pisound dynamic overlay (#1760) @@ -105985,13 +105666,13 @@ Signed-off-by: Giedrius Trainavicius create mode 100644 sound/soc/bcm/pisound.c diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt b/Documentation/devicetree/bindings/vendor-prefixes.txt -index daf465bef75898c1b1960d456c82b666c4f9dca6..538fce10a103a7c3abae1ffbb9b431730eb935d6 100644 +index 1ea1fd4232ab2ac9c0e736169ef98a02e05ccf8b..51abcdb9f975b3c6e5ce85d0af48989d7ca9bec3 100644 --- a/Documentation/devicetree/bindings/vendor-prefixes.txt +++ b/Documentation/devicetree/bindings/vendor-prefixes.txt -@@ -47,6 +47,7 @@ avic Shanghai AVIC Optoelectronics Co., Ltd. - axentia Axentia Technologies AB +@@ -49,6 +49,7 @@ axentia Axentia Technologies AB axis Axis Communications AB bananapi BIPAI KEJI LIMITED + bhf Beckhoff Automation GmbH & Co. KG +blokaslabs Vilniaus Blokas UAB boe BOE Technology Group Co., Ltd. bosch Bosch Sensortec GmbH @@ -107157,10 +106838,10 @@ index 0000000000000000000000000000000000000000..06ff1e53dc9d860946965b6303577762 +MODULE_DESCRIPTION("ASoC Driver for pisound, http://blokas.io/pisound"); +MODULE_LICENSE("GPL v2"); -From 80b3c0ec0906e14d1e865081e3d42e6234e5e9da Mon Sep 17 00:00:00 2001 +From 6b80d30ffba55c03285d02ca781ae3e91b24c9bb Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 22 Jan 2017 12:49:37 +0100 -Subject: [PATCH 085/141] ASoC: Add driver for Cirrus Logic Audio Card +Subject: [PATCH 083/126] ASoC: Add driver for Cirrus Logic Audio Card Note: due to problems with deferred probing of regulators the following softdep should be added to a modprobe.d file @@ -108225,10 +107906,10 @@ index 0000000000000000000000000000000000000000..ac8651ddff7bd3701dffe22c7fb88352 +MODULE_DESCRIPTION("ASoC driver for Cirrus Logic Audio Card"); +MODULE_LICENSE("GPL"); -From 7cf7e4442c3ccdbe4a65eec113dcd2abd111a984 Mon Sep 17 00:00:00 2001 +From 7b27a8a6c443044b8b761f3682ccbd4564426bb5 Mon Sep 17 00:00:00 2001 From: Miquel Date: Fri, 24 Feb 2017 20:51:06 +0100 -Subject: [PATCH 086/141] sound: Support for Dion Audio LOCO-V2 DAC-AMP HAT +Subject: [PATCH 084/126] sound: Support for Dion Audio LOCO-V2 DAC-AMP HAT Signed-off-by: Miquel Blauw --- @@ -108423,10 +108104,10 @@ index 0000000000000000000000000000000000000000..a009c49477972a9832175d86f201b035 +MODULE_DESCRIPTION("ASoC Driver for DionAudio LOCO-V2"); +MODULE_LICENSE("GPL v2"); -From 70a3748c51fc84dce0dd435804425486fc7ebf5a Mon Sep 17 00:00:00 2001 +From 94ba67923eaa3dbadbe0ab1f6073cae4f234979d Mon Sep 17 00:00:00 2001 From: Fe-Pi Date: Wed, 1 Mar 2017 04:42:43 -0700 -Subject: [PATCH 087/141] Add support for Fe-Pi audio sound card. (#1867) +Subject: [PATCH 085/126] Add support for Fe-Pi audio sound card. (#1867) Fe-Pi Audio Sound Card is based on NXP SGTL5000 codec. Mechanical specification of the board is the same the Raspberry Pi Zero. @@ -108640,10 +108321,10 @@ index 0000000000000000000000000000000000000000..015b56fd73cc36be5b5eecd17548fd03 +MODULE_DESCRIPTION("ASoC Driver for Fe-Pi Audio"); +MODULE_LICENSE("GPL v2"); -From 19602b062b0a8769cb0a3af381bdbca3f3147dd9 Mon Sep 17 00:00:00 2001 +From 56ec90731e9d92803a6cf472eeffb7adcf1c2e95 Mon Sep 17 00:00:00 2001 From: Matt Flax Date: Wed, 8 Mar 2017 20:04:13 +1100 -Subject: [PATCH 088/141] Add support for the AudioInjector.net Octo sound card +Subject: [PATCH 086/126] Add support for the AudioInjector.net Octo sound card AudioInjector Octo: sample rates, regulators, reset @@ -109052,10 +108733,10 @@ index 0000000000000000000000000000000000000000..5e79f4eff93a21ed3495c77a90f73525 +MODULE_LICENSE("GPL v2"); +MODULE_ALIAS("platform:audioinjector-octo-soundcard"); -From 651e4bc97a4fea4554a8a69771c47cda702634c5 Mon Sep 17 00:00:00 2001 +From 0969d307ca0e0709db8afb7b6b065490aab8554e Mon Sep 17 00:00:00 2001 From: Peter Malkin Date: Mon, 27 Mar 2017 16:38:21 -0700 -Subject: [PATCH 089/141] Driver support for Google voiceHAT soundcard. +Subject: [PATCH 087/126] Driver support for Google voiceHAT soundcard. --- sound/soc/bcm/Kconfig | 7 ++ @@ -109446,10 +109127,10 @@ index 0000000000000000000000000000000000000000..225854b8e5298b3c3018f59a49404354 +MODULE_DESCRIPTION("ASoC Driver for Google voiceHAT SoundCard"); +MODULE_LICENSE("GPL v2"); -From f7a318c4721c96464a119c2d9c1c1894c46fe8c2 Mon Sep 17 00:00:00 2001 +From 76bc44b8408b32829403b0dbcb3a5e3dc22dfd01 Mon Sep 17 00:00:00 2001 From: sandeepal Date: Fri, 2 Jun 2017 18:59:46 +0530 -Subject: [PATCH 090/141] Allo Digione Driver (#2048) +Subject: [PATCH 088/126] Allo Digione Driver (#2048) Driver for the Allo Digione soundcard --- @@ -109771,10 +109452,10 @@ index 0000000000000000000000000000000000000000..e3664e44c699d0102120ecf99e8b780a +MODULE_DESCRIPTION("ASoC Driver for Allo DigiOne"); +MODULE_LICENSE("GPL v2"); -From 1d438c59b6e685fc19d9f4a3eb08b38fbee1e367 Mon Sep 17 00:00:00 2001 +From b7684a070234f08d1285006f092fb41b8415b786 Mon Sep 17 00:00:00 2001 From: P33M Date: Wed, 21 Oct 2015 14:55:21 +0100 -Subject: [PATCH 091/141] rpi_display: add backlight driver and overlay +Subject: [PATCH 089/126] rpi_display: add backlight driver and overlay Add a mailbox-driven backlight controller for the Raspberry Pi DSI touchscreen display. Requires updated GPU firmware to recognise the @@ -109943,10 +109624,10 @@ index 0000000000000000000000000000000000000000..14a0d9b037395497c1fdae2961feccd5 +MODULE_DESCRIPTION("Raspberry Pi mailbox based Backlight Driver"); +MODULE_LICENSE("GPL"); -From 7c3e2a35d3f9851c79bbc82fb6b719cf8449b300 Mon Sep 17 00:00:00 2001 +From 7317f65d71654c1e8df08b2847cb7079e90a458c Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 23 Feb 2016 19:56:04 +0000 -Subject: [PATCH 092/141] bcm2835-virtgpio: Virtual GPIO driver +Subject: [PATCH 090/126] bcm2835-virtgpio: Virtual GPIO driver Add a virtual GPIO driver that uses the firmware mailbox interface to request that the VPU toggles LEDs. @@ -109959,7 +109640,7 @@ request that the VPU toggles LEDs. create mode 100644 drivers/gpio/gpio-bcm-virt.c diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig -index 461d6fc3688b61128f280a84c8ed3e1073488ab0..b1aa6966056b75c940d7fb12dd0ea278dd1449d2 100644 +index 3388d54ba11468a0ab013f1160b1ea2a258ca354..a18eca231879705937c3b5d9cf80a3224e40c1e4 100644 --- a/drivers/gpio/Kconfig +++ b/drivers/gpio/Kconfig @@ -134,6 +134,12 @@ config GPIO_BCM_KONA @@ -109976,7 +109657,7 @@ index 461d6fc3688b61128f280a84c8ed3e1073488ab0..b1aa6966056b75c940d7fb12dd0ea278 tristate "BRCMSTB GPIO support" default y if (ARCH_BRCMSTB || BMIPS_GENERIC) diff --git a/drivers/gpio/Makefile b/drivers/gpio/Makefile -index a9fda6c55113c7b472863de7f412f69d72de602d..78ad9e06466ed7ed57622444e19e729a2ca8d669 100644 +index aeb70e9de6f2192fc678a279b59483bd9aa0eb17..74b4acc997153499e5bdf975815a5cfc8a93023f 100644 --- a/drivers/gpio/Makefile +++ b/drivers/gpio/Makefile @@ -34,6 +34,7 @@ obj-$(CONFIG_GPIO_ASPEED) += gpio-aspeed.o @@ -110220,10 +109901,10 @@ index 4a3d79d3b48eb483a4e4bf498f617515e3ad158f..5f34e1257117fb48013c9926a8a223d6 RPI_FIRMWARE_FRAMEBUFFER_SET_BACKLIGHT = 0x0004800f, -From f1dc253695cd922849a235148038e095f50f8074 Mon Sep 17 00:00:00 2001 +From 5944e8b41eedbe72d65454e3af18ab160d97bfbc Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 20 Feb 2017 17:01:21 +0000 -Subject: [PATCH 093/141] bcm2835-gpio-exp: Driver for GPIO expander via +Subject: [PATCH 091/126] bcm2835-gpio-exp: Driver for GPIO expander via mailbox service Pi3 and Compute Module 3 have a GPIO expander that the @@ -110243,7 +109924,7 @@ Signed-off-by: Dave Stevenson create mode 100644 drivers/gpio/gpio-bcm-exp.c diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig -index b1aa6966056b75c940d7fb12dd0ea278dd1449d2..cf6d5b503c96911eb3acac6c2cde1bd1556ed6a7 100644 +index a18eca231879705937c3b5d9cf80a3224e40c1e4..21736685b44d916c5b50098feeaa9b06c12c7588 100644 --- a/drivers/gpio/Kconfig +++ b/drivers/gpio/Kconfig @@ -128,6 +128,13 @@ config GPIO_AXP209 @@ -110261,7 +109942,7 @@ index b1aa6966056b75c940d7fb12dd0ea278dd1449d2..cf6d5b503c96911eb3acac6c2cde1bd1 bool "Broadcom Kona GPIO" depends on OF_GPIO && (ARCH_BCM_MOBILE || COMPILE_TEST) diff --git a/drivers/gpio/Makefile b/drivers/gpio/Makefile -index 78ad9e06466ed7ed57622444e19e729a2ca8d669..dd55b7879c844305ef39375ae551c30c272cf96e 100644 +index 74b4acc997153499e5bdf975815a5cfc8a93023f..83935169e32aa3ec2da2d2819abb9f6a9cfb234e 100644 --- a/drivers/gpio/Makefile +++ b/drivers/gpio/Makefile @@ -32,6 +32,7 @@ obj-$(CONFIG_GPIO_ARIZONA) += gpio-arizona.o @@ -110549,10 +110230,10 @@ index 5f34e1257117fb48013c9926a8a223d64a598ab7..c819c21b0158a59c1308882e5a40e3f3 /* Dispmanx TAGS */ RPI_FIRMWARE_FRAMEBUFFER_ALLOCATE = 0x00040001, -From 55d9a63fab52cc747d5b5e3b955e8a988377df59 Mon Sep 17 00:00:00 2001 +From 9ea2c550c16114347ee0dce3bb235e1605745a04 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 23 Feb 2016 17:26:48 +0000 -Subject: [PATCH 094/141] amba_pl011: Don't use DT aliases for numbering +Subject: [PATCH 092/126] amba_pl011: Don't use DT aliases for numbering The pl011 driver looks for DT aliases of the form "serial", and if found uses as the device ID. This can cause @@ -110564,7 +110245,7 @@ use the same logic. 1 file changed, 5 insertions(+) diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl011.c -index 1888d168a41c87c605962da2605df8ab1c02bd20..e22b9e79836a6aeef4c8f9fb618b9595c551500f 100644 +index 111e6a95077978c2c30bfe2a2de4a0d095e8d76e..584471add0962c0e26eb814fc0ef43eea99b2d29 100644 --- a/drivers/tty/serial/amba-pl011.c +++ b/drivers/tty/serial/amba-pl011.c @@ -2582,7 +2582,12 @@ static int pl011_setup_port(struct device *dev, struct uart_amba_port *uap, @@ -110581,10 +110262,10 @@ index 1888d168a41c87c605962da2605df8ab1c02bd20..e22b9e79836a6aeef4c8f9fb618b9595 uap->old_cr = 0; uap->port.dev = dev; -From 29d550986979cd49a6d570c95a42742c1d3315c8 Mon Sep 17 00:00:00 2001 +From cbd689bc530960b3204554e9b0801e122e06274d Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 1 Mar 2017 16:07:39 +0000 -Subject: [PATCH 095/141] amba_pl011: Round input clock up +Subject: [PATCH 093/126] amba_pl011: Round input clock up The UART clock is initialised to be as close to the requested frequency as possible without exceeding it. Now that there is a @@ -110608,7 +110289,7 @@ Signed-off-by: Phil Elwell 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl011.c -index e22b9e79836a6aeef4c8f9fb618b9595c551500f..4b815abbf9913075885ee60f4d9ad49d89ec96b2 100644 +index 584471add0962c0e26eb814fc0ef43eea99b2d29..bfbc845d7be9ef804468d0a82da18d9b67857216 100644 --- a/drivers/tty/serial/amba-pl011.c +++ b/drivers/tty/serial/amba-pl011.c @@ -1672,6 +1672,23 @@ static void pl011_put_poll_char(struct uart_port *port, @@ -110670,10 +110351,10 @@ index e22b9e79836a6aeef4c8f9fb618b9595c551500f..4b815abbf9913075885ee60f4d9ad49d /* unregisters the driver also if no more ports are left */ static void pl011_unregister_port(struct uart_amba_port *uap) -From 57b717e8f418d8e47178863d3ff2ef868d848d71 Mon Sep 17 00:00:00 2001 +From 3a791f786d89b35d64909d15c78e47a0337be891 Mon Sep 17 00:00:00 2001 From: Pantelis Antoniou Date: Wed, 3 Dec 2014 13:23:28 +0200 -Subject: [PATCH 096/141] OF: DT-Overlay configfs interface +Subject: [PATCH 094/126] OF: DT-Overlay configfs interface This is a port of Pantelis Antoniou's v3 port that makes use of the new upstreamed configfs support for binary attributes. @@ -111105,10 +110786,10 @@ index 0000000000000000000000000000000000000000..0037e6868a6cda8706c88194c6a4454b +} +late_initcall(of_cfs_init); -From c441550077d07993b0618e7644f1089156075388 Mon Sep 17 00:00:00 2001 +From db129abb9af7dd2c0bdfa72a27ec4346218081d8 Mon Sep 17 00:00:00 2001 From: Cheong2K Date: Fri, 26 Feb 2016 18:20:10 +0800 -Subject: [PATCH 097/141] brcm: adds support for BCM43341 wifi +Subject: [PATCH 095/126] brcm: adds support for BCM43341 wifi brcmfmac: Disable power management @@ -111154,10 +110835,10 @@ Signed-off-by: Phil Elwell 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c -index f27d6fe4d5c0ef9af4e5f14e45c8abb4cf94d901..2145343c18c91f6a43543eb42ca7bbc7a37f14b5 100644 +index aaed4ab503ad16c6f4de0e3ccec5b83c3f85c6a1..5e08f1c56bce96c695491cb769f20d498d501332 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c -@@ -2810,6 +2810,8 @@ brcmf_cfg80211_set_power_mgmt(struct wiphy *wiphy, struct net_device *ndev, +@@ -2821,6 +2821,8 @@ brcmf_cfg80211_set_power_mgmt(struct wiphy *wiphy, struct net_device *ndev, * preference in cfg struct to apply this to * FW later while initializing the dongle */ @@ -111166,7 +110847,7 @@ index f27d6fe4d5c0ef9af4e5f14e45c8abb4cf94d901..2145343c18c91f6a43543eb42ca7bbc7 cfg->pwr_save = enabled; if (!check_vif_up(ifp->vif)) { -@@ -6852,12 +6854,18 @@ static s32 brcmf_translate_country_code(struct brcmf_pub *drvr, char alpha2[2], +@@ -6861,12 +6863,18 @@ static s32 brcmf_translate_country_code(struct brcmf_pub *drvr, char alpha2[2], struct brcmfmac_pd_cc *country_codes; struct brcmfmac_pd_cc_entry *cc; s32 found_index; @@ -111187,7 +110868,7 @@ index f27d6fe4d5c0ef9af4e5f14e45c8abb4cf94d901..2145343c18c91f6a43543eb42ca7bbc7 } if ((alpha2[0] == ccreq->country_abbrev[0]) && -@@ -6881,10 +6889,14 @@ static s32 brcmf_translate_country_code(struct brcmf_pub *drvr, char alpha2[2], +@@ -6890,10 +6898,14 @@ static s32 brcmf_translate_country_code(struct brcmf_pub *drvr, char alpha2[2], brcmf_dbg(TRACE, "No country code match found\n"); return -EINVAL; } @@ -111219,7 +110900,7 @@ index 7a2b49587b4d32dde1af56a2979d4e1818500f84..df138305217384de2359313bc7d00528 MODULE_PARM_DESC(roamoff, "Do not use internal roaming engine"); diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c -index f3556122c6ace17c419e13023057861957a507fa..f8d4647016a1cde3d51dd43da07a46ce9771fa18 100644 +index 613caca7dc020a78985b22521422700022c37473..971c68a261f2d041806655dd66636aee2c28a6bc 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c @@ -609,6 +609,7 @@ BRCMF_FW_NVRAM_DEF(4329, "brcmfmac4329-sdio.bin", "brcmfmac4329-sdio.txt"); @@ -111230,7 +110911,7 @@ index f3556122c6ace17c419e13023057861957a507fa..f8d4647016a1cde3d51dd43da07a46ce BRCMF_FW_NVRAM_DEF(4335, "brcmfmac4335-sdio.bin", "brcmfmac4335-sdio.txt"); BRCMF_FW_NVRAM_DEF(43362, "brcmfmac43362-sdio.bin", "brcmfmac43362-sdio.txt"); BRCMF_FW_NVRAM_DEF(4339, "brcmfmac4339-sdio.bin", "brcmfmac4339-sdio.txt"); -@@ -628,7 +629,7 @@ static struct brcmf_firmware_mapping brcmf_sdio_fwnames[] = { +@@ -629,7 +630,7 @@ static struct brcmf_firmware_mapping brcmf_sdio_fwnames[] = { BRCMF_FW_NVRAM_ENTRY(BRCM_CC_4330_CHIP_ID, 0xFFFFFFFF, 4330), BRCMF_FW_NVRAM_ENTRY(BRCM_CC_4334_CHIP_ID, 0xFFFFFFFF, 4334), BRCMF_FW_NVRAM_ENTRY(BRCM_CC_43340_CHIP_ID, 0xFFFFFFFF, 43340), @@ -111240,10 +110921,10 @@ index f3556122c6ace17c419e13023057861957a507fa..f8d4647016a1cde3d51dd43da07a46ce BRCMF_FW_NVRAM_ENTRY(BRCM_CC_43362_CHIP_ID, 0xFFFFFFFE, 43362), BRCMF_FW_NVRAM_ENTRY(BRCM_CC_4339_CHIP_ID, 0xFFFFFFFF, 4339), -From f9c932ae59cf634d03c685e01173786e6920254c Mon Sep 17 00:00:00 2001 +From 38c8779c9bf1b78935767d232dff5191a9e0e0c2 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 17 Feb 2017 15:26:13 +0000 -Subject: [PATCH 098/141] brcmfmac: Mute expected startup 'errors' +Subject: [PATCH 096/126] brcmfmac: Mute expected startup 'errors' The brcmfmac WiFi driver always complains about the '00' country code. Modify the driver to ignore '00' silently. @@ -111254,10 +110935,10 @@ Signed-off-by: Phil Elwell 1 file changed, 2 insertions(+) diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c -index 2145343c18c91f6a43543eb42ca7bbc7a37f14b5..0f7b4e6b5ee3485806cd93873f00af347613cdc8 100644 +index 5e08f1c56bce96c695491cb769f20d498d501332..9fefcceb16a761bd319e4fc81ac4355da43ce98b 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c -@@ -6920,6 +6920,8 @@ static void brcmf_cfg80211_reg_notifier(struct wiphy *wiphy, +@@ -6929,6 +6929,8 @@ static void brcmf_cfg80211_reg_notifier(struct wiphy *wiphy, /* ignore non-ISO3166 country codes */ for (i = 0; i < sizeof(req->alpha2); i++) if (req->alpha2[i] < 'A' || req->alpha2[i] > 'Z') { @@ -111267,10 +110948,10 @@ index 2145343c18c91f6a43543eb42ca7bbc7a37f14b5..0f7b4e6b5ee3485806cd93873f00af34 req->alpha2[0], req->alpha2[1]); return; -From 85ac30b12971d40fe19c3862835153adf6954a29 Mon Sep 17 00:00:00 2001 +From 8f8ba97c34be4dd58c0e5a272030f5891510d0fa Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 17 Dec 2015 13:37:07 +0000 -Subject: [PATCH 099/141] hci_h5: Don't send conf_req when ACTIVE +Subject: [PATCH 097/126] hci_h5: Don't send conf_req when ACTIVE Without this patch, a modem and kernel can continuously bombard each other with conf_req and conf_rsp messages, in a demented game of tag. @@ -111293,10 +110974,10 @@ index c0e4e26dc30d7c3c6a771b7b86df88c8cf763646..7308287259eedcaf229f8a496a0e3826 if (H5_HDR_LEN(hdr) > 2) h5->tx_win = (data[2] & 0x07); -From 1ca8064ea543110a35d1b07e6fc915be7d77997f Mon Sep 17 00:00:00 2001 +From ed09de680482f932ead40931aacf2f45035eaf95 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 13 Apr 2015 17:16:29 +0100 -Subject: [PATCH 100/141] config: Add default configs +Subject: [PATCH 098/126] config: Add default configs --- arch/arm/configs/bcm2709_defconfig | 1326 +++++++++++++++++++++++++++++++++++ @@ -113975,10 +113656,10 @@ index 0000000000000000000000000000000000000000..e0dd8723047ff488e81a03ef42fdbc68 +CONFIG_CRC_ITU_T=y +CONFIG_LIBCRC32C=y -From 08c925b2cfa77030d4f2d50be0e42ec209946035 Mon Sep 17 00:00:00 2001 +From e9cfa59ac0a3391083c99bd22d5ab187a5f6debf Mon Sep 17 00:00:00 2001 From: Michael Zoran Date: Wed, 24 Aug 2016 03:35:56 -0700 -Subject: [PATCH 101/141] Add arm64 configuration and device tree differences. +Subject: [PATCH 099/126] Add arm64 configuration and device tree differences. Disable MMC_BCM2835_SDHOST and MMC_BCM2835 since these drivers are crashing at the moment. @@ -114000,7 +113681,7 @@ Tested with raspbian-jessie 2016-09-23. create mode 100644 arch/arm64/configs/bcmrpi3_defconfig diff --git a/arch/arm64/Kconfig.platforms b/arch/arm64/Kconfig.platforms -index f5f0c813dfecc56cf21e0ae18b8b0c34197aad86..d8550598e3403e7d35050e48e71bac17ed8dc493 100644 +index 6b54ee8c1262dd1587b9081ef8894166b0c14211..e262127db967d63c751acb3bd09f1631963a1a6f 100644 --- a/arch/arm64/Kconfig.platforms +++ b/arch/arm64/Kconfig.platforms @@ -1,5 +1,27 @@ @@ -114032,16 +113713,15 @@ index f5f0c813dfecc56cf21e0ae18b8b0c34197aad86..d8550598e3403e7d35050e48e71bac17 bool "Actions Semi Platforms" select OWL_TIMER diff --git a/arch/arm64/boot/dts/broadcom/Makefile b/arch/arm64/boot/dts/broadcom/Makefile -index f11bdd6689ea96b2fce04404ae2166349c7d2c26..1046bed8bf1509eaf3127733b9263fa39a166895 100644 +index 3eaef3895d663b150fcbe4b2974c8548620cbf12..306221c738c3854946ecc40a4842219734b86235 100644 --- a/arch/arm64/boot/dts/broadcom/Makefile +++ b/arch/arm64/boot/dts/broadcom/Makefile -@@ -1,5 +1,6 @@ +@@ -1,4 +1,5 @@ dtb-$(CONFIG_ARCH_BCM2835) += bcm2837-rpi-3-b.dtb - dtb-$(CONFIG_ARCH_BCM_IPROC) += ns2-svk.dtb ns2-xmc.dtb +dtb-$(CONFIG_ARCH_BCM2709) += bcm2710-rpi-3-b.dtb - dts-dirs := stingray - always := $(dtb-y) + dts-dirs += northstar2 + dts-dirs += stingray diff --git a/arch/arm64/boot/dts/broadcom/bcm2710-rpi-3-b.dts b/arch/arm64/boot/dts/broadcom/bcm2710-rpi-3-b.dts new file mode 100644 index 0000000000000000000000000000000000000000..deb33441da95220db0ed672e41639626fba682a5 @@ -115392,10 +115072,10 @@ index 0000000000000000000000000000000000000000..e6b09fafa27eed2b762e3d53b55041f7 +CONFIG_LIBCRC32C=y +CONFIG_BCM2835_VCHIQ=n -From c62cf79d89d5f49c655363319e327963fdcdcf8c Mon Sep 17 00:00:00 2001 +From c8b3c7e7e5562ff5ce2858b72fb66189c631a299 Mon Sep 17 00:00:00 2001 From: Electron752 Date: Thu, 12 Jan 2017 07:07:08 -0800 -Subject: [PATCH 102/141] ARM64: Make it work again on 4.9 (#1790) +Subject: [PATCH 100/126] ARM64: Make it work again on 4.9 (#1790) * Invoke the dtc compiler with the same options used in arm mode. * ARM64 now uses the bcm2835 platform just like ARM32. @@ -115404,14 +115084,14 @@ Subject: [PATCH 102/141] ARM64: Make it work again on 4.9 (#1790) Signed-off-by: Michael Zoran --- arch/arm64/Kconfig.platforms | 28 -------- - arch/arm64/boot/dts/broadcom/Makefile | 11 ++- + arch/arm64/boot/dts/broadcom/Makefile | 10 ++- arch/arm64/boot/dts/overlays | 1 + arch/arm64/configs/bcmrpi3_defconfig | 125 +++++++++++----------------------- - 4 files changed, 49 insertions(+), 116 deletions(-) + 4 files changed, 48 insertions(+), 116 deletions(-) create mode 120000 arch/arm64/boot/dts/overlays diff --git a/arch/arm64/Kconfig.platforms b/arch/arm64/Kconfig.platforms -index d8550598e3403e7d35050e48e71bac17ed8dc493..1b7f6ea1171f5cc7a1df649d146520c1c77eada9 100644 +index e262127db967d63c751acb3bd09f1631963a1a6f..e57169584af075eca0e0a2c1900fd64fe886bbb3 100644 --- a/arch/arm64/Kconfig.platforms +++ b/arch/arm64/Kconfig.platforms @@ -1,33 +1,5 @@ @@ -115449,10 +115129,10 @@ index d8550598e3403e7d35050e48e71bac17ed8dc493..1b7f6ea1171f5cc7a1df649d146520c1 bool "Allwinner sunxi 64-bit SoC Family" select ARCH_HAS_RESET_CONTROLLER diff --git a/arch/arm64/boot/dts/broadcom/Makefile b/arch/arm64/boot/dts/broadcom/Makefile -index 1046bed8bf1509eaf3127733b9263fa39a166895..3b76320112196a1fce7a0941c696fd1ec43b817f 100644 +index 306221c738c3854946ecc40a4842219734b86235..f39cc2acf78ff2a10242ad89a2fc17acacc33e03 100644 --- a/arch/arm64/boot/dts/broadcom/Makefile +++ b/arch/arm64/boot/dts/broadcom/Makefile -@@ -1,8 +1,17 @@ +@@ -1,7 +1,15 @@ +# Enable fixups to support overlays on BCM2835 platforms + +ifeq ($(CONFIG_ARCH_BCM2835),y) @@ -115460,17 +115140,15 @@ index 1046bed8bf1509eaf3127733b9263fa39a166895..3b76320112196a1fce7a0941c696fd1e +endif + dtb-$(CONFIG_ARCH_BCM2835) += bcm2837-rpi-3-b.dtb - dtb-$(CONFIG_ARCH_BCM_IPROC) += ns2-svk.dtb ns2-xmc.dtb dtb-$(CONFIG_ARCH_BCM2709) += bcm2710-rpi-3-b.dtb +dtb-$(CONFIG_ARCH_BCM2835) += bcm2710-rpi-3-b.dtb + +dts-dirs += ../overlays --dts-dirs := stingray -+dts-dirs += stingray +-dts-dirs += northstar2 + dts-dirs += stingray always := $(dtb-y) subdir-y := $(dts-dirs) - clean-files := *.dtb diff --git a/arch/arm64/boot/dts/overlays b/arch/arm64/boot/dts/overlays new file mode 120000 index 0000000000000000000000000000000000000000..ded08646b6f66cdf734f8bf9c1be3a2e3a7103d7 @@ -115807,10 +115485,10 @@ index e6b09fafa27eed2b762e3d53b55041f793683d27..c7e891d72969a388d9b135a36dbfc9c9 CONFIG_LIBCRC32C=y -CONFIG_BCM2835_VCHIQ=n -From ba38501645198c41aea01109c4862fa8ed8a0dfa Mon Sep 17 00:00:00 2001 +From b0da1ce6471fffb9fc5414ad4ed9b33ff12fc11e Mon Sep 17 00:00:00 2001 From: Michael Zoran Date: Thu, 12 Jan 2017 19:10:07 -0800 -Subject: [PATCH 103/141] ARM64: Enable HDMI audio and vc04_services in +Subject: [PATCH 101/126] ARM64: Enable HDMI audio and vc04_services in bcmrpi3_defconfig Signed-off-by: Michael Zoran @@ -115839,10 +115517,10 @@ index c7e891d72969a388d9b135a36dbfc9c9cb609bf8..4b90f9b64abe9f089ba56b13d5a00de3 CONFIG_BCM2835_MBOX=y # CONFIG_IOMMU_SUPPORT is not set -From f01da3f1f0424f6a94e3d418d56de1d4c86ff41d Mon Sep 17 00:00:00 2001 +From 43170ca7c5e6d419343a338d886b417ffc6f9ab6 Mon Sep 17 00:00:00 2001 From: Michael Zoran Date: Thu, 12 Jan 2017 19:14:03 -0800 -Subject: [PATCH 104/141] ARM64: Run bcmrpi3_defconfig through savedefconfig. +Subject: [PATCH 102/126] ARM64: Run bcmrpi3_defconfig through savedefconfig. Signed-off-by: Michael Zoran --- @@ -115887,10 +115565,10 @@ index 4b90f9b64abe9f089ba56b13d5a00de33343bfb9..dac962ca1634662ce7d966f1ffb53b5b CONFIG_FB_TFT_AGM1264K_FL=m CONFIG_FB_TFT_BD663474=m -From 086f50d3b9ec61e72e0092c4b02d8f357a82a046 Mon Sep 17 00:00:00 2001 +From 6dccefc831adfd8b69529d4983121ab7955afa4c Mon Sep 17 00:00:00 2001 From: Electron752 Date: Sat, 14 Jan 2017 02:54:26 -0800 -Subject: [PATCH 105/141] ARM64: Enable Kernel Address Space Randomization +Subject: [PATCH 103/126] ARM64: Enable Kernel Address Space Randomization (#1792) Randomization allows the mapping between virtual addresses and physical @@ -115922,10 +115600,10 @@ index dac962ca1634662ce7d966f1ffb53b5bfa27c506..aae33b4b3c3e736ea7cd3ca242158ad6 CONFIG_BINFMT_MISC=y CONFIG_COMPAT=y -From 0c800d3880547518a9a0cc7e3277352a6e1be211 Mon Sep 17 00:00:00 2001 +From 9f49c5f13a9478a434b0e138e75fab8563365a7e Mon Sep 17 00:00:00 2001 From: Michael Zoran Date: Sun, 15 Jan 2017 07:31:59 -0800 -Subject: [PATCH 106/141] ARM64: Enable RTL8187/RTL8192CU wifi in build config +Subject: [PATCH 104/126] ARM64: Enable RTL8187/RTL8192CU wifi in build config These drivers build now, so they can be enabled back in the build configuration just like they are for @@ -115950,10 +115628,10 @@ index aae33b4b3c3e736ea7cd3ca242158ad6ba558aff..b7d762df19b85e369a32cd823dfd0621 CONFIG_ZD1211RW=m CONFIG_MAC80211_HWSIM=m -From 366517d4fd021773bd181ea36e6c0d1214c19d4c Mon Sep 17 00:00:00 2001 +From 5579aec0dcca5f42656021324b702fb4bfa33601 Mon Sep 17 00:00:00 2001 From: Michael Zoran Date: Sat, 14 Jan 2017 21:33:51 -0800 -Subject: [PATCH 107/141] ARM64/DWC_OTG: Port dwc_otg driver to ARM64 +Subject: [PATCH 105/126] ARM64/DWC_OTG: Port dwc_otg driver to ARM64 In ARM64, the FIQ mechanism used by this driver is not current implemented. As a workaround, reqular IRQ is used instead @@ -116010,7 +115688,7 @@ index e7bdd12015fee1727a7956ae3e3b2786e88892c1..4872b8113b68bc9087cf5e128657c580 dwc_otg-objs += dwc_otg_cfi.o endif diff --git a/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.c b/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.c -index b7731e7edb4602f93f028d786194822161bbf0f8..0163e9cf620ba58df36a872b82cea92734baada6 100644 +index 96fd44eb6414a2b70d8be307e9dcd4c4804cef2d..e47d5b6de3ada73896ff9a81abd223d345e0de4f 100644 --- a/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.c +++ b/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.c @@ -74,6 +74,21 @@ void notrace _fiq_print(enum fiq_debug_level dbg_lvl, volatile struct fiq_state @@ -116035,7 +115713,7 @@ index b7731e7edb4602f93f028d786194822161bbf0f8..0163e9cf620ba58df36a872b82cea927 /** * fiq_fsm_spin_lock() - ARMv6+ bare bones spinlock * Must be called with local interrupts and FIQ disabled. -@@ -122,6 +137,8 @@ inline void fiq_fsm_spin_unlock(fiq_lock_t *lock) +@@ -121,6 +136,8 @@ inline void fiq_fsm_spin_unlock(fiq_lock_t *lock) inline void fiq_fsm_spin_unlock(fiq_lock_t *lock) { } #endif @@ -116296,10 +115974,10 @@ index 6b2c7d0c93f36a63863ff4b0ecc1f3eab77e058b..d7b700ff17821ad1944e36721fe6b2db /** The OS page size */ #define DWC_OS_PAGE_SIZE PAGE_SIZE -From 3f05b3ba450f7bfdbbfa2c515f38a5311761286f Mon Sep 17 00:00:00 2001 +From 125d85e1fa84edc5dbcbc1585db3d8cb295f41e1 Mon Sep 17 00:00:00 2001 From: Michael Zoran Date: Sat, 14 Jan 2017 21:43:57 -0800 -Subject: [PATCH 108/141] ARM64: Round-Robin dispatch IRQs between CPUs. +Subject: [PATCH 106/126] ARM64: Round-Robin dispatch IRQs between CPUs. IRQ-CPU mapping is round robined on ARM64 to increase concurrency and allow multiple interrupts to be serviced @@ -116312,7 +115990,7 @@ Signed-off-by: Michael Zoran 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/drivers/irqchip/irq-bcm2835.c b/drivers/irqchip/irq-bcm2835.c -index 8ed457fd74bd23bee27b64a2c9e3828ce0e4fb87..a035e1ceacc0494fa293e6811ff8f7e3ea05e362 100644 +index fee691736c124c57ede4ab47a7c6bfa3b7c3b681..2a11c648cb2fdd5b2ddf4afd1b7e4fc20eee4f4a 100644 --- a/drivers/irqchip/irq-bcm2835.c +++ b/drivers/irqchip/irq-bcm2835.c @@ -168,10 +168,23 @@ static void armctrl_unmask_irq(struct irq_data *d) @@ -116341,7 +116019,7 @@ index 8ed457fd74bd23bee27b64a2c9e3828ce0e4fb87..a035e1ceacc0494fa293e6811ff8f7e3 static int armctrl_xlate(struct irq_domain *d, struct device_node *ctrlr, diff --git a/drivers/irqchip/irq-bcm2836.c b/drivers/irqchip/irq-bcm2836.c -index bee4d2d2ebacc3233423bb9d825e076b9f52fccd..014f13f89eb896f5cfc75ed9891787d0490baa4b 100644 +index 86b357ae027bf8ba1ac32cd150a8cf21e36597e2..05b17ca993f405c4c8e61a782ec58149038069c2 100644 --- a/drivers/irqchip/irq-bcm2836.c +++ b/drivers/irqchip/irq-bcm2836.c @@ -145,6 +145,27 @@ static void bcm2836_arm_irqchip_unmask_gpu_irq(struct irq_data *d) @@ -116373,10 +116051,10 @@ index bee4d2d2ebacc3233423bb9d825e076b9f52fccd..014f13f89eb896f5cfc75ed9891787d0 .name = "bcm2836-gpu", .irq_mask = bcm2836_arm_irqchip_mask_gpu_irq, -From f0968164c996caed39b9e544d972a0eeb2731d1b Mon Sep 17 00:00:00 2001 +From 94a9a7da5190cae5f8d1f83a748dba114643f586 Mon Sep 17 00:00:00 2001 From: Michael Zoran Date: Sat, 14 Jan 2017 21:45:03 -0800 -Subject: [PATCH 109/141] ARM64: Enable DWC_OTG Driver In ARM64 Build +Subject: [PATCH 107/126] ARM64: Enable DWC_OTG Driver In ARM64 Build Config(bcmrpi3_defconfig) Signed-off-by: Michael Zoran @@ -116397,10 +116075,10 @@ index b7d762df19b85e369a32cd823dfd062145bdefa7..4d85c231c5ea0244e1b05fb4a5e3c8fd CONFIG_USB_STORAGE=y CONFIG_USB_STORAGE_REALTEK=m -From 737a139cb9490755119ed4ccd358f300fc0899ec Mon Sep 17 00:00:00 2001 +From a94036ac67b6e8ad05fe34e97ce4ee2a661093a7 Mon Sep 17 00:00:00 2001 From: Michael Zoran Date: Sat, 11 Feb 2017 01:18:31 -0800 -Subject: [PATCH 110/141] ARM64: Force hardware emulation of deprecated +Subject: [PATCH 108/126] ARM64: Force hardware emulation of deprecated instructions. --- @@ -116408,7 +116086,7 @@ Subject: [PATCH 110/141] ARM64: Force hardware emulation of deprecated 1 file changed, 5 insertions(+) diff --git a/arch/arm64/kernel/armv8_deprecated.c b/arch/arm64/kernel/armv8_deprecated.c -index d06fbe4cd38d7423c900aff64b0e728f995478d3..877b7c90f9555203d5d55d739359a256f16982ad 100644 +index f0e6d717885b1fcf3b22f64c10c38f19c25f809d..0cb830d30fb6d2bd26ab572efe893649c7a28d3c 100644 --- a/arch/arm64/kernel/armv8_deprecated.c +++ b/arch/arm64/kernel/armv8_deprecated.c @@ -183,10 +183,15 @@ static void __init register_insn_emulation(struct insn_emulation_ops *ops) @@ -116428,10 +116106,10 @@ index d06fbe4cd38d7423c900aff64b0e728f995478d3..877b7c90f9555203d5d55d739359a256 case INSN_OBSOLETE: insn->current_mode = INSN_UNDEF; -From 32228ccbf850bb539c248dab1d14fa27d2e122b4 Mon Sep 17 00:00:00 2001 +From d7ca8aaf05db6ecc6d03ccfea897aa6dbedc43f1 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Fri, 10 Feb 2017 17:57:08 -0800 -Subject: [PATCH 111/141] build/arm64: Add rules for .dtbo files for dts +Subject: [PATCH 109/126] build/arm64: Add rules for .dtbo files for dts overlays We now create overlays as .dtbo files. @@ -116456,10 +116134,10 @@ index 9b41f1e3b1a039cd45fe842e10abff0181186fdf..dc2859b8eed168ed52e95c503e7a5ce3 dtbs: prepare scripts -From 84e252f93b0cd1333f3f6c9f89814b3d17e5979c Mon Sep 17 00:00:00 2001 +From bed3fc3bd8c50319c2c0b45b0667a487880887b2 Mon Sep 17 00:00:00 2001 From: Bilal Amarni Date: Wed, 24 May 2017 10:52:50 +0200 -Subject: [PATCH 112/141] enable drivers for GPIO expander and vcio +Subject: [PATCH 110/126] enable drivers for GPIO expander and vcio --- arch/arm64/configs/bcmrpi3_defconfig | 3 +++ @@ -116487,46 +116165,10 @@ index 4d85c231c5ea0244e1b05fb4a5e3c8fd3e651ddf..9dcb58a519d041fadae99c81a7bda621 CONFIG_GPIO_ARIZONA=m CONFIG_GPIO_STMPE=y -From 0b96f2468a908e64ff44fb3d2468b38af2575413 Mon Sep 17 00:00:00 2001 -From: Phil Elwell -Date: Tue, 24 Feb 2015 13:40:50 +0000 -Subject: [PATCH 113/141] pinctrl-bcm2835: Fix interrupt handling for GPIOs - 28-31 and 46-53 - -Contrary to the documentation, the BCM2835 GPIO controller actually has -four interrupt lines - one each for the three IRQ groups and one common. Rather -confusingly, the GPIO interrupt groups don't correspond directly with the GPIO -control banks. Instead, GPIOs 0-27 generate IRQ GPIO0, 28-45 GPIO1 and -46-53 GPIO2. - -Awkwardly, the GPIOS for IRQ GPIO1 straddle two 32-entry GPIO banks, so it is -cleaner to split out a function to process the interrupts for a single GPIO -bank. - -This bug has only just been observed because GPIOs above 27 can only be -accessed on an old Raspberry Pi with the optional P5 header fitted, where -the pins are often used for I2S instead. ---- - drivers/pinctrl/bcm/pinctrl-bcm2835.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/drivers/pinctrl/bcm/pinctrl-bcm2835.c b/drivers/pinctrl/bcm/pinctrl-bcm2835.c -index a9d480df32562defbf8be0faf0a39bfe06ff71f9..18c92bae3b2e7e9f8208ca0d4487b08b8ba61575 100644 ---- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c -+++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c -@@ -1098,6 +1098,7 @@ static struct platform_driver bcm2835_pinctrl_driver = { - .probe = bcm2835_pinctrl_probe, - .driver = { - .name = MODULE_NAME, -+ .owner = THIS_MODULE, - .of_match_table = bcm2835_pinctrl_match, - .suppress_bind_attrs = true, - }, - -From ba7fe0a7a99aa0924ff2ac8f489850ab332145e6 Mon Sep 17 00:00:00 2001 +From aa357815a03631654b585a795a8983609f6cdfc7 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 23 Mar 2017 16:34:46 +0000 -Subject: [PATCH 114/141] bcm2835-aux: Add aux interrupt controller +Subject: [PATCH 111/126] bcm2835-aux: Add aux interrupt controller The AUX block has a shared interrupt line with a register indicating which devices have active IRQs. Expose this as a nested interrupt @@ -116690,10 +116332,10 @@ index bd750cf2238d61489811e7d7bd3b5f9950ed53c8..41e0702fae4692221980b0d02aed1ba6 BCM2835_AUX_CLOCK_COUNT, GFP_KERNEL); if (!onecell) -From 0e4c49c2495458a575208494bfb8c3a8b54c6849 Mon Sep 17 00:00:00 2001 +From c686be8337997ea04650b45945ea66a6ac0043e3 Mon Sep 17 00:00:00 2001 From: Yasunari Takiguchi Date: Fri, 14 Apr 2017 10:43:57 +0100 -Subject: [PATCH 115/141] This is the driver for Sony CXD2880 DVB-T2/T tuner + +Subject: [PATCH 112/126] This is the driver for Sony CXD2880 DVB-T2/T tuner + demodulator. It includes the CXD2880 driver and the CXD2880 SPI adapter. The current CXD2880 driver version is 1.4.1 - 1.0.1 released on April 13, 2017. @@ -116791,10 +116433,10 @@ Signed-off-by: Satoshi Watanabe create mode 100644 drivers/media/spi/cxd2880-spi.c diff --git a/drivers/media/dvb-frontends/Kconfig b/drivers/media/dvb-frontends/Kconfig -index 3a260b82b3e8b15e8d26425ca1e9e6665e1ca1d9..6831f4a49c18e58aff7fc70cb1cd46f1701c52c0 100644 +index 2631d0e0a024d4989d8ff14e3fc91f714753f756..f2910083263931e4d6035f170ae27f82a41df163 100644 --- a/drivers/media/dvb-frontends/Kconfig +++ b/drivers/media/dvb-frontends/Kconfig -@@ -519,6 +519,8 @@ config DVB_GP8PSK_FE +@@ -546,6 +546,8 @@ config DVB_GP8PSK_FE depends on DVB_CORE default DVB_USB_GP8PSK @@ -116804,10 +116446,10 @@ index 3a260b82b3e8b15e8d26425ca1e9e6665e1ca1d9..6831f4a49c18e58aff7fc70cb1cd46f1 depends on DVB_CORE diff --git a/drivers/media/dvb-frontends/Makefile b/drivers/media/dvb-frontends/Makefile -index 3fccaf34ef520acf4207710dbf15fd7c08cc62fa..d298c79546999f80a788309824fd6545b2d25ff7 100644 +index f45f6a4a437142226399142e0667850e214719d6..e6b387284f6f26e9677757979763f6c1c170a4f1 100644 --- a/drivers/media/dvb-frontends/Makefile +++ b/drivers/media/dvb-frontends/Makefile -@@ -126,3 +126,4 @@ obj-$(CONFIG_DVB_HORUS3A) += horus3a.o +@@ -129,3 +129,4 @@ obj-$(CONFIG_DVB_HORUS3A) += horus3a.o obj-$(CONFIG_DVB_ASCOT2E) += ascot2e.o obj-$(CONFIG_DVB_HELENE) += helene.o obj-$(CONFIG_DVB_ZD1301_DEMOD) += zd1301_demod.o @@ -132825,10 +132467,10 @@ index 0000000000000000000000000000000000000000..82e122349055be817eb74ed5bbcd7560 +MODULE_AUTHOR("Sony Semiconductor Solutions Corporation"); +MODULE_LICENSE("GPL v2"); -From 68a3e778be324567b50b3b4bc9abd7adaeb35e66 Mon Sep 17 00:00:00 2001 +From 30d5793af3e03a3556b8bd1418fc31db40cffd81 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Wed, 14 Sep 2016 09:18:09 +0100 -Subject: [PATCH 116/141] raspberrypi-firmware: Define the MBOX channel in the +Subject: [PATCH 113/126] raspberrypi-firmware: Define the MBOX channel in the header. Signed-off-by: Eric Anholt @@ -132850,10 +132492,10 @@ index c819c21b0158a59c1308882e5a40e3f3fe73cbdf..de2a3dcd562beb752266eaf0070e5586 enum rpi_firmware_property_status { -From c6b8eaaf21a8e7f66b7fd9a966c07a4d3cf39d6f Mon Sep 17 00:00:00 2001 +From b3b354f72d8938ea6792846557e29471a6b81d00 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Wed, 14 Sep 2016 09:16:19 +0100 -Subject: [PATCH 117/141] raspberrypi-firmware: Export the general transaction +Subject: [PATCH 114/126] raspberrypi-firmware: Export the general transaction function. The vc4-firmware-kms module is going to be doing the MBOX FB call. @@ -132897,10 +132539,10 @@ index de2a3dcd562beb752266eaf0070e55861d553f5f..dc7fd58afd5dddebf9b17065bb069a1d #endif /* __SOC_RASPBERRY_FIRMWARE_H__ */ -From 30062d17f93e241c846248229b4ab2f6e4f5d414 Mon Sep 17 00:00:00 2001 +From dd1120be1bbf472f3381d061b88150190e107dd4 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Wed, 14 Sep 2016 08:39:33 +0100 -Subject: [PATCH 118/141] drm/vc4: Add a mode for using the closed firmware for +Subject: [PATCH 115/126] drm/vc4: Add a mode for using the closed firmware for display. Signed-off-by: Eric Anholt @@ -132909,8 +132551,8 @@ Signed-off-by: Eric Anholt drivers/gpu/drm/vc4/vc4_crtc.c | 17 + drivers/gpu/drm/vc4/vc4_drv.c | 1 + drivers/gpu/drm/vc4/vc4_drv.h | 7 + - drivers/gpu/drm/vc4/vc4_firmware_kms.c | 657 +++++++++++++++++++++++++++++++++ - 5 files changed, 683 insertions(+) + drivers/gpu/drm/vc4/vc4_firmware_kms.c | 656 +++++++++++++++++++++++++++++++++ + 5 files changed, 682 insertions(+) create mode 100644 drivers/gpu/drm/vc4/vc4_firmware_kms.c diff --git a/drivers/gpu/drm/vc4/Makefile b/drivers/gpu/drm/vc4/Makefile @@ -132926,7 +132568,7 @@ index 25bd5d30415df55e4715334a597ca1e7b3012bd7..e365d1f4d816762b2251f489e3b8fcc3 vc4_gem.o \ vc4_hdmi.o \ diff --git a/drivers/gpu/drm/vc4/vc4_crtc.c b/drivers/gpu/drm/vc4/vc4_crtc.c -index a12cc7ea99b608f2f36ffb24475c4561060d08c3..58ee7945cfcb6b62ea7550814aae4741b8812080 100644 +index ce1e3b9e14c9ac2e676ad760f653fd6d7091f964..2e9f75ed8b67727aef6ca94bb0c8a6fab0f5370c 100644 --- a/drivers/gpu/drm/vc4/vc4_crtc.c +++ b/drivers/gpu/drm/vc4/vc4_crtc.c @@ -164,6 +164,9 @@ bool vc4_crtc_get_scanoutpos(struct drm_device *dev, unsigned int crtc_id, @@ -132939,7 +132581,7 @@ index a12cc7ea99b608f2f36ffb24475c4561060d08c3..58ee7945cfcb6b62ea7550814aae4741 /* preempt_disable_rt() should go right here in PREEMPT_RT patchset. */ /* Get optional system timestamp before query. */ -@@ -668,8 +671,15 @@ static void vc4_crtc_atomic_flush(struct drm_crtc *crtc, +@@ -682,8 +685,15 @@ static void vc4_crtc_atomic_flush(struct drm_crtc *crtc, static int vc4_enable_vblank(struct drm_crtc *crtc) { @@ -132955,7 +132597,7 @@ index a12cc7ea99b608f2f36ffb24475c4561060d08c3..58ee7945cfcb6b62ea7550814aae4741 CRTC_WRITE(PV_INTEN, PV_INT_VFP_START); return 0; -@@ -677,8 +687,15 @@ static int vc4_enable_vblank(struct drm_crtc *crtc) +@@ -691,8 +701,15 @@ static int vc4_enable_vblank(struct drm_crtc *crtc) static void vc4_disable_vblank(struct drm_crtc *crtc) { @@ -132972,10 +132614,10 @@ index a12cc7ea99b608f2f36ffb24475c4561060d08c3..58ee7945cfcb6b62ea7550814aae4741 } diff --git a/drivers/gpu/drm/vc4/vc4_drv.c b/drivers/gpu/drm/vc4/vc4_drv.c -index c6b487c3d2b7645b0ae249f0ce40f4795c80bf1f..51eeca16fcfe8df6ade44376dcb9ef66eeeddee5 100644 +index 1c96edcb302be825cb3aeb438ab9a59c63fb6052..8555069607e1f3b735be3132320dacef2e66e8f8 100644 --- a/drivers/gpu/drm/vc4/vc4_drv.c +++ b/drivers/gpu/drm/vc4/vc4_drv.c -@@ -314,6 +314,7 @@ static struct platform_driver *const component_drivers[] = { +@@ -317,6 +317,7 @@ static struct platform_driver *const component_drivers[] = { &vc4_dsi_driver, &vc4_hvs_driver, &vc4_crtc_driver, @@ -132984,10 +132626,10 @@ index c6b487c3d2b7645b0ae249f0ce40f4795c80bf1f..51eeca16fcfe8df6ade44376dcb9ef66 }; diff --git a/drivers/gpu/drm/vc4/vc4_drv.h b/drivers/gpu/drm/vc4/vc4_drv.h -index df22698d62ee5ca89f00bcd42b10a6862506a4cf..e2d16a9316e255bce00b38b6734b73efc354db77 100644 +index 87f2d8e5c1346c1ccab7292c4c80dc553c48438d..9d5e35ea5a7c9f134ec6e661b0056b47df9719ef 100644 --- a/drivers/gpu/drm/vc4/vc4_drv.h +++ b/drivers/gpu/drm/vc4/vc4_drv.h -@@ -14,6 +14,9 @@ +@@ -32,6 +32,9 @@ enum vc4_kernel_bo_type { struct vc4_dev { struct drm_device *dev; @@ -132997,7 +132639,7 @@ index df22698d62ee5ca89f00bcd42b10a6862506a4cf..e2d16a9316e255bce00b38b6734b73ef struct vc4_hdmi *hdmi; struct vc4_hvs *hvs; struct vc4_v3d *v3d; -@@ -515,6 +518,10 @@ int vc4_dsi_debugfs_regs(struct seq_file *m, void *unused); +@@ -539,6 +542,10 @@ int vc4_dsi_debugfs_regs(struct seq_file *m, void *unused); /* vc4_fence.c */ extern const struct dma_fence_ops vc4_fence_ops; @@ -133010,10 +132652,10 @@ index df22698d62ee5ca89f00bcd42b10a6862506a4cf..e2d16a9316e255bce00b38b6734b73ef void vc4_gem_destroy(struct drm_device *dev); diff --git a/drivers/gpu/drm/vc4/vc4_firmware_kms.c b/drivers/gpu/drm/vc4/vc4_firmware_kms.c new file mode 100644 -index 0000000000000000000000000000000000000000..7dd233eed677c1689492ab95bc86475330d2d63b +index 0000000000000000000000000000000000000000..78c34305935501248b1ca548a1ee01753b8fa099 --- /dev/null +++ b/drivers/gpu/drm/vc4/vc4_firmware_kms.c -@@ -0,0 +1,657 @@ +@@ -0,0 +1,656 @@ +/* + * Copyright (C) 2016 Broadcom + * @@ -133280,7 +132922,7 @@ index 0000000000000000000000000000000000000000..7dd233eed677c1689492ab95bc864753 + plane = &vc4_plane->base; + ret = drm_universal_plane_init(dev, plane, 0xff, + &vc4_plane_funcs, -+ primary ? &xrgb8888 : &argb8888, 1, ++ primary ? &xrgb8888 : &argb8888, 1, NULL, + type, NULL); + + if (type == DRM_PLANE_TYPE_PRIMARY) { @@ -133309,11 +132951,11 @@ index 0000000000000000000000000000000000000000..7dd233eed677c1689492ab95bc864753 + /* Everyting is handled in the planes. */ +} + -+static void vc4_crtc_disable(struct drm_crtc *crtc) ++static void vc4_crtc_disable(struct drm_crtc *crtc, struct drm_crtc_state *old_state) +{ +} + -+static void vc4_crtc_enable(struct drm_crtc *crtc) ++static void vc4_crtc_enable(struct drm_crtc *crtc, struct drm_crtc_state *old_state) +{ +} + @@ -133386,8 +133028,8 @@ index 0000000000000000000000000000000000000000..7dd233eed677c1689492ab95bc864753 + +static const struct drm_crtc_helper_funcs vc4_crtc_helper_funcs = { + .mode_set_nofb = vc4_crtc_mode_set_nofb, -+ .disable = vc4_crtc_disable, -+ .enable = vc4_crtc_enable, ++ .atomic_disable = vc4_crtc_disable, ++ .atomic_enable = vc4_crtc_enable, + .atomic_check = vc4_crtc_atomic_check, + .atomic_flush = vc4_crtc_atomic_flush, +}; @@ -133462,7 +133104,6 @@ index 0000000000000000000000000000000000000000..7dd233eed677c1689492ab95bc864753 +} + +static const struct drm_connector_funcs vc4_fkms_connector_funcs = { -+ .dpms = drm_atomic_helper_connector_dpms, + .detect = vc4_fkms_connector_detect, + .fill_modes = drm_helper_probe_single_connector_modes, + .destroy = vc4_fkms_connector_destroy, @@ -133672,10 +133313,10 @@ index 0000000000000000000000000000000000000000..7dd233eed677c1689492ab95bc864753 + }, +}; -From 5260aad4aa125f4db1355f69dc596b46911801ca Mon Sep 17 00:00:00 2001 +From c082cb7ffa9d26f212c801212cfba6fa8d2b9979 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Wed, 1 Feb 2017 17:09:18 -0800 -Subject: [PATCH 119/141] drm/vc4: Name the primary and cursor planes in fkms. +Subject: [PATCH 116/126] drm/vc4: Name the primary and cursor planes in fkms. This makes debugging nicer, compared to trying to remember what the IDs are. @@ -133686,23 +133327,23 @@ Signed-off-by: Eric Anholt 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/vc4/vc4_firmware_kms.c b/drivers/gpu/drm/vc4/vc4_firmware_kms.c -index 7dd233eed677c1689492ab95bc86475330d2d63b..e6097046fb25361bc61d657083d95b634232aabc 100644 +index 78c34305935501248b1ca548a1ee01753b8fa099..d9a5551d01a2155e3df1bbbd78a1ee2b961be946 100644 --- a/drivers/gpu/drm/vc4/vc4_firmware_kms.c +++ b/drivers/gpu/drm/vc4/vc4_firmware_kms.c @@ -265,7 +265,7 @@ static struct drm_plane *vc4_fkms_plane_init(struct drm_device *dev, ret = drm_universal_plane_init(dev, plane, 0xff, &vc4_plane_funcs, - primary ? &xrgb8888 : &argb8888, 1, + primary ? &xrgb8888 : &argb8888, 1, NULL, - type, NULL); + type, primary ? "primary" : "cursor"); if (type == DRM_PLANE_TYPE_PRIMARY) { vc4_plane->fbinfo = -From f31486910dbff2f32895588952e8c495c0ebf107 Mon Sep 17 00:00:00 2001 +From 96539df86339240be282586f5530c8f902202e4a Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Wed, 1 Feb 2017 17:10:09 -0800 -Subject: [PATCH 120/141] drm/vc4: Add DRM_DEBUG_ATOMIC for the insides of +Subject: [PATCH 117/126] drm/vc4: Add DRM_DEBUG_ATOMIC for the insides of fkms. Trying to debug weston on fkms involved figuring out what calls I was @@ -133714,7 +133355,7 @@ Signed-off-by: Eric Anholt 1 file changed, 26 insertions(+) diff --git a/drivers/gpu/drm/vc4/vc4_firmware_kms.c b/drivers/gpu/drm/vc4/vc4_firmware_kms.c -index e6097046fb25361bc61d657083d95b634232aabc..72d0b9cffe3d2997d69040c46f4aee11e22aa213 100644 +index d9a5551d01a2155e3df1bbbd78a1ee2b961be946..e372666af0119b1876bad5167e6d0ff8945d1b80 100644 --- a/drivers/gpu/drm/vc4/vc4_firmware_kms.c +++ b/drivers/gpu/drm/vc4/vc4_firmware_kms.c @@ -101,6 +101,11 @@ static int vc4_plane_set_primary_blank(struct drm_plane *plane, bool blank) @@ -133772,10 +133413,10 @@ index e6097046fb25361bc61d657083d95b634232aabc..72d0b9cffe3d2997d69040c46f4aee11 RPI_FIRMWARE_SET_CURSOR_STATE, &packet_state, -From a790c5ae91644fad644e16b716474fbedeab9b84 Mon Sep 17 00:00:00 2001 +From 129eb65435ce463b55fa85e1f35f0fba55778d43 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Thu, 2 Feb 2017 09:42:18 -0800 -Subject: [PATCH 121/141] drm/vc4: Fix sending of page flip completion events +Subject: [PATCH 118/126] drm/vc4: Fix sending of page flip completion events in FKMS mode. In the rewrite of vc4_crtc.c for fkms, I dropped the part of the @@ -133791,7 +133432,7 @@ Signed-off-by: Eric Anholt 1 file changed, 15 insertions(+) diff --git a/drivers/gpu/drm/vc4/vc4_firmware_kms.c b/drivers/gpu/drm/vc4/vc4_firmware_kms.c -index 72d0b9cffe3d2997d69040c46f4aee11e22aa213..185f9bd3c1b2d47d0c1fc5293db4199bd8963023 100644 +index e372666af0119b1876bad5167e6d0ff8945d1b80..4d7b7f218cbbc9e7abcaa37743978060b73fbdd1 100644 --- a/drivers/gpu/drm/vc4/vc4_firmware_kms.c +++ b/drivers/gpu/drm/vc4/vc4_firmware_kms.c @@ -336,6 +336,21 @@ static int vc4_crtc_atomic_check(struct drm_crtc *crtc, @@ -133817,10 +133458,10 @@ index 72d0b9cffe3d2997d69040c46f4aee11e22aa213..185f9bd3c1b2d47d0c1fc5293db4199b static void vc4_crtc_handle_page_flip(struct vc4_crtc *vc4_crtc) -From dc2a35a31551f5a26d5c3d2ee97edcc704abebf0 Mon Sep 17 00:00:00 2001 +From 9b8c66c804be7aa2207577a844915cad68ea041c Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 18 Apr 2017 21:43:46 +0100 -Subject: [PATCH 122/141] vc4_fkms: Apply firmware overscan offset to hardware +Subject: [PATCH 119/126] vc4_fkms: Apply firmware overscan offset to hardware cursor --- @@ -133828,7 +133469,7 @@ Subject: [PATCH 122/141] vc4_fkms: Apply firmware overscan offset to hardware 1 file changed, 17 insertions(+) diff --git a/drivers/gpu/drm/vc4/vc4_firmware_kms.c b/drivers/gpu/drm/vc4/vc4_firmware_kms.c -index 185f9bd3c1b2d47d0c1fc5293db4199bd8963023..072f377b7423ee603d73ace2bf6d620f00204862 100644 +index 4d7b7f218cbbc9e7abcaa37743978060b73fbdd1..d170775ccc985637ff018804f510a5003933c9ec 100644 --- a/drivers/gpu/drm/vc4/vc4_firmware_kms.c +++ b/drivers/gpu/drm/vc4/vc4_firmware_kms.c @@ -39,6 +39,7 @@ struct vc4_crtc { @@ -133860,7 +133501,7 @@ index 185f9bd3c1b2d47d0c1fc5293db4199bd8963023..072f377b7423ee603d73ace2bf6d620f ret = rpi_firmware_property(vc4->firmware, RPI_FIRMWARE_SET_CURSOR_STATE, &packet_state, -@@ -642,6 +650,15 @@ static int vc4_fkms_bind(struct device *dev, struct device *master, void *data) +@@ -641,6 +649,15 @@ static int vc4_fkms_bind(struct device *dev, struct device *master, void *data) if (ret) goto err_destroy_connector; @@ -133877,10 +133518,10 @@ index 185f9bd3c1b2d47d0c1fc5293db4199bd8963023..072f377b7423ee603d73ace2bf6d620f return 0; -From 2bb81282b687227a03ef1c8b2a6653bfa0a378cb Mon Sep 17 00:00:00 2001 +From a0e95cee6a8f5d8f1f2a54bc2afea0cd135a7da7 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 7 May 2017 11:34:26 +0200 -Subject: [PATCH 123/141] ASoC: bcm2835: Add support for TDM modes +Subject: [PATCH 120/126] ASoC: bcm2835: Add support for TDM modes bcm2835 supports arbitrary positioning of channel data within a frame and thus is capable of supporting TDM modes. Since @@ -134282,10 +133923,10 @@ index 56df7d8a43d0aac055a91b0d24aca8e1b4e308e4..dcacf7f83c9371df539a788ea33fedcf dev->dev = &pdev->dev; dev_set_drvdata(&pdev->dev, dev); -From d0094dbf0b7521f529c609595224543e80c72266 Mon Sep 17 00:00:00 2001 +From edeccfa7b56e7b0d57573ba9c0e4f3db29422c0f Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 7 May 2017 15:30:50 +0200 -Subject: [PATCH 124/141] ASoC: bcm2835: Support left/right justified and DSP +Subject: [PATCH 121/126] ASoC: bcm2835: Support left/right justified and DSP modes DSP modes and left/right justified modes can be supported @@ -134417,11 +134058,10 @@ index dcacf7f83c9371df539a788ea33fedcf97d64690..3a706fda4f39e42efbe12f19d87af9b1 return -EINVAL; } -@@ -442,6 +496,15 @@ static int bcm2835_i2s_hw_params(struct snd_pcm_substream *substream, - bcm2835_i2s_calc_channel_pos(&tx_ch1_pos, &tx_ch2_pos, +@@ -443,6 +497,15 @@ static int bcm2835_i2s_hw_params(struct snd_pcm_substream *substream, tx_mask, slot_width, data_delay, odd_slot_offset); -+ /* + /* + * Transmitting data immediately after frame start, eg + * in left-justified or DSP mode A, only works stable + * if bcm2835 is the frame clock master. @@ -134430,9 +134070,10 @@ index dcacf7f83c9371df539a788ea33fedcf97d64690..3a706fda4f39e42efbe12f19d87af9b1 + dev_warn(dev->dev, + "Unstable slave config detected, L/R may be swapped"); + - /* ++ /* * Set format for both streams. * We cannot set another frame length + * (and therefore word length) anyway, @@ -472,62 +535,38 @@ static int bcm2835_i2s_hw_params(struct snd_pcm_substream *substream, mode |= BCM2835_I2S_FLEN(frame_length - 1); mode |= BCM2835_I2S_FSLEN(framesync_length); @@ -134531,10 +134172,10 @@ index dcacf7f83c9371df539a788ea33fedcf97d64690..3a706fda4f39e42efbe12f19d87af9b1 } -From c4b2defda9becf52d1a3582bdcfee0df8a5090b9 Mon Sep 17 00:00:00 2001 +From d88f66a688fe461b28e634ffa6bac86604eecf4d Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 7 May 2017 16:19:54 +0200 -Subject: [PATCH 125/141] ASoC: bcm2835: Support additional samplerates up to +Subject: [PATCH 122/126] ASoC: bcm2835: Support additional samplerates up to 384kHz Sample rates are only restricted by the capabilities of the @@ -134577,10 +134218,10 @@ index 3a706fda4f39e42efbe12f19d87af9b100a348a5..43f5715a0d5dda851731ecf7ff27e76c | SNDRV_PCM_FMTBIT_S24_LE | SNDRV_PCM_FMTBIT_S32_LE -From 5dddc572352ecc458b7214ac62f12d992c87c794 Mon Sep 17 00:00:00 2001 +From 9f847f27cb484bb01d64a217d52b6cf8f88d811f Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 7 May 2017 16:24:57 +0200 -Subject: [PATCH 126/141] ASoC: bcm2835: Enforce full symmetry +Subject: [PATCH 123/126] ASoC: bcm2835: Enforce full symmetry bcm2835's configuration registers can't be changed when a stream is running, which means asymmetric configurations aren't supported. @@ -134616,10 +134257,10 @@ index 43f5715a0d5dda851731ecf7ff27e76c48fb6e57..2e449d7173fcecbcd647f90a26bd58b6 static bool bcm2835_i2s_volatile_reg(struct device *dev, unsigned int reg) -From 0740274e27e88bb287b8223b5b889435d0ceb76e Mon Sep 17 00:00:00 2001 +From a8512606094e188ab129777e1f1294458ead4a6d Mon Sep 17 00:00:00 2001 From: Andrei Gherzan Date: Mon, 5 Jun 2017 16:40:38 +0100 -Subject: [PATCH 127/141] dma-bcm2708: Fix module compilation of +Subject: [PATCH 124/126] dma-bcm2708: Fix module compilation of CONFIG_DMA_BCM2708 bcm2708-dmaengine.c defines functions like bcm_dma_start which are @@ -134662,10 +134303,10 @@ index c5bfff2765be4606077e6c8af73040ec13ee8974..6ca874d332a8bc666b1c9576ac51f479 #endif /* _PLAT_BCM2708_DMA_H */ -From 55dc0b1788ece54b929932c457912ff540075b92 Mon Sep 17 00:00:00 2001 +From 7f1645c35c73959bed7193c5a045ba7c96aff1ee Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 25 Aug 2017 19:18:13 +0100 -Subject: [PATCH 128/141] cache: export clean and invalidate +Subject: [PATCH 125/126] cache: export clean and invalidate --- arch/arm/mm/cache-v6.S | 4 ++-- @@ -134717,1019 +134358,35 @@ index de78109d002db1a5e7c94a6c1bc8bb94161d07b8..4c850aa3af2b2439fced4e130441329a sub r3, r2, #1 bic r0, r0, r3 -From e3caf67429b7c11fba451738c563ca801b3e8175 Mon Sep 17 00:00:00 2001 -From: Dan Pasanen -Date: Wed, 20 Sep 2017 10:17:41 -0500 -Subject: [PATCH 129/141] vcsm: fix multi-platform build - ---- - drivers/char/broadcom/vc_sm/vmcs_sm.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/drivers/char/broadcom/vc_sm/vmcs_sm.c b/drivers/char/broadcom/vc_sm/vmcs_sm.c -index 034ae2f27f870621af9f49453501f1cde051f32a..b7814d67500b98fcd6f376d526a3d4a4b84fd152 100644 ---- a/drivers/char/broadcom/vc_sm/vmcs_sm.c -+++ b/drivers/char/broadcom/vc_sm/vmcs_sm.c -@@ -223,6 +223,7 @@ typedef void cache_flush_op_fn(const void *, const void *); - #if defined(CONFIG_CPU_CACHE_V7) - extern cache_flush_op_fn v7_dma_inv_range; - extern cache_flush_op_fn v7_dma_clean_range; -+extern cache_flush_op_fn v7_dma_flush_range; - static cache_flush_op_fn * const flushops[4] = - { - 0, -@@ -233,6 +234,7 @@ static cache_flush_op_fn * const flushops[4] = - #elif defined(CONFIG_CPU_CACHE_V6) - extern cache_flush_op_fn v6_dma_inv_range; - extern cache_flush_op_fn v6_dma_clean_range; -+extern cache_flush_op_fn v6_dma_flush_range; - static cache_flush_op_fn * const flushops[4] = - { - 0, - -From 29dca8ea50ebdd8e635e816459bd69c95fb67a48 Mon Sep 17 00:00:00 2001 -From: Dan Pasanen -Date: Thu, 21 Sep 2017 09:55:42 -0500 -Subject: [PATCH 130/141] arm: partially revert - 702b94bff3c50542a6e4ab9a4f4cef093262fe65 - -* Re-expose some dmi APIs for use in VCSM ---- - arch/arm/include/asm/cacheflush.h | 21 +++++++++++++++++++++ - arch/arm/include/asm/glue-cache.h | 2 ++ - arch/arm/mm/proc-macros.S | 2 ++ - arch/arm/mm/proc-syms.c | 3 +++ - 4 files changed, 28 insertions(+) - -diff --git a/arch/arm/include/asm/cacheflush.h b/arch/arm/include/asm/cacheflush.h -index 74504b154256e36ff4897ed1c7df43eb4d91bdef..8ccb358b7043cabeb3d2b6769ef4eb11827d78ed 100644 ---- a/arch/arm/include/asm/cacheflush.h -+++ b/arch/arm/include/asm/cacheflush.h -@@ -94,6 +94,21 @@ - * DMA Cache Coherency - * =================== - * -+ * dma_inv_range(start, end) -+ * -+ * Invalidate (discard) the specified virtual address range. -+ * May not write back any entries. If 'start' or 'end' -+ * are not cache line aligned, those lines must be written -+ * back. -+ * - start - virtual start address -+ * - end - virtual end address -+ * -+ * dma_clean_range(start, end) -+ * -+ * Clean (write back) the specified virtual address range. -+ * - start - virtual start address -+ * - end - virtual end address -+ * - * dma_flush_range(start, end) - * - * Clean and invalidate the specified virtual address range. -@@ -115,6 +130,8 @@ struct cpu_cache_fns { - void (*dma_map_area)(const void *, size_t, int); - void (*dma_unmap_area)(const void *, size_t, int); - -+ void (*dma_inv_range)(const void *, const void *); -+ void (*dma_clean_range)(const void *, const void *); - void (*dma_flush_range)(const void *, const void *); - } __no_randomize_layout; - -@@ -140,6 +157,8 @@ extern struct cpu_cache_fns cpu_cache; - * is visible to DMA, or data written by DMA to system memory is - * visible to the CPU. - */ -+#define dmac_inv_range cpu_cache.dma_inv_range -+#define dmac_clean_range cpu_cache.dma_clean_range - #define dmac_flush_range cpu_cache.dma_flush_range - - #else -@@ -159,6 +178,8 @@ extern void __cpuc_flush_dcache_area(void *, size_t); - * is visible to DMA, or data written by DMA to system memory is - * visible to the CPU. - */ -+extern void dmac_inv_range(const void *, const void *); -+extern void dmac_clean_range(const void *, const void *); - extern void dmac_flush_range(const void *, const void *); - - #endif -diff --git a/arch/arm/include/asm/glue-cache.h b/arch/arm/include/asm/glue-cache.h -index 01c3d92624e5ed3e0035c4305ca5b6797ba1888b..99f29f1963aec25c0016c5eadeb4a042e75bd4c9 100644 ---- a/arch/arm/include/asm/glue-cache.h -+++ b/arch/arm/include/asm/glue-cache.h -@@ -154,6 +154,8 @@ static inline void nop_dma_unmap_area(const void *s, size_t l, int f) { } - #define __cpuc_coherent_user_range __glue(_CACHE,_coherent_user_range) - #define __cpuc_flush_dcache_area __glue(_CACHE,_flush_kern_dcache_area) - -+#define dmac_inv_range __glue(_CACHE,_dma_inv_range) -+#define dmac_clean_range __glue(_CACHE,_dma_clean_range) - #define dmac_flush_range __glue(_CACHE,_dma_flush_range) - #endif - -diff --git a/arch/arm/mm/proc-macros.S b/arch/arm/mm/proc-macros.S -index f944836da8a222cd97c4e29070afa3aa370e0cbb..e6abed8db42b247ac731e49415bdc4fe92826095 100644 ---- a/arch/arm/mm/proc-macros.S -+++ b/arch/arm/mm/proc-macros.S -@@ -323,6 +323,8 @@ ENTRY(\name\()_cache_fns) - .long \name\()_flush_kern_dcache_area - .long \name\()_dma_map_area - .long \name\()_dma_unmap_area -+ .long \name\()_dma_inv_range -+ .long \name\()_dma_clean_range - .long \name\()_dma_flush_range - .size \name\()_cache_fns, . - \name\()_cache_fns - .endm -diff --git a/arch/arm/mm/proc-syms.c b/arch/arm/mm/proc-syms.c -index 054b491ff7649ca067ff821770aec80a4da42102..70e8b7d3443467ae9595924f1a9d043b984e2c93 100644 ---- a/arch/arm/mm/proc-syms.c -+++ b/arch/arm/mm/proc-syms.c -@@ -30,6 +30,9 @@ EXPORT_SYMBOL(__cpuc_flush_user_all); - EXPORT_SYMBOL(__cpuc_flush_user_range); - EXPORT_SYMBOL(__cpuc_coherent_kern_range); - EXPORT_SYMBOL(__cpuc_flush_dcache_area); -+EXPORT_SYMBOL(dmac_inv_range); -+EXPORT_SYMBOL(dmac_clean_range); -+EXPORT_SYMBOL(dmac_flush_range); - #else - EXPORT_SYMBOL(cpu_cache); - #endif - -From fe042ab04d5a1297d25266c3b3a711b582d95355 Mon Sep 17 00:00:00 2001 -From: Dan Pasanen -Date: Thu, 21 Sep 2017 09:57:44 -0500 -Subject: [PATCH 131/141] vcsm: add macros for cache functions - ---- - drivers/char/broadcom/vc_sm/vc_sm_knl.h | 5 +++++ - drivers/char/broadcom/vc_sm/vmcs_sm.c | 11 +++++------ - 2 files changed, 10 insertions(+), 6 deletions(-) - -diff --git a/drivers/char/broadcom/vc_sm/vc_sm_knl.h b/drivers/char/broadcom/vc_sm/vc_sm_knl.h -index f7f74750d8358779c61dfcd6fc841aa1789a2c5e..e50fd8eaecef7a3c8451c040ffc3888cc37e28fc 100644 ---- a/drivers/char/broadcom/vc_sm/vc_sm_knl.h -+++ b/drivers/char/broadcom/vc_sm/vc_sm_knl.h -@@ -27,6 +27,11 @@ enum vc_sm_lock_cache_mode { - VC_SM_LOCK_NON_CACHED, - }; - -+/* Cache functions */ -+#define VCSM_CACHE_OP_INV 0x01 -+#define VCSM_CACHE_OP_FLUSH 0x02 -+#define VCSM_CACHE_OP_CLEAN 0x03 -+ - /* Allocate a shared memory handle and block. */ - int vc_sm_alloc(struct vc_sm_alloc_t *alloc, int *handle); - -diff --git a/drivers/char/broadcom/vc_sm/vmcs_sm.c b/drivers/char/broadcom/vc_sm/vmcs_sm.c -index b7814d67500b98fcd6f376d526a3d4a4b84fd152..32763bd01e2e3831778fbcd1066df3cbf582235d 100644 ---- a/drivers/char/broadcom/vc_sm/vmcs_sm.c -+++ b/drivers/char/broadcom/vc_sm/vmcs_sm.c -@@ -2964,12 +2964,9 @@ static long vc_sm_ioctl(struct file *file, unsigned int cmd, unsigned long arg) - } - for (i = 0; i < sizeof(ioparam.s) / sizeof(*ioparam.s); i++) { - switch (ioparam.s[i].cmd) { -- default: -- case 0: -- break; /* NOOP */ -- case 1: /* L1/L2 invalidate virtual range */ -- case 2: /* L1/L2 clean physical range */ -- case 3: /* L1/L2 clean+invalidate all */ -+ case VCSM_CACHE_OP_INV: /* L1/L2 invalidate virtual range */ -+ case VCSM_CACHE_OP_FLUSH: /* L1/L2 clean physical range */ -+ case VCSM_CACHE_OP_CLEAN: /* L1/L2 clean+invalidate all */ - /* Locate resource from GUID. */ - resource = - vmcs_sm_acquire_resource(file_data, ioparam.s[i].handle); -@@ -2993,6 +2990,8 @@ static long vc_sm_ioctl(struct file *file, unsigned int cmd, unsigned long arg) - vmcs_sm_release_resource(resource, 0); - - break; -+ default: -+ break; /* NOOP */ - } - } - } - -From 18ff5210574ca27d767414e0e7b8dc8eb9d22f5b Mon Sep 17 00:00:00 2001 -From: Dan Pasanen -Date: Thu, 21 Sep 2017 07:41:02 -0500 -Subject: [PATCH 132/141] vcsm: use dma APIs for cache functions - -* Will handle multi-platform builds ---- - drivers/char/broadcom/vc_sm/vmcs_sm.c | 45 +++++++++++++---------------------- - 1 file changed, 16 insertions(+), 29 deletions(-) - -diff --git a/drivers/char/broadcom/vc_sm/vmcs_sm.c b/drivers/char/broadcom/vc_sm/vmcs_sm.c -index 32763bd01e2e3831778fbcd1066df3cbf582235d..cfa4ff747de2a96e03dab995aa54fc80eb880157 100644 ---- a/drivers/char/broadcom/vc_sm/vmcs_sm.c -+++ b/drivers/char/broadcom/vc_sm/vmcs_sm.c -@@ -218,34 +218,6 @@ static const char *const sm_cache_map_vector[] = { - }; - #endif - --typedef void cache_flush_op_fn(const void *, const void *); -- --#if defined(CONFIG_CPU_CACHE_V7) --extern cache_flush_op_fn v7_dma_inv_range; --extern cache_flush_op_fn v7_dma_clean_range; --extern cache_flush_op_fn v7_dma_flush_range; --static cache_flush_op_fn * const flushops[4] = --{ -- 0, -- v7_dma_inv_range, -- v7_dma_clean_range, -- v7_dma_flush_range, --}; --#elif defined(CONFIG_CPU_CACHE_V6) --extern cache_flush_op_fn v6_dma_inv_range; --extern cache_flush_op_fn v6_dma_clean_range; --extern cache_flush_op_fn v6_dma_flush_range; --static cache_flush_op_fn * const flushops[4] = --{ -- 0, -- v6_dma_inv_range, -- v6_dma_clean_range, -- v6_dma_flush_range, --}; --#else --#error Unknown cache config --#endif -- - /* ---- Private Function Prototypes -------------------------------------- */ - - /* ---- Private Functions ------------------------------------------------ */ -@@ -3028,7 +3000,22 @@ static long vc_sm_ioctl(struct file *file, unsigned int cmd, unsigned long arg) - - for (i = 0; i < ioparam.op_count; i++) { - const struct vmcs_sm_ioctl_clean_invalid_block * const op = block + i; -- cache_flush_op_fn * const op_fn = flushops[op->invalidate_mode & 3]; -+ void (*op_fn)(const void *, const void *); -+ -+ switch(op->invalidate_mode & 3) { -+ case VCSM_CACHE_OP_INV: -+ op_fn = dmac_inv_range; -+ break; -+ case VCSM_CACHE_OP_CLEAN: -+ op_fn = dmac_clean_range; -+ break; -+ case VCSM_CACHE_OP_FLUSH: -+ op_fn = dmac_flush_range; -+ break; -+ default: -+ op_fn = 0; -+ break; -+ } - - if ((op->invalidate_mode & ~3) != 0) { - ret = -EINVAL; - -From e206c6b41927a6822dfd128d49096b40f55ea976 Mon Sep 17 00:00:00 2001 +From dc7a0ebdc9f143f0750b6dd9c1a4054a2df5abc8 Mon Sep 17 00:00:00 2001 From: popcornmix -Date: Fri, 29 Sep 2017 16:15:01 +0100 -Subject: [PATCH 133/141] vcsm: Fix up macros to avoid breaking numbers used by - existing apps +Date: Tue, 19 Sep 2017 17:28:05 +0100 +Subject: [PATCH 126/126] fixup! Improve __copy_to_user and __copy_from_user + performance --- - drivers/char/broadcom/vc_sm/vc_sm_knl.h | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) + arch/arm/lib/memset_rpi.S | 5 +++++ + 1 file changed, 5 insertions(+) -diff --git a/drivers/char/broadcom/vc_sm/vc_sm_knl.h b/drivers/char/broadcom/vc_sm/vc_sm_knl.h -index e50fd8eaecef7a3c8451c040ffc3888cc37e28fc..4f120421c2d11f7ae46752c38b073a4dfdf712c6 100644 ---- a/drivers/char/broadcom/vc_sm/vc_sm_knl.h -+++ b/drivers/char/broadcom/vc_sm/vc_sm_knl.h -@@ -29,8 +29,8 @@ enum vc_sm_lock_cache_mode { - - /* Cache functions */ - #define VCSM_CACHE_OP_INV 0x01 --#define VCSM_CACHE_OP_FLUSH 0x02 --#define VCSM_CACHE_OP_CLEAN 0x03 -+#define VCSM_CACHE_OP_CLEAN 0x02 -+#define VCSM_CACHE_OP_FLUSH 0x03 - - /* Allocate a shared memory handle and block. */ - int vc_sm_alloc(struct vc_sm_alloc_t *alloc, int *handle); - -From 9dc6e559a6ddff5f26a9904c72d6ceaeddc63e02 Mon Sep 17 00:00:00 2001 -From: Chung-Hsien Hsu -Date: Sun, 14 May 2017 20:11:05 -0500 -Subject: [PATCH 134/141] brcmfmac: add CLM download support - -Future firmwares will be provided with minimal built-in CLM - the -NULL region (#n/0) becomes the initial country. It cannot be changed -until downloading a CLM blob file with some other regions. This patch -adds support for CLM blob file download. The blob file should be named -as firmware but with extension .clm_blob (e.g. -brcmfmac43430-sdio.clm_blob) and be placed in /lib/firmware/brcm/. - -Change-Id: I0901a4b38592fe28d0adeb8f3e2402292842f169 - -Signed-off-by: Chung-Hsien Hsu ---- - .../net/wireless/broadcom/brcm80211/brcmfmac/bus.h | 13 ++ - .../wireless/broadcom/brcm80211/brcmfmac/common.c | 175 +++++++++++++++++++++ - .../broadcom/brcm80211/brcmfmac/fwil_types.h | 27 ++++ - .../wireless/broadcom/brcm80211/brcmfmac/pcie.c | 19 +++ - .../wireless/broadcom/brcm80211/brcmfmac/sdio.c | 19 +++ - .../net/wireless/broadcom/brcm80211/brcmfmac/usb.c | 18 +++ - 6 files changed, 271 insertions(+) - -diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bus.h b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bus.h -index 163ddc49f95117774f03184b9f0679bd82d086d2..fb60a7c66e2ce70f5b1da75851cdb74e06833760 100644 ---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bus.h -+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bus.h -@@ -71,6 +71,7 @@ struct brcmf_bus_dcmd { - * @wowl_config: specify if dongle is configured for wowl when going to suspend - * @get_ramsize: obtain size of device memory. - * @get_memdump: obtain device memory dump in provided buffer. -+ * @get_fwname: obtain firmware name. - * - * This structure provides an abstract interface towards the - * bus specific driver. For control messages to common driver -@@ -87,6 +88,8 @@ struct brcmf_bus_ops { - void (*wowl_config)(struct device *dev, bool enabled); - size_t (*get_ramsize)(struct device *dev); - int (*get_memdump)(struct device *dev, void *data, size_t len); -+ int (*get_fwname)(struct device *dev, uint chip, uint chiprev, -+ unsigned char *fw_name); - }; - - -@@ -224,6 +227,16 @@ int brcmf_bus_get_memdump(struct brcmf_bus *bus, void *data, size_t len) - return bus->ops->get_memdump(bus->dev, data, len); - } - -+static inline -+int brcmf_bus_get_fwname(struct brcmf_bus *bus, uint chip, uint chiprev, -+ unsigned char *fw_name) -+{ -+ if (!bus->ops->get_fwname) -+ return -EOPNOTSUPP; -+ -+ return bus->ops->get_fwname(bus->dev, chip, chiprev, fw_name); -+} -+ - /* - * interface functions from common layer +diff --git a/arch/arm/lib/memset_rpi.S b/arch/arm/lib/memset_rpi.S +index 70674158d76cd38d8d70c987aa54a6b477e4fa91..2ca0d3618515497c9a9b101176bf9fbacb829d13 100644 +--- a/arch/arm/lib/memset_rpi.S ++++ b/arch/arm/lib/memset_rpi.S +@@ -52,6 +52,9 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c -index df138305217384de2359313bc7d005285388e78e..f0309e039592ba6e388084a13f052c03f99cf1ef 100644 ---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c -+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c -@@ -18,6 +18,7 @@ - #include - #include - #include -+#include - #include - #include - #include "core.h" -@@ -28,6 +29,7 @@ - #include "tracepoint.h" - #include "common.h" - #include "of.h" -+#include "firmware.h" - - MODULE_AUTHOR("Broadcom Corporation"); - MODULE_DESCRIPTION("Broadcom 802.11 wireless LAN fullmac driver."); -@@ -104,15 +106,170 @@ void brcmf_c_set_joinpref_default(struct brcmf_if *ifp) - brcmf_err("Set join_pref error (%d)\n", err); - } - -+int brcmf_c_download_2_dongle(struct brcmf_if *ifp, char *dcmd, u16 flag, -+ u16 dload_type, char *dload_buf, u32 len) -+{ -+ struct brcmf_dload_data_le *dload_ptr; -+ u32 dload_data_offset; -+ u16 flags; -+ s32 err; + ENTRY(mmioset) + ENTRY(memset) ++ENTRY(__memset32) ++ENTRY(__memset64) + -+ dload_ptr = (struct brcmf_dload_data_le *)dload_buf; -+ dload_data_offset = offsetof(struct brcmf_dload_data_le, data); -+ flags = flag | (DLOAD_HANDLER_VER << DLOAD_FLAG_VER_SHIFT); -+ -+ dload_ptr->flag = cpu_to_le16(flags); -+ dload_ptr->dload_type = cpu_to_le16(dload_type); -+ dload_ptr->len = cpu_to_le32(len - dload_data_offset); -+ dload_ptr->crc = cpu_to_le32(0); -+ len = len + 8 - (len % 8); -+ -+ err = brcmf_fil_iovar_data_set(ifp, dcmd, (void *)dload_buf, len); -+ -+ return err; -+} -+ -+int brcmf_c_get_clm_name(struct brcmf_if *ifp, u8 *clm_name) -+{ -+ struct brcmf_rev_info_le revinfo; -+ struct brcmf_bus *bus = ifp->drvr->bus_if; -+ u8 fw_name[BRCMF_FW_NAME_LEN]; -+ u8 *ptr; -+ size_t len; -+ u32 chipnum; -+ u32 chiprev; -+ s32 err; -+ -+ err = brcmf_fil_cmd_data_get(ifp, BRCMF_C_GET_REVINFO, &revinfo, -+ sizeof(revinfo)); -+ if (err < 0) { -+ brcmf_err("retrieving revision info failed (%d)\n", err); -+ goto done; -+ } -+ -+ chipnum = le32_to_cpu(revinfo.chipnum); -+ chiprev = le32_to_cpu(revinfo.chiprev); -+ -+ memset(fw_name, 0, BRCMF_FW_NAME_LEN); -+ err = brcmf_bus_get_fwname(bus, chipnum, chiprev, fw_name); -+ if (err) { -+ brcmf_err("get firmware name failed (%d)\n", err); -+ goto done; -+ } -+ -+ /* generate CLM blob file name */ -+ ptr = strrchr(fw_name, '.'); -+ len = ptr - fw_name + 1; -+ if (len + strlen(".clm_blob") > BRCMF_FW_NAME_LEN) { -+ err = -E2BIG; -+ } else { -+ strlcpy(clm_name, fw_name, len); -+ strlcat(clm_name, ".clm_blob", BRCMF_FW_NAME_LEN); -+ } -+done: -+ return err; -+} -+ -+int brcmf_c_process_clm_blob(struct brcmf_if *ifp) -+{ -+ struct device *dev = ifp->drvr->bus_if->dev; -+ const struct firmware *clm = NULL; -+ u8 buf[BRCMF_DCMD_SMLEN]; -+ u8 clm_name[BRCMF_FW_NAME_LEN]; -+ u32 data_offset; -+ u32 size2alloc; -+ u8 *chunk_buf; -+ u32 chunk_len; -+ u32 datalen; -+ u32 cumulative_len = 0; -+ u16 dl_flag = DL_BEGIN; -+ s32 err; -+ -+ brcmf_dbg(INFO, "Enter\n"); -+ -+ memset(clm_name, 0, BRCMF_FW_NAME_LEN); -+ err = brcmf_c_get_clm_name(ifp, clm_name); -+ if (err) { -+ brcmf_err("get CLM blob file name failed (%d)\n", err); -+ return err; -+ } -+ -+ err = request_firmware(&clm, clm_name, dev); -+ if (err) { -+ if (err == -ENOENT) -+ return 0; -+ brcmf_err("request CLM blob file failed (%d)\n", err); -+ return err; -+ } -+ -+ datalen = clm->size; -+ data_offset = offsetof(struct brcmf_dload_data_le, data); -+ size2alloc = data_offset + MAX_CHUNK_LEN; -+ -+ chunk_buf = kzalloc(size2alloc, GFP_KERNEL); -+ if (!chunk_buf) { -+ err = -ENOMEM; -+ goto done; -+ } -+ -+ do { -+ if (datalen > MAX_CHUNK_LEN) { -+ chunk_len = MAX_CHUNK_LEN; -+ } else { -+ chunk_len = datalen; -+ dl_flag |= DL_END; -+ } -+ -+ memcpy(chunk_buf + data_offset, clm->data + cumulative_len, -+ chunk_len); -+ -+ err = brcmf_c_download_2_dongle(ifp, "clmload", dl_flag, -+ DL_TYPE_CLM, chunk_buf, -+ data_offset + chunk_len); -+ -+ dl_flag &= ~DL_BEGIN; -+ -+ cumulative_len += chunk_len; -+ datalen -= chunk_len; -+ } while ((datalen > 0) && (err == 0)); -+ -+ if (err) { -+ brcmf_err("clmload (%d byte file) failed (%d); ", -+ (u32)clm->size, err); -+ /* Retrieve clmload_status and print */ -+ memset(buf, 0, BRCMF_DCMD_SMLEN); -+ err = brcmf_fil_iovar_data_get(ifp, "clmload_status", buf, -+ BRCMF_DCMD_SMLEN); -+ if (err) -+ brcmf_err("get clmload_status failed (%d)\n", err); -+ else -+ brcmf_err("clmload_status=%d\n", *((int *)buf)); -+ err = -EIO; -+ } -+ -+ kfree(chunk_buf); -+done: -+ release_firmware(clm); -+ return err; -+} -+ - int brcmf_c_preinit_dcmds(struct brcmf_if *ifp) - { - s8 eventmask[BRCMF_EVENTING_MASK_LEN]; - u8 buf[BRCMF_DCMD_SMLEN]; - struct brcmf_rev_info_le revinfo; - struct brcmf_rev_info *ri; -+ char *clmver; - char *ptr; - s32 err; - -+ /* Do any CLM downloading */ -+ err = brcmf_c_process_clm_blob(ifp); -+ if (err < 0) { -+ brcmf_err("download CLM blob file failed, %d\n", err); -+ goto done; -+ } -+ - /* retreive mac address */ - err = brcmf_fil_iovar_data_get(ifp, "cur_etheraddr", ifp->mac_addr, - sizeof(ifp->mac_addr)); -@@ -167,6 +324,24 @@ int brcmf_c_preinit_dcmds(struct brcmf_if *ifp) - ptr = strrchr(buf, ' ') + 1; - strlcpy(ifp->drvr->fwver, ptr, sizeof(ifp->drvr->fwver)); - -+ /* Query for 'clmver' to get CLM version info from firmware */ -+ memset(buf, 0, sizeof(buf)); -+ err = brcmf_fil_iovar_data_get(ifp, "clmver", buf, sizeof(buf)); -+ if (err) { -+ brcmf_err("retrieving clmver failed, %d\n", err); -+ goto done; -+ } else { -+ clmver = (char *)buf; -+ /* Replace all newline/linefeed characters with space -+ * character -+ */ -+ ptr = clmver; -+ while ((ptr = strchr(ptr, '\n')) != NULL) -+ *ptr = ' '; -+ -+ brcmf_err("CLM version = %s\n", clmver); -+ } -+ - /* set mpc */ - err = brcmf_fil_iovar_int_set(ifp, "mpc", 1); - if (err) { -diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwil_types.h b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwil_types.h -index e0d22fedb2b45932f04a35458f44408804b23d90..b99dc2b760463fb13747473f1126bea6ad094855 100644 ---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwil_types.h -+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwil_types.h -@@ -155,6 +155,22 @@ - #define BRCMF_MFP_CAPABLE 1 - #define BRCMF_MFP_REQUIRED 2 - -+/* MAX_CHUNK_LEN is the amount of the clm file we send in each ioctl. -+ * It is relatively small because dongles (FW) have a small maximum size -+ * input payload restriction for ioctls. -+ */ -+#define MAX_CHUNK_LEN 1400 -+ -+#define DLOAD_HANDLER_VER 1 /* Downloader version */ -+#define DLOAD_FLAG_VER_MASK 0xf000 /* Downloader version mask */ -+#define DLOAD_FLAG_VER_SHIFT 12 /* Downloader version shift */ -+ -+#define DL_CRC_NOT_INUSE 0x0001 -+#define DL_BEGIN 0x0002 -+#define DL_END 0x0004 -+ -+#define DL_TYPE_CLM 2 -+ - /* join preference types for join_pref iovar */ - enum brcmf_join_pref_types { - BRCMF_JOIN_PREF_RSSI = 1, -@@ -932,4 +948,15 @@ struct brcmf_gscan_config { - struct brcmf_gscan_bucket_config bucket[1]; - }; - -+/** -+ * struct brcmf_dload_data_le - data passing to firmware for downloading -+ */ -+struct brcmf_dload_data_le { -+ __le16 flag; -+ __le16 dload_type; -+ __le32 len; -+ __le32 crc; -+ u8 data[1]; -+}; -+ - #endif /* FWIL_TYPES_H_ */ -diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c -index f878706613e679515410e573eb770f1b1a28ef26..b370ee7f52788d779cf6d14e15a5ee4de3fa6c35 100644 ---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c -+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c -@@ -1350,6 +1350,24 @@ static int brcmf_pcie_get_memdump(struct device *dev, void *data, size_t len) - return 0; - } - -+static int brcmf_pcie_get_fwname(struct device *dev, u32 chip, u32 chiprev, -+ u8 *fw_name) -+{ -+ struct brcmf_bus *bus_if = dev_get_drvdata(dev); -+ struct brcmf_pciedev *buspub = bus_if->bus_priv.pcie; -+ struct brcmf_pciedev_info *devinfo = buspub->devinfo; -+ int ret = 0; -+ -+ if (devinfo->fw_name[0] != '\0') -+ strlcpy(fw_name, devinfo->fw_name, BRCMF_FW_NAME_LEN); -+ else -+ ret = brcmf_fw_map_chip_to_name(chip, chiprev, -+ brcmf_pcie_fwnames, -+ ARRAY_SIZE(brcmf_pcie_fwnames), -+ fw_name, NULL); -+ -+ return ret; -+} - - static const struct brcmf_bus_ops brcmf_pcie_bus_ops = { - .txdata = brcmf_pcie_tx, -@@ -1359,6 +1377,7 @@ static const struct brcmf_bus_ops brcmf_pcie_bus_ops = { - .wowl_config = brcmf_pcie_wowl_config, - .get_ramsize = brcmf_pcie_get_ramsize, - .get_memdump = brcmf_pcie_get_memdump, -+ .get_fwname = brcmf_pcie_get_fwname, - }; - - -diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c -index f8d4647016a1cde3d51dd43da07a46ce9771fa18..63f7624ed7f4e0783e9835670a14914585d99f0b 100644 ---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c -+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c -@@ -3978,6 +3978,24 @@ brcmf_sdio_watchdog(unsigned long data) - } - } - -+static int brcmf_sdio_get_fwname(struct device *dev, u32 chip, u32 chiprev, -+ u8 *fw_name) -+{ -+ struct brcmf_bus *bus_if = dev_get_drvdata(dev); -+ struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; -+ int ret = 0; -+ -+ if (sdiodev->fw_name[0] != '\0') -+ strlcpy(fw_name, sdiodev->fw_name, BRCMF_FW_NAME_LEN); -+ else -+ ret = brcmf_fw_map_chip_to_name(chip, chiprev, -+ brcmf_sdio_fwnames, -+ ARRAY_SIZE(brcmf_sdio_fwnames), -+ fw_name, NULL); -+ -+ return ret; -+} -+ - static const struct brcmf_bus_ops brcmf_sdio_bus_ops = { - .stop = brcmf_sdio_bus_stop, - .preinit = brcmf_sdio_bus_preinit, -@@ -3988,6 +4006,7 @@ static const struct brcmf_bus_ops brcmf_sdio_bus_ops = { - .wowl_config = brcmf_sdio_wowl_config, - .get_ramsize = brcmf_sdio_bus_get_ramsize, - .get_memdump = brcmf_sdio_bus_get_memdump, -+ .get_fwname = brcmf_sdio_get_fwname, - }; - - static void brcmf_sdio_firmware_callback(struct device *dev, int err, -diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/usb.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/usb.c -index 0eea48e73331d57297099266b1725df2be35a565..f00016f804ac98995369c1e68586a86d5bd310d9 100644 ---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/usb.c -+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/usb.c -@@ -1126,12 +1126,30 @@ static void brcmf_usb_wowl_config(struct device *dev, bool enabled) - device_set_wakeup_enable(devinfo->dev, false); - } - -+static int brcmf_usb_get_fwname(struct device *dev, u32 chip, u32 chiprev, -+ u8 *fw_name) -+{ -+ struct brcmf_usbdev_info *devinfo = brcmf_usb_get_businfo(dev); -+ int ret = 0; -+ -+ if (devinfo->fw_name[0] != '\0') -+ strlcpy(fw_name, devinfo->fw_name, BRCMF_FW_NAME_LEN); -+ else -+ ret = brcmf_fw_map_chip_to_name(chip, chiprev, -+ brcmf_usb_fwnames, -+ ARRAY_SIZE(brcmf_usb_fwnames), -+ fw_name, NULL); -+ -+ return ret; -+} -+ - static const struct brcmf_bus_ops brcmf_usb_bus_ops = { - .txdata = brcmf_usb_tx, - .stop = brcmf_usb_down, - .txctl = brcmf_usb_tx_ctlpkt, - .rxctl = brcmf_usb_rx_ctlpkt, - .wowl_config = brcmf_usb_wowl_config, -+ .get_fwname = brcmf_usb_get_fwname, - }; - - static int brcmf_usb_bus_setup(struct brcmf_usbdev_info *devinfo) - -From bf11d4af021941640f2ec81c8f969e54a77a1ae6 Mon Sep 17 00:00:00 2001 -From: Phil Elwell -Date: Fri, 6 Oct 2017 13:23:32 +0100 -Subject: [PATCH 135/141] brcmfmac: request_firmware_direct is quieter - -Since we don't have any CLM-capable firmware yet, silence the warning -of its absence by using request_firmware_direct, which should also -be marginally quicker. - -Signed-off-by: Phil Elwell ---- - drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c -index f0309e039592ba6e388084a13f052c03f99cf1ef..b5889360da96096775db6425337a72156aab6d73 100644 ---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c -+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c -@@ -194,7 +194,7 @@ int brcmf_c_process_clm_blob(struct brcmf_if *ifp) - return err; - } - -- err = request_firmware(&clm, clm_name, dev); -+ err = request_firmware_direct(&clm, clm_name, dev); - if (err) { - if (err == -ENOENT) - return 0; - -From cbca1f278fde1e93587d31f4fedd1c6d8d8c56d4 Mon Sep 17 00:00:00 2001 -From: Phil Elwell -Date: Fri, 29 Sep 2017 10:32:19 +0100 -Subject: [PATCH 136/141] amba_pl011: Add cts-event-workaround DT property - -The BCM2835 PL011 implementation seems to have a bug that can lead to a -transmission lockup if CTS changes frequently. A workaround was added to -the driver with a vendor-specific flag to enable it, but this flag is -currently not set for ARM implementations. - -Add a "cts-event-workaround" property to Pi DTBs and use the presence -of that property to force the flag to be enabled in the driver. - -See: https://github.com/raspberrypi/linux/issues/1280 - -Signed-off-by: Phil Elwell ---- - Documentation/devicetree/bindings/serial/pl011.txt | 3 +++ - arch/arm/boot/dts/bcm270x.dtsi | 5 +++++ - drivers/tty/serial/amba-pl011.c | 5 +++++ - 3 files changed, 13 insertions(+) - -diff --git a/Documentation/devicetree/bindings/serial/pl011.txt b/Documentation/devicetree/bindings/serial/pl011.txt -index 77863aefe9ef1eafe648b530c1570333aea7940b..8d65b0ec2828b6abb07589407a5126fde6e49a0e 100644 ---- a/Documentation/devicetree/bindings/serial/pl011.txt -+++ b/Documentation/devicetree/bindings/serial/pl011.txt -@@ -35,6 +35,9 @@ Optional properties: - - poll-timeout-ms: - Poll timeout when auto-poll is set, default - 3000ms. -+- cts-event-workaround: -+ Enables the (otherwise vendor-specific) workaround for the -+ CTS-induced TX lockup. - - See also bindings/arm/primecell.txt - -diff --git a/arch/arm/boot/dts/bcm270x.dtsi b/arch/arm/boot/dts/bcm270x.dtsi -index 81914a615c8b011fe7d70a2e14f16491947c49b7..d312c2739624eca57b218b26e272e187012cb7d1 100644 ---- a/arch/arm/boot/dts/bcm270x.dtsi -+++ b/arch/arm/boot/dts/bcm270x.dtsi -@@ -26,6 +26,11 @@ - interrupts = <2 17>, <2 18>; - }; - -+ serial@7e201000 { /* uart0 */ -+ /* Enable CTS bug workaround */ -+ cts-event-workaround; -+ }; -+ - i2s@7e203000 { /* i2s */ - #sound-dai-cells = <0>; - reg = <0x7e203000 0x24>; -diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl011.c -index 4b815abbf9913075885ee60f4d9ad49d89ec96b2..8c6e495b74ca61b8ff8ee79bc6e9d84d572b990a 100644 ---- a/drivers/tty/serial/amba-pl011.c -+++ b/drivers/tty/serial/amba-pl011.c -@@ -2664,6 +2664,11 @@ static int pl011_probe(struct amba_device *dev, const struct amba_id *id) - if (IS_ERR(uap->clk)) - return PTR_ERR(uap->clk); - -+ if (of_property_read_bool(dev->dev.of_node, "cts-event-workaround")) { -+ vendor->cts_event_workaround = true; -+ dev_info(&dev->dev, "cts_event_workaround enabled\n"); -+ } -+ - uap->reg_offset = vendor->reg_offset; - uap->vendor = vendor; - uap->fifosize = vendor->get_fifosize(dev); - -From 9a5d096b453b500c43bcc620d65f6291d3ab8289 Mon Sep 17 00:00:00 2001 -From: Phil Elwell -Date: Fri, 29 Sep 2017 10:32:19 +0100 -Subject: [PATCH 137/141] amba_pl011: Insert mb() for correct FIFO handling - -The pl011 register accessor functions use the _relaxed versions of the -standard readl() and writel() functions, meaning that there are no -automatic memory barriers. When polling a FIFO status register to check -for fullness, it is necessary to ensure that any outstanding writes have -completed; otherwise the flags are effectively stale, making it possible -that the next write is to a full FIFO. - -Signed-off-by: Phil Elwell ---- - drivers/tty/serial/amba-pl011.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl011.c -index 8c6e495b74ca61b8ff8ee79bc6e9d84d572b990a..f6428446dfc0eb060d18c119d065d85ee6fea18c 100644 ---- a/drivers/tty/serial/amba-pl011.c -+++ b/drivers/tty/serial/amba-pl011.c -@@ -1403,6 +1403,7 @@ static bool pl011_tx_char(struct uart_amba_port *uap, unsigned char c, - return false; /* unable to transmit character */ - - pl011_write(c, uap, REG_DR); -+ mb(); - uap->port.icount.tx++; - - return true; - -From 38056f59f1a1715e9a81a07701a0d048eadf31bd Mon Sep 17 00:00:00 2001 -From: Phil Elwell -Date: Wed, 11 Oct 2017 13:48:04 +0100 -Subject: [PATCH 138/141] amba-pl011: Report AUTOCTS capability to framework - -The PL011 has full hardware RTS/CTS support which is enabled by -the driver when flow control is requested. However, it doesn't -notify the UART framework of the fact, causing the software CTS -support to be enabled at the same time. - -Software CTS triggers the sending of another batch of characters -when CTS becomes asserted. The pl011 interrupt handler processes -the CTIS bit before TXIS, which can cause some characters to be -sent between the time that the TXIS bit first becomes asserted -and the time it is handled by a call to px011_tx_chars. This -would be fine were it not for the optimisation in pl011_tx_char -that assumes the FIFO is half-empty if called from the interrupt -handler and skips the checking of the FIFO status register before -sending each character, leading to data loss if the FIFO is more -than half-full. - -Prevent the data loss and improve efficiency by indicating the -AUTOCTS support. - -Signed-off-by: Phil Elwell ---- - drivers/tty/serial/amba-pl011.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl011.c -index f6428446dfc0eb060d18c119d065d85ee6fea18c..aa661160a87330f013879e56a2da2ed6db7ec104 100644 ---- a/drivers/tty/serial/amba-pl011.c -+++ b/drivers/tty/serial/amba-pl011.c -@@ -2047,9 +2047,11 @@ pl011_set_termios(struct uart_port *port, struct ktermios *termios, - - old_cr |= UART011_CR_CTSEN; - uap->autorts = true; -+ port->status |= UPSTAT_AUTOCTS; - } else { - old_cr &= ~(UART011_CR_CTSEN | UART011_CR_RTSEN); - uap->autorts = false; -+ port->status &= ~UPSTAT_AUTOCTS; - } - - if (uap->vendor->oversampling) { - -From f2e17c0bae33523d6bf1e67f85eae5c7eb4f5749 Mon Sep 17 00:00:00 2001 -From: neilneil2000 <31366098+neilneil2000@users.noreply.github.com> -Date: Thu, 12 Oct 2017 17:29:43 +0100 -Subject: [PATCH 139/141] GPIO and gpio-poweroff clarifications - -Notes added: -1) All GPIO references use the hardware numbering scheme -2) Enabling gpio-poweroff prevents the ability to boot the pi by driving GPIO3 low ---- - arch/arm/boot/dts/overlays/README | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README -index e6d777a601c91d192bc5713f9a73e1a2d4d708ef..b34c9a9f115b4d7ac81ef4d9417beaadd62259b2 100644 ---- a/arch/arm/boot/dts/overlays/README -+++ b/arch/arm/boot/dts/overlays/README -@@ -33,6 +33,9 @@ needed. - Configuring additional, optional hardware is done using Device Tree overlays - (see below). - -+GPIO numbering uses the hardware pin numbering scheme (aka BCM scheme) and -+not the physical pin numbers. -+ - raspi-config - ============ - -@@ -496,7 +499,8 @@ Params: gpio_pin Input pin number. Default is 18. - - - Name: gpio-poweroff --Info: Drives a GPIO high or low on poweroff (including halt) -+Info: Drives a GPIO high or low on poweroff (including halt). Enabling this -+ overlay will prevent the ability to boot by driving GPIO3 low. - Load: dtoverlay=gpio-poweroff,= - Params: gpiopin GPIO for signalling (default 26) - - -From 9bce93d61ea0f3f3c29fc7ed05881695bdac63c1 Mon Sep 17 00:00:00 2001 -From: Phil Elwell -Date: Tue, 17 Oct 2017 17:17:20 +0100 -Subject: [PATCH 140/141] config: Add CONFIG_USB_LAN78XX=m - -Signed-off-by: Phil Elwell ---- - arch/arm/configs/bcm2709_defconfig | 1 + - arch/arm/configs/bcmrpi_defconfig | 1 + - 2 files changed, 2 insertions(+) - -diff --git a/arch/arm/configs/bcm2709_defconfig b/arch/arm/configs/bcm2709_defconfig -index 62909413e1d625a1d33559d965ee8707ca57ba91..b520a6ccb971657093d30f66db35c1872609bd9c 100644 ---- a/arch/arm/configs/bcm2709_defconfig -+++ b/arch/arm/configs/bcm2709_defconfig -@@ -477,6 +477,7 @@ CONFIG_USB_KAWETH=m - CONFIG_USB_PEGASUS=m - CONFIG_USB_RTL8150=m - CONFIG_USB_RTL8152=m -+CONFIG_USB_LAN78XX=m - CONFIG_USB_USBNET=y - CONFIG_USB_NET_AX8817X=m - CONFIG_USB_NET_AX88179_178A=m -diff --git a/arch/arm/configs/bcmrpi_defconfig b/arch/arm/configs/bcmrpi_defconfig -index e0dd8723047ff488e81a03ef42fdbc68c43dc721..e85544974de7de68309ba8ca7ae9f8d36ed035df 100644 ---- a/arch/arm/configs/bcmrpi_defconfig -+++ b/arch/arm/configs/bcmrpi_defconfig -@@ -472,6 +472,7 @@ CONFIG_USB_KAWETH=m - CONFIG_USB_PEGASUS=m - CONFIG_USB_RTL8150=m - CONFIG_USB_RTL8152=m -+CONFIG_USB_LAN78XX=m - CONFIG_USB_USBNET=y - CONFIG_USB_NET_AX8817X=m - CONFIG_USB_NET_AX88179_178A=m - -From 82cd6d277d1c95163a2e1b832fe395677b9cdd6d Mon Sep 17 00:00:00 2001 -From: Phil Elwell -Date: Wed, 25 Oct 2017 09:20:56 +0100 -Subject: [PATCH 141/141] scripts: Update mkknlimg, just in case - -With the removal of the vc_cma driver, mkknlimg lost an indication that -the user had built a downstream kernel. Update the script, adding a few -more key strings, in case it is still being used. - -Note that mkknlimg is now deprecated, except to tag kernels as upstream -(283x), and thus requiring upstream DTBs. - -See: https://github.com/raspberrypi/linux/issues/2239 - -Signed-off-by: Phil Elwell ---- - scripts/mkknlimg | 9 +++------ - 1 file changed, 3 insertions(+), 6 deletions(-) - -diff --git a/scripts/mkknlimg b/scripts/mkknlimg -index 84be2593ec1de8f97b0167ff06b3e05d231c4ba0..d72e15224232d5164374e93be48949bf596266ef 100755 ---- a/scripts/mkknlimg -+++ b/scripts/mkknlimg -@@ -68,18 +68,15 @@ if (! -r $kernel_file) - - my $wanted_strings = - { -- 'bcm2708_fb' => FLAG_PI | FLAG_270X, - 'brcm,bcm2835-mmc' => FLAG_PI, - 'brcm,bcm2835-sdhost' => FLAG_PI, -- 'brcm,bcm2708-pinctrl' => FLAG_PI | FLAG_DTOK, - 'brcm,bcm2835-gpio' => FLAG_PI | FLAG_DTOK, -- 'brcm,bcm2708' => FLAG_PI | FLAG_DTOK | FLAG_270X, -- 'brcm,bcm2709' => FLAG_PI | FLAG_DTOK | FLAG_270X, -+ 'brcm,bcm2708-fb' => FLAG_PI | FLAG_DTOK | FLAG_270X, -+ 'brcm,bcm2708-usb' => FLAG_PI | FLAG_DTOK | FLAG_270X, - 'brcm,bcm2835' => FLAG_PI | FLAG_DTOK | FLAG_283X, - 'brcm,bcm2836' => FLAG_PI | FLAG_DTOK | FLAG_283X, -+ 'brcm,bcm2837' => FLAG_PI | FLAG_DTOK | FLAG_283X, - 'of_cfs_init' => FLAG_DTOK | FLAG_DDTK, -- 'vc_cma_init' => FLAG_PI | FLAG_270X, -- 'vc-mem' => FLAG_PI | FLAG_270X, - }; - - my $res = try_extract($kernel_file, $tmpfile1); + S .req a1 + DAT0 .req a2 + N .req a3 +@@ -119,5 +122,7 @@ ENTRY(memset) + .unreq DAT1 + .unreq DAT2 + .unreq DAT3 ++ENDPROC(__memset64) ++ENDPROC(__memset32) + ENDPROC(memset) + ENDPROC(mmioset)