diff --git a/packages/linux/package.mk b/packages/linux/package.mk index 09a7d268d3..46aed89527 100644 --- a/packages/linux/package.mk +++ b/packages/linux/package.mk @@ -47,8 +47,8 @@ case "$LINUX" in PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET aml-dtbtools:host" ;; *) - PKG_VERSION="4.14.15" - PKG_SHA256="ffc393a0c66f80375eacd3fb177b92e5c9daa07de0dcf947e925e049352e6142" + PKG_VERSION="4.14.20" + PKG_SHA256="4ab7f42aa6af9c1e3b00cba6b1fa305a87407666aaa2fae555f7fbdaafb6d292" PKG_URL="https://www.kernel.org/pub/linux/kernel/v4.x/$PKG_NAME-$PKG_VERSION.tar.xz" PKG_PATCH_DIRS="default" ;; diff --git a/projects/Generic/linux/linux.x86_64.conf b/projects/Generic/linux/linux.x86_64.conf index 464cb5394e..b11e0145f8 100644 --- a/projects/Generic/linux/linux.x86_64.conf +++ b/projects/Generic/linux/linux.x86_64.conf @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86_64 4.14.14 Kernel Configuration +# Linux/x86_64 4.14.17 Kernel Configuration # CONFIG_64BIT=y CONFIG_X86_64=y @@ -5256,6 +5256,7 @@ CONFIG_CRYPTO_RNG2=y CONFIG_CRYPTO_RNG_DEFAULT=y CONFIG_CRYPTO_AKCIPHER2=y CONFIG_CRYPTO_KPP2=y +CONFIG_CRYPTO_KPP=m CONFIG_CRYPTO_ACOMP2=y # CONFIG_CRYPTO_RSA is not set # CONFIG_CRYPTO_DH is not set diff --git a/projects/RPi/devices/RPi/linux/linux.arm.conf b/projects/RPi/devices/RPi/linux/linux.arm.conf index bd6bd9c374..dcbcd981a7 100644 --- a/projects/RPi/devices/RPi/linux/linux.arm.conf +++ b/projects/RPi/devices/RPi/linux/linux.arm.conf @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/arm 4.14.15 Kernel Configuration +# Linux/arm 4.14.17 Kernel Configuration # CONFIG_ARM=y CONFIG_ARM_HAS_SG_CHAIN=y @@ -3089,14 +3089,14 @@ CONFIG_SND_SOC_I2C_AND_SPI=m CONFIG_SND_SOC_ARIZONA=m CONFIG_SND_SOC_WM_ADSP=m # CONFIG_SND_SOC_AC97_CODEC is not set -# CONFIG_SND_SOC_ADAU1701 is not set +CONFIG_SND_SOC_ADAU1701=m # CONFIG_SND_SOC_ADAU1761_I2C is not set # CONFIG_SND_SOC_ADAU1761_SPI is not set CONFIG_SND_SOC_ADAU1977=m CONFIG_SND_SOC_ADAU1977_I2C=m CONFIG_SND_SOC_ADAU7002=m # CONFIG_SND_SOC_AK4104 is not set -# CONFIG_SND_SOC_AK4554 is not set +CONFIG_SND_SOC_AK4554=m # CONFIG_SND_SOC_AK4613 is not set # CONFIG_SND_SOC_AK4642 is not set # CONFIG_SND_SOC_AK5386 is not set @@ -3113,7 +3113,8 @@ CONFIG_SND_SOC_ADAU7002=m # CONFIG_SND_SOC_CS42L73 is not set CONFIG_SND_SOC_CS4265=m # CONFIG_SND_SOC_CS4270 is not set -# CONFIG_SND_SOC_CS4271_I2C is not set +CONFIG_SND_SOC_CS4271=m +CONFIG_SND_SOC_CS4271_I2C=m # CONFIG_SND_SOC_CS4271_SPI is not set CONFIG_SND_SOC_CS42XX8=m CONFIG_SND_SOC_CS42XX8_I2C=m @@ -3146,8 +3147,10 @@ CONFIG_SND_SOC_PCM1794A=m # CONFIG_SND_SOC_RT5631 is not set # CONFIG_SND_SOC_RT5677_SPI is not set CONFIG_SND_SOC_SGTL5000=m +CONFIG_SND_SOC_SIGMADSP=m +CONFIG_SND_SOC_SIGMADSP_I2C=m # CONFIG_SND_SOC_SIRF_AUDIO_CODEC is not set -# CONFIG_SND_SOC_SPDIF is not set +CONFIG_SND_SOC_SPDIF=m # CONFIG_SND_SOC_SSM2602_SPI is not set # CONFIG_SND_SOC_SSM2602_I2C is not set # CONFIG_SND_SOC_SSM4567 is not set @@ -3193,9 +3196,10 @@ CONFIG_SND_SOC_WM8804_I2C=m # CONFIG_SND_SOC_NAU8810 is not set # CONFIG_SND_SOC_NAU8824 is not set CONFIG_SND_SOC_TPA6130A2=m -# CONFIG_SND_SIMPLE_CARD is not set +CONFIG_SND_SIMPLE_CARD_UTILS=m +CONFIG_SND_SIMPLE_CARD=m # CONFIG_SND_SIMPLE_SCU_CARD is not set -# CONFIG_SND_AUDIO_GRAPH_CARD is not set +CONFIG_SND_AUDIO_GRAPH_CARD=m # CONFIG_SND_AUDIO_GRAPH_SCU_CARD is not set # @@ -4429,6 +4433,7 @@ CONFIG_CRYPTO_RNG2=y CONFIG_CRYPTO_RNG_DEFAULT=y CONFIG_CRYPTO_AKCIPHER2=y CONFIG_CRYPTO_KPP2=y +CONFIG_CRYPTO_KPP=m CONFIG_CRYPTO_ACOMP2=y # CONFIG_CRYPTO_RSA is not set # CONFIG_CRYPTO_DH is not set diff --git a/projects/RPi/devices/RPi2/linux/linux.arm.conf b/projects/RPi/devices/RPi2/linux/linux.arm.conf index f449e02cf8..c3d9ea0717 100644 --- a/projects/RPi/devices/RPi2/linux/linux.arm.conf +++ b/projects/RPi/devices/RPi2/linux/linux.arm.conf @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/arm 4.14.15 Kernel Configuration +# Linux/arm 4.14.17 Kernel Configuration # CONFIG_ARM=y CONFIG_ARM_HAS_SG_CHAIN=y @@ -3187,14 +3187,14 @@ CONFIG_SND_SOC_I2C_AND_SPI=m CONFIG_SND_SOC_ARIZONA=m CONFIG_SND_SOC_WM_ADSP=m # CONFIG_SND_SOC_AC97_CODEC is not set -# CONFIG_SND_SOC_ADAU1701 is not set +CONFIG_SND_SOC_ADAU1701=m # CONFIG_SND_SOC_ADAU1761_I2C is not set # CONFIG_SND_SOC_ADAU1761_SPI is not set CONFIG_SND_SOC_ADAU1977=m CONFIG_SND_SOC_ADAU1977_I2C=m CONFIG_SND_SOC_ADAU7002=m # CONFIG_SND_SOC_AK4104 is not set -# CONFIG_SND_SOC_AK4554 is not set +CONFIG_SND_SOC_AK4554=m # CONFIG_SND_SOC_AK4613 is not set # CONFIG_SND_SOC_AK4642 is not set # CONFIG_SND_SOC_AK5386 is not set @@ -3211,7 +3211,8 @@ CONFIG_SND_SOC_ADAU7002=m # CONFIG_SND_SOC_CS42L73 is not set CONFIG_SND_SOC_CS4265=m # CONFIG_SND_SOC_CS4270 is not set -# CONFIG_SND_SOC_CS4271_I2C is not set +CONFIG_SND_SOC_CS4271=m +CONFIG_SND_SOC_CS4271_I2C=m # CONFIG_SND_SOC_CS4271_SPI is not set CONFIG_SND_SOC_CS42XX8=m CONFIG_SND_SOC_CS42XX8_I2C=m @@ -3244,8 +3245,10 @@ CONFIG_SND_SOC_PCM1794A=m # CONFIG_SND_SOC_RT5631 is not set # CONFIG_SND_SOC_RT5677_SPI is not set CONFIG_SND_SOC_SGTL5000=m +CONFIG_SND_SOC_SIGMADSP=m +CONFIG_SND_SOC_SIGMADSP_I2C=m # CONFIG_SND_SOC_SIRF_AUDIO_CODEC is not set -# CONFIG_SND_SOC_SPDIF is not set +CONFIG_SND_SOC_SPDIF=m # CONFIG_SND_SOC_SSM2602_SPI is not set # CONFIG_SND_SOC_SSM2602_I2C is not set # CONFIG_SND_SOC_SSM4567 is not set @@ -3291,9 +3294,10 @@ CONFIG_SND_SOC_WM8804_I2C=m # CONFIG_SND_SOC_NAU8810 is not set # CONFIG_SND_SOC_NAU8824 is not set CONFIG_SND_SOC_TPA6130A2=m -# CONFIG_SND_SIMPLE_CARD is not set +CONFIG_SND_SIMPLE_CARD_UTILS=m +CONFIG_SND_SIMPLE_CARD=m # CONFIG_SND_SIMPLE_SCU_CARD is not set -# CONFIG_SND_AUDIO_GRAPH_CARD is not set +CONFIG_SND_AUDIO_GRAPH_CARD=m # CONFIG_SND_AUDIO_GRAPH_SCU_CARD is not set # @@ -4535,6 +4539,7 @@ CONFIG_CRYPTO_RNG2=y CONFIG_CRYPTO_RNG_DEFAULT=y CONFIG_CRYPTO_AKCIPHER2=y CONFIG_CRYPTO_KPP2=y +CONFIG_CRYPTO_KPP=m CONFIG_CRYPTO_ACOMP2=y # CONFIG_CRYPTO_RSA is not set # CONFIG_CRYPTO_DH is not set diff --git a/projects/RPi/patches/linux/linux-01-RPi_support.patch b/projects/RPi/patches/linux/linux-01-RPi_support.patch index 00c5c1140a..6d2dc5a382 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 d9d890a9458fdeeabcb02d232934069e3ad35487 Mon Sep 17 00:00:00 2001 +From 6e32c8643ef10aecd3121993886cd85e417e4b88 Mon Sep 17 00:00:00 2001 From: Dan Pasanen Date: Thu, 21 Sep 2017 09:55:42 -0500 -Subject: [PATCH 001/201] arm: partially revert +Subject: [PATCH 001/235] arm: partially revert 702b94bff3c50542a6e4ab9a4f4cef093262fe65 * Re-expose some dmi APIs for use in VCSM @@ -106,10 +106,10 @@ index 054b491ff7649ca067ff821770aec80a4da42102..70e8b7d3443467ae9595924f1a9d043b EXPORT_SYMBOL(cpu_cache); #endif -From cec6171e90f1c71191086277abd50033794eba37 Mon Sep 17 00:00:00 2001 +From 12de5a59d71ac1c9756fd891b6fcaf64f0760119 Mon Sep 17 00:00:00 2001 From: Steve Glendinning Date: Thu, 19 Feb 2015 18:47:12 +0000 -Subject: [PATCH 002/201] smsx95xx: fix crimes against truesize +Subject: [PATCH 002/235] 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. @@ -156,10 +156,10 @@ index 309b88acd3d0b6ca1528dde7b27a23926f9be952..25e37195ceb00cfc0ced7638e8b571a1 usbnet_skb_return(dev, ax_skb); } -From d8bf9e4d39f94900628fc3f3a8aec339bb3eca95 Mon Sep 17 00:00:00 2001 +From debfa3da9c439b9da7ed9a86628ed0c7cee60608 Mon Sep 17 00:00:00 2001 From: Sam Nazarko Date: Fri, 1 Apr 2016 17:27:21 +0100 -Subject: [PATCH 003/201] smsc95xx: Experimental: Enable turbo_mode and +Subject: [PATCH 003/235] smsc95xx: Experimental: Enable turbo_mode and packetsize=2560 by default See: http://forum.kodi.tv/showthread.php?tid=285288 @@ -202,10 +202,10 @@ index 25e37195ceb00cfc0ced7638e8b571a1b0b8e6f1..09c7d4a07299e70b1cdc9df2c2c4cb39 netif_dbg(dev, ifup, dev->net, "rx_urb_size=%ld\n", -From 5f0e62912300acf4b2556537cf27d3defadad59c Mon Sep 17 00:00:00 2001 +From 4e5d719bc4b090a0ac53eeb39d0c68a99f3fd3b6 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 26 Mar 2013 17:26:38 +0000 -Subject: [PATCH 004/201] Allow mac address to be set in smsc95xx +Subject: [PATCH 004/235] Allow mac address to be set in smsc95xx Signed-off-by: popcornmix --- @@ -301,10 +301,10 @@ index 09c7d4a07299e70b1cdc9df2c2c4cb39d2207c37..4d9704d0b184df9bd7ddbe6769e40a75 eth_hw_addr_random(dev->net); netif_dbg(dev, ifup, dev->net, "MAC address set to eth_random_addr\n"); -From abdd56722683d3086033efbb9648fd6843c6151a Mon Sep 17 00:00:00 2001 +From 4747d3fb8f8ad7dbabaaf4ee32dd8cfa5566569a Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 13 Mar 2015 12:43:36 +0000 -Subject: [PATCH 005/201] Protect __release_resource against resources without +Subject: [PATCH 005/235] Protect __release_resource against resources without parents Without this patch, removing a device tree overlay can crash here. @@ -332,10 +332,10 @@ index 9b5f04404152c296af3a96132f27cfc80ffa9af9..f8a9af6e6b915812be2ba2c1c2b40106 for (;;) { tmp = *p; -From 230d8059390dd3268c00ea36b0ceed0fc2abc084 Mon Sep 17 00:00:00 2001 +From 440fdfe475f5fc182d023098ad6be430cebbc340 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 4 Dec 2015 17:41:50 +0000 -Subject: [PATCH 006/201] irq-bcm2836: Prevent spurious interrupts, and trap +Subject: [PATCH 006/235] irq-bcm2836: Prevent spurious interrupts, and trap them early The old arch-specific IRQ macros included a dsb to ensure the @@ -362,10 +362,10 @@ index dc8c1e3eafe794a3af83dd987a6d6362d14dd5ee..e8204d9af58f1b893505c06902a83390 #endif } else if (stat) { -From 69bc65e0bda33413d94e83615091686d55195077 Mon Sep 17 00:00:00 2001 +From 64df9578986e610617ee60027a8241f2211f92c5 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 9 Feb 2017 14:33:30 +0000 -Subject: [PATCH 007/201] irq-bcm2836: Avoid "Invalid trigger warning" +Subject: [PATCH 007/235] irq-bcm2836: Avoid "Invalid trigger warning" Initialise the level for each IRQ to avoid a warning from the arm arch timer code. @@ -389,10 +389,10 @@ index e8204d9af58f1b893505c06902a83390c2ea8509..6e3fab9587b782e026c01fa6b6e40338 static void -From 60974c9110c3b85e69dc50fd9833e58eee719781 Mon Sep 17 00:00:00 2001 +From 6d55006f381b68938b9962a44a014055d3675db8 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 008/201] irqchip: bcm2835: Add FIQ support +Subject: [PATCH 008/235] irqchip: bcm2835: Add FIQ support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -521,10 +521,10 @@ index d2da8a1e6b1b71381e382d034e7a94e865a6c3da..c4903360eabc2bef04f8e745782cea26 } -From bd439dae74abfa099cbfecfeac07596746687108 Mon Sep 17 00:00:00 2001 +From d795034f9e5436be327ce8c11a751ebb94265c38 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 009/201] irqchip: irq-bcm2835: Add 2836 FIQ support +Subject: [PATCH 009/235] irqchip: irq-bcm2835: Add 2836 FIQ support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -623,10 +623,10 @@ index c4903360eabc2bef04f8e745782cea268fb22897..13356d3b7bcd508f058c6a9e3c4b0b38 for (b = 0; b < NR_BANKS; b++) { for (i = 0; i < bank_irqs[b]; i++) { -From 92b23200bc99602ba036ef25c996f79789f2b19b Mon Sep 17 00:00:00 2001 +From 8436f9551050fcf74e5c3c55c250e92000b2fedb Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 8 May 2017 16:43:40 +0100 -Subject: [PATCH 010/201] irq_bcm2836: Send event when onlining sleeping cores +Subject: [PATCH 010/235] 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 @@ -662,10 +662,10 @@ index 6e3fab9587b782e026c01fa6b6e40338ef0c8d0a..86b357ae027bf8ba1ac32cd150a8cf21 } -From 8ae97fa3b5643f0247135586cdd983900e8fa479 Mon Sep 17 00:00:00 2001 +From ce41fb55015584f91bab8de43d3a0af15378bbba Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 14 Jul 2015 10:26:09 +0100 -Subject: [PATCH 011/201] spidev: Add "spidev" compatible string to silence +Subject: [PATCH 011/235] spidev: Add "spidev" compatible string to silence warning See: https://github.com/raspberrypi/linux/issues/1054 @@ -686,10 +686,10 @@ index cda10719d1d1b21b32866d2b79363faa461ab8e1..4f3779d3aa0960640506725bde918075 }; MODULE_DEVICE_TABLE(of, spidev_dt_ids); -From ff5155a91c3a801a49e7debfec3da1d545a8bb4c Mon Sep 17 00:00:00 2001 +From 13c06dad86ef6f0eb99a7e06ca785e0bb444b6c8 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 24 Jun 2015 14:10:44 +0100 -Subject: [PATCH 012/201] spi-bcm2835: Support pin groups other than 7-11 +Subject: [PATCH 012/235] 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 @@ -770,10 +770,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 37b23d0421c1277c5cdebb5d382689aaa7b07de6 Mon Sep 17 00:00:00 2001 +From a9c1a1116d64101ecfe0064697549efa044b8522 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 1 Jul 2016 22:09:24 +0100 -Subject: [PATCH 013/201] spi-bcm2835: Disable forced software CS +Subject: [PATCH 013/235] 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 @@ -807,10 +807,10 @@ index 5dfe20ffc2866fa6789825016c585175a29705b6..8493474d286f7a1ac6454a22c61c8c2c return 0; } -From f668e0f1f82524ddc1f5a91acdc6d070d1cd8a72 Mon Sep 17 00:00:00 2001 +From c2561dce2da9143714b58ddf11a2acf141a9924d Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 8 Nov 2016 21:35:38 +0000 -Subject: [PATCH 014/201] spi-bcm2835: Remove unused code +Subject: [PATCH 014/235] spi-bcm2835: Remove unused code --- drivers/spi/spi-bcm2835.c | 61 ----------------------------------------------- @@ -898,10 +898,10 @@ index 8493474d286f7a1ac6454a22c61c8c2cef9121bf..33d75ad38a7f77d085321ace9101900a } -From 461fe630a09b9f287781e4c8822405228c965c2a Mon Sep 17 00:00:00 2001 +From 236210546794e73d033fca2f32db72763c007b32 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 015/201] ARM: bcm2835: Set Serial number and Revision +Subject: [PATCH 015/235] ARM: bcm2835: Set Serial number and Revision MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -954,10 +954,10 @@ index 0c1edfc98696da0e0bb7f4a18cdfbcdd27a9795d..8f152266ba9b470df2eaaed9ebcf158e static const char * const bcm2835_compat[] = { -From b0dbc25891a5d62e2f9a8a2b9e7da6515752cf46 Mon Sep 17 00:00:00 2001 +From ac8430e841062b723ae8add7c7b86e0cc3d2c9d9 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 016/201] dmaengine: bcm2835: Load driver early and support +Subject: [PATCH 016/235] dmaengine: bcm2835: Load driver early and support legacy API MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -1060,10 +1060,10 @@ index 6204cc32d09c5096df8aec304c3c37b3bcb6be44..599c218dc8a73172dd4bd4a058fc8f95 MODULE_ALIAS("platform:bcm2835-dma"); MODULE_DESCRIPTION("BCM2835 DMA engine driver"); -From a25e1d451917d6d9372d59d2ffc46255e5faf067 Mon Sep 17 00:00:00 2001 +From f4580544138be26a59b056ff6860731e10ea7260 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 25 Jan 2016 17:25:12 +0000 -Subject: [PATCH 017/201] firmware: Updated mailbox header +Subject: [PATCH 017/235] firmware: Updated mailbox header --- include/soc/bcm2835/raspberrypi-firmware.h | 21 +++++++++++++++++++++ @@ -1149,10 +1149,10 @@ index cb979ad90401e299344dd5fae38d09c489d8bd58..cbd1674570433fc591df89f68c892b33 #endif /* __SOC_RASPBERRY_FIRMWARE_H__ */ -From de50c1891fef0e317188b005821ab47e420da894 Mon Sep 17 00:00:00 2001 +From e1c3b4382a2dbe50c9675899de5b957bb28d60c7 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 15 Jun 2016 16:48:41 +0100 -Subject: [PATCH 018/201] rtc: Add SPI alias for pcf2123 driver +Subject: [PATCH 018/235] rtc: Add SPI alias for pcf2123 driver Without this alias, Device Tree won't cause the driver to be loaded. @@ -1172,10 +1172,10 @@ index 8895f77726e8da5444afcd602dceff8f25a9b3fd..1833b8853ceb0e6147cceb93a00e558c MODULE_LICENSE("GPL"); +MODULE_ALIAS("spi:rtc-pcf2123"); -From f4dc338d40d1c667547bcac494133da94ab3bfde Mon Sep 17 00:00:00 2001 +From ce04e3c3adce94a9dd06f8b99b0a8e0f2b7bd471 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 019/201] watchdog: bcm2835: Support setting reboot partition +Subject: [PATCH 019/235] watchdog: bcm2835: Support setting reboot partition MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -1277,10 +1277,10 @@ index b339e0e67b4c1275fd4992fea4f1e24c0575b783..26b7177573fac2af1cd4ab5488d2686f static int bcm2835_wdt_probe(struct platform_device *pdev) -From 6ab5b331736e3aa5f2ec8aa3a8b6e5036a944313 Mon Sep 17 00:00:00 2001 +From 602d92f36eba275af1f681641cef3d0481239305 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 5 Apr 2016 19:40:12 +0100 -Subject: [PATCH 020/201] reboot: Use power off rather than busy spinning when +Subject: [PATCH 020/235] reboot: Use power off rather than busy spinning when halt is requested --- @@ -1303,10 +1303,10 @@ index 3b2aa9a9fe268d45335f781c4aa22cf573753a1b..0180d89a34af45c56243fe0f17fbe209 /* -From b723479ea0e9c2fc8eaca22845e2246579c96ef8 Mon Sep 17 00:00:00 2001 +From 3012b7139d9cbe5498b317c8aca090f7fa0b7102 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 9 Nov 2016 13:02:52 +0000 -Subject: [PATCH 021/201] bcm: Make RASPBERRYPI_POWER depend on PM +Subject: [PATCH 021/235] bcm: Make RASPBERRYPI_POWER depend on PM --- drivers/soc/bcm/Kconfig | 1 + @@ -1325,10 +1325,10 @@ index 49f1e2a75d614bc21db152327c7b425ae2504f8d..dccd2374ed00631abd441e3e9d78ee74 help This enables support for the RPi power domains which can be enabled -From 05f5ca04b1e42ae95641ec892d136baa4c78eac9 Mon Sep 17 00:00:00 2001 +From fcbd25957c39d3ecc8fba52e723072ef7e04491c Mon Sep 17 00:00:00 2001 From: Martin Sperl Date: Fri, 2 Sep 2016 16:45:27 +0100 -Subject: [PATCH 022/201] Register the clocks early during the boot process, so +Subject: [PATCH 022/235] 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. @@ -1373,10 +1373,10 @@ index 58ce6af8452db9ca8b4d3c380a06e448919f6a8d..11d89d106026f15719ea25047d6f357b MODULE_AUTHOR("Eric Anholt "); MODULE_DESCRIPTION("BCM2835 clock driver"); -From 0c1125f5ba05c664abf23cb90f4a1d8cc4d5ef66 Mon Sep 17 00:00:00 2001 +From e35f484308e62d229dac4bead625973d7a0d3a89 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 6 Dec 2016 17:05:39 +0000 -Subject: [PATCH 023/201] bcm2835-rng: Avoid initialising if already enabled +Subject: [PATCH 023/235] bcm2835-rng: Avoid initialising if already enabled Avoids the 0x40000 cycles of warmup again if firmware has already used it --- @@ -1402,10 +1402,10 @@ index 574211a495491d9d6021dcaefe4274a63ed02055..e66c0fca8c6090e32f72796c0877a1cf err = hwrng_register(&bcm2835_rng_ops); if (err) { -From 7ba06e2550f7252889243435c63ae440d89a65ef Mon Sep 17 00:00:00 2001 +From 49b63c8b847284ad2862ced721b57ce752dd2144 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 24 Aug 2016 16:28:44 +0100 -Subject: [PATCH 024/201] kbuild: Ignore dtco targets when filtering symbols +Subject: [PATCH 024/235] kbuild: Ignore dtco targets when filtering symbols --- scripts/Kbuild.include | 2 +- @@ -1425,10 +1425,10 @@ index 9ffd3dda3889c56a7a72229bed21ff5c49d62856..00da6c9bacbf33334233e22ca5209ade esac | tr ";" "\n" | sed -rn 's/^.*=== __KSYM_(.*) ===.*$$/KSYM_\1/p' -From f1d516520ca16f69f1fb8bb5fa64f2b98c332c0f Mon Sep 17 00:00:00 2001 +From 4af271a845bcdf8ec11a76248a53f34474f396cd Mon Sep 17 00:00:00 2001 From: Robert Tiemann Date: Mon, 20 Jul 2015 11:01:25 +0200 -Subject: [PATCH 025/201] BCM2835_DT: Fix I2S register map +Subject: [PATCH 025/235] BCM2835_DT: Fix I2S register map --- Documentation/devicetree/bindings/dma/brcm,bcm2835-dma.txt | 4 ++-- @@ -1466,10 +1466,10 @@ index 65783de0aedf3da79adc36fd077b7a89954ddb6b..a89fe4220fdc3f26f75ee66daf187554 dmas = <&dma 2>, <&dma 3>; -From 3cda44c973dbe59dcbb822df068487e09488064f Mon Sep 17 00:00:00 2001 +From 02aa0b25af3a0fc57f3abaede382e578f4e14cb4 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 13 Feb 2017 17:20:08 +0000 -Subject: [PATCH 026/201] clk-bcm2835: Mark used PLLs and dividers CRITICAL +Subject: [PATCH 026/235] 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 @@ -1497,10 +1497,10 @@ index 11d89d106026f15719ea25047d6f357b4bfcb2c5..fe8f5d65f2749cb3ddc878df61664826 divider->data = data; -From 72e2aca50328a807fffe452fd6e0389a30759e75 Mon Sep 17 00:00:00 2001 +From 821b02611a16055cd7189dfafbd21878204a2ebe Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 13 Feb 2017 17:20:08 +0000 -Subject: [PATCH 027/201] clk-bcm2835: Add claim-clocks property +Subject: [PATCH 027/235] 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, @@ -1602,10 +1602,10 @@ index fe8f5d65f2749cb3ddc878df616648267441e0ee..92b5e0f5145b32d3bfc3592fe381e8be sizeof(cprman_parent_names)); of_clk_parent_fill(dev->of_node, cprman->real_parent_names, -From 80ec4f24ef1e1bfd25efc5b7143724ac37d838f5 Mon Sep 17 00:00:00 2001 +From 7f8a2a7b9377a026b11e0277e8f6b21c7fd70a79 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 6 Mar 2017 09:06:18 +0000 -Subject: [PATCH 028/201] clk-bcm2835: Read max core clock from firmware +Subject: [PATCH 028/235] 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 @@ -1720,10 +1720,10 @@ index 92b5e0f5145b32d3bfc3592fe381e8be3cd90c72..336f8c9c44325d0a94e591a8557f7af2 for (i = 0; !of_property_read_u32_index(pdev->dev.of_node, "claim-clocks", -From af5d91fbc2094ac6f1c68b1e03ee6f389d16e964 Mon Sep 17 00:00:00 2001 +From 0c7be6382d85ff84ba25bc390a1003afba10234a Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 9 May 2016 17:28:18 -0700 -Subject: [PATCH 029/201] clk: bcm2835: Mark GPIO clocks enabled at boot as +Subject: [PATCH 029/235] clk: bcm2835: Mark GPIO clocks enabled at boot as critical. These divide off of PLLD_PER and are used for the ethernet and wifi @@ -1761,10 +1761,10 @@ index 336f8c9c44325d0a94e591a8557f7af246adc857..caa05e5ad0b7b5cd683e04fb3591a3df * Pass the CLK_SET_RATE_PARENT flag if we are allowed to propagate * rate changes on at least of the parents. -From 2a474d35b1673521d5d0d5c51eeaf5b893351c4e Mon Sep 17 00:00:00 2001 +From d3ea0479b3e53fd8140823975519ec521a4a9306 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 9 Feb 2017 14:36:44 +0000 -Subject: [PATCH 030/201] sound: Demote deferral errors to INFO level +Subject: [PATCH 030/235] 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. @@ -1799,10 +1799,10 @@ index fee4b0ef5566cf9e8de0bf5c568706da9cab2ea2..c728a4148903e983d61b6ae65765ba11 goto _err_defer; } -From 5e5c88d4c4f445e6e7f7bf106d4c767566958af4 Mon Sep 17 00:00:00 2001 +From 52e905964e7057cbd38a1eeb81fdbe5bdee036a9 Mon Sep 17 00:00:00 2001 From: Claggy3 Date: Sat, 11 Feb 2017 14:00:30 +0000 -Subject: [PATCH 031/201] Update vfpmodule.c +Subject: [PATCH 031/235] 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 @@ -1939,10 +1939,10 @@ index a71a48e71fffa8626fe90106815376c44bbe679b..d6c0a5a0a5ae3510db3ace5e3f5d3410 /* * Save the userland NEON/VFP state. Under UP, -From e5fa3bdb7debe74d8b271492139549df6a46ac2a Mon Sep 17 00:00:00 2001 +From 5fac7da686a7e73403bb8aed30a19f55f918da08 Mon Sep 17 00:00:00 2001 From: Matt Flax Date: Wed, 8 Mar 2017 21:13:24 +1100 -Subject: [PATCH 032/201] ASoC: bcm2835_i2s.c: relax the ch2 register setting +Subject: [PATCH 032/235] 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. @@ -1963,10 +1963,10 @@ index 6ba20498202ed36906b52096893a88867a79269f..56df7d8a43d0aac055a91b0d24aca8e1 format |= BCM2835_I2S_CH1(BCM2835_I2S_CHPOS(ch1pos)); format |= BCM2835_I2S_CH2(BCM2835_I2S_CHPOS(ch2pos)); -From 0afa18284f78a743187b12aacc72b0f395e86be5 Mon Sep 17 00:00:00 2001 +From 1ae5632b8cc5c7f54e19d36ac637a8c00a67483b 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 033/201] i2c: bcm2835: Add debug support +Subject: [PATCH 033/235] i2c: bcm2835: Add debug support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -2155,10 +2155,10 @@ index cd07a69e2e9355540442785f95e90823b05c9d10..47167f403cc8329bd811b47c7011c299 if (i2c_dev->msg_err & BCM2835_I2C_S_ERR) return -EREMOTEIO; -From 70d56c42092cd38ab02deec1f607f1d4c4079bb9 Mon Sep 17 00:00:00 2001 +From 7f1775aa0152f41ba17bfa0d776b7837cc138e20 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Thu, 18 Dec 2014 16:07:15 -0800 -Subject: [PATCH 034/201] mm: Remove the PFN busy warning +Subject: [PATCH 034/235] mm: Remove the PFN busy warning See commit dae803e165a11bc88ca8dbc07a11077caf97bbcb -- the warning is expected sometimes when using CMA. However, that commit still spams @@ -2170,7 +2170,7 @@ Signed-off-by: Eric Anholt 1 file changed, 2 deletions(-) diff --git a/mm/page_alloc.c b/mm/page_alloc.c -index d51c2087c498c63f3f515d2931e42b5110efb62f..fd094c36e26c712d7537b16aa547d3e8e1d4bf33 100644 +index 2de080003693cebfb037dbb5a6e2e262823149a5..e277ffcb04835b5e2b982355e309c2ecaf3a4dbc 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -7645,8 +7645,6 @@ int alloc_contig_range(unsigned long start, unsigned long end, @@ -2183,10 +2183,10 @@ index d51c2087c498c63f3f515d2931e42b5110efb62f..fd094c36e26c712d7537b16aa547d3e8 goto done; } -From d47099cc6511b448b6a389f335619c925ffec7d1 Mon Sep 17 00:00:00 2001 +From 3877c18520b3f2c629b68d68dacdfc8d5817be4f Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 23 Mar 2017 10:06:56 +0000 -Subject: [PATCH 035/201] ASoC: Add prompt for ICS43432 codec +Subject: [PATCH 035/235] 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 @@ -2211,10 +2211,10 @@ index c367d11079bc90feec2ad0fa748d7ffc3035faba..91d5b531b69b49db97f7febbc60d33a2 config SND_SOC_INNO_RK3036 tristate "Inno codec driver for RK3036 SoC" -From d01c920bd5578d11a04a09ba1a772d32aebbc824 Mon Sep 17 00:00:00 2001 +From 608b75c38ce7fb72398ca23254aac0f4327e7315 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 12 May 2013 12:24:19 +0100 -Subject: [PATCH 036/201] Main bcm2708/bcm2709 linux port +Subject: [PATCH 036/235] Main bcm2708/bcm2709 linux port MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -2402,10 +2402,10 @@ index cfb4b4496dd9f61362dea012176c146120fada07..d9c6c217c4d6a2408abe2665bf7f2700 MODULE_AUTHOR("Lubomir Rintel "); MODULE_DESCRIPTION("BCM2835 mailbox IPC driver"); -From 9ab2fcac834f0aae94d9266b5741b8ec16f7226e Mon Sep 17 00:00:00 2001 +From 6aedf36ce01682d4078010c70d02e067a23cfd2c Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 1 May 2013 19:46:17 +0100 -Subject: [PATCH 037/201] Add dwc_otg driver +Subject: [PATCH 037/235] Add dwc_otg driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -63702,10 +63702,10 @@ index 0000000000000000000000000000000000000000..cdc9963176e5a4a0d5250613b61e26c5 +test_main(); +0; -From 83d0db162af7cf072e14f65ef6bca9ce9db1ffdb Mon Sep 17 00:00:00 2001 +From 0b8d1914ae05a00e25c4bac1c230f704fadfcfe6 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 17 Jun 2015 17:06:34 +0100 -Subject: [PATCH 038/201] bcm2708 framebuffer driver +Subject: [PATCH 038/235] bcm2708 framebuffer driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -67164,10 +67164,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 bfb014341e3d1640eec981e14419b139b9352ecf Mon Sep 17 00:00:00 2001 +From e97af0ad22380e60ab4a0720b00357380e4dff98 Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Fri, 22 Nov 2013 14:22:53 +0100 -Subject: [PATCH 039/201] dmaengine: Add support for BCM2708 +Subject: [PATCH 039/235] dmaengine: Add support for BCM2708 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -67798,10 +67798,10 @@ index 0000000000000000000000000000000000000000..c5bfff2765be4606077e6c8af73040ec + +#endif /* _PLAT_BCM2708_DMA_H */ -From 81346c04c8aacb9c0c6baacb4d2a1d6738607f76 Mon Sep 17 00:00:00 2001 +From 5696e917df9a658974aff8e931bf50ca4a4b9923 Mon Sep 17 00:00:00 2001 From: gellert Date: Fri, 15 Aug 2014 16:35:06 +0100 -Subject: [PATCH 040/201] MMC: added alternative MMC driver +Subject: [PATCH 040/235] MMC: added alternative MMC driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -69681,10 +69681,10 @@ index 279b39008a33bb68745d9ea55ea5dd7ed522fd1c..49bdea5791a289251019a89419804dde unsigned int erase_size; /* erase size in sectors */ -From 8c6d308d7d0d54ccadc799b92d878f8444acd11b Mon Sep 17 00:00:00 2001 +From ace573b80b220862dc0fa44975e1b60b2c6ad11e Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 25 Mar 2015 17:49:47 +0000 -Subject: [PATCH 041/201] Adding bcm2835-sdhost driver, and an overlay to +Subject: [PATCH 041/235] Adding bcm2835-sdhost driver, and an overlay to enable it BCM2835 has two SD card interfaces. This driver uses the other one. @@ -72090,10 +72090,10 @@ index 0000000000000000000000000000000000000000..9c6f199a7830959f31012d86bc1f8b1a +MODULE_LICENSE("GPL v2"); +MODULE_AUTHOR("Phil Elwell"); -From a9311a4fe71c12bc49e4bc3eefc343f00712697e Mon Sep 17 00:00:00 2001 +From 049bef5b8805b199f6a810a4df8fbe639edadfb1 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 28 Oct 2016 15:36:43 +0100 -Subject: [PATCH 042/201] vc_mem: Add vc_mem driver for querying firmware +Subject: [PATCH 042/235] vc_mem: Add vc_mem driver for querying firmware memory addresses MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -72618,10 +72618,10 @@ index 0000000000000000000000000000000000000000..20a475377eb3078ea1ecaef2b24efc35 + +#endif /* _VC_MEM_H */ -From 88e3a68b24ac9fd54392cea9d36e0723fbc112cc Mon Sep 17 00:00:00 2001 +From c1d92f4ff16585e30b8984a5f39a2e944ff1e579 Mon Sep 17 00:00:00 2001 From: Tim Gover Date: Tue, 22 Jul 2014 15:41:04 +0100 -Subject: [PATCH 043/201] vcsm: VideoCore shared memory service for BCM2835 +Subject: [PATCH 043/235] vcsm: VideoCore shared memory service for BCM2835 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -77499,10 +77499,10 @@ index 0000000000000000000000000000000000000000..b75729d762f25aace133f7a008633b40 + +#endif /* __VMCS_SM_IOCTL_H__INCLUDED__ */ -From bb42462e0201a474a567bb7c61c9e56484465d57 Mon Sep 17 00:00:00 2001 +From 8aeab7274ecd496f9ae31eed0dde8731f419b9c2 Mon Sep 17 00:00:00 2001 From: Luke Wren Date: Fri, 21 Aug 2015 23:14:48 +0100 -Subject: [PATCH 044/201] Add /dev/gpiomem device for rootless user GPIO access +Subject: [PATCH 044/235] Add /dev/gpiomem device for rootless user GPIO access Signed-off-by: Luke Wren @@ -77810,10 +77810,10 @@ index 0000000000000000000000000000000000000000..f5e7f1ba8fb6f18dee77fad06a17480c +MODULE_DESCRIPTION("gpiomem driver for accessing GPIO from userspace"); +MODULE_AUTHOR("Luke Wren "); -From 9fdee10fc9d1f51522b63457f6df2d08d04beff4 Mon Sep 17 00:00:00 2001 +From fd8be3f718eb9c876ac448806a508cb209179a7b Mon Sep 17 00:00:00 2001 From: Luke Wren Date: Sat, 5 Sep 2015 01:14:45 +0100 -Subject: [PATCH 045/201] Add SMI driver +Subject: [PATCH 045/235] Add SMI driver Signed-off-by: Luke Wren --- @@ -79764,10 +79764,10 @@ index 0000000000000000000000000000000000000000..ee3a75edfc033eeb0d90a687ffb68b10 + +#endif /* BCM2835_SMI_H */ -From 843921cd0abe0ae194adc94e5d88abad280566b1 Mon Sep 17 00:00:00 2001 +From 80cbb5dd7f7c2fae78c3b68bc0863ae8b397e6d0 Mon Sep 17 00:00:00 2001 From: Martin Sperl Date: Tue, 26 Apr 2016 14:59:21 +0000 -Subject: [PATCH 046/201] MISC: bcm2835: smi: use clock manager and fix reload +Subject: [PATCH 046/235] MISC: bcm2835: smi: use clock manager and fix reload issues Use clock manager instead of self-made clockmanager. @@ -79936,10 +79936,10 @@ index 63a4ea08b9930a3a31a985f0a1d969b488ed49ec..1261540703127d1d63b9f3c87042c6e5 return 0; } -From 3cff724912c5a622d0e444089b4eb2fb8597e061 Mon Sep 17 00:00:00 2001 +From a767ff5a98b975f47d3cff60bb857c5c10477fce Mon Sep 17 00:00:00 2001 From: Luke Wren Date: Sat, 5 Sep 2015 01:16:10 +0100 -Subject: [PATCH 047/201] Add SMI NAND driver +Subject: [PATCH 047/235] Add SMI NAND driver Signed-off-by: Luke Wren --- @@ -80304,10 +80304,10 @@ index 0000000000000000000000000000000000000000..c4826ea1c2bae555ce780e61f1076ddd + ("Driver for NAND chips using Broadcom Secondary Memory Interface"); +MODULE_AUTHOR("Luke Wren "); -From 9cc8682c6ea521697547539d4f0eda6b7036493c Mon Sep 17 00:00:00 2001 +From 1b82da9d7c93df304f7cc31a244435b00216f5f8 Mon Sep 17 00:00:00 2001 From: Aron Szabo Date: Sat, 16 Jun 2012 12:15:55 +0200 -Subject: [PATCH 048/201] lirc: added support for RaspberryPi GPIO +Subject: [PATCH 048/235] 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 @@ -81167,10 +81167,10 @@ index 0000000000000000000000000000000000000000..fb69624ccef00ddbdccf8256d6baf1b1 + +#endif -From 0b49632fca26af6d22ede4aadd77ac2917bafe97 Mon Sep 17 00:00:00 2001 +From 3b98eabb2d406b04bcdb79ac2bdbc25c4b1c0751 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 3 Jul 2013 00:49:20 +0100 -Subject: [PATCH 049/201] Add cpufreq driver +Subject: [PATCH 049/235] Add cpufreq driver Signed-off-by: popcornmix @@ -81434,10 +81434,10 @@ index 0000000000000000000000000000000000000000..99345969b0e4d651fd9033d67de2febb +module_init(bcm2835_cpufreq_module_init); +module_exit(bcm2835_cpufreq_module_exit); -From 2c3706c50ace661bb5cfda64528213ab8dcdc0c7 Mon Sep 17 00:00:00 2001 +From 16bfb1fec2499a266df6f60e6db3fbb69fcb4096 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 17 Jun 2015 15:44:08 +0100 -Subject: [PATCH 050/201] Add Chris Boot's i2c driver +Subject: [PATCH 050/235] Add Chris Boot's i2c driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -82102,10 +82102,10 @@ index 0000000000000000000000000000000000000000..962f2e5c7455d91bf32925d785f5f16b +MODULE_LICENSE("GPL v2"); +MODULE_ALIAS("platform:" DRV_NAME); -From 09fc2eafc792b97cbc5d484a6d75145dce655ee2 Mon Sep 17 00:00:00 2001 +From a3ddd0fadee692707180cc6ad5ba4aa1ac07e8d9 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 051/201] char: broadcom: Add vcio module +Subject: [PATCH 051/235] char: broadcom: Add vcio module MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -82330,10 +82330,10 @@ index 0000000000000000000000000000000000000000..c19bc2075c77879563ef5e59038b5a14 +MODULE_DESCRIPTION("Mailbox userspace access"); +MODULE_LICENSE("GPL"); -From a8e4611ec9bfeb2b09c234c168cd2add721fe4c0 Mon Sep 17 00:00:00 2001 +From 4d16fa8230facff8d84c683beaa279708191620d 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 052/201] firmware: bcm2835: Support ARCH_BCM270x +Subject: [PATCH 052/235] firmware: bcm2835: Support ARCH_BCM270x MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -82416,10 +82416,10 @@ index dd506cd3a5b874f9e1acd07efb8cd151bb6145d1..3f070bd38a91511c986e3fb114b15bd4 MODULE_AUTHOR("Eric Anholt "); MODULE_DESCRIPTION("Raspberry Pi firmware driver"); -From f19de1ec3b4eb3d5736f17cb4fdd3960eb47b25c Mon Sep 17 00:00:00 2001 +From c0f441069fb6d1a5a5e0b2468d94ace9331c9569 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 11 May 2015 09:00:42 +0100 -Subject: [PATCH 053/201] scripts: Add mkknlimg and knlinfo scripts from tools +Subject: [PATCH 053/235] scripts: Add mkknlimg and knlinfo scripts from tools repo The Raspberry Pi firmware looks for a trailer on the kernel image to @@ -82946,10 +82946,10 @@ index 0000000000000000000000000000000000000000..84be2593ec1de8f97b0167ff06b3e05d + return $trailer; +} -From 77f7f50decefc1ecd1b321562730334dab66b2d7 Mon Sep 17 00:00:00 2001 +From 40540609d3e02585422a4fe536f81a7f918f3613 Mon Sep 17 00:00:00 2001 From: notro Date: Wed, 9 Jul 2014 14:46:08 +0200 -Subject: [PATCH 054/201] BCM2708: Add core Device Tree support +Subject: [PATCH 054/235] BCM2708: Add core Device Tree support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -83147,7 +83147,6 @@ common elements. Signed-off-by: Phil Elwell --- arch/arm/Makefile | 2 + - arch/arm/boot/.gitignore | 2 +- arch/arm/boot/dts/Makefile | 20 + arch/arm/boot/dts/bcm2708-rpi-0-w.dts | 165 ++ arch/arm/boot/dts/bcm2708-rpi-b-plus.dts | 122 ++ @@ -83285,7 +83284,7 @@ Signed-off-by: Phil Elwell arch/arm/boot/dts/overlays/wittypi-overlay.dts | 44 + scripts/Makefile.dtbinst | 8 +- scripts/Makefile.lib | 11 + - 139 files changed, 11113 insertions(+), 3 deletions(-) + 138 files changed, 11112 insertions(+), 2 deletions(-) create mode 100644 arch/arm/boot/dts/bcm2708-rpi-0-w.dts create mode 100644 arch/arm/boot/dts/bcm2708-rpi-b-plus.dts create mode 100644 arch/arm/boot/dts/bcm2708-rpi-b.dts @@ -83434,16 +83433,6 @@ index 36ae4454554ce1a11cc65848c60569bf8b3e0abe..be0fd4338da4502cff1e3224c71db685 PHONY += dtbs dtbs_install -diff --git a/arch/arm/boot/.gitignore b/arch/arm/boot/.gitignore -index 3c79f85975aaa26c7c2e353fefc54d71d89bc5bf..eaaeb17e5986e5f7178b2851169444ac7e45be8d 100644 ---- a/arch/arm/boot/.gitignore -+++ b/arch/arm/boot/.gitignore -@@ -3,4 +3,4 @@ zImage - xipImage - bootpImage - uImage --*.dtb -+*.dtb* diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index eff87a3445662c767bf6f4b24a94620148ab11e3..d85b3a4d051b45b6c60c137d725587bf964e4165 100644 --- a/arch/arm/boot/dts/Makefile @@ -95392,7 +95381,7 @@ index c8ba6e7f9868e8d048f3595f2ed7ed5a7674c8be..e1190ddfe462df546977c1389e2af001 .PHONY: $(PHONY) diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib -index 04b5633df1cfafa316f9086c4bf98a9ecf9d0939..d523d1e14220a369c4c766ca3a01208ec1abefda 100644 +index 0b46136a91a80b51901f68bca1587b35a6f5f962..f7b614331bc8e9331d33a05957549849a98ec086 100644 --- a/scripts/Makefile.lib +++ b/scripts/Makefile.lib @@ -316,6 +316,17 @@ cmd_dtc = mkdir -p $(dir ${dtc-tmp}) ; \ @@ -95414,10 +95403,10 @@ index 04b5633df1cfafa316f9086c4bf98a9ecf9d0939..d523d1e14220a369c4c766ca3a01208e # Bzip2 -From 6083ccfc6c46f4e2fe5340f9c335a5b99b532c07 Mon Sep 17 00:00:00 2001 +From 218de421ed08b0ea695ea2f30a22c6e348e5766c Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 6 Feb 2015 13:50:57 +0000 -Subject: [PATCH 055/201] BCM270x_DT: Add pwr_led, and the required "input" +Subject: [PATCH 055/235] BCM270x_DT: Add pwr_led, and the required "input" trigger The "input" trigger makes the associated GPIO an input. This is to support @@ -95592,10 +95581,10 @@ index bf6db4fe895bcd67e04ee65e8f76ea104af6299f..8741dca6dba65e2d72fbdbc1702139c2 /* set_brightness_work / blink_timer flags, atomic, private. */ unsigned long work_flags; -From 28fe46f6859d440d44323192a4f5c09b57b76e88 Mon Sep 17 00:00:00 2001 +From 372639184afb1635a2a92f5dc363b58452b9b62d Mon Sep 17 00:00:00 2001 From: Siarhei Siamashka Date: Mon, 17 Jun 2013 13:32:11 +0300 -Subject: [PATCH 056/201] fbdev: add FBIOCOPYAREA ioctl +Subject: [PATCH 056/235] fbdev: add FBIOCOPYAREA ioctl Based on the patch authored by Ali Gholami Rudi at https://lkml.org/lkml/2009/7/13/153 @@ -95863,10 +95852,10 @@ index 6cd9b198b7c64eb94821f2e3f2c5201e6c6d25eb..f36c92c2da7487437c33f7a4e2c6e09e __u32 dx; /* screen-relative */ __u32 dy; -From 4fca9e95594935ddd4f44ee00be80fc7e5e76ef7 Mon Sep 17 00:00:00 2001 +From 9dddc398de1960ac9febce1cc821b3adc17bdbed Mon Sep 17 00:00:00 2001 From: Harm Hanemaaijer Date: Thu, 20 Jun 2013 20:21:39 +0200 -Subject: [PATCH 057/201] Speed up console framebuffer imageblit function +Subject: [PATCH 057/235] 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 @@ -96075,10 +96064,10 @@ index a2bb276a8b2463eee98eb237c4647bc00cd93601..436494fba15abecb400ef28688466faf start_index, pitch_index); } else -From 08c58d5cc44f9c2e5be98bab47462d5e18d341dc Mon Sep 17 00:00:00 2001 +From a1fd4c637f4b39c90725f3668888a8be68e12d74 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 8 May 2013 11:46:50 +0100 -Subject: [PATCH 058/201] enabling the realtime clock 1-wire chip DS1307 and +Subject: [PATCH 058/235] 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 @@ -96328,10 +96317,10 @@ index 5b2972946dda5f9ad415f1eaeaab67743a5cc0f0..b3558b7c9efb2484b40e31312aee197b u8, w1_slave_found_callback); }; -From 44a5520215fa3a30003def45a5cb570d5006c0f5 Mon Sep 17 00:00:00 2001 +From 11331d168d693bfa688498283de253ab2da49b6c Mon Sep 17 00:00:00 2001 From: Gordon Hollingworth Date: Tue, 12 May 2015 14:47:56 +0100 -Subject: [PATCH 059/201] rpi-ft5406: Add touchscreen driver for pi LCD display +Subject: [PATCH 059/235] 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 @@ -96676,10 +96665,10 @@ index 0000000000000000000000000000000000000000..9d7d05482355d168c5c0c42508cd9789 +MODULE_DESCRIPTION("Touchscreen driver for memory based FT5406"); +MODULE_LICENSE("GPL"); -From a61af86414ae71b36f5446f4bb68c68528a225db Mon Sep 17 00:00:00 2001 +From fdd0ed0a727a2fecc4939df49253c44e7e6cf213 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 28 Nov 2016 16:50:04 +0000 -Subject: [PATCH 060/201] Improve __copy_to_user and __copy_from_user +Subject: [PATCH 060/235] Improve __copy_to_user and __copy_from_user performance Provide a __copy_from_user that uses memcpy. On BCM2708, use @@ -98259,10 +98248,10 @@ index 971bc298f63eeeed418131b7b7200ac91b0d73f1..78e9f6e8c6fdebdb754cb703095d1726 bool "Broadcom BCM63xx DSL SoC" depends on ARCH_MULTI_V7 -From 5c7376c9bef9a2e162b0b7b74b3bafe145481a03 Mon Sep 17 00:00:00 2001 +From 7c3de36cc3e024bf8587c468d1007af6b179bbd9 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 25 Jun 2015 12:16:11 +0100 -Subject: [PATCH 061/201] gpio-poweroff: Allow it to work on Raspberry Pi +Subject: [PATCH 061/235] 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 @@ -98297,10 +98286,10 @@ index be3d81ff51cc3f510d85e4eed7a52960e51e7bc1..a030ae9fb1fca325061c093696e82186 "%s: pm_power_off function already registered", __func__); -From f49abedc49c2d7a682d72a38d18cd9a79c2dfce1 Mon Sep 17 00:00:00 2001 +From 2a2e853bc47bbf1cc94277bec3b0c06cb0454362 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 14 Jul 2015 14:32:47 +0100 -Subject: [PATCH 062/201] mfd: Add Raspberry Pi Sense HAT core driver +Subject: [PATCH 062/235] mfd: Add Raspberry Pi Sense HAT core driver --- drivers/input/joystick/Kconfig | 8 + @@ -99165,10 +99154,10 @@ index 0000000000000000000000000000000000000000..56196dc2af10e464a1e3f98b028dca1c + +#endif -From 73828fa4aa7d900e7f290f8ba1613400ee8e5781 Mon Sep 17 00:00:00 2001 +From e43e3d49d275b37eea7320cc552e0203959577e5 Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Fri, 22 Nov 2013 19:19:08 +0100 -Subject: [PATCH 063/201] ASoC: Add support for HifiBerry DAC +Subject: [PATCH 063/235] ASoC: Add support for HifiBerry DAC This adds a machine driver for the HifiBerry DAC. It is a sound card that can @@ -99343,10 +99332,10 @@ index 0000000000000000000000000000000000000000..ee9f133953544629282631e5ef3f73fe +MODULE_DESCRIPTION("ASoC Driver for HifiBerry DAC"); +MODULE_LICENSE("GPL v2"); -From a37d8f21cf2adfbfb17b1d1ff4a702b0fe3c569b Mon Sep 17 00:00:00 2001 +From 85f55c60f761d38e2d06580ae66a5f5c20479f6c Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Mon, 25 Jan 2016 15:48:59 +0000 -Subject: [PATCH 064/201] ASoC: Add support for Rpi-DAC +Subject: [PATCH 064/235] ASoC: Add support for Rpi-DAC --- sound/soc/bcm/Kconfig | 7 +++ @@ -99630,10 +99619,10 @@ index 0000000000000000000000000000000000000000..afe1b419582aa40c4b2729d242bb13cd +MODULE_AUTHOR("Florian Meier "); +MODULE_LICENSE("GPL v2"); -From 2dd94c9757d562e5e5e92bbedc2c536715b2a090 Mon Sep 17 00:00:00 2001 +From 882165f13ea6e4d39eb2a26d62ce64120f1f7ec5 Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Wed, 15 Jan 2014 21:41:23 +0100 -Subject: [PATCH 065/201] ASoC: wm8804: Implement MCLK configuration options, +Subject: [PATCH 065/235] 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 @@ -99682,10 +99671,10 @@ index fc69b87443d80489382b97332de6d5ad12a58ec8..d8fdce81b297dcf02e144bdead0c6193 .component_driver = { .dapm_widgets = wm8804_dapm_widgets, -From 8d266bd0d2ae39d6819f064424d9672b73140e93 Mon Sep 17 00:00:00 2001 +From f7b20fb2cdf94b682c92523b50c23d1c2c8a44a2 Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Wed, 15 Jan 2014 21:42:08 +0100 -Subject: [PATCH 066/201] ASoC: BCM:Add support for HiFiBerry Digi. Driver is +Subject: [PATCH 066/235] ASoC: BCM:Add support for HiFiBerry Digi. Driver is based on the patched WM8804 driver. Signed-off-by: Daniel Matuschek @@ -100029,10 +100018,10 @@ index 0000000000000000000000000000000000000000..7620dd02de40b6d644ff038b445d375d +MODULE_DESCRIPTION("ASoC Driver for HifiBerry Digi"); +MODULE_LICENSE("GPL v2"); -From 71a5adf7d16ee42d871f3dd3ed19b46d59228fe5 Mon Sep 17 00:00:00 2001 +From 994d0b37b0e1870c40d4477959f592fc5b887a7f Mon Sep 17 00:00:00 2001 From: Gordon Garrity Date: Sat, 8 Mar 2014 16:56:57 +0000 -Subject: [PATCH 067/201] Add IQaudIO Sound Card support for Raspberry Pi +Subject: [PATCH 067/235] Add IQaudIO Sound Card support for Raspberry Pi Set a limit of 0dB on Digital Volume Control @@ -100367,10 +100356,10 @@ index 0000000000000000000000000000000000000000..1ee4097c846376666775272ed692ca33 +MODULE_DESCRIPTION("ASoC Driver for IQAudio DAC"); +MODULE_LICENSE("GPL v2"); -From 5c97aa9f802672182b386451525422a21cf09723 Mon Sep 17 00:00:00 2001 +From f14ee0702e158936f7b1a1ce17165e1733d1c0d6 Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Mon, 4 Aug 2014 10:06:56 +0200 -Subject: [PATCH 068/201] Added support for HiFiBerry DAC+ +Subject: [PATCH 068/235] 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. @@ -101005,10 +100994,10 @@ index 68feae262476492ae3a0b30855dbb09e96fa187e..f7b0977017ed5a6c02eafa0147d49d66 dev_err(dev, "No LRCLK?\n"); return -EINVAL; -From 2dfa22a719286eebced75b397d400fc5d4299da6 Mon Sep 17 00:00:00 2001 +From 8b67b4b1b7f83fecc7068dca515fc5ebfc049701 Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Mon, 4 Aug 2014 11:09:58 +0200 -Subject: [PATCH 069/201] Added driver for HiFiBerry Amp amplifier add-on board +Subject: [PATCH 069/235] 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. @@ -101843,10 +101832,10 @@ index 0000000000000000000000000000000000000000..8f019e04898754d2f87e9630137be9e8 + +#endif /* _TAS5713_H */ -From bf841bf59d5c6e71f5a5cc17c3f0fe805d629cbc Mon Sep 17 00:00:00 2001 +From 47008307fd2891368ec586b1fd5f5ff27e37fbe1 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Wed, 25 Mar 2015 09:26:17 +0100 -Subject: [PATCH 070/201] Add driver for rpi-proto +Subject: [PATCH 070/235] 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 @@ -102061,10 +102050,10 @@ index 0000000000000000000000000000000000000000..fadbfade100228aaafabb0d3bdf35c01 +MODULE_DESCRIPTION("ASoC Driver for Raspberry Pi connected to PROTO board (WM8731)"); +MODULE_LICENSE("GPL"); -From 4806283a8513f5c2dcea3628766759324ed01ea6 Mon Sep 17 00:00:00 2001 +From 8ba93d98ed029fde482f1c689a10bbc7a1197fb8 Mon Sep 17 00:00:00 2001 From: Jan Grulich Date: Mon, 24 Aug 2015 16:03:47 +0100 -Subject: [PATCH 071/201] RaspiDAC3 support +Subject: [PATCH 071/235] RaspiDAC3 support Signed-off-by: Jan Grulich @@ -102307,10 +102296,10 @@ index 0000000000000000000000000000000000000000..ad2b5b89bc8213dc2e277306ef50d6e3 +MODULE_DESCRIPTION("ASoC Driver for RaspiDAC Rev.3x"); +MODULE_LICENSE("GPL v2"); -From 8f4a3638c3f9a55f5e068a8de27851a86e6a61f6 Mon Sep 17 00:00:00 2001 +From 1d67ce10c6f376c97ce7f39dadfb7f5470f21cbd Mon Sep 17 00:00:00 2001 From: Aaron Shaw Date: Thu, 7 Apr 2016 21:26:21 +0100 -Subject: [PATCH 072/201] Add Support for JustBoom Audio boards +Subject: [PATCH 072/235] Add Support for JustBoom Audio boards justboom-dac: Adjust for ALSA API change @@ -102766,10 +102755,10 @@ index 0000000000000000000000000000000000000000..909cf8928f2f4313982316f9c5b8a709 +MODULE_DESCRIPTION("ASoC Driver for JustBoom PI Digi HAT Sound Card"); +MODULE_LICENSE("GPL v2"); -From 0d14a00822d7c833ea25e35c7dbb3a2549aa456d Mon Sep 17 00:00:00 2001 +From 333b307815c84a31da508877b176c83f7561e618 Mon Sep 17 00:00:00 2001 From: Andrey Grodzovsky Date: Tue, 3 May 2016 22:10:59 -0400 -Subject: [PATCH 073/201] ARM: adau1977-adc: Add basic machine driver for +Subject: [PATCH 073/235] ARM: adau1977-adc: Add basic machine driver for adau1977 codec driver. This commit adds basic support for the codec usage including: Device tree overlay, @@ -102951,10 +102940,10 @@ index 0000000000000000000000000000000000000000..f3d7e5db7bb912e1d7ca6f8e8d42df5f +MODULE_DESCRIPTION("ASoC Driver for ADAU1977 ADC"); +MODULE_LICENSE("GPL v2"); -From 4aede67713f17375f69ef485fc38568f04da4786 Mon Sep 17 00:00:00 2001 +From eda7624f18744c3e10a09cdb358c5730461474da Mon Sep 17 00:00:00 2001 From: Matt Flax Date: Mon, 16 May 2016 21:36:31 +1000 -Subject: [PATCH 074/201] New AudioInjector.net Pi soundcard with low jitter +Subject: [PATCH 074/235] 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. @@ -103205,10 +103194,10 @@ index 0000000000000000000000000000000000000000..491906bbf446826e55dd843f28e4860f +MODULE_ALIAS("platform:audioinjector-pi-soundcard"); + -From eb0d6a4cbd4ba49c7fc41f72384416842ebedb06 Mon Sep 17 00:00:00 2001 +From 8f89ba37b996de3aaf97c772a7e1b83b4fd370e9 Mon Sep 17 00:00:00 2001 From: DigitalDreamtime Date: Thu, 30 Jun 2016 18:38:42 +0100 -Subject: [PATCH 075/201] Add IQAudIO Digi WM8804 board support +Subject: [PATCH 075/235] Add IQAudIO Digi WM8804 board support Support IQAudIO Digi board with iqaudio_digi machine driver and iqaudio-digi-wm8804-audio overlay. @@ -103508,10 +103497,10 @@ index 0000000000000000000000000000000000000000..33aa2be8a43a12a12cfb5d844dd9732c +MODULE_DESCRIPTION("ASoC Driver for IQAudIO WM8804 Digi"); +MODULE_LICENSE("GPL v2"); -From 832ee6ce6d016338f2ef4b893f5abdd50f4cf107 Mon Sep 17 00:00:00 2001 +From c457fa78082019ac5dc82ba7b844c44352509392 Mon Sep 17 00:00:00 2001 From: escalator2015 Date: Tue, 24 May 2016 16:20:09 +0100 -Subject: [PATCH 076/201] New driver for RRA DigiDAC1 soundcard using WM8741 + +Subject: [PATCH 076/235] New driver for RRA DigiDAC1 soundcard using WM8741 + WM8804 --- @@ -103984,10 +103973,10 @@ index 0000000000000000000000000000000000000000..f200688bb4ae32b90a0ced555aed94b0 +MODULE_DESCRIPTION("ASoC Driver for RRA DigiDAC1"); +MODULE_LICENSE("GPL v2"); -From 21253b2ff4668f7fd77fb038e2c9d1b88e977716 Mon Sep 17 00:00:00 2001 +From 406a972edbcc0b1a1cbe2efb5573784cad3475e2 Mon Sep 17 00:00:00 2001 From: DigitalDreamtime Date: Sat, 2 Jul 2016 16:26:19 +0100 -Subject: [PATCH 077/201] Add support for Dion Audio LOCO DAC-AMP HAT +Subject: [PATCH 077/235] Add support for Dion Audio LOCO DAC-AMP HAT Using dedicated machine driver and pcm5102a codec driver. @@ -104160,10 +104149,10 @@ index 0000000000000000000000000000000000000000..65e03741d349a2dc5bd91f69855ea952 +MODULE_DESCRIPTION("ASoC Driver for DionAudio LOCO"); +MODULE_LICENSE("GPL v2"); -From 5825a5350a42b057e95d6ce7f735ffa45c79c87a Mon Sep 17 00:00:00 2001 +From e4bf7426a15f0022411cd6bebde1716de9d2e70c Mon Sep 17 00:00:00 2001 From: Clive Messer Date: Mon, 19 Sep 2016 14:01:04 +0100 -Subject: [PATCH 078/201] Allo Piano DAC boards: Initial 2 channel (stereo) +Subject: [PATCH 078/235] 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, @@ -104370,10 +104359,10 @@ index 0000000000000000000000000000000000000000..eaf50fb6dbca1970ae1c6f8662088b0f +MODULE_DESCRIPTION("ALSA ASoC Machine Driver for Allo Piano DAC"); +MODULE_LICENSE("GPL v2"); -From b96f8bd4daf402dfb2229f921a3bd393228d19a4 Mon Sep 17 00:00:00 2001 +From 5c455c835911260178a62692da2291660581aa28 Mon Sep 17 00:00:00 2001 From: Raashid Muhammed Date: Mon, 27 Mar 2017 12:35:00 +0530 -Subject: [PATCH 079/201] Add support for Allo Piano DAC 2.1 plus add-on board +Subject: [PATCH 079/235] 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. @@ -105461,10 +105450,10 @@ index 0000000000000000000000000000000000000000..1800f5e4d414e2d83a9487a89a2800a3 +MODULE_DESCRIPTION("ALSA ASoC Machine Driver for Allo Piano DAC Plus"); +MODULE_LICENSE("GPL v2"); -From f2bc536db1fb37c95c546b4e0bb1f31f53acf964 Mon Sep 17 00:00:00 2001 +From c0d3ef32d8bb81f2728dd39b531b24e23d50fa5b Mon Sep 17 00:00:00 2001 From: BabuSubashChandar Date: Tue, 28 Mar 2017 20:04:42 +0530 -Subject: [PATCH 080/201] Add support for Allo Boss DAC add-on board for +Subject: [PATCH 080/235] Add support for Allo Boss DAC add-on board for Raspberry Pi. (#1924) Signed-off-by: Baswaraj K @@ -106167,10 +106156,10 @@ index 0000000000000000000000000000000000000000..203ab76c7045b081578e23bda1099dd1 +MODULE_DESCRIPTION("ALSA ASoC Machine Driver for Allo Boss DAC"); +MODULE_LICENSE("GPL v2"); -From 0386ef65c56f46a4a17e5704f61c9cebc31f2510 Mon Sep 17 00:00:00 2001 +From f7deb5cf1bf8dc4a9bdfc7167c1f0f637c4203a0 Mon Sep 17 00:00:00 2001 From: gtrainavicius Date: Sun, 23 Oct 2016 12:06:53 +0300 -Subject: [PATCH 081/201] Support for Blokas Labs pisound board +Subject: [PATCH 081/235] Support for Blokas Labs pisound board Pisound dynamic overlay (#1760) @@ -107369,10 +107358,10 @@ index 0000000000000000000000000000000000000000..06ff1e53dc9d860946965b6303577762 +MODULE_DESCRIPTION("ASoC Driver for pisound, http://blokas.io/pisound"); +MODULE_LICENSE("GPL v2"); -From 9ccd97c57a4b4672888e0fd45f7af20574d89594 Mon Sep 17 00:00:00 2001 +From 15cb44d272aaaea8f0f5ce6fe1542930ad8ea51f Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 22 Jan 2017 12:49:37 +0100 -Subject: [PATCH 082/201] ASoC: Add driver for Cirrus Logic Audio Card +Subject: [PATCH 082/235] 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 @@ -108437,10 +108426,10 @@ index 0000000000000000000000000000000000000000..ac8651ddff7bd3701dffe22c7fb88352 +MODULE_DESCRIPTION("ASoC driver for Cirrus Logic Audio Card"); +MODULE_LICENSE("GPL"); -From dd7f58d21cd5f1773492dc4af7380c6178f290b0 Mon Sep 17 00:00:00 2001 +From d45f047718b4d6d7b1f4383e34a593ba9a113af3 Mon Sep 17 00:00:00 2001 From: Miquel Date: Fri, 24 Feb 2017 20:51:06 +0100 -Subject: [PATCH 083/201] sound: Support for Dion Audio LOCO-V2 DAC-AMP HAT +Subject: [PATCH 083/235] sound: Support for Dion Audio LOCO-V2 DAC-AMP HAT Signed-off-by: Miquel Blauw --- @@ -108635,10 +108624,10 @@ index 0000000000000000000000000000000000000000..a009c49477972a9832175d86f201b035 +MODULE_DESCRIPTION("ASoC Driver for DionAudio LOCO-V2"); +MODULE_LICENSE("GPL v2"); -From 26bc4d704fbd8993c8b4b4307d2534a8dad45976 Mon Sep 17 00:00:00 2001 +From 317671cec838aad568f14d32b68a1f7537b52f08 Mon Sep 17 00:00:00 2001 From: Fe-Pi Date: Wed, 1 Mar 2017 04:42:43 -0700 -Subject: [PATCH 084/201] Add support for Fe-Pi audio sound card. (#1867) +Subject: [PATCH 084/235] 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. @@ -108852,10 +108841,10 @@ index 0000000000000000000000000000000000000000..015b56fd73cc36be5b5eecd17548fd03 +MODULE_DESCRIPTION("ASoC Driver for Fe-Pi Audio"); +MODULE_LICENSE("GPL v2"); -From fae32964c6caa28cd73bb837a7d3bb433829fd0b Mon Sep 17 00:00:00 2001 +From 19c43d79648a9583cf64a7f743bdafbfa989b213 Mon Sep 17 00:00:00 2001 From: Matt Flax Date: Wed, 8 Mar 2017 20:04:13 +1100 -Subject: [PATCH 085/201] Add support for the AudioInjector.net Octo sound card +Subject: [PATCH 085/235] Add support for the AudioInjector.net Octo sound card AudioInjector Octo: sample rates, regulators, reset @@ -109264,10 +109253,10 @@ index 0000000000000000000000000000000000000000..5e79f4eff93a21ed3495c77a90f73525 +MODULE_LICENSE("GPL v2"); +MODULE_ALIAS("platform:audioinjector-octo-soundcard"); -From 6de76c4af630d9dd2baadb4c98e0c029b76bfd17 Mon Sep 17 00:00:00 2001 +From 8d0160c8b6551b0f092de0bfb885306141b308e5 Mon Sep 17 00:00:00 2001 From: Peter Malkin Date: Mon, 27 Mar 2017 16:38:21 -0700 -Subject: [PATCH 086/201] Driver support for Google voiceHAT soundcard. +Subject: [PATCH 086/235] Driver support for Google voiceHAT soundcard. --- sound/soc/bcm/Kconfig | 7 ++ @@ -109658,10 +109647,10 @@ index 0000000000000000000000000000000000000000..225854b8e5298b3c3018f59a49404354 +MODULE_DESCRIPTION("ASoC Driver for Google voiceHAT SoundCard"); +MODULE_LICENSE("GPL v2"); -From acee6c0272988ea5b9c4d3886ab951d82da0d4a5 Mon Sep 17 00:00:00 2001 +From b45ed4c82bc4ddace951a5a9dbc298c0e49ec7e5 Mon Sep 17 00:00:00 2001 From: sandeepal Date: Fri, 2 Jun 2017 18:59:46 +0530 -Subject: [PATCH 087/201] Allo Digione Driver (#2048) +Subject: [PATCH 087/235] Allo Digione Driver (#2048) Driver for the Allo Digione soundcard @@ -109984,10 +109973,10 @@ index 0000000000000000000000000000000000000000..9387b055875fdf92a13dc4a9d2727f95 +MODULE_DESCRIPTION("ASoC Driver for Allo DigiOne"); +MODULE_LICENSE("GPL v2"); -From 5dd049eb26f293f80cd10cfcd8221f5eaef2f1cf Mon Sep 17 00:00:00 2001 +From 1bd92192fb91ae7b5e2c1957744e60be2993e1ac Mon Sep 17 00:00:00 2001 From: P33M Date: Wed, 21 Oct 2015 14:55:21 +0100 -Subject: [PATCH 088/201] rpi_display: add backlight driver and overlay +Subject: [PATCH 088/235] 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 @@ -110156,10 +110145,10 @@ index 0000000000000000000000000000000000000000..14a0d9b037395497c1fdae2961feccd5 +MODULE_DESCRIPTION("Raspberry Pi mailbox based Backlight Driver"); +MODULE_LICENSE("GPL"); -From 57f8491f1dc5698da9a8eaedca787e1492d859ab Mon Sep 17 00:00:00 2001 +From 4d1657a88dd705642ad82210dc4ee81371b0da9a Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 23 Feb 2016 19:56:04 +0000 -Subject: [PATCH 089/201] bcm2835-virtgpio: Virtual GPIO driver +Subject: [PATCH 089/235] bcm2835-virtgpio: Virtual GPIO driver Add a virtual GPIO driver that uses the firmware mailbox interface to request that the VPU toggles LEDs. @@ -110420,10 +110409,10 @@ index 0000000000000000000000000000000000000000..c3725546def9d4a6264fbb1f6b9814d0 +MODULE_DESCRIPTION("brcmvirt GPIO driver"); +MODULE_ALIAS("platform:brcmvirt-gpio"); -From 32eabba2b09847f1781f0a7ed0b86e3e958b4fe2 Mon Sep 17 00:00:00 2001 +From cceec1232256bf6ff92ae1b5e7f8407152c33057 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 20 Feb 2017 17:01:21 +0000 -Subject: [PATCH 090/201] bcm2835-gpio-exp: Driver for GPIO expander via +Subject: [PATCH 090/235] bcm2835-gpio-exp: Driver for GPIO expander via mailbox service Pi3 and Compute Module 3 have a GPIO expander that the @@ -110732,10 +110721,10 @@ index 0000000000000000000000000000000000000000..d68adafaee4ad406f45f4ff0d6b7c1ad +MODULE_DESCRIPTION("brcm-exp GPIO driver"); +MODULE_ALIAS("platform:brcmexp-gpio"); -From 7bddac2fb5e08383a4ca4d290a0d39d0fc2c2622 Mon Sep 17 00:00:00 2001 +From 9f935a902ea796f678bcefde0d3393e832efdfd8 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 23 Feb 2016 17:26:48 +0000 -Subject: [PATCH 091/201] amba_pl011: Don't use DT aliases for numbering +Subject: [PATCH 091/235] 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 @@ -110764,10 +110753,10 @@ index 111e6a95077978c2c30bfe2a2de4a0d095e8d76e..584471add0962c0e26eb814fc0ef43ee uap->old_cr = 0; uap->port.dev = dev; -From 83aaa369ae050bf58fa63fbeb1df51cfd234fe43 Mon Sep 17 00:00:00 2001 +From 0177dae93db95006a2e232886aecf9ac33dc2d6e Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 1 Mar 2017 16:07:39 +0000 -Subject: [PATCH 092/201] amba_pl011: Round input clock up +Subject: [PATCH 092/235] 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 @@ -110853,10 +110842,10 @@ index 584471add0962c0e26eb814fc0ef43eea99b2d29..bfbc845d7be9ef804468d0a82da18d9b /* unregisters the driver also if no more ports are left */ static void pl011_unregister_port(struct uart_amba_port *uap) -From 765600d5387d1864fd9c0fdd52fa982503a547ca Mon Sep 17 00:00:00 2001 +From 4d966002f8987fed4402b24ac20c6ad29265d821 Mon Sep 17 00:00:00 2001 From: Pantelis Antoniou Date: Wed, 3 Dec 2014 13:23:28 +0200 -Subject: [PATCH 093/201] OF: DT-Overlay configfs interface +Subject: [PATCH 093/235] 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. @@ -111289,10 +111278,10 @@ index 0000000000000000000000000000000000000000..0037e6868a6cda8706c88194c6a4454b +} +late_initcall(of_cfs_init); -From 1f21e752ab29bcfe93c0ab8a4ecd284bc48dbff6 Mon Sep 17 00:00:00 2001 +From 6fbce6a7b5fed95a8bc1dc8dd0484bf77331520c Mon Sep 17 00:00:00 2001 From: Cheong2K Date: Fri, 26 Feb 2016 18:20:10 +0800 -Subject: [PATCH 094/201] brcm: adds support for BCM43341 wifi +Subject: [PATCH 094/235] brcm: adds support for BCM43341 wifi brcmfmac: Disable power management @@ -111424,10 +111413,10 @@ index b3fa8ae804650f7ea838ff59ca84dfb6ca24da90..c1e86df297edf2fa7f641e36ccbfc733 BRCMF_FW_NVRAM_ENTRY(BRCM_CC_43362_CHIP_ID, 0xFFFFFFFE, 43362), BRCMF_FW_NVRAM_ENTRY(BRCM_CC_4339_CHIP_ID, 0xFFFFFFFF, 4339), -From 80d869dc18127aef8b73d817d8af4aa70c02b92d Mon Sep 17 00:00:00 2001 +From 2f9a53ff2542654b34e91c4ac6e670be7c3d7b27 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 17 Feb 2017 15:26:13 +0000 -Subject: [PATCH 095/201] brcmfmac: Mute expected startup 'errors' +Subject: [PATCH 095/235] brcmfmac: Mute expected startup 'errors' The brcmfmac WiFi driver always complains about the '00' country code. Modify the driver to ignore '00' silently. @@ -111451,10 +111440,10 @@ index 2d3b5e2a3ef7cd6186487b48665b401249380d18..e417454f5d6ec136cda29e65af5449f2 req->alpha2[0], req->alpha2[1]); return; -From bb160a8a88809cbcf1e12760480f05fbd983bb0b Mon Sep 17 00:00:00 2001 +From 29d1ff447f344fcbaba0c8e116d56c0198caa375 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 17 Dec 2015 13:37:07 +0000 -Subject: [PATCH 096/201] hci_h5: Don't send conf_req when ACTIVE +Subject: [PATCH 096/235] 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. @@ -111477,10 +111466,10 @@ index c0e4e26dc30d7c3c6a771b7b86df88c8cf763646..7308287259eedcaf229f8a496a0e3826 if (H5_HDR_LEN(hdr) > 2) h5->tx_win = (data[2] & 0x07); -From 87b2ac98e2b817f2e3177981c0904b3f5971192a Mon Sep 17 00:00:00 2001 +From 695d4a8c8a48954e0865e114c3c7c498bc15948b Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 13 Apr 2015 17:16:29 +0100 -Subject: [PATCH 097/201] config: Add default configs +Subject: [PATCH 097/235] config: Add default configs --- arch/arm/configs/bcm2709_defconfig | 1339 +++++++++++++++++++++++++++++++++++ @@ -114185,10 +114174,10 @@ index 0000000000000000000000000000000000000000..c1da808d40bc8e867b41d3566bd60a75 +CONFIG_CRC_ITU_T=y +CONFIG_LIBCRC32C=y -From fb372e7424fe03700ef6252bdbe08a6efa2213c5 Mon Sep 17 00:00:00 2001 +From 697cd29284972c731e8cfebf7d114a0ce8d82bdc Mon Sep 17 00:00:00 2001 From: Michael Zoran Date: Wed, 24 Aug 2016 03:35:56 -0700 -Subject: [PATCH 098/201] Add arm64 configuration and device tree differences. +Subject: [PATCH 098/235] Add arm64 configuration and device tree differences. Disable MMC_BCM2835_SDHOST and MMC_BCM2835 since these drivers are crashing at the moment. @@ -115602,10 +115591,10 @@ index 0000000000000000000000000000000000000000..e6b09fafa27eed2b762e3d53b55041f7 +CONFIG_LIBCRC32C=y +CONFIG_BCM2835_VCHIQ=n -From 40a01ca28d17e8a8c0a931072f9997364d0d8dba Mon Sep 17 00:00:00 2001 +From ad0611f0f66534a022bee2ca3bc7b749ecc9c0c4 Mon Sep 17 00:00:00 2001 From: Electron752 Date: Thu, 12 Jan 2017 07:07:08 -0800 -Subject: [PATCH 099/201] ARM64: Make it work again on 4.9 (#1790) +Subject: [PATCH 099/235] 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. @@ -116016,10 +116005,10 @@ index e6b09fafa27eed2b762e3d53b55041f793683d27..c7e891d72969a388d9b135a36dbfc9c9 CONFIG_LIBCRC32C=y -CONFIG_BCM2835_VCHIQ=n -From a064a768337f38644bea1b0a8e0947a10816cad7 Mon Sep 17 00:00:00 2001 +From 91bd9288499438ace2a3ca023d3410c5c943963b Mon Sep 17 00:00:00 2001 From: Michael Zoran Date: Thu, 12 Jan 2017 19:10:07 -0800 -Subject: [PATCH 100/201] ARM64: Enable HDMI audio and vc04_services in +Subject: [PATCH 100/235] ARM64: Enable HDMI audio and vc04_services in bcmrpi3_defconfig Signed-off-by: Michael Zoran @@ -116048,10 +116037,10 @@ index c7e891d72969a388d9b135a36dbfc9c9cb609bf8..4b90f9b64abe9f089ba56b13d5a00de3 CONFIG_BCM2835_MBOX=y # CONFIG_IOMMU_SUPPORT is not set -From 27b4b6484d40985addac88b98b9c27b8a83cc5be Mon Sep 17 00:00:00 2001 +From 7b660c9ac357561171a9c2e1694afad5bd641d0f Mon Sep 17 00:00:00 2001 From: Michael Zoran Date: Thu, 12 Jan 2017 19:14:03 -0800 -Subject: [PATCH 101/201] ARM64: Run bcmrpi3_defconfig through savedefconfig. +Subject: [PATCH 101/235] ARM64: Run bcmrpi3_defconfig through savedefconfig. Signed-off-by: Michael Zoran --- @@ -116096,10 +116085,10 @@ index 4b90f9b64abe9f089ba56b13d5a00de33343bfb9..dac962ca1634662ce7d966f1ffb53b5b CONFIG_FB_TFT_AGM1264K_FL=m CONFIG_FB_TFT_BD663474=m -From 82d703e843a501bc16d57835ec8e01bd4c012750 Mon Sep 17 00:00:00 2001 +From adf6df5236d6fcad368bca9acd95e108589bf1ef Mon Sep 17 00:00:00 2001 From: Electron752 Date: Sat, 14 Jan 2017 02:54:26 -0800 -Subject: [PATCH 102/201] ARM64: Enable Kernel Address Space Randomization +Subject: [PATCH 102/235] ARM64: Enable Kernel Address Space Randomization (#1792) Randomization allows the mapping between virtual addresses and physical @@ -116131,10 +116120,10 @@ index dac962ca1634662ce7d966f1ffb53b5bfa27c506..aae33b4b3c3e736ea7cd3ca242158ad6 CONFIG_BINFMT_MISC=y CONFIG_COMPAT=y -From 779d30101ea76a4e982933ef6f0012938ba26eec Mon Sep 17 00:00:00 2001 +From 1cdcff7ef14a553b64a045b066bed8e7ec79d91a Mon Sep 17 00:00:00 2001 From: Michael Zoran Date: Sun, 15 Jan 2017 07:31:59 -0800 -Subject: [PATCH 103/201] ARM64: Enable RTL8187/RTL8192CU wifi in build config +Subject: [PATCH 103/235] 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 @@ -116159,10 +116148,10 @@ index aae33b4b3c3e736ea7cd3ca242158ad6ba558aff..b7d762df19b85e369a32cd823dfd0621 CONFIG_ZD1211RW=m CONFIG_MAC80211_HWSIM=m -From 2053933ca50d38e8a8274d5e1e1d3c5dd539717a Mon Sep 17 00:00:00 2001 +From fd5a5c47547218c6b0c4882cd5f201754f30688c Mon Sep 17 00:00:00 2001 From: Michael Zoran Date: Sat, 14 Jan 2017 21:33:51 -0800 -Subject: [PATCH 104/201] ARM64/DWC_OTG: Port dwc_otg driver to ARM64 +Subject: [PATCH 104/235] 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 @@ -116505,10 +116494,10 @@ index 6b2c7d0c93f36a63863ff4b0ecc1f3eab77e058b..d7b700ff17821ad1944e36721fe6b2db /** The OS page size */ #define DWC_OS_PAGE_SIZE PAGE_SIZE -From 58d0226d71b7b474d0e80bf6b29520831ca09011 Mon Sep 17 00:00:00 2001 +From 238928db258c909d3dec5f9ad00073d511eb3197 Mon Sep 17 00:00:00 2001 From: Michael Zoran Date: Sat, 14 Jan 2017 21:43:57 -0800 -Subject: [PATCH 105/201] ARM64: Round-Robin dispatch IRQs between CPUs. +Subject: [PATCH 105/235] 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 @@ -116582,10 +116571,10 @@ index 86b357ae027bf8ba1ac32cd150a8cf21e36597e2..05b17ca993f405c4c8e61a782ec58149 .name = "bcm2836-gpu", .irq_mask = bcm2836_arm_irqchip_mask_gpu_irq, -From 18aa1ee4fddad6538a390cce55fcddf5f476450b Mon Sep 17 00:00:00 2001 +From a013225a0a03dd76b3b3cfa95041d2968de43716 Mon Sep 17 00:00:00 2001 From: Michael Zoran Date: Sat, 14 Jan 2017 21:45:03 -0800 -Subject: [PATCH 106/201] ARM64: Enable DWC_OTG Driver In ARM64 Build +Subject: [PATCH 106/235] ARM64: Enable DWC_OTG Driver In ARM64 Build Config(bcmrpi3_defconfig) Signed-off-by: Michael Zoran @@ -116606,10 +116595,10 @@ index b7d762df19b85e369a32cd823dfd062145bdefa7..4d85c231c5ea0244e1b05fb4a5e3c8fd CONFIG_USB_STORAGE=y CONFIG_USB_STORAGE_REALTEK=m -From 1dac622c1459cf531e02e4862d2edc7041bf7f7d Mon Sep 17 00:00:00 2001 +From d6200f7b10f3b1027dcb8f7b2241a169ba09905a Mon Sep 17 00:00:00 2001 From: Michael Zoran Date: Sat, 11 Feb 2017 01:18:31 -0800 -Subject: [PATCH 107/201] ARM64: Force hardware emulation of deprecated +Subject: [PATCH 107/235] ARM64: Force hardware emulation of deprecated instructions. --- @@ -116637,10 +116626,10 @@ index d06fbe4cd38d7423c900aff64b0e728f995478d3..877b7c90f9555203d5d55d739359a256 case INSN_OBSOLETE: insn->current_mode = INSN_UNDEF; -From 064e0d7f2de4aade1bc42e2dd5df416876797c36 Mon Sep 17 00:00:00 2001 +From ac28e40ed6948c2aa44ffe42c039e9e4deb8dd69 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Fri, 10 Feb 2017 17:57:08 -0800 -Subject: [PATCH 108/201] build/arm64: Add rules for .dtbo files for dts +Subject: [PATCH 108/235] build/arm64: Add rules for .dtbo files for dts overlays We now create overlays as .dtbo files. @@ -116665,10 +116654,10 @@ index 7318165cfc90b5b4e36048fbafd9287a1cf3516f..f6f5df3f262b0baf1338bea188d78883 dtbs: prepare scripts -From a355fc8c95ab5c87537f0d2cc9187e4a73f8610f Mon Sep 17 00:00:00 2001 +From d0047a5c538a58bcc4ecd214fdcafb87680b4400 Mon Sep 17 00:00:00 2001 From: Bilal Amarni Date: Wed, 24 May 2017 10:52:50 +0200 -Subject: [PATCH 109/201] enable drivers for GPIO expander and vcio +Subject: [PATCH 109/235] enable drivers for GPIO expander and vcio --- arch/arm64/configs/bcmrpi3_defconfig | 3 +++ @@ -116696,10 +116685,10 @@ index 4d85c231c5ea0244e1b05fb4a5e3c8fd3e651ddf..9dcb58a519d041fadae99c81a7bda621 CONFIG_GPIO_ARIZONA=m CONFIG_GPIO_STMPE=y -From 4d30c995c00ff35e79a9ab4a721ab1b507cb57c8 Mon Sep 17 00:00:00 2001 +From e55ae968bd629b098b628bb57e170462c5130b54 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 23 Mar 2017 16:34:46 +0000 -Subject: [PATCH 110/201] bcm2835-aux: Add aux interrupt controller +Subject: [PATCH 110/235] 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 @@ -116863,10 +116852,10 @@ index bd750cf2238d61489811e7d7bd3b5f9950ed53c8..41e0702fae4692221980b0d02aed1ba6 BCM2835_AUX_CLOCK_COUNT, GFP_KERNEL); if (!onecell) -From 3a238f69f13c69be212b13b54122eacb61eda3dd Mon Sep 17 00:00:00 2001 +From b09ef7c307200837543a33c0f5415cc5b2a87f3d Mon Sep 17 00:00:00 2001 From: Yasunari Takiguchi Date: Fri, 14 Apr 2017 10:43:57 +0100 -Subject: [PATCH 111/201] This is the driver for Sony CXD2880 DVB-T2/T tuner + +Subject: [PATCH 111/235] 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. @@ -132998,10 +132987,10 @@ index 0000000000000000000000000000000000000000..82e122349055be817eb74ed5bbcd7560 +MODULE_AUTHOR("Sony Semiconductor Solutions Corporation"); +MODULE_LICENSE("GPL v2"); -From 4d555d47a7be37bb1e0dbf5669d515853157fa3d Mon Sep 17 00:00:00 2001 +From 7ed0fda6c92b4406df64fdefa09890accefcf851 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Wed, 14 Sep 2016 09:16:19 +0100 -Subject: [PATCH 112/201] raspberrypi-firmware: Export the general transaction +Subject: [PATCH 112/235] raspberrypi-firmware: Export the general transaction function. The vc4-firmware-kms module is going to be doing the MBOX FB call. @@ -133033,10 +133022,10 @@ index 3f070bd38a91511c986e3fb114b15bd4ac32634c..f261b64d1657c02290904d841e1f087c /** * rpi_firmware_property_list - Submit firmware property list -From f06a63c1d072ef13e13b9ead3c388e97121c7a95 Mon Sep 17 00:00:00 2001 +From ffa77bdebed0ca9299542e0b8693d930cd7abce1 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Wed, 14 Sep 2016 08:39:33 +0100 -Subject: [PATCH 113/201] drm/vc4: Add a mode for using the closed firmware for +Subject: [PATCH 113/235] drm/vc4: Add a mode for using the closed firmware for display. Signed-off-by: Eric Anholt @@ -133807,10 +133796,10 @@ index 0000000000000000000000000000000000000000..78c34305935501248b1ca548a1ee0175 + }, +}; -From ac9ee694a00ccda27bec826f211901dca9bab73f Mon Sep 17 00:00:00 2001 +From 2635f0548f66f985f8b8ce7c85808657b18b8029 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Wed, 1 Feb 2017 17:09:18 -0800 -Subject: [PATCH 114/201] drm/vc4: Name the primary and cursor planes in fkms. +Subject: [PATCH 114/235] drm/vc4: Name the primary and cursor planes in fkms. This makes debugging nicer, compared to trying to remember what the IDs are. @@ -133834,10 +133823,10 @@ index 78c34305935501248b1ca548a1ee01753b8fa099..d9a5551d01a2155e3df1bbbd78a1ee2b if (type == DRM_PLANE_TYPE_PRIMARY) { vc4_plane->fbinfo = -From 1e85c926b2b8cb35c9f322b07465dca4a11fe1ce Mon Sep 17 00:00:00 2001 +From d63c59c49642ccbfc272e968196b81f35773f483 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Wed, 1 Feb 2017 17:10:09 -0800 -Subject: [PATCH 115/201] drm/vc4: Add DRM_DEBUG_ATOMIC for the insides of +Subject: [PATCH 115/235] drm/vc4: Add DRM_DEBUG_ATOMIC for the insides of fkms. Trying to debug weston on fkms involved figuring out what calls I was @@ -133907,10 +133896,10 @@ index d9a5551d01a2155e3df1bbbd78a1ee2b961be946..e372666af0119b1876bad5167e6d0ff8 RPI_FIRMWARE_SET_CURSOR_STATE, &packet_state, -From 5de11ee749f69e722b31e0e52dfa29a7f9f70abd Mon Sep 17 00:00:00 2001 +From d1c2cb4af06efe896f4b55cf275d2c50a9590ede Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Thu, 2 Feb 2017 09:42:18 -0800 -Subject: [PATCH 116/201] drm/vc4: Fix sending of page flip completion events +Subject: [PATCH 116/235] 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 @@ -133952,10 +133941,10 @@ index e372666af0119b1876bad5167e6d0ff8945d1b80..4d7b7f218cbbc9e7abcaa37743978060 static void vc4_crtc_handle_page_flip(struct vc4_crtc *vc4_crtc) -From 84415afa888f814f918ca74ea98063fb98f700a2 Mon Sep 17 00:00:00 2001 +From e3653ee52ea14e2816d3a5338e00488c5c3f927f Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 18 Apr 2017 21:43:46 +0100 -Subject: [PATCH 117/201] vc4_fkms: Apply firmware overscan offset to hardware +Subject: [PATCH 117/235] vc4_fkms: Apply firmware overscan offset to hardware cursor --- @@ -134012,10 +134001,10 @@ index 4d7b7f218cbbc9e7abcaa37743978060b73fbdd1..d170775ccc985637ff018804f510a500 return 0; -From 29ea5d7340d272815a5f24681b7b70f8c67d7637 Mon Sep 17 00:00:00 2001 +From 8c35a469e75c07167e58b261b6abc4e9a94092de Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 7 May 2017 11:34:26 +0200 -Subject: [PATCH 118/201] ASoC: bcm2835: Add support for TDM modes +Subject: [PATCH 118/235] 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 @@ -134417,10 +134406,10 @@ index 56df7d8a43d0aac055a91b0d24aca8e1b4e308e4..dcacf7f83c9371df539a788ea33fedcf dev->dev = &pdev->dev; dev_set_drvdata(&pdev->dev, dev); -From b15e6fe5b00b9094cf747e5366318b26e3a6b9e3 Mon Sep 17 00:00:00 2001 +From d9da0a4aa9063784e6efcd346895a756178b3531 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 7 May 2017 15:30:50 +0200 -Subject: [PATCH 119/201] ASoC: bcm2835: Support left/right justified and DSP +Subject: [PATCH 119/235] ASoC: bcm2835: Support left/right justified and DSP modes DSP modes and left/right justified modes can be supported @@ -134666,10 +134655,10 @@ index dcacf7f83c9371df539a788ea33fedcf97d64690..3a706fda4f39e42efbe12f19d87af9b1 } -From 79ca2adff8412b9ece850bcb10e312536672f3a1 Mon Sep 17 00:00:00 2001 +From 2c2a7b1cd47d9aae9aedcb44c61a431ee0c582a4 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 7 May 2017 16:19:54 +0200 -Subject: [PATCH 120/201] ASoC: bcm2835: Support additional samplerates up to +Subject: [PATCH 120/235] ASoC: bcm2835: Support additional samplerates up to 384kHz Sample rates are only restricted by the capabilities of the @@ -134712,10 +134701,10 @@ index 3a706fda4f39e42efbe12f19d87af9b100a348a5..43f5715a0d5dda851731ecf7ff27e76c | SNDRV_PCM_FMTBIT_S24_LE | SNDRV_PCM_FMTBIT_S32_LE -From d7ffa37856e4058803d9c2e9987782b93654c1c4 Mon Sep 17 00:00:00 2001 +From 410b0433ffc27b5bbb9c8b43b32c73d0abab90f0 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 7 May 2017 16:24:57 +0200 -Subject: [PATCH 121/201] ASoC: bcm2835: Enforce full symmetry +Subject: [PATCH 121/235] 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. @@ -134751,10 +134740,10 @@ index 43f5715a0d5dda851731ecf7ff27e76c48fb6e57..2e449d7173fcecbcd647f90a26bd58b6 static bool bcm2835_i2s_volatile_reg(struct device *dev, unsigned int reg) -From df47ba69cd31dfce715c53e70191f46345874dc9 Mon Sep 17 00:00:00 2001 +From 6be3cd4baeb31f188e54514d8433772426b56d29 Mon Sep 17 00:00:00 2001 From: Andrei Gherzan Date: Mon, 5 Jun 2017 16:40:38 +0100 -Subject: [PATCH 122/201] dma-bcm2708: Fix module compilation of +Subject: [PATCH 122/235] dma-bcm2708: Fix module compilation of CONFIG_DMA_BCM2708 bcm2708-dmaengine.c defines functions like bcm_dma_start which are @@ -134797,10 +134786,10 @@ index c5bfff2765be4606077e6c8af73040ec13ee8974..6ca874d332a8bc666b1c9576ac51f479 #endif /* _PLAT_BCM2708_DMA_H */ -From f9bf10ac70d1a44db0bb1ea8a63ba3fe807c09a4 Mon Sep 17 00:00:00 2001 +From 984a3108621a4882829cc3e26236a5c0a9c0f0f7 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 25 Aug 2017 19:18:13 +0100 -Subject: [PATCH 123/201] cache: export clean and invalidate +Subject: [PATCH 123/235] cache: export clean and invalidate --- arch/arm/mm/cache-v6.S | 4 ++-- @@ -134852,10 +134841,10 @@ index de78109d002db1a5e7c94a6c1bc8bb94161d07b8..4c850aa3af2b2439fced4e130441329a sub r3, r2, #1 bic r0, r0, r3 -From 14e9ed95082a4b33d763f5aba63aaa90b8328e2b Mon Sep 17 00:00:00 2001 +From f68029f4f2529a133329dde5a9975cccf1a73e23 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 29 Sep 2017 10:32:19 +0100 -Subject: [PATCH 124/201] amba_pl011: Insert mb() for correct FIFO handling +Subject: [PATCH 124/235] 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 @@ -134882,10 +134871,10 @@ index bfbc845d7be9ef804468d0a82da18d9b67857216..424bdc500864a86e5d431763ba416b52 return true; -From 63e79edcb34d67fb406964c288f1f1eb71163853 Mon Sep 17 00:00:00 2001 +From d6758ce1626febcb7373597632cf431c0317f812 Mon Sep 17 00:00:00 2001 From: Chung-Hsien Hsu Date: Sun, 14 May 2017 20:11:05 -0500 -Subject: [PATCH 125/201] brcmfmac: add CLM download support +Subject: [PATCH 125/235] 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 @@ -135313,10 +135302,10 @@ index 11ffaa01599eb4b343b7f675dc275fc8572d127e..b27170c12482de0ca4115b4bc9484c21 static int brcmf_usb_bus_setup(struct brcmf_usbdev_info *devinfo) -From c08aa9459c59ff139ab358c7a60de482ce5ff7d8 Mon Sep 17 00:00:00 2001 +From 0b601d054f4f04c00d996bf6ef5fa0ef09ad1e0f Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 6 Oct 2017 13:23:32 +0100 -Subject: [PATCH 126/201] brcmfmac: request_firmware_direct is quieter +Subject: [PATCH 126/235] 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 @@ -135341,10 +135330,10 @@ index f0309e039592ba6e388084a13f052c03f99cf1ef..b5889360da96096775db6425337a7215 if (err == -ENOENT) return 0; -From a21640def9db02b0914bf81fe8a4c64480dc5f1c Mon Sep 17 00:00:00 2001 +From 9042d1ce1d169e05d8df02dc1cfd7d54a1a350a1 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 29 Sep 2017 10:32:19 +0100 -Subject: [PATCH 127/201] amba_pl011: Add cts-event-workaround DT property +Subject: [PATCH 127/235] 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 @@ -135393,10 +135382,10 @@ index 424bdc500864a86e5d431763ba416b5298c777dc..b224306633f62c398ef904734a903d4e uap->vendor = vendor; uap->fifosize = vendor->get_fifosize(dev); -From b636216f39ae4d8f4c5c310f5058ec2283ee3955 Mon Sep 17 00:00:00 2001 +From e0e73e12f75d699381067545af884ddf67850bf3 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 11 Oct 2017 13:48:04 +0100 -Subject: [PATCH 128/201] amba-pl011: Report AUTOCTS capability to framework +Subject: [PATCH 128/235] 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 @@ -135439,10 +135428,10 @@ index b224306633f62c398ef904734a903d4e75df65c3..3b743cf8a94c279ff8d0b747f98062d0 if (uap->vendor->oversampling) { -From dfaa9137abedd793201a9caedd7d273dc20e154c Mon Sep 17 00:00:00 2001 +From ced36379b1ed54c4ab24078d232bcb43f6b7b555 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 25 Oct 2017 09:20:56 +0100 -Subject: [PATCH 129/201] scripts: Update mkknlimg, just in case +Subject: [PATCH 129/235] 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 @@ -135485,10 +135474,10 @@ index 84be2593ec1de8f97b0167ff06b3e05d231c4ba0..d72e15224232d5164374e93be48949bf my $res = try_extract($kernel_file, $tmpfile1); -From a17d314e09f1eeff1d0ac803b5469c307f63e9ca Mon Sep 17 00:00:00 2001 +From 2c5827433ab53932ebebf08147c0b6edb42062e6 Mon Sep 17 00:00:00 2001 From: James Hughes Date: Tue, 14 Nov 2017 15:13:15 +0000 -Subject: [PATCH 130/201] AXI performance monitor driver (#2222) +Subject: [PATCH 130/235] AXI performance monitor driver (#2222) Uses the debugfs I/F to provide access to the AXI bus performance monitors. @@ -136174,10 +136163,10 @@ index 0000000000000000000000000000000000000000..bafe03b6c000060e78404d65a0aa96d8 +MODULE_LICENSE("GPL"); + -From be4310b6541e57ae2377e20468401a6f35035560 Mon Sep 17 00:00:00 2001 +From 401d61b5ba71e11a9e5214fe9c0dca19997d5110 Mon Sep 17 00:00:00 2001 From: James Hughes Date: Fri, 21 Jul 2017 09:55:12 +0100 -Subject: [PATCH 131/201] Sets the BCDC priority to constant 0 +Subject: [PATCH 131/235] Sets the BCDC priority to constant 0 This is to workaround for a possible issue in the wireless chip firmware where some packets with @@ -136203,10 +136192,10 @@ index 9f2d0b0cf6e5c452ad85a3caef58cf16a8cdad46..b009f3083490c2bc2733424f08f81b9f h->data_offset = offset; BCDC_SET_IF_IDX(h, ifidx); -From 7be728d7550cb9632cc0e44680e8009cbc540214 Mon Sep 17 00:00:00 2001 +From e1205a509e2ed80b1c21792304e3fe943d2a77f2 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Tue, 26 Apr 2016 13:46:13 -0700 -Subject: [PATCH 132/201] drm/panel: Add support for the Raspberry Pi 7" +Subject: [PATCH 132/235] drm/panel: Add support for the Raspberry Pi 7" Touchscreen. This driver communicates with the Atmel microcontroller for sequencing @@ -136787,10 +136776,10 @@ index 0000000000000000000000000000000000000000..1a536fe4d040f5fafe324baee110a622 +MODULE_DESCRIPTION("Raspberry Pi 7-inch touchscreen driver"); +MODULE_LICENSE("GPL v2"); -From 4cf15c95ccae8990c915adc0f7b35e8808ff7284 Mon Sep 17 00:00:00 2001 +From 0c63b6f18ccc2e4c0add384a698ce061f23b90d0 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Wed, 12 Apr 2017 17:52:56 -0700 -Subject: [PATCH 133/201] panel-raspberrypi-touchscreen: Fix NULL deref if +Subject: [PATCH 133/235] panel-raspberrypi-touchscreen: Fix NULL deref if probe order goes wrong. If the i2c driver hadn't pobed before the panel driver probes, then @@ -136817,10 +136806,10 @@ index 1a536fe4d040f5fafe324baee110a6225dd0be08..5d6bfd81b07a11a0cb407f4301d22931 } -From 4f9f1e26ba498259410e7c69a47ce73f74881505 Mon Sep 17 00:00:00 2001 +From 99c639cb85479bd88971d1369ce635578d8528fe Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 6 Mar 2017 12:17:16 -0800 -Subject: [PATCH 134/201] panel-raspberrypi-touchscreen: Round up clk rate to +Subject: [PATCH 134/235] panel-raspberrypi-touchscreen: Round up clk rate to fix DSI panel. Commit 488f9bc8e3def93e0baef53cee2026c2cb0d8956 slightly increased the @@ -136855,10 +136844,10 @@ index 5d6bfd81b07a11a0cb407f4301d22931705fb8b1..b57b7ad9aa4c5048186e98553af59ec9 .hsync_start = HACT + HFP, .hsync_end = HACT + HFP + HSW, -From 9cd5dce6a01a330a307a4e9c7a1914d8ec698386 Mon Sep 17 00:00:00 2001 +From de9db182354e12d1fee266549fda0f1960175e63 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Thu, 2 Jun 2016 12:29:45 -0700 -Subject: [PATCH 135/201] BCM270X: Add the DSI panel to the defconfig. +Subject: [PATCH 135/235] BCM270X: Add the DSI panel to the defconfig. Signed-off-by: Eric Anholt --- @@ -136879,10 +136868,10 @@ index 9dcb58a519d041fadae99c81a7bda621b2a49f12..003209bf2362c2a136ab987b2f20065e CONFIG_DRM_VC4=m CONFIG_FB=y -From 6ef35341d1f82a0f8d2bc8558a02108cc0a8caba Mon Sep 17 00:00:00 2001 +From 3efc79a040a7002a14628115e3e2b124a5d63c59 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Thu, 6 Jul 2017 11:45:48 -0700 -Subject: [PATCH 136/201] drm/vc4: Add support for setting DPMS in firmwarekms. +Subject: [PATCH 136/235] drm/vc4: Add support for setting DPMS in firmwarekms. This ensures that the screen goes blank during DPMS (screensaver), including the cursor. Planes don't necessarily get disabled during @@ -136985,10 +136974,10 @@ index d170775ccc985637ff018804f510a5003933c9ec..766f700417f7194d6b01fa1bc18dad40 if (!vc4_encoder) return -ENOMEM; -From eadb4d326f8aa01fe252b17e9a413063bcda97ba Mon Sep 17 00:00:00 2001 +From f99cf6e4cd78a06e499cbca21a22d151e94a7929 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Fri, 14 Jul 2017 17:33:08 -0700 -Subject: [PATCH 137/201] drm/vc4: Fix pitch setup for T-format scanout. +Subject: [PATCH 137/235] drm/vc4: Fix pitch setup for T-format scanout. The documentation said to use src_w here, and I didn't consider that we actually needed to be using pitch somewhere in our setup. Fixes @@ -137036,10 +137025,10 @@ index 2968b3ebb895714cb8c8faeaf40dff1c996f2259..4ad0b9fcae99f74fb89d09dd52d9ffe5 DRM_DEBUG_KMS("Unsupported FB tiling flag 0x%16llx", (long long)fb->modifier); -From 5564baaa1d51b5513d76762fe6b8bcca10536734 Mon Sep 17 00:00:00 2001 +From edcc5d9fc6c066b13433395d6e1209422ec5f6d5 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 24 Aug 2017 16:16:16 +0100 -Subject: [PATCH 138/201] brcmfmac: Disable ARP offloading when promiscuous +Subject: [PATCH 138/235] brcmfmac: Disable ARP offloading when promiscuous This is a test patch for brcmfmac from Franky Lin at Broadcom to disable ARP offloading when in promiscuous mode, re-enabling the ability to @@ -137176,10 +137165,10 @@ index a4dd313140f37dc1fbb6955e1148f48bccf22f44..b9a96cbc70f0865ee8c9cff3c6164144 bool is_p2pdev, const char *name, u8 *mac_addr); void brcmf_remove_interface(struct brcmf_if *ifp, bool rtnl_locked); -From c73189c392bfee92f88c7b3eeaf2e491f40079ca Mon Sep 17 00:00:00 2001 +From 1e00a74aeeeaf9085633e221802df44af00f0137 Mon Sep 17 00:00:00 2001 From: Kevin Cernekee Date: Sat, 16 Sep 2017 21:08:22 -0700 -Subject: [PATCH 139/201] brcmfmac: Avoid possible out-of-bounds read +Subject: [PATCH 139/235] brcmfmac: Avoid possible out-of-bounds read In brcmf_p2p_notify_rx_mgmt_p2p_probereq(), chanspec is assigned before the length of rxframe is validated. This could lead to uninitialized @@ -137217,10 +137206,10 @@ index 2ce675ab40ef867cf6a86ca5257a6db7ef76e80a..1c450c0727cb577f7dae25a1ce82b2db return 0; } -From 2668907312a5346ff64956342b37387091ae8edd Mon Sep 17 00:00:00 2001 +From 1259ca7c1dd003e81287b25fa61522edfd09a5ce Mon Sep 17 00:00:00 2001 From: Kevin Cernekee Date: Sat, 16 Sep 2017 21:08:23 -0700 -Subject: [PATCH 140/201] brcmfmac: Delete redundant length check +Subject: [PATCH 140/235] brcmfmac: Delete redundant length check brcmf_fweh_process_event() sets event->datalen to the endian-swapped value of event_packet->msg.datalen, which is the @@ -137251,10 +137240,10 @@ index ef72baf6dd969c2478a2138ea57b9f691fdf12d8..e7eaa57d11d98f61280bd99013e649aa /* special handling of interface event */ if (event->code == BRCMF_E_IF) { -From 36aaacc4ae6fe43427f75ffdef1d4cb9b321976b Mon Sep 17 00:00:00 2001 +From 0d57a63f8615fc3926927920d9a2e366537ea8a8 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 14 Nov 2017 11:03:22 +0000 -Subject: [PATCH 141/201] mcp2515: Use DT-supplied interrupt flags +Subject: [PATCH 141/235] mcp2515: Use DT-supplied interrupt flags The MCP2515 datasheet clearly describes a level-triggered interrupt pin. Therefore the receiving interrupt controller must also be @@ -137290,10 +137279,10 @@ index f3f05fea8e1f8e0ad3a1ebd7461d2019835e1d47..6c2d3aba25918f5536b2d67292334e74 flags | IRQF_ONESHOT, DEVICE_NAME, priv); if (ret) { -From 4cf038b0db7d1283a584c87be64e6eca1da38a09 Mon Sep 17 00:00:00 2001 +From 99bbbb1f96689678e08752fd1fd3ce53bfdaba3a Mon Sep 17 00:00:00 2001 From: James Hughes Date: Thu, 16 Nov 2017 15:56:17 +0000 -Subject: [PATCH 142/201] Tidy up of the ft5406 driver to use DT (#2189) +Subject: [PATCH 142/235] Tidy up of the ft5406 driver to use DT (#2189) Driver was using a fixed resolution, this commit adds touchscreen size, and coordinate flip and swap @@ -137677,10 +137666,10 @@ index 9d7d05482355d168c5c0c42508cd978979ee5f14..40bbde9ce1bc4c51be50f47fc359c74f } -From 435f4e101e9650940ed7153fdd4285f029bf4c2b Mon Sep 17 00:00:00 2001 +From 408924b52e288806153f0e6ac7b1f0fb10638b70 Mon Sep 17 00:00:00 2001 From: notro Date: Thu, 10 Jul 2014 13:59:47 +0200 -Subject: [PATCH 143/201] pinctrl-bcm2835: Set base to 0 give expected gpio +Subject: [PATCH 143/235] pinctrl-bcm2835: Set base to 0 give expected gpio numbering Signed-off-by: Noralf Tronnes @@ -137702,10 +137691,10 @@ index ff782445dfb75d1a8af9eed775b8e8f7b275fee3..786efcddb5e56a06baf67cb91ddbbd8e .can_sleep = false, }; -From 0f89084221947259d549a80e5a46307336a14ef0 Mon Sep 17 00:00:00 2001 +From c259f43f6d72074607a5823a5eebf6d2078e6925 Mon Sep 17 00:00:00 2001 From: P33M Date: Fri, 24 Nov 2017 13:49:26 +0000 -Subject: [PATCH 144/201] fiq_fsm: rewind DMA pointer for OUT transactions that +Subject: [PATCH 144/235] fiq_fsm: rewind DMA pointer for OUT transactions that fail (#2288) See: https://github.com/raspberrypi/linux/issues/2140 @@ -137749,10 +137738,10 @@ index e47d5b6de3ada73896ff9a81abd223d345e0de4f..ec804c7cd06d2db897ce6f72fce29733 if (st->nr_errors >= 3) { st->fsm = FIQ_NP_SPLIT_HS_ABORTED; -From 1bb24111305718fdec2a03d394816c80c6d8b746 Mon Sep 17 00:00:00 2001 +From 08c1b0d394fd1f0549aff27a66b6e5059c309beb Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 21 Jul 2017 11:30:18 +0100 -Subject: [PATCH 145/201] lan78xx: Read MAC address from DT if present +Subject: [PATCH 145/235] lan78xx: Read MAC address from DT if present There is a standard mechanism for locating and using a MAC address from the Device Tree. Use this facility in the lan78xx driver to support @@ -137764,7 +137753,7 @@ Signed-off-by: Phil Elwell 1 file changed, 10 insertions(+) diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c -index 0161f77641fac8eafc1284a5457a7ccb273efc39..01e72b267de8f2a82fbe1ab4557dcaab67532da9 100644 +index a8dd1c7a08cbe8aafa51168288946b1a4641c33f..2727ce1f9b53c0397027ef7043ca331013553c00 100644 --- a/drivers/net/usb/lan78xx.c +++ b/drivers/net/usb/lan78xx.c @@ -37,6 +37,7 @@ @@ -137799,10 +137788,10 @@ index 0161f77641fac8eafc1284a5457a7ccb273efc39..01e72b267de8f2a82fbe1ab4557dcaab (addr[2] << 16) | (addr[3] << 24); addr_hi = addr[4] | (addr[5] << 8); -From bae039615a254018c9ae0f19e89cf0cef2071cc0 Mon Sep 17 00:00:00 2001 +From fa4382d1a6a05010ef6ecd59482fcd06ac31648d Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 28 Nov 2017 12:02:37 +0000 -Subject: [PATCH 146/201] lan78xx: Correctly indicate invalid OTP +Subject: [PATCH 146/235] lan78xx: Correctly indicate invalid OTP lan78xx_read_otp tries to return -EINVAL in the event of invalid OTP content, but the value gets overwritten before it is returned and the @@ -137815,7 +137804,7 @@ Signed-off-by: Phil Elwell 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c -index 01e72b267de8f2a82fbe1ab4557dcaab67532da9..126fe75e75b19c1076a7dd4415a904035ba95402 100644 +index 2727ce1f9b53c0397027ef7043ca331013553c00..ee95fc957e1f1339ce42db3089e03a908ec591d6 100644 --- a/drivers/net/usb/lan78xx.c +++ b/drivers/net/usb/lan78xx.c @@ -929,7 +929,8 @@ static int lan78xx_read_otp(struct lan78xx_net *dev, u32 offset, @@ -137829,10 +137818,10 @@ index 01e72b267de8f2a82fbe1ab4557dcaab67532da9..126fe75e75b19c1076a7dd4415a90403 return ret; -From 39649e39f8d29446663857849ad658593fd88e39 Mon Sep 17 00:00:00 2001 +From d514d93ba175c7454ed9dc2b3ec6277e33f1c4d1 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 17 Oct 2017 15:04:29 +0100 -Subject: [PATCH 147/201] lan78xx: Enable LEDs and auto-negotiation +Subject: [PATCH 147/235] lan78xx: Enable LEDs and auto-negotiation For applications of the LAN78xx that don't have valid programmed EEPROMs or OTPs, enabling both LEDs and auto-negotiation by default @@ -137844,7 +137833,7 @@ Signed-off-by: Phil Elwell 1 file changed, 11 insertions(+) diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c -index 126fe75e75b19c1076a7dd4415a904035ba95402..26e04c732df49d09939d470c61a9ab4638901e81 100644 +index ee95fc957e1f1339ce42db3089e03a908ec591d6..76674d8881b588f0a47c3a6f568825fdf034aea5 100644 --- a/drivers/net/usb/lan78xx.c +++ b/drivers/net/usb/lan78xx.c @@ -2362,6 +2362,11 @@ static int lan78xx_reset(struct lan78xx_net *dev) @@ -137859,7 +137848,7 @@ index 126fe75e75b19c1076a7dd4415a904035ba95402..26e04c732df49d09939d470c61a9ab46 ret = lan78xx_read_reg(dev, HW_CFG, &buf); buf |= HW_CFG_LRST_; -@@ -2414,6 +2419,9 @@ static int lan78xx_reset(struct lan78xx_net *dev) +@@ -2415,6 +2420,9 @@ static int lan78xx_reset(struct lan78xx_net *dev) ret = lan78xx_read_reg(dev, HW_CFG, &buf); buf |= HW_CFG_MEF_; @@ -137869,7 +137858,7 @@ index 126fe75e75b19c1076a7dd4415a904035ba95402..26e04c732df49d09939d470c61a9ab46 ret = lan78xx_write_reg(dev, HW_CFG, buf); ret = lan78xx_read_reg(dev, USB_CFG0, &buf); -@@ -2460,6 +2468,9 @@ static int lan78xx_reset(struct lan78xx_net *dev) +@@ -2461,6 +2469,9 @@ static int lan78xx_reset(struct lan78xx_net *dev) /* LAN7801 only has RGMII mode */ if (dev->chipid == ID_REV_CHIP_ID_7801_) buf &= ~MAC_CR_GMII_EN_; @@ -137880,10 +137869,10 @@ index 126fe75e75b19c1076a7dd4415a904035ba95402..26e04c732df49d09939d470c61a9ab46 ret = lan78xx_read_reg(dev, MAC_TX, &buf); -From 6b6ce2e5700732f07bf9626ff2f5e1c49eb37a8d Mon Sep 17 00:00:00 2001 +From d57a9a7f199697d9237688afbb6ea809b07adba1 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 27 Nov 2017 17:14:54 +0000 -Subject: [PATCH 148/201] cgroup: Disable cgroup "memory" by default +Subject: [PATCH 148/235] cgroup: Disable cgroup "memory" by default Some Raspberry Pis have limited RAM and most users won't use the cgroup memory support so it is disabled by default. Enable with: @@ -137953,10 +137942,10 @@ index 030e4286f14c715ecb87fc7d2cc93d451bc2e860..c9b7a0cd1e3026b5e8d91fa5d252ddd5 * css_tryget_online_from_dir - get corresponding css from a cgroup dentry * @dentry: directory dentry of interest -From 859b45291f9ebb645482ac81fbe7ab64cde7ae72 Mon Sep 17 00:00:00 2001 +From 93cef618a9944e2af3c5785a037f5387983b6ae2 Mon Sep 17 00:00:00 2001 From: Allen Wild Date: Tue, 26 Sep 2017 19:37:44 +0200 -Subject: [PATCH 149/201] thermal: enable broadcom menu for arm64 bcm2835 +Subject: [PATCH 149/235] thermal: enable broadcom menu for arm64 bcm2835 Moving the bcm2835 thermal driver to the broadcom directory prevented it from getting enabled for arm64 builds, since the broadcom directory is only @@ -137987,10 +137976,10 @@ index 07002df4f83acdde2efdf3f51299976ef25d2e1e..e3f0d1fd1720355bc601e766356ac528 endmenu -From 845af8c622940f97ff8dc857600385667fa74344 Mon Sep 17 00:00:00 2001 +From c6e99e74d0c0589b3f483626cba59c662737ded2 Mon Sep 17 00:00:00 2001 From: Gottfried Haider Date: Tue, 26 Sep 2017 11:59:51 +0000 -Subject: [PATCH 150/201] pwm: Set class for exported channels in sysfs +Subject: [PATCH 150/235] pwm: Set class for exported channels in sysfs [ Upstream commit 7e5d1fd75c3dde9fc10c4472b9368089d1b81d00 ] @@ -138026,10 +138015,10 @@ index a813239300c3d46bba1320caac77ec7adc8363a8..83f2b0b15712bf5745a0dc3a231c5ed0 export->child.parent = parent; export->child.devt = MKDEV(0, 0); -From d176ddddb0387113e33b8125683061e142eb2024 Mon Sep 17 00:00:00 2001 +From 5a8f3e9830b48145019d99d5152af69074326a76 Mon Sep 17 00:00:00 2001 From: Giedrius Trainavicius Date: Tue, 25 Oct 2016 01:47:20 +0300 -Subject: [PATCH 151/201] Updates for Pisound module code: +Subject: [PATCH 151/235] Updates for Pisound module code: * Merged 'Fix a warning in DEBUG builds' (1c8b82b). * Updating some strings and copyright information. @@ -138454,10 +138443,10 @@ index 06ff1e53dc9d860946965b6303577762f958fae2..09739d51b70b877e24e4f74f6aaadebd +MODULE_DESCRIPTION("ASoC Driver for Pisound, https://blokas.io/pisound"); MODULE_LICENSE("GPL v2"); -From 61c2d1de32361236a980f898ea21e0672180c4a5 Mon Sep 17 00:00:00 2001 +From 07e9077f2c7ad642de801a3f6c66232831ba6c7c Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Sat, 9 Dec 2017 21:45:12 +0000 -Subject: [PATCH 152/201] overlays: Add applepi-dac overlay +Subject: [PATCH 152/235] overlays: Add applepi-dac overlay See: https://github.com/raspberrypi/linux/issues/2302 @@ -138562,10 +138551,10 @@ index 0000000000000000000000000000000000000000..fc02b295470efce41d61be241ba55022 + dtc -@ -H epapr -O dtb -o ApplePi-DAC.dtbo -W no-unit_address_vs_reg ApplePi-DAC.dts +*/ -From 8bb0b788b913fcb8b1061edf1f7d4a9d8d969ff1 Mon Sep 17 00:00:00 2001 +From b5d8365816eee9e4703d570137b2005fa1242c1d Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 12 Dec 2017 12:12:46 +0000 -Subject: [PATCH 153/201] staging: vchiq_arm: Make debugfs failure non-fatal +Subject: [PATCH 153/235] staging: vchiq_arm: Make debugfs failure non-fatal It can be useful to be able to open multiple vchiq instances in a single process. This currently fails due to a debugfs collision, @@ -138594,10 +138583,10 @@ index 314ffac50bb8303971ca71a5f702f07fb8ed6639..e4bad872b7e547de268648fae690524f sema_init(&instance->insert_event, 0); sema_init(&instance->remove_event, 0); -From 46c104d48839d145474d03b4074488ff2589cc9b Mon Sep 17 00:00:00 2001 +From 71cd4e64a31c5d03a4375a7f9640853ddd3201cf Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Sat, 23 Dec 2017 22:10:37 +0000 -Subject: [PATCH 154/201] config: Add PINCTRL_MCP23S08 +Subject: [PATCH 154/235] config: Add PINCTRL_MCP23S08 As of Linux 4.12, the mcp23s08 driver moved from drivers/gpio to drivers/pinctrl. At the same time, the Kconfig symbols changed @@ -138638,10 +138627,10 @@ index c1da808d40bc8e867b41d3566bd60a758d052bdb..4cfd4e6a339009536d6ebaaff36e4007 CONFIG_GPIO_PCF857X=m CONFIG_GPIO_ARIZONA=m -From 2af803bb1b10c902c03e6e5cd13cec4ee5fe7171 Mon Sep 17 00:00:00 2001 +From a2cff3036fdbf3c2f7297b61eb9494501ba60e57 Mon Sep 17 00:00:00 2001 From: Alex Riesen Date: Thu, 21 Dec 2017 09:29:39 +0100 -Subject: [PATCH 155/201] Add Raspberry Pi firmware driver to the dependencies +Subject: [PATCH 155/235] Add Raspberry Pi firmware driver to the dependencies of backlight driver Otherwise the backlight driver fails to build if the firmware @@ -138665,10 +138654,10 @@ index e345a32945b7ec0712cebd0ac8e62c9e8955e24f..9244f2f7b642c6fe5725f0b3b841cece If you have the Raspberry Pi DSI touchscreen display, say Y to enable the mailbox-controlled backlight driver. -From f15d2a7e3e646b9a2c85cc13474ab0b9e3f6ff89 Mon Sep 17 00:00:00 2001 +From 6d7724ba3856e87d153276fad366764c499b47a2 Mon Sep 17 00:00:00 2001 From: Aaron Shaw Date: Sun, 24 Dec 2017 21:57:05 +0000 -Subject: [PATCH 156/201] overlays: Add media center HAT overlay (#2313) +Subject: [PATCH 156/235] overlays: Add media center HAT overlay (#2313) --- arch/arm/boot/dts/overlays/Makefile | 1 + @@ -138863,10 +138852,10 @@ index 0000000000000000000000000000000000000000..a42b8e2a846c6e614ca807f798bef238 + }; +}; -From fe0a2683a2bbe729ec74cd4d7435e77d9aeb37bf Mon Sep 17 00:00:00 2001 +From d4cd4f2619f543cf1fe74500cb423d8eea2520da Mon Sep 17 00:00:00 2001 From: Aaron Shaw Date: Thu, 28 Dec 2017 17:31:52 +0000 -Subject: [PATCH 157/201] add backlight control to rpi-display overlay +Subject: [PATCH 157/235] add backlight control to rpi-display overlay --- arch/arm/boot/dts/overlays/README | 1 + @@ -138910,10 +138899,10 @@ index d7e72eef594e08b309ffbaa04f43c68909c08f36..533b5c140b5447a0bcf426fee0a8b321 }; }; -From 4340e66db1466d98e2955a76a9e9b0a5c70d01d4 Mon Sep 17 00:00:00 2001 +From 6c51eddfc9e23de7e9c2b21e39c70bda76027686 Mon Sep 17 00:00:00 2001 From: Aaron Shaw Date: Thu, 28 Dec 2017 17:34:54 +0000 -Subject: [PATCH 158/201] add backlight control to media-center overlay +Subject: [PATCH 158/235] add backlight control to media-center overlay --- arch/arm/boot/dts/overlays/README | 1 + @@ -138960,10 +138949,10 @@ index a42b8e2a846c6e614ca807f798bef238ad002535..ce4db35228e9f68e3f3f40f0f9c02f89 gpio_out_pin = <&lirc_pins>,"brcm,pins:0"; gpio_in_pin = <&lirc_pins>,"brcm,pins:4"; -From b6aa8f68bb98befe327dac394280cff8ed4cea3b Mon Sep 17 00:00:00 2001 +From 438a18c35425d8a9e416a27e8b695e7671ec17ac Mon Sep 17 00:00:00 2001 From: penfold42 Date: Tue, 2 Jan 2018 00:15:19 +1100 -Subject: [PATCH 159/201] Add overlay for mcp3202 12 bit ADC +Subject: [PATCH 159/235] Add overlay for mcp3202 12 bit ADC --- arch/arm/boot/dts/overlays/Makefile | 1 + @@ -139216,10 +139205,10 @@ index 0000000000000000000000000000000000000000..9902c4614ea1f9e5725b3c4a2e62429a + }; +}; -From 0a7f7ca113a71789fc5f43717cd7e0dd5c8a1967 Mon Sep 17 00:00:00 2001 +From 6718d312300b020e6e122eb364c0696d8fb95e37 Mon Sep 17 00:00:00 2001 From: Stefan Schake Date: Sat, 2 Dec 2017 18:40:39 +0100 -Subject: [PATCH 160/201] drm/vc4: Release fence after signalling +Subject: [PATCH 160/235] drm/vc4: Release fence after signalling [ Upstream commit babc8110057cb9ca542c3c1666cbda4e8ccf9250 ] @@ -139238,7 +139227,7 @@ Link: https://patchwork.freedesktop.org/patch/msgid/1512236444-301-1-git-send-em 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/vc4/vc4_gem.c b/drivers/gpu/drm/vc4/vc4_gem.c -index d0c6bfb68c4ee9d88c2a026e5908915d331733db..e554cbf18a55c30e6dce1ef8bf3a5a60a6b73407 100644 +index c50debb1986f061759cf02fa92f4e2e480c969d4..d31b3d0c995543bb965464eb148b0036194683b4 100644 --- a/drivers/gpu/drm/vc4/vc4_gem.c +++ b/drivers/gpu/drm/vc4/vc4_gem.c @@ -829,8 +829,10 @@ vc4_complete_exec(struct drm_device *dev, struct vc4_exec_info *exec) @@ -139254,7 +139243,7 @@ index d0c6bfb68c4ee9d88c2a026e5908915d331733db..e554cbf18a55c30e6dce1ef8bf3a5a60 if (exec->bo) { for (i = 0; i < exec->bo_count; i++) diff --git a/drivers/gpu/drm/vc4/vc4_irq.c b/drivers/gpu/drm/vc4/vc4_irq.c -index 7d7af3a93d941bb9552afc1140c408c8da86be37..fc1fc43a924dcc0c44a7a13858bfb53ccdf8fe32 100644 +index 521addec831e9911c58c2341256d7d5bb8b07338..3dd62d75f5319dbffcd9d27ea6f60927d193eb92 100644 --- a/drivers/gpu/drm/vc4/vc4_irq.c +++ b/drivers/gpu/drm/vc4/vc4_irq.c @@ -139,6 +139,7 @@ vc4_irq_finish_render_job(struct drm_device *dev) @@ -139266,10 +139255,10 @@ index 7d7af3a93d941bb9552afc1140c408c8da86be37..fc1fc43a924dcc0c44a7a13858bfb53c } vc4_submit_next_render_job(dev); -From 9a9777684a05f6b427b978d2d9fc0a5ab272aa17 Mon Sep 17 00:00:00 2001 +From d75c1e9b2c707831efb8737b466b2906511f98eb Mon Sep 17 00:00:00 2001 From: P33M Date: Tue, 9 Jan 2018 15:16:35 +0000 -Subject: [PATCH 161/201] dwc_otg: don't unconditionally force host mode in +Subject: [PATCH 161/235] dwc_otg: don't unconditionally force host mode in dwc_otg_cil_init() Add the ability to disable force_host_mode for those that want to use @@ -139330,10 +139319,10 @@ index af123d01f3ef9f99450c78efdf766ca35e15cbc9..e945900c503cb383d754381b055955b1 * * The following parameters may be specified when starting the module. -From 6889eaa3913832dfbbd54563b22411b589bec178 Mon Sep 17 00:00:00 2001 +From b6efed684e79c7b78bfc684e594e80b156499727 Mon Sep 17 00:00:00 2001 From: Sugizaki Yukimasa Date: Thu, 4 Jan 2018 23:58:06 +0900 -Subject: [PATCH 162/201] vcsm: Define cache operation constants in user header +Subject: [PATCH 162/235] vcsm: Define cache operation constants in user header Without this change, users have to use raw values (1, 2, 3) to specify cache operation. @@ -139377,10 +139366,10 @@ index b75729d762f25aace133f7a008633b4094ae2de2..ddbeebc71ada82e88a1668fbdfd9821a struct vmcs_sm_ioctl_alloc { /* user -> kernel */ -From e3343bc0a679929bdb6eb0cde17f3a0d7d7744ac Mon Sep 17 00:00:00 2001 +From 5677e44b0ee8fa96cd5aa63aa2b5425225f3bd46 Mon Sep 17 00:00:00 2001 From: Sugizaki Yukimasa Date: Fri, 5 Jan 2018 00:01:30 +0900 -Subject: [PATCH 163/201] vcsm: Support for finding user/vc handle in memory +Subject: [PATCH 163/235] vcsm: Support for finding user/vc handle in memory pool vmcs_sm_{usr,vc}_handle_from_pid_and_address() were failing to find @@ -139422,10 +139411,10 @@ index 53843054d7617716761b74d8a3d91551b91ffb75..abd770566ed30102b95a01cec6a3825b pr_debug("[%s]: global map %p (pid %u, addr %lx) -> usr-hdl %x (vc-hdl %x)\n", -From 70863f0684d05d286c54776d566890d6237c6016 Mon Sep 17 00:00:00 2001 +From 880bf28594aab782d72a3656f799e33634223812 Mon Sep 17 00:00:00 2001 From: Sugizaki Yukimasa Date: Fri, 5 Jan 2018 00:44:00 +0900 -Subject: [PATCH 164/201] vcsm: Unify cache manipulating functions +Subject: [PATCH 164/235] vcsm: Unify cache manipulating functions Signed-off-by: Sugizaki Yukimasa --- @@ -139811,10 +139800,10 @@ index abd770566ed30102b95a01cec6a3825b23afcd9d..b6cdc1934ad2092892898559f6f0d481 kfree(block); } -From 7dc83438d7f87a2ff1f91f166dc1bbb38dc03cf4 Mon Sep 17 00:00:00 2001 +From 96b4538bffd07e727a97e1a9bb8b296e0210df45 Mon Sep 17 00:00:00 2001 From: Sugizaki Yukimasa Date: Mon, 8 Jan 2018 21:07:17 +0900 -Subject: [PATCH 165/201] vcsm: Fix obscure conditions +Subject: [PATCH 165/235] vcsm: Fix obscure conditions Signed-off-by: Sugizaki Yukimasa --- @@ -139846,10 +139835,10 @@ index b6cdc1934ad2092892898559f6f0d481a7744fa9..95963ffba51afdbdfec26a8c75eec0f5 return -EINVAL; } -From fc3017545e5eeda9213ea5be6ffa22a248a5cf4a Mon Sep 17 00:00:00 2001 +From d9f134b0b84db7a04e8440b4cef7b0f242a39e85 Mon Sep 17 00:00:00 2001 From: Sugizaki Yukimasa Date: Mon, 8 Jan 2018 21:11:23 +0900 -Subject: [PATCH 166/201] vcsm: Fix memory leaking on clean_invalid2 ioctl +Subject: [PATCH 166/235] vcsm: Fix memory leaking on clean_invalid2 ioctl handler Signed-off-by: Sugizaki Yukimasa @@ -139871,10 +139860,10 @@ index 95963ffba51afdbdfec26a8c75eec0f5e0c2f4e1..380437f41cc64902c9576e53d0beaf76 kfree(block); } -From 4639822b5395adf37dfbbc462bdb0c3d40608339 Mon Sep 17 00:00:00 2001 +From 4004413084d7a9a01d471c31f6f18a4b707383cf Mon Sep 17 00:00:00 2001 From: Sugizaki Yukimasa Date: Mon, 8 Jan 2018 21:15:13 +0900 -Subject: [PATCH 167/201] vcsm: Describe the use of cache operation constants +Subject: [PATCH 167/235] vcsm: Describe the use of cache operation constants Signed-off-by: Sugizaki Yukimasa --- @@ -139913,10 +139902,10 @@ index ddbeebc71ada82e88a1668fbdfd9821a39d7cd22..e881fa8ee8e1474cdaa0759b742a5f67 /* user -> kernel */ struct { -From dc8f13b3910d196183b29cb20f2632b169e40ba8 Mon Sep 17 00:00:00 2001 +From 1cf011229678539f6284c712cf8887deaf1e9774 Mon Sep 17 00:00:00 2001 From: Sugizaki Yukimasa Date: Tue, 9 Jan 2018 12:33:24 +0900 -Subject: [PATCH 168/201] vcsm: Fix obscure conditions again +Subject: [PATCH 168/235] vcsm: Fix obscure conditions again Signed-off-by: Sugizaki Yukimasa --- @@ -139939,10 +139928,10 @@ index 380437f41cc64902c9576e53d0beaf76ccdc1551..0d14c511da2ab8f542d51ad87746be85 pr_debug("[%s]: global map %p (pid %u, addr %lx) -> usr-hdl %x (vc-hdl %x)\n", -From cc8c97c4dcef600ec8c5f720e8c707a9169b5234 Mon Sep 17 00:00:00 2001 +From 28e29ce5f9ba23f0b2c273d383dbcfc5adde36e5 Mon Sep 17 00:00:00 2001 From: Sugizaki Yukimasa Date: Wed, 10 Jan 2018 04:32:20 +0900 -Subject: [PATCH 169/201] vcsm: Add no-op cache operation constant +Subject: [PATCH 169/235] vcsm: Add no-op cache operation constant Signed-off-by: Sugizaki Yukimasa --- @@ -140005,10 +139994,10 @@ index e881fa8ee8e1474cdaa0759b742a5f67c122c9eb..a4492b921b48e2c7fdd2745f2d2bad48 #define VCSM_CACHE_OP_CLEAN 0x02 #define VCSM_CACHE_OP_FLUSH 0x03 -From a12ca58115215b97d90d315a3132176d5c30c4df Mon Sep 17 00:00:00 2001 +From ca692eed586c251d4d4ce1ebf256d4e877a0069e Mon Sep 17 00:00:00 2001 From: Sugizaki Yukimasa Date: Wed, 10 Jan 2018 06:25:51 +0900 -Subject: [PATCH 170/201] vcsm: Revert to do page-table-walk-based cache +Subject: [PATCH 170/235] vcsm: Revert to do page-table-walk-based cache manipulating on some ioctl calls On FLUSH, INVALID, CLEAN_INVALID ioctl calls, cache operations based on @@ -140243,10 +140232,10 @@ index 122ea149790b549aa7550ddb9cff64dc2195fc61..1bc37ee882255c0d05beac58bb3b9e31 break; } -From ddb358bb53765d3ca2c6a88f5e0afea2e3b670d9 Mon Sep 17 00:00:00 2001 +From ef776ad5d98ab13fbbab6c50fb012b0375b93925 Mon Sep 17 00:00:00 2001 From: Aaron Shaw Date: Thu, 4 Jan 2018 15:02:16 +0000 -Subject: [PATCH 171/201] add gpio-key overlay (#2329) +Subject: [PATCH 171/235] add gpio-key overlay (#2329) An overlay that allows a Linux key to be bound to a GPIO. --- @@ -140355,10 +140344,10 @@ index 0000000000000000000000000000000000000000..333d016d6f02981f69acedbf683171b4 + +}; -From c0f292abf10d876de6eab351ae31fbe21c477597 Mon Sep 17 00:00:00 2001 +From 1faab4f97469d17da63b2810a40436710eca1933 Mon Sep 17 00:00:00 2001 From: Aaron Shaw Date: Fri, 5 Jan 2018 15:08:37 +0000 -Subject: [PATCH 172/201] add additional overrides to rotary-encoder overlay +Subject: [PATCH 172/235] add additional overrides to rotary-encoder overlay (#2334) --- @@ -140435,10 +140424,10 @@ index c0c6bccff60cc15d9a9bf59d2c7cba41eb9c1cdc..f88f8a39d9a2f2afbf80edf2d9b32841 }; }; -From 775be202cf30f32b086f9bb64b120ba38c687e2e Mon Sep 17 00:00:00 2001 +From 5710f90cde747c0d09116a1e546d3fd13473adc1 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 12 Jan 2018 09:15:01 +0000 -Subject: [PATCH 173/201] overlays: Add uart0 overlay to change pin usage +Subject: [PATCH 173/235] overlays: Add uart0 overlay to change pin usage Signed-off-by: Phil Elwell --- @@ -140524,10 +140513,10 @@ index 0000000000000000000000000000000000000000..20b2a609c511b017d1231e08c901d165 + }; +}; -From 36db437449567b828e0e19e460a9f45f8a57fe99 Mon Sep 17 00:00:00 2001 +From 5f8280088226fbe9d936185d4eef0cb91a0bcce3 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 16 Jan 2018 12:59:17 +0000 -Subject: [PATCH 175/201] overlays: Fix resetgpio and ledgpio for hy28a/b +Subject: [PATCH 174/235] overlays: Fix resetgpio and ledgpio for hy28a/b Offsets for overlay parameters are specified in bytes, not in access units. @@ -140571,10 +140560,10 @@ index 8018aebde8e557f45ffd63eb86f6c7a1048fe3cb..70c1118064b64be1811ed2f1bb04efd6 }; }; -From 803e3c3b090dafdc3b17c3454ebce9ffc329ff61 Mon Sep 17 00:00:00 2001 +From 5636ddc18dd1d24b7ae9e4147ee384f0bd5cc70d Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Thu, 18 Jan 2018 12:36:44 +0100 -Subject: [PATCH 176/201] ASoC: bcm2835: fix hw_params error when device is in +Subject: [PATCH 175/235] ASoC: bcm2835: fix hw_params error when device is in prepared state (#2345) commit 8d5737a5f53902a916ee1e1cb248c9b8b883b2ea upstream. @@ -140643,10 +140632,10 @@ index 2e449d7173fcecbcd647f90a26bd58b6c421bcde..d5f73a8ab8932768c4df1470e94e78bf * Clear both FIFOs if the one that should be started * is not empty at the moment. This should only happen -From f699a6fbdeb37d160b6ac3acb2f24fd137f8b761 Mon Sep 17 00:00:00 2001 +From f91d7b7a11efb0b10a2ae2fece9bbc66ada2d4cf Mon Sep 17 00:00:00 2001 From: Ahmet Inan Date: Sat, 14 Oct 2017 10:10:53 -0700 -Subject: [PATCH 177/201] Input: add I2C attached EETI EXC3000 multi touch +Subject: [PATCH 176/235] Input: add I2C attached EETI EXC3000 multi touch driver commit 7e577a17f2eefeef32f1106ebf91e7cd143ba654 upstream. @@ -140974,10 +140963,10 @@ index 0000000000000000000000000000000000000000..bed0db6999050c3ad5adf9c5d02784a0 +MODULE_DESCRIPTION("I2C connected EETI EXC3000 multiple touch controller driver"); +MODULE_LICENSE("GPL v2"); -From 4d372cf956640256e984954fbb0da1de85c7b4c7 Mon Sep 17 00:00:00 2001 +From 7ef1515576305a59eefc871c91282b7a4754f970 Mon Sep 17 00:00:00 2001 From: Ahmet Inan Date: Fri, 1 Sep 2017 15:14:23 +0200 -Subject: [PATCH 178/201] config: Add EETI EXC3000 touch controller module +Subject: [PATCH 177/235] config: Add EETI EXC3000 touch controller module Signed-off-by: Ahmet Inan --- @@ -141010,10 +140999,10 @@ index 4cfd4e6a339009536d6ebaaff36e4007573cfe63..f2563f6824b6b16d9f44bc0ee1da818b CONFIG_TOUCHSCREEN_EDT_FT5X06=m CONFIG_TOUCHSCREEN_RPI_FT5406=m -From 7ab515ca002cf441672442295ebc17704a46bd49 Mon Sep 17 00:00:00 2001 +From e8501f025666d1c4406495fb0e43805f1ee76bcb Mon Sep 17 00:00:00 2001 From: Ahmet Inan Date: Fri, 1 Sep 2017 15:18:01 +0200 -Subject: [PATCH 179/201] overlays: Add EETI EXC3000 overlay +Subject: [PATCH 178/235] overlays: Add EETI EXC3000 overlay Add support for I2C connected EETI EXC3000 multiple touch controller using GPIO 4 (pin 7 on GPIO header) for interrupt. @@ -141116,10 +141105,10 @@ index 0000000000000000000000000000000000000000..c5694033d03f31391b508b89845b029c + }; +}; -From 7c76d487c72038e9b8500c205bd891ca29e5dc2b Mon Sep 17 00:00:00 2001 +From 1a93c2e1b2d4cea9da436bd5b7ac4aeff25153df Mon Sep 17 00:00:00 2001 From: Yevhen Kyriukha Date: Sun, 14 Jan 2018 13:36:24 +0200 -Subject: [PATCH 180/201] Added support for mbed AudioCODEC (TLV320AIC23B) +Subject: [PATCH 179/235] Added support for mbed AudioCODEC (TLV320AIC23B) Signed-off-by: Yevhen Kyriukha --- @@ -141229,10 +141218,10 @@ index 0000000000000000000000000000000000000000..313563d6ed47fb1e0db8f8ffa4505b61 + }; +}; -From 227a662e6bd5f52888a2df01d497f0811c6c9bad Mon Sep 17 00:00:00 2001 +From f16c639e175db4b4d6741ee364b4b39eb4fa863e Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 22 Jan 2018 12:17:27 +0000 -Subject: [PATCH 181/201] mmc: bcm2835-sdhost: Support underclocking +Subject: [PATCH 180/235] mmc: bcm2835-sdhost: Support underclocking Support underclocking of the SD bus in two ways: 1. using the max-frequency DT property (which currently has no DT @@ -141275,10 +141264,10 @@ index 9c6f199a7830959f31012d86bc1f8b1a9922185f..6c0dafe6c64b03f91cfb0360861c29dd mmc->max_busy_timeout = (~(unsigned int)0)/(mmc->f_max/1000); -From b1c4b373e17d7da51a18d65ae35ce689daebe422 Mon Sep 17 00:00:00 2001 +From 1b2c09c2df8c7e014130ac89bfef74bd3343aaa1 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 22 Jan 2018 12:22:01 +0000 -Subject: [PATCH 182/201] mmc: bcm2835-mmc: Support underclocking +Subject: [PATCH 181/235] mmc: bcm2835-mmc: Support underclocking Support underclocking of the SD bus using the max-frequency DT property (which currently has no DT parameter). The sd_overclock parameter @@ -141309,10 +141298,10 @@ index c4a5e992c6fb4a40b933239350ed4bfc8fb40155..b7f5fd96ecb6c59395022e868726f890 /* SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK */ -From bde5bc3d8ea7a2e568ca1b3b04799699bf958644 Mon Sep 17 00:00:00 2001 +From f6f8fa93b0adf8e829765960790e9cf16f3cd389 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 22 Jan 2018 17:26:38 +0000 -Subject: [PATCH 183/201] serial: 8250: bcm2835aux - suppress EPROBE_DEFER +Subject: [PATCH 182/235] serial: 8250: bcm2835aux - suppress EPROBE_DEFER Signed-off-by: Phil Elwell --- @@ -141334,10 +141323,10 @@ index a23c7da42ea81342efc26fb35a92a69d535b7cd0..4f8b8c97186879949a313ce185fcd6e0 } -From 60aee17f855f734446ad5abecb5534c39b6a1453 Mon Sep 17 00:00:00 2001 +From aaf1b84972ebd90639f6a1561ded3741d1347702 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 23 Jan 2018 16:52:45 +0000 -Subject: [PATCH 184/201] irqchip: irq-bcm2836: Remove regmap and syscon use +Subject: [PATCH 183/235] irqchip: irq-bcm2836: Remove regmap and syscon use The syscon node defines a register range that duplicates that used by the local_intc node on bcm2836/7. Since irq-bcm2835 and irq-bcm2836 are @@ -141485,10 +141474,10 @@ index 05b17ca993f405c4c8e61a782ec58149038069c2..963415c919146e66ef36f4da8f157cab intc.domain = irq_domain_add_linear(node, LAST_IRQ + 1, -From cea8e4e4a3d5e9442a7bde8296addd1712de5125 Mon Sep 17 00:00:00 2001 +From 851663b0bdc04c1f870991b77811d8d720d9eac3 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 24 Jan 2018 15:19:39 +0000 -Subject: [PATCH 185/201] lan78xx: Avoid spurious kevent 4 "error" +Subject: [PATCH 184/235] lan78xx: Avoid spurious kevent 4 "error" lan78xx_defer_event generates an error message whenever the work item is already scheduled. lan78xx_open defers three events - @@ -141505,10 +141494,10 @@ Signed-off-by: Phil Elwell 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c -index 26e04c732df49d09939d470c61a9ab4638901e81..2fcad3698971efc0587e6352e4b09cd4f5fbea58 100644 +index 76674d8881b588f0a47c3a6f568825fdf034aea5..da0b0bcb7d39d6657ef4c1353e5dcf27bc3c8298 100644 --- a/drivers/net/usb/lan78xx.c +++ b/drivers/net/usb/lan78xx.c -@@ -2517,7 +2517,7 @@ static void lan78xx_init_stats(struct lan78xx_net *dev) +@@ -2518,7 +2518,7 @@ static void lan78xx_init_stats(struct lan78xx_net *dev) dev->stats.rollover_max.eee_tx_lpi_transitions = 0xFFFFFFFF; dev->stats.rollover_max.eee_tx_lpi_time = 0xFFFFFFFF; @@ -141518,10 +141507,10 @@ index 26e04c732df49d09939d470c61a9ab4638901e81..2fcad3698971efc0587e6352e4b09cd4 static int lan78xx_open(struct net_device *net) -From 5721058e77df9a45bf6244cd2d1ee852573aa764 Mon Sep 17 00:00:00 2001 +From 4c260953162c43f33493187b8559d7360bfe309f Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 24 Jan 2018 20:00:48 +0000 -Subject: [PATCH 186/201] overlays: Allow multiple pps-gpio instantiations +Subject: [PATCH 185/235] overlays: Allow multiple pps-gpio instantiations See: https://github.com/raspberrypi/linux/issues/2352 @@ -141564,10 +141553,10 @@ index 50143a4bb215807ba0a0d0562f5827fa29a04de4..9ee4bdfa6167355e82d7f8229613f294 }; }; -From e6a75ac365934ba710df58161752ffa644676b17 Mon Sep 17 00:00:00 2001 +From 44ed78ef80719085bff8569759a90626101873a7 Mon Sep 17 00:00:00 2001 From: Thierry Reding Date: Fri, 1 Sep 2017 16:49:54 +0200 -Subject: [PATCH 187/201] drm/vc4: Use correct path to trace include +Subject: [PATCH 186/235] drm/vc4: Use correct path to trace include MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -141612,10 +141601,10 @@ index ad7b1ea720c288eb587d16e5f8e10eace5de93f3..deafb32923e147f4bb9ad93ce441a6ae +#define TRACE_INCLUDE_PATH ../../drivers/gpu/drm/vc4 #include -From f81366aba5bccf858a5f802923f47daec3d2cf99 Mon Sep 17 00:00:00 2001 +From 479cebff8195822e66f7e64c7179960af290422b Mon Sep 17 00:00:00 2001 From: Colin Ian King Date: Fri, 8 Sep 2017 15:05:04 +0100 -Subject: [PATCH 188/201] drm/vc4: clean up error handling on devm_kzalloc +Subject: [PATCH 187/235] drm/vc4: clean up error handling on devm_kzalloc failure The current error handling when devm_kzalloc fails performs a @@ -141672,10 +141661,10 @@ index 8f71157a2b063b07a3d3c195ae5049a0ddcac03e..0b2088264039131f05c2f09bc9ba84d2 static void vc4_hdmi_encoder_destroy(struct drm_encoder *encoder) -From b580a62d2155d5330c20152315e2679a2646c6a0 Mon Sep 17 00:00:00 2001 +From c7dc0942f1c1d8a7e3ee2fa0a515e87c6d4f5ea8 Mon Sep 17 00:00:00 2001 From: Boris Brezillon Date: Thu, 19 Oct 2017 14:57:48 +0200 -Subject: [PATCH 189/201] drm/vc4: Add the DRM_IOCTL_VC4_GEM_MADVISE ioctl +Subject: [PATCH 188/235] drm/vc4: Add the DRM_IOCTL_VC4_GEM_MADVISE ioctl This ioctl will allow us to purge inactive userspace buffers when the system is running out of contiguous memory. @@ -142231,7 +142220,7 @@ index 9d5e35ea5a7c9f134ec6e661b0056b47df9719ef..0d71831571ea68526d26310daf874b76 /* vc4_hdmi.c */ extern struct platform_driver vc4_hdmi_driver; diff --git a/drivers/gpu/drm/vc4/vc4_gem.c b/drivers/gpu/drm/vc4/vc4_gem.c -index e554cbf18a55c30e6dce1ef8bf3a5a60a6b73407..277707cc97a0d52759a5f6a6feee17445d065789 100644 +index d31b3d0c995543bb965464eb148b0036194683b4..a3008cc312e43e6c41218bca7debde390d95c822 100644 --- a/drivers/gpu/drm/vc4/vc4_gem.c +++ b/drivers/gpu/drm/vc4/vc4_gem.c @@ -188,11 +188,22 @@ vc4_save_hang_state(struct drm_device *dev) @@ -142247,7 +142236,7 @@ index e554cbf18a55c30e6dce1ef8bf3a5a60a6b73407..277707cc97a0d52759a5f6a6feee1744 + WARN_ON(!refcount_read(&bo->usecnt)); + refcount_inc(&bo->usecnt); drm_gem_object_get(&exec[i]->bo[j]->base); - kernel_state->bo[j + prev_idx] = &exec[i]->bo[j]->base; + kernel_state->bo[k++] = &exec[i]->bo[j]->base; } list_for_each_entry(bo, &exec[i]->unref_list, unref_head) { @@ -142255,8 +142244,8 @@ index e554cbf18a55c30e6dce1ef8bf3a5a60a6b73407..277707cc97a0d52759a5f6a6feee1744 + * because they are naturally unpurgeable. + */ drm_gem_object_get(&bo->base.base); - kernel_state->bo[j + prev_idx] = &bo->base.base; - j++; + kernel_state->bo[k++] = &bo->base.base; + } @@ -233,6 +244,26 @@ vc4_save_hang_state(struct drm_device *dev) state->fdbgs = V3D_READ(V3D_FDBGS); state->errstat = V3D_READ(V3D_ERRSTAT); @@ -142555,10 +142544,10 @@ index afae870049636e9c5db9a10a03d40dc3beb4c6ee..52263b575bdc4e5d9a6c6e628b12918e } #endif -From 94bbbc00be9d9f2e26faaf6859244204ad04958a Mon Sep 17 00:00:00 2001 +From a73e785de423f6c3bd0b526794c5522c7489ed84 Mon Sep 17 00:00:00 2001 From: Boris Brezillon Date: Wed, 22 Nov 2017 21:39:28 +0100 -Subject: [PATCH 190/201] drm/vc4: Fix false positive WARN() backtrace on +Subject: [PATCH 189/235] drm/vc4: Fix false positive WARN() backtrace on refcount_inc() usage With CONFIG_REFCOUNT_FULL enabled, refcount_inc() complains when it's @@ -142599,10 +142588,10 @@ index 01a53ba304f89769ccedf66f2cba361f809b54c8..55f03ad827ed82d967bcdb3c8f060226 break; case VC4_MADV_DONTNEED: -From 4eebaa2a9e1d93784ba5f33b048af54969d669db Mon Sep 17 00:00:00 2001 +From 0c241328e80edce5dd1be1e94d720585288fd54b Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Fri, 13 Oct 2017 17:12:55 -0700 -Subject: [PATCH 191/201] drm/vc4: Fix sleeps during the IRQ handler for DSI +Subject: [PATCH 190/235] drm/vc4: Fix sleeps during the IRQ handler for DSI transactions. VC4's DSI1 has a bug where the AXI connection is broken for 32-bit @@ -142675,10 +142664,10 @@ index 04796d7d0fdbb441c09ecbd9b4fbce41a7831534..9a1a559ba287c460b274c6a279883e69 if (ret != -EPROBE_DEFER) dev_err(dev, "Failed to get interrupt: %d\n", ret); -From 501ce595625354292dddfa3cd32c519ed7f6fd5b Mon Sep 17 00:00:00 2001 +From 11bd97499205dc296e4e6c5b10c715a45129ed73 Mon Sep 17 00:00:00 2001 From: Kees Cook Date: Tue, 24 Oct 2017 08:16:48 -0700 -Subject: [PATCH 192/201] drm/vc4: Convert timers to use timer_setup() +Subject: [PATCH 191/235] drm/vc4: Convert timers to use timer_setup() In preparation for unconditionally passing the struct timer_list pointer to all timer callbacks, switch to using the new timer_setup() and from_timer() @@ -142726,7 +142715,7 @@ index 55f03ad827ed82d967bcdb3c8f060226aac2036d..2b587e5b4628fc62cbadd7e994660324 return 0; } diff --git a/drivers/gpu/drm/vc4/vc4_gem.c b/drivers/gpu/drm/vc4/vc4_gem.c -index 277707cc97a0d52759a5f6a6feee17445d065789..638540943c61a5e095c87be8d2b2bf543ea933b1 100644 +index a3008cc312e43e6c41218bca7debde390d95c822..152ce55160fef90b24d737f1457f5e7dcc0bd81d 100644 --- a/drivers/gpu/drm/vc4/vc4_gem.c +++ b/drivers/gpu/drm/vc4/vc4_gem.c @@ -312,10 +312,10 @@ vc4_reset_work(struct work_struct *work) @@ -142755,110 +142744,10 @@ index 277707cc97a0d52759a5f6a6feee17445d065789..638540943c61a5e095c87be8d2b2bf54 INIT_WORK(&vc4->job_done_work, vc4_job_done_work); -From 4d3059fd708947186445b986b46d8cfdd9a8a782 Mon Sep 17 00:00:00 2001 -From: Stefan Schake -Date: Fri, 10 Nov 2017 02:05:06 +0100 -Subject: [PATCH 193/201] drm/vc4: Account for interrupts in flight - -Synchronously disable the IRQ to make the following cancel_work_sync -invocation effective. - -An interrupt in flight could enqueue further overflow mem work. As we -free the binner BO immediately following vc4_irq_uninstall this caused -a NULL pointer dereference in the work callback vc4_overflow_mem_work. - -Link: https://github.com/anholt/linux/issues/114 -Signed-off-by: Stefan Schake -Fixes: d5b1a78a772f ("drm/vc4: Add support for drawing 3D frames.") -Signed-off-by: Eric Anholt -Reviewed-by: Eric Anholt -Link: https://patchwork.freedesktop.org/patch/msgid/1510275907-993-2-git-send-email-stschake@gmail.com -(cherry picked from commit 253696ccd613fbdaa5aba1de44c461a058e0a114) ---- - drivers/gpu/drm/vc4/vc4_irq.c | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/drivers/gpu/drm/vc4/vc4_irq.c b/drivers/gpu/drm/vc4/vc4_irq.c -index fc1fc43a924dcc0c44a7a13858bfb53ccdf8fe32..26eddbb628936b91f20a000c405bfbc536324e89 100644 ---- a/drivers/gpu/drm/vc4/vc4_irq.c -+++ b/drivers/gpu/drm/vc4/vc4_irq.c -@@ -209,6 +209,9 @@ vc4_irq_postinstall(struct drm_device *dev) - { - struct vc4_dev *vc4 = to_vc4_dev(dev); - -+ /* Undo the effects of a previous vc4_irq_uninstall. */ -+ enable_irq(dev->irq); -+ - /* Enable both the render done and out of memory interrupts. */ - V3D_WRITE(V3D_INTENA, V3D_DRIVER_IRQS); - -@@ -226,6 +229,9 @@ vc4_irq_uninstall(struct drm_device *dev) - /* Clear any pending interrupts we might have left. */ - V3D_WRITE(V3D_INTCTL, V3D_DRIVER_IRQS); - -+ /* Finish any interrupt handler still in flight. */ -+ disable_irq(dev->irq); -+ - cancel_work_sync(&vc4->overflow_mem_work); - } - - -From dabedf91bcfc0b34ea482b4a720d4d0ff2cfebdb Mon Sep 17 00:00:00 2001 -From: Stefan Schake -Date: Fri, 29 Dec 2017 17:05:43 +0100 -Subject: [PATCH 194/201] drm/vc4: Move IRQ enable to PM path - -We were calling enable_irq on bind, where it was already enabled previously -by the IRQ helper. Additionally, dev->irq is not set correctly until after -postinstall and so was always zero here, triggering a warning in 4.15. -Fix both by moving the enable to the power management resume path, where we -know there was a previous disable invocation during suspend. - -Fixes: 253696ccd613 ("drm/vc4: Account for interrupts in flight") -Signed-off-by: Stefan Schake -Signed-off-by: Eric Anholt -Link: https://patchwork.freedesktop.org/patch/msgid/1514563543-32511-1-git-send-email-stschake@gmail.com -Tested-by: Stefan Wahren -Reviewed-by: Eric Anholt -(cherry picked from commit ce9caf2f79a5aa170a4b6456a03db639eed9c988) ---- - drivers/gpu/drm/vc4/vc4_irq.c | 3 --- - drivers/gpu/drm/vc4/vc4_v3d.c | 3 +++ - 2 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/drivers/gpu/drm/vc4/vc4_irq.c b/drivers/gpu/drm/vc4/vc4_irq.c -index 26eddbb628936b91f20a000c405bfbc536324e89..3dd62d75f5319dbffcd9d27ea6f60927d193eb92 100644 ---- a/drivers/gpu/drm/vc4/vc4_irq.c -+++ b/drivers/gpu/drm/vc4/vc4_irq.c -@@ -209,9 +209,6 @@ vc4_irq_postinstall(struct drm_device *dev) - { - struct vc4_dev *vc4 = to_vc4_dev(dev); - -- /* Undo the effects of a previous vc4_irq_uninstall. */ -- enable_irq(dev->irq); -- - /* Enable both the render done and out of memory interrupts. */ - V3D_WRITE(V3D_INTENA, V3D_DRIVER_IRQS); - -diff --git a/drivers/gpu/drm/vc4/vc4_v3d.c b/drivers/gpu/drm/vc4/vc4_v3d.c -index 622cd43840b8c53588396b6d1d82b5d234a69113..493f392b3a0a90e70820d3582c0847ebe3cc0bd7 100644 ---- a/drivers/gpu/drm/vc4/vc4_v3d.c -+++ b/drivers/gpu/drm/vc4/vc4_v3d.c -@@ -327,6 +327,9 @@ static int vc4_v3d_runtime_resume(struct device *dev) - return ret; - - vc4_v3d_init_hw(vc4->dev); -+ -+ /* We disabled the IRQ as part of vc4_irq_uninstall in suspend. */ -+ enable_irq(vc4->dev->irq); - vc4_irq_postinstall(vc4->dev); - - return 0; - -From 02cde8c33b3d6732cb3273cd793d4d82738cedf2 Mon Sep 17 00:00:00 2001 +From c360f0ae1a4f391201c65d3488e095768dd9a8f7 Mon Sep 17 00:00:00 2001 From: Boris BREZILLON Date: Wed, 1 Nov 2017 10:57:31 +0100 -Subject: [PATCH 195/201] drm/vc4: Fix wrong printk format in +Subject: [PATCH 192/235] drm/vc4: Fix wrong printk format in vc4_bo_stats_debugfs() vc4->purgeable.size and vc4->purgeable.purged_size are size_t fields @@ -142893,10 +142782,10 @@ index 2b587e5b4628fc62cbadd7e99466032438d7e5c3..2decc8e2c79f58aad6ea7626a32a0f26 vc4->purgeable.purged_num); mutex_unlock(&vc4->purgeable.lock); -From dc229564cf81b042bd786d76a282f5dfc2cadc2c Mon Sep 17 00:00:00 2001 +From c098e2498a0b3614fd6c9a7d89ab2cedba82ed6e Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Wed, 20 Sep 2017 15:59:34 -0700 -Subject: [PATCH 196/201] drm/vc4: Reject HDMI modes with too high of clocks. +Subject: [PATCH 193/235] drm/vc4: Reject HDMI modes with too high of clocks. Peter Robinson reported issues on Fedora with 4k monitors not having their modes filtered down to 1920x1080 on Raspberry Pi. @@ -142940,10 +142829,10 @@ index 0b2088264039131f05c2f09bc9ba84d2d3793e39..8ab20c1e9e69e90b90c7f74640033f93 .enable = vc4_hdmi_encoder_enable, }; -From 135bf726b5e10f5c5819eb55053d1992f9baee74 Mon Sep 17 00:00:00 2001 +From 8bf534b1fefbc2eb542ac00329de241ca7d0729c Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 16 Nov 2017 14:22:29 +0000 -Subject: [PATCH 197/201] drm/vc4: Add support for DRM_FORMAT_RGB888 and +Subject: [PATCH 194/235] drm/vc4: Add support for DRM_FORMAT_RGB888 and DRM_FORMAT_BGR888 Filling out the list of supported formats based on those the @@ -142978,10 +142867,10 @@ index e2b3cd6d885b080a3c3077cc160a549bec9b0330..497cb7d50946c6aa8e4d676982902694 .drm = DRM_FORMAT_YUV422, .hvs = HVS_PIXEL_FORMAT_YCBCR_YUV422_3PLANE, -From 5e7b8dd6089f196e15c331e66669518dc8504bd3 Mon Sep 17 00:00:00 2001 +From 6a513658692da2d4397795f5345269ae61f6801d Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 16 Nov 2017 14:22:30 +0000 -Subject: [PATCH 198/201] drm/vc4: Use .pixel_order instead of custom +Subject: [PATCH 195/235] drm/vc4: Use .pixel_order instead of custom .flip_cbcr The hardware has enums for altering the Cr and Cb order, @@ -143067,10 +142956,10 @@ index 497cb7d50946c6aa8e4d676982902694ff46e113..5c67090e93f5e574de197735f01c6c4d /* Pointer Context Word 0/1/2: Written by the HVS */ for (i = 0; i < num_planes; i++) -From 4dfeb8e735feaad74b65c9d8cee2bd1bce3750d0 Mon Sep 17 00:00:00 2001 +From 592fb5991341ab9dea3011432460e26b69bb5977 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 16 Nov 2017 14:22:31 +0000 -Subject: [PATCH 199/201] drm/vc4: Add support for NV21 and NV61. +Subject: [PATCH 196/235] drm/vc4: Add support for NV21 and NV61. NV12 (YUV420 2 plane) and NV16 (YUV422 2 plane) were supported, but NV21 and NV61 (same but with Cb and Cr @@ -143112,10 +143001,10 @@ index 5c67090e93f5e574de197735f01c6c4dbbdd0180..44a956cb87c2184e8631868307538b15 static const struct hvs_format *vc4_get_hvs_format(u32 drm_format) -From f71c503f85bd910fd15aaafa540d5e02eadd45ce Mon Sep 17 00:00:00 2001 +From 0c8d3014651f1f3c8185caca384231787930c910 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 23 Jan 2017 11:41:54 -0800 -Subject: [PATCH 200/201] BCM270X: Disable VEC unless vc4-kms-v3d is present. +Subject: [PATCH 197/235] BCM270X: Disable VEC unless vc4-kms-v3d is present. Signed-off-by: Eric Anholt (cherry picked from commit dabd52db47d2e799323639734787e3a338c2b2a5) @@ -143155,10 +143044,10 @@ index 7d0d659b4886147e7e3b7eb3f60d546592cf2853..8baa7f77cd94ca76e9a0134601540232 cma-256 = <0>,"+0-1-2-3-4"; cma-192 = <0>,"-0+1-2-3-4"; -From f2dddba6d5b3076bceda86ad3fabcbc1d67c07ef Mon Sep 17 00:00:00 2001 +From 1ce078820cc788e612611c16c23b5d92dfcabfe2 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Thu, 21 Dec 2017 13:32:09 -0800 -Subject: [PATCH 201/201] drm/vc4: Flush the caches before the render jobs, as +Subject: [PATCH 198/235] drm/vc4: Flush the caches before the render jobs, as well. If the frame samples from a render target that was just written, its @@ -143176,7 +143065,7 @@ Fixes: ca26d28bbaa3 ("drm/vc4: improve throughput by pipelining binning and rend 1 file changed, 21 insertions(+) diff --git a/drivers/gpu/drm/vc4/vc4_gem.c b/drivers/gpu/drm/vc4/vc4_gem.c -index 638540943c61a5e095c87be8d2b2bf543ea933b1..e3e868cdee7943c2ed1c61a294804e11f7eefee0 100644 +index 152ce55160fef90b24d737f1457f5e7dcc0bd81d..c94cce96544c8b0196f16b2e9151e15430a28690 100644 --- a/drivers/gpu/drm/vc4/vc4_gem.c +++ b/drivers/gpu/drm/vc4/vc4_gem.c @@ -436,6 +436,19 @@ vc4_flush_caches(struct drm_device *dev) @@ -143214,3 +143103,2172 @@ index 638540943c61a5e095c87be8d2b2bf543ea933b1..e3e868cdee7943c2ed1c61a294804e11 submit_cl(dev, 1, exec->ct1ca, exec->ct1ea); } + +From 816547b1b3a05c9b2b1b7b05abb755ec2743bfd7 Mon Sep 17 00:00:00 2001 +From: Eric Anholt +Date: Wed, 7 Jun 2017 14:39:49 -0700 +Subject: [PATCH 199/235] drm/vc4: Add FB modifier support to firmwarekms. + +Signed-off-by: Eric Anholt +(cherry picked from commit 11752d73488e08aaeb65fe8289a9c016acde26c2) +--- + drivers/gpu/drm/vc4/vc4_firmware_kms.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/drivers/gpu/drm/vc4/vc4_firmware_kms.c b/drivers/gpu/drm/vc4/vc4_firmware_kms.c +index 766f700417f7194d6b01fa1bc18dad40f116744b..6221aeb43d9b314a0a356ea9fca62545135b6521 100644 +--- a/drivers/gpu/drm/vc4/vc4_firmware_kms.c ++++ b/drivers/gpu/drm/vc4/vc4_firmware_kms.c +@@ -17,6 +17,7 @@ + #include "drm/drm_atomic_helper.h" + #include "drm/drm_plane_helper.h" + #include "drm/drm_crtc_helper.h" ++#include "drm/drm_fourcc.h" + #include "linux/clk.h" + #include "linux/debugfs.h" + #include "drm/drm_fb_cma_helper.h" +@@ -135,6 +136,10 @@ static void vc4_primary_plane_atomic_update(struct drm_plane *plane, + fbinfo->yoffset = state->crtc_y; + fbinfo->base = bo->paddr + fb->offsets[0]; + fbinfo->pitch = fb->pitches[0]; ++ ++ if (fb->modifier == DRM_FORMAT_MOD_BROADCOM_VC4_T_TILED) ++ fbinfo->bpp |= BIT(31); ++ + /* A bug in the firmware makes it so that if the fb->base is + * set to nonzero, the configured pitch gets overwritten with + * the previous pitch. So, to get the configured pitch + +From 6dfc00d03c60c925629377eaa261680de59503ab Mon Sep 17 00:00:00 2001 +From: Eric Anholt +Date: Tue, 30 Jan 2018 14:21:02 -0800 +Subject: [PATCH 200/235] drm/vc4: Add missing enable/disable vblank handlers + in fkms. + +Fixes hang at boot in 4.14. + +Signed-off-by: Eric Anholt +--- + drivers/gpu/drm/vc4/vc4_crtc.c | 14 -------------- + drivers/gpu/drm/vc4/vc4_firmware_kms.c | 15 +++++++++++++++ + 2 files changed, 15 insertions(+), 14 deletions(-) + +diff --git a/drivers/gpu/drm/vc4/vc4_crtc.c b/drivers/gpu/drm/vc4/vc4_crtc.c +index 2e9f75ed8b67727aef6ca94bb0c8a6fab0f5370c..6fca0f686207936b800b8dee1598c438fdb4e85a 100644 +--- a/drivers/gpu/drm/vc4/vc4_crtc.c ++++ b/drivers/gpu/drm/vc4/vc4_crtc.c +@@ -685,15 +685,8 @@ static void vc4_crtc_atomic_flush(struct drm_crtc *crtc, + + static int vc4_enable_vblank(struct drm_crtc *crtc) + { +- struct drm_device *dev = crtc->dev; +- struct vc4_dev *vc4 = to_vc4_dev(dev); + struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc); + +- if (vc4->firmware_kms) { +- /* XXX: Can we mask the SMI interrupt? */ +- return 0; +- } +- + CRTC_WRITE(PV_INTEN, PV_INT_VFP_START); + + return 0; +@@ -701,15 +694,8 @@ static int vc4_enable_vblank(struct drm_crtc *crtc) + + static void vc4_disable_vblank(struct drm_crtc *crtc) + { +- struct drm_device *dev = crtc->dev; +- struct vc4_dev *vc4 = to_vc4_dev(dev); + struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc); + +- if (vc4->firmware_kms) { +- /* XXX: Can we mask the SMI interrupt? */ +- return; +- } +- + CRTC_WRITE(PV_INTEN, 0); + } + +diff --git a/drivers/gpu/drm/vc4/vc4_firmware_kms.c b/drivers/gpu/drm/vc4/vc4_firmware_kms.c +index 6221aeb43d9b314a0a356ea9fca62545135b6521..7edb38953a6a2a875685a9aa4ffa3550488833e5 100644 +--- a/drivers/gpu/drm/vc4/vc4_firmware_kms.c ++++ b/drivers/gpu/drm/vc4/vc4_firmware_kms.c +@@ -441,6 +441,19 @@ static int vc4_page_flip(struct drm_crtc *crtc, + return drm_atomic_helper_page_flip(crtc, fb, event, flags, ctx); + } + ++static int vc4_fkms_enable_vblank(struct drm_crtc *crtc) ++{ ++ /* XXX: Need a way to enable/disable the interrupt, to avoid ++ * DRM warnings at boot time. ++ */ ++ ++ return 0; ++} ++ ++static void vc4_fkms_disable_vblank(struct drm_crtc *crtc) ++{ ++} ++ + static const struct drm_crtc_funcs vc4_crtc_funcs = { + .set_config = drm_atomic_helper_set_config, + .destroy = drm_crtc_cleanup, +@@ -451,6 +464,8 @@ static const struct drm_crtc_funcs vc4_crtc_funcs = { + .reset = drm_atomic_helper_crtc_reset, + .atomic_duplicate_state = drm_atomic_helper_crtc_duplicate_state, + .atomic_destroy_state = drm_atomic_helper_crtc_destroy_state, ++ .enable_vblank = vc4_fkms_enable_vblank, ++ .disable_vblank = vc4_fkms_disable_vblank, + }; + + static const struct drm_crtc_helper_funcs vc4_crtc_helper_funcs = { + +From 1444877955cee53b5e5079e7eb36cb5ee107c966 Mon Sep 17 00:00:00 2001 +From: Eric Anholt +Date: Mon, 5 Feb 2018 18:01:02 +0000 +Subject: [PATCH 201/235] drm/vc4: Fix warning about vblank interrupts before + DRM core is ready. + +The SMICS interrupt fires continuously, but since it's 1/100 the rate +of the USB interrupts, we don't really need a way to turn it off. We +do need to make sure that we don't tell DRM about it until DRM has +asked for the interrupt at least once, because otherwise it will throw +a warning at boot time. + +Signed-off-by: Eric Anholt +--- + drivers/gpu/drm/vc4/vc4_firmware_kms.c | 10 ++++++---- + 1 file changed, 6 insertions(+), 4 deletions(-) + +diff --git a/drivers/gpu/drm/vc4/vc4_firmware_kms.c b/drivers/gpu/drm/vc4/vc4_firmware_kms.c +index 7edb38953a6a2a875685a9aa4ffa3550488833e5..967a0bf5886b746b1177b46aaa205751e7233890 100644 +--- a/drivers/gpu/drm/vc4/vc4_firmware_kms.c ++++ b/drivers/gpu/drm/vc4/vc4_firmware_kms.c +@@ -43,6 +43,7 @@ struct vc4_crtc { + + struct drm_pending_vblank_event *event; + u32 overscan[4]; ++ bool vblank_enabled; + }; + + static inline struct vc4_crtc *to_vc4_crtc(struct drm_crtc *crtc) +@@ -420,7 +421,8 @@ static irqreturn_t vc4_crtc_irq_handler(int irq, void *data) + + if (stat & SMICS_INTERRUPTS) { + writel(0, vc4_crtc->regs + SMICS); +- drm_crtc_handle_vblank(&vc4_crtc->base); ++ if (vc4_crtc->vblank_enabled) ++ drm_crtc_handle_vblank(&vc4_crtc->base); + vc4_crtc_handle_page_flip(vc4_crtc); + ret = IRQ_HANDLED; + } +@@ -443,9 +445,9 @@ static int vc4_page_flip(struct drm_crtc *crtc, + + static int vc4_fkms_enable_vblank(struct drm_crtc *crtc) + { +- /* XXX: Need a way to enable/disable the interrupt, to avoid +- * DRM warnings at boot time. +- */ ++ struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc); ++ ++ vc4_crtc->vblank_enabled = true; + + return 0; + } + +From 3e884d070cf6a91fef4c5c93a09c6d9e9bf8e500 Mon Sep 17 00:00:00 2001 +From: Eric Anholt +Date: Mon, 5 Feb 2018 18:02:30 +0000 +Subject: [PATCH 202/235] drm/vc4: Skip SET_CURSOR_INFO when the cursor + contents didn't change. + +Signed-off-by: Eric Anholt +--- + drivers/gpu/drm/vc4/vc4_firmware_kms.c | 30 ++++++++++++++++++++---------- + 1 file changed, 20 insertions(+), 10 deletions(-) + +diff --git a/drivers/gpu/drm/vc4/vc4_firmware_kms.c b/drivers/gpu/drm/vc4/vc4_firmware_kms.c +index 967a0bf5886b746b1177b46aaa205751e7233890..462d9084ce53da8bf5966f175f753bf22510bfcb 100644 +--- a/drivers/gpu/drm/vc4/vc4_firmware_kms.c ++++ b/drivers/gpu/drm/vc4/vc4_firmware_kms.c +@@ -204,10 +204,6 @@ static void vc4_cursor_plane_atomic_update(struct drm_plane *plane, + state->crtc_y, + 0 + }; +- u32 packet_info[] = { state->crtc_w, state->crtc_h, +- 0, /* unused */ +- bo->paddr + fb->offsets[0], +- 0, 0, /* hotx, hoty */}; + WARN_ON_ONCE(fb->pitches[0] != state->crtc_w * 4); + + DRM_DEBUG_ATOMIC("[PLANE:%d:%s] update %dx%d cursor at %d,%d (0x%08x/%d)", +@@ -232,12 +228,26 @@ static void vc4_cursor_plane_atomic_update(struct drm_plane *plane, + if (ret || packet_state[0] != 0) + DRM_ERROR("Failed to set cursor state: 0x%08x\n", packet_state[0]); + +- ret = rpi_firmware_property(vc4->firmware, +- RPI_FIRMWARE_SET_CURSOR_INFO, +- &packet_info, +- sizeof(packet_info)); +- if (ret || packet_info[0] != 0) +- DRM_ERROR("Failed to set cursor info: 0x%08x\n", packet_info[0]); ++ /* Note: When the cursor contents change, the modesetting ++ * driver calls drm_mode_cursor_univeral() with ++ * DRM_MODE_CURSOR_BO, which means a new fb will be allocated. ++ */ ++ if (!old_state || ++ state->crtc_w != old_state->crtc_w || ++ state->crtc_h != old_state->crtc_h || ++ fb != old_state->fb) { ++ u32 packet_info[] = { state->crtc_w, state->crtc_h, ++ 0, /* unused */ ++ bo->paddr + fb->offsets[0], ++ 0, 0, /* hotx, hoty */}; ++ ++ ret = rpi_firmware_property(vc4->firmware, ++ RPI_FIRMWARE_SET_CURSOR_INFO, ++ &packet_info, ++ sizeof(packet_info)); ++ if (ret || packet_info[0] != 0) ++ DRM_ERROR("Failed to set cursor info: 0x%08x\n", packet_info[0]); ++ } + } + + static void vc4_cursor_plane_atomic_disable(struct drm_plane *plane, + +From 42d12c4347c07e4efb394b01e18539a14bd87e03 Mon Sep 17 00:00:00 2001 +From: Eric Anholt +Date: Mon, 5 Feb 2018 18:22:03 +0000 +Subject: [PATCH 203/235] drm/vc4: Remove duplicate primary/cursor fields from + FKMS driver. + +The CRTC has those fields and we can just use them. + +Signed-off-by: Eric Anholt +--- + drivers/gpu/drm/vc4/vc4_firmware_kms.c | 24 +++++++----------------- + 1 file changed, 7 insertions(+), 17 deletions(-) + +diff --git a/drivers/gpu/drm/vc4/vc4_firmware_kms.c b/drivers/gpu/drm/vc4/vc4_firmware_kms.c +index 462d9084ce53da8bf5966f175f753bf22510bfcb..60e9d8fa5511340d63c3fad7a95cfb3023d99d5f 100644 +--- a/drivers/gpu/drm/vc4/vc4_firmware_kms.c ++++ b/drivers/gpu/drm/vc4/vc4_firmware_kms.c +@@ -37,8 +37,6 @@ struct vc4_crtc { + struct drm_crtc base; + struct drm_encoder *encoder; + struct drm_connector *connector; +- struct drm_plane *primary; +- struct drm_plane *cursor; + void __iomem *regs; + + struct drm_pending_vblank_event *event; +@@ -356,29 +354,24 @@ static void vc4_crtc_mode_set_nofb(struct drm_crtc *crtc) + + static void vc4_crtc_disable(struct drm_crtc *crtc, struct drm_crtc_state *old_state) + { +- struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc); +- + /* Always turn the planes off on CRTC disable. In DRM, planes + * are enabled/disabled through the update/disable hooks + * above, and the CRTC enable/disable independently controls + * whether anything scans out at all, but the firmware doesn't + * give us a CRTC-level control for that. + */ +- vc4_cursor_plane_atomic_disable(vc4_crtc->cursor, +- vc4_crtc->cursor->state); +- vc4_plane_set_primary_blank(vc4_crtc->primary, true); ++ vc4_cursor_plane_atomic_disable(crtc->cursor, crtc->cursor->state); ++ vc4_plane_set_primary_blank(crtc->primary, true); + } + + static void vc4_crtc_enable(struct drm_crtc *crtc, struct drm_crtc_state *old_state) + { +- struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc); +- + /* Unblank the planes (if they're supposed to be displayed). */ +- if (vc4_crtc->primary->state->fb) +- vc4_plane_set_primary_blank(vc4_crtc->primary, false); +- if (vc4_crtc->cursor->state->fb) { +- vc4_cursor_plane_atomic_update(vc4_crtc->cursor, +- vc4_crtc->cursor->state); ++ if (crtc->primary->state->fb) ++ vc4_plane_set_primary_blank(crtc->primary, false); ++ if (crtc->cursor->state->fb) { ++ vc4_cursor_plane_atomic_update(crtc->cursor, ++ crtc->cursor->state); + } + } + +@@ -689,9 +682,6 @@ static int vc4_fkms_bind(struct device *dev, struct device *master, void *data) + primary_plane->crtc = crtc; + cursor_plane->crtc = crtc; + +- vc4_crtc->primary = primary_plane; +- vc4_crtc->cursor = cursor_plane; +- + vc4_encoder = devm_kzalloc(dev, sizeof(*vc4_encoder), GFP_KERNEL); + if (!vc4_encoder) + return -ENOMEM; + +From 64b73322a2be386a7f85073be3ec6e03738e0d25 Mon Sep 17 00:00:00 2001 +From: Eric Anholt +Date: Mon, 5 Feb 2018 18:53:18 +0000 +Subject: [PATCH 204/235] drm/vc4: Don't wait for vblank on fkms cursor + updates. + +We don't use the same async update path between fkms and normal kms, +and the normal kms workaround ended up making us wait. This became a +larger problem in rpi-4.14.y, as the USB HID update rate throttling +got (accidentally?) dropped. + +Signed-off-by: Eric Anholt +--- + drivers/gpu/drm/vc4/vc4_kms.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/drivers/gpu/drm/vc4/vc4_kms.c b/drivers/gpu/drm/vc4/vc4_kms.c +index 50c4959b5bd33efe329119a0aa9fd39b255e098f..f73343e08fe668fb590074dd86d4f6648c323f1c 100644 +--- a/drivers/gpu/drm/vc4/vc4_kms.c ++++ b/drivers/gpu/drm/vc4/vc4_kms.c +@@ -53,7 +53,8 @@ vc4_atomic_complete_commit(struct drm_atomic_state *state) + * display lists before we free it and potentially reallocate + * and overwrite the dlist memory with a new modeset. + */ +- state->legacy_cursor_update = false; ++ if (!vc4->firmware_kms) ++ state->legacy_cursor_update = false; + + drm_atomic_helper_commit_hw_done(state); + + +From 89f67544213a00b7f791775470c1cc5e5afb8a62 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Mon, 5 Feb 2018 10:37:54 +0000 +Subject: [PATCH 205/235] config: Add SND_USB_HIFACE=m + +See: https://github.com/raspberrypi/linux/issues/2368 + +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 f1dcc7d974b674199c4f25e8d561f09b152ffa19..80825a872c1eb15a96d0fa0e6dbaf76674ca2e49 100644 +--- a/arch/arm/configs/bcm2709_defconfig ++++ b/arch/arm/configs/bcm2709_defconfig +@@ -864,6 +864,7 @@ CONFIG_SND_USB_UA101=m + CONFIG_SND_USB_CAIAQ=m + CONFIG_SND_USB_CAIAQ_INPUT=y + CONFIG_SND_USB_6FIRE=m ++CONFIG_SND_USB_HIFACE=m + CONFIG_SND_SOC=m + CONFIG_SND_BCM2835_SOC_I2S=m + CONFIG_SND_BCM2708_SOC_GOOGLEVOICEHAT_SOUNDCARD=m +diff --git a/arch/arm/configs/bcmrpi_defconfig b/arch/arm/configs/bcmrpi_defconfig +index f2563f6824b6b16d9f44bc0ee1da818bc3ef5ebd..9c166b8c718287010facfb105bd28540c46949d8 100644 +--- a/arch/arm/configs/bcmrpi_defconfig ++++ b/arch/arm/configs/bcmrpi_defconfig +@@ -857,6 +857,7 @@ CONFIG_SND_USB_UA101=m + CONFIG_SND_USB_CAIAQ=m + CONFIG_SND_USB_CAIAQ_INPUT=y + CONFIG_SND_USB_6FIRE=m ++CONFIG_SND_USB_HIFACE=m + CONFIG_SND_SOC=m + CONFIG_SND_BCM2835_SOC_I2S=m + CONFIG_SND_BCM2708_SOC_GOOGLEVOICEHAT_SOUNDCARD=m + +From 8ffb60f35cc44d1a60847441ce5a22fd002bd0a1 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Mon, 5 Feb 2018 09:35:01 +0000 +Subject: [PATCH 206/235] mmc: bcm2835-sdhost: Add include + +highmem.h (needed for kmap_atomic) is pulled in by one of the other +include files, but only with some CONFIG settings. Make the inclusion +explicit to cater for cases where the CONFIG setting is absent. + +See: https://github.com/raspberrypi/linux/issues/2366 + +Signed-off-by: Phil Elwell +--- + drivers/mmc/host/bcm2835-sdhost.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/drivers/mmc/host/bcm2835-sdhost.c b/drivers/mmc/host/bcm2835-sdhost.c +index 6c0dafe6c64b03f91cfb0360861c29dd444b3ca5..273b1be058c54bae5b4a18ce64cd0e11b084beeb 100644 +--- a/drivers/mmc/host/bcm2835-sdhost.c ++++ b/drivers/mmc/host/bcm2835-sdhost.c +@@ -52,6 +52,7 @@ + #include + #include + #include ++#include + #include + + /* For mmc_card_blockaddr */ + +From cfa32dfca6f04ac9fa85b8f37b02ee2afdc40664 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Mon, 14 Jul 2014 22:02:09 +0100 +Subject: [PATCH 207/235] hid: Reduce default mouse polling interval to 60Hz + +Reduces overhead when using X +--- + drivers/hid/usbhid/hid-core.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/drivers/hid/usbhid/hid-core.c b/drivers/hid/usbhid/hid-core.c +index 045b5da9b992873ce74f5d401de34855b93a6f8e..45abcbab4efe561a3829e9a6b6014abeb7d7797d 100644 +--- a/drivers/hid/usbhid/hid-core.c ++++ b/drivers/hid/usbhid/hid-core.c +@@ -48,7 +48,7 @@ + * Module parameters. + */ + +-static unsigned int hid_mousepoll_interval; ++static unsigned int hid_mousepoll_interval = ~0; + 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) + /* Change the polling interval of mice and joysticks. */ + switch (hid->collection->usage) { + case HID_GD_MOUSE: +- if (hid_mousepoll_interval > 0) ++ if (hid_mousepoll_interval == ~0 && interval < 16) ++ interval = 16; ++ else if (hid_mousepoll_interval != ~0 && hid_mousepoll_interval != 0) + interval = hid_mousepoll_interval; + break; + case HID_GD_JOYSTICK: + +From 02b7317150f864a3a9703ec7212ebfea8b78aacb Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Tue, 6 Feb 2018 11:48:17 +0000 +Subject: [PATCH 208/235] BCM270X_DT: Minor cosmetic DT tidy + +Deleting the timer node for all bcm27* DTBs than re-adding an identical +one for bcm2708 is wrong - just delete it where it isn't wanted. + +Also change a #include to match the style of similar includes. + +Signed-off-by: Phil Elwell +--- + arch/arm/boot/dts/bcm2708.dtsi | 9 --------- + arch/arm/boot/dts/bcm2709.dtsi | 2 ++ + arch/arm/boot/dts/bcm270x.dtsi | 4 +--- + arch/arm/boot/dts/bcm2710.dtsi | 2 ++ + 4 files changed, 5 insertions(+), 12 deletions(-) + +diff --git a/arch/arm/boot/dts/bcm2708.dtsi b/arch/arm/boot/dts/bcm2708.dtsi +index 756bd3687b488da98f749b27ddfe098693990045..768c7da10f0eb6a23be423c1fb08296f363ae5f4 100644 +--- a/arch/arm/boot/dts/bcm2708.dtsi ++++ b/arch/arm/boot/dts/bcm2708.dtsi +@@ -3,15 +3,6 @@ + #include "bcm2708-rpi.dtsi" + + / { +- soc { +- timer@7e003000 { +- compatible = "brcm,bcm2835-system-timer"; +- reg = <0x7e003000 0x1000>; +- interrupts = <1 0>, <1 1>, <1 2>, <1 3>; +- clock-frequency = <1000000>; +- }; +- }; +- + /delete-node/ cpus; + + __overrides__ { +diff --git a/arch/arm/boot/dts/bcm2709.dtsi b/arch/arm/boot/dts/bcm2709.dtsi +index c3aedc6541ad00c9c4312bd2ac5882c19608b76b..715f5aca753e515d4ddd0557fb5157bdf175ff2b 100644 +--- a/arch/arm/boot/dts/bcm2709.dtsi ++++ b/arch/arm/boot/dts/bcm2709.dtsi +@@ -6,6 +6,8 @@ + soc { + ranges = <0x7e000000 0x3f000000 0x01000000>, + <0x40000000 0x40000000 0x00040000>; ++ ++ /delete-node/ timer@7e003000; + }; + + __overrides__ { +diff --git a/arch/arm/boot/dts/bcm270x.dtsi b/arch/arm/boot/dts/bcm270x.dtsi +index a3544c1f5b9dce153bb22f94b6728d6ecd901777..f8e89a38e84d016dbf14c3cd9490214a01345adf 100644 +--- a/arch/arm/boot/dts/bcm270x.dtsi ++++ b/arch/arm/boot/dts/bcm270x.dtsi +@@ -1,5 +1,5 @@ + /* Downstream bcm283x.dtsi diff */ +-#include "dt-bindings/power/raspberrypi-power.h" ++#include + + / { + chosen { +@@ -8,8 +8,6 @@ + + soc: soc { + +- /delete-node/ timer@7e003000; +- + watchdog: watchdog@7e100000 { + /* Add alias */ + }; +diff --git a/arch/arm/boot/dts/bcm2710.dtsi b/arch/arm/boot/dts/bcm2710.dtsi +index 2169fbd14844dd907f027a36984f3372074b331c..6fb5ed655d63cb26f4d5205efad37e9c3d385223 100644 +--- a/arch/arm/boot/dts/bcm2710.dtsi ++++ b/arch/arm/boot/dts/bcm2710.dtsi +@@ -16,6 +16,8 @@ + interrupt-parent = <&local_intc>; + interrupts = <9>; + }; ++ ++ /delete-node/ timer@7e003000; + }; + + __overrides__ { + +From 54100f36a610867b32079b10b1e9b1255db37af5 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Tue, 6 Feb 2018 13:10:09 +0000 +Subject: [PATCH 209/235] BCM270X_DT: More cosmetic DT changes + +Remove unnecessary duplicate labels (but keep spi0). + +Signed-off-by: Phil Elwell +--- + arch/arm/boot/dts/bcm2708-rpi.dtsi | 5 ---- + arch/arm/boot/dts/bcm270x.dtsi | 15 ++++------- + .../arm/boot/dts/overlays/vc4-fkms-v3d-overlay.dts | 2 +- + arch/arm/boot/dts/overlays/vc4-kms-v3d-overlay.dts | 29 ++++++++-------------- + 4 files changed, 17 insertions(+), 34 deletions(-) + +diff --git a/arch/arm/boot/dts/bcm2708-rpi.dtsi b/arch/arm/boot/dts/bcm2708-rpi.dtsi +index 36dcd483925590b57c1927d7204be50672040539..d105d4e208f2c8b5cb7d8d2a3267c314d0081c85 100644 +--- a/arch/arm/boot/dts/bcm2708-rpi.dtsi ++++ b/arch/arm/boot/dts/bcm2708-rpi.dtsi +@@ -81,11 +81,6 @@ + status = "okay"; + }; + +- thermal: thermal@7e212000 { +- #thermal-sensor-cells = <0>; +- status = "okay"; +- }; +- + /* Onboard audio */ + audio: audio { + compatible = "brcm,bcm2835-audio"; +diff --git a/arch/arm/boot/dts/bcm270x.dtsi b/arch/arm/boot/dts/bcm270x.dtsi +index f8e89a38e84d016dbf14c3cd9490214a01345adf..c7c58265cd5e24e01ff2194ecc959c284dc83faf 100644 +--- a/arch/arm/boot/dts/bcm270x.dtsi ++++ b/arch/arm/boot/dts/bcm270x.dtsi +@@ -12,10 +12,6 @@ + /* Add alias */ + }; + +- cprman: cprman@7e101000 { +- /* Add alias */ +- }; +- + random: rng@7e104000 { + /* Add alias */ + }; +@@ -94,7 +90,7 @@ + reg = <0x7e600000 0x100>; + interrupts = <2 16>; + clocks = <&clocks BCM2835_CLOCK_SMI>; +- assigned-clocks = <&cprman BCM2835_CLOCK_SMI>; ++ assigned-clocks = <&clocks BCM2835_CLOCK_SMI>; + assigned-clock-rates = <125000000>; + dmas = <&dma 4>; + dma-names = "rx-tx"; +@@ -124,11 +120,6 @@ + status = "disabled"; + }; + +- gpu: gpu { +- /* Add alias */ +- status = "disabled"; +- }; +- + axiperf: axiperf { + compatible = "brcm,bcm2835-axiperf"; + reg = <0x7e009800 0x100>, +@@ -177,3 +168,7 @@ + interrupt-parent = <&aux>; + interrupts = <2>; + }; ++ ++&vc4 { ++ status = "disabled"; ++}; +diff --git a/arch/arm/boot/dts/overlays/vc4-fkms-v3d-overlay.dts b/arch/arm/boot/dts/overlays/vc4-fkms-v3d-overlay.dts +index 36fbf6c8c2e612a6dc5aa02d77cc8173098c16ca..14f7687172c3af514273c217a78e02e7ce744152 100644 +--- a/arch/arm/boot/dts/overlays/vc4-fkms-v3d-overlay.dts ++++ b/arch/arm/boot/dts/overlays/vc4-fkms-v3d-overlay.dts +@@ -66,7 +66,7 @@ + }; + + fragment@8 { +- target = <&gpu>; ++ target = <&vc4>; + __overlay__ { + status = "okay"; + }; +diff --git a/arch/arm/boot/dts/overlays/vc4-kms-v3d-overlay.dts b/arch/arm/boot/dts/overlays/vc4-kms-v3d-overlay.dts +index 8baa7f77cd94ca76e9a01346015402321c314f20..489679637306254ff0dedf37d01e5e312c0c38d2 100644 +--- a/arch/arm/boot/dts/overlays/vc4-kms-v3d-overlay.dts ++++ b/arch/arm/boot/dts/overlays/vc4-kms-v3d-overlay.dts +@@ -53,20 +53,13 @@ + }; + + fragment@6 { +- target = <&cprman>; +- __overlay__ { +- status = "okay"; +- }; +- }; +- +- fragment@7 { + target = <&fb>; + __overlay__ { + status = "disabled"; + }; + }; + +- fragment@8 { ++ fragment@7 { + target = <&pixelvalve0>; + __overlay__ { + interrupts = <2 13>; /* pwa0 */ +@@ -74,7 +67,7 @@ + }; + }; + +- fragment@9 { ++ fragment@8 { + target = <&pixelvalve1>; + __overlay__ { + interrupts = <2 14>; /* pwa1 */ +@@ -82,7 +75,7 @@ + }; + }; + +- fragment@10 { ++ fragment@9 { + target = <&pixelvalve2>; + __overlay__ { + interrupts = <2 10>; /* pixelvalve */ +@@ -90,7 +83,7 @@ + }; + }; + +- fragment@11 { ++ fragment@10 { + target = <&hvs>; + __overlay__ { + interrupts = <2 1>; +@@ -98,7 +91,7 @@ + }; + }; + +- fragment@12 { ++ fragment@11 { + target = <&hdmi>; + __overlay__ { + interrupts = <2 8>, <2 9>; +@@ -106,7 +99,7 @@ + }; + }; + +- fragment@13 { ++ fragment@12 { + target = <&v3d>; + __overlay__ { + interrupts = <1 10>; +@@ -114,14 +107,14 @@ + }; + }; + +- fragment@14 { +- target = <&gpu>; ++ fragment@13 { ++ target = <&vc4>; + __overlay__ { + status = "okay"; + }; + }; + +- fragment@15 { ++ fragment@14 { + target-path = "/soc/dma"; + __overlay__ { + brcm,dma-channel-mask = <0x7f35>; +@@ -129,7 +122,7 @@ + }; + + +- fragment@16 { ++ fragment@15 { + target = <&clocks>; + __overlay__ { + claim-clocks = < +@@ -141,7 +134,7 @@ + }; + }; + +- fragment@17 { ++ fragment@16 { + target = <&vec>; + __overlay__ { + status = "okay"; + +From e690f5cb0e9f4557739ca802d4935e5eef860c45 Mon Sep 17 00:00:00 2001 +From: Matthias Reichl +Date: Tue, 6 Feb 2018 15:37:22 +0100 +Subject: [PATCH 210/235] config: enable Audio Graph Card module + +Signed-off-by: Matthias Reichl +--- + 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 80825a872c1eb15a96d0fa0e6dbaf76674ca2e49..766e1d12436d650e4d5536081b860747d1d4d01f 100644 +--- a/arch/arm/configs/bcm2709_defconfig ++++ b/arch/arm/configs/bcm2709_defconfig +@@ -898,6 +898,7 @@ CONFIG_SND_SOC_AK4554=m + CONFIG_SND_SOC_SPDIF=m + CONFIG_SND_SOC_WM8804_I2C=m + CONFIG_SND_SIMPLE_CARD=m ++CONFIG_SND_AUDIO_GRAPH_CARD=m + CONFIG_HID_BATTERY_STRENGTH=y + CONFIG_HIDRAW=y + CONFIG_UHID=m +diff --git a/arch/arm/configs/bcmrpi_defconfig b/arch/arm/configs/bcmrpi_defconfig +index 9c166b8c718287010facfb105bd28540c46949d8..4e92a1107513b6008b23df3a5d9cc9661b91848e 100644 +--- a/arch/arm/configs/bcmrpi_defconfig ++++ b/arch/arm/configs/bcmrpi_defconfig +@@ -891,6 +891,7 @@ CONFIG_SND_SOC_AK4554=m + CONFIG_SND_SOC_SPDIF=m + CONFIG_SND_SOC_WM8804_I2C=m + CONFIG_SND_SIMPLE_CARD=m ++CONFIG_SND_AUDIO_GRAPH_CARD=m + CONFIG_HID_BATTERY_STRENGTH=y + CONFIG_HIDRAW=y + CONFIG_UHID=m + +From b20054a70149894a89f948fd9891491556119879 Mon Sep 17 00:00:00 2001 +From: Simon van der Veldt +Date: Tue, 6 Feb 2018 15:36:25 +0100 +Subject: [PATCH 211/235] Add missing SND_PISOUND selects dependency to + SND_RAWMIDI + +Without it the Pisound module fails to compile. +See https://github.com/raspberrypi/linux/issues/2366 + +Signed-off-by: Simon van der Veldt +--- + sound/soc/bcm/Kconfig | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/sound/soc/bcm/Kconfig b/sound/soc/bcm/Kconfig +index 381d32bb9deb3cf2c531e2a4563418cd6eb9d505..630285e4c9a35afc4638ef4742adf70404fb9975 100644 +--- a/sound/soc/bcm/Kconfig ++++ b/sound/soc/bcm/Kconfig +@@ -193,5 +193,6 @@ config SND_BCM2708_SOC_FE_PI_AUDIO + config SND_PISOUND + tristate "Support for Blokas Labs pisound" + depends on SND_BCM2708_SOC_I2S || SND_BCM2835_SOC_I2S ++ select SND_RAWMIDI + help + Say Y or M if you want to add support for Blokas Labs pisound. + +From ebe91854148bff41d1c1940e45d1f7674a59ae97 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Mon, 13 Feb 2017 11:10:50 +0000 +Subject: [PATCH 212/235] BCM2835-V4L2: Ensure H264 header bytes get a sensible + timestamp + +H264 header come off VC with 0 timestamps, which means they get a +strange timestamp when processed with VC/kernel start times, +particularly if used with the inline header option. +Remember the last frame timestamp and use that if set, or otherwise +use the kernel start time. + +https://github.com/raspberrypi/linux/issues/1836 + +Signed-off-by: Dave Stevenson +--- + .../vc04_services/bcm2835-camera/bcm2835-camera.c | 30 +++++++++++++++++++--- + .../vc04_services/bcm2835-camera/bcm2835-camera.h | 2 ++ + 2 files changed, 29 insertions(+), 3 deletions(-) + +diff --git a/drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.c b/drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.c +index be936b8fe317599b132988f0a700ec7f7df15af6..e383cb0f54627e1b9e0aff6928858ece4029ad25 100644 +--- a/drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.c ++++ b/drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.c +@@ -341,8 +341,13 @@ static void buffer_cb(struct vchiq_mmal_instance *instance, + } + } else { + if (dev->capture.frame_count) { +- if (dev->capture.vc_start_timestamp != -1 && +- pts != 0) { ++ if (dev->capture.vc_start_timestamp == -1) { ++ buf->vb.vb2_buf.timestamp = ktime_get_ns(); ++ v4l2_dbg(1, bcm2835_v4l2_debug, &dev->v4l2_dev, ++ "Buffer time set as current time - %lld", ++ buf->vb.vb2_buf.timestamp); ++ ++ } else if(pts != 0) { + struct timeval timestamp; + s64 runtime_us = pts - + dev->capture.vc_start_timestamp; +@@ -375,10 +380,27 @@ static void buffer_cb(struct vchiq_mmal_instance *instance, + buf->vb.vb2_buf.timestamp = timestamp.tv_sec * 1000000000ULL + + timestamp.tv_usec * 1000ULL; + } else { +- buf->vb.vb2_buf.timestamp = ktime_get_ns(); ++ if (dev->capture.last_timestamp) { ++ buf->vb.vb2_buf.timestamp = dev->capture.last_timestamp; ++ v4l2_dbg(1, bcm2835_v4l2_debug, &dev->v4l2_dev, ++ "Buffer time set as last timestamp - %lld", ++ buf->vb.vb2_buf.timestamp); ++ } ++ else { ++ buf->vb.vb2_buf.timestamp = ++ dev->capture.kernel_start_ts.tv_sec * 1000000000ULL + ++ dev->capture.kernel_start_ts.tv_usec * 1000ULL; ++ v4l2_dbg(1, bcm2835_v4l2_debug, &dev->v4l2_dev, ++ "Buffer time set as start timestamp - %lld", ++ buf->vb.vb2_buf.timestamp); ++ } + } ++ dev->capture.last_timestamp = buf->vb.vb2_buf.timestamp; + + vb2_set_plane_payload(&buf->vb.vb2_buf, 0, length); ++ v4l2_dbg(1, bcm2835_v4l2_debug, &dev->v4l2_dev, ++ "Buffer has ts %llu", ++ dev->capture.last_timestamp); + vb2_buffer_done(&buf->vb.vb2_buf, VB2_BUF_STATE_DONE); + + if (mmal_flags & MMAL_BUFFER_HEADER_FLAG_EOS && +@@ -547,6 +569,8 @@ static int start_streaming(struct vb2_queue *vq, unsigned int count) + "Start time %lld size %d\n", + dev->capture.vc_start_timestamp, parameter_size); + ++ dev->capture.last_timestamp = 0; ++ + v4l2_get_timestamp(&dev->capture.kernel_start_ts); + + /* enable the camera port */ +diff --git a/drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.h b/drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.h +index 404037476bc5119acb2f37dbd92900a3f8719bf9..1b1b44abb402c99c4c217953206614cfaed044c6 100644 +--- a/drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.h ++++ b/drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.h +@@ -93,6 +93,8 @@ struct bm2835_mmal_dev { + s64 vc_start_timestamp; + /* Kernel start timestamp for streaming */ + struct timeval kernel_start_ts; ++ /* Timestamp of last frame */ ++ u64 last_timestamp; + + struct vchiq_mmal_port *port; /* port being used for capture */ + /* camera port being used for capture */ + +From 25055a2da420beef3bbeb33a3b3eb00260ab34c4 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Mon, 13 Feb 2017 13:11:41 +0000 +Subject: [PATCH 213/235] BCM2835-V4L2: Correctly denote key frames in encoded + data + +Forward MMAL key frame flags to the V4L2 buffers. + +Signed-off-by: Dave Stevenson +--- + drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.c b/drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.c +index e383cb0f54627e1b9e0aff6928858ece4029ad25..23b785e22098ec1aaf491c799701f9f98620eff8 100644 +--- a/drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.c ++++ b/drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.c +@@ -398,6 +398,9 @@ static void buffer_cb(struct vchiq_mmal_instance *instance, + dev->capture.last_timestamp = buf->vb.vb2_buf.timestamp; + + vb2_set_plane_payload(&buf->vb.vb2_buf, 0, length); ++ if (mmal_flags & MMAL_BUFFER_HEADER_FLAG_KEYFRAME) ++ buf->vb.flags |= V4L2_BUF_FLAG_KEYFRAME; ++ + v4l2_dbg(1, bcm2835_v4l2_debug, &dev->v4l2_dev, + "Buffer has ts %llu", + dev->capture.last_timestamp); + +From 80d8cf7847aff292ddd4a2d884e268b6f2f697e1 Mon Sep 17 00:00:00 2001 +From: David H +Date: Wed, 4 Oct 2017 04:43:07 -0700 +Subject: [PATCH 214/235] bcm2835-camera: Fix timestamp calculation problem + (#2214) + +* bcm2835-camera: Fix timestamp calculation problem + +Use div_s64_rem() to convert usec timestamp to timeval +to avoid integer signedness bug. + +* bcm2835-camera: Store kernel start time in NSEC instead of USEC + +* bcm2835-camera: Reword debug message for clarity +--- + .../vc04_services/bcm2835-camera/bcm2835-camera.c | 41 ++++++---------------- + .../vc04_services/bcm2835-camera/bcm2835-camera.h | 2 +- + 2 files changed, 11 insertions(+), 32 deletions(-) + +diff --git a/drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.c b/drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.c +index 23b785e22098ec1aaf491c799701f9f98620eff8..f01eea3af694be1c984fe2c534a793fa7e447ab6 100644 +--- a/drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.c ++++ b/drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.c +@@ -348,37 +348,17 @@ static void buffer_cb(struct vchiq_mmal_instance *instance, + buf->vb.vb2_buf.timestamp); + + } else if(pts != 0) { +- struct timeval timestamp; + s64 runtime_us = pts - + dev->capture.vc_start_timestamp; +- u32 div = 0; +- u32 rem = 0; +- +- div = +- div_u64_rem(runtime_us, USEC_PER_SEC, &rem); +- timestamp.tv_sec = +- dev->capture.kernel_start_ts.tv_sec + div; +- timestamp.tv_usec = +- dev->capture.kernel_start_ts.tv_usec + rem; +- +- if (timestamp.tv_usec >= +- USEC_PER_SEC) { +- timestamp.tv_sec++; +- timestamp.tv_usec -= +- USEC_PER_SEC; +- } ++ buf->vb.vb2_buf.timestamp = (runtime_us * NSEC_PER_USEC) + ++ dev->capture.kernel_start_timestamp; + v4l2_dbg(1, bcm2835_v4l2_debug, &dev->v4l2_dev, +- "Convert start time %d.%06d and %llu " +- "with offset %llu to %d.%06d\n", +- (int)dev->capture.kernel_start_ts. +- tv_sec, +- (int)dev->capture.kernel_start_ts. +- tv_usec, +- dev->capture.vc_start_timestamp, pts, +- (int)timestamp.tv_sec, +- (int)timestamp.tv_usec); +- buf->vb.vb2_buf.timestamp = timestamp.tv_sec * 1000000000ULL + +- timestamp.tv_usec * 1000ULL; ++ "Buffer time set as converted timestamp - %llu " ++ "= (pts [%lld usec] - vc start time [%llu usec]) " ++ "+ kernel start time [%llu nsec]\n", ++ buf->vb.vb2_buf.timestamp, ++ pts, dev->capture.vc_start_timestamp, ++ dev->capture.kernel_start_timestamp); + } else { + if (dev->capture.last_timestamp) { + buf->vb.vb2_buf.timestamp = dev->capture.last_timestamp; +@@ -388,8 +368,7 @@ static void buffer_cb(struct vchiq_mmal_instance *instance, + } + else { + buf->vb.vb2_buf.timestamp = +- dev->capture.kernel_start_ts.tv_sec * 1000000000ULL + +- dev->capture.kernel_start_ts.tv_usec * 1000ULL; ++ dev->capture.kernel_start_timestamp; + v4l2_dbg(1, bcm2835_v4l2_debug, &dev->v4l2_dev, + "Buffer time set as start timestamp - %lld", + buf->vb.vb2_buf.timestamp); +@@ -574,7 +553,7 @@ static int start_streaming(struct vb2_queue *vq, unsigned int count) + + dev->capture.last_timestamp = 0; + +- v4l2_get_timestamp(&dev->capture.kernel_start_ts); ++ dev->capture.kernel_start_timestamp = ktime_get_ns(); + + /* enable the camera port */ + dev->capture.port->cb_ctx = dev; +diff --git a/drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.h b/drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.h +index 1b1b44abb402c99c4c217953206614cfaed044c6..31333f57c6020d4990137efca5ff678800d333b4 100644 +--- a/drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.h ++++ b/drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.h +@@ -92,7 +92,7 @@ struct bm2835_mmal_dev { + /* VC start timestamp for streaming */ + s64 vc_start_timestamp; + /* Kernel start timestamp for streaming */ +- struct timeval kernel_start_ts; ++ u64 kernel_start_timestamp; + /* Timestamp of last frame */ + u64 last_timestamp; + + +From a2b13c1b9d7c23fb7a04da68fa65cc948668bac9 Mon Sep 17 00:00:00 2001 +From: Dan Carpenter +Date: Fri, 20 Oct 2017 03:28:45 +0300 +Subject: [PATCH 215/235] drm/panel: rpi-touchscreen: propagate errors in + rpi_touchscreen_i2c_read() + +There is one caller which checks whether rpi_touchscreen_i2c_read() +returns negative error codes. Currently it can't because negative +error codes are truncated to u8, but that's easy to fix if we change the +type to int. + +Fixes: 2f733d6194bd ("drm/panel: Add support for the Raspberry Pi 7" Touchscreen.") +Signed-off-by: Dan Carpenter +Signed-off-by: Eric Anholt +Link: https://patchwork.freedesktop.org/patch/msgid/20171020002845.kar2wg7gqxg7tzqi@mwanda +Reviewed-by: Eric Anholt +(cherry picked from commit 85b4587f8e94143bafb8b6a4003a5187b9a8753d) +--- + drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c b/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c +index b57b7ad9aa4c5048186e98553af59ec912973096..128523d8d51873f7835fb95562d05aed539c06c0 100644 +--- a/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c ++++ b/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c +@@ -243,7 +243,7 @@ static struct rpi_touchscreen *panel_to_ts(struct drm_panel *panel) + return container_of(panel, struct rpi_touchscreen, base); + } + +-static u8 rpi_touchscreen_i2c_read(struct rpi_touchscreen *ts, u8 reg) ++static int rpi_touchscreen_i2c_read(struct rpi_touchscreen *ts, u8 reg) + { + return i2c_smbus_read_byte_data(ts->bridge_i2c, reg); + } + +From 2ebc5aedd3c3d852de97f97ddb522ff3e7014e9b Mon Sep 17 00:00:00 2001 +From: Eric Anholt +Date: Mon, 13 Nov 2017 14:23:48 -0800 +Subject: [PATCH 216/235] drm/vc4: Fix crash if we have to unbind HDMI. + +We need the card to unregister before the codec that the card +references. + +Signed-off-by: Eric Anholt +--- + drivers/gpu/drm/vc4/vc4_hdmi.c | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c +index 8ab20c1e9e69e90b90c7f74640033f932df76ae7..54fe4ceb1c3efd1aa09819661737db4c8ae8f356 100644 +--- a/drivers/gpu/drm/vc4/vc4_hdmi.c ++++ b/drivers/gpu/drm/vc4/vc4_hdmi.c +@@ -1130,7 +1130,7 @@ static int vc4_hdmi_audio_init(struct vc4_hdmi *hdmi) + * snd_soc_card_get_drvdata() if needed. + */ + snd_soc_card_set_drvdata(card, hdmi); +- ret = devm_snd_soc_register_card(dev, card); ++ ret = snd_soc_register_card(card); + if (ret) { + dev_err(dev, "Could not register sound card: %d\n", ret); + goto unregister_codec; +@@ -1147,13 +1147,16 @@ static int vc4_hdmi_audio_init(struct vc4_hdmi *hdmi) + static void vc4_hdmi_audio_cleanup(struct vc4_hdmi *hdmi) + { + struct device *dev = &hdmi->pdev->dev; ++ struct snd_soc_card *card = &hdmi->audio.card; + + /* + * If drvdata is not set this means the audio card was not + * registered, just skip codec unregistration in this case. + */ +- if (dev_get_drvdata(dev)) ++ if (dev_get_drvdata(dev)) { ++ snd_soc_unregister_card(card); + snd_soc_unregister_codec(dev); ++ } + } + + #ifdef CONFIG_DRM_VC4_HDMI_CEC + +From b5dab8d6be607f81ee8e16dad99040e8f7873e4d Mon Sep 17 00:00:00 2001 +From: Eric Anholt +Date: Tue, 31 Oct 2017 11:33:10 -0700 +Subject: [PATCH 217/235] drm/vc4: Skip ULPS latching when we're in that ULPS + state already. + +It seems that trying to go from unlatched to unlatched will time out +waiting for STOP, and we can just skip that. + +Signed-off-by: Eric Anholt +--- + drivers/gpu/drm/vc4/vc4_dsi.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/drivers/gpu/drm/vc4/vc4_dsi.c b/drivers/gpu/drm/vc4/vc4_dsi.c +index 9a1a559ba287c460b274c6a279883e69c62f7bdb..5cd23540971e2b010ce7c679a908033b752fd9ed 100644 +--- a/drivers/gpu/drm/vc4/vc4_dsi.c ++++ b/drivers/gpu/drm/vc4/vc4_dsi.c +@@ -753,6 +753,11 @@ static void vc4_dsi_ulps(struct vc4_dsi *dsi, bool ulps) + (dsi->lanes > 2 ? DSI1_STAT_PHY_D2_STOP : 0) | + (dsi->lanes > 3 ? DSI1_STAT_PHY_D3_STOP : 0)); + int ret; ++ bool ulps_currently_enabled = (DSI_PORT_READ(PHY_AFEC0) & ++ DSI_PORT_BIT(PHY_AFEC0_LATCH_ULPS)); ++ ++ if (ulps == ulps_currently_enabled) ++ return; + + DSI_PORT_WRITE(STAT, stat_ulps); + DSI_PORT_WRITE(PHYC, DSI_PORT_READ(PHYC) | phyc_ulps); + +From 5320376cf365a125f812cd59c8c319bca9306c7f Mon Sep 17 00:00:00 2001 +From: Eric Anholt +Date: Tue, 15 Aug 2017 16:47:18 -0700 +Subject: [PATCH 218/235] drm/vc4: Move the DSI clock divider workaround closer + to the clock call. + +We want the adjusted_mode->clock to be the actual clock we're +expecting to program, so that consumers see the right values for clock +and vrefresh. + +Signed-off-by: Eric Anholt +Link: https://patchwork.freedesktop.org/patch/msgid/20170815234722.20700-1-eric@anholt.net +Reviewed-by: Boris Brezillon +(cherry picked from commit d409eeafa9ba1c0f2eb75a2619fc787808a545e4) +--- + drivers/gpu/drm/vc4/vc4_dsi.c | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git a/drivers/gpu/drm/vc4/vc4_dsi.c b/drivers/gpu/drm/vc4/vc4_dsi.c +index 5cd23540971e2b010ce7c679a908033b752fd9ed..a3f416cbd1d61689c735f5e785dff2459c1a22d4 100644 +--- a/drivers/gpu/drm/vc4/vc4_dsi.c ++++ b/drivers/gpu/drm/vc4/vc4_dsi.c +@@ -864,11 +864,7 @@ static bool vc4_dsi_encoder_mode_fixup(struct drm_encoder *encoder, + pll_clock = parent_rate / divider; + pixel_clock_hz = pll_clock / dsi->divider; + +- /* Round up the clk_set_rate() request slightly, since +- * PLLD_DSI1 is an integer divider and its rate selection will +- * never round up. +- */ +- adjusted_mode->clock = pixel_clock_hz / 1000 + 1; ++ adjusted_mode->clock = pixel_clock_hz / 1000; + + /* Given the new pixel clock, adjust HFP to keep vrefresh the same. */ + adjusted_mode->htotal = adjusted_mode->clock * mode->htotal / +@@ -906,7 +902,11 @@ static void vc4_dsi_encoder_enable(struct drm_encoder *encoder) + vc4_dsi_dump_regs(dsi); + } + +- phy_clock = pixel_clock_hz * dsi->divider; ++ /* Round up the clk_set_rate() request slightly, since ++ * PLLD_DSI1 is an integer divider and its rate selection will ++ * never round up. ++ */ ++ phy_clock = (pixel_clock_hz + 1000) * dsi->divider; + ret = clk_set_rate(dsi->pll_phy_clock, phy_clock); + if (ret) { + dev_err(&dsi->pdev->dev, + +From 04295ba17614659cb6e00701f6a2359560fa6329 Mon Sep 17 00:00:00 2001 +From: P33M +Date: Tue, 13 Feb 2018 15:41:35 +0000 +Subject: [PATCH 219/235] dwc_otg: Fix a regression when dequeueing isochronous + transfers + +In 282bed95 (dwc_otg: make nak_holdoff work as intended with empty queues) +the dequeue mechanism was changed to leave FIQ-enabled transfers to run +to completion - to avoid leaving hub TT buffers with stale packets lying +around. + +This broke FIQ-accelerated isochronous transfers, as this then meant that +dozens of transfers were performed after the dequeue function returned. + +Restore the state machine fence for isochronous transfers. +--- + drivers/usb/host/dwc_otg/dwc_otg_hcd.c | 16 +++++++++++++++- + 1 file changed, 15 insertions(+), 1 deletion(-) + +diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c +index 0c28a6e44299bffd42c501497b6fa02206c2b620..e59747cee7ab9f7d4d858283869bd37ca78d7932 100644 +--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd.c ++++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c +@@ -189,13 +189,21 @@ static void kill_urbs_in_qh_list(dwc_otg_hcd_t * hcd, dwc_list_link_t * qh_list) + + } + if(qh->channel) { ++ int n = qh->channel->hc_num; + /* Using hcchar.chen == 1 is not a reliable test. + * It is possible that the channel has already halted + * but not yet been through the IRQ handler. + */ + if (fiq_fsm_enable && (hcd->fiq_state->channel[qh->channel->hc_num].fsm != FIQ_PASSTHROUGH)) { ++ local_fiq_disable(); ++ fiq_fsm_spin_lock(&hcd->fiq_state->lock); + qh->channel->halt_status = DWC_OTG_HC_XFER_URB_DEQUEUE; + qh->channel->halt_pending = 1; ++ if (hcd->fiq_state->channel[n].fsm == FIQ_HS_ISOC_TURBO || ++ hcd->fiq_state->channel[n].fsm == FIQ_HS_ISOC_SLEEPING) ++ hcd->fiq_state->channel[n].fsm = FIQ_HS_ISOC_ABORTED; ++ fiq_fsm_spin_unlock(&hcd->fiq_state->lock); ++ local_fiq_enable(); + } else { + dwc_otg_hc_halt(hcd->core_if, qh->channel, + DWC_OTG_HC_XFER_URB_DEQUEUE); +@@ -596,9 +604,15 @@ int dwc_otg_hcd_urb_dequeue(dwc_otg_hcd_t * hcd, + /* In FIQ FSM mode, we need to shut down carefully. + * The FIQ may attempt to restart a disabled channel */ + if (fiq_fsm_enable && (hcd->fiq_state->channel[n].fsm != FIQ_PASSTHROUGH)) { ++ local_fiq_disable(); ++ fiq_fsm_spin_lock(&hcd->fiq_state->lock); + qh->channel->halt_status = DWC_OTG_HC_XFER_URB_DEQUEUE; + qh->channel->halt_pending = 1; +- //hcd->fiq_state->channel[n].fsm = FIQ_DEQUEUE_ISSUED; ++ if (hcd->fiq_state->channel[n].fsm == FIQ_HS_ISOC_TURBO || ++ hcd->fiq_state->channel[n].fsm == FIQ_HS_ISOC_SLEEPING) ++ hcd->fiq_state->channel[n].fsm = FIQ_HS_ISOC_ABORTED; ++ fiq_fsm_spin_unlock(&hcd->fiq_state->lock); ++ local_fiq_enable(); + } else { + dwc_otg_hc_halt(hcd->core_if, qh->channel, + DWC_OTG_HC_XFER_URB_DEQUEUE); + +From f2b42907dd329f1b4da6c9bc331c7362c2b6e5b8 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Thu, 15 Feb 2018 09:36:52 +0000 +Subject: [PATCH 220/235] overlays: Allow multiple instances of gpio-ir[-tx] + +Signed-off-by: Phil Elwell +--- + arch/arm/boot/dts/overlays/gpio-ir-overlay.dts | 10 ++++++---- + arch/arm/boot/dts/overlays/gpio-ir-tx-overlay.dts | 10 ++++++---- + 2 files changed, 12 insertions(+), 8 deletions(-) + +diff --git a/arch/arm/boot/dts/overlays/gpio-ir-overlay.dts b/arch/arm/boot/dts/overlays/gpio-ir-overlay.dts +index af5baf7ddc92be7a59ad3d5f9a9fefba915bed05..bfa3cb5fd4ddd238e67a7f08deca16e993146c8e 100644 +--- a/arch/arm/boot/dts/overlays/gpio-ir-overlay.dts ++++ b/arch/arm/boot/dts/overlays/gpio-ir-overlay.dts +@@ -8,7 +8,7 @@ + fragment@0 { + target-path = "/"; + __overlay__ { +- gpio_ir: ir-receiver { ++ gpio_ir: ir-receiver@12 { + compatible = "gpio-ir-receiver"; + + // pin number, high or low +@@ -25,7 +25,7 @@ + fragment@1 { + target = <&gpio>; + __overlay__ { +- gpio_ir_pins: gpio_ir_pins { ++ gpio_ir_pins: gpio_ir_pins@12 { + brcm,pins = <18>; // pin 18 + brcm,function = <0>; // in + brcm,pull = <1>; // down +@@ -35,8 +35,10 @@ + + __overrides__ { + // parameters +- gpio_pin = <&gpio_ir>,"gpios:4", +- <&gpio_ir_pins>,"brcm,pins:0"; // pin number ++ gpio_pin = <&gpio_ir>,"gpios:4", // pin number ++ <&gpio_ir>,"reg:0", ++ <&gpio_ir_pins>,"brcm,pins:0", ++ <&gpio_ir_pins>,"reg:0"; + gpio_pull = <&gpio_ir_pins>,"brcm,pull:0"; // pull-up/down state + + rc-map-name = <&gpio_ir>,"linux,rc-map-name"; // default rc map +diff --git a/arch/arm/boot/dts/overlays/gpio-ir-tx-overlay.dts b/arch/arm/boot/dts/overlays/gpio-ir-tx-overlay.dts +index a2e271f0f2029acec85637c0ffa9dc5b2f0463a8..e054ba319398ee49801f9ed7a33156a5812cb3db 100644 +--- a/arch/arm/boot/dts/overlays/gpio-ir-tx-overlay.dts ++++ b/arch/arm/boot/dts/overlays/gpio-ir-tx-overlay.dts +@@ -7,7 +7,7 @@ + fragment@0 { + target = <&gpio>; + __overlay__ { +- gpio_ir_tx_pins: gpio_ir_tx_pins { ++ gpio_ir_tx_pins: gpio_ir_tx_pins@12 { + brcm,pins = <18>; + brcm,function = <1>; // out + }; +@@ -17,7 +17,7 @@ + fragment@1 { + target-path = "/"; + __overlay__ { +- gpio_ir_tx: gpio-ir-transmitter { ++ gpio_ir_tx: gpio-ir-transmitter@12 { + compatible = "gpio-ir-tx"; + pinctrl-names = "default"; + pinctrl-0 = <&gpio_ir_tx_pins>; +@@ -27,8 +27,10 @@ + }; + + __overrides__ { +- gpio_pin = <&gpio_ir_tx>, "gpios:4", +- <&gpio_ir_tx_pins>, "brcm,pins:0"; // pin number ++ gpio_pin = <&gpio_ir_tx>, "gpios:4", // pin number ++ <&gpio_ir_tx>, "reg:0", ++ <&gpio_ir_tx_pins>, "brcm,pins:0", ++ <&gpio_ir_tx_pins>, "reg:0"; + invert = <&gpio_ir_tx>, "gpios:8"; // 1 = active low + }; + }; + +From 81d3d022975722b427d731b0da06ca0c8b903b84 Mon Sep 17 00:00:00 2001 +From: P33M +Date: Thu, 15 Feb 2018 11:22:44 +0000 +Subject: [PATCH 221/235] dwc_otg: add smp_mb() to prevent driver state + corruption on boot + +Occasional crashes have been seen where the FIQ code dereferences +invalid/random pointers immediately after being set up, leading to +panic on boot. + +The crash occurs as the FIQ code races against hcd_init_fiq() and +the hcd_init_fiq() code races against the outstanding memory stores +from dwc_otg_hcd_init(). Use explicit barriers after touching +driver state. +--- + drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c | 11 ++++++++++- + 1 file changed, 10 insertions(+), 1 deletion(-) + +diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c +index 992269d61ecf48126379a38e528f719009ee1d75..2ccd2a80dbefa0cee97e996a3eea5b181ecc0e82 100644 +--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c ++++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c +@@ -519,6 +519,11 @@ static void hcd_init_fiq(void *cookie) + DWC_ERROR("Can't get FIQ irq"); + return; + } ++ /* ++ * We could take an interrupt immediately after enabling the FIQ. ++ * Ensure coherency of hcd->fiq_state. ++ */ ++ smp_mb(); + enable_fiq(irq); + local_fiq_enable(); + #endif +@@ -598,7 +603,11 @@ int hcd_init(dwc_bus_dev_t *_dev) + + if (fiq_enable) { + if (num_online_cpus() > 1) { +- /* bcm2709: can run the FIQ on a separate core to IRQs */ ++ /* ++ * bcm2709: can run the FIQ on a separate core to IRQs. ++ * Ensure driver state is visible to other cores before setting up the FIQ. ++ */ ++ smp_mb(); + smp_call_function_single(1, hcd_init_fiq, otg_dev, 1); + } else { + smp_call_function_single(0, hcd_init_fiq, otg_dev, 1); + +From ca742e1c9bc0aa29b47575d287e29176330f34ef Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Thu, 15 Feb 2018 16:03:04 +0000 +Subject: [PATCH 222/235] overlay: Add missing pinctrl reference to gpio-ir + +Signed-off-by: Phil Elwell +--- + arch/arm/boot/dts/overlays/gpio-ir-overlay.dts | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/arch/arm/boot/dts/overlays/gpio-ir-overlay.dts b/arch/arm/boot/dts/overlays/gpio-ir-overlay.dts +index bfa3cb5fd4ddd238e67a7f08deca16e993146c8e..1bd9bb950efaed966f07426321262e337fece5b8 100644 +--- a/arch/arm/boot/dts/overlays/gpio-ir-overlay.dts ++++ b/arch/arm/boot/dts/overlays/gpio-ir-overlay.dts +@@ -10,6 +10,8 @@ + __overlay__ { + gpio_ir: ir-receiver@12 { + compatible = "gpio-ir-receiver"; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&gpio_ir_pins>; + + // pin number, high or low + gpios = <&gpio 18 1>; + +From 8d67d4575140296be962d395b1e902f07f0f9860 Mon Sep 17 00:00:00 2001 +From: Matthias Reichl +Date: Fri, 2 Feb 2018 20:30:41 +0100 +Subject: [PATCH 223/235] ASoC: pcm512x: revert downstream changes + +This partially reverts commit 185ea05465aac8bf02a0d2b2f4289d42c72870b7 +which was added by https://github.com/raspberrypi/linux/pull/1152 + +The downstream pcm512x changes caused a regression, it broke normal +use of the 24bit format with the codec, eg when using simple-audio-card. + +The actual bug with 24bit playback is the incorrect usage +of physical_width in various drivers in the downstream tree +which causes 24bit data to be transmitted with 32 clock +cycles. So it's not the pcm512x that needs fixing, it's the +soundcard drivers. + +Signed-off-by: Matthias Reichl +--- + sound/soc/codecs/pcm512x.c | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/sound/soc/codecs/pcm512x.c b/sound/soc/codecs/pcm512x.c +index f7b0977017ed5a6c02eafa0147d49d66876537bf..68feae262476492ae3a0b30855dbb09e96fa187e 100644 +--- a/sound/soc/codecs/pcm512x.c ++++ b/sound/soc/codecs/pcm512x.c +@@ -851,8 +851,7 @@ static int pcm512x_set_dividers(struct snd_soc_dai *dai, + int fssp; + int gpio; + +- lrclk_div = snd_pcm_format_physical_width(params_format(params)) +- * params_channels(params); ++ lrclk_div = snd_soc_params_to_frame_size(params); + if (lrclk_div == 0) { + dev_err(dev, "No LRCLK?\n"); + return -EINVAL; + +From 3be60b477538e5fb4f7664d03a8e26442558e05a Mon Sep 17 00:00:00 2001 +From: Matthias Reichl +Date: Fri, 2 Feb 2018 20:30:42 +0100 +Subject: [PATCH 224/235] ASoC: allo-boss-dac: fix S24_LE format + +Remove set_bclk_ratio call so 24-bit data is transmitted in +24 bclk cycles. + +Signed-off-by: Matthias Reichl +--- + sound/soc/bcm/allo-boss-dac.c | 20 ++------------------ + 1 file changed, 2 insertions(+), 18 deletions(-) + +diff --git a/sound/soc/bcm/allo-boss-dac.c b/sound/soc/bcm/allo-boss-dac.c +index 203ab76c7045b081578e23bda1099dd103d11154..26c37da070176330abddc7d2d689dcbb43bd78c2 100644 +--- a/sound/soc/bcm/allo-boss-dac.c ++++ b/sound/soc/bcm/allo-boss-dac.c +@@ -222,14 +222,6 @@ static int snd_allo_boss_update_rate_den( + return 0; + } + +-static int snd_allo_boss_set_bclk_ratio_pro( +- struct snd_soc_dai *cpu_dai, struct snd_pcm_hw_params *params) +-{ +- int bratio = snd_pcm_format_physical_width(params_format(params)) +- * params_channels(params); +- return snd_soc_dai_set_bclk_ratio(cpu_dai, bratio); +-} +- + static void snd_allo_boss_gpio_mute(struct snd_soc_card *card) + { + if (mute_gpio) +@@ -281,9 +273,6 @@ static int snd_allo_boss_hw_params( + { + int ret = 0; + struct snd_soc_pcm_runtime *rtd = substream->private_data; +- struct snd_soc_dai *cpu_dai = rtd->cpu_dai; +- unsigned int sample_bits = +- snd_pcm_format_physical_width(params_format(params)); + + if (snd_soc_allo_boss_master) { + struct snd_soc_codec *codec = rtd->codec; +@@ -291,13 +280,8 @@ static int snd_allo_boss_hw_params( + snd_allo_boss_set_sclk(codec, + params_rate(params)); + +- ret = snd_allo_boss_set_bclk_ratio_pro(cpu_dai, +- params); +- if (!ret) +- ret = snd_allo_boss_update_rate_den( +- substream, params); +- } else { +- ret = snd_soc_dai_set_bclk_ratio(cpu_dai, sample_bits * 2); ++ ret = snd_allo_boss_update_rate_den( ++ substream, params); + } + return ret; + } + +From 46167d527fc81838e74a32ac1f6ba30948bde0b0 Mon Sep 17 00:00:00 2001 +From: Matthias Reichl +Date: Fri, 2 Feb 2018 20:30:42 +0100 +Subject: [PATCH 225/235] ASoC: allo-piano-dac-plus: fix S24_LE format + +Remove set_bclk_ratio call so 24-bit data is transmitted in +24 bclk cycles. + +Signed-off-by: Matthias Reichl +--- + sound/soc/bcm/allo-piano-dac-plus.c | 5 ----- + 1 file changed, 5 deletions(-) + +diff --git a/sound/soc/bcm/allo-piano-dac-plus.c b/sound/soc/bcm/allo-piano-dac-plus.c +index 1800f5e4d414e2d83a9487a89a2800a3e1ec01b1..d1ac0494967fb028921050fc7c7b51b40ff64a33 100644 +--- a/sound/soc/bcm/allo-piano-dac-plus.c ++++ b/sound/soc/bcm/allo-piano-dac-plus.c +@@ -795,9 +795,6 @@ static int snd_allo_piano_dac_hw_params( + struct snd_pcm_hw_params *params) + { + struct snd_soc_pcm_runtime *rtd = substream->private_data; +- struct snd_soc_dai *cpu_dai = rtd->cpu_dai; +- unsigned int sample_bits = +- snd_pcm_format_physical_width(params_format(params)); + unsigned int rate = params_rate(params); + struct snd_soc_card *card = rtd->card; + struct glb_pool *glb_ptr = card->drvdata; +@@ -839,8 +836,6 @@ static int snd_allo_piano_dac_hw_params( + if (ret < 0) + return ret; + +- ret = snd_soc_dai_set_bclk_ratio(cpu_dai, sample_bits * 2); +- + return ret; + } + + +From d3d332a10b2cef67155b73e9092bc3e9af69a81d Mon Sep 17 00:00:00 2001 +From: Matthias Reichl +Date: Fri, 2 Feb 2018 20:30:42 +0100 +Subject: [PATCH 226/235] ASoC: allo-piano-dac: fix S24_LE format + +Remove set_bclk_ratio call so 24-bit data is transmitted in +24 bclk cycles. + +Also remove hw_params and ops as they are no longer needed. + +Signed-off-by: Matthias Reichl +--- + sound/soc/bcm/allo-piano-dac.c | 18 ------------------ + 1 file changed, 18 deletions(-) + +diff --git a/sound/soc/bcm/allo-piano-dac.c b/sound/soc/bcm/allo-piano-dac.c +index eaf50fb6dbca1970ae1c6f8662088b0f1573fecb..cfe81c946271e2d06b6f055c94fb797e1b54d6cc 100644 +--- a/sound/soc/bcm/allo-piano-dac.c ++++ b/sound/soc/bcm/allo-piano-dac.c +@@ -42,23 +42,6 @@ static int snd_allo_piano_dac_init(struct snd_soc_pcm_runtime *rtd) + return 0; + } + +-static int snd_allo_piano_dac_hw_params( +- struct snd_pcm_substream *substream, struct snd_pcm_hw_params *params) +-{ +- struct snd_soc_pcm_runtime *rtd = substream->private_data; +- struct snd_soc_dai *cpu_dai = rtd->cpu_dai; +- +- unsigned int sample_bits = +- snd_pcm_format_physical_width(params_format(params)); +- +- return snd_soc_dai_set_bclk_ratio(cpu_dai, sample_bits * 2); +-} +- +-/* machine stream operations */ +-static struct snd_soc_ops snd_allo_piano_dac_ops = { +- .hw_params = snd_allo_piano_dac_hw_params, +-}; +- + static struct snd_soc_dai_link snd_allo_piano_dac_dai[] = { + { + .name = "Piano DAC", +@@ -70,7 +53,6 @@ static struct snd_soc_dai_link snd_allo_piano_dac_dai[] = { + .dai_fmt = SND_SOC_DAIFMT_I2S | + SND_SOC_DAIFMT_NB_NF | + SND_SOC_DAIFMT_CBS_CFS, +- .ops = &snd_allo_piano_dac_ops, + .init = snd_allo_piano_dac_init, + }, + }; + +From 9b45934986d36a599be1e4a8f582b9466cd749fa Mon Sep 17 00:00:00 2001 +From: Matthias Reichl +Date: Fri, 2 Feb 2018 20:30:42 +0100 +Subject: [PATCH 227/235] ASoC: dionaudio_loco-v2: fix S24_LE format + +Remove set_bclk_ratio call so 24-bit data is transmitted in +24 bclk cycles. + +Also remove hw_params and ops as they are no longer needed. + +Signed-off-by: Matthias Reichl +--- + sound/soc/bcm/dionaudio_loco-v2.c | 19 ------------------- + 1 file changed, 19 deletions(-) + +diff --git a/sound/soc/bcm/dionaudio_loco-v2.c b/sound/soc/bcm/dionaudio_loco-v2.c +index a009c49477972a9832175d86f201b0357a08f7c0..8f522deb2a4898b9b03fb6c6a845acbebe18ce33 100644 +--- a/sound/soc/bcm/dionaudio_loco-v2.c ++++ b/sound/soc/bcm/dionaudio_loco-v2.c +@@ -41,24 +41,6 @@ static int snd_rpi_dionaudio_loco_v2_init(struct snd_soc_pcm_runtime *rtd) + return 0; + } + +-static int snd_rpi_dionaudio_loco_v2_hw_params( +- struct snd_pcm_substream *substream, +- struct snd_pcm_hw_params *params) +-{ +- struct snd_soc_pcm_runtime *rtd = substream->private_data; +- struct snd_soc_dai *cpu_dai = rtd->cpu_dai; +- +- unsigned int sample_bits = +- snd_pcm_format_physical_width(params_format(params)); +- +- return snd_soc_dai_set_bclk_ratio(cpu_dai, sample_bits * 2); +-} +- +-/* machine stream operations */ +-static struct snd_soc_ops snd_rpi_dionaudio_loco_v2_ops = { +- .hw_params = snd_rpi_dionaudio_loco_v2_hw_params, +-}; +- + static struct snd_soc_dai_link snd_rpi_dionaudio_loco_v2_dai[] = { + { + .name = "DionAudio LOCO-V2", +@@ -69,7 +51,6 @@ static struct snd_soc_dai_link snd_rpi_dionaudio_loco_v2_dai[] = { + .codec_name = "pcm512x.1-004d", + .dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF | + SND_SOC_DAIFMT_CBS_CFS, +- .ops = &snd_rpi_dionaudio_loco_v2_ops, + .init = snd_rpi_dionaudio_loco_v2_init, + },}; + + +From 641f009f2de36598903c8c0a307ba53d0757707b Mon Sep 17 00:00:00 2001 +From: Matthias Reichl +Date: Fri, 2 Feb 2018 20:30:42 +0100 +Subject: [PATCH 228/235] ASoC: hifiberry_dacplus: fix S24_LE format + +Remove set_bclk_ratio call so 24-bit data is transmitted in +24 bclk cycles. + +Signed-off-by: Matthias Reichl +--- + sound/soc/bcm/hifiberry_dacplus.c | 20 +++----------------- + 1 file changed, 3 insertions(+), 17 deletions(-) + +diff --git a/sound/soc/bcm/hifiberry_dacplus.c b/sound/soc/bcm/hifiberry_dacplus.c +index 16697dd6c6db6856022731a07a9a1653dd94b9f5..b32dae9d3b1d7dc687e071a75462444c820c00c4 100644 +--- a/sound/soc/bcm/hifiberry_dacplus.c ++++ b/sound/soc/bcm/hifiberry_dacplus.c +@@ -216,20 +216,11 @@ static int snd_rpi_hifiberry_dacplus_update_rate_den( + return 0; + } + +-static int snd_rpi_hifiberry_dacplus_set_bclk_ratio_pro( +- struct snd_soc_dai *cpu_dai, struct snd_pcm_hw_params *params) +-{ +- int bratio = snd_pcm_format_physical_width(params_format(params)) +- * params_channels(params); +- return snd_soc_dai_set_bclk_ratio(cpu_dai, bratio); +-} +- + static int snd_rpi_hifiberry_dacplus_hw_params( + struct snd_pcm_substream *substream, struct snd_pcm_hw_params *params) + { +- int ret; ++ int ret = 0; + struct snd_soc_pcm_runtime *rtd = substream->private_data; +- struct snd_soc_dai *cpu_dai = rtd->cpu_dai; + + if (snd_rpi_hifiberry_is_dacpro) { + struct snd_soc_codec *codec = rtd->codec; +@@ -237,13 +228,8 @@ static int snd_rpi_hifiberry_dacplus_hw_params( + snd_rpi_hifiberry_dacplus_set_sclk(codec, + params_rate(params)); + +- ret = snd_rpi_hifiberry_dacplus_set_bclk_ratio_pro(cpu_dai, +- params); +- if (!ret) +- ret = snd_rpi_hifiberry_dacplus_update_rate_den( +- substream, params); +- } else { +- ret = snd_soc_dai_set_bclk_ratio(cpu_dai, 64); ++ ret = snd_rpi_hifiberry_dacplus_update_rate_den( ++ substream, params); + } + return ret; + } + +From 205efb90f92fe3d9b321b987264d88402d3434d8 Mon Sep 17 00:00:00 2001 +From: Matthias Reichl +Date: Fri, 2 Feb 2018 20:30:42 +0100 +Subject: [PATCH 229/235] ASoC: iqaudio-dac: fix S24_LE format + +Remove set_bclk_ratio call so 24-bit data is transmitted in +24 bclk cycles. + +Signed-off-by: Matthias Reichl +--- + sound/soc/bcm/iqaudio-dac.c | 18 ------------------ + 1 file changed, 18 deletions(-) + +diff --git a/sound/soc/bcm/iqaudio-dac.c b/sound/soc/bcm/iqaudio-dac.c +index 1ee4097c846376666775272ed692ca330881b0cb..4583d199fd83d2b6877682ce4a08f7c6da4a4844 100644 +--- a/sound/soc/bcm/iqaudio-dac.c ++++ b/sound/soc/bcm/iqaudio-dac.c +@@ -43,18 +43,6 @@ static int snd_rpi_iqaudio_dac_init(struct snd_soc_pcm_runtime *rtd) + return 0; + } + +-static int snd_rpi_iqaudio_dac_hw_params(struct snd_pcm_substream *substream, +- struct snd_pcm_hw_params *params) +-{ +- struct snd_soc_pcm_runtime *rtd = substream->private_data; +- struct snd_soc_dai *cpu_dai = rtd->cpu_dai; +- +- unsigned int sample_bits = +- snd_pcm_format_physical_width(params_format(params)); +- +- return snd_soc_dai_set_bclk_ratio(cpu_dai, sample_bits * 2); +-} +- + static void snd_rpi_iqaudio_gpio_mute(struct snd_soc_card *card) + { + if (mute_gpio) { +@@ -109,11 +97,6 @@ static int snd_rpi_iqaudio_set_bias_level(struct snd_soc_card *card, + return 0; + } + +-/* machine stream operations */ +-static struct snd_soc_ops snd_rpi_iqaudio_dac_ops = { +- .hw_params = snd_rpi_iqaudio_dac_hw_params, +-}; +- + static struct snd_soc_dai_link snd_rpi_iqaudio_dac_dai[] = { + { + .cpu_dai_name = "bcm2708-i2s.0", +@@ -122,7 +105,6 @@ static struct snd_soc_dai_link snd_rpi_iqaudio_dac_dai[] = { + .codec_name = "pcm512x.1-004c", + .dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF | + SND_SOC_DAIFMT_CBS_CFS, +- .ops = &snd_rpi_iqaudio_dac_ops, + .init = snd_rpi_iqaudio_dac_init, + }, + }; + +From 5d076bc19bc8e6237c6461009df690f360f06cbc Mon Sep 17 00:00:00 2001 +From: Matthias Reichl +Date: Fri, 2 Feb 2018 20:30:43 +0100 +Subject: [PATCH 230/235] ASoC: justboom-dac: fix S24_LE format + +Remove set_bclk_ratio call so 24-bit data is transmitted in +24 bclk cycles. + +Also remove hw_params as it's no longer needed. + +Signed-off-by: Matthias Reichl +--- + sound/soc/bcm/justboom-dac.c | 12 ------------ + 1 file changed, 12 deletions(-) + +diff --git a/sound/soc/bcm/justboom-dac.c b/sound/soc/bcm/justboom-dac.c +index 9bab6cf063d3d450d96b4ee2196a7384e071cbdb..217626cdad6c2e5d96de9cd677906fd047f7f180 100644 +--- a/sound/soc/bcm/justboom-dac.c ++++ b/sound/soc/bcm/justboom-dac.c +@@ -49,17 +49,6 @@ static int snd_rpi_justboom_dac_init(struct snd_soc_pcm_runtime *rtd) + return 0; + } + +-static int snd_rpi_justboom_dac_hw_params(struct snd_pcm_substream *substream, +- struct snd_pcm_hw_params *params) +-{ +- struct snd_soc_pcm_runtime *rtd = substream->private_data; +- struct snd_soc_dai *cpu_dai = rtd->cpu_dai; +- /*return snd_soc_dai_set_bclk_ratio(cpu_dai, 64);*/ +- unsigned int sample_bits = +- snd_pcm_format_physical_width(params_format(params)); +- return snd_soc_dai_set_bclk_ratio(cpu_dai, sample_bits * 2); +-} +- + static int snd_rpi_justboom_dac_startup(struct snd_pcm_substream *substream) { + struct snd_soc_pcm_runtime *rtd = substream->private_data; + struct snd_soc_codec *codec = rtd->codec; +@@ -75,7 +64,6 @@ static void snd_rpi_justboom_dac_shutdown(struct snd_pcm_substream *substream) { + + /* machine stream operations */ + static struct snd_soc_ops snd_rpi_justboom_dac_ops = { +- .hw_params = snd_rpi_justboom_dac_hw_params, + .startup = snd_rpi_justboom_dac_startup, + .shutdown = snd_rpi_justboom_dac_shutdown, + }; + +From 53013240263d05cae7959f4bde2f5747f948a906 Mon Sep 17 00:00:00 2001 +From: Matthias Reichl +Date: Fri, 2 Feb 2018 20:30:43 +0100 +Subject: [PATCH 231/235] ASoC: raspidac3: fix S24_LE format + +Remove set_bclk_ratio call so 24-bit data is transmitted in +24 bclk cycles. + +Also remove hw_params as it's no longer needed. + +Signed-off-by: Matthias Reichl +--- + sound/soc/bcm/raspidac3.c | 14 -------------- + 1 file changed, 14 deletions(-) + +diff --git a/sound/soc/bcm/raspidac3.c b/sound/soc/bcm/raspidac3.c +index ad2b5b89bc8213dc2e277306ef50d6e32448759c..1e45db34fe0def5eb210627d4daa552a58b29559 100644 +--- a/sound/soc/bcm/raspidac3.c ++++ b/sound/soc/bcm/raspidac3.c +@@ -68,19 +68,6 @@ static int snd_rpi_raspidac3_init(struct snd_soc_pcm_runtime *rtd) + return 0; + } + +-/* set hw parameters */ +-static int snd_rpi_raspidac3_hw_params(struct snd_pcm_substream *substream, +- struct snd_pcm_hw_params *params) +-{ +- struct snd_soc_pcm_runtime *rtd = substream->private_data; +- struct snd_soc_dai *cpu_dai = rtd->cpu_dai; +- +- unsigned int sample_bits = +- snd_pcm_format_physical_width(params_format(params)); +- +- return snd_soc_dai_set_bclk_ratio(cpu_dai, sample_bits * 2); +-} +- + /* startup */ + static int snd_rpi_raspidac3_startup(struct snd_pcm_substream *substream) { + struct snd_soc_pcm_runtime *rtd = substream->private_data; +@@ -98,7 +85,6 @@ static void snd_rpi_raspidac3_shutdown(struct snd_pcm_substream *substream) { + + /* machine stream operations */ + static struct snd_soc_ops snd_rpi_raspidac3_ops = { +- .hw_params = snd_rpi_raspidac3_hw_params, + .startup = snd_rpi_raspidac3_startup, + .shutdown = snd_rpi_raspidac3_shutdown, + }; + +From 426d7b58610f838369263621e46b56b2185d1e05 Mon Sep 17 00:00:00 2001 +From: Ismael Asensio +Date: Sun, 18 Feb 2018 18:53:58 +0100 +Subject: [PATCH 232/235] Generic Rotary Encoder overlay for multiple instances + (#2388) + +Modify the rotary-encoder overlay to support multiple instances. +--- + arch/arm/boot/dts/overlays/README | 4 +- + .../boot/dts/overlays/rotary-encoder-overlay.dts | 54 +++++++++++++--------- + 2 files changed, 33 insertions(+), 25 deletions(-) + +diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README +index 88f67db61e9e3c481a9df0b71e5c303b47261682..dadbccc18f452430dde8fce71c100bd599a405c2 100644 +--- a/arch/arm/boot/dts/overlays/README ++++ b/arch/arm/boot/dts/overlays/README +@@ -1345,9 +1345,9 @@ Params: + Name: rotary-encoder + Info: Overlay for GPIO connected rotary encoder. + Load: dtoverlay=rotary-encoder,= +-Params: rotary0_pin_a GPIO connected to rotary encoder channel A ++Params: pin_a GPIO connected to rotary encoder channel A + (default 4). +- rotary0_pin_b GPIO connected to rotary encoder channel B ++ pin_b GPIO connected to rotary encoder channel B + (default 17). + relative_axis register a relative axis rather than an + absolute one. Relative axis will only +diff --git a/arch/arm/boot/dts/overlays/rotary-encoder-overlay.dts b/arch/arm/boot/dts/overlays/rotary-encoder-overlay.dts +index f88f8a39d9a2f2afbf80edf2d9b328410feebaca..819f400a90546d2edce2d510a1d823e5106c544b 100644 +--- a/arch/arm/boot/dts/overlays/rotary-encoder-overlay.dts ++++ b/arch/arm/boot/dts/overlays/rotary-encoder-overlay.dts +@@ -8,7 +8,7 @@ + fragment@0 { + target = <&gpio>; + __overlay__ { +- rotary0_pins: rotary0_pins { ++ rotary_pins: rotary_pins@4 { + brcm,pins = <4 17>; /* gpio 4 17 */ + brcm,function = <0 0>; /* input */ + brcm,pull = <2 2>; /* pull-up */ +@@ -20,32 +20,40 @@ + fragment@1 { + target-path = "/"; + __overlay__ { +- rotary0: rotary@0 { +- compatible = "rotary-encoder"; +- status = "okay"; +- pinctrl-names = "default"; +- pinctrl-0 = <&rotary0_pins>; +- gpios = <&gpio 4 0>, <&gpio 17 0>; +- linux,axis = <0>; /* REL_X */ +- rotary-encoder,encoding = "gray"; +- rotary-encoder,steps = <24>; /* 24 default */ +- rotary-encoder,steps-per-period = <1>; /* corresponds to full period mode. See README */ ++ rotary: rotary@4 { ++ compatible = "rotary-encoder"; ++ status = "okay"; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&rotary_pins>; ++ gpios = <&gpio 4 0>, <&gpio 17 0>; ++ linux,axis = <0>; /* REL_X */ ++ rotary-encoder,encoding = "gray"; ++ rotary-encoder,steps = <24>; /* 24 default */ ++ rotary-encoder,steps-per-period = <1>; /* corresponds to full period mode. See README */ + }; + }; + + }; + + __overrides__ { +- rotary0_pin_a = <&rotary0>,"gpios:4", +- <&rotary0_pins>,"brcm,pins:0"; +- rotary0_pin_b = <&rotary0>,"gpios:16", +- <&rotary0_pins>,"brcm,pins:4"; +- relative_axis = <&rotary0>,"rotary-encoder,relative-axis?"; +- linux_axis = <&rotary0>,"linux,axis:0"; +- rollover = <&rotary0>,"rotary-encoder,rollover?"; +- steps-per-period = <&rotary0>,"rotary-encoder,steps-per-period:0"; +- steps = <&rotary0>,"rotary-encoder,steps:0"; +- wakeup = <&rotary0>,"wakeup-source?"; +- encoding = <&rotary0>,"rotary-encoder,encoding"; +- }; ++ pin_a = <&rotary>,"gpios:4", ++ <&rotary_pins>,"brcm,pins:0", ++ /* modify reg values to allow multiple instantiation */ ++ <&rotary>,"reg:0", ++ <&rotary_pins>,"reg:0"; ++ pin_b = <&rotary>,"gpios:16", ++ <&rotary_pins>,"brcm,pins:4"; ++ relative_axis = <&rotary>,"rotary-encoder,relative-axis?"; ++ linux_axis = <&rotary>,"linux,axis:0"; ++ rollover = <&rotary>,"rotary-encoder,rollover?"; ++ steps-per-period = <&rotary>,"rotary-encoder,steps-per-period:0"; ++ steps = <&rotary>,"rotary-encoder,steps:0"; ++ wakeup = <&rotary>,"wakeup-source?"; ++ encoding = <&rotary>,"rotary-encoder,encoding"; ++ /* legacy parameters*/ ++ rotary0_pin_a = <&rotary>,"gpios:4", ++ <&rotary_pins>,"brcm,pins:0"; ++ rotary0_pin_b = <&rotary>,"gpios:16", ++ <&rotary_pins>,"brcm,pins:4"; ++ }; + }; + +From 89fb8974f6ebbbbd2243936aaa4edd980298dcb8 Mon Sep 17 00:00:00 2001 +From: RF William Hollender +Date: Sun, 18 Feb 2018 14:41:43 -0600 +Subject: [PATCH 233/235] Add support for SuperAudioBoard sound card (#2386) + +SuperAudioBoard support using simple-audio-card driver. +--- + arch/arm/boot/dts/overlays/Makefile | 1 + + arch/arm/boot/dts/overlays/README | 6 ++ + .../boot/dts/overlays/superaudioboard-overlay.dts | 73 ++++++++++++++++++++++ + arch/arm/configs/bcm2709_defconfig | 1 + + arch/arm/configs/bcmrpi_defconfig | 1 + + arch/arm64/configs/bcmrpi3_defconfig | 1 + + 6 files changed, 83 insertions(+) + create mode 100755 arch/arm/boot/dts/overlays/superaudioboard-overlay.dts + +diff --git a/arch/arm/boot/dts/overlays/Makefile b/arch/arm/boot/dts/overlays/Makefile +index 3c8222020562d932681bdc4676b9466aac931552..a4c5b740bf74cd0713646c466b44ad8a7ac91f75 100644 +--- a/arch/arm/boot/dts/overlays/Makefile ++++ b/arch/arm/boot/dts/overlays/Makefile +@@ -118,6 +118,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \ + spi2-1cs.dtbo \ + spi2-2cs.dtbo \ + spi2-3cs.dtbo \ ++ superaudioboard.dtbo \ + tinylcd35.dtbo \ + uart0.dtbo \ + uart1.dtbo \ +diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README +index dadbccc18f452430dde8fce71c100bd599a405c2..65a93e6555750ae633d0afcd06403f15303134b0 100644 +--- a/arch/arm/boot/dts/overlays/README ++++ b/arch/arm/boot/dts/overlays/README +@@ -1658,6 +1658,12 @@ Params: cs0_pin GPIO pin for CS0 (default 43 - BCM SPI2_CE0). + is 'okay' or enabled). + + ++Name: superaudioboard ++Info: Configures the SuperAudioBoard sound card ++Load: dtoverlay=superaudioboard,= ++Params: gpiopin GPIO pin for codec reset ++ ++ + Name: tinylcd35 + Info: 3.5" Color TFT Display by www.tinylcd.com + Options: Touch, RTC, keypad +diff --git a/arch/arm/boot/dts/overlays/superaudioboard-overlay.dts b/arch/arm/boot/dts/overlays/superaudioboard-overlay.dts +new file mode 100755 +index 0000000000000000000000000000000000000000..e625faeed7fbca38b93d3a2b1b441893cb51e2d8 +--- /dev/null ++++ b/arch/arm/boot/dts/overlays/superaudioboard-overlay.dts +@@ -0,0 +1,73 @@ ++// Definitions for SuperAudioBoard ++/dts-v1/; ++/plugin/; ++ ++/ { ++ compatible = "brcm,bcm2708"; ++ ++ fragment@0 { ++ target = <&sound>; ++ __overlay__ { ++ compatible = "simple-audio-card"; ++ i2s-controller = <&i2s>; ++ status = "okay"; ++ ++ simple-audio-card,name = "SuperAudioBoard"; ++ ++ simple-audio-card,widgets = ++ "Line", "Line In", ++ "Line", "Line Out"; ++ ++ simple-audio-card,routing = ++ "Line Out","AOUTA+", ++ "Line Out","AOUTA-", ++ "Line Out","AOUTB+", ++ "Line Out","AOUTB-", ++ "AINA","Line In", ++ "AINB","Line In"; ++ ++ simple-audio-card,format = "i2s"; ++ ++ simple-audio-card,bitclock-master = <&sound_master>; ++ simple-audio-card,frame-master = <&sound_master>; ++ ++ simple-audio-card,cpu { ++ sound-dai = <&i2s>; ++ dai-tdm-slot-num = <2>; ++ dai-tdm-slot-width = <32>; ++ }; ++ ++ sound_master: simple-audio-card,codec { ++ sound-dai = <&cs4271>; ++ system-clock-frequency = <24576000>; ++ }; ++ }; ++ }; ++ ++ fragment@1 { ++ target = <&i2s>; ++ __overlay__ { ++ status = "okay"; ++ }; ++ }; ++ ++ fragment@2 { ++ target = <&i2c1>; ++ __overlay__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ status = "okay"; ++ ++ cs4271: cs4271@10 { ++ #sound-dai-cells = <0>; ++ compatible = "cirrus,cs4271"; ++ reg = <0x10>; ++ status = "okay"; ++ reset-gpio = <&gpio 26 0>; /* Pin 26, active high */ ++ }; ++ }; ++ }; ++ __overrides__ { ++ gpiopin = <&cs4271>,"reset-gpio:4"; ++ }; ++}; +diff --git a/arch/arm/configs/bcm2709_defconfig b/arch/arm/configs/bcm2709_defconfig +index 766e1d12436d650e4d5536081b860747d1d4d01f..29915443fce61237d0155a11813ac3e4168f0f36 100644 +--- a/arch/arm/configs/bcm2709_defconfig ++++ b/arch/arm/configs/bcm2709_defconfig +@@ -895,6 +895,7 @@ CONFIG_SND_PISOUND=m + CONFIG_SND_SOC_ADAU1701=m + CONFIG_SND_SOC_ADAU7002=m + CONFIG_SND_SOC_AK4554=m ++CONFIG_SND_SOC_CS4271_I2C=m + CONFIG_SND_SOC_SPDIF=m + CONFIG_SND_SOC_WM8804_I2C=m + CONFIG_SND_SIMPLE_CARD=m +diff --git a/arch/arm/configs/bcmrpi_defconfig b/arch/arm/configs/bcmrpi_defconfig +index 4e92a1107513b6008b23df3a5d9cc9661b91848e..7af3dd3cc385ed1b8ae4a69c9ede660cf718f9ff 100644 +--- a/arch/arm/configs/bcmrpi_defconfig ++++ b/arch/arm/configs/bcmrpi_defconfig +@@ -888,6 +888,7 @@ CONFIG_SND_PISOUND=m + CONFIG_SND_SOC_ADAU1701=m + CONFIG_SND_SOC_ADAU7002=m + CONFIG_SND_SOC_AK4554=m ++CONFIG_SND_SOC_CS4271_I2C=m + CONFIG_SND_SOC_SPDIF=m + CONFIG_SND_SOC_WM8804_I2C=m + CONFIG_SND_SIMPLE_CARD=m +diff --git a/arch/arm64/configs/bcmrpi3_defconfig b/arch/arm64/configs/bcmrpi3_defconfig +index 003209bf2362c2a136ab987b2f20065e9fa81b43..1352f5d343e03083a50f0a2ba63eef5b7221ab5d 100644 +--- a/arch/arm64/configs/bcmrpi3_defconfig ++++ b/arch/arm64/configs/bcmrpi3_defconfig +@@ -872,6 +872,7 @@ CONFIG_SND_BCM2708_SOC_ALLO_PIANO_DAC=m + CONFIG_SND_PISOUND=m + CONFIG_SND_SOC_ADAU1701=m + CONFIG_SND_SOC_AK4554=m ++CONFIG_SND_SOC_CS4271_I2C=m + CONFIG_SND_SOC_WM8804_I2C=m + CONFIG_SND_SIMPLE_CARD=m + CONFIG_SOUND_PRIME=m + +From c90612880e3942055a7ee21c04065c27552df713 Mon Sep 17 00:00:00 2001 +From: Matthias Reichl +Date: Fri, 2 Feb 2018 12:00:00 +0100 +Subject: [PATCH 234/235] Revert downstream wm8804 changes + +The format change from S24_LE to S24_3LE effectively disables 24-bit +mode as S24_3LE isn't supported by bcm2835-i2s. This causes issues +with drivers that want to use wm8804 in 24-bit mode. + +Adding the S32_LE format is also incorrect, according to the datasheet +only 16-24 bit formats are supported. + +Signed-off-by: Matthias Reichl +--- + sound/soc/codecs/wm8804.c | 5 ++--- + 1 file changed, 2 insertions(+), 3 deletions(-) + +diff --git a/sound/soc/codecs/wm8804.c b/sound/soc/codecs/wm8804.c +index d8fdce81b297dcf02e144bdead0c6193c0f5c24b..fc69b87443d80489382b97332de6d5ad12a58ec8 100644 +--- a/sound/soc/codecs/wm8804.c ++++ b/sound/soc/codecs/wm8804.c +@@ -304,7 +304,6 @@ static int wm8804_hw_params(struct snd_pcm_substream *substream, + blen = 0x1; + break; + case 24: +- case 32: + blen = 0x2; + break; + default: +@@ -516,7 +515,7 @@ static const struct snd_soc_dai_ops wm8804_dai_ops = { + }; + + #define WM8804_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S20_3LE | \ +- SNDRV_PCM_FMTBIT_S24_3LE | SNDRV_PCM_FMTBIT_S32_LE) ++ SNDRV_PCM_FMTBIT_S24_LE) + + #define WM8804_RATES (SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_44100 | \ + SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_64000 | \ +@@ -544,7 +543,7 @@ static struct snd_soc_dai_driver wm8804_dai = { + }; + + static const struct snd_soc_codec_driver soc_codec_dev_wm8804 = { +- .idle_bias_off = false, ++ .idle_bias_off = true, + + .component_driver = { + .dapm_widgets = wm8804_dapm_widgets, + +From e3adc14024758c1a473e03d6e25ddac4c367a60f Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Mon, 19 Feb 2018 17:04:42 +0000 +Subject: [PATCH 235/235] BCM270X_DT: Add brcm,bcm2835-sdhci as a fallback + +Although downstream uses a different MMC/SDHCI driver there is +no reason why can't support the upstream as a fallback. + +See: https://github.com/raspberrypi/firmware/issues/943 + +Signed-off-by: Phil Elwell +--- + arch/arm/boot/dts/bcm270x.dtsi | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/arch/arm/boot/dts/bcm270x.dtsi b/arch/arm/boot/dts/bcm270x.dtsi +index c7c58265cd5e24e01ff2194ecc959c284dc83faf..5c12450d2c30cc0cac3c9e7ca75aeed53c48d708 100644 +--- a/arch/arm/boot/dts/bcm270x.dtsi ++++ b/arch/arm/boot/dts/bcm270x.dtsi +@@ -61,7 +61,7 @@ + /delete-node/ sdhci@7e300000; + + mmc: mmc@7e300000 { +- compatible = "brcm,bcm2835-mmc"; ++ compatible = "brcm,bcm2835-mmc", "brcm,bcm2835-sdhci"; + reg = <0x7e300000 0x100>; + interrupts = <2 30>; + clocks = <&clocks BCM2835_CLOCK_EMMC>; diff --git a/tools/RPi/gen-rpi-linux-patch.sh b/tools/RPi/gen-rpi-linux-patch.sh index 2aa21ffa79..d4c402d8e8 100755 --- a/tools/RPi/gen-rpi-linux-patch.sh +++ b/tools/RPi/gen-rpi-linux-patch.sh @@ -74,13 +74,14 @@ fi # Apply the following config change to reduce chance of duplicate hashes git config --local core.abbrev 40 -git fetch --all --depth=${DEPTH} +git fetch --all --depth=${DEPTH} --no-tags git reset --hard origin/rpi-${BRANCH}.y${REBASE} if [ -n "${BASEREV}" ]; then : elif [ -z "${KERNEL}" ]; then BASEREV="linux-stable/linux-${BRANCH}.y" + KERNEL="$(git log --grep "Linux ${BRANCH}" --pretty=oneline | head -1 | awk '{ print $NF }')" else BASEREV="$(git log --grep "Linux ${KERNEL}" --pretty=oneline | head -1)" [ -z "${BASEREV}" ] && BASEREV="$(git log --grep "Linux v${KERNEL}" --pretty=oneline | head -1)" @@ -93,7 +94,7 @@ else BASEREV="${BASEREV%% *}" fi -GIT_SEQUENCE_EDITOR=${BIN}/rpi-linux-rebase.sh git rebase -i ${BASEREV} +GIT_SEQUENCE_EDITOR=${BIN}/rpi-linux-rebase.sh git rebase -Xours -i ${BASEREV} git format-patch --no-signature --stdout ${BASEREV} > /tmp/linux-01-RPi_support.patch cd .. && rm -fr raspberrypi-linux @@ -103,6 +104,7 @@ cat /tmp/dropped echo echo "Dropped patches: /tmp/dropped" + echo "New patch file : /tmp/linux-01-RPi_support.patch" echo