diff --git a/projects/RPi/patches/linux/linux-01-RPi_support.patch b/projects/RPi/patches/linux/linux-01-RPi_support.patch index ac6f79e6d1..5fb67a8029 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 e25d546f3718eac8527f09bba58083d175247f19 Mon Sep 17 00:00:00 2001 +From f72f775ef8f0fe390f14ab75e98a647443fe232c Mon Sep 17 00:00:00 2001 From: Steve Glendinning Date: Thu, 19 Feb 2015 18:47:12 +0000 -Subject: [PATCH 001/114] smsx95xx: fix crimes against truesize +Subject: [PATCH 001/128] 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. @@ -48,10 +48,10 @@ index 66b3ab9..ea2dbe5 100644 usbnet_skb_return(dev, ax_skb); } -From 607cb751d33b6af0d182a82a96eb14e4ff7c2ed7 Mon Sep 17 00:00:00 2001 +From 8c5874120b7a3b0ed4ff719ce7435c8d707ad6a6 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 17 Apr 2015 16:58:45 +0100 -Subject: [PATCH 002/114] smsc95xx: Disable turbo mode by default +Subject: [PATCH 002/128] smsc95xx: Disable turbo mode by default --- drivers/net/usb/smsc95xx.c | 2 +- @@ -71,10 +71,10 @@ index ea2dbe5..714cfe0 100644 MODULE_PARM_DESC(turbo_mode, "Enable multiple frames per Rx transaction"); -From 1f222ae94cf97c02532c10a907fba8a7e1d57f08 Mon Sep 17 00:00:00 2001 +From 94a59464d0f85dc4d6c43ce2a6fa6841ba08e090 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 9 Mar 2016 13:28:24 +0000 -Subject: [PATCH 003/114] serial: Take care starting a hung-up tty's port +Subject: [PATCH 003/128] serial: Take care starting a hung-up tty's port tty_port_hangup sets a port's tty field to NULL (holding the port lock), but uart_tx_stopped, called from __uart_start (with the port lock), @@ -102,10 +102,10 @@ index cbfcf38..96bc15a 100644 return 0; } -From dc048b33ed7346ea328d4e513f10549f37d98fb7 Mon Sep 17 00:00:00 2001 +From 15afd620c6a164f59c9042b59fc53221ac1319bb Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 18 Jun 2014 13:42:01 +0100 -Subject: [PATCH 004/114] vmstat: Workaround for issue where dirty page count +Subject: [PATCH 004/128] vmstat: Workaround for issue where dirty page count goes negative See: @@ -132,10 +132,10 @@ index 73fae8c..5dd1278 100644 static inline void __inc_zone_page_state(struct page *page, -From 39ff92a84c78a9a9732ac7f72de3691a1462060d Mon Sep 17 00:00:00 2001 +From ad5576d363c2cb3a53f831a6957d47f8f5bb343e Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Thu, 18 Dec 2014 16:07:15 -0800 -Subject: [PATCH 005/114] mm: Remove the PFN busy warning +Subject: [PATCH 005/128] mm: Remove the PFN busy warning See commit dae803e165a11bc88ca8dbc07a11077caf97bbcb -- the warning is expected sometimes when using CMA. However, that commit still spams @@ -160,10 +160,10 @@ index 59de90d..a7b5691 100644 goto done; } -From c9a338a0415713d87a65f1df36e158c496f88fd1 Mon Sep 17 00:00:00 2001 +From 2d052f1817d9f91a901f28b32d12bc18669eb4b1 Mon Sep 17 00:00:00 2001 From: Robert Tiemann Date: Mon, 20 Jul 2015 11:01:25 +0200 -Subject: [PATCH 006/114] BCM2835_DT: Fix I2S register map +Subject: [PATCH 006/128] BCM2835_DT: Fix I2S register map --- Documentation/devicetree/bindings/dma/brcm,bcm2835-dma.txt | 4 ++-- @@ -201,10 +201,10 @@ index 65783de..a89fe42 100644 dmas = <&dma 2>, <&dma 3>; -From aca2671953e17069ad8f56e130163101381fc736 Mon Sep 17 00:00:00 2001 +From 0dd32785136507607d78af6a31a886d9e5ad3867 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 4 Dec 2015 17:41:50 +0000 -Subject: [PATCH 007/114] irq-bcm2836: Prevent spurious interrupts, and trap +Subject: [PATCH 007/128] irq-bcm2836: Prevent spurious interrupts, and trap them early The old arch-specific IRQ macros included a dsb to ensure the @@ -231,10 +231,10 @@ index b6e950d..bbb92c2 100644 #endif } else if (stat) { -From d1d05c91acf24e5222af4522c7c2c9d615ab68cf Mon Sep 17 00:00:00 2001 +From 259e7b360bf2eda4246964b5dd1486d6a925dc4a 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/114] irqchip: bcm2835: Add FIQ support +Subject: [PATCH 008/128] irqchip: bcm2835: Add FIQ support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -363,10 +363,10 @@ index bf9cc5f..3f601f9 100644 } -From bdf258bc4df61515e3de2a4caa597ccc96b519ef Mon Sep 17 00:00:00 2001 +From 13dda194ad402826df99ea4f8ce82b266e295070 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/114] irqchip: irq-bcm2835: Add 2836 FIQ support +Subject: [PATCH 009/128] irqchip: irq-bcm2835: Add 2836 FIQ support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -462,10 +462,10 @@ index 3f601f9..20deb28 100644 for (b = 0; b < NR_BANKS; b++) { for (i = 0; i < bank_irqs[b]; i++) { -From e623ec6ba4ad40fa1863a573ec86e71c3efa1955 Mon Sep 17 00:00:00 2001 +From 0ac75aea74e497c211093148d5643e30e1b17224 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 14 Jul 2015 10:26:09 +0100 -Subject: [PATCH 010/114] spidev: Add "spidev" compatible string to silence +Subject: [PATCH 010/128] spidev: Add "spidev" compatible string to silence warning See: https://github.com/raspberrypi/linux/issues/1054 @@ -486,10 +486,10 @@ index e3c19f3..f4963e3 100644 }; MODULE_DEVICE_TABLE(of, spidev_dt_ids); -From 27fe80aa5b09a161ff66c1d6e5588a41e7d19225 Mon Sep 17 00:00:00 2001 +From 5d196257fb1527d64641964ba91a0aa5d21baf01 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 30 Jun 2015 14:12:42 +0100 -Subject: [PATCH 011/114] serial: 8250: Don't crash when nr_uarts is 0 +Subject: [PATCH 011/128] serial: 8250: Don't crash when nr_uarts is 0 --- drivers/tty/serial/8250/8250_core.c | 2 ++ @@ -509,10 +509,10 @@ index 2f4f5ee..edc1355 100644 for (i = 0; i < nr_uarts; i++) { struct uart_8250_port *up = &serial8250_ports[i]; -From 46789d89b66ad2a8bb68da0ddeb16665dffe5f5a Mon Sep 17 00:00:00 2001 +From 51010d51d7fec2840eb63c66f1064b45334ab8f3 Mon Sep 17 00:00:00 2001 From: notro Date: Thu, 10 Jul 2014 13:59:47 +0200 -Subject: [PATCH 012/114] pinctrl-bcm2835: Set base to 0 give expected gpio +Subject: [PATCH 012/128] pinctrl-bcm2835: Set base to 0 give expected gpio numbering Signed-off-by: Noralf Tronnes @@ -534,10 +534,10 @@ index 08b1d93..0a23c81 100644 .can_sleep = false, }; -From bcb2842b04e0e339a863fd5cc5f760d1c84e10ca Mon Sep 17 00:00:00 2001 +From 30b9b35ed9c50d60b1ed0ec7928e67aea55c637a Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 24 Feb 2015 13:40:50 +0000 -Subject: [PATCH 013/114] pinctrl-bcm2835: Fix interrupt handling for GPIOs +Subject: [PATCH 013/128] pinctrl-bcm2835: Fix interrupt handling for GPIOs 28-31 and 46-53 Contrary to the documentation, the BCM2835 GPIO controller actually has @@ -683,10 +683,10 @@ index 0a23c81..b793bbd 100644 }, }; -From 4bcd8fc5cde916b2bd2807045d65cdcf9372ef53 Mon Sep 17 00:00:00 2001 +From 6f8bfcb9073426e5a7ae05f1e6def75147c88f75 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 26 Feb 2015 09:58:22 +0000 -Subject: [PATCH 014/114] pinctrl-bcm2835: Only request the interrupts listed +Subject: [PATCH 014/128] pinctrl-bcm2835: Only request the interrupts listed in the DTB Although the GPIO controller can generate three interrupts (four counting @@ -713,10 +713,10 @@ index b793bbd..8683a1b 100644 pc->irq_data[i].irqgroup = i; -From 6ccfd268fe86872db44f61ba61d4dbac59c57186 Mon Sep 17 00:00:00 2001 +From 8d88a7baf2ea1b5ea8e7e7a60c72286ae536d547 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 24 Jun 2015 14:10:44 +0100 -Subject: [PATCH 015/114] spi-bcm2835: Support pin groups other than 7-11 +Subject: [PATCH 015/128] 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 @@ -797,10 +797,10 @@ index f35cc10..5dfe20f 100644 /* and set up the "mode" and level */ dev_info(&spi->dev, "setting up native-CS%i as GPIO %i\n", -From 91bab1f8dcc81e282512c8f808b8d9ca2f7975b6 Mon Sep 17 00:00:00 2001 +From 05c4dd0ce685e35f1ca9c8b0caa3b75143ff75a0 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 016/114] ARM: bcm2835: Set Serial number and Revision +Subject: [PATCH 016/128] ARM: bcm2835: Set Serial number and Revision MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -858,10 +858,10 @@ index 834d676..3b68a8d 100644 static const char * const bcm2835_compat[] = { -From 9b4fc474912bed145c59cc8dcb76a48006cb46ea Mon Sep 17 00:00:00 2001 +From cc6b07292a7ed49073db041ea4d6fa458cd494aa Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 11 Oct 2015 15:21:16 +0200 -Subject: [PATCH 017/114] bcm2835-i2s: add 24bit support, update bclk_ratio to +Subject: [PATCH 017/128] bcm2835-i2s: add 24bit support, update bclk_ratio to more correct values Code ported from bcm2708-i2s driver in Raspberry Pi tree. @@ -932,10 +932,10 @@ index 1c1f221..d2663e7 100644 }, .ops = &bcm2835_i2s_dai_ops, -From ad1d838172d12324cf8029f18a445ed35d895a6a Mon Sep 17 00:00:00 2001 +From a64e8b139909740de25655fbc7d3095bc39194d3 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 11 Oct 2015 15:35:20 +0200 -Subject: [PATCH 018/114] bcm2835-i2s: Register PCM device +Subject: [PATCH 018/128] bcm2835-i2s: Register PCM device Code ported from bcm2708-i2s driver in Raspberry Pi tree. @@ -998,10 +998,10 @@ index d2663e7..3a8468d 100644 dev_err(&pdev->dev, "Could not register PCM: %d\n", ret); return ret; -From 724a0c2c6cac52d4ea41db9d5c45fea6e1a3d34d Mon Sep 17 00:00:00 2001 +From 3554744b9b94c59d46107d72d0121e09ee129815 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 11 Oct 2015 15:55:21 +0200 -Subject: [PATCH 019/114] bcm2835-i2s: Enable MMAP support via a DT property +Subject: [PATCH 019/128] bcm2835-i2s: Enable MMAP support via a DT property Code ported from bcm2708-i2s driver in Raspberry Pi tree. @@ -1045,10 +1045,10 @@ index 3a8468d..c7f3fc7 100644 GFP_KERNEL); if (!dev) -From 3c8b0d34e47e2b73f9f67ee92013abf7c873cb2e Mon Sep 17 00:00:00 2001 +From b8f38a6f9549e66a9b611450d20c1e37dc676e74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Thu, 9 Apr 2015 12:34:11 +0200 -Subject: [PATCH 020/114] dmaengine: bcm2835: Add slave dma support +Subject: [PATCH 020/128] dmaengine: bcm2835: Add slave dma support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -1368,10 +1368,10 @@ index 996c4b0..b278c66 100644 +MODULE_AUTHOR("Gellert Weisz "); MODULE_LICENSE("GPL v2"); -From 21af238b62b6bf7ee2091692c8d88689299743b9 Mon Sep 17 00:00:00 2001 +From 6b70773bc87b4e14d6be4b3b6003b19f9e2cd2c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Sat, 3 Oct 2015 15:58:59 +0200 -Subject: [PATCH 021/114] dmaengine: bcm2835: set residue_granularity field +Subject: [PATCH 021/128] dmaengine: bcm2835: set residue_granularity field MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -1400,10 +1400,10 @@ index b278c66..696fb30 100644 INIT_LIST_HEAD(&od->ddev.channels); spin_lock_init(&od->lock); -From 7f42da09fd073abe725120c913ee14a5e9651f47 Mon Sep 17 00:00:00 2001 +From c0708fd35386a238fa888ad12014aa8ed36ed3f0 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 022/114] dmaengine: bcm2835: Load driver early and support +Subject: [PATCH 022/128] dmaengine: bcm2835: Load driver early and support legacy API MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -1503,10 +1503,10 @@ index 696fb30..5db0a95 100644 MODULE_ALIAS("platform:bcm2835-dma"); MODULE_DESCRIPTION("BCM2835 DMA engine driver"); -From f5754ddf7a7c2406cc893b2bd890f0f91b321ae5 Mon Sep 17 00:00:00 2001 +From 459c2cb3c385d37356aedf4e3d23820ce27b06a9 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sat, 10 Oct 2015 12:29:18 +0200 -Subject: [PATCH 023/114] bcm2835-dma: Fix dreq not set for slave transfers +Subject: [PATCH 023/128] bcm2835-dma: Fix dreq not set for slave transfers Set dreq to slave_id if it is not set like in bcm2708-dmaengine. --- @@ -1527,10 +1527,10 @@ index 5db0a95..fe1fd60 100644 return 0; } -From 994a4cb73ee2a4f781959989cfeb9e90fddc508a Mon Sep 17 00:00:00 2001 +From 19103b20691d8071a282dc41cd9441e2d364ae05 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 11 Oct 2015 12:28:30 +0200 -Subject: [PATCH 024/114] bcm2835-dma: Limit cyclic transfers on lite channels +Subject: [PATCH 024/128] bcm2835-dma: Limit cyclic transfers on lite channels to 32k Transfers larger than 32k cause repeated clicking with I2S soundcards. @@ -1567,10 +1567,10 @@ index fe1fd60..0adc347 100644 max_size = MAX_NORMAL_TRANSFER; period_len = min(period_len, max_size); -From ea1c91a95f363d023dc256319c80a7e75e94ef74 Mon Sep 17 00:00:00 2001 +From 7dbb4a59ac09bb77ff7a4742f3f81c0036b93393 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Mon, 16 Nov 2015 14:05:35 +0000 -Subject: [PATCH 025/114] bcm2835-dma: Fix up convert to DMA pool +Subject: [PATCH 025/128] bcm2835-dma: Fix up convert to DMA pool --- drivers/dma/bcm2835-dma.c | 36 ++++++++++++++++++++++++++---------- @@ -1655,10 +1655,10 @@ index 0adc347..985019b 100644 /* Next block is empty. */ control_block->next = 0; -From 0060f36936def46e53a173f34d0b2ab8862be1ac Mon Sep 17 00:00:00 2001 +From 20914cd2d9d0aa1d8e8f0816939ebc70a444db3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Sat, 15 Aug 2015 20:50:02 +0200 -Subject: [PATCH 026/114] bcm2835: Add support for uart1 +Subject: [PATCH 026/128] bcm2835: Add support for uart1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -1715,10 +1715,10 @@ index 3b68a8d..e72e522 100644 static const char * const bcm2835_compat[] = { -From 139492dfc48f7e8ff2a26902178ef76ae790c7e3 Mon Sep 17 00:00:00 2001 +From cc8d01536c4bb261ec1951d54fcf4da0e6de633e Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 25 Jan 2016 17:25:12 +0000 -Subject: [PATCH 027/114] firmware: Updated mailbox header +Subject: [PATCH 027/128] firmware: Updated mailbox header --- include/soc/bcm2835/raspberrypi-firmware.h | 10 ++++++++++ @@ -1779,10 +1779,10 @@ index 3fb3571..73e4956 100644 RPI_FIRMWARE_GET_COMMAND_LINE = 0x00050001, RPI_FIRMWARE_GET_DMA_CHANNELS = 0x00060001, -From 43e70c9b87a98c3a6c2f6ca82e1b1ea4eeffca78 Mon Sep 17 00:00:00 2001 +From 7be59d079145bb08abcb0d19d6e3a4233dd2643c Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 12 May 2013 12:24:19 +0100 -Subject: [PATCH 028/114] Main bcm2708/bcm2709 linux port +Subject: [PATCH 028/128] Main bcm2708/bcm2709 linux port MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -4292,10 +4292,10 @@ index 8dd4d29..f7fe8bd 100644 mmc_pm_flag_t pm_caps; /* supported pm features */ -From 49892df19a70edbe8a089d8c7048c9234f30d9d3 Mon Sep 17 00:00:00 2001 +From 453bffd985eb42e15941b1f35147fdfc136b0d05 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 11 Nov 2015 21:01:15 +0000 -Subject: [PATCH 029/114] squash: include ARCH_BCM2708 / ARCH_BCM2709 +Subject: [PATCH 029/128] squash: include ARCH_BCM2708 / ARCH_BCM2709 --- drivers/char/hw_random/Kconfig | 2 +- @@ -4472,10 +4472,10 @@ index 6a834e1..c5070ae 100644 select REGMAP_MMIO help -From e169f708f57c5898a4d4303dd6530b3af53b5866 Mon Sep 17 00:00:00 2001 +From 6911cd05e84d64f5b20fcc49c33e42f545d4f18e Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 1 May 2013 19:46:17 +0100 -Subject: [PATCH 030/114] Add dwc_otg driver +Subject: [PATCH 030/128] Add dwc_otg driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -65501,10 +65501,10 @@ index 0000000..cdc9963 +test_main(); +0; -From ab5ddf2c310bafc8375a88ba494d5eba214abd7e Mon Sep 17 00:00:00 2001 +From f410ec50ebad0fa62c00d445fedd20987f9f4b90 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 17 Jun 2015 17:06:34 +0100 -Subject: [PATCH 031/114] bcm2708 framebuffer driver +Subject: [PATCH 031/128] bcm2708 framebuffer driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -68966,10 +68966,10 @@ index 3c14e43..7626beb 100644 +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 b6332fb3df52fe7808c7de394a428252fc9749b4 Mon Sep 17 00:00:00 2001 +From bd2cab5eed0b7a91ece20f645d87a90ee4251173 Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Fri, 22 Nov 2013 14:22:53 +0100 -Subject: [PATCH 032/114] dmaengine: Add support for BCM2708 +Subject: [PATCH 032/128] dmaengine: Add support for BCM2708 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -69589,10 +69589,10 @@ index 0000000..99cc7fd + +#endif /* _PLAT_BCM2708_DMA_H */ -From eaa0834b46389ca5b48a699ca1fe40e164c0400b Mon Sep 17 00:00:00 2001 +From efa40d37efcf199886a929a8032b9da08e39b2e5 Mon Sep 17 00:00:00 2001 From: gellert Date: Fri, 15 Aug 2014 16:35:06 +0100 -Subject: [PATCH 033/114] MMC: added alternative MMC driver +Subject: [PATCH 033/128] MMC: added alternative MMC driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -69710,7 +69710,7 @@ index fad660b..b79fe14 100644 } EXPORT_SYMBOL(mmc_fixup_device); diff --git a/drivers/mmc/host/Kconfig b/drivers/mmc/host/Kconfig -index 04feea8..e258577 100644 +index e657af0..0476061 100644 --- a/drivers/mmc/host/Kconfig +++ b/drivers/mmc/host/Kconfig @@ -4,6 +4,35 @@ @@ -71339,10 +71339,10 @@ index 0000000..ceb3793 +MODULE_LICENSE("GPL v2"); +MODULE_AUTHOR("Gellert Weisz"); -From 4674c122d3fa842a1065f255b3e50f61683692a0 Mon Sep 17 00:00:00 2001 +From 6e4116bef5addb1dbd8355c8f5549cfb96d467c6 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 25 Mar 2015 17:49:47 +0000 -Subject: [PATCH 034/114] Adding bcm2835-sdhost driver, and an overlay to +Subject: [PATCH 034/128] Adding bcm2835-sdhost driver, and an overlay to enable it BCM2835 has two SD card interfaces. This driver uses the other one. @@ -71472,7 +71472,7 @@ Signed-off-by: Phil Elwell create mode 100644 drivers/mmc/host/bcm2835-sdhost.c diff --git a/drivers/mmc/host/Kconfig b/drivers/mmc/host/Kconfig -index e258577..4cdd8cd 100644 +index 0476061..2595474 100644 --- a/drivers/mmc/host/Kconfig +++ b/drivers/mmc/host/Kconfig @@ -33,6 +33,16 @@ config MMC_BCM2835_PIO_DMA_BARRIER @@ -73632,10 +73632,10 @@ index 0000000..f43aae0 +MODULE_LICENSE("GPL v2"); +MODULE_AUTHOR("Phil Elwell"); -From e3dd7794f6746e34aef2cff941ab2a79f3942099 Mon Sep 17 00:00:00 2001 +From 17f168b109d0f44a6a73aaf5c11c004c8aa89b4f Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 3 Jul 2013 00:31:47 +0100 -Subject: [PATCH 035/114] cma: Add vc_cma driver to enable use of CMA +Subject: [PATCH 035/128] cma: Add vc_cma driver to enable use of CMA MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -74978,10 +74978,10 @@ index 0000000..be2819d + +#endif /* VC_CMA_H */ -From 00dc76905d2070f2f9080fcf0c93a0d94b0826bc Mon Sep 17 00:00:00 2001 +From 83cca26157d192228268ce5dff5db892f76cbb95 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 26 Mar 2012 22:15:50 +0100 -Subject: [PATCH 036/114] bcm2708: alsa sound driver +Subject: [PATCH 036/128] bcm2708: alsa sound driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -77679,10 +77679,10 @@ index 0000000..af3e6eb + +#endif // _VC_AUDIO_DEFS_H_ -From d5ba929f0e3f3ea5bce2e0f10a33492c20a2fd2d Mon Sep 17 00:00:00 2001 +From 86e51b08e585238b161567d83324a8ca7ab35536 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 2 Jul 2013 23:42:01 +0100 -Subject: [PATCH 037/114] bcm2708 vchiq driver +Subject: [PATCH 037/128] bcm2708 vchiq driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -91009,10 +91009,10 @@ index 0000000..b6bfa21 + return vchiq_build_time; +} -From 62b4dcdac24e9da625a03d47365898e1c57ae1d5 Mon Sep 17 00:00:00 2001 +From ac69eb3239df145738ba0d568b712af92560b583 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 17 Jun 2015 16:07:06 +0100 -Subject: [PATCH 038/114] vc_mem: Add vc_mem driver +Subject: [PATCH 038/128] vc_mem: Add vc_mem driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -92017,10 +92017,10 @@ index 0000000..20a4753 + +#endif /* _VC_MEM_H */ -From 5e3c755951a4886d0e8a7673dabfabd6f0e0a11a Mon Sep 17 00:00:00 2001 +From 963aa148d8786d7068168a00d88ad25d1855e2bb Mon Sep 17 00:00:00 2001 From: Tim Gover Date: Tue, 22 Jul 2014 15:41:04 +0100 -Subject: [PATCH 039/114] vcsm: VideoCore shared memory service for BCM2835 +Subject: [PATCH 039/128] vcsm: VideoCore shared memory service for BCM2835 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -96436,10 +96436,10 @@ index 0000000..334f36d + +#endif /* __VMCS_SM_IOCTL_H__INCLUDED__ */ -From c3063fdb979a493f5d9bec3535410b807465f82f Mon Sep 17 00:00:00 2001 +From 1bc29561f10a72330be2289c72699491a4b2edfe Mon Sep 17 00:00:00 2001 From: Luke Wren Date: Fri, 21 Aug 2015 23:14:48 +0100 -Subject: [PATCH 040/114] Add /dev/gpiomem device for rootless user GPIO access +Subject: [PATCH 040/128] Add /dev/gpiomem device for rootless user GPIO access Signed-off-by: Luke Wren @@ -96750,10 +96750,10 @@ index 0000000..911f5b7 +MODULE_DESCRIPTION("gpiomem driver for accessing GPIO from userspace"); +MODULE_AUTHOR("Luke Wren "); -From 51660273781e15d356a98ffdc38671cdde96cf78 Mon Sep 17 00:00:00 2001 +From e6426f6f634d4d7aa18dd85e83b8635653531bdf Mon Sep 17 00:00:00 2001 From: Luke Wren Date: Sat, 5 Sep 2015 01:14:45 +0100 -Subject: [PATCH 041/114] Add SMI driver +Subject: [PATCH 041/128] Add SMI driver Signed-off-by: Luke Wren --- @@ -98704,10 +98704,10 @@ index 0000000..ee3a75e + +#endif /* BCM2835_SMI_H */ -From 4fcf517853295325de2791f6ec1a647c1ec88a53 Mon Sep 17 00:00:00 2001 +From 1b794b326b0a65034cbc75d16e3967a1de07afee Mon Sep 17 00:00:00 2001 From: Luke Wren Date: Sat, 5 Sep 2015 01:16:10 +0100 -Subject: [PATCH 042/114] Add SMI NAND driver +Subject: [PATCH 042/128] Add SMI NAND driver Signed-off-by: Luke Wren --- @@ -99072,10 +99072,10 @@ index 0000000..02adda6 + ("Driver for NAND chips using Broadcom Secondary Memory Interface"); +MODULE_AUTHOR("Luke Wren "); -From 370d2f9b37ffe70748bbec0a41c59fc1a0f29fb6 Mon Sep 17 00:00:00 2001 +From 5338d2498c8cc434725c234e7ae31db5ce464a94 Mon Sep 17 00:00:00 2001 From: Aron Szabo Date: Sat, 16 Jun 2012 12:15:55 +0200 -Subject: [PATCH 043/114] lirc: added support for RaspberryPi GPIO +Subject: [PATCH 043/128] 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 @@ -99924,10 +99924,10 @@ index 0000000..fb69624 + +#endif -From ad8d0254434814507570bf2f39b74e65f041a58c Mon Sep 17 00:00:00 2001 +From b7de44263faad3fbc068e8a2f6ae7cc6b0796f11 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 3 Jul 2013 00:49:20 +0100 -Subject: [PATCH 044/114] Add cpufreq driver +Subject: [PATCH 044/128] Add cpufreq driver Signed-off-by: popcornmix --- @@ -100189,10 +100189,10 @@ index 0000000..3eb9e93 +module_init(bcm2835_cpufreq_module_init); +module_exit(bcm2835_cpufreq_module_exit); -From 58567c0d357f8c1311e43791effa972482306217 Mon Sep 17 00:00:00 2001 +From b28ebd063c8429954ff6ebaf62997a189cf38181 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 26 Mar 2013 19:24:24 +0000 -Subject: [PATCH 045/114] Added hwmon/thermal driver for reporting core +Subject: [PATCH 045/128] Added hwmon/thermal driver for reporting core temperature. Thanks Dorian MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -100213,7 +100213,7 @@ Signed-off-by: Noralf Trønnes create mode 100644 drivers/thermal/bcm2835-thermal.c diff --git a/drivers/thermal/Kconfig b/drivers/thermal/Kconfig -index c37eedc..0705996 100644 +index 3c3dc4a..6789340 100644 --- a/drivers/thermal/Kconfig +++ b/drivers/thermal/Kconfig @@ -292,6 +292,13 @@ config INTEL_POWERCLAMP @@ -100390,10 +100390,10 @@ index 0000000..08d8dc7 +MODULE_DESCRIPTION("Thermal driver for bcm2835 chip"); +MODULE_LICENSE("GPL"); -From a61b0d97dc8cd059cb38e51fd0854e6cabec3967 Mon Sep 17 00:00:00 2001 +From 930b009498b18a5d92ef7e54efd0e739081aa7aa Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 17 Jun 2015 15:44:08 +0100 -Subject: [PATCH 046/114] Add Chris Boot's i2c driver +Subject: [PATCH 046/128] Add Chris Boot's i2c driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -100484,7 +100484,7 @@ Set the BSC_CLKT clock streching timeout to 35ms as per SMBus specs. create mode 100644 drivers/i2c/busses/i2c-bcm2708.c diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig -index faa8e68..2bd4f7f 100644 +index 0967e1a..c11fce1 100644 --- a/drivers/i2c/busses/Kconfig +++ b/drivers/i2c/busses/Kconfig @@ -8,6 +8,25 @@ menu "I2C Hardware Bus support" @@ -101050,10 +101050,10 @@ index 0000000..c9b8e5c +MODULE_LICENSE("GPL v2"); +MODULE_ALIAS("platform:" DRV_NAME); -From ee6a578174b8f43710c3d897c1b3c74d31b99466 Mon Sep 17 00:00:00 2001 +From a40a8a93b246b0c672e74d9991a9cfb32b473995 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 047/114] char: broadcom: Add vcio module +Subject: [PATCH 047/128] char: broadcom: Add vcio module MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -101279,10 +101279,10 @@ index 0000000..c19bc20 +MODULE_DESCRIPTION("Mailbox userspace access"); +MODULE_LICENSE("GPL"); -From 44bce7a87a61fc4a18a9b65c9dc1ecfcdc53351d Mon Sep 17 00:00:00 2001 +From 1af2c936a1e3f330e1dba6025db7e220f7e511ce 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 048/114] firmware: bcm2835: Support ARCH_BCM270x +Subject: [PATCH 048/128] firmware: bcm2835: Support ARCH_BCM270x MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -101298,7 +101298,7 @@ Signed-off-by: Noralf Trønnes 1 file changed, 39 insertions(+), 2 deletions(-) diff --git a/drivers/firmware/raspberrypi.c b/drivers/firmware/raspberrypi.c -index dd506cd..b980d53 100644 +index dd506cd3..b980d53 100644 --- a/drivers/firmware/raspberrypi.c +++ b/drivers/firmware/raspberrypi.c @@ -28,6 +28,8 @@ struct rpi_firmware { @@ -101388,10 +101388,10 @@ index dd506cd..b980d53 100644 MODULE_AUTHOR("Eric Anholt "); MODULE_DESCRIPTION("Raspberry Pi firmware driver"); -From 9c0359b11195a31b974f7b893d9f7c0088816c8c Mon Sep 17 00:00:00 2001 +From f9d680055e773e4fdb7de4708fb519d9d45e5448 Mon Sep 17 00:00:00 2001 From: Vincent Sanders Date: Wed, 30 Jan 2013 12:45:18 +0000 -Subject: [PATCH 049/114] bcm2835: add v4l2 camera device +Subject: [PATCH 049/128] bcm2835: add v4l2 camera device - Supports raw YUV capture, preview, JPEG and H264. - Uses videobuf2 for data transfer, using dma_buf. @@ -108783,10 +108783,10 @@ index 0000000..9d1d11e + +#endif /* MMAL_VCHIQ_H */ -From 9889d89cb74b96f8bbaff5a7c451e262af26fbb9 Mon Sep 17 00:00:00 2001 +From 4e52ea443fae548bf9c59439dd827fea9210da9d Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 11 May 2015 09:00:42 +0100 -Subject: [PATCH 050/114] scripts: Add mkknlimg and knlinfo scripts from tools +Subject: [PATCH 050/128] scripts: Add mkknlimg and knlinfo scripts from tools repo The Raspberry Pi firmware looks for a trailer on the kernel image to @@ -109251,10 +109251,10 @@ index 0000000..3998d43 + return (($val eq 'y') || ($val eq '1')); +} -From c962a4d9204d97b1b62ab32f274c22bac54ad8d5 Mon Sep 17 00:00:00 2001 +From bc5ac8f736752697f1cadb81595d15718478ece6 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 5 Dec 2014 17:26:26 +0000 -Subject: [PATCH 051/114] fdt: Add support for the CONFIG_CMDLINE_EXTEND option +Subject: [PATCH 051/128] fdt: Add support for the CONFIG_CMDLINE_EXTEND option --- drivers/of/fdt.c | 29 ++++++++++++++++++++++++----- @@ -109309,10 +109309,10 @@ index 3349d2a..1e26605 100644 pr_debug("Command line is: %s\n", (char*)data); -From 829ab8a2cb98b039ceba5b4407522442ef629ba0 Mon Sep 17 00:00:00 2001 +From 33ec06add369c238ab2fe6b1c93f659d2be4f838 Mon Sep 17 00:00:00 2001 From: notro Date: Wed, 9 Jul 2014 14:46:08 +0200 -Subject: [PATCH 052/114] BCM2708: Add core Device Tree support +Subject: [PATCH 052/128] BCM2708: Add core Device Tree support Add the bare minimum needed to boot BCM2708 from a Device Tree. @@ -116443,10 +116443,10 @@ index 0000000..8498134 + +}; -From 2984afc661362f0232f374a91edc59a2cafcc302 Mon Sep 17 00:00:00 2001 +From 1ad7fda7f10717fb4bdcae50531253d5473ab68a Mon Sep 17 00:00:00 2001 From: Siarhei Siamashka Date: Mon, 17 Jun 2013 13:32:11 +0300 -Subject: [PATCH 053/114] fbdev: add FBIOCOPYAREA ioctl +Subject: [PATCH 053/128] fbdev: add FBIOCOPYAREA ioctl Based on the patch authored by Ali Gholami Rudi at https://lkml.org/lkml/2009/7/13/153 @@ -116539,10 +116539,10 @@ index fb795c3..fa72af0 100644 #define FB_TYPE_PACKED_PIXELS 0 /* Packed Pixels */ #define FB_TYPE_PLANES 1 /* Non interleaved planes */ -From f125245cdc2f65f3f085c9146bc3ce5b373b9def Mon Sep 17 00:00:00 2001 +From 864d8794c8d130c07440ec8b7e28b9fa030b3816 Mon Sep 17 00:00:00 2001 From: Harm Hanemaaijer Date: Thu, 20 Jun 2013 20:21:39 +0200 -Subject: [PATCH 054/114] Speed up console framebuffer imageblit function +Subject: [PATCH 054/128] 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 @@ -116751,10 +116751,10 @@ index a2bb276..436494f 100644 start_index, pitch_index); } else -From c158f1cc55e3166d2eac6a0c7e06bd93d6c4c244 Mon Sep 17 00:00:00 2001 +From 8d1be697ad3fcb49dd2ac4fa33684f08951f8443 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 26 Mar 2013 17:26:38 +0000 -Subject: [PATCH 055/114] Allow mac address to be set in smsc95xx +Subject: [PATCH 055/128] Allow mac address to be set in smsc95xx Signed-off-by: popcornmix --- @@ -116845,10 +116845,10 @@ index 714cfe0..08ced57 100644 if (smsc95xx_read_eeprom(dev, EEPROM_MAC_OFFSET, ETH_ALEN, dev->net->dev_addr) == 0) { -From 7dc5a6f1fb813263ee414e2d7898d3e03d79edd8 Mon Sep 17 00:00:00 2001 +From 09711b4cb3274f86a61056cf7ed82ce9089a5590 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 8 May 2013 11:46:50 +0100 -Subject: [PATCH 056/114] enabling the realtime clock 1-wire chip DS1307 and +Subject: [PATCH 056/128] 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 @@ -117098,10 +117098,10 @@ index d58594a..feae942 100644 unsigned int ext_pullup_enable_pin; unsigned int pullup_duration; -From 79e36090cb7c4f81295a6764dcb5879f30d0ddb4 Mon Sep 17 00:00:00 2001 +From 31afd7cf0f39d6ec2ceea7a497c0e36587cefe99 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 18 Dec 2013 22:16:19 +0000 -Subject: [PATCH 057/114] config: Enable CONFIG_MEMCG, but leave it disabled +Subject: [PATCH 057/128] config: Enable CONFIG_MEMCG, but leave it disabled (due to memory cost). Enable with cgroup_enable=memory. --- @@ -117109,10 +117109,10 @@ Subject: [PATCH 057/114] config: Enable CONFIG_MEMCG, but leave it disabled 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/kernel/cgroup.c b/kernel/cgroup.c -index 671dc05..fbbf2e6 100644 +index 909a7d3..a57ae60 100644 --- a/kernel/cgroup.c +++ b/kernel/cgroup.c -@@ -5521,7 +5521,7 @@ int __init cgroup_init_early(void) +@@ -5524,7 +5524,7 @@ int __init cgroup_init_early(void) return 0; } @@ -117121,7 +117121,7 @@ index 671dc05..fbbf2e6 100644 /** * cgroup_init - cgroup initialization -@@ -6051,6 +6051,28 @@ static int __init cgroup_no_v1(char *str) +@@ -6054,6 +6054,28 @@ static int __init cgroup_no_v1(char *str) } __setup("cgroup_no_v1=", cgroup_no_v1); @@ -117151,10 +117151,10 @@ index 671dc05..fbbf2e6 100644 * css_tryget_online_from_dir - get corresponding css from a cgroup dentry * @dentry: directory dentry of interest -From a46b0a5f799ac1798512ee52f694802873027e6a Mon Sep 17 00:00:00 2001 +From e3dba9cfb7b8aa837f4f71681490af7ddcb320e4 Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Fri, 22 Nov 2013 14:59:51 +0100 -Subject: [PATCH 058/114] ASoC: Add support for PCM5102A codec +Subject: [PATCH 058/128] ASoC: Add support for PCM5102A codec Some definitions to support the PCM5102A codec by Texas Instruments. @@ -117168,7 +117168,7 @@ Signed-off-by: Florian Meier create mode 100644 sound/soc/codecs/pcm5102a.c diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig -index 649e92a..ba4aad4 100644 +index 7ef3a0c..4308f90 100644 --- a/sound/soc/codecs/Kconfig +++ b/sound/soc/codecs/Kconfig @@ -100,6 +100,7 @@ config SND_SOC_ALL_CODECS @@ -117179,9 +117179,9 @@ index 649e92a..ba4aad4 100644 select SND_SOC_RT5631 if I2C select SND_SOC_RT5640 if I2C select SND_SOC_RT5645 if I2C -@@ -630,6 +631,10 @@ config SND_SOC_RT5514 - config SND_SOC_RT5616 +@@ -631,6 +632,10 @@ config SND_SOC_RT5616 tristate "Realtek RT5616 CODEC" + depends on I2C +config SND_SOC_PCM5102A + tristate @@ -117287,10 +117287,10 @@ index 0000000..7c6598e +MODULE_AUTHOR("Florian Meier "); +MODULE_LICENSE("GPL v2"); -From 49142e5a7faec4059b97245bb91b5b4c5ab243e6 Mon Sep 17 00:00:00 2001 +From a56d224ad5eeba041e80fd5f2b0c15dfa4bf97dd Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Fri, 22 Nov 2013 19:19:08 +0100 -Subject: [PATCH 059/114] ASoC: Add support for HifiBerry DAC +Subject: [PATCH 059/128] ASoC: Add support for HifiBerry DAC This adds a machine driver for the HifiBerry DAC. It is a sound card that can @@ -117461,10 +117461,10 @@ index 0000000..29ecc08 +MODULE_DESCRIPTION("ASoC Driver for HifiBerry DAC"); +MODULE_LICENSE("GPL v2"); -From a2bfef45c070bc2ac4990f930c03f6bf71c80eb3 Mon Sep 17 00:00:00 2001 +From c4e4c5c554cf6b8928225c29ec5958a3bd8d3807 Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Mon, 25 Jan 2016 15:48:59 +0000 -Subject: [PATCH 060/114] ASoC: Add support for Rpi-DAC +Subject: [PATCH 060/128] ASoC: Add support for Rpi-DAC --- sound/soc/bcm/Kconfig | 7 +++ @@ -117630,7 +117630,7 @@ index 0000000..59dc89e +MODULE_DESCRIPTION("ASoC Driver for RPi-DAC"); +MODULE_LICENSE("GPL v2"); diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig -index ba4aad4..214af16 100644 +index 4308f90..513ab55 100644 --- a/sound/soc/codecs/Kconfig +++ b/sound/soc/codecs/Kconfig @@ -101,6 +101,7 @@ config SND_SOC_ALL_CODECS @@ -117641,9 +117641,9 @@ index ba4aad4..214af16 100644 select SND_SOC_RT5631 if I2C select SND_SOC_RT5640 if I2C select SND_SOC_RT5645 if I2C -@@ -631,6 +632,14 @@ config SND_SOC_RT5514 - config SND_SOC_RT5616 +@@ -632,6 +633,14 @@ config SND_SOC_RT5616 tristate "Realtek RT5616 CODEC" + depends on I2C +config SND_SOC_RT298 + tristate @@ -117752,10 +117752,10 @@ index 0000000..afe1b41 +MODULE_AUTHOR("Florian Meier "); +MODULE_LICENSE("GPL v2"); -From 6328cc72836700f65568fd7b69e5cc81eb5aecb8 Mon Sep 17 00:00:00 2001 +From 3ad62a21c1c7938e4cc463a506edbcef39cab0b4 Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Wed, 15 Jan 2014 21:41:23 +0100 -Subject: [PATCH 061/114] ASoC: wm8804: Implement MCLK configuration options, +Subject: [PATCH 061/128] 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 @@ -117795,10 +117795,10 @@ index 8d91470..5795fb1 100644 #define WM8804_RATES (SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_44100 | \ SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_64000 | \ -From 6c0cc4423bccc53163746eb1ff6d4a44d1358b76 Mon Sep 17 00:00:00 2001 +From 60400a74ef8d44c4545feda79345db64b9f0b8c6 Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Wed, 15 Jan 2014 21:42:08 +0100 -Subject: [PATCH 062/114] ASoC: BCM:Add support for HiFiBerry Digi. Driver is +Subject: [PATCH 062/128] ASoC: BCM:Add support for HiFiBerry Digi. Driver is based on the patched WM8804 driver. Signed-off-by: Daniel Matuschek @@ -118086,10 +118086,10 @@ index 0000000..9840e15 +MODULE_DESCRIPTION("ASoC Driver for HifiBerry Digi"); +MODULE_LICENSE("GPL v2"); -From 6e7576347357e152cab8a18b678fe679ec81b68f Mon Sep 17 00:00:00 2001 +From e22c980982209dd830ef6e56d00a6deec240d1c6 Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Thu, 16 Jan 2014 07:36:35 +0100 -Subject: [PATCH 063/114] ASoC: wm8804: Set idle_bias_off to false Idle bias +Subject: [PATCH 063/128] ASoC: wm8804: Set idle_bias_off to false Idle bias has been change to remove warning on driver startup Signed-off-by: Daniel Matuschek @@ -118111,10 +118111,10 @@ index 5795fb1..c846716 100644 .dapm_widgets = wm8804_dapm_widgets, .num_dapm_widgets = ARRAY_SIZE(wm8804_dapm_widgets), -From f03a1430b5f631cfac3bf79d7b0266d628627a39 Mon Sep 17 00:00:00 2001 +From 2c9fcfed0b3393c63404d6a2324b34bb9d17738f Mon Sep 17 00:00:00 2001 From: Gordon Garrity Date: Sat, 8 Mar 2014 16:56:57 +0000 -Subject: [PATCH 064/114] Add IQaudIO Sound Card support for Raspberry Pi +Subject: [PATCH 064/128] Add IQaudIO Sound Card support for Raspberry Pi Set a limit of 0dB on Digital Volume Control @@ -118312,10 +118312,10 @@ index 0000000..a5eaa9e +MODULE_DESCRIPTION("ASoC Driver for IQAudio DAC"); +MODULE_LICENSE("GPL v2"); -From 8ca6dfd134bd0117e548b050e0af99bd09f1fd92 Mon Sep 17 00:00:00 2001 +From b1bac050dcdd1f4bf5cb6fdef43415ae3b400345 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 14 Jul 2014 22:02:09 +0100 -Subject: [PATCH 065/114] hid: Reduce default mouse polling interval to 60Hz +Subject: [PATCH 065/128] hid: Reduce default mouse polling interval to 60Hz Reduces overhead when using X --- @@ -118351,10 +118351,10 @@ index ae83af6..4a7af9d 100644 ret = -ENOMEM; if (usb_endpoint_dir_in(endpoint)) { -From 84f1f5340ba06631612745253d8989998e324f5a Mon Sep 17 00:00:00 2001 +From 48431c319f74c294959735627097a13dd72317a7 Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Mon, 4 Aug 2014 10:06:56 +0200 -Subject: [PATCH 066/114] Added support for HiFiBerry DAC+ +Subject: [PATCH 066/128] 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. @@ -118968,10 +118968,10 @@ index 047c489..090fe0e 100644 dev_err(dev, "No LRCLK?\n"); return -EINVAL; -From 85af785da011ab32246855f5d2bbb57354e66feb Mon Sep 17 00:00:00 2001 +From e1d68f6a427e98aaa1ffacd68732cc6cc806f909 Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Mon, 4 Aug 2014 11:09:58 +0200 -Subject: [PATCH 067/114] Added driver for HiFiBerry Amp amplifier add-on board +Subject: [PATCH 067/128] 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. @@ -119170,7 +119170,7 @@ index 0000000..0bb12e4 +MODULE_DESCRIPTION("ASoC driver for HiFiBerry-AMP"); +MODULE_LICENSE("GPL v2"); diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig -index 214af16..06be5a2 100644 +index 513ab55..ebcfbfd 100644 --- a/sound/soc/codecs/Kconfig +++ b/sound/soc/codecs/Kconfig @@ -129,6 +129,7 @@ config SND_SOC_ALL_CODECS @@ -119181,7 +119181,7 @@ index 214af16..06be5a2 100644 select SND_SOC_TLV320AIC26 if SPI_MASTER select SND_SOC_TLV320AIC31XX if I2C select SND_SOC_TLV320AIC32X4 if I2C -@@ -758,6 +759,9 @@ config SND_SOC_TFA9879 +@@ -759,6 +760,9 @@ config SND_SOC_TFA9879 tristate "NXP Semiconductors TFA9879 amplifier" depends on I2C @@ -119803,10 +119803,10 @@ index 0000000..8f019e0 + +#endif /* _TAS5713_H */ -From f8bae62b0dd99d5820498f1e20e77d366af8dcfe Mon Sep 17 00:00:00 2001 +From f6bb4896d087f846d7276d263368b28f81a512d6 Mon Sep 17 00:00:00 2001 From: Ryan Coe Date: Sat, 31 Jan 2015 18:25:49 -0700 -Subject: [PATCH 068/114] Update ds1307 driver for device-tree support +Subject: [PATCH 068/128] Update ds1307 driver for device-tree support Signed-off-by: Ryan Coe --- @@ -119814,7 +119814,7 @@ Signed-off-by: Ryan Coe 1 file changed, 8 insertions(+) diff --git a/drivers/rtc/rtc-ds1307.c b/drivers/rtc/rtc-ds1307.c -index b2156ee..4ba33ee 100644 +index ecb7dba..f0a699c 100644 --- a/drivers/rtc/rtc-ds1307.c +++ b/drivers/rtc/rtc-ds1307.c @@ -1605,6 +1605,14 @@ static int ds1307_remove(struct i2c_client *client) @@ -119833,10 +119833,10 @@ index b2156ee..4ba33ee 100644 .driver = { .name = "rtc-ds1307", -From 095e4b2962f86a593d2ee02655e5a4ad03701fba Mon Sep 17 00:00:00 2001 +From 313cf3f715ffe2855d96dd5359fe52e6fcaad125 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 6 Feb 2015 13:50:57 +0000 -Subject: [PATCH 069/114] BCM270x_DT: Add pwr_led, and the required "input" +Subject: [PATCH 069/128] BCM270x_DT: Add pwr_led, and the required "input" trigger The "input" trigger makes the associated GPIO an input. This is to support @@ -120009,10 +120009,10 @@ index f203a8f..555cf15 100644 /* Set LED brightness level * Must not sleep. Use brightness_set_blocking for drivers -From 1cfd22d5f3cbc9b1c6eadee234f07e9285ae46fe Mon Sep 17 00:00:00 2001 +From 1662aa19988c2374eafde021ce12a5370142fb4b Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 27 Feb 2015 15:10:24 +0000 -Subject: [PATCH 070/114] enc28j60: Add device tree compatible string and an +Subject: [PATCH 070/128] enc28j60: Add device tree compatible string and an overlay --- @@ -120041,10 +120041,10 @@ index 86ea17e..a1b20c1 100644 .probe = enc28j60_probe, .remove = enc28j60_remove, -From 28eeb1b06004f5a4e3e89f516e4678ca3c4c82d9 Mon Sep 17 00:00:00 2001 +From 5a47a1eb756677bd50194c050580bf775848d078 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Wed, 25 Mar 2015 09:26:17 +0100 -Subject: [PATCH 071/114] Add driver for rpi-proto +Subject: [PATCH 071/128] 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 @@ -120260,10 +120260,10 @@ index 0000000..9db678e +MODULE_DESCRIPTION("ASoC Driver for Raspberry Pi connected to PROTO board (WM8731)"); +MODULE_LICENSE("GPL"); -From 6f2334146dea18d259dba83c9f89b42caba6efab Mon Sep 17 00:00:00 2001 +From a9485a67d50015a3ea68f4b304d2cccef6caebac Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 13 Apr 2015 17:16:29 +0100 -Subject: [PATCH 072/114] config: Add default configs +Subject: [PATCH 072/128] config: Add default configs --- arch/arm/configs/bcm2709_defconfig | 1262 +++++++++++++++++++++++++++++++++++ @@ -122818,10 +122818,10 @@ index 0000000..0b87299 +CONFIG_CRC_ITU_T=y +CONFIG_LIBCRC32C=y -From a1e6971294e3e911c461f9aefdc7882a154a0a9d Mon Sep 17 00:00:00 2001 +From 1fd64e5a68aff77d38ad583a571121b9cd36036a Mon Sep 17 00:00:00 2001 From: Gordon Hollingworth Date: Tue, 12 May 2015 14:47:56 +0100 -Subject: [PATCH 073/114] rpi-ft5406: Add touchscreen driver for pi LCD display +Subject: [PATCH 073/128] 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 @@ -123116,10 +123116,10 @@ index 0000000..b27dbee +MODULE_DESCRIPTION("Touchscreen driver for memory based FT5406"); +MODULE_LICENSE("GPL"); -From 3442c1202309c020f8dd61c76574cf414240daed Mon Sep 17 00:00:00 2001 +From 17b91da9ba4b26290be0f4efa9e7652c780a35e5 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 13 Oct 2014 11:47:53 +0100 -Subject: [PATCH 074/114] Improve __copy_to_user and __copy_from_user +Subject: [PATCH 074/128] Improve __copy_to_user and __copy_from_user performance Provide a __copy_from_user that uses memcpy. On BCM2708, use @@ -124675,10 +124675,10 @@ index 6bd1089..cd17dd1 100644 static unsigned long noinline __clear_user_memset(void __user *addr, unsigned long n) -From 0813a534e8677a29f014d32722f373e42bf2aa93 Mon Sep 17 00:00:00 2001 +From 93c62a05e8879eef0e51d42559ef60760b3a08a5 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 25 Jun 2015 12:16:11 +0100 -Subject: [PATCH 075/114] gpio-poweroff: Allow it to work on Raspberry Pi +Subject: [PATCH 075/128] 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 @@ -124713,10 +124713,10 @@ index be3d81f..a030ae9 100644 "%s: pm_power_off function already registered", __func__); -From 8fa5e143ce9adb6f48f952b89d71990b5a560ae1 Mon Sep 17 00:00:00 2001 +From d1c5cc52c63b362e97f15ccf1767ced2a6f477b2 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 14 Jul 2015 14:32:47 +0100 -Subject: [PATCH 076/114] mfd: Add Raspberry Pi Sense HAT core driver +Subject: [PATCH 076/128] mfd: Add Raspberry Pi Sense HAT core driver --- drivers/input/joystick/Kconfig | 8 + @@ -125582,10 +125582,10 @@ index 0000000..56196dc + +#endif -From 8b9a3c692dcb44ba033bb131b4873e035ce5ff76 Mon Sep 17 00:00:00 2001 +From fb538428f17708631f8894c59946b1fff9739ec2 Mon Sep 17 00:00:00 2001 From: Jan Grulich Date: Mon, 24 Aug 2015 16:03:47 +0100 -Subject: [PATCH 077/114] RaspiDAC3 support +Subject: [PATCH 077/128] RaspiDAC3 support Signed-off-by: Jan Grulich @@ -125834,10 +125834,10 @@ index 0000000..e7422e2 +MODULE_DESCRIPTION("ASoC Driver for RaspiDAC Rev.3x"); +MODULE_LICENSE("GPL v2"); -From 0e83954993c856c53c4bccb3a1987bff50e58533 Mon Sep 17 00:00:00 2001 +From 184fc20f37ddaec2ca30e95406cf6a5a0f21d08a Mon Sep 17 00:00:00 2001 From: Jan Grulich Date: Mon, 24 Aug 2015 16:02:34 +0100 -Subject: [PATCH 078/114] tpa6130a2: Add headphone switch control +Subject: [PATCH 078/128] tpa6130a2: Add headphone switch control Signed-off-by: Jan Grulich --- @@ -125928,10 +125928,10 @@ index 11d85c5..3caaa17 100644 /* -From 4e521b9a6f05e7f2b5ed358804ee6c36d1c23c4e Mon Sep 17 00:00:00 2001 +From 72db0adcf4e743aa3494dcf0d7efd7aa2aa74de8 Mon Sep 17 00:00:00 2001 From: P33M Date: Wed, 21 Oct 2015 14:55:21 +0100 -Subject: [PATCH 079/114] rpi_display: add backlight driver and overlay +Subject: [PATCH 079/128] 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 @@ -126100,10 +126100,10 @@ index 0000000..14a0d9b +MODULE_DESCRIPTION("Raspberry Pi mailbox based Backlight Driver"); +MODULE_LICENSE("GPL"); -From 5ecd9e700a81663147a2457cef2a93fd5ae621cd Mon Sep 17 00:00:00 2001 +From 869399a0cdc9d6d3ae124453cf3091c1e980e3b0 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 11 Nov 2015 11:38:59 +0000 -Subject: [PATCH 080/114] scripts: Multi-platform support for mkknlimg and +Subject: [PATCH 080/128] scripts: Multi-platform support for mkknlimg and knlinfo The firmware uses tags in the kernel trailer to choose which dtb file @@ -126352,10 +126352,10 @@ index 3998d43..005f404 100755 - return (($val eq 'y') || ($val eq '1')); -} -From cc4993db27b70169abaecdbbc2e5131c10a7c2b2 Mon Sep 17 00:00:00 2001 +From ecb161ae52a143370ca14f75b80256031d1b8a95 Mon Sep 17 00:00:00 2001 From: Craig Roberts Date: Tue, 16 Feb 2016 10:03:42 +0000 -Subject: [PATCH 081/114] Updated smsc95xx driver to check for a valid MAC +Subject: [PATCH 081/128] Updated smsc95xx driver to check for a valid MAC address in eeprom before using smsc95xx.macaddr parameter passed on command line. @@ -126395,10 +126395,10 @@ index 08ced57..a61bd08 100644 netif_dbg(dev, ifup, dev->net, "MAC address set to eth_random_addr\n"); } -From 2a1212d768fc0b6304908ca72aa0fb151c4d33cf Mon Sep 17 00:00:00 2001 +From 21e96baed27697c3de1fd9835b54f7f942c9575a Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 23 Feb 2016 19:56:04 +0000 -Subject: [PATCH 082/114] bcm2835-virtgpio: Virtual GPIO driver +Subject: [PATCH 082/128] bcm2835-virtgpio: Virtual GPIO driver Add a virtual GPIO driver that uses the firmware mailbox interface to request that the VPU toggles LEDs. @@ -126624,10 +126624,10 @@ index 0000000..f3e0f16 +MODULE_DESCRIPTION("brcmvirt GPIO driver"); +MODULE_ALIAS("platform:brcmvirt-gpio"); -From 50af5c701f50215b5ce53f54d40ec9682f66dd6b Mon Sep 17 00:00:00 2001 +From af2491daa4e6ccee89b554c46a737b958fac90c3 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 4 Mar 2016 12:49:09 +0000 -Subject: [PATCH 083/114] DRM_VC4: Allow to be built for ARCH_BCM270x +Subject: [PATCH 083/128] DRM_VC4: Allow to be built for ARCH_BCM270x --- drivers/gpu/drm/vc4/Kconfig | 2 +- @@ -126646,10 +126646,10 @@ index 5848104..870fea5 100644 select DRM_KMS_HELPER select DRM_KMS_CMA_HELPER -From 9771718ad680a80b06fe3d20ac2851ccd78115cf Mon Sep 17 00:00:00 2001 +From 0e0cf5508a270dacf53e9b0def67ab079825292a Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 17 Dec 2015 13:37:07 +0000 -Subject: [PATCH 084/114] hci_h5: Don't send conf_req when ACTIVE +Subject: [PATCH 084/128] 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. @@ -126672,10 +126672,10 @@ index 0879d64..5161ab3 100644 if (H5_HDR_LEN(hdr) > 2) h5->tx_win = (data[2] & 0x07); -From 93e515c0f77abfacf54ccbc12b4d94618e0b423d Mon Sep 17 00:00:00 2001 +From 116ee2ac84dd90fe54dadd7db6622da9af1d7820 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 23 Feb 2016 17:26:48 +0000 -Subject: [PATCH 085/114] amba_pl011: Don't use DT aliases for numbering +Subject: [PATCH 085/128] 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 @@ -126704,10 +126704,10 @@ index 7c198e0..4f9e97b 100644 uap->old_cr = 0; uap->port.dev = dev; -From b1fc98ab68bbf110e2c839a25dc3c09eb0fd5d22 Mon Sep 17 00:00:00 2001 +From ab5b916299772f6dab566c72c08c5b3a181f723d Mon Sep 17 00:00:00 2001 From: wm4 Date: Wed, 13 Jan 2016 19:41:45 +0100 -Subject: [PATCH 086/114] bcm2835-pcm: Numerous enhancements +Subject: [PATCH 086/128] bcm2835-pcm: Numerous enhancements bcm2835: extend allowed range of channels and samplerates @@ -127550,10 +127550,10 @@ index af3e6eb..5f4409f 100644 +#endif // _VC_AUDIO_DEFS_H_ \ No newline at end of file -From 799752a785774372412162ca01eba8f21518c833 Mon Sep 17 00:00:00 2001 +From 7c1606d95e3e08f814cdccf280ef8213a00974ac Mon Sep 17 00:00:00 2001 From: Pantelis Antoniou Date: Wed, 3 Dec 2014 13:23:28 +0200 -Subject: [PATCH 087/114] OF: DT-Overlay configfs interface +Subject: [PATCH 087/128] 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. @@ -127969,10 +127969,10 @@ index 0000000..7b66deb +} +late_initcall(of_cfs_init); -From 8ac9864a4bd3d7b096fc385db58d39b53da206f3 Mon Sep 17 00:00:00 2001 +From 47611bd3ee6a56a26d0b69a2d48ac77da9d8fa32 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 13 Mar 2015 12:43:36 +0000 -Subject: [PATCH 088/114] Protect __release_resource against resources without +Subject: [PATCH 088/128] Protect __release_resource against resources without parents Without this patch, removing a device tree overlay can crash here. @@ -128000,10 +128000,10 @@ index 9b5f044..f8a9af6 100644 for (;;) { tmp = *p; -From 91a49d58dc66d3523951fe8c810ce6cf224b0074 Mon Sep 17 00:00:00 2001 +From 17e14b659be57597820ce9eae76a509db9c20457 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 13 Mar 2015 20:00:21 +0000 -Subject: [PATCH 089/114] BCM270X_DT: Add a .dtbo target, use for overlays +Subject: [PATCH 089/128] BCM270X_DT: Add a .dtbo target, use for overlays Change the filenames and extensions to keep the pre-DDT style of overlay (-overlay.dtb) distinct from new ones that use a @@ -128086,10 +128086,10 @@ index ddf83d0..c819ddc 100644 # Bzip2 -From 96fd3ebbca3c81575bf3dc7681c0f67243fc1af3 Mon Sep 17 00:00:00 2001 +From ca21d44f0773e3c41f10c0b1d5bd2ed33b978f0c Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 29 May 2015 11:18:58 +0100 -Subject: [PATCH 090/114] scripts/knlinfo: Decode DDTK atom +Subject: [PATCH 090/128] scripts/knlinfo: Decode DDTK atom Show the DDTK atom as being a boolean. @@ -128120,10 +128120,10 @@ index b9ef124..263ec93 100755 sub format_int -From 5ba639e7dfecaa2341b48645ea6297469cb644fd Mon Sep 17 00:00:00 2001 +From c32d1a5dedfc7a5778beb3f500964079a9b83d9f Mon Sep 17 00:00:00 2001 From: Cheong2K Date: Fri, 26 Feb 2016 18:20:10 +0800 -Subject: [PATCH 091/114] brcm: adds support for BCM43341 wifi +Subject: [PATCH 091/128] brcm: adds support for BCM43341 wifi --- drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c | 2 ++ @@ -128163,10 +128163,10 @@ index 699f2c2..15598b3 100644 #define BRCM_CC_4335_CHIP_ID 0x4335 #define BRCM_CC_4339_CHIP_ID 0x4339 -From 469393b56eef50bc105c7508c4a35bc66cc120ce Mon Sep 17 00:00:00 2001 +From 1b9297e869e6e265efd6d50934996c389a2f348a Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 9 Mar 2016 17:25:59 +0000 -Subject: [PATCH 092/114] brcmfmac: Disable power management +Subject: [PATCH 092/128] brcmfmac: Disable power management Disable wireless power saving in the brcmfmac WLAN driver. This is a temporary measure until the connectivity loss resulting from power @@ -128191,10 +128191,10 @@ index d5c2a27..5a08f59 100644 if (!check_vif_up(ifp->vif)) { -From 8077a80f7213a87ae6ee2adc25799fec6e1bfe4d Mon Sep 17 00:00:00 2001 +From 2266e5fa610f884241404c3a8c7f92071bda1523 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Fri, 22 Jan 2016 13:06:39 -0800 -Subject: [PATCH 093/114] drm/vc4: Add a debugfs node for tracking execution +Subject: [PATCH 093/128] drm/vc4: Add a debugfs node for tracking execution state. Signed-off-by: Eric Anholt @@ -128254,10 +128254,10 @@ index 8d4384f..aa4517c 100644 vc4_queue_hangcheck(struct drm_device *dev) { -From 3fc260b067c746366f51c43394ac398b3155b097 Mon Sep 17 00:00:00 2001 +From ca44cf7fd4d8877b8b5c3b5ca35d8d3ada4575e2 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 25 Jan 2016 13:03:33 -0800 -Subject: [PATCH 094/114] drm/vc4: Include vc4_drm.h in uapi in downstream +Subject: [PATCH 094/128] drm/vc4: Include vc4_drm.h in uapi in downstream build. Signed-off-by: Eric Anholt @@ -128278,10 +128278,10 @@ index 9355dd8..68828bf 100644 header-y += vmwgfx_drm.h header-y += msm_drm.h -From 05001f87c74655bc0b286e53494dfad5ac3bc5e7 Mon Sep 17 00:00:00 2001 +From 4f216ea04bdb48d843a2b0608419ad5ed0029916 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 23 Mar 2016 17:22:10 +0000 -Subject: [PATCH 095/114] DT configfs: Fix build errors on other platforms +Subject: [PATCH 095/128] DT configfs: Fix build errors on other platforms Signed-off-by: Phil Elwell --- @@ -128310,10 +128310,10 @@ index 7b66deb..168b9d3 100644 if (overlay->dtbo == NULL) -From 440679f12679191111976b233adfeec72263860e Mon Sep 17 00:00:00 2001 +From 8f184c363213d9ada37b8c74343ec2d658221e0f Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 10 Aug 2015 09:49:15 +0100 -Subject: [PATCH 096/114] scripts/dtc: Update to upstream version 1.4.1 +Subject: [PATCH 096/128] scripts/dtc: Update to upstream version 1.4.1 Includes the new localfixups format. @@ -131149,10 +131149,10 @@ index 11d93e6..2595dfd 100644 -#define DTC_VERSION "DTC 1.4.1-gb06e55c8" +#define DTC_VERSION "DTC 1.4.1-g25efc119" -From a4862ba9bf7e56d3c2e8556c19eda52fc0f6b9c4 Mon Sep 17 00:00:00 2001 +From 4c12f60fffe5b63af8de0eac995c44390ece63cf Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 31 Mar 2016 16:49:52 +0100 -Subject: [PATCH 097/114] config: Enabled IPV6_SUBTREES +Subject: [PATCH 097/128] config: Enabled IPV6_SUBTREES --- arch/arm/configs/bcm2709_defconfig | 1 + @@ -131184,10 +131184,10 @@ index 0b87299..bfb6936 100644 CONFIG_IP_ROUTE_VERBOSE=y CONFIG_IP_PNP=y -From 042c70e53211e4062dff7ddf59a7b360b5370736 Mon Sep 17 00:00:00 2001 +From 27f2eb72b8b9471052903ee33fcce8d4a3d37d87 Mon Sep 17 00:00:00 2001 From: Slawomir Stepien Date: Sun, 3 Apr 2016 13:11:58 +0200 -Subject: [PATCH 098/114] [media]: bcm2835-camera: fix compilation error +Subject: [PATCH 098/128] [media]: bcm2835-camera: fix compilation error There is an error when compiling rpi-4.6.y branch: CC [M] drivers/media/platform/bcm2835/bcm2835-camera.o @@ -131219,10 +131219,10 @@ index fbf89a2..fd20d1e 100644 unsigned int sizes[], void *alloc_ctxs[]) { -From 7eb6433554a5b01c7aded991216424b7c3a0561c Mon Sep 17 00:00:00 2001 +From 5c9cccb7edc38644ece83569794fa4d8e46d4196 Mon Sep 17 00:00:00 2001 From: Slawomir Stepien Date: Sun, 3 Apr 2016 18:59:57 +0200 -Subject: [PATCH 099/114] DT configfs: fix build error +Subject: [PATCH 099/128] DT configfs: fix build error There is an error when compiling rpi-4.6.y branch: CC drivers/of/configfs.o @@ -131273,10 +131273,10 @@ index 168b9d3..68f889d 100644 ret = configfs_register_subsystem(&of_cfs_subsys); if (ret != 0) { -From 851b603db5ec7c276c4219ac92c0b085abb90f00 Mon Sep 17 00:00:00 2001 +From 5392dddf678c4b5ca2acf6ec8f703751041fe88f Mon Sep 17 00:00:00 2001 From: dienet Date: Wed, 13 Apr 2016 19:07:46 +0200 -Subject: [PATCH 100/114] vchiq_arm: do not use page_cache_release(page) macro +Subject: [PATCH 100/128] vchiq_arm: do not use page_cache_release(page) macro (#1403) This macro is gone since 1fa64f198b9f8d6ec0f7aec7c18dc94684391140. @@ -131323,10 +131323,10 @@ index a5cc385..dd62676 100644 kfree(pages); } -From ba7d03eecfa21c6dc350b236beaad715acac723f Mon Sep 17 00:00:00 2001 +From 6b8a01dbcf2cc17654701ebee22a895a0beb8e96 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 18 Apr 2016 23:00:31 +0100 -Subject: [PATCH 101/114] vchiq: Upate to match get_user_pages prototype +Subject: [PATCH 101/128] vchiq: Upate to match get_user_pages prototype --- drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c | 2 +- @@ -131361,10 +131361,10 @@ index dd62676..a76060c 100644 num_pages, /* len */ 0, /* write */ -From 0ae92b6f6101216e8f6aa5d68b9adad458e91ae7 Mon Sep 17 00:00:00 2001 +From a80463d6527ae162eaa712237fdbb9b1fc75312d Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 21 Apr 2016 13:49:32 +0100 -Subject: [PATCH 102/114] vchiq_arm: Add completion records under the mutex +Subject: [PATCH 102/128] vchiq_arm: Add completion records under the mutex An issue was observed when flushing openmax components which generate a large number of messages returning @@ -131427,10 +131427,10 @@ index a76060c..51e6018 100644 return VCHIQ_SUCCESS; -From b203738cc5b4bd877e5f1db0d3e745b5865507aa Mon Sep 17 00:00:00 2001 +From 9ad2f3fbb9a0d4c288e811ee432dad26d509e68a Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 21 Apr 2016 15:44:14 +0100 -Subject: [PATCH 103/114] bcm2835-i2s: Reduce the TX DREQ threshold +Subject: [PATCH 103/128] bcm2835-i2s: Reduce the TX DREQ threshold TX FIFO overrun is thought to be the cause of channel swapping, so reducing the DREQ threshold seems reasonable and appears to be @@ -131478,10 +131478,10 @@ index c7f3fc7..8064e3f 100644 /* Clear FIFOs */ bcm2835_i2s_clear_fifos(dev, true, true); -From 3c3beab16b1e6d776d25d1867516bcaa298e58a3 Mon Sep 17 00:00:00 2001 +From c4b680ef62b426b38a55f9366959fafccc7d75af Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 4 Apr 2016 16:03:18 +0100 -Subject: [PATCH 104/114] bcm2835-sdhost: Firmware manages the clock divisor +Subject: [PATCH 104/128] bcm2835-sdhost: Firmware manages the clock divisor The bcm2835-sdhost driver hands control of the CDIV clock divisor register to matching firmware, allowing it to adjust to a changing @@ -131694,10 +131694,10 @@ index f43aae0..54087b2 100644 if (ret) goto err; -From 60b77dc3f91119ad7cb3a2ae39797754575bc275 Mon Sep 17 00:00:00 2001 +From ba4aee54bde1afe0832e4f3a08d774baab85d4d1 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 11 Apr 2016 12:50:58 +0100 -Subject: [PATCH 105/114] bcm2835-sdhost: Reset the clock in task context +Subject: [PATCH 105/128] bcm2835-sdhost: Reset the clock in task context Since reprogramming the clock can now involve a round-trip to the firmware it must not be done at atomic context, and a tasklet @@ -131804,10 +131804,10 @@ index 54087b2..a57faed 100644 host->pio_limit = 1; host->max_delay = 1; /* Warn if over 1ms */ -From c439a5c39d8d64ddd8d835cac6b42550811d3581 Mon Sep 17 00:00:00 2001 +From 90f2f300c53c2f045f604012adc5c5d4ab06d111 Mon Sep 17 00:00:00 2001 From: Sam Nazarko Date: Fri, 1 Apr 2016 17:27:21 +0100 -Subject: [PATCH 106/114] add smsc95xx packetsize module_param +Subject: [PATCH 106/128] add smsc95xx packetsize module_param Signed-off-by: Sam Nazarko --- @@ -131849,10 +131849,10 @@ index a61bd08..3c23b11 100644 netif_dbg(dev, ifup, dev->net, "rx_urb_size=%ld\n", -From 1d3ef6f3ee8e621efbfcf2147d80aba94ed50a12 Mon Sep 17 00:00:00 2001 +From d45bb32b00237d1d9217f6d333963659332b0d08 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 19 Apr 2016 12:57:52 +0100 -Subject: [PATCH 107/114] bcm2835_thermal: Don't report unsupported trip type +Subject: [PATCH 107/128] bcm2835_thermal: Don't report unsupported trip type --- drivers/thermal/bcm2835-thermal.c | 34 +--------------------------------- @@ -131921,10 +131921,10 @@ index 08d8dc7..c63fb9f 100644 if (IS_ERR(tz)) { dev_err(&pdev->dev, "Failed to register the thermal device\n"); -From c1e63a730e6d4ec6d212d39f37a425fc4bbcd7a0 Mon Sep 17 00:00:00 2001 +From dba0b83a7cf6ed507afa507c16dea40b3025d68e Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Sun, 17 Apr 2016 04:44:47 -0700 -Subject: [PATCH 108/114] vmcs: Remove unused sm_cache_map_vector definition +Subject: [PATCH 108/128] vmcs: Remove unused sm_cache_map_vector definition (#1411) The code using it also ifdef'ed with 0, anyyd gcc 6 @@ -131959,10 +131959,10 @@ index 5d16e35..1db6716 100644 /* ---- Private Function Prototypes -------------------------------------- */ -From 150f46922b0f2da460cc2cd447c6c039285dce27 Mon Sep 17 00:00:00 2001 +From e10e3329413e13384b4e30708c82686c4d431db3 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 5 Apr 2016 13:01:54 +0100 -Subject: [PATCH 109/114] BCM270X_DT: Add dpi24 overlay +Subject: [PATCH 109/128] BCM270X_DT: Add dpi24 overlay Signed-off-by: Phil Elwell --- @@ -132041,10 +132041,10 @@ index 0000000..e4dbe40 + }; +}; -From 21f5b65c2dfc30fd3c75bb9ad242eed0c5f3a5d8 Mon Sep 17 00:00:00 2001 +From 6cd9fb199ed66351a75794c8cd397967ebbf7934 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 5 Apr 2016 19:40:12 +0100 -Subject: [PATCH 110/114] reboot: Use power off rather than busy spinning when +Subject: [PATCH 110/128] reboot: Use power off rather than busy spinning when halt is requested --- @@ -132069,10 +132069,10 @@ index 71a2ff9..812c15e 100644 /* -From 7e5b50942960069881572b173d745c22958e9d69 Mon Sep 17 00:00:00 2001 +From eb9810b89233b701707c0186e52454bbf471f64a Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 30 Mar 2016 17:23:15 +0100 -Subject: [PATCH 111/114] cpufreq: Temporarily ignore io_is_busy=1 +Subject: [PATCH 111/128] cpufreq: Temporarily ignore io_is_busy=1 To speed testing of the new sdhost driver that adapts to changes in core_freq, hack the on-demand governor to treat io_is_busy=1 as @@ -132103,10 +132103,10 @@ index acd8027..72c5a4c 100644 /* we need to re-evaluate prev_cpu_idle */ gov_update_cpu_data(dbs_data); -From 5852c38e95e3f81ba96c4aa8014f9267700ce90f Mon Sep 17 00:00:00 2001 +From 1e5c7460854aa8d57f108c1aafa361f30f5533e5 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 21 Apr 2016 20:24:17 +0100 -Subject: [PATCH 112/114] config: Make IPV6 a module and regenerate with +Subject: [PATCH 112/128] config: Make IPV6 a module and regenerate with defconfig --- @@ -132169,10 +132169,10 @@ index bfb6936..4cfb186 100644 CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y CONFIG_IPV6_PIMSM_V2=y -From c7bb9cf080179e9abd76a48c2cb517369590780c Mon Sep 17 00:00:00 2001 +From 74215e15a288b055a34669347d3359e81bf50b92 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 21 Apr 2016 20:31:55 +0100 -Subject: [PATCH 113/114] firmware: Add RPI_FIRMWARE_SET_SDHOST_CLOCK +Subject: [PATCH 113/128] firmware: Add RPI_FIRMWARE_SET_SDHOST_CLOCK --- include/soc/bcm2835/raspberrypi-firmware.h | 1 + @@ -132191,10 +132191,10 @@ index 73e4956..227a107 100644 /* Dispmanx TAGS */ RPI_FIRMWARE_FRAMEBUFFER_ALLOCATE = 0x00040001, -From 815cdfe7c75dbdbf13fc3d5b629ed0a68c895ef4 Mon Sep 17 00:00:00 2001 +From f38ff8219a9de9681ea94936356b96424eae2b2f Mon Sep 17 00:00:00 2001 From: dienet Date: Fri, 22 Apr 2016 21:58:41 +0200 -Subject: [PATCH 114/114] fbdev: bcm2708_fb: remove unused variable and +Subject: [PATCH 114/128] fbdev: bcm2708_fb: remove unused variable and duplicated comment (#1426) The yres varialbe is not used anywhere in this function. Also this comment looks @@ -132219,3 +132219,1188 @@ index a20539a..cae5aab 100644 print_debug("bcm2708_fb_check_var info(%p) %dx%d (%dx%d), %d, %d\n", info, info->var.xres, info->var.yres, info->var.xres_virtual, info->var.yres_virtual, (int)info->screen_size, + +From f8599fd1eb4e992be1aceb75deffb657ed5bd850 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Wed, 27 Apr 2016 16:59:24 +0100 +Subject: [PATCH 115/128] Revert "ASoC: bcm2835: move to use the clock + framework" + +This reverts commit 517e7a1537ae4663268be5d0c0ec62c563b9fc99. +--- + sound/soc/bcm/bcm2835-i2s.c | 284 ++++++++++++++++++++++++++++++++++---------- + 1 file changed, 220 insertions(+), 64 deletions(-) + +diff --git a/sound/soc/bcm/bcm2835-i2s.c b/sound/soc/bcm/bcm2835-i2s.c +index 8064e3f..c38ad99 100644 +--- a/sound/soc/bcm/bcm2835-i2s.c ++++ b/sound/soc/bcm/bcm2835-i2s.c +@@ -37,7 +37,6 @@ + #include + #include + #include +-#include + #include + + #include +@@ -47,6 +46,55 @@ + #include + #include + ++/* Clock registers */ ++#define BCM2835_CLK_PCMCTL_REG 0x00 ++#define BCM2835_CLK_PCMDIV_REG 0x04 ++ ++/* Clock register settings */ ++#define BCM2835_CLK_PASSWD (0x5a000000) ++#define BCM2835_CLK_PASSWD_MASK (0xff000000) ++#define BCM2835_CLK_MASH(v) ((v) << 9) ++#define BCM2835_CLK_FLIP BIT(8) ++#define BCM2835_CLK_BUSY BIT(7) ++#define BCM2835_CLK_KILL BIT(5) ++#define BCM2835_CLK_ENAB BIT(4) ++#define BCM2835_CLK_SRC(v) (v) ++ ++#define BCM2835_CLK_SHIFT (12) ++#define BCM2835_CLK_DIVI(v) ((v) << BCM2835_CLK_SHIFT) ++#define BCM2835_CLK_DIVF(v) (v) ++#define BCM2835_CLK_DIVF_MASK (0xFFF) ++ ++enum { ++ BCM2835_CLK_MASH_0 = 0, ++ BCM2835_CLK_MASH_1, ++ BCM2835_CLK_MASH_2, ++ BCM2835_CLK_MASH_3, ++}; ++ ++enum { ++ BCM2835_CLK_SRC_GND = 0, ++ BCM2835_CLK_SRC_OSC, ++ BCM2835_CLK_SRC_DBG0, ++ BCM2835_CLK_SRC_DBG1, ++ BCM2835_CLK_SRC_PLLA, ++ BCM2835_CLK_SRC_PLLC, ++ BCM2835_CLK_SRC_PLLD, ++ BCM2835_CLK_SRC_HDMI, ++}; ++ ++/* Most clocks are not useable (freq = 0) */ ++static const unsigned int bcm2835_clk_freq[BCM2835_CLK_SRC_HDMI+1] = { ++ [BCM2835_CLK_SRC_GND] = 0, ++ [BCM2835_CLK_SRC_OSC] = 19200000, ++ [BCM2835_CLK_SRC_DBG0] = 0, ++ [BCM2835_CLK_SRC_DBG1] = 0, ++ [BCM2835_CLK_SRC_PLLA] = 0, ++ [BCM2835_CLK_SRC_PLLC] = 0, ++ [BCM2835_CLK_SRC_PLLD] = 500000000, ++ [BCM2835_CLK_SRC_HDMI] = 0, ++}; ++ + /* I2S registers */ + #define BCM2835_I2S_CS_A_REG 0x00 + #define BCM2835_I2S_FIFO_A_REG 0x04 +@@ -110,6 +158,10 @@ + #define BCM2835_I2S_INT_RXR BIT(1) + #define BCM2835_I2S_INT_TXW BIT(0) + ++/* I2S DMA interface */ ++/* FIXME: Needs IOMMU support */ ++#define BCM2835_VCMMU_SHIFT (0x7E000000 - 0x20000000) ++ + /* General device struct */ + struct bcm2835_i2s_dev { + struct device *dev; +@@ -117,23 +169,21 @@ struct bcm2835_i2s_dev { + unsigned int fmt; + unsigned int bclk_ratio; + +- struct regmap *i2s_regmap; +- struct clk *clk; +- bool clk_prepared; ++ struct regmap *i2s_regmap; ++ struct regmap *clk_regmap; + }; + + static void bcm2835_i2s_start_clock(struct bcm2835_i2s_dev *dev) + { ++ /* Start the clock if in master mode */ + unsigned int master = dev->fmt & SND_SOC_DAIFMT_MASTER_MASK; + +- if (dev->clk_prepared) +- return; +- + switch (master) { + case SND_SOC_DAIFMT_CBS_CFS: + case SND_SOC_DAIFMT_CBS_CFM: +- clk_prepare_enable(dev->clk); +- dev->clk_prepared = true; ++ regmap_update_bits(dev->clk_regmap, BCM2835_CLK_PCMCTL_REG, ++ BCM2835_CLK_PASSWD_MASK | BCM2835_CLK_ENAB, ++ BCM2835_CLK_PASSWD | BCM2835_CLK_ENAB); + break; + default: + break; +@@ -142,9 +192,28 @@ static void bcm2835_i2s_start_clock(struct bcm2835_i2s_dev *dev) + + static void bcm2835_i2s_stop_clock(struct bcm2835_i2s_dev *dev) + { +- if (dev->clk_prepared) +- clk_disable_unprepare(dev->clk); +- dev->clk_prepared = false; ++ uint32_t clkreg; ++ int timeout = 1000; ++ ++ /* Stop clock */ ++ regmap_update_bits(dev->clk_regmap, BCM2835_CLK_PCMCTL_REG, ++ BCM2835_CLK_PASSWD_MASK | BCM2835_CLK_ENAB, ++ BCM2835_CLK_PASSWD); ++ ++ /* Wait for the BUSY flag going down */ ++ while (--timeout) { ++ regmap_read(dev->clk_regmap, BCM2835_CLK_PCMCTL_REG, &clkreg); ++ if (!(clkreg & BCM2835_CLK_BUSY)) ++ break; ++ } ++ ++ if (!timeout) { ++ /* KILL the clock */ ++ dev_err(dev->dev, "I2S clock didn't stop. Kill the clock!\n"); ++ regmap_update_bits(dev->clk_regmap, BCM2835_CLK_PCMCTL_REG, ++ BCM2835_CLK_KILL | BCM2835_CLK_PASSWD_MASK, ++ BCM2835_CLK_KILL | BCM2835_CLK_PASSWD); ++ } + } + + static void bcm2835_i2s_clear_fifos(struct bcm2835_i2s_dev *dev, +@@ -154,7 +223,8 @@ static void bcm2835_i2s_clear_fifos(struct bcm2835_i2s_dev *dev, + uint32_t syncval; + uint32_t csreg; + uint32_t i2s_active_state; +- bool clk_was_prepared; ++ uint32_t clkreg; ++ uint32_t clk_active_state; + uint32_t off; + uint32_t clr; + +@@ -168,10 +238,15 @@ static void bcm2835_i2s_clear_fifos(struct bcm2835_i2s_dev *dev, + regmap_read(dev->i2s_regmap, BCM2835_I2S_CS_A_REG, &csreg); + i2s_active_state = csreg & (BCM2835_I2S_RXON | BCM2835_I2S_TXON); + ++ regmap_read(dev->clk_regmap, BCM2835_CLK_PCMCTL_REG, &clkreg); ++ clk_active_state = clkreg & BCM2835_CLK_ENAB; ++ + /* Start clock if not running */ +- clk_was_prepared = dev->clk_prepared; +- if (!clk_was_prepared) +- bcm2835_i2s_start_clock(dev); ++ if (!clk_active_state) { ++ regmap_update_bits(dev->clk_regmap, BCM2835_CLK_PCMCTL_REG, ++ BCM2835_CLK_PASSWD_MASK | BCM2835_CLK_ENAB, ++ BCM2835_CLK_PASSWD | BCM2835_CLK_ENAB); ++ } + + /* Stop I2S module */ + regmap_update_bits(dev->i2s_regmap, BCM2835_I2S_CS_A_REG, off, 0); +@@ -205,7 +280,7 @@ static void bcm2835_i2s_clear_fifos(struct bcm2835_i2s_dev *dev, + dev_err(dev->dev, "I2S SYNC error!\n"); + + /* Stop clock if it was not running before */ +- if (!clk_was_prepared) ++ if (!clk_active_state) + bcm2835_i2s_stop_clock(dev); + + /* Restore I2S state */ +@@ -234,9 +309,19 @@ static int bcm2835_i2s_hw_params(struct snd_pcm_substream *substream, + struct snd_soc_dai *dai) + { + struct bcm2835_i2s_dev *dev = snd_soc_dai_get_drvdata(dai); ++ + unsigned int sampling_rate = params_rate(params); + unsigned int data_length, data_delay, bclk_ratio; + unsigned int ch1pos, ch2pos, mode, format; ++ unsigned int mash = BCM2835_CLK_MASH_1; ++ unsigned int divi, divf, target_frequency; ++ int clk_src = -1; ++ unsigned int master = dev->fmt & SND_SOC_DAIFMT_MASTER_MASK; ++ bool bit_master = (master == SND_SOC_DAIFMT_CBS_CFS ++ || master == SND_SOC_DAIFMT_CBS_CFM); ++ ++ bool frame_master = (master == SND_SOC_DAIFMT_CBS_CFS ++ || master == SND_SOC_DAIFMT_CBM_CFS); + uint32_t csreg; + + /* +@@ -258,12 +343,14 @@ static int bcm2835_i2s_hw_params(struct snd_pcm_substream *substream, + switch (params_format(params)) { + case SNDRV_PCM_FORMAT_S16_LE: + data_length = 16; ++ bclk_ratio = 40; + break; + case SNDRV_PCM_FORMAT_S24_LE: + data_length = 24; + break; + case SNDRV_PCM_FORMAT_S32_LE: + data_length = 32; ++ bclk_ratio = 80; + break; + default: + return -EINVAL; +@@ -272,12 +359,69 @@ static int bcm2835_i2s_hw_params(struct snd_pcm_substream *substream, + /* If bclk_ratio already set, use that one. */ + if (dev->bclk_ratio) + bclk_ratio = dev->bclk_ratio; +- else +- /* otherwise calculate a fitting block ratio */ +- bclk_ratio = 2 * data_length; + +- /* set target clock rate*/ +- clk_set_rate(dev->clk, sampling_rate * bclk_ratio); ++ /* ++ * Clock Settings ++ * ++ * The target frequency of the bit clock is ++ * sampling rate * frame length ++ * ++ * Integer mode: ++ * Sampling rates that are multiples of 8000 kHz ++ * can be driven by the oscillator of 19.2 MHz ++ * with an integer divider as long as the frame length ++ * is an integer divider of 19200000/8000=2400 as set up above. ++ * This is no longer possible if the sampling rate ++ * is too high (e.g. 192 kHz), because the oscillator is too slow. ++ * ++ * MASH mode: ++ * For all other sampling rates, it is not possible to ++ * have an integer divider. Approximate the clock ++ * with the MASH module that induces a slight frequency ++ * variance. To minimize that it is best to have the fastest ++ * clock here. That is PLLD with 500 MHz. ++ */ ++ target_frequency = sampling_rate * bclk_ratio; ++ clk_src = BCM2835_CLK_SRC_OSC; ++ mash = BCM2835_CLK_MASH_0; ++ ++ if (bcm2835_clk_freq[clk_src] % target_frequency == 0 ++ && bit_master && frame_master) { ++ divi = bcm2835_clk_freq[clk_src] / target_frequency; ++ divf = 0; ++ } else { ++ uint64_t dividend; ++ ++ if (!dev->bclk_ratio) { ++ /* ++ * Overwrite bclk_ratio, because the ++ * above trick is not needed or can ++ * not be used. ++ */ ++ bclk_ratio = 2 * data_length; ++ } ++ ++ target_frequency = sampling_rate * bclk_ratio; ++ ++ clk_src = BCM2835_CLK_SRC_PLLD; ++ mash = BCM2835_CLK_MASH_1; ++ ++ dividend = bcm2835_clk_freq[clk_src]; ++ dividend <<= BCM2835_CLK_SHIFT; ++ do_div(dividend, target_frequency); ++ divi = dividend >> BCM2835_CLK_SHIFT; ++ divf = dividend & BCM2835_CLK_DIVF_MASK; ++ } ++ ++ /* Set clock divider */ ++ regmap_write(dev->clk_regmap, BCM2835_CLK_PCMDIV_REG, BCM2835_CLK_PASSWD ++ | BCM2835_CLK_DIVI(divi) ++ | BCM2835_CLK_DIVF(divf)); ++ ++ /* Setup clock, but don't start it yet */ ++ regmap_write(dev->clk_regmap, BCM2835_CLK_PCMCTL_REG, BCM2835_CLK_PASSWD ++ | BCM2835_CLK_MASH(mash) ++ | BCM2835_CLK_SRC(clk_src)); + + /* Setup the frame format */ + format = BCM2835_I2S_CHEN; +@@ -558,7 +702,7 @@ static const struct snd_soc_dai_ops bcm2835_i2s_dai_ops = { + .trigger = bcm2835_i2s_trigger, + .hw_params = bcm2835_i2s_hw_params, + .set_fmt = bcm2835_i2s_set_dai_fmt, +- .set_bclk_ratio = bcm2835_i2s_set_dai_bclk_ratio, ++ .set_bclk_ratio = bcm2835_i2s_set_dai_bclk_ratio + }; + + static int bcm2835_i2s_dai_probe(struct snd_soc_dai *dai) +@@ -618,14 +762,34 @@ static bool bcm2835_i2s_precious_reg(struct device *dev, unsigned int reg) + }; + } + +-static const struct regmap_config bcm2835_regmap_config = { +- .reg_bits = 32, +- .reg_stride = 4, +- .val_bits = 32, +- .max_register = BCM2835_I2S_GRAY_REG, +- .precious_reg = bcm2835_i2s_precious_reg, +- .volatile_reg = bcm2835_i2s_volatile_reg, +- .cache_type = REGCACHE_RBTREE, ++static bool bcm2835_clk_volatile_reg(struct device *dev, unsigned int reg) ++{ ++ switch (reg) { ++ case BCM2835_CLK_PCMCTL_REG: ++ return true; ++ default: ++ return false; ++ }; ++} ++ ++static const struct regmap_config bcm2835_regmap_config[] = { ++ { ++ .reg_bits = 32, ++ .reg_stride = 4, ++ .val_bits = 32, ++ .max_register = BCM2835_I2S_GRAY_REG, ++ .precious_reg = bcm2835_i2s_precious_reg, ++ .volatile_reg = bcm2835_i2s_volatile_reg, ++ .cache_type = REGCACHE_RBTREE, ++ }, ++ { ++ .reg_bits = 32, ++ .reg_stride = 4, ++ .val_bits = 32, ++ .max_register = BCM2835_CLK_PCMDIV_REG, ++ .volatile_reg = bcm2835_clk_volatile_reg, ++ .cache_type = REGCACHE_RBTREE, ++ }, + }; + + static const struct snd_soc_component_driver bcm2835_i2s_component = { +@@ -654,11 +818,25 @@ static const struct snd_dmaengine_pcm_config bcm2835_dmaengine_pcm_config = { + static int bcm2835_i2s_probe(struct platform_device *pdev) + { + struct bcm2835_i2s_dev *dev; ++ int i; + int ret; +- struct resource *mem; +- void __iomem *base; +- const __be32 *addr; +- dma_addr_t dma_base; ++ struct regmap *regmap[2]; ++ struct resource *mem[2]; ++ ++ /* Request both ioareas */ ++ for (i = 0; i <= 1; i++) { ++ void __iomem *base; ++ ++ mem[i] = platform_get_resource(pdev, IORESOURCE_MEM, i); ++ base = devm_ioremap_resource(&pdev->dev, mem[i]); ++ if (IS_ERR(base)) ++ return PTR_ERR(base); ++ ++ regmap[i] = devm_regmap_init_mmio(&pdev->dev, base, ++ &bcm2835_regmap_config[i]); ++ if (IS_ERR(regmap[i])) ++ return PTR_ERR(regmap[i]); ++ } + + if (of_property_read_bool(pdev->dev.of_node, "brcm,enable-mmap")) + bcm2835_pcm_hardware.info |= +@@ -670,39 +848,17 @@ static int bcm2835_i2s_probe(struct platform_device *pdev) + if (!dev) + return -ENOMEM; + +- /* get the clock */ +- dev->clk_prepared = false; +- dev->clk = devm_clk_get(&pdev->dev, NULL); +- if (IS_ERR(dev->clk)) { +- dev_err(&pdev->dev, "could not get clk: %ld\n", +- PTR_ERR(dev->clk)); +- return PTR_ERR(dev->clk); +- } +- +- /* Request ioarea */ +- mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); +- base = devm_ioremap_resource(&pdev->dev, mem); +- if (IS_ERR(base)) +- return PTR_ERR(base); +- +- dev->i2s_regmap = devm_regmap_init_mmio(&pdev->dev, base, +- &bcm2835_regmap_config); +- if (IS_ERR(dev->i2s_regmap)) +- return PTR_ERR(dev->i2s_regmap); +- +- /* Set the DMA address - we have to parse DT ourselves */ +- addr = of_get_address(pdev->dev.of_node, 0, NULL, NULL); +- if (!addr) { +- dev_err(&pdev->dev, "could not get DMA-register address\n"); +- return -EINVAL; +- } +- dma_base = be32_to_cpup(addr); ++ dev->i2s_regmap = regmap[0]; ++ dev->clk_regmap = regmap[1]; + ++ /* Set the DMA address */ + dev->dma_data[SNDRV_PCM_STREAM_PLAYBACK].addr = +- dma_base + BCM2835_I2S_FIFO_A_REG; ++ (dma_addr_t)mem[0]->start + BCM2835_I2S_FIFO_A_REG ++ + BCM2835_VCMMU_SHIFT; + + dev->dma_data[SNDRV_PCM_STREAM_CAPTURE].addr = +- dma_base + BCM2835_I2S_FIFO_A_REG; ++ (dma_addr_t)mem[0]->start + BCM2835_I2S_FIFO_A_REG ++ + BCM2835_VCMMU_SHIFT; + + /* Set the bus width */ + dev->dma_data[SNDRV_PCM_STREAM_PLAYBACK].addr_width = + +From ea9061354eefe289f93da4827e721a19a684dca5 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Wed, 27 Apr 2016 17:43:28 +0100 +Subject: [PATCH 116/128] Revert "SUNRPC: Make NFS swap work with multipath" + +This reverts commit 15001e5a7e1e207b6bd258cd8f187814cd15b6dc. +--- + net/sunrpc/clnt.c | 66 +++++++++++++++++++++++++++++++++++-------------------- + 1 file changed, 42 insertions(+), 24 deletions(-) + +diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c +index 7e0c9bf..0693685 100644 +--- a/net/sunrpc/clnt.c ++++ b/net/sunrpc/clnt.c +@@ -2683,39 +2683,57 @@ void rpc_show_tasks(struct net *net) + #endif + + #if IS_ENABLED(CONFIG_SUNRPC_SWAP) +-static int +-rpc_clnt_swap_activate_callback(struct rpc_clnt *clnt, +- struct rpc_xprt *xprt, +- void *dummy) +-{ +- return xprt_enable_swap(xprt); +-} +- + int + rpc_clnt_swap_activate(struct rpc_clnt *clnt) + { +- if (atomic_inc_return(&clnt->cl_swapper) == 1) +- return rpc_clnt_iterate_for_each_xprt(clnt, +- rpc_clnt_swap_activate_callback, NULL); +- return 0; +-} +-EXPORT_SYMBOL_GPL(rpc_clnt_swap_activate); ++ int ret = 0; ++ struct rpc_xprt *xprt; + +-static int +-rpc_clnt_swap_deactivate_callback(struct rpc_clnt *clnt, +- struct rpc_xprt *xprt, +- void *dummy) +-{ +- xprt_disable_swap(xprt); +- return 0; ++ if (atomic_inc_return(&clnt->cl_swapper) == 1) { ++retry: ++ rcu_read_lock(); ++ xprt = xprt_get(rcu_dereference(clnt->cl_xprt)); ++ rcu_read_unlock(); ++ if (!xprt) { ++ /* ++ * If we didn't get a reference, then we likely are ++ * racing with a migration event. Wait for a grace ++ * period and try again. ++ */ ++ synchronize_rcu(); ++ goto retry; ++ } ++ ++ ret = xprt_enable_swap(xprt); ++ xprt_put(xprt); ++ } ++ return ret; + } ++EXPORT_SYMBOL_GPL(rpc_clnt_swap_activate); + + void + rpc_clnt_swap_deactivate(struct rpc_clnt *clnt) + { +- if (atomic_dec_if_positive(&clnt->cl_swapper) == 0) +- rpc_clnt_iterate_for_each_xprt(clnt, +- rpc_clnt_swap_deactivate_callback, NULL); ++ struct rpc_xprt *xprt; ++ ++ if (atomic_dec_if_positive(&clnt->cl_swapper) == 0) { ++retry: ++ rcu_read_lock(); ++ xprt = xprt_get(rcu_dereference(clnt->cl_xprt)); ++ rcu_read_unlock(); ++ if (!xprt) { ++ /* ++ * If we didn't get a reference, then we likely are ++ * racing with a migration event. Wait for a grace ++ * period and try again. ++ */ ++ synchronize_rcu(); ++ goto retry; ++ } ++ ++ xprt_disable_swap(xprt); ++ xprt_put(xprt); ++ } + } + EXPORT_SYMBOL_GPL(rpc_clnt_swap_deactivate); + #endif /* CONFIG_SUNRPC_SWAP */ + +From ee0843d81af9de479241f6844910fe774fc98bc3 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Thu, 28 Apr 2016 12:05:49 +0100 +Subject: [PATCH 117/128] Revert "bcm2835-i2s: Reduce the TX DREQ threshold" + +This reverts commit 01ede038c816ae19fe2676ecf7bef0f40e1b5446. +--- + sound/soc/bcm/bcm2835-i2s.c | 21 +++++++-------------- + 1 file changed, 7 insertions(+), 14 deletions(-) + +diff --git a/sound/soc/bcm/bcm2835-i2s.c b/sound/soc/bcm/bcm2835-i2s.c +index c38ad99..a89f0d2 100644 +--- a/sound/soc/bcm/bcm2835-i2s.c ++++ b/sound/soc/bcm/bcm2835-i2s.c +@@ -547,22 +547,15 @@ static int bcm2835_i2s_hw_params(struct snd_pcm_substream *substream, + + /* Setup the DMA parameters */ + regmap_update_bits(dev->i2s_regmap, BCM2835_I2S_CS_A_REG, +- BCM2835_I2S_RXTHR(3) +- | BCM2835_I2S_TXTHR(3) +- | BCM2835_I2S_DMAEN, +- BCM2835_I2S_RXTHR(1) +- | BCM2835_I2S_TXTHR(1) +- | BCM2835_I2S_DMAEN); ++ BCM2835_I2S_RXTHR(1) ++ | BCM2835_I2S_TXTHR(1) ++ | BCM2835_I2S_DMAEN, 0xffffffff); + + regmap_update_bits(dev->i2s_regmap, BCM2835_I2S_DREQ_A_REG, +- BCM2835_I2S_TX_PANIC(0x7f) +- | BCM2835_I2S_RX_PANIC(0x7f) +- | BCM2835_I2S_TX(0x7f) +- | BCM2835_I2S_RX(0x7f), +- BCM2835_I2S_TX_PANIC(0x10) +- | BCM2835_I2S_RX_PANIC(0x30) +- | BCM2835_I2S_TX(0x20) +- | BCM2835_I2S_RX(0x20)); ++ BCM2835_I2S_TX_PANIC(0x10) ++ | BCM2835_I2S_RX_PANIC(0x30) ++ | BCM2835_I2S_TX(0x30) ++ | BCM2835_I2S_RX(0x20), 0xffffffff); + + /* Clear FIFOs */ + bcm2835_i2s_clear_fifos(dev, true, true); + +From 01b52de12d447f2face2e0889664b540f66c940c Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Thu, 28 Apr 2016 12:05:59 +0100 +Subject: [PATCH 118/128] Revert "bcm2835-i2s: Enable MMAP support via a DT + property" + +This reverts commit 9aeeaa19f04bf6e176c3b670fb4b8cacb0aca444. +--- + sound/soc/bcm/bcm2835-i2s.c | 7 +------ + 1 file changed, 1 insertion(+), 6 deletions(-) + +diff --git a/sound/soc/bcm/bcm2835-i2s.c b/sound/soc/bcm/bcm2835-i2s.c +index a89f0d2..c1af739 100644 +--- a/sound/soc/bcm/bcm2835-i2s.c ++++ b/sound/soc/bcm/bcm2835-i2s.c +@@ -789,7 +789,7 @@ static const struct snd_soc_component_driver bcm2835_i2s_component = { + .name = "bcm2835-i2s-comp", + }; + +-static struct snd_pcm_hardware bcm2835_pcm_hardware = { ++static const struct snd_pcm_hardware bcm2835_pcm_hardware = { + .info = SNDRV_PCM_INFO_INTERLEAVED | + SNDRV_PCM_INFO_JOINT_DUPLEX, + .formats = SNDRV_PCM_FMTBIT_S16_LE | +@@ -831,11 +831,6 @@ static int bcm2835_i2s_probe(struct platform_device *pdev) + return PTR_ERR(regmap[i]); + } + +- if (of_property_read_bool(pdev->dev.of_node, "brcm,enable-mmap")) +- bcm2835_pcm_hardware.info |= +- SNDRV_PCM_INFO_MMAP | +- SNDRV_PCM_INFO_MMAP_VALID; +- + dev = devm_kzalloc(&pdev->dev, sizeof(*dev), + GFP_KERNEL); + if (!dev) + +From 8d4aa9ae0cc918d6aff794bd2c097570acffd5ff Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Thu, 28 Apr 2016 12:06:07 +0100 +Subject: [PATCH 119/128] Revert "bcm2835-i2s: Register PCM device" + +This reverts commit 37fee13e055338fcb70c9f215470d4dbadb3d72d. +--- + sound/soc/bcm/bcm2835-i2s.c | 23 +---------------------- + 1 file changed, 1 insertion(+), 22 deletions(-) + +diff --git a/sound/soc/bcm/bcm2835-i2s.c b/sound/soc/bcm/bcm2835-i2s.c +index c1af739..23e5470 100644 +--- a/sound/soc/bcm/bcm2835-i2s.c ++++ b/sound/soc/bcm/bcm2835-i2s.c +@@ -789,25 +789,6 @@ static const struct snd_soc_component_driver bcm2835_i2s_component = { + .name = "bcm2835-i2s-comp", + }; + +-static const struct snd_pcm_hardware bcm2835_pcm_hardware = { +- .info = SNDRV_PCM_INFO_INTERLEAVED | +- SNDRV_PCM_INFO_JOINT_DUPLEX, +- .formats = SNDRV_PCM_FMTBIT_S16_LE | +- SNDRV_PCM_FMTBIT_S24_LE | +- SNDRV_PCM_FMTBIT_S32_LE, +- .period_bytes_min = 32, +- .period_bytes_max = 64 * PAGE_SIZE, +- .periods_min = 2, +- .periods_max = 255, +- .buffer_bytes_max = 128 * PAGE_SIZE, +-}; +- +-static const struct snd_dmaengine_pcm_config bcm2835_dmaengine_pcm_config = { +- .prepare_slave_config = snd_dmaengine_pcm_prepare_slave_config, +- .pcm_hardware = &bcm2835_pcm_hardware, +- .prealloc_buffer_size = 256 * PAGE_SIZE, +-}; +- + static int bcm2835_i2s_probe(struct platform_device *pdev) + { + struct bcm2835_i2s_dev *dev; +@@ -872,9 +853,7 @@ static int bcm2835_i2s_probe(struct platform_device *pdev) + return ret; + } + +- ret = devm_snd_dmaengine_pcm_register(&pdev->dev, +- &bcm2835_dmaengine_pcm_config, +- SND_DMAENGINE_PCM_FLAG_COMPAT); ++ ret = devm_snd_dmaengine_pcm_register(&pdev->dev, NULL, 0); + if (ret) { + dev_err(&pdev->dev, "Could not register PCM: %d\n", ret); + return ret; + +From d6058bd851aabb8962685fbdf93600e4724d5900 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Thu, 28 Apr 2016 12:06:13 +0100 +Subject: [PATCH 120/128] Revert "bcm2835-i2s: add 24bit support, update + bclk_ratio to more correct values" + +This reverts commit e780aed0c66a082d773330ce656f8722436dd8a1. +--- + sound/soc/bcm/bcm2835-i2s.c | 7 +------ + 1 file changed, 1 insertion(+), 6 deletions(-) + +diff --git a/sound/soc/bcm/bcm2835-i2s.c b/sound/soc/bcm/bcm2835-i2s.c +index 23e5470..3303d5f 100644 +--- a/sound/soc/bcm/bcm2835-i2s.c ++++ b/sound/soc/bcm/bcm2835-i2s.c +@@ -345,9 +345,6 @@ static int bcm2835_i2s_hw_params(struct snd_pcm_substream *substream, + data_length = 16; + bclk_ratio = 40; + break; +- case SNDRV_PCM_FORMAT_S24_LE: +- data_length = 24; +- break; + case SNDRV_PCM_FORMAT_S32_LE: + data_length = 32; + bclk_ratio = 80; +@@ -426,7 +423,7 @@ static int bcm2835_i2s_hw_params(struct snd_pcm_substream *substream, + /* Setup the frame format */ + format = BCM2835_I2S_CHEN; + +- if (data_length >= 24) ++ if (data_length > 24) + format |= BCM2835_I2S_CHWEX; + + format |= BCM2835_I2S_CHWID((data_length-8)&0xf); +@@ -717,7 +714,6 @@ static struct snd_soc_dai_driver bcm2835_i2s_dai = { + .channels_max = 2, + .rates = SNDRV_PCM_RATE_8000_192000, + .formats = SNDRV_PCM_FMTBIT_S16_LE +- | SNDRV_PCM_FMTBIT_S24_LE + | SNDRV_PCM_FMTBIT_S32_LE + }, + .capture = { +@@ -725,7 +721,6 @@ static struct snd_soc_dai_driver bcm2835_i2s_dai = { + .channels_max = 2, + .rates = SNDRV_PCM_RATE_8000_192000, + .formats = SNDRV_PCM_FMTBIT_S16_LE +- | SNDRV_PCM_FMTBIT_S24_LE + | SNDRV_PCM_FMTBIT_S32_LE + }, + .ops = &bcm2835_i2s_dai_ops, + +From 365e2b8d9ee0add5345a5c571833f0d254fbf14a Mon Sep 17 00:00:00 2001 +From: Matthias Reichl +Date: Sun, 11 Oct 2015 16:44:05 +0200 +Subject: [PATCH 121/128] bcm2835-i2s: get base address for DMA from devicetree + +Code copied from spi-bcm2835. Get physical address from devicetree +instead of using hardcoded constant. + +Signed-off-by: Matthias Reichl +--- + sound/soc/bcm/bcm2835-i2s.c | 20 ++++++++++++-------- + 1 file changed, 12 insertions(+), 8 deletions(-) + +diff --git a/sound/soc/bcm/bcm2835-i2s.c b/sound/soc/bcm/bcm2835-i2s.c +index 3303d5f..0f25db4 100644 +--- a/sound/soc/bcm/bcm2835-i2s.c ++++ b/sound/soc/bcm/bcm2835-i2s.c +@@ -38,6 +38,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -158,10 +159,6 @@ static const unsigned int bcm2835_clk_freq[BCM2835_CLK_SRC_HDMI+1] = { + #define BCM2835_I2S_INT_RXR BIT(1) + #define BCM2835_I2S_INT_TXW BIT(0) + +-/* I2S DMA interface */ +-/* FIXME: Needs IOMMU support */ +-#define BCM2835_VCMMU_SHIFT (0x7E000000 - 0x20000000) +- + /* General device struct */ + struct bcm2835_i2s_dev { + struct device *dev; +@@ -791,6 +788,15 @@ static int bcm2835_i2s_probe(struct platform_device *pdev) + int ret; + struct regmap *regmap[2]; + struct resource *mem[2]; ++ const __be32 *addr; ++ dma_addr_t dma_reg_base; ++ ++ addr = of_get_address(pdev->dev.of_node, 0, NULL, NULL); ++ if (!addr) { ++ dev_err(&pdev->dev, "could not get DMA-register address\n"); ++ return -ENODEV; ++ } ++ dma_reg_base = be32_to_cpup(addr); + + /* Request both ioareas */ + for (i = 0; i <= 1; i++) { +@@ -817,12 +823,10 @@ static int bcm2835_i2s_probe(struct platform_device *pdev) + + /* Set the DMA address */ + dev->dma_data[SNDRV_PCM_STREAM_PLAYBACK].addr = +- (dma_addr_t)mem[0]->start + BCM2835_I2S_FIFO_A_REG +- + BCM2835_VCMMU_SHIFT; ++ dma_reg_base + BCM2835_I2S_FIFO_A_REG; + + dev->dma_data[SNDRV_PCM_STREAM_CAPTURE].addr = +- (dma_addr_t)mem[0]->start + BCM2835_I2S_FIFO_A_REG +- + BCM2835_VCMMU_SHIFT; ++ dma_reg_base + BCM2835_I2S_FIFO_A_REG; + + /* Set the bus width */ + dev->dma_data[SNDRV_PCM_STREAM_PLAYBACK].addr_width = + +From b184dbc1dd9adf135036642dab2bd853d9664ed8 Mon Sep 17 00:00:00 2001 +From: Matthias Reichl +Date: Sun, 11 Oct 2015 15:21:16 +0200 +Subject: [PATCH 122/128] bcm2835-i2s: add 24bit support, update bclk_ratio to + more correct values + +Code ported from bcm2708-i2s driver in Raspberry Pi tree. + +RPi commit 62c05a0b5328d9376d39c9e74da10b8a2465c234 ("ASoC: BCM2708: +Add 24 bit support") + +This adds 24 bit support to the I2S driver of the BCM2708. +Besides enabling the 24 bit flags, it includes two bug fixes: + +MMAP is not supported. Claiming this leads to strange issues +when the format of driver and file do not match. + +The datasheet states that the width extension bit should be set +for widths greater than 24, but greater or equal would be correct. +This follows from the definition of the width field. + +Signed-off-by: Florian Meier + +RPi commit 3e8c672bc4e92d457aa4654bbb4cfd79a18a2327 ("bcm2708-i2s: +Update bclk_ratio to more correct values") + +Discussion about blck_ratio affecting sound quality: +https://github.com/raspberrypi/linux/issues/681 + +Signed-off-by: Matthias Reichl +--- + sound/soc/bcm/bcm2835-i2s.c | 12 +++++++++--- + 1 file changed, 9 insertions(+), 3 deletions(-) + +diff --git a/sound/soc/bcm/bcm2835-i2s.c b/sound/soc/bcm/bcm2835-i2s.c +index 0f25db4..0f35d7c 100644 +--- a/sound/soc/bcm/bcm2835-i2s.c ++++ b/sound/soc/bcm/bcm2835-i2s.c +@@ -340,11 +340,15 @@ static int bcm2835_i2s_hw_params(struct snd_pcm_substream *substream, + switch (params_format(params)) { + case SNDRV_PCM_FORMAT_S16_LE: + data_length = 16; +- bclk_ratio = 40; ++ bclk_ratio = 50; ++ break; ++ case SNDRV_PCM_FORMAT_S24_LE: ++ data_length = 24; ++ bclk_ratio = 50; + break; + case SNDRV_PCM_FORMAT_S32_LE: + data_length = 32; +- bclk_ratio = 80; ++ bclk_ratio = 100; + break; + default: + return -EINVAL; +@@ -420,7 +424,7 @@ static int bcm2835_i2s_hw_params(struct snd_pcm_substream *substream, + /* Setup the frame format */ + format = BCM2835_I2S_CHEN; + +- if (data_length > 24) ++ if (data_length >= 24) + format |= BCM2835_I2S_CHWEX; + + format |= BCM2835_I2S_CHWID((data_length-8)&0xf); +@@ -711,6 +715,7 @@ static struct snd_soc_dai_driver bcm2835_i2s_dai = { + .channels_max = 2, + .rates = SNDRV_PCM_RATE_8000_192000, + .formats = SNDRV_PCM_FMTBIT_S16_LE ++ | SNDRV_PCM_FMTBIT_S24_LE + | SNDRV_PCM_FMTBIT_S32_LE + }, + .capture = { +@@ -718,6 +723,7 @@ static struct snd_soc_dai_driver bcm2835_i2s_dai = { + .channels_max = 2, + .rates = SNDRV_PCM_RATE_8000_192000, + .formats = SNDRV_PCM_FMTBIT_S16_LE ++ | SNDRV_PCM_FMTBIT_S24_LE + | SNDRV_PCM_FMTBIT_S32_LE + }, + .ops = &bcm2835_i2s_dai_ops, + +From bed948b66e539b3e3888f701e6cc8d31eb75daf1 Mon Sep 17 00:00:00 2001 +From: Matthias Reichl +Date: Sun, 11 Oct 2015 15:25:51 +0200 +Subject: [PATCH 123/128] bcm2835-i2s: setup clock only if CPU is clock master + +Code ported from bcm2708-i2s driver in Raspberry Pi tree. + +RPi commit c14827ecdaa36607f6110f9ce8df96e698672191 ("bcm2708: Allow +option card devices to be configured via DT") + +Original work by Zoltan Szenczi, committed to RPi tree by +Phil Elwell. + +Signed-off-by: Matthias Reichl +--- + sound/soc/bcm/bcm2835-i2s.c | 28 +++++++++++++++++++--------- + 1 file changed, 19 insertions(+), 9 deletions(-) + +diff --git a/sound/soc/bcm/bcm2835-i2s.c b/sound/soc/bcm/bcm2835-i2s.c +index 0f35d7c..d5e4123 100644 +--- a/sound/soc/bcm/bcm2835-i2s.c ++++ b/sound/soc/bcm/bcm2835-i2s.c +@@ -411,15 +411,25 @@ static int bcm2835_i2s_hw_params(struct snd_pcm_substream *substream, + divf = dividend & BCM2835_CLK_DIVF_MASK; + } + +- /* Set clock divider */ +- regmap_write(dev->clk_regmap, BCM2835_CLK_PCMDIV_REG, BCM2835_CLK_PASSWD +- | BCM2835_CLK_DIVI(divi) +- | BCM2835_CLK_DIVF(divf)); +- +- /* Setup clock, but don't start it yet */ +- regmap_write(dev->clk_regmap, BCM2835_CLK_PCMCTL_REG, BCM2835_CLK_PASSWD +- | BCM2835_CLK_MASH(mash) +- | BCM2835_CLK_SRC(clk_src)); ++ /* Clock should only be set up here if CPU is clock master */ ++ switch (dev->fmt & SND_SOC_DAIFMT_MASTER_MASK) { ++ case SND_SOC_DAIFMT_CBS_CFS: ++ case SND_SOC_DAIFMT_CBS_CFM: ++ /* Set clock divider */ ++ regmap_write(dev->clk_regmap, BCM2835_CLK_PCMDIV_REG, ++ BCM2835_CLK_PASSWD ++ | BCM2835_CLK_DIVI(divi) ++ | BCM2835_CLK_DIVF(divf)); ++ ++ /* Setup clock, but don't start it yet */ ++ regmap_write(dev->clk_regmap, BCM2835_CLK_PCMCTL_REG, ++ BCM2835_CLK_PASSWD ++ | BCM2835_CLK_MASH(mash) ++ | BCM2835_CLK_SRC(clk_src)); ++ break; ++ default: ++ break; ++ } + + /* Setup the frame format */ + format = BCM2835_I2S_CHEN; + +From 74ca20ab5a41ebbd9fa01747bd12355b055ec934 Mon Sep 17 00:00:00 2001 +From: Matthias Reichl +Date: Sun, 11 Oct 2015 15:49:51 +0200 +Subject: [PATCH 124/128] bcm2835-i2s: Eliminate debugfs directory error + +Code ported from bcm2708-i2s driver in Raspberry Pi tree. + +RPi commit fd7d7a3dbe9262d16971ef81c234ed28c6499dd7 ("bcm2708: +Eliminate i2s debugfs directory error") + +Qualify the two regmap ranges uses by bcm2708-i2s ('-i2s' and '-clk') +to avoid the name clash when registering debugfs entries. + +Signed-off-by: Matthias Reichl +--- + sound/soc/bcm/bcm2835-i2s.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/sound/soc/bcm/bcm2835-i2s.c b/sound/soc/bcm/bcm2835-i2s.c +index d5e4123..2d29050 100644 +--- a/sound/soc/bcm/bcm2835-i2s.c ++++ b/sound/soc/bcm/bcm2835-i2s.c +@@ -782,6 +782,7 @@ static const struct regmap_config bcm2835_regmap_config[] = { + .precious_reg = bcm2835_i2s_precious_reg, + .volatile_reg = bcm2835_i2s_volatile_reg, + .cache_type = REGCACHE_RBTREE, ++ .name = "i2s", + }, + { + .reg_bits = 32, +@@ -790,6 +791,7 @@ static const struct regmap_config bcm2835_regmap_config[] = { + .max_register = BCM2835_CLK_PCMDIV_REG, + .volatile_reg = bcm2835_clk_volatile_reg, + .cache_type = REGCACHE_RBTREE, ++ .name = "clk", + }, + }; + + +From 5913175a9c8ca8d02cd7d7dc2de8cb47a0b3f110 Mon Sep 17 00:00:00 2001 +From: Matthias Reichl +Date: Sun, 11 Oct 2015 15:35:20 +0200 +Subject: [PATCH 125/128] bcm2835-i2s: Register PCM device + +Code ported from bcm2708-i2s driver in Raspberry Pi tree. + +RPi commit ba46b4935a23aa2caac1855ead52a035d4776680 ("ASoC: Add +support for BCM2708") + +This driver adds support for digital audio (I2S) +for the BCM2708 SoC that is used by the +Raspberry Pi. External audio codecs can be +connected to the Raspberry Pi via P5 header. + +It relies on cyclic DMA engine support for BCM2708. + +Signed-off-by: Florian Meier + +Signed-off-by: Matthias Reichl +--- + sound/soc/bcm/bcm2835-i2s.c | 23 ++++++++++++++++++++++- + 1 file changed, 22 insertions(+), 1 deletion(-) + +diff --git a/sound/soc/bcm/bcm2835-i2s.c b/sound/soc/bcm/bcm2835-i2s.c +index 2d29050..ce93ef0 100644 +--- a/sound/soc/bcm/bcm2835-i2s.c ++++ b/sound/soc/bcm/bcm2835-i2s.c +@@ -799,6 +799,25 @@ static const struct snd_soc_component_driver bcm2835_i2s_component = { + .name = "bcm2835-i2s-comp", + }; + ++static const struct snd_pcm_hardware bcm2835_pcm_hardware = { ++ .info = SNDRV_PCM_INFO_INTERLEAVED | ++ SNDRV_PCM_INFO_JOINT_DUPLEX, ++ .formats = SNDRV_PCM_FMTBIT_S16_LE | ++ SNDRV_PCM_FMTBIT_S24_LE | ++ SNDRV_PCM_FMTBIT_S32_LE, ++ .period_bytes_min = 32, ++ .period_bytes_max = 64 * PAGE_SIZE, ++ .periods_min = 2, ++ .periods_max = 255, ++ .buffer_bytes_max = 128 * PAGE_SIZE, ++}; ++ ++static const struct snd_dmaengine_pcm_config bcm2835_dmaengine_pcm_config = { ++ .prepare_slave_config = snd_dmaengine_pcm_prepare_slave_config, ++ .pcm_hardware = &bcm2835_pcm_hardware, ++ .prealloc_buffer_size = 256 * PAGE_SIZE, ++}; ++ + static int bcm2835_i2s_probe(struct platform_device *pdev) + { + struct bcm2835_i2s_dev *dev; +@@ -870,7 +889,9 @@ static int bcm2835_i2s_probe(struct platform_device *pdev) + return ret; + } + +- ret = devm_snd_dmaengine_pcm_register(&pdev->dev, NULL, 0); ++ ret = devm_snd_dmaengine_pcm_register(&pdev->dev, ++ &bcm2835_dmaengine_pcm_config, ++ SND_DMAENGINE_PCM_FLAG_COMPAT); + if (ret) { + dev_err(&pdev->dev, "Could not register PCM: %d\n", ret); + return ret; + +From ee29d630045af74bd782375f5289c711fae0b42f Mon Sep 17 00:00:00 2001 +From: Matthias Reichl +Date: Sun, 11 Oct 2015 15:55:21 +0200 +Subject: [PATCH 126/128] bcm2835-i2s: Enable MMAP support via a DT property + +Code ported from bcm2708-i2s driver in Raspberry Pi tree. + +RPi commit 7ee829fd77a30127db5d0b3c7d79b8718166e568 ("bcm2708-i2s: +Enable MMAP support via a DT property and overlay") + +The i2s driver used to claim to support MMAP, but that feature was disabled +when some problems were found. Add the ability to enable this feature +through Device Tree, using the i2s-mmap overlay. + +See: #1004 + +Signed-off-by: Matthias Reichl +--- + sound/soc/bcm/bcm2835-i2s.c | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/sound/soc/bcm/bcm2835-i2s.c b/sound/soc/bcm/bcm2835-i2s.c +index ce93ef0..6f60c2c 100644 +--- a/sound/soc/bcm/bcm2835-i2s.c ++++ b/sound/soc/bcm/bcm2835-i2s.c +@@ -799,7 +799,7 @@ static const struct snd_soc_component_driver bcm2835_i2s_component = { + .name = "bcm2835-i2s-comp", + }; + +-static const struct snd_pcm_hardware bcm2835_pcm_hardware = { ++static struct snd_pcm_hardware bcm2835_pcm_hardware = { + .info = SNDRV_PCM_INFO_INTERLEAVED | + SNDRV_PCM_INFO_JOINT_DUPLEX, + .formats = SNDRV_PCM_FMTBIT_S16_LE | +@@ -835,6 +835,11 @@ static int bcm2835_i2s_probe(struct platform_device *pdev) + } + dma_reg_base = be32_to_cpup(addr); + ++ if (of_property_read_bool(pdev->dev.of_node, "brcm,enable-mmap")) ++ bcm2835_pcm_hardware.info |= ++ SNDRV_PCM_INFO_MMAP | ++ SNDRV_PCM_INFO_MMAP_VALID; ++ + /* Request both ioareas */ + for (i = 0; i <= 1; i++) { + void __iomem *base; + +From 7de919e7b064903b35bcefbd65c34ca649b6194b Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Thu, 21 Apr 2016 15:44:14 +0100 +Subject: [PATCH 127/128] bcm2835-i2s: Reduce the TX DREQ threshold + +TX FIFO overrun is thought to be the cause of channel swapping, so +reducing the DREQ threshold seems reasonable and appears to be +effective. + +See: https://github.com/raspberrypi/linux/issues/1417 + +Signed-off-by: Phil Elwell +--- + sound/soc/bcm/bcm2835-i2s.c | 21 ++++++++++++++------- + 1 file changed, 14 insertions(+), 7 deletions(-) + +diff --git a/sound/soc/bcm/bcm2835-i2s.c b/sound/soc/bcm/bcm2835-i2s.c +index 6f60c2c..b26f958 100644 +--- a/sound/soc/bcm/bcm2835-i2s.c ++++ b/sound/soc/bcm/bcm2835-i2s.c +@@ -555,15 +555,22 @@ static int bcm2835_i2s_hw_params(struct snd_pcm_substream *substream, + + /* Setup the DMA parameters */ + regmap_update_bits(dev->i2s_regmap, BCM2835_I2S_CS_A_REG, +- BCM2835_I2S_RXTHR(1) +- | BCM2835_I2S_TXTHR(1) +- | BCM2835_I2S_DMAEN, 0xffffffff); ++ BCM2835_I2S_RXTHR(3) ++ | BCM2835_I2S_TXTHR(3) ++ | BCM2835_I2S_DMAEN, ++ BCM2835_I2S_RXTHR(1) ++ | BCM2835_I2S_TXTHR(1) ++ | BCM2835_I2S_DMAEN); + + regmap_update_bits(dev->i2s_regmap, BCM2835_I2S_DREQ_A_REG, +- BCM2835_I2S_TX_PANIC(0x10) +- | BCM2835_I2S_RX_PANIC(0x30) +- | BCM2835_I2S_TX(0x30) +- | BCM2835_I2S_RX(0x20), 0xffffffff); ++ BCM2835_I2S_TX_PANIC(0x7f) ++ | BCM2835_I2S_RX_PANIC(0x7f) ++ | BCM2835_I2S_TX(0x7f) ++ | BCM2835_I2S_RX(0x7f), ++ BCM2835_I2S_TX_PANIC(0x10) ++ | BCM2835_I2S_RX_PANIC(0x30) ++ | BCM2835_I2S_TX(0x20) ++ | BCM2835_I2S_RX(0x20)); + + /* Clear FIFOs */ + bcm2835_i2s_clear_fifos(dev, true, true); + +From e3f3dc026fad8e7c4193837c93c94b5e18cc1df9 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Thu, 28 Apr 2016 17:13:47 +0100 +Subject: [PATCH 128/128] brcmfmac: Use original country code as a fallback + +Commit 73345fd212980d2e28a5c6d83801c903bd773680: + + brcmfmac: Configure country code using device specific settings + +prevents region codes from working on devices that lack a region code +translation table. In the event of an absent table, preserve the old +behaviour of using the provided code as-is. + +Signed-off-by: Phil Elwell +--- + .../wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | 20 +++++++++++++++----- + 1 file changed, 15 insertions(+), 5 deletions(-) + +diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c +index 5a08f59..ceba7b6 100644 +--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c ++++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c +@@ -6516,12 +6516,18 @@ static s32 brcmf_translate_country_code(struct brcmf_pub *drvr, char alpha2[2], + struct brcmfmac_pd_cc *country_codes; + struct brcmfmac_pd_cc_entry *cc; + s32 found_index; ++ char ccode[BRCMF_COUNTRY_BUF_SZ]; ++ int rev; + int i; + ++ memcpy(ccode, alpha2, sizeof(ccode)); ++ rev = -1; ++ + country_codes = drvr->settings->country_codes; + if (!country_codes) { +- brcmf_dbg(TRACE, "No country codes configured for device\n"); +- return -EINVAL; ++ brcmf_dbg(TRACE, "No country codes configured for device" ++ " - use requested value\n"); ++ goto use_input_value; + } + + if ((alpha2[0] == ccreq->country_abbrev[0]) && +@@ -6545,10 +6551,14 @@ static s32 brcmf_translate_country_code(struct brcmf_pub *drvr, char alpha2[2], + brcmf_dbg(TRACE, "No country code match found\n"); + return -EINVAL; + } +- memset(ccreq, 0, sizeof(*ccreq)); +- ccreq->rev = cpu_to_le32(country_codes->table[found_index].rev); +- memcpy(ccreq->ccode, country_codes->table[found_index].cc, ++ rev = country_codes->table[found_index].rev; ++ memcpy(ccode, country_codes->table[found_index].cc, + BRCMF_COUNTRY_BUF_SZ); ++ ++use_input_value: ++ memset(ccreq, 0, sizeof(*ccreq)); ++ ccreq->rev = cpu_to_le32(rev); ++ memcpy(ccreq->ccode, ccode, sizeof(ccode)); + ccreq->country_abbrev[0] = alpha2[0]; + ccreq->country_abbrev[1] = alpha2[1]; + ccreq->country_abbrev[2] = 0; diff --git a/projects/RPi2/patches/linux/linux-01-RPi_support.patch b/projects/RPi2/patches/linux/linux-01-RPi_support.patch index ac6f79e6d1..5fb67a8029 100644 --- a/projects/RPi2/patches/linux/linux-01-RPi_support.patch +++ b/projects/RPi2/patches/linux/linux-01-RPi_support.patch @@ -1,7 +1,7 @@ -From e25d546f3718eac8527f09bba58083d175247f19 Mon Sep 17 00:00:00 2001 +From f72f775ef8f0fe390f14ab75e98a647443fe232c Mon Sep 17 00:00:00 2001 From: Steve Glendinning Date: Thu, 19 Feb 2015 18:47:12 +0000 -Subject: [PATCH 001/114] smsx95xx: fix crimes against truesize +Subject: [PATCH 001/128] 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. @@ -48,10 +48,10 @@ index 66b3ab9..ea2dbe5 100644 usbnet_skb_return(dev, ax_skb); } -From 607cb751d33b6af0d182a82a96eb14e4ff7c2ed7 Mon Sep 17 00:00:00 2001 +From 8c5874120b7a3b0ed4ff719ce7435c8d707ad6a6 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 17 Apr 2015 16:58:45 +0100 -Subject: [PATCH 002/114] smsc95xx: Disable turbo mode by default +Subject: [PATCH 002/128] smsc95xx: Disable turbo mode by default --- drivers/net/usb/smsc95xx.c | 2 +- @@ -71,10 +71,10 @@ index ea2dbe5..714cfe0 100644 MODULE_PARM_DESC(turbo_mode, "Enable multiple frames per Rx transaction"); -From 1f222ae94cf97c02532c10a907fba8a7e1d57f08 Mon Sep 17 00:00:00 2001 +From 94a59464d0f85dc4d6c43ce2a6fa6841ba08e090 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 9 Mar 2016 13:28:24 +0000 -Subject: [PATCH 003/114] serial: Take care starting a hung-up tty's port +Subject: [PATCH 003/128] serial: Take care starting a hung-up tty's port tty_port_hangup sets a port's tty field to NULL (holding the port lock), but uart_tx_stopped, called from __uart_start (with the port lock), @@ -102,10 +102,10 @@ index cbfcf38..96bc15a 100644 return 0; } -From dc048b33ed7346ea328d4e513f10549f37d98fb7 Mon Sep 17 00:00:00 2001 +From 15afd620c6a164f59c9042b59fc53221ac1319bb Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 18 Jun 2014 13:42:01 +0100 -Subject: [PATCH 004/114] vmstat: Workaround for issue where dirty page count +Subject: [PATCH 004/128] vmstat: Workaround for issue where dirty page count goes negative See: @@ -132,10 +132,10 @@ index 73fae8c..5dd1278 100644 static inline void __inc_zone_page_state(struct page *page, -From 39ff92a84c78a9a9732ac7f72de3691a1462060d Mon Sep 17 00:00:00 2001 +From ad5576d363c2cb3a53f831a6957d47f8f5bb343e Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Thu, 18 Dec 2014 16:07:15 -0800 -Subject: [PATCH 005/114] mm: Remove the PFN busy warning +Subject: [PATCH 005/128] mm: Remove the PFN busy warning See commit dae803e165a11bc88ca8dbc07a11077caf97bbcb -- the warning is expected sometimes when using CMA. However, that commit still spams @@ -160,10 +160,10 @@ index 59de90d..a7b5691 100644 goto done; } -From c9a338a0415713d87a65f1df36e158c496f88fd1 Mon Sep 17 00:00:00 2001 +From 2d052f1817d9f91a901f28b32d12bc18669eb4b1 Mon Sep 17 00:00:00 2001 From: Robert Tiemann Date: Mon, 20 Jul 2015 11:01:25 +0200 -Subject: [PATCH 006/114] BCM2835_DT: Fix I2S register map +Subject: [PATCH 006/128] BCM2835_DT: Fix I2S register map --- Documentation/devicetree/bindings/dma/brcm,bcm2835-dma.txt | 4 ++-- @@ -201,10 +201,10 @@ index 65783de..a89fe42 100644 dmas = <&dma 2>, <&dma 3>; -From aca2671953e17069ad8f56e130163101381fc736 Mon Sep 17 00:00:00 2001 +From 0dd32785136507607d78af6a31a886d9e5ad3867 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 4 Dec 2015 17:41:50 +0000 -Subject: [PATCH 007/114] irq-bcm2836: Prevent spurious interrupts, and trap +Subject: [PATCH 007/128] irq-bcm2836: Prevent spurious interrupts, and trap them early The old arch-specific IRQ macros included a dsb to ensure the @@ -231,10 +231,10 @@ index b6e950d..bbb92c2 100644 #endif } else if (stat) { -From d1d05c91acf24e5222af4522c7c2c9d615ab68cf Mon Sep 17 00:00:00 2001 +From 259e7b360bf2eda4246964b5dd1486d6a925dc4a 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/114] irqchip: bcm2835: Add FIQ support +Subject: [PATCH 008/128] irqchip: bcm2835: Add FIQ support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -363,10 +363,10 @@ index bf9cc5f..3f601f9 100644 } -From bdf258bc4df61515e3de2a4caa597ccc96b519ef Mon Sep 17 00:00:00 2001 +From 13dda194ad402826df99ea4f8ce82b266e295070 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/114] irqchip: irq-bcm2835: Add 2836 FIQ support +Subject: [PATCH 009/128] irqchip: irq-bcm2835: Add 2836 FIQ support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -462,10 +462,10 @@ index 3f601f9..20deb28 100644 for (b = 0; b < NR_BANKS; b++) { for (i = 0; i < bank_irqs[b]; i++) { -From e623ec6ba4ad40fa1863a573ec86e71c3efa1955 Mon Sep 17 00:00:00 2001 +From 0ac75aea74e497c211093148d5643e30e1b17224 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 14 Jul 2015 10:26:09 +0100 -Subject: [PATCH 010/114] spidev: Add "spidev" compatible string to silence +Subject: [PATCH 010/128] spidev: Add "spidev" compatible string to silence warning See: https://github.com/raspberrypi/linux/issues/1054 @@ -486,10 +486,10 @@ index e3c19f3..f4963e3 100644 }; MODULE_DEVICE_TABLE(of, spidev_dt_ids); -From 27fe80aa5b09a161ff66c1d6e5588a41e7d19225 Mon Sep 17 00:00:00 2001 +From 5d196257fb1527d64641964ba91a0aa5d21baf01 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 30 Jun 2015 14:12:42 +0100 -Subject: [PATCH 011/114] serial: 8250: Don't crash when nr_uarts is 0 +Subject: [PATCH 011/128] serial: 8250: Don't crash when nr_uarts is 0 --- drivers/tty/serial/8250/8250_core.c | 2 ++ @@ -509,10 +509,10 @@ index 2f4f5ee..edc1355 100644 for (i = 0; i < nr_uarts; i++) { struct uart_8250_port *up = &serial8250_ports[i]; -From 46789d89b66ad2a8bb68da0ddeb16665dffe5f5a Mon Sep 17 00:00:00 2001 +From 51010d51d7fec2840eb63c66f1064b45334ab8f3 Mon Sep 17 00:00:00 2001 From: notro Date: Thu, 10 Jul 2014 13:59:47 +0200 -Subject: [PATCH 012/114] pinctrl-bcm2835: Set base to 0 give expected gpio +Subject: [PATCH 012/128] pinctrl-bcm2835: Set base to 0 give expected gpio numbering Signed-off-by: Noralf Tronnes @@ -534,10 +534,10 @@ index 08b1d93..0a23c81 100644 .can_sleep = false, }; -From bcb2842b04e0e339a863fd5cc5f760d1c84e10ca Mon Sep 17 00:00:00 2001 +From 30b9b35ed9c50d60b1ed0ec7928e67aea55c637a Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 24 Feb 2015 13:40:50 +0000 -Subject: [PATCH 013/114] pinctrl-bcm2835: Fix interrupt handling for GPIOs +Subject: [PATCH 013/128] pinctrl-bcm2835: Fix interrupt handling for GPIOs 28-31 and 46-53 Contrary to the documentation, the BCM2835 GPIO controller actually has @@ -683,10 +683,10 @@ index 0a23c81..b793bbd 100644 }, }; -From 4bcd8fc5cde916b2bd2807045d65cdcf9372ef53 Mon Sep 17 00:00:00 2001 +From 6f8bfcb9073426e5a7ae05f1e6def75147c88f75 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 26 Feb 2015 09:58:22 +0000 -Subject: [PATCH 014/114] pinctrl-bcm2835: Only request the interrupts listed +Subject: [PATCH 014/128] pinctrl-bcm2835: Only request the interrupts listed in the DTB Although the GPIO controller can generate three interrupts (four counting @@ -713,10 +713,10 @@ index b793bbd..8683a1b 100644 pc->irq_data[i].irqgroup = i; -From 6ccfd268fe86872db44f61ba61d4dbac59c57186 Mon Sep 17 00:00:00 2001 +From 8d88a7baf2ea1b5ea8e7e7a60c72286ae536d547 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 24 Jun 2015 14:10:44 +0100 -Subject: [PATCH 015/114] spi-bcm2835: Support pin groups other than 7-11 +Subject: [PATCH 015/128] 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 @@ -797,10 +797,10 @@ index f35cc10..5dfe20f 100644 /* and set up the "mode" and level */ dev_info(&spi->dev, "setting up native-CS%i as GPIO %i\n", -From 91bab1f8dcc81e282512c8f808b8d9ca2f7975b6 Mon Sep 17 00:00:00 2001 +From 05c4dd0ce685e35f1ca9c8b0caa3b75143ff75a0 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 016/114] ARM: bcm2835: Set Serial number and Revision +Subject: [PATCH 016/128] ARM: bcm2835: Set Serial number and Revision MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -858,10 +858,10 @@ index 834d676..3b68a8d 100644 static const char * const bcm2835_compat[] = { -From 9b4fc474912bed145c59cc8dcb76a48006cb46ea Mon Sep 17 00:00:00 2001 +From cc6b07292a7ed49073db041ea4d6fa458cd494aa Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 11 Oct 2015 15:21:16 +0200 -Subject: [PATCH 017/114] bcm2835-i2s: add 24bit support, update bclk_ratio to +Subject: [PATCH 017/128] bcm2835-i2s: add 24bit support, update bclk_ratio to more correct values Code ported from bcm2708-i2s driver in Raspberry Pi tree. @@ -932,10 +932,10 @@ index 1c1f221..d2663e7 100644 }, .ops = &bcm2835_i2s_dai_ops, -From ad1d838172d12324cf8029f18a445ed35d895a6a Mon Sep 17 00:00:00 2001 +From a64e8b139909740de25655fbc7d3095bc39194d3 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 11 Oct 2015 15:35:20 +0200 -Subject: [PATCH 018/114] bcm2835-i2s: Register PCM device +Subject: [PATCH 018/128] bcm2835-i2s: Register PCM device Code ported from bcm2708-i2s driver in Raspberry Pi tree. @@ -998,10 +998,10 @@ index d2663e7..3a8468d 100644 dev_err(&pdev->dev, "Could not register PCM: %d\n", ret); return ret; -From 724a0c2c6cac52d4ea41db9d5c45fea6e1a3d34d Mon Sep 17 00:00:00 2001 +From 3554744b9b94c59d46107d72d0121e09ee129815 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 11 Oct 2015 15:55:21 +0200 -Subject: [PATCH 019/114] bcm2835-i2s: Enable MMAP support via a DT property +Subject: [PATCH 019/128] bcm2835-i2s: Enable MMAP support via a DT property Code ported from bcm2708-i2s driver in Raspberry Pi tree. @@ -1045,10 +1045,10 @@ index 3a8468d..c7f3fc7 100644 GFP_KERNEL); if (!dev) -From 3c8b0d34e47e2b73f9f67ee92013abf7c873cb2e Mon Sep 17 00:00:00 2001 +From b8f38a6f9549e66a9b611450d20c1e37dc676e74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Thu, 9 Apr 2015 12:34:11 +0200 -Subject: [PATCH 020/114] dmaengine: bcm2835: Add slave dma support +Subject: [PATCH 020/128] dmaengine: bcm2835: Add slave dma support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -1368,10 +1368,10 @@ index 996c4b0..b278c66 100644 +MODULE_AUTHOR("Gellert Weisz "); MODULE_LICENSE("GPL v2"); -From 21af238b62b6bf7ee2091692c8d88689299743b9 Mon Sep 17 00:00:00 2001 +From 6b70773bc87b4e14d6be4b3b6003b19f9e2cd2c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Sat, 3 Oct 2015 15:58:59 +0200 -Subject: [PATCH 021/114] dmaengine: bcm2835: set residue_granularity field +Subject: [PATCH 021/128] dmaengine: bcm2835: set residue_granularity field MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -1400,10 +1400,10 @@ index b278c66..696fb30 100644 INIT_LIST_HEAD(&od->ddev.channels); spin_lock_init(&od->lock); -From 7f42da09fd073abe725120c913ee14a5e9651f47 Mon Sep 17 00:00:00 2001 +From c0708fd35386a238fa888ad12014aa8ed36ed3f0 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 022/114] dmaengine: bcm2835: Load driver early and support +Subject: [PATCH 022/128] dmaengine: bcm2835: Load driver early and support legacy API MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -1503,10 +1503,10 @@ index 696fb30..5db0a95 100644 MODULE_ALIAS("platform:bcm2835-dma"); MODULE_DESCRIPTION("BCM2835 DMA engine driver"); -From f5754ddf7a7c2406cc893b2bd890f0f91b321ae5 Mon Sep 17 00:00:00 2001 +From 459c2cb3c385d37356aedf4e3d23820ce27b06a9 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sat, 10 Oct 2015 12:29:18 +0200 -Subject: [PATCH 023/114] bcm2835-dma: Fix dreq not set for slave transfers +Subject: [PATCH 023/128] bcm2835-dma: Fix dreq not set for slave transfers Set dreq to slave_id if it is not set like in bcm2708-dmaengine. --- @@ -1527,10 +1527,10 @@ index 5db0a95..fe1fd60 100644 return 0; } -From 994a4cb73ee2a4f781959989cfeb9e90fddc508a Mon Sep 17 00:00:00 2001 +From 19103b20691d8071a282dc41cd9441e2d364ae05 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 11 Oct 2015 12:28:30 +0200 -Subject: [PATCH 024/114] bcm2835-dma: Limit cyclic transfers on lite channels +Subject: [PATCH 024/128] bcm2835-dma: Limit cyclic transfers on lite channels to 32k Transfers larger than 32k cause repeated clicking with I2S soundcards. @@ -1567,10 +1567,10 @@ index fe1fd60..0adc347 100644 max_size = MAX_NORMAL_TRANSFER; period_len = min(period_len, max_size); -From ea1c91a95f363d023dc256319c80a7e75e94ef74 Mon Sep 17 00:00:00 2001 +From 7dbb4a59ac09bb77ff7a4742f3f81c0036b93393 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Mon, 16 Nov 2015 14:05:35 +0000 -Subject: [PATCH 025/114] bcm2835-dma: Fix up convert to DMA pool +Subject: [PATCH 025/128] bcm2835-dma: Fix up convert to DMA pool --- drivers/dma/bcm2835-dma.c | 36 ++++++++++++++++++++++++++---------- @@ -1655,10 +1655,10 @@ index 0adc347..985019b 100644 /* Next block is empty. */ control_block->next = 0; -From 0060f36936def46e53a173f34d0b2ab8862be1ac Mon Sep 17 00:00:00 2001 +From 20914cd2d9d0aa1d8e8f0816939ebc70a444db3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Sat, 15 Aug 2015 20:50:02 +0200 -Subject: [PATCH 026/114] bcm2835: Add support for uart1 +Subject: [PATCH 026/128] bcm2835: Add support for uart1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -1715,10 +1715,10 @@ index 3b68a8d..e72e522 100644 static const char * const bcm2835_compat[] = { -From 139492dfc48f7e8ff2a26902178ef76ae790c7e3 Mon Sep 17 00:00:00 2001 +From cc8d01536c4bb261ec1951d54fcf4da0e6de633e Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 25 Jan 2016 17:25:12 +0000 -Subject: [PATCH 027/114] firmware: Updated mailbox header +Subject: [PATCH 027/128] firmware: Updated mailbox header --- include/soc/bcm2835/raspberrypi-firmware.h | 10 ++++++++++ @@ -1779,10 +1779,10 @@ index 3fb3571..73e4956 100644 RPI_FIRMWARE_GET_COMMAND_LINE = 0x00050001, RPI_FIRMWARE_GET_DMA_CHANNELS = 0x00060001, -From 43e70c9b87a98c3a6c2f6ca82e1b1ea4eeffca78 Mon Sep 17 00:00:00 2001 +From 7be59d079145bb08abcb0d19d6e3a4233dd2643c Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 12 May 2013 12:24:19 +0100 -Subject: [PATCH 028/114] Main bcm2708/bcm2709 linux port +Subject: [PATCH 028/128] Main bcm2708/bcm2709 linux port MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -4292,10 +4292,10 @@ index 8dd4d29..f7fe8bd 100644 mmc_pm_flag_t pm_caps; /* supported pm features */ -From 49892df19a70edbe8a089d8c7048c9234f30d9d3 Mon Sep 17 00:00:00 2001 +From 453bffd985eb42e15941b1f35147fdfc136b0d05 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 11 Nov 2015 21:01:15 +0000 -Subject: [PATCH 029/114] squash: include ARCH_BCM2708 / ARCH_BCM2709 +Subject: [PATCH 029/128] squash: include ARCH_BCM2708 / ARCH_BCM2709 --- drivers/char/hw_random/Kconfig | 2 +- @@ -4472,10 +4472,10 @@ index 6a834e1..c5070ae 100644 select REGMAP_MMIO help -From e169f708f57c5898a4d4303dd6530b3af53b5866 Mon Sep 17 00:00:00 2001 +From 6911cd05e84d64f5b20fcc49c33e42f545d4f18e Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 1 May 2013 19:46:17 +0100 -Subject: [PATCH 030/114] Add dwc_otg driver +Subject: [PATCH 030/128] Add dwc_otg driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -65501,10 +65501,10 @@ index 0000000..cdc9963 +test_main(); +0; -From ab5ddf2c310bafc8375a88ba494d5eba214abd7e Mon Sep 17 00:00:00 2001 +From f410ec50ebad0fa62c00d445fedd20987f9f4b90 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 17 Jun 2015 17:06:34 +0100 -Subject: [PATCH 031/114] bcm2708 framebuffer driver +Subject: [PATCH 031/128] bcm2708 framebuffer driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -68966,10 +68966,10 @@ index 3c14e43..7626beb 100644 +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 b6332fb3df52fe7808c7de394a428252fc9749b4 Mon Sep 17 00:00:00 2001 +From bd2cab5eed0b7a91ece20f645d87a90ee4251173 Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Fri, 22 Nov 2013 14:22:53 +0100 -Subject: [PATCH 032/114] dmaengine: Add support for BCM2708 +Subject: [PATCH 032/128] dmaengine: Add support for BCM2708 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -69589,10 +69589,10 @@ index 0000000..99cc7fd + +#endif /* _PLAT_BCM2708_DMA_H */ -From eaa0834b46389ca5b48a699ca1fe40e164c0400b Mon Sep 17 00:00:00 2001 +From efa40d37efcf199886a929a8032b9da08e39b2e5 Mon Sep 17 00:00:00 2001 From: gellert Date: Fri, 15 Aug 2014 16:35:06 +0100 -Subject: [PATCH 033/114] MMC: added alternative MMC driver +Subject: [PATCH 033/128] MMC: added alternative MMC driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -69710,7 +69710,7 @@ index fad660b..b79fe14 100644 } EXPORT_SYMBOL(mmc_fixup_device); diff --git a/drivers/mmc/host/Kconfig b/drivers/mmc/host/Kconfig -index 04feea8..e258577 100644 +index e657af0..0476061 100644 --- a/drivers/mmc/host/Kconfig +++ b/drivers/mmc/host/Kconfig @@ -4,6 +4,35 @@ @@ -71339,10 +71339,10 @@ index 0000000..ceb3793 +MODULE_LICENSE("GPL v2"); +MODULE_AUTHOR("Gellert Weisz"); -From 4674c122d3fa842a1065f255b3e50f61683692a0 Mon Sep 17 00:00:00 2001 +From 6e4116bef5addb1dbd8355c8f5549cfb96d467c6 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 25 Mar 2015 17:49:47 +0000 -Subject: [PATCH 034/114] Adding bcm2835-sdhost driver, and an overlay to +Subject: [PATCH 034/128] Adding bcm2835-sdhost driver, and an overlay to enable it BCM2835 has two SD card interfaces. This driver uses the other one. @@ -71472,7 +71472,7 @@ Signed-off-by: Phil Elwell create mode 100644 drivers/mmc/host/bcm2835-sdhost.c diff --git a/drivers/mmc/host/Kconfig b/drivers/mmc/host/Kconfig -index e258577..4cdd8cd 100644 +index 0476061..2595474 100644 --- a/drivers/mmc/host/Kconfig +++ b/drivers/mmc/host/Kconfig @@ -33,6 +33,16 @@ config MMC_BCM2835_PIO_DMA_BARRIER @@ -73632,10 +73632,10 @@ index 0000000..f43aae0 +MODULE_LICENSE("GPL v2"); +MODULE_AUTHOR("Phil Elwell"); -From e3dd7794f6746e34aef2cff941ab2a79f3942099 Mon Sep 17 00:00:00 2001 +From 17f168b109d0f44a6a73aaf5c11c004c8aa89b4f Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 3 Jul 2013 00:31:47 +0100 -Subject: [PATCH 035/114] cma: Add vc_cma driver to enable use of CMA +Subject: [PATCH 035/128] cma: Add vc_cma driver to enable use of CMA MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -74978,10 +74978,10 @@ index 0000000..be2819d + +#endif /* VC_CMA_H */ -From 00dc76905d2070f2f9080fcf0c93a0d94b0826bc Mon Sep 17 00:00:00 2001 +From 83cca26157d192228268ce5dff5db892f76cbb95 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 26 Mar 2012 22:15:50 +0100 -Subject: [PATCH 036/114] bcm2708: alsa sound driver +Subject: [PATCH 036/128] bcm2708: alsa sound driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -77679,10 +77679,10 @@ index 0000000..af3e6eb + +#endif // _VC_AUDIO_DEFS_H_ -From d5ba929f0e3f3ea5bce2e0f10a33492c20a2fd2d Mon Sep 17 00:00:00 2001 +From 86e51b08e585238b161567d83324a8ca7ab35536 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 2 Jul 2013 23:42:01 +0100 -Subject: [PATCH 037/114] bcm2708 vchiq driver +Subject: [PATCH 037/128] bcm2708 vchiq driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -91009,10 +91009,10 @@ index 0000000..b6bfa21 + return vchiq_build_time; +} -From 62b4dcdac24e9da625a03d47365898e1c57ae1d5 Mon Sep 17 00:00:00 2001 +From ac69eb3239df145738ba0d568b712af92560b583 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 17 Jun 2015 16:07:06 +0100 -Subject: [PATCH 038/114] vc_mem: Add vc_mem driver +Subject: [PATCH 038/128] vc_mem: Add vc_mem driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -92017,10 +92017,10 @@ index 0000000..20a4753 + +#endif /* _VC_MEM_H */ -From 5e3c755951a4886d0e8a7673dabfabd6f0e0a11a Mon Sep 17 00:00:00 2001 +From 963aa148d8786d7068168a00d88ad25d1855e2bb Mon Sep 17 00:00:00 2001 From: Tim Gover Date: Tue, 22 Jul 2014 15:41:04 +0100 -Subject: [PATCH 039/114] vcsm: VideoCore shared memory service for BCM2835 +Subject: [PATCH 039/128] vcsm: VideoCore shared memory service for BCM2835 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -96436,10 +96436,10 @@ index 0000000..334f36d + +#endif /* __VMCS_SM_IOCTL_H__INCLUDED__ */ -From c3063fdb979a493f5d9bec3535410b807465f82f Mon Sep 17 00:00:00 2001 +From 1bc29561f10a72330be2289c72699491a4b2edfe Mon Sep 17 00:00:00 2001 From: Luke Wren Date: Fri, 21 Aug 2015 23:14:48 +0100 -Subject: [PATCH 040/114] Add /dev/gpiomem device for rootless user GPIO access +Subject: [PATCH 040/128] Add /dev/gpiomem device for rootless user GPIO access Signed-off-by: Luke Wren @@ -96750,10 +96750,10 @@ index 0000000..911f5b7 +MODULE_DESCRIPTION("gpiomem driver for accessing GPIO from userspace"); +MODULE_AUTHOR("Luke Wren "); -From 51660273781e15d356a98ffdc38671cdde96cf78 Mon Sep 17 00:00:00 2001 +From e6426f6f634d4d7aa18dd85e83b8635653531bdf Mon Sep 17 00:00:00 2001 From: Luke Wren Date: Sat, 5 Sep 2015 01:14:45 +0100 -Subject: [PATCH 041/114] Add SMI driver +Subject: [PATCH 041/128] Add SMI driver Signed-off-by: Luke Wren --- @@ -98704,10 +98704,10 @@ index 0000000..ee3a75e + +#endif /* BCM2835_SMI_H */ -From 4fcf517853295325de2791f6ec1a647c1ec88a53 Mon Sep 17 00:00:00 2001 +From 1b794b326b0a65034cbc75d16e3967a1de07afee Mon Sep 17 00:00:00 2001 From: Luke Wren Date: Sat, 5 Sep 2015 01:16:10 +0100 -Subject: [PATCH 042/114] Add SMI NAND driver +Subject: [PATCH 042/128] Add SMI NAND driver Signed-off-by: Luke Wren --- @@ -99072,10 +99072,10 @@ index 0000000..02adda6 + ("Driver for NAND chips using Broadcom Secondary Memory Interface"); +MODULE_AUTHOR("Luke Wren "); -From 370d2f9b37ffe70748bbec0a41c59fc1a0f29fb6 Mon Sep 17 00:00:00 2001 +From 5338d2498c8cc434725c234e7ae31db5ce464a94 Mon Sep 17 00:00:00 2001 From: Aron Szabo Date: Sat, 16 Jun 2012 12:15:55 +0200 -Subject: [PATCH 043/114] lirc: added support for RaspberryPi GPIO +Subject: [PATCH 043/128] 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 @@ -99924,10 +99924,10 @@ index 0000000..fb69624 + +#endif -From ad8d0254434814507570bf2f39b74e65f041a58c Mon Sep 17 00:00:00 2001 +From b7de44263faad3fbc068e8a2f6ae7cc6b0796f11 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 3 Jul 2013 00:49:20 +0100 -Subject: [PATCH 044/114] Add cpufreq driver +Subject: [PATCH 044/128] Add cpufreq driver Signed-off-by: popcornmix --- @@ -100189,10 +100189,10 @@ index 0000000..3eb9e93 +module_init(bcm2835_cpufreq_module_init); +module_exit(bcm2835_cpufreq_module_exit); -From 58567c0d357f8c1311e43791effa972482306217 Mon Sep 17 00:00:00 2001 +From b28ebd063c8429954ff6ebaf62997a189cf38181 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 26 Mar 2013 19:24:24 +0000 -Subject: [PATCH 045/114] Added hwmon/thermal driver for reporting core +Subject: [PATCH 045/128] Added hwmon/thermal driver for reporting core temperature. Thanks Dorian MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -100213,7 +100213,7 @@ Signed-off-by: Noralf Trønnes create mode 100644 drivers/thermal/bcm2835-thermal.c diff --git a/drivers/thermal/Kconfig b/drivers/thermal/Kconfig -index c37eedc..0705996 100644 +index 3c3dc4a..6789340 100644 --- a/drivers/thermal/Kconfig +++ b/drivers/thermal/Kconfig @@ -292,6 +292,13 @@ config INTEL_POWERCLAMP @@ -100390,10 +100390,10 @@ index 0000000..08d8dc7 +MODULE_DESCRIPTION("Thermal driver for bcm2835 chip"); +MODULE_LICENSE("GPL"); -From a61b0d97dc8cd059cb38e51fd0854e6cabec3967 Mon Sep 17 00:00:00 2001 +From 930b009498b18a5d92ef7e54efd0e739081aa7aa Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 17 Jun 2015 15:44:08 +0100 -Subject: [PATCH 046/114] Add Chris Boot's i2c driver +Subject: [PATCH 046/128] Add Chris Boot's i2c driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -100484,7 +100484,7 @@ Set the BSC_CLKT clock streching timeout to 35ms as per SMBus specs. create mode 100644 drivers/i2c/busses/i2c-bcm2708.c diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig -index faa8e68..2bd4f7f 100644 +index 0967e1a..c11fce1 100644 --- a/drivers/i2c/busses/Kconfig +++ b/drivers/i2c/busses/Kconfig @@ -8,6 +8,25 @@ menu "I2C Hardware Bus support" @@ -101050,10 +101050,10 @@ index 0000000..c9b8e5c +MODULE_LICENSE("GPL v2"); +MODULE_ALIAS("platform:" DRV_NAME); -From ee6a578174b8f43710c3d897c1b3c74d31b99466 Mon Sep 17 00:00:00 2001 +From a40a8a93b246b0c672e74d9991a9cfb32b473995 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 047/114] char: broadcom: Add vcio module +Subject: [PATCH 047/128] char: broadcom: Add vcio module MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -101279,10 +101279,10 @@ index 0000000..c19bc20 +MODULE_DESCRIPTION("Mailbox userspace access"); +MODULE_LICENSE("GPL"); -From 44bce7a87a61fc4a18a9b65c9dc1ecfcdc53351d Mon Sep 17 00:00:00 2001 +From 1af2c936a1e3f330e1dba6025db7e220f7e511ce 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 048/114] firmware: bcm2835: Support ARCH_BCM270x +Subject: [PATCH 048/128] firmware: bcm2835: Support ARCH_BCM270x MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -101298,7 +101298,7 @@ Signed-off-by: Noralf Trønnes 1 file changed, 39 insertions(+), 2 deletions(-) diff --git a/drivers/firmware/raspberrypi.c b/drivers/firmware/raspberrypi.c -index dd506cd..b980d53 100644 +index dd506cd3..b980d53 100644 --- a/drivers/firmware/raspberrypi.c +++ b/drivers/firmware/raspberrypi.c @@ -28,6 +28,8 @@ struct rpi_firmware { @@ -101388,10 +101388,10 @@ index dd506cd..b980d53 100644 MODULE_AUTHOR("Eric Anholt "); MODULE_DESCRIPTION("Raspberry Pi firmware driver"); -From 9c0359b11195a31b974f7b893d9f7c0088816c8c Mon Sep 17 00:00:00 2001 +From f9d680055e773e4fdb7de4708fb519d9d45e5448 Mon Sep 17 00:00:00 2001 From: Vincent Sanders Date: Wed, 30 Jan 2013 12:45:18 +0000 -Subject: [PATCH 049/114] bcm2835: add v4l2 camera device +Subject: [PATCH 049/128] bcm2835: add v4l2 camera device - Supports raw YUV capture, preview, JPEG and H264. - Uses videobuf2 for data transfer, using dma_buf. @@ -108783,10 +108783,10 @@ index 0000000..9d1d11e + +#endif /* MMAL_VCHIQ_H */ -From 9889d89cb74b96f8bbaff5a7c451e262af26fbb9 Mon Sep 17 00:00:00 2001 +From 4e52ea443fae548bf9c59439dd827fea9210da9d Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 11 May 2015 09:00:42 +0100 -Subject: [PATCH 050/114] scripts: Add mkknlimg and knlinfo scripts from tools +Subject: [PATCH 050/128] scripts: Add mkknlimg and knlinfo scripts from tools repo The Raspberry Pi firmware looks for a trailer on the kernel image to @@ -109251,10 +109251,10 @@ index 0000000..3998d43 + return (($val eq 'y') || ($val eq '1')); +} -From c962a4d9204d97b1b62ab32f274c22bac54ad8d5 Mon Sep 17 00:00:00 2001 +From bc5ac8f736752697f1cadb81595d15718478ece6 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 5 Dec 2014 17:26:26 +0000 -Subject: [PATCH 051/114] fdt: Add support for the CONFIG_CMDLINE_EXTEND option +Subject: [PATCH 051/128] fdt: Add support for the CONFIG_CMDLINE_EXTEND option --- drivers/of/fdt.c | 29 ++++++++++++++++++++++++----- @@ -109309,10 +109309,10 @@ index 3349d2a..1e26605 100644 pr_debug("Command line is: %s\n", (char*)data); -From 829ab8a2cb98b039ceba5b4407522442ef629ba0 Mon Sep 17 00:00:00 2001 +From 33ec06add369c238ab2fe6b1c93f659d2be4f838 Mon Sep 17 00:00:00 2001 From: notro Date: Wed, 9 Jul 2014 14:46:08 +0200 -Subject: [PATCH 052/114] BCM2708: Add core Device Tree support +Subject: [PATCH 052/128] BCM2708: Add core Device Tree support Add the bare minimum needed to boot BCM2708 from a Device Tree. @@ -116443,10 +116443,10 @@ index 0000000..8498134 + +}; -From 2984afc661362f0232f374a91edc59a2cafcc302 Mon Sep 17 00:00:00 2001 +From 1ad7fda7f10717fb4bdcae50531253d5473ab68a Mon Sep 17 00:00:00 2001 From: Siarhei Siamashka Date: Mon, 17 Jun 2013 13:32:11 +0300 -Subject: [PATCH 053/114] fbdev: add FBIOCOPYAREA ioctl +Subject: [PATCH 053/128] fbdev: add FBIOCOPYAREA ioctl Based on the patch authored by Ali Gholami Rudi at https://lkml.org/lkml/2009/7/13/153 @@ -116539,10 +116539,10 @@ index fb795c3..fa72af0 100644 #define FB_TYPE_PACKED_PIXELS 0 /* Packed Pixels */ #define FB_TYPE_PLANES 1 /* Non interleaved planes */ -From f125245cdc2f65f3f085c9146bc3ce5b373b9def Mon Sep 17 00:00:00 2001 +From 864d8794c8d130c07440ec8b7e28b9fa030b3816 Mon Sep 17 00:00:00 2001 From: Harm Hanemaaijer Date: Thu, 20 Jun 2013 20:21:39 +0200 -Subject: [PATCH 054/114] Speed up console framebuffer imageblit function +Subject: [PATCH 054/128] 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 @@ -116751,10 +116751,10 @@ index a2bb276..436494f 100644 start_index, pitch_index); } else -From c158f1cc55e3166d2eac6a0c7e06bd93d6c4c244 Mon Sep 17 00:00:00 2001 +From 8d1be697ad3fcb49dd2ac4fa33684f08951f8443 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 26 Mar 2013 17:26:38 +0000 -Subject: [PATCH 055/114] Allow mac address to be set in smsc95xx +Subject: [PATCH 055/128] Allow mac address to be set in smsc95xx Signed-off-by: popcornmix --- @@ -116845,10 +116845,10 @@ index 714cfe0..08ced57 100644 if (smsc95xx_read_eeprom(dev, EEPROM_MAC_OFFSET, ETH_ALEN, dev->net->dev_addr) == 0) { -From 7dc5a6f1fb813263ee414e2d7898d3e03d79edd8 Mon Sep 17 00:00:00 2001 +From 09711b4cb3274f86a61056cf7ed82ce9089a5590 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 8 May 2013 11:46:50 +0100 -Subject: [PATCH 056/114] enabling the realtime clock 1-wire chip DS1307 and +Subject: [PATCH 056/128] 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 @@ -117098,10 +117098,10 @@ index d58594a..feae942 100644 unsigned int ext_pullup_enable_pin; unsigned int pullup_duration; -From 79e36090cb7c4f81295a6764dcb5879f30d0ddb4 Mon Sep 17 00:00:00 2001 +From 31afd7cf0f39d6ec2ceea7a497c0e36587cefe99 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 18 Dec 2013 22:16:19 +0000 -Subject: [PATCH 057/114] config: Enable CONFIG_MEMCG, but leave it disabled +Subject: [PATCH 057/128] config: Enable CONFIG_MEMCG, but leave it disabled (due to memory cost). Enable with cgroup_enable=memory. --- @@ -117109,10 +117109,10 @@ Subject: [PATCH 057/114] config: Enable CONFIG_MEMCG, but leave it disabled 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/kernel/cgroup.c b/kernel/cgroup.c -index 671dc05..fbbf2e6 100644 +index 909a7d3..a57ae60 100644 --- a/kernel/cgroup.c +++ b/kernel/cgroup.c -@@ -5521,7 +5521,7 @@ int __init cgroup_init_early(void) +@@ -5524,7 +5524,7 @@ int __init cgroup_init_early(void) return 0; } @@ -117121,7 +117121,7 @@ index 671dc05..fbbf2e6 100644 /** * cgroup_init - cgroup initialization -@@ -6051,6 +6051,28 @@ static int __init cgroup_no_v1(char *str) +@@ -6054,6 +6054,28 @@ static int __init cgroup_no_v1(char *str) } __setup("cgroup_no_v1=", cgroup_no_v1); @@ -117151,10 +117151,10 @@ index 671dc05..fbbf2e6 100644 * css_tryget_online_from_dir - get corresponding css from a cgroup dentry * @dentry: directory dentry of interest -From a46b0a5f799ac1798512ee52f694802873027e6a Mon Sep 17 00:00:00 2001 +From e3dba9cfb7b8aa837f4f71681490af7ddcb320e4 Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Fri, 22 Nov 2013 14:59:51 +0100 -Subject: [PATCH 058/114] ASoC: Add support for PCM5102A codec +Subject: [PATCH 058/128] ASoC: Add support for PCM5102A codec Some definitions to support the PCM5102A codec by Texas Instruments. @@ -117168,7 +117168,7 @@ Signed-off-by: Florian Meier create mode 100644 sound/soc/codecs/pcm5102a.c diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig -index 649e92a..ba4aad4 100644 +index 7ef3a0c..4308f90 100644 --- a/sound/soc/codecs/Kconfig +++ b/sound/soc/codecs/Kconfig @@ -100,6 +100,7 @@ config SND_SOC_ALL_CODECS @@ -117179,9 +117179,9 @@ index 649e92a..ba4aad4 100644 select SND_SOC_RT5631 if I2C select SND_SOC_RT5640 if I2C select SND_SOC_RT5645 if I2C -@@ -630,6 +631,10 @@ config SND_SOC_RT5514 - config SND_SOC_RT5616 +@@ -631,6 +632,10 @@ config SND_SOC_RT5616 tristate "Realtek RT5616 CODEC" + depends on I2C +config SND_SOC_PCM5102A + tristate @@ -117287,10 +117287,10 @@ index 0000000..7c6598e +MODULE_AUTHOR("Florian Meier "); +MODULE_LICENSE("GPL v2"); -From 49142e5a7faec4059b97245bb91b5b4c5ab243e6 Mon Sep 17 00:00:00 2001 +From a56d224ad5eeba041e80fd5f2b0c15dfa4bf97dd Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Fri, 22 Nov 2013 19:19:08 +0100 -Subject: [PATCH 059/114] ASoC: Add support for HifiBerry DAC +Subject: [PATCH 059/128] ASoC: Add support for HifiBerry DAC This adds a machine driver for the HifiBerry DAC. It is a sound card that can @@ -117461,10 +117461,10 @@ index 0000000..29ecc08 +MODULE_DESCRIPTION("ASoC Driver for HifiBerry DAC"); +MODULE_LICENSE("GPL v2"); -From a2bfef45c070bc2ac4990f930c03f6bf71c80eb3 Mon Sep 17 00:00:00 2001 +From c4e4c5c554cf6b8928225c29ec5958a3bd8d3807 Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Mon, 25 Jan 2016 15:48:59 +0000 -Subject: [PATCH 060/114] ASoC: Add support for Rpi-DAC +Subject: [PATCH 060/128] ASoC: Add support for Rpi-DAC --- sound/soc/bcm/Kconfig | 7 +++ @@ -117630,7 +117630,7 @@ index 0000000..59dc89e +MODULE_DESCRIPTION("ASoC Driver for RPi-DAC"); +MODULE_LICENSE("GPL v2"); diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig -index ba4aad4..214af16 100644 +index 4308f90..513ab55 100644 --- a/sound/soc/codecs/Kconfig +++ b/sound/soc/codecs/Kconfig @@ -101,6 +101,7 @@ config SND_SOC_ALL_CODECS @@ -117641,9 +117641,9 @@ index ba4aad4..214af16 100644 select SND_SOC_RT5631 if I2C select SND_SOC_RT5640 if I2C select SND_SOC_RT5645 if I2C -@@ -631,6 +632,14 @@ config SND_SOC_RT5514 - config SND_SOC_RT5616 +@@ -632,6 +633,14 @@ config SND_SOC_RT5616 tristate "Realtek RT5616 CODEC" + depends on I2C +config SND_SOC_RT298 + tristate @@ -117752,10 +117752,10 @@ index 0000000..afe1b41 +MODULE_AUTHOR("Florian Meier "); +MODULE_LICENSE("GPL v2"); -From 6328cc72836700f65568fd7b69e5cc81eb5aecb8 Mon Sep 17 00:00:00 2001 +From 3ad62a21c1c7938e4cc463a506edbcef39cab0b4 Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Wed, 15 Jan 2014 21:41:23 +0100 -Subject: [PATCH 061/114] ASoC: wm8804: Implement MCLK configuration options, +Subject: [PATCH 061/128] 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 @@ -117795,10 +117795,10 @@ index 8d91470..5795fb1 100644 #define WM8804_RATES (SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_44100 | \ SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_64000 | \ -From 6c0cc4423bccc53163746eb1ff6d4a44d1358b76 Mon Sep 17 00:00:00 2001 +From 60400a74ef8d44c4545feda79345db64b9f0b8c6 Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Wed, 15 Jan 2014 21:42:08 +0100 -Subject: [PATCH 062/114] ASoC: BCM:Add support for HiFiBerry Digi. Driver is +Subject: [PATCH 062/128] ASoC: BCM:Add support for HiFiBerry Digi. Driver is based on the patched WM8804 driver. Signed-off-by: Daniel Matuschek @@ -118086,10 +118086,10 @@ index 0000000..9840e15 +MODULE_DESCRIPTION("ASoC Driver for HifiBerry Digi"); +MODULE_LICENSE("GPL v2"); -From 6e7576347357e152cab8a18b678fe679ec81b68f Mon Sep 17 00:00:00 2001 +From e22c980982209dd830ef6e56d00a6deec240d1c6 Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Thu, 16 Jan 2014 07:36:35 +0100 -Subject: [PATCH 063/114] ASoC: wm8804: Set idle_bias_off to false Idle bias +Subject: [PATCH 063/128] ASoC: wm8804: Set idle_bias_off to false Idle bias has been change to remove warning on driver startup Signed-off-by: Daniel Matuschek @@ -118111,10 +118111,10 @@ index 5795fb1..c846716 100644 .dapm_widgets = wm8804_dapm_widgets, .num_dapm_widgets = ARRAY_SIZE(wm8804_dapm_widgets), -From f03a1430b5f631cfac3bf79d7b0266d628627a39 Mon Sep 17 00:00:00 2001 +From 2c9fcfed0b3393c63404d6a2324b34bb9d17738f Mon Sep 17 00:00:00 2001 From: Gordon Garrity Date: Sat, 8 Mar 2014 16:56:57 +0000 -Subject: [PATCH 064/114] Add IQaudIO Sound Card support for Raspberry Pi +Subject: [PATCH 064/128] Add IQaudIO Sound Card support for Raspberry Pi Set a limit of 0dB on Digital Volume Control @@ -118312,10 +118312,10 @@ index 0000000..a5eaa9e +MODULE_DESCRIPTION("ASoC Driver for IQAudio DAC"); +MODULE_LICENSE("GPL v2"); -From 8ca6dfd134bd0117e548b050e0af99bd09f1fd92 Mon Sep 17 00:00:00 2001 +From b1bac050dcdd1f4bf5cb6fdef43415ae3b400345 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 14 Jul 2014 22:02:09 +0100 -Subject: [PATCH 065/114] hid: Reduce default mouse polling interval to 60Hz +Subject: [PATCH 065/128] hid: Reduce default mouse polling interval to 60Hz Reduces overhead when using X --- @@ -118351,10 +118351,10 @@ index ae83af6..4a7af9d 100644 ret = -ENOMEM; if (usb_endpoint_dir_in(endpoint)) { -From 84f1f5340ba06631612745253d8989998e324f5a Mon Sep 17 00:00:00 2001 +From 48431c319f74c294959735627097a13dd72317a7 Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Mon, 4 Aug 2014 10:06:56 +0200 -Subject: [PATCH 066/114] Added support for HiFiBerry DAC+ +Subject: [PATCH 066/128] 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. @@ -118968,10 +118968,10 @@ index 047c489..090fe0e 100644 dev_err(dev, "No LRCLK?\n"); return -EINVAL; -From 85af785da011ab32246855f5d2bbb57354e66feb Mon Sep 17 00:00:00 2001 +From e1d68f6a427e98aaa1ffacd68732cc6cc806f909 Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Mon, 4 Aug 2014 11:09:58 +0200 -Subject: [PATCH 067/114] Added driver for HiFiBerry Amp amplifier add-on board +Subject: [PATCH 067/128] 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. @@ -119170,7 +119170,7 @@ index 0000000..0bb12e4 +MODULE_DESCRIPTION("ASoC driver for HiFiBerry-AMP"); +MODULE_LICENSE("GPL v2"); diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig -index 214af16..06be5a2 100644 +index 513ab55..ebcfbfd 100644 --- a/sound/soc/codecs/Kconfig +++ b/sound/soc/codecs/Kconfig @@ -129,6 +129,7 @@ config SND_SOC_ALL_CODECS @@ -119181,7 +119181,7 @@ index 214af16..06be5a2 100644 select SND_SOC_TLV320AIC26 if SPI_MASTER select SND_SOC_TLV320AIC31XX if I2C select SND_SOC_TLV320AIC32X4 if I2C -@@ -758,6 +759,9 @@ config SND_SOC_TFA9879 +@@ -759,6 +760,9 @@ config SND_SOC_TFA9879 tristate "NXP Semiconductors TFA9879 amplifier" depends on I2C @@ -119803,10 +119803,10 @@ index 0000000..8f019e0 + +#endif /* _TAS5713_H */ -From f8bae62b0dd99d5820498f1e20e77d366af8dcfe Mon Sep 17 00:00:00 2001 +From f6bb4896d087f846d7276d263368b28f81a512d6 Mon Sep 17 00:00:00 2001 From: Ryan Coe Date: Sat, 31 Jan 2015 18:25:49 -0700 -Subject: [PATCH 068/114] Update ds1307 driver for device-tree support +Subject: [PATCH 068/128] Update ds1307 driver for device-tree support Signed-off-by: Ryan Coe --- @@ -119814,7 +119814,7 @@ Signed-off-by: Ryan Coe 1 file changed, 8 insertions(+) diff --git a/drivers/rtc/rtc-ds1307.c b/drivers/rtc/rtc-ds1307.c -index b2156ee..4ba33ee 100644 +index ecb7dba..f0a699c 100644 --- a/drivers/rtc/rtc-ds1307.c +++ b/drivers/rtc/rtc-ds1307.c @@ -1605,6 +1605,14 @@ static int ds1307_remove(struct i2c_client *client) @@ -119833,10 +119833,10 @@ index b2156ee..4ba33ee 100644 .driver = { .name = "rtc-ds1307", -From 095e4b2962f86a593d2ee02655e5a4ad03701fba Mon Sep 17 00:00:00 2001 +From 313cf3f715ffe2855d96dd5359fe52e6fcaad125 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 6 Feb 2015 13:50:57 +0000 -Subject: [PATCH 069/114] BCM270x_DT: Add pwr_led, and the required "input" +Subject: [PATCH 069/128] BCM270x_DT: Add pwr_led, and the required "input" trigger The "input" trigger makes the associated GPIO an input. This is to support @@ -120009,10 +120009,10 @@ index f203a8f..555cf15 100644 /* Set LED brightness level * Must not sleep. Use brightness_set_blocking for drivers -From 1cfd22d5f3cbc9b1c6eadee234f07e9285ae46fe Mon Sep 17 00:00:00 2001 +From 1662aa19988c2374eafde021ce12a5370142fb4b Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 27 Feb 2015 15:10:24 +0000 -Subject: [PATCH 070/114] enc28j60: Add device tree compatible string and an +Subject: [PATCH 070/128] enc28j60: Add device tree compatible string and an overlay --- @@ -120041,10 +120041,10 @@ index 86ea17e..a1b20c1 100644 .probe = enc28j60_probe, .remove = enc28j60_remove, -From 28eeb1b06004f5a4e3e89f516e4678ca3c4c82d9 Mon Sep 17 00:00:00 2001 +From 5a47a1eb756677bd50194c050580bf775848d078 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Wed, 25 Mar 2015 09:26:17 +0100 -Subject: [PATCH 071/114] Add driver for rpi-proto +Subject: [PATCH 071/128] 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 @@ -120260,10 +120260,10 @@ index 0000000..9db678e +MODULE_DESCRIPTION("ASoC Driver for Raspberry Pi connected to PROTO board (WM8731)"); +MODULE_LICENSE("GPL"); -From 6f2334146dea18d259dba83c9f89b42caba6efab Mon Sep 17 00:00:00 2001 +From a9485a67d50015a3ea68f4b304d2cccef6caebac Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 13 Apr 2015 17:16:29 +0100 -Subject: [PATCH 072/114] config: Add default configs +Subject: [PATCH 072/128] config: Add default configs --- arch/arm/configs/bcm2709_defconfig | 1262 +++++++++++++++++++++++++++++++++++ @@ -122818,10 +122818,10 @@ index 0000000..0b87299 +CONFIG_CRC_ITU_T=y +CONFIG_LIBCRC32C=y -From a1e6971294e3e911c461f9aefdc7882a154a0a9d Mon Sep 17 00:00:00 2001 +From 1fd64e5a68aff77d38ad583a571121b9cd36036a Mon Sep 17 00:00:00 2001 From: Gordon Hollingworth Date: Tue, 12 May 2015 14:47:56 +0100 -Subject: [PATCH 073/114] rpi-ft5406: Add touchscreen driver for pi LCD display +Subject: [PATCH 073/128] 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 @@ -123116,10 +123116,10 @@ index 0000000..b27dbee +MODULE_DESCRIPTION("Touchscreen driver for memory based FT5406"); +MODULE_LICENSE("GPL"); -From 3442c1202309c020f8dd61c76574cf414240daed Mon Sep 17 00:00:00 2001 +From 17b91da9ba4b26290be0f4efa9e7652c780a35e5 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 13 Oct 2014 11:47:53 +0100 -Subject: [PATCH 074/114] Improve __copy_to_user and __copy_from_user +Subject: [PATCH 074/128] Improve __copy_to_user and __copy_from_user performance Provide a __copy_from_user that uses memcpy. On BCM2708, use @@ -124675,10 +124675,10 @@ index 6bd1089..cd17dd1 100644 static unsigned long noinline __clear_user_memset(void __user *addr, unsigned long n) -From 0813a534e8677a29f014d32722f373e42bf2aa93 Mon Sep 17 00:00:00 2001 +From 93c62a05e8879eef0e51d42559ef60760b3a08a5 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 25 Jun 2015 12:16:11 +0100 -Subject: [PATCH 075/114] gpio-poweroff: Allow it to work on Raspberry Pi +Subject: [PATCH 075/128] 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 @@ -124713,10 +124713,10 @@ index be3d81f..a030ae9 100644 "%s: pm_power_off function already registered", __func__); -From 8fa5e143ce9adb6f48f952b89d71990b5a560ae1 Mon Sep 17 00:00:00 2001 +From d1c5cc52c63b362e97f15ccf1767ced2a6f477b2 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 14 Jul 2015 14:32:47 +0100 -Subject: [PATCH 076/114] mfd: Add Raspberry Pi Sense HAT core driver +Subject: [PATCH 076/128] mfd: Add Raspberry Pi Sense HAT core driver --- drivers/input/joystick/Kconfig | 8 + @@ -125582,10 +125582,10 @@ index 0000000..56196dc + +#endif -From 8b9a3c692dcb44ba033bb131b4873e035ce5ff76 Mon Sep 17 00:00:00 2001 +From fb538428f17708631f8894c59946b1fff9739ec2 Mon Sep 17 00:00:00 2001 From: Jan Grulich Date: Mon, 24 Aug 2015 16:03:47 +0100 -Subject: [PATCH 077/114] RaspiDAC3 support +Subject: [PATCH 077/128] RaspiDAC3 support Signed-off-by: Jan Grulich @@ -125834,10 +125834,10 @@ index 0000000..e7422e2 +MODULE_DESCRIPTION("ASoC Driver for RaspiDAC Rev.3x"); +MODULE_LICENSE("GPL v2"); -From 0e83954993c856c53c4bccb3a1987bff50e58533 Mon Sep 17 00:00:00 2001 +From 184fc20f37ddaec2ca30e95406cf6a5a0f21d08a Mon Sep 17 00:00:00 2001 From: Jan Grulich Date: Mon, 24 Aug 2015 16:02:34 +0100 -Subject: [PATCH 078/114] tpa6130a2: Add headphone switch control +Subject: [PATCH 078/128] tpa6130a2: Add headphone switch control Signed-off-by: Jan Grulich --- @@ -125928,10 +125928,10 @@ index 11d85c5..3caaa17 100644 /* -From 4e521b9a6f05e7f2b5ed358804ee6c36d1c23c4e Mon Sep 17 00:00:00 2001 +From 72db0adcf4e743aa3494dcf0d7efd7aa2aa74de8 Mon Sep 17 00:00:00 2001 From: P33M Date: Wed, 21 Oct 2015 14:55:21 +0100 -Subject: [PATCH 079/114] rpi_display: add backlight driver and overlay +Subject: [PATCH 079/128] 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 @@ -126100,10 +126100,10 @@ index 0000000..14a0d9b +MODULE_DESCRIPTION("Raspberry Pi mailbox based Backlight Driver"); +MODULE_LICENSE("GPL"); -From 5ecd9e700a81663147a2457cef2a93fd5ae621cd Mon Sep 17 00:00:00 2001 +From 869399a0cdc9d6d3ae124453cf3091c1e980e3b0 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 11 Nov 2015 11:38:59 +0000 -Subject: [PATCH 080/114] scripts: Multi-platform support for mkknlimg and +Subject: [PATCH 080/128] scripts: Multi-platform support for mkknlimg and knlinfo The firmware uses tags in the kernel trailer to choose which dtb file @@ -126352,10 +126352,10 @@ index 3998d43..005f404 100755 - return (($val eq 'y') || ($val eq '1')); -} -From cc4993db27b70169abaecdbbc2e5131c10a7c2b2 Mon Sep 17 00:00:00 2001 +From ecb161ae52a143370ca14f75b80256031d1b8a95 Mon Sep 17 00:00:00 2001 From: Craig Roberts Date: Tue, 16 Feb 2016 10:03:42 +0000 -Subject: [PATCH 081/114] Updated smsc95xx driver to check for a valid MAC +Subject: [PATCH 081/128] Updated smsc95xx driver to check for a valid MAC address in eeprom before using smsc95xx.macaddr parameter passed on command line. @@ -126395,10 +126395,10 @@ index 08ced57..a61bd08 100644 netif_dbg(dev, ifup, dev->net, "MAC address set to eth_random_addr\n"); } -From 2a1212d768fc0b6304908ca72aa0fb151c4d33cf Mon Sep 17 00:00:00 2001 +From 21e96baed27697c3de1fd9835b54f7f942c9575a Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 23 Feb 2016 19:56:04 +0000 -Subject: [PATCH 082/114] bcm2835-virtgpio: Virtual GPIO driver +Subject: [PATCH 082/128] bcm2835-virtgpio: Virtual GPIO driver Add a virtual GPIO driver that uses the firmware mailbox interface to request that the VPU toggles LEDs. @@ -126624,10 +126624,10 @@ index 0000000..f3e0f16 +MODULE_DESCRIPTION("brcmvirt GPIO driver"); +MODULE_ALIAS("platform:brcmvirt-gpio"); -From 50af5c701f50215b5ce53f54d40ec9682f66dd6b Mon Sep 17 00:00:00 2001 +From af2491daa4e6ccee89b554c46a737b958fac90c3 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 4 Mar 2016 12:49:09 +0000 -Subject: [PATCH 083/114] DRM_VC4: Allow to be built for ARCH_BCM270x +Subject: [PATCH 083/128] DRM_VC4: Allow to be built for ARCH_BCM270x --- drivers/gpu/drm/vc4/Kconfig | 2 +- @@ -126646,10 +126646,10 @@ index 5848104..870fea5 100644 select DRM_KMS_HELPER select DRM_KMS_CMA_HELPER -From 9771718ad680a80b06fe3d20ac2851ccd78115cf Mon Sep 17 00:00:00 2001 +From 0e0cf5508a270dacf53e9b0def67ab079825292a Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 17 Dec 2015 13:37:07 +0000 -Subject: [PATCH 084/114] hci_h5: Don't send conf_req when ACTIVE +Subject: [PATCH 084/128] 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. @@ -126672,10 +126672,10 @@ index 0879d64..5161ab3 100644 if (H5_HDR_LEN(hdr) > 2) h5->tx_win = (data[2] & 0x07); -From 93e515c0f77abfacf54ccbc12b4d94618e0b423d Mon Sep 17 00:00:00 2001 +From 116ee2ac84dd90fe54dadd7db6622da9af1d7820 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 23 Feb 2016 17:26:48 +0000 -Subject: [PATCH 085/114] amba_pl011: Don't use DT aliases for numbering +Subject: [PATCH 085/128] 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 @@ -126704,10 +126704,10 @@ index 7c198e0..4f9e97b 100644 uap->old_cr = 0; uap->port.dev = dev; -From b1fc98ab68bbf110e2c839a25dc3c09eb0fd5d22 Mon Sep 17 00:00:00 2001 +From ab5b916299772f6dab566c72c08c5b3a181f723d Mon Sep 17 00:00:00 2001 From: wm4 Date: Wed, 13 Jan 2016 19:41:45 +0100 -Subject: [PATCH 086/114] bcm2835-pcm: Numerous enhancements +Subject: [PATCH 086/128] bcm2835-pcm: Numerous enhancements bcm2835: extend allowed range of channels and samplerates @@ -127550,10 +127550,10 @@ index af3e6eb..5f4409f 100644 +#endif // _VC_AUDIO_DEFS_H_ \ No newline at end of file -From 799752a785774372412162ca01eba8f21518c833 Mon Sep 17 00:00:00 2001 +From 7c1606d95e3e08f814cdccf280ef8213a00974ac Mon Sep 17 00:00:00 2001 From: Pantelis Antoniou Date: Wed, 3 Dec 2014 13:23:28 +0200 -Subject: [PATCH 087/114] OF: DT-Overlay configfs interface +Subject: [PATCH 087/128] 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. @@ -127969,10 +127969,10 @@ index 0000000..7b66deb +} +late_initcall(of_cfs_init); -From 8ac9864a4bd3d7b096fc385db58d39b53da206f3 Mon Sep 17 00:00:00 2001 +From 47611bd3ee6a56a26d0b69a2d48ac77da9d8fa32 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 13 Mar 2015 12:43:36 +0000 -Subject: [PATCH 088/114] Protect __release_resource against resources without +Subject: [PATCH 088/128] Protect __release_resource against resources without parents Without this patch, removing a device tree overlay can crash here. @@ -128000,10 +128000,10 @@ index 9b5f044..f8a9af6 100644 for (;;) { tmp = *p; -From 91a49d58dc66d3523951fe8c810ce6cf224b0074 Mon Sep 17 00:00:00 2001 +From 17e14b659be57597820ce9eae76a509db9c20457 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 13 Mar 2015 20:00:21 +0000 -Subject: [PATCH 089/114] BCM270X_DT: Add a .dtbo target, use for overlays +Subject: [PATCH 089/128] BCM270X_DT: Add a .dtbo target, use for overlays Change the filenames and extensions to keep the pre-DDT style of overlay (-overlay.dtb) distinct from new ones that use a @@ -128086,10 +128086,10 @@ index ddf83d0..c819ddc 100644 # Bzip2 -From 96fd3ebbca3c81575bf3dc7681c0f67243fc1af3 Mon Sep 17 00:00:00 2001 +From ca21d44f0773e3c41f10c0b1d5bd2ed33b978f0c Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 29 May 2015 11:18:58 +0100 -Subject: [PATCH 090/114] scripts/knlinfo: Decode DDTK atom +Subject: [PATCH 090/128] scripts/knlinfo: Decode DDTK atom Show the DDTK atom as being a boolean. @@ -128120,10 +128120,10 @@ index b9ef124..263ec93 100755 sub format_int -From 5ba639e7dfecaa2341b48645ea6297469cb644fd Mon Sep 17 00:00:00 2001 +From c32d1a5dedfc7a5778beb3f500964079a9b83d9f Mon Sep 17 00:00:00 2001 From: Cheong2K Date: Fri, 26 Feb 2016 18:20:10 +0800 -Subject: [PATCH 091/114] brcm: adds support for BCM43341 wifi +Subject: [PATCH 091/128] brcm: adds support for BCM43341 wifi --- drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c | 2 ++ @@ -128163,10 +128163,10 @@ index 699f2c2..15598b3 100644 #define BRCM_CC_4335_CHIP_ID 0x4335 #define BRCM_CC_4339_CHIP_ID 0x4339 -From 469393b56eef50bc105c7508c4a35bc66cc120ce Mon Sep 17 00:00:00 2001 +From 1b9297e869e6e265efd6d50934996c389a2f348a Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 9 Mar 2016 17:25:59 +0000 -Subject: [PATCH 092/114] brcmfmac: Disable power management +Subject: [PATCH 092/128] brcmfmac: Disable power management Disable wireless power saving in the brcmfmac WLAN driver. This is a temporary measure until the connectivity loss resulting from power @@ -128191,10 +128191,10 @@ index d5c2a27..5a08f59 100644 if (!check_vif_up(ifp->vif)) { -From 8077a80f7213a87ae6ee2adc25799fec6e1bfe4d Mon Sep 17 00:00:00 2001 +From 2266e5fa610f884241404c3a8c7f92071bda1523 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Fri, 22 Jan 2016 13:06:39 -0800 -Subject: [PATCH 093/114] drm/vc4: Add a debugfs node for tracking execution +Subject: [PATCH 093/128] drm/vc4: Add a debugfs node for tracking execution state. Signed-off-by: Eric Anholt @@ -128254,10 +128254,10 @@ index 8d4384f..aa4517c 100644 vc4_queue_hangcheck(struct drm_device *dev) { -From 3fc260b067c746366f51c43394ac398b3155b097 Mon Sep 17 00:00:00 2001 +From ca44cf7fd4d8877b8b5c3b5ca35d8d3ada4575e2 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 25 Jan 2016 13:03:33 -0800 -Subject: [PATCH 094/114] drm/vc4: Include vc4_drm.h in uapi in downstream +Subject: [PATCH 094/128] drm/vc4: Include vc4_drm.h in uapi in downstream build. Signed-off-by: Eric Anholt @@ -128278,10 +128278,10 @@ index 9355dd8..68828bf 100644 header-y += vmwgfx_drm.h header-y += msm_drm.h -From 05001f87c74655bc0b286e53494dfad5ac3bc5e7 Mon Sep 17 00:00:00 2001 +From 4f216ea04bdb48d843a2b0608419ad5ed0029916 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 23 Mar 2016 17:22:10 +0000 -Subject: [PATCH 095/114] DT configfs: Fix build errors on other platforms +Subject: [PATCH 095/128] DT configfs: Fix build errors on other platforms Signed-off-by: Phil Elwell --- @@ -128310,10 +128310,10 @@ index 7b66deb..168b9d3 100644 if (overlay->dtbo == NULL) -From 440679f12679191111976b233adfeec72263860e Mon Sep 17 00:00:00 2001 +From 8f184c363213d9ada37b8c74343ec2d658221e0f Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 10 Aug 2015 09:49:15 +0100 -Subject: [PATCH 096/114] scripts/dtc: Update to upstream version 1.4.1 +Subject: [PATCH 096/128] scripts/dtc: Update to upstream version 1.4.1 Includes the new localfixups format. @@ -131149,10 +131149,10 @@ index 11d93e6..2595dfd 100644 -#define DTC_VERSION "DTC 1.4.1-gb06e55c8" +#define DTC_VERSION "DTC 1.4.1-g25efc119" -From a4862ba9bf7e56d3c2e8556c19eda52fc0f6b9c4 Mon Sep 17 00:00:00 2001 +From 4c12f60fffe5b63af8de0eac995c44390ece63cf Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 31 Mar 2016 16:49:52 +0100 -Subject: [PATCH 097/114] config: Enabled IPV6_SUBTREES +Subject: [PATCH 097/128] config: Enabled IPV6_SUBTREES --- arch/arm/configs/bcm2709_defconfig | 1 + @@ -131184,10 +131184,10 @@ index 0b87299..bfb6936 100644 CONFIG_IP_ROUTE_VERBOSE=y CONFIG_IP_PNP=y -From 042c70e53211e4062dff7ddf59a7b360b5370736 Mon Sep 17 00:00:00 2001 +From 27f2eb72b8b9471052903ee33fcce8d4a3d37d87 Mon Sep 17 00:00:00 2001 From: Slawomir Stepien Date: Sun, 3 Apr 2016 13:11:58 +0200 -Subject: [PATCH 098/114] [media]: bcm2835-camera: fix compilation error +Subject: [PATCH 098/128] [media]: bcm2835-camera: fix compilation error There is an error when compiling rpi-4.6.y branch: CC [M] drivers/media/platform/bcm2835/bcm2835-camera.o @@ -131219,10 +131219,10 @@ index fbf89a2..fd20d1e 100644 unsigned int sizes[], void *alloc_ctxs[]) { -From 7eb6433554a5b01c7aded991216424b7c3a0561c Mon Sep 17 00:00:00 2001 +From 5c9cccb7edc38644ece83569794fa4d8e46d4196 Mon Sep 17 00:00:00 2001 From: Slawomir Stepien Date: Sun, 3 Apr 2016 18:59:57 +0200 -Subject: [PATCH 099/114] DT configfs: fix build error +Subject: [PATCH 099/128] DT configfs: fix build error There is an error when compiling rpi-4.6.y branch: CC drivers/of/configfs.o @@ -131273,10 +131273,10 @@ index 168b9d3..68f889d 100644 ret = configfs_register_subsystem(&of_cfs_subsys); if (ret != 0) { -From 851b603db5ec7c276c4219ac92c0b085abb90f00 Mon Sep 17 00:00:00 2001 +From 5392dddf678c4b5ca2acf6ec8f703751041fe88f Mon Sep 17 00:00:00 2001 From: dienet Date: Wed, 13 Apr 2016 19:07:46 +0200 -Subject: [PATCH 100/114] vchiq_arm: do not use page_cache_release(page) macro +Subject: [PATCH 100/128] vchiq_arm: do not use page_cache_release(page) macro (#1403) This macro is gone since 1fa64f198b9f8d6ec0f7aec7c18dc94684391140. @@ -131323,10 +131323,10 @@ index a5cc385..dd62676 100644 kfree(pages); } -From ba7d03eecfa21c6dc350b236beaad715acac723f Mon Sep 17 00:00:00 2001 +From 6b8a01dbcf2cc17654701ebee22a895a0beb8e96 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 18 Apr 2016 23:00:31 +0100 -Subject: [PATCH 101/114] vchiq: Upate to match get_user_pages prototype +Subject: [PATCH 101/128] vchiq: Upate to match get_user_pages prototype --- drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c | 2 +- @@ -131361,10 +131361,10 @@ index dd62676..a76060c 100644 num_pages, /* len */ 0, /* write */ -From 0ae92b6f6101216e8f6aa5d68b9adad458e91ae7 Mon Sep 17 00:00:00 2001 +From a80463d6527ae162eaa712237fdbb9b1fc75312d Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 21 Apr 2016 13:49:32 +0100 -Subject: [PATCH 102/114] vchiq_arm: Add completion records under the mutex +Subject: [PATCH 102/128] vchiq_arm: Add completion records under the mutex An issue was observed when flushing openmax components which generate a large number of messages returning @@ -131427,10 +131427,10 @@ index a76060c..51e6018 100644 return VCHIQ_SUCCESS; -From b203738cc5b4bd877e5f1db0d3e745b5865507aa Mon Sep 17 00:00:00 2001 +From 9ad2f3fbb9a0d4c288e811ee432dad26d509e68a Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 21 Apr 2016 15:44:14 +0100 -Subject: [PATCH 103/114] bcm2835-i2s: Reduce the TX DREQ threshold +Subject: [PATCH 103/128] bcm2835-i2s: Reduce the TX DREQ threshold TX FIFO overrun is thought to be the cause of channel swapping, so reducing the DREQ threshold seems reasonable and appears to be @@ -131478,10 +131478,10 @@ index c7f3fc7..8064e3f 100644 /* Clear FIFOs */ bcm2835_i2s_clear_fifos(dev, true, true); -From 3c3beab16b1e6d776d25d1867516bcaa298e58a3 Mon Sep 17 00:00:00 2001 +From c4b680ef62b426b38a55f9366959fafccc7d75af Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 4 Apr 2016 16:03:18 +0100 -Subject: [PATCH 104/114] bcm2835-sdhost: Firmware manages the clock divisor +Subject: [PATCH 104/128] bcm2835-sdhost: Firmware manages the clock divisor The bcm2835-sdhost driver hands control of the CDIV clock divisor register to matching firmware, allowing it to adjust to a changing @@ -131694,10 +131694,10 @@ index f43aae0..54087b2 100644 if (ret) goto err; -From 60b77dc3f91119ad7cb3a2ae39797754575bc275 Mon Sep 17 00:00:00 2001 +From ba4aee54bde1afe0832e4f3a08d774baab85d4d1 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 11 Apr 2016 12:50:58 +0100 -Subject: [PATCH 105/114] bcm2835-sdhost: Reset the clock in task context +Subject: [PATCH 105/128] bcm2835-sdhost: Reset the clock in task context Since reprogramming the clock can now involve a round-trip to the firmware it must not be done at atomic context, and a tasklet @@ -131804,10 +131804,10 @@ index 54087b2..a57faed 100644 host->pio_limit = 1; host->max_delay = 1; /* Warn if over 1ms */ -From c439a5c39d8d64ddd8d835cac6b42550811d3581 Mon Sep 17 00:00:00 2001 +From 90f2f300c53c2f045f604012adc5c5d4ab06d111 Mon Sep 17 00:00:00 2001 From: Sam Nazarko Date: Fri, 1 Apr 2016 17:27:21 +0100 -Subject: [PATCH 106/114] add smsc95xx packetsize module_param +Subject: [PATCH 106/128] add smsc95xx packetsize module_param Signed-off-by: Sam Nazarko --- @@ -131849,10 +131849,10 @@ index a61bd08..3c23b11 100644 netif_dbg(dev, ifup, dev->net, "rx_urb_size=%ld\n", -From 1d3ef6f3ee8e621efbfcf2147d80aba94ed50a12 Mon Sep 17 00:00:00 2001 +From d45bb32b00237d1d9217f6d333963659332b0d08 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 19 Apr 2016 12:57:52 +0100 -Subject: [PATCH 107/114] bcm2835_thermal: Don't report unsupported trip type +Subject: [PATCH 107/128] bcm2835_thermal: Don't report unsupported trip type --- drivers/thermal/bcm2835-thermal.c | 34 +--------------------------------- @@ -131921,10 +131921,10 @@ index 08d8dc7..c63fb9f 100644 if (IS_ERR(tz)) { dev_err(&pdev->dev, "Failed to register the thermal device\n"); -From c1e63a730e6d4ec6d212d39f37a425fc4bbcd7a0 Mon Sep 17 00:00:00 2001 +From dba0b83a7cf6ed507afa507c16dea40b3025d68e Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Sun, 17 Apr 2016 04:44:47 -0700 -Subject: [PATCH 108/114] vmcs: Remove unused sm_cache_map_vector definition +Subject: [PATCH 108/128] vmcs: Remove unused sm_cache_map_vector definition (#1411) The code using it also ifdef'ed with 0, anyyd gcc 6 @@ -131959,10 +131959,10 @@ index 5d16e35..1db6716 100644 /* ---- Private Function Prototypes -------------------------------------- */ -From 150f46922b0f2da460cc2cd447c6c039285dce27 Mon Sep 17 00:00:00 2001 +From e10e3329413e13384b4e30708c82686c4d431db3 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 5 Apr 2016 13:01:54 +0100 -Subject: [PATCH 109/114] BCM270X_DT: Add dpi24 overlay +Subject: [PATCH 109/128] BCM270X_DT: Add dpi24 overlay Signed-off-by: Phil Elwell --- @@ -132041,10 +132041,10 @@ index 0000000..e4dbe40 + }; +}; -From 21f5b65c2dfc30fd3c75bb9ad242eed0c5f3a5d8 Mon Sep 17 00:00:00 2001 +From 6cd9fb199ed66351a75794c8cd397967ebbf7934 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 5 Apr 2016 19:40:12 +0100 -Subject: [PATCH 110/114] reboot: Use power off rather than busy spinning when +Subject: [PATCH 110/128] reboot: Use power off rather than busy spinning when halt is requested --- @@ -132069,10 +132069,10 @@ index 71a2ff9..812c15e 100644 /* -From 7e5b50942960069881572b173d745c22958e9d69 Mon Sep 17 00:00:00 2001 +From eb9810b89233b701707c0186e52454bbf471f64a Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 30 Mar 2016 17:23:15 +0100 -Subject: [PATCH 111/114] cpufreq: Temporarily ignore io_is_busy=1 +Subject: [PATCH 111/128] cpufreq: Temporarily ignore io_is_busy=1 To speed testing of the new sdhost driver that adapts to changes in core_freq, hack the on-demand governor to treat io_is_busy=1 as @@ -132103,10 +132103,10 @@ index acd8027..72c5a4c 100644 /* we need to re-evaluate prev_cpu_idle */ gov_update_cpu_data(dbs_data); -From 5852c38e95e3f81ba96c4aa8014f9267700ce90f Mon Sep 17 00:00:00 2001 +From 1e5c7460854aa8d57f108c1aafa361f30f5533e5 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 21 Apr 2016 20:24:17 +0100 -Subject: [PATCH 112/114] config: Make IPV6 a module and regenerate with +Subject: [PATCH 112/128] config: Make IPV6 a module and regenerate with defconfig --- @@ -132169,10 +132169,10 @@ index bfb6936..4cfb186 100644 CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y CONFIG_IPV6_PIMSM_V2=y -From c7bb9cf080179e9abd76a48c2cb517369590780c Mon Sep 17 00:00:00 2001 +From 74215e15a288b055a34669347d3359e81bf50b92 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 21 Apr 2016 20:31:55 +0100 -Subject: [PATCH 113/114] firmware: Add RPI_FIRMWARE_SET_SDHOST_CLOCK +Subject: [PATCH 113/128] firmware: Add RPI_FIRMWARE_SET_SDHOST_CLOCK --- include/soc/bcm2835/raspberrypi-firmware.h | 1 + @@ -132191,10 +132191,10 @@ index 73e4956..227a107 100644 /* Dispmanx TAGS */ RPI_FIRMWARE_FRAMEBUFFER_ALLOCATE = 0x00040001, -From 815cdfe7c75dbdbf13fc3d5b629ed0a68c895ef4 Mon Sep 17 00:00:00 2001 +From f38ff8219a9de9681ea94936356b96424eae2b2f Mon Sep 17 00:00:00 2001 From: dienet Date: Fri, 22 Apr 2016 21:58:41 +0200 -Subject: [PATCH 114/114] fbdev: bcm2708_fb: remove unused variable and +Subject: [PATCH 114/128] fbdev: bcm2708_fb: remove unused variable and duplicated comment (#1426) The yres varialbe is not used anywhere in this function. Also this comment looks @@ -132219,3 +132219,1188 @@ index a20539a..cae5aab 100644 print_debug("bcm2708_fb_check_var info(%p) %dx%d (%dx%d), %d, %d\n", info, info->var.xres, info->var.yres, info->var.xres_virtual, info->var.yres_virtual, (int)info->screen_size, + +From f8599fd1eb4e992be1aceb75deffb657ed5bd850 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Wed, 27 Apr 2016 16:59:24 +0100 +Subject: [PATCH 115/128] Revert "ASoC: bcm2835: move to use the clock + framework" + +This reverts commit 517e7a1537ae4663268be5d0c0ec62c563b9fc99. +--- + sound/soc/bcm/bcm2835-i2s.c | 284 ++++++++++++++++++++++++++++++++++---------- + 1 file changed, 220 insertions(+), 64 deletions(-) + +diff --git a/sound/soc/bcm/bcm2835-i2s.c b/sound/soc/bcm/bcm2835-i2s.c +index 8064e3f..c38ad99 100644 +--- a/sound/soc/bcm/bcm2835-i2s.c ++++ b/sound/soc/bcm/bcm2835-i2s.c +@@ -37,7 +37,6 @@ + #include + #include + #include +-#include + #include + + #include +@@ -47,6 +46,55 @@ + #include + #include + ++/* Clock registers */ ++#define BCM2835_CLK_PCMCTL_REG 0x00 ++#define BCM2835_CLK_PCMDIV_REG 0x04 ++ ++/* Clock register settings */ ++#define BCM2835_CLK_PASSWD (0x5a000000) ++#define BCM2835_CLK_PASSWD_MASK (0xff000000) ++#define BCM2835_CLK_MASH(v) ((v) << 9) ++#define BCM2835_CLK_FLIP BIT(8) ++#define BCM2835_CLK_BUSY BIT(7) ++#define BCM2835_CLK_KILL BIT(5) ++#define BCM2835_CLK_ENAB BIT(4) ++#define BCM2835_CLK_SRC(v) (v) ++ ++#define BCM2835_CLK_SHIFT (12) ++#define BCM2835_CLK_DIVI(v) ((v) << BCM2835_CLK_SHIFT) ++#define BCM2835_CLK_DIVF(v) (v) ++#define BCM2835_CLK_DIVF_MASK (0xFFF) ++ ++enum { ++ BCM2835_CLK_MASH_0 = 0, ++ BCM2835_CLK_MASH_1, ++ BCM2835_CLK_MASH_2, ++ BCM2835_CLK_MASH_3, ++}; ++ ++enum { ++ BCM2835_CLK_SRC_GND = 0, ++ BCM2835_CLK_SRC_OSC, ++ BCM2835_CLK_SRC_DBG0, ++ BCM2835_CLK_SRC_DBG1, ++ BCM2835_CLK_SRC_PLLA, ++ BCM2835_CLK_SRC_PLLC, ++ BCM2835_CLK_SRC_PLLD, ++ BCM2835_CLK_SRC_HDMI, ++}; ++ ++/* Most clocks are not useable (freq = 0) */ ++static const unsigned int bcm2835_clk_freq[BCM2835_CLK_SRC_HDMI+1] = { ++ [BCM2835_CLK_SRC_GND] = 0, ++ [BCM2835_CLK_SRC_OSC] = 19200000, ++ [BCM2835_CLK_SRC_DBG0] = 0, ++ [BCM2835_CLK_SRC_DBG1] = 0, ++ [BCM2835_CLK_SRC_PLLA] = 0, ++ [BCM2835_CLK_SRC_PLLC] = 0, ++ [BCM2835_CLK_SRC_PLLD] = 500000000, ++ [BCM2835_CLK_SRC_HDMI] = 0, ++}; ++ + /* I2S registers */ + #define BCM2835_I2S_CS_A_REG 0x00 + #define BCM2835_I2S_FIFO_A_REG 0x04 +@@ -110,6 +158,10 @@ + #define BCM2835_I2S_INT_RXR BIT(1) + #define BCM2835_I2S_INT_TXW BIT(0) + ++/* I2S DMA interface */ ++/* FIXME: Needs IOMMU support */ ++#define BCM2835_VCMMU_SHIFT (0x7E000000 - 0x20000000) ++ + /* General device struct */ + struct bcm2835_i2s_dev { + struct device *dev; +@@ -117,23 +169,21 @@ struct bcm2835_i2s_dev { + unsigned int fmt; + unsigned int bclk_ratio; + +- struct regmap *i2s_regmap; +- struct clk *clk; +- bool clk_prepared; ++ struct regmap *i2s_regmap; ++ struct regmap *clk_regmap; + }; + + static void bcm2835_i2s_start_clock(struct bcm2835_i2s_dev *dev) + { ++ /* Start the clock if in master mode */ + unsigned int master = dev->fmt & SND_SOC_DAIFMT_MASTER_MASK; + +- if (dev->clk_prepared) +- return; +- + switch (master) { + case SND_SOC_DAIFMT_CBS_CFS: + case SND_SOC_DAIFMT_CBS_CFM: +- clk_prepare_enable(dev->clk); +- dev->clk_prepared = true; ++ regmap_update_bits(dev->clk_regmap, BCM2835_CLK_PCMCTL_REG, ++ BCM2835_CLK_PASSWD_MASK | BCM2835_CLK_ENAB, ++ BCM2835_CLK_PASSWD | BCM2835_CLK_ENAB); + break; + default: + break; +@@ -142,9 +192,28 @@ static void bcm2835_i2s_start_clock(struct bcm2835_i2s_dev *dev) + + static void bcm2835_i2s_stop_clock(struct bcm2835_i2s_dev *dev) + { +- if (dev->clk_prepared) +- clk_disable_unprepare(dev->clk); +- dev->clk_prepared = false; ++ uint32_t clkreg; ++ int timeout = 1000; ++ ++ /* Stop clock */ ++ regmap_update_bits(dev->clk_regmap, BCM2835_CLK_PCMCTL_REG, ++ BCM2835_CLK_PASSWD_MASK | BCM2835_CLK_ENAB, ++ BCM2835_CLK_PASSWD); ++ ++ /* Wait for the BUSY flag going down */ ++ while (--timeout) { ++ regmap_read(dev->clk_regmap, BCM2835_CLK_PCMCTL_REG, &clkreg); ++ if (!(clkreg & BCM2835_CLK_BUSY)) ++ break; ++ } ++ ++ if (!timeout) { ++ /* KILL the clock */ ++ dev_err(dev->dev, "I2S clock didn't stop. Kill the clock!\n"); ++ regmap_update_bits(dev->clk_regmap, BCM2835_CLK_PCMCTL_REG, ++ BCM2835_CLK_KILL | BCM2835_CLK_PASSWD_MASK, ++ BCM2835_CLK_KILL | BCM2835_CLK_PASSWD); ++ } + } + + static void bcm2835_i2s_clear_fifos(struct bcm2835_i2s_dev *dev, +@@ -154,7 +223,8 @@ static void bcm2835_i2s_clear_fifos(struct bcm2835_i2s_dev *dev, + uint32_t syncval; + uint32_t csreg; + uint32_t i2s_active_state; +- bool clk_was_prepared; ++ uint32_t clkreg; ++ uint32_t clk_active_state; + uint32_t off; + uint32_t clr; + +@@ -168,10 +238,15 @@ static void bcm2835_i2s_clear_fifos(struct bcm2835_i2s_dev *dev, + regmap_read(dev->i2s_regmap, BCM2835_I2S_CS_A_REG, &csreg); + i2s_active_state = csreg & (BCM2835_I2S_RXON | BCM2835_I2S_TXON); + ++ regmap_read(dev->clk_regmap, BCM2835_CLK_PCMCTL_REG, &clkreg); ++ clk_active_state = clkreg & BCM2835_CLK_ENAB; ++ + /* Start clock if not running */ +- clk_was_prepared = dev->clk_prepared; +- if (!clk_was_prepared) +- bcm2835_i2s_start_clock(dev); ++ if (!clk_active_state) { ++ regmap_update_bits(dev->clk_regmap, BCM2835_CLK_PCMCTL_REG, ++ BCM2835_CLK_PASSWD_MASK | BCM2835_CLK_ENAB, ++ BCM2835_CLK_PASSWD | BCM2835_CLK_ENAB); ++ } + + /* Stop I2S module */ + regmap_update_bits(dev->i2s_regmap, BCM2835_I2S_CS_A_REG, off, 0); +@@ -205,7 +280,7 @@ static void bcm2835_i2s_clear_fifos(struct bcm2835_i2s_dev *dev, + dev_err(dev->dev, "I2S SYNC error!\n"); + + /* Stop clock if it was not running before */ +- if (!clk_was_prepared) ++ if (!clk_active_state) + bcm2835_i2s_stop_clock(dev); + + /* Restore I2S state */ +@@ -234,9 +309,19 @@ static int bcm2835_i2s_hw_params(struct snd_pcm_substream *substream, + struct snd_soc_dai *dai) + { + struct bcm2835_i2s_dev *dev = snd_soc_dai_get_drvdata(dai); ++ + unsigned int sampling_rate = params_rate(params); + unsigned int data_length, data_delay, bclk_ratio; + unsigned int ch1pos, ch2pos, mode, format; ++ unsigned int mash = BCM2835_CLK_MASH_1; ++ unsigned int divi, divf, target_frequency; ++ int clk_src = -1; ++ unsigned int master = dev->fmt & SND_SOC_DAIFMT_MASTER_MASK; ++ bool bit_master = (master == SND_SOC_DAIFMT_CBS_CFS ++ || master == SND_SOC_DAIFMT_CBS_CFM); ++ ++ bool frame_master = (master == SND_SOC_DAIFMT_CBS_CFS ++ || master == SND_SOC_DAIFMT_CBM_CFS); + uint32_t csreg; + + /* +@@ -258,12 +343,14 @@ static int bcm2835_i2s_hw_params(struct snd_pcm_substream *substream, + switch (params_format(params)) { + case SNDRV_PCM_FORMAT_S16_LE: + data_length = 16; ++ bclk_ratio = 40; + break; + case SNDRV_PCM_FORMAT_S24_LE: + data_length = 24; + break; + case SNDRV_PCM_FORMAT_S32_LE: + data_length = 32; ++ bclk_ratio = 80; + break; + default: + return -EINVAL; +@@ -272,12 +359,69 @@ static int bcm2835_i2s_hw_params(struct snd_pcm_substream *substream, + /* If bclk_ratio already set, use that one. */ + if (dev->bclk_ratio) + bclk_ratio = dev->bclk_ratio; +- else +- /* otherwise calculate a fitting block ratio */ +- bclk_ratio = 2 * data_length; + +- /* set target clock rate*/ +- clk_set_rate(dev->clk, sampling_rate * bclk_ratio); ++ /* ++ * Clock Settings ++ * ++ * The target frequency of the bit clock is ++ * sampling rate * frame length ++ * ++ * Integer mode: ++ * Sampling rates that are multiples of 8000 kHz ++ * can be driven by the oscillator of 19.2 MHz ++ * with an integer divider as long as the frame length ++ * is an integer divider of 19200000/8000=2400 as set up above. ++ * This is no longer possible if the sampling rate ++ * is too high (e.g. 192 kHz), because the oscillator is too slow. ++ * ++ * MASH mode: ++ * For all other sampling rates, it is not possible to ++ * have an integer divider. Approximate the clock ++ * with the MASH module that induces a slight frequency ++ * variance. To minimize that it is best to have the fastest ++ * clock here. That is PLLD with 500 MHz. ++ */ ++ target_frequency = sampling_rate * bclk_ratio; ++ clk_src = BCM2835_CLK_SRC_OSC; ++ mash = BCM2835_CLK_MASH_0; ++ ++ if (bcm2835_clk_freq[clk_src] % target_frequency == 0 ++ && bit_master && frame_master) { ++ divi = bcm2835_clk_freq[clk_src] / target_frequency; ++ divf = 0; ++ } else { ++ uint64_t dividend; ++ ++ if (!dev->bclk_ratio) { ++ /* ++ * Overwrite bclk_ratio, because the ++ * above trick is not needed or can ++ * not be used. ++ */ ++ bclk_ratio = 2 * data_length; ++ } ++ ++ target_frequency = sampling_rate * bclk_ratio; ++ ++ clk_src = BCM2835_CLK_SRC_PLLD; ++ mash = BCM2835_CLK_MASH_1; ++ ++ dividend = bcm2835_clk_freq[clk_src]; ++ dividend <<= BCM2835_CLK_SHIFT; ++ do_div(dividend, target_frequency); ++ divi = dividend >> BCM2835_CLK_SHIFT; ++ divf = dividend & BCM2835_CLK_DIVF_MASK; ++ } ++ ++ /* Set clock divider */ ++ regmap_write(dev->clk_regmap, BCM2835_CLK_PCMDIV_REG, BCM2835_CLK_PASSWD ++ | BCM2835_CLK_DIVI(divi) ++ | BCM2835_CLK_DIVF(divf)); ++ ++ /* Setup clock, but don't start it yet */ ++ regmap_write(dev->clk_regmap, BCM2835_CLK_PCMCTL_REG, BCM2835_CLK_PASSWD ++ | BCM2835_CLK_MASH(mash) ++ | BCM2835_CLK_SRC(clk_src)); + + /* Setup the frame format */ + format = BCM2835_I2S_CHEN; +@@ -558,7 +702,7 @@ static const struct snd_soc_dai_ops bcm2835_i2s_dai_ops = { + .trigger = bcm2835_i2s_trigger, + .hw_params = bcm2835_i2s_hw_params, + .set_fmt = bcm2835_i2s_set_dai_fmt, +- .set_bclk_ratio = bcm2835_i2s_set_dai_bclk_ratio, ++ .set_bclk_ratio = bcm2835_i2s_set_dai_bclk_ratio + }; + + static int bcm2835_i2s_dai_probe(struct snd_soc_dai *dai) +@@ -618,14 +762,34 @@ static bool bcm2835_i2s_precious_reg(struct device *dev, unsigned int reg) + }; + } + +-static const struct regmap_config bcm2835_regmap_config = { +- .reg_bits = 32, +- .reg_stride = 4, +- .val_bits = 32, +- .max_register = BCM2835_I2S_GRAY_REG, +- .precious_reg = bcm2835_i2s_precious_reg, +- .volatile_reg = bcm2835_i2s_volatile_reg, +- .cache_type = REGCACHE_RBTREE, ++static bool bcm2835_clk_volatile_reg(struct device *dev, unsigned int reg) ++{ ++ switch (reg) { ++ case BCM2835_CLK_PCMCTL_REG: ++ return true; ++ default: ++ return false; ++ }; ++} ++ ++static const struct regmap_config bcm2835_regmap_config[] = { ++ { ++ .reg_bits = 32, ++ .reg_stride = 4, ++ .val_bits = 32, ++ .max_register = BCM2835_I2S_GRAY_REG, ++ .precious_reg = bcm2835_i2s_precious_reg, ++ .volatile_reg = bcm2835_i2s_volatile_reg, ++ .cache_type = REGCACHE_RBTREE, ++ }, ++ { ++ .reg_bits = 32, ++ .reg_stride = 4, ++ .val_bits = 32, ++ .max_register = BCM2835_CLK_PCMDIV_REG, ++ .volatile_reg = bcm2835_clk_volatile_reg, ++ .cache_type = REGCACHE_RBTREE, ++ }, + }; + + static const struct snd_soc_component_driver bcm2835_i2s_component = { +@@ -654,11 +818,25 @@ static const struct snd_dmaengine_pcm_config bcm2835_dmaengine_pcm_config = { + static int bcm2835_i2s_probe(struct platform_device *pdev) + { + struct bcm2835_i2s_dev *dev; ++ int i; + int ret; +- struct resource *mem; +- void __iomem *base; +- const __be32 *addr; +- dma_addr_t dma_base; ++ struct regmap *regmap[2]; ++ struct resource *mem[2]; ++ ++ /* Request both ioareas */ ++ for (i = 0; i <= 1; i++) { ++ void __iomem *base; ++ ++ mem[i] = platform_get_resource(pdev, IORESOURCE_MEM, i); ++ base = devm_ioremap_resource(&pdev->dev, mem[i]); ++ if (IS_ERR(base)) ++ return PTR_ERR(base); ++ ++ regmap[i] = devm_regmap_init_mmio(&pdev->dev, base, ++ &bcm2835_regmap_config[i]); ++ if (IS_ERR(regmap[i])) ++ return PTR_ERR(regmap[i]); ++ } + + if (of_property_read_bool(pdev->dev.of_node, "brcm,enable-mmap")) + bcm2835_pcm_hardware.info |= +@@ -670,39 +848,17 @@ static int bcm2835_i2s_probe(struct platform_device *pdev) + if (!dev) + return -ENOMEM; + +- /* get the clock */ +- dev->clk_prepared = false; +- dev->clk = devm_clk_get(&pdev->dev, NULL); +- if (IS_ERR(dev->clk)) { +- dev_err(&pdev->dev, "could not get clk: %ld\n", +- PTR_ERR(dev->clk)); +- return PTR_ERR(dev->clk); +- } +- +- /* Request ioarea */ +- mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); +- base = devm_ioremap_resource(&pdev->dev, mem); +- if (IS_ERR(base)) +- return PTR_ERR(base); +- +- dev->i2s_regmap = devm_regmap_init_mmio(&pdev->dev, base, +- &bcm2835_regmap_config); +- if (IS_ERR(dev->i2s_regmap)) +- return PTR_ERR(dev->i2s_regmap); +- +- /* Set the DMA address - we have to parse DT ourselves */ +- addr = of_get_address(pdev->dev.of_node, 0, NULL, NULL); +- if (!addr) { +- dev_err(&pdev->dev, "could not get DMA-register address\n"); +- return -EINVAL; +- } +- dma_base = be32_to_cpup(addr); ++ dev->i2s_regmap = regmap[0]; ++ dev->clk_regmap = regmap[1]; + ++ /* Set the DMA address */ + dev->dma_data[SNDRV_PCM_STREAM_PLAYBACK].addr = +- dma_base + BCM2835_I2S_FIFO_A_REG; ++ (dma_addr_t)mem[0]->start + BCM2835_I2S_FIFO_A_REG ++ + BCM2835_VCMMU_SHIFT; + + dev->dma_data[SNDRV_PCM_STREAM_CAPTURE].addr = +- dma_base + BCM2835_I2S_FIFO_A_REG; ++ (dma_addr_t)mem[0]->start + BCM2835_I2S_FIFO_A_REG ++ + BCM2835_VCMMU_SHIFT; + + /* Set the bus width */ + dev->dma_data[SNDRV_PCM_STREAM_PLAYBACK].addr_width = + +From ea9061354eefe289f93da4827e721a19a684dca5 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Wed, 27 Apr 2016 17:43:28 +0100 +Subject: [PATCH 116/128] Revert "SUNRPC: Make NFS swap work with multipath" + +This reverts commit 15001e5a7e1e207b6bd258cd8f187814cd15b6dc. +--- + net/sunrpc/clnt.c | 66 +++++++++++++++++++++++++++++++++++-------------------- + 1 file changed, 42 insertions(+), 24 deletions(-) + +diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c +index 7e0c9bf..0693685 100644 +--- a/net/sunrpc/clnt.c ++++ b/net/sunrpc/clnt.c +@@ -2683,39 +2683,57 @@ void rpc_show_tasks(struct net *net) + #endif + + #if IS_ENABLED(CONFIG_SUNRPC_SWAP) +-static int +-rpc_clnt_swap_activate_callback(struct rpc_clnt *clnt, +- struct rpc_xprt *xprt, +- void *dummy) +-{ +- return xprt_enable_swap(xprt); +-} +- + int + rpc_clnt_swap_activate(struct rpc_clnt *clnt) + { +- if (atomic_inc_return(&clnt->cl_swapper) == 1) +- return rpc_clnt_iterate_for_each_xprt(clnt, +- rpc_clnt_swap_activate_callback, NULL); +- return 0; +-} +-EXPORT_SYMBOL_GPL(rpc_clnt_swap_activate); ++ int ret = 0; ++ struct rpc_xprt *xprt; + +-static int +-rpc_clnt_swap_deactivate_callback(struct rpc_clnt *clnt, +- struct rpc_xprt *xprt, +- void *dummy) +-{ +- xprt_disable_swap(xprt); +- return 0; ++ if (atomic_inc_return(&clnt->cl_swapper) == 1) { ++retry: ++ rcu_read_lock(); ++ xprt = xprt_get(rcu_dereference(clnt->cl_xprt)); ++ rcu_read_unlock(); ++ if (!xprt) { ++ /* ++ * If we didn't get a reference, then we likely are ++ * racing with a migration event. Wait for a grace ++ * period and try again. ++ */ ++ synchronize_rcu(); ++ goto retry; ++ } ++ ++ ret = xprt_enable_swap(xprt); ++ xprt_put(xprt); ++ } ++ return ret; + } ++EXPORT_SYMBOL_GPL(rpc_clnt_swap_activate); + + void + rpc_clnt_swap_deactivate(struct rpc_clnt *clnt) + { +- if (atomic_dec_if_positive(&clnt->cl_swapper) == 0) +- rpc_clnt_iterate_for_each_xprt(clnt, +- rpc_clnt_swap_deactivate_callback, NULL); ++ struct rpc_xprt *xprt; ++ ++ if (atomic_dec_if_positive(&clnt->cl_swapper) == 0) { ++retry: ++ rcu_read_lock(); ++ xprt = xprt_get(rcu_dereference(clnt->cl_xprt)); ++ rcu_read_unlock(); ++ if (!xprt) { ++ /* ++ * If we didn't get a reference, then we likely are ++ * racing with a migration event. Wait for a grace ++ * period and try again. ++ */ ++ synchronize_rcu(); ++ goto retry; ++ } ++ ++ xprt_disable_swap(xprt); ++ xprt_put(xprt); ++ } + } + EXPORT_SYMBOL_GPL(rpc_clnt_swap_deactivate); + #endif /* CONFIG_SUNRPC_SWAP */ + +From ee0843d81af9de479241f6844910fe774fc98bc3 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Thu, 28 Apr 2016 12:05:49 +0100 +Subject: [PATCH 117/128] Revert "bcm2835-i2s: Reduce the TX DREQ threshold" + +This reverts commit 01ede038c816ae19fe2676ecf7bef0f40e1b5446. +--- + sound/soc/bcm/bcm2835-i2s.c | 21 +++++++-------------- + 1 file changed, 7 insertions(+), 14 deletions(-) + +diff --git a/sound/soc/bcm/bcm2835-i2s.c b/sound/soc/bcm/bcm2835-i2s.c +index c38ad99..a89f0d2 100644 +--- a/sound/soc/bcm/bcm2835-i2s.c ++++ b/sound/soc/bcm/bcm2835-i2s.c +@@ -547,22 +547,15 @@ static int bcm2835_i2s_hw_params(struct snd_pcm_substream *substream, + + /* Setup the DMA parameters */ + regmap_update_bits(dev->i2s_regmap, BCM2835_I2S_CS_A_REG, +- BCM2835_I2S_RXTHR(3) +- | BCM2835_I2S_TXTHR(3) +- | BCM2835_I2S_DMAEN, +- BCM2835_I2S_RXTHR(1) +- | BCM2835_I2S_TXTHR(1) +- | BCM2835_I2S_DMAEN); ++ BCM2835_I2S_RXTHR(1) ++ | BCM2835_I2S_TXTHR(1) ++ | BCM2835_I2S_DMAEN, 0xffffffff); + + regmap_update_bits(dev->i2s_regmap, BCM2835_I2S_DREQ_A_REG, +- BCM2835_I2S_TX_PANIC(0x7f) +- | BCM2835_I2S_RX_PANIC(0x7f) +- | BCM2835_I2S_TX(0x7f) +- | BCM2835_I2S_RX(0x7f), +- BCM2835_I2S_TX_PANIC(0x10) +- | BCM2835_I2S_RX_PANIC(0x30) +- | BCM2835_I2S_TX(0x20) +- | BCM2835_I2S_RX(0x20)); ++ BCM2835_I2S_TX_PANIC(0x10) ++ | BCM2835_I2S_RX_PANIC(0x30) ++ | BCM2835_I2S_TX(0x30) ++ | BCM2835_I2S_RX(0x20), 0xffffffff); + + /* Clear FIFOs */ + bcm2835_i2s_clear_fifos(dev, true, true); + +From 01b52de12d447f2face2e0889664b540f66c940c Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Thu, 28 Apr 2016 12:05:59 +0100 +Subject: [PATCH 118/128] Revert "bcm2835-i2s: Enable MMAP support via a DT + property" + +This reverts commit 9aeeaa19f04bf6e176c3b670fb4b8cacb0aca444. +--- + sound/soc/bcm/bcm2835-i2s.c | 7 +------ + 1 file changed, 1 insertion(+), 6 deletions(-) + +diff --git a/sound/soc/bcm/bcm2835-i2s.c b/sound/soc/bcm/bcm2835-i2s.c +index a89f0d2..c1af739 100644 +--- a/sound/soc/bcm/bcm2835-i2s.c ++++ b/sound/soc/bcm/bcm2835-i2s.c +@@ -789,7 +789,7 @@ static const struct snd_soc_component_driver bcm2835_i2s_component = { + .name = "bcm2835-i2s-comp", + }; + +-static struct snd_pcm_hardware bcm2835_pcm_hardware = { ++static const struct snd_pcm_hardware bcm2835_pcm_hardware = { + .info = SNDRV_PCM_INFO_INTERLEAVED | + SNDRV_PCM_INFO_JOINT_DUPLEX, + .formats = SNDRV_PCM_FMTBIT_S16_LE | +@@ -831,11 +831,6 @@ static int bcm2835_i2s_probe(struct platform_device *pdev) + return PTR_ERR(regmap[i]); + } + +- if (of_property_read_bool(pdev->dev.of_node, "brcm,enable-mmap")) +- bcm2835_pcm_hardware.info |= +- SNDRV_PCM_INFO_MMAP | +- SNDRV_PCM_INFO_MMAP_VALID; +- + dev = devm_kzalloc(&pdev->dev, sizeof(*dev), + GFP_KERNEL); + if (!dev) + +From 8d4aa9ae0cc918d6aff794bd2c097570acffd5ff Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Thu, 28 Apr 2016 12:06:07 +0100 +Subject: [PATCH 119/128] Revert "bcm2835-i2s: Register PCM device" + +This reverts commit 37fee13e055338fcb70c9f215470d4dbadb3d72d. +--- + sound/soc/bcm/bcm2835-i2s.c | 23 +---------------------- + 1 file changed, 1 insertion(+), 22 deletions(-) + +diff --git a/sound/soc/bcm/bcm2835-i2s.c b/sound/soc/bcm/bcm2835-i2s.c +index c1af739..23e5470 100644 +--- a/sound/soc/bcm/bcm2835-i2s.c ++++ b/sound/soc/bcm/bcm2835-i2s.c +@@ -789,25 +789,6 @@ static const struct snd_soc_component_driver bcm2835_i2s_component = { + .name = "bcm2835-i2s-comp", + }; + +-static const struct snd_pcm_hardware bcm2835_pcm_hardware = { +- .info = SNDRV_PCM_INFO_INTERLEAVED | +- SNDRV_PCM_INFO_JOINT_DUPLEX, +- .formats = SNDRV_PCM_FMTBIT_S16_LE | +- SNDRV_PCM_FMTBIT_S24_LE | +- SNDRV_PCM_FMTBIT_S32_LE, +- .period_bytes_min = 32, +- .period_bytes_max = 64 * PAGE_SIZE, +- .periods_min = 2, +- .periods_max = 255, +- .buffer_bytes_max = 128 * PAGE_SIZE, +-}; +- +-static const struct snd_dmaengine_pcm_config bcm2835_dmaengine_pcm_config = { +- .prepare_slave_config = snd_dmaengine_pcm_prepare_slave_config, +- .pcm_hardware = &bcm2835_pcm_hardware, +- .prealloc_buffer_size = 256 * PAGE_SIZE, +-}; +- + static int bcm2835_i2s_probe(struct platform_device *pdev) + { + struct bcm2835_i2s_dev *dev; +@@ -872,9 +853,7 @@ static int bcm2835_i2s_probe(struct platform_device *pdev) + return ret; + } + +- ret = devm_snd_dmaengine_pcm_register(&pdev->dev, +- &bcm2835_dmaengine_pcm_config, +- SND_DMAENGINE_PCM_FLAG_COMPAT); ++ ret = devm_snd_dmaengine_pcm_register(&pdev->dev, NULL, 0); + if (ret) { + dev_err(&pdev->dev, "Could not register PCM: %d\n", ret); + return ret; + +From d6058bd851aabb8962685fbdf93600e4724d5900 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Thu, 28 Apr 2016 12:06:13 +0100 +Subject: [PATCH 120/128] Revert "bcm2835-i2s: add 24bit support, update + bclk_ratio to more correct values" + +This reverts commit e780aed0c66a082d773330ce656f8722436dd8a1. +--- + sound/soc/bcm/bcm2835-i2s.c | 7 +------ + 1 file changed, 1 insertion(+), 6 deletions(-) + +diff --git a/sound/soc/bcm/bcm2835-i2s.c b/sound/soc/bcm/bcm2835-i2s.c +index 23e5470..3303d5f 100644 +--- a/sound/soc/bcm/bcm2835-i2s.c ++++ b/sound/soc/bcm/bcm2835-i2s.c +@@ -345,9 +345,6 @@ static int bcm2835_i2s_hw_params(struct snd_pcm_substream *substream, + data_length = 16; + bclk_ratio = 40; + break; +- case SNDRV_PCM_FORMAT_S24_LE: +- data_length = 24; +- break; + case SNDRV_PCM_FORMAT_S32_LE: + data_length = 32; + bclk_ratio = 80; +@@ -426,7 +423,7 @@ static int bcm2835_i2s_hw_params(struct snd_pcm_substream *substream, + /* Setup the frame format */ + format = BCM2835_I2S_CHEN; + +- if (data_length >= 24) ++ if (data_length > 24) + format |= BCM2835_I2S_CHWEX; + + format |= BCM2835_I2S_CHWID((data_length-8)&0xf); +@@ -717,7 +714,6 @@ static struct snd_soc_dai_driver bcm2835_i2s_dai = { + .channels_max = 2, + .rates = SNDRV_PCM_RATE_8000_192000, + .formats = SNDRV_PCM_FMTBIT_S16_LE +- | SNDRV_PCM_FMTBIT_S24_LE + | SNDRV_PCM_FMTBIT_S32_LE + }, + .capture = { +@@ -725,7 +721,6 @@ static struct snd_soc_dai_driver bcm2835_i2s_dai = { + .channels_max = 2, + .rates = SNDRV_PCM_RATE_8000_192000, + .formats = SNDRV_PCM_FMTBIT_S16_LE +- | SNDRV_PCM_FMTBIT_S24_LE + | SNDRV_PCM_FMTBIT_S32_LE + }, + .ops = &bcm2835_i2s_dai_ops, + +From 365e2b8d9ee0add5345a5c571833f0d254fbf14a Mon Sep 17 00:00:00 2001 +From: Matthias Reichl +Date: Sun, 11 Oct 2015 16:44:05 +0200 +Subject: [PATCH 121/128] bcm2835-i2s: get base address for DMA from devicetree + +Code copied from spi-bcm2835. Get physical address from devicetree +instead of using hardcoded constant. + +Signed-off-by: Matthias Reichl +--- + sound/soc/bcm/bcm2835-i2s.c | 20 ++++++++++++-------- + 1 file changed, 12 insertions(+), 8 deletions(-) + +diff --git a/sound/soc/bcm/bcm2835-i2s.c b/sound/soc/bcm/bcm2835-i2s.c +index 3303d5f..0f25db4 100644 +--- a/sound/soc/bcm/bcm2835-i2s.c ++++ b/sound/soc/bcm/bcm2835-i2s.c +@@ -38,6 +38,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -158,10 +159,6 @@ static const unsigned int bcm2835_clk_freq[BCM2835_CLK_SRC_HDMI+1] = { + #define BCM2835_I2S_INT_RXR BIT(1) + #define BCM2835_I2S_INT_TXW BIT(0) + +-/* I2S DMA interface */ +-/* FIXME: Needs IOMMU support */ +-#define BCM2835_VCMMU_SHIFT (0x7E000000 - 0x20000000) +- + /* General device struct */ + struct bcm2835_i2s_dev { + struct device *dev; +@@ -791,6 +788,15 @@ static int bcm2835_i2s_probe(struct platform_device *pdev) + int ret; + struct regmap *regmap[2]; + struct resource *mem[2]; ++ const __be32 *addr; ++ dma_addr_t dma_reg_base; ++ ++ addr = of_get_address(pdev->dev.of_node, 0, NULL, NULL); ++ if (!addr) { ++ dev_err(&pdev->dev, "could not get DMA-register address\n"); ++ return -ENODEV; ++ } ++ dma_reg_base = be32_to_cpup(addr); + + /* Request both ioareas */ + for (i = 0; i <= 1; i++) { +@@ -817,12 +823,10 @@ static int bcm2835_i2s_probe(struct platform_device *pdev) + + /* Set the DMA address */ + dev->dma_data[SNDRV_PCM_STREAM_PLAYBACK].addr = +- (dma_addr_t)mem[0]->start + BCM2835_I2S_FIFO_A_REG +- + BCM2835_VCMMU_SHIFT; ++ dma_reg_base + BCM2835_I2S_FIFO_A_REG; + + dev->dma_data[SNDRV_PCM_STREAM_CAPTURE].addr = +- (dma_addr_t)mem[0]->start + BCM2835_I2S_FIFO_A_REG +- + BCM2835_VCMMU_SHIFT; ++ dma_reg_base + BCM2835_I2S_FIFO_A_REG; + + /* Set the bus width */ + dev->dma_data[SNDRV_PCM_STREAM_PLAYBACK].addr_width = + +From b184dbc1dd9adf135036642dab2bd853d9664ed8 Mon Sep 17 00:00:00 2001 +From: Matthias Reichl +Date: Sun, 11 Oct 2015 15:21:16 +0200 +Subject: [PATCH 122/128] bcm2835-i2s: add 24bit support, update bclk_ratio to + more correct values + +Code ported from bcm2708-i2s driver in Raspberry Pi tree. + +RPi commit 62c05a0b5328d9376d39c9e74da10b8a2465c234 ("ASoC: BCM2708: +Add 24 bit support") + +This adds 24 bit support to the I2S driver of the BCM2708. +Besides enabling the 24 bit flags, it includes two bug fixes: + +MMAP is not supported. Claiming this leads to strange issues +when the format of driver and file do not match. + +The datasheet states that the width extension bit should be set +for widths greater than 24, but greater or equal would be correct. +This follows from the definition of the width field. + +Signed-off-by: Florian Meier + +RPi commit 3e8c672bc4e92d457aa4654bbb4cfd79a18a2327 ("bcm2708-i2s: +Update bclk_ratio to more correct values") + +Discussion about blck_ratio affecting sound quality: +https://github.com/raspberrypi/linux/issues/681 + +Signed-off-by: Matthias Reichl +--- + sound/soc/bcm/bcm2835-i2s.c | 12 +++++++++--- + 1 file changed, 9 insertions(+), 3 deletions(-) + +diff --git a/sound/soc/bcm/bcm2835-i2s.c b/sound/soc/bcm/bcm2835-i2s.c +index 0f25db4..0f35d7c 100644 +--- a/sound/soc/bcm/bcm2835-i2s.c ++++ b/sound/soc/bcm/bcm2835-i2s.c +@@ -340,11 +340,15 @@ static int bcm2835_i2s_hw_params(struct snd_pcm_substream *substream, + switch (params_format(params)) { + case SNDRV_PCM_FORMAT_S16_LE: + data_length = 16; +- bclk_ratio = 40; ++ bclk_ratio = 50; ++ break; ++ case SNDRV_PCM_FORMAT_S24_LE: ++ data_length = 24; ++ bclk_ratio = 50; + break; + case SNDRV_PCM_FORMAT_S32_LE: + data_length = 32; +- bclk_ratio = 80; ++ bclk_ratio = 100; + break; + default: + return -EINVAL; +@@ -420,7 +424,7 @@ static int bcm2835_i2s_hw_params(struct snd_pcm_substream *substream, + /* Setup the frame format */ + format = BCM2835_I2S_CHEN; + +- if (data_length > 24) ++ if (data_length >= 24) + format |= BCM2835_I2S_CHWEX; + + format |= BCM2835_I2S_CHWID((data_length-8)&0xf); +@@ -711,6 +715,7 @@ static struct snd_soc_dai_driver bcm2835_i2s_dai = { + .channels_max = 2, + .rates = SNDRV_PCM_RATE_8000_192000, + .formats = SNDRV_PCM_FMTBIT_S16_LE ++ | SNDRV_PCM_FMTBIT_S24_LE + | SNDRV_PCM_FMTBIT_S32_LE + }, + .capture = { +@@ -718,6 +723,7 @@ static struct snd_soc_dai_driver bcm2835_i2s_dai = { + .channels_max = 2, + .rates = SNDRV_PCM_RATE_8000_192000, + .formats = SNDRV_PCM_FMTBIT_S16_LE ++ | SNDRV_PCM_FMTBIT_S24_LE + | SNDRV_PCM_FMTBIT_S32_LE + }, + .ops = &bcm2835_i2s_dai_ops, + +From bed948b66e539b3e3888f701e6cc8d31eb75daf1 Mon Sep 17 00:00:00 2001 +From: Matthias Reichl +Date: Sun, 11 Oct 2015 15:25:51 +0200 +Subject: [PATCH 123/128] bcm2835-i2s: setup clock only if CPU is clock master + +Code ported from bcm2708-i2s driver in Raspberry Pi tree. + +RPi commit c14827ecdaa36607f6110f9ce8df96e698672191 ("bcm2708: Allow +option card devices to be configured via DT") + +Original work by Zoltan Szenczi, committed to RPi tree by +Phil Elwell. + +Signed-off-by: Matthias Reichl +--- + sound/soc/bcm/bcm2835-i2s.c | 28 +++++++++++++++++++--------- + 1 file changed, 19 insertions(+), 9 deletions(-) + +diff --git a/sound/soc/bcm/bcm2835-i2s.c b/sound/soc/bcm/bcm2835-i2s.c +index 0f35d7c..d5e4123 100644 +--- a/sound/soc/bcm/bcm2835-i2s.c ++++ b/sound/soc/bcm/bcm2835-i2s.c +@@ -411,15 +411,25 @@ static int bcm2835_i2s_hw_params(struct snd_pcm_substream *substream, + divf = dividend & BCM2835_CLK_DIVF_MASK; + } + +- /* Set clock divider */ +- regmap_write(dev->clk_regmap, BCM2835_CLK_PCMDIV_REG, BCM2835_CLK_PASSWD +- | BCM2835_CLK_DIVI(divi) +- | BCM2835_CLK_DIVF(divf)); +- +- /* Setup clock, but don't start it yet */ +- regmap_write(dev->clk_regmap, BCM2835_CLK_PCMCTL_REG, BCM2835_CLK_PASSWD +- | BCM2835_CLK_MASH(mash) +- | BCM2835_CLK_SRC(clk_src)); ++ /* Clock should only be set up here if CPU is clock master */ ++ switch (dev->fmt & SND_SOC_DAIFMT_MASTER_MASK) { ++ case SND_SOC_DAIFMT_CBS_CFS: ++ case SND_SOC_DAIFMT_CBS_CFM: ++ /* Set clock divider */ ++ regmap_write(dev->clk_regmap, BCM2835_CLK_PCMDIV_REG, ++ BCM2835_CLK_PASSWD ++ | BCM2835_CLK_DIVI(divi) ++ | BCM2835_CLK_DIVF(divf)); ++ ++ /* Setup clock, but don't start it yet */ ++ regmap_write(dev->clk_regmap, BCM2835_CLK_PCMCTL_REG, ++ BCM2835_CLK_PASSWD ++ | BCM2835_CLK_MASH(mash) ++ | BCM2835_CLK_SRC(clk_src)); ++ break; ++ default: ++ break; ++ } + + /* Setup the frame format */ + format = BCM2835_I2S_CHEN; + +From 74ca20ab5a41ebbd9fa01747bd12355b055ec934 Mon Sep 17 00:00:00 2001 +From: Matthias Reichl +Date: Sun, 11 Oct 2015 15:49:51 +0200 +Subject: [PATCH 124/128] bcm2835-i2s: Eliminate debugfs directory error + +Code ported from bcm2708-i2s driver in Raspberry Pi tree. + +RPi commit fd7d7a3dbe9262d16971ef81c234ed28c6499dd7 ("bcm2708: +Eliminate i2s debugfs directory error") + +Qualify the two regmap ranges uses by bcm2708-i2s ('-i2s' and '-clk') +to avoid the name clash when registering debugfs entries. + +Signed-off-by: Matthias Reichl +--- + sound/soc/bcm/bcm2835-i2s.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/sound/soc/bcm/bcm2835-i2s.c b/sound/soc/bcm/bcm2835-i2s.c +index d5e4123..2d29050 100644 +--- a/sound/soc/bcm/bcm2835-i2s.c ++++ b/sound/soc/bcm/bcm2835-i2s.c +@@ -782,6 +782,7 @@ static const struct regmap_config bcm2835_regmap_config[] = { + .precious_reg = bcm2835_i2s_precious_reg, + .volatile_reg = bcm2835_i2s_volatile_reg, + .cache_type = REGCACHE_RBTREE, ++ .name = "i2s", + }, + { + .reg_bits = 32, +@@ -790,6 +791,7 @@ static const struct regmap_config bcm2835_regmap_config[] = { + .max_register = BCM2835_CLK_PCMDIV_REG, + .volatile_reg = bcm2835_clk_volatile_reg, + .cache_type = REGCACHE_RBTREE, ++ .name = "clk", + }, + }; + + +From 5913175a9c8ca8d02cd7d7dc2de8cb47a0b3f110 Mon Sep 17 00:00:00 2001 +From: Matthias Reichl +Date: Sun, 11 Oct 2015 15:35:20 +0200 +Subject: [PATCH 125/128] bcm2835-i2s: Register PCM device + +Code ported from bcm2708-i2s driver in Raspberry Pi tree. + +RPi commit ba46b4935a23aa2caac1855ead52a035d4776680 ("ASoC: Add +support for BCM2708") + +This driver adds support for digital audio (I2S) +for the BCM2708 SoC that is used by the +Raspberry Pi. External audio codecs can be +connected to the Raspberry Pi via P5 header. + +It relies on cyclic DMA engine support for BCM2708. + +Signed-off-by: Florian Meier + +Signed-off-by: Matthias Reichl +--- + sound/soc/bcm/bcm2835-i2s.c | 23 ++++++++++++++++++++++- + 1 file changed, 22 insertions(+), 1 deletion(-) + +diff --git a/sound/soc/bcm/bcm2835-i2s.c b/sound/soc/bcm/bcm2835-i2s.c +index 2d29050..ce93ef0 100644 +--- a/sound/soc/bcm/bcm2835-i2s.c ++++ b/sound/soc/bcm/bcm2835-i2s.c +@@ -799,6 +799,25 @@ static const struct snd_soc_component_driver bcm2835_i2s_component = { + .name = "bcm2835-i2s-comp", + }; + ++static const struct snd_pcm_hardware bcm2835_pcm_hardware = { ++ .info = SNDRV_PCM_INFO_INTERLEAVED | ++ SNDRV_PCM_INFO_JOINT_DUPLEX, ++ .formats = SNDRV_PCM_FMTBIT_S16_LE | ++ SNDRV_PCM_FMTBIT_S24_LE | ++ SNDRV_PCM_FMTBIT_S32_LE, ++ .period_bytes_min = 32, ++ .period_bytes_max = 64 * PAGE_SIZE, ++ .periods_min = 2, ++ .periods_max = 255, ++ .buffer_bytes_max = 128 * PAGE_SIZE, ++}; ++ ++static const struct snd_dmaengine_pcm_config bcm2835_dmaengine_pcm_config = { ++ .prepare_slave_config = snd_dmaengine_pcm_prepare_slave_config, ++ .pcm_hardware = &bcm2835_pcm_hardware, ++ .prealloc_buffer_size = 256 * PAGE_SIZE, ++}; ++ + static int bcm2835_i2s_probe(struct platform_device *pdev) + { + struct bcm2835_i2s_dev *dev; +@@ -870,7 +889,9 @@ static int bcm2835_i2s_probe(struct platform_device *pdev) + return ret; + } + +- ret = devm_snd_dmaengine_pcm_register(&pdev->dev, NULL, 0); ++ ret = devm_snd_dmaengine_pcm_register(&pdev->dev, ++ &bcm2835_dmaengine_pcm_config, ++ SND_DMAENGINE_PCM_FLAG_COMPAT); + if (ret) { + dev_err(&pdev->dev, "Could not register PCM: %d\n", ret); + return ret; + +From ee29d630045af74bd782375f5289c711fae0b42f Mon Sep 17 00:00:00 2001 +From: Matthias Reichl +Date: Sun, 11 Oct 2015 15:55:21 +0200 +Subject: [PATCH 126/128] bcm2835-i2s: Enable MMAP support via a DT property + +Code ported from bcm2708-i2s driver in Raspberry Pi tree. + +RPi commit 7ee829fd77a30127db5d0b3c7d79b8718166e568 ("bcm2708-i2s: +Enable MMAP support via a DT property and overlay") + +The i2s driver used to claim to support MMAP, but that feature was disabled +when some problems were found. Add the ability to enable this feature +through Device Tree, using the i2s-mmap overlay. + +See: #1004 + +Signed-off-by: Matthias Reichl +--- + sound/soc/bcm/bcm2835-i2s.c | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/sound/soc/bcm/bcm2835-i2s.c b/sound/soc/bcm/bcm2835-i2s.c +index ce93ef0..6f60c2c 100644 +--- a/sound/soc/bcm/bcm2835-i2s.c ++++ b/sound/soc/bcm/bcm2835-i2s.c +@@ -799,7 +799,7 @@ static const struct snd_soc_component_driver bcm2835_i2s_component = { + .name = "bcm2835-i2s-comp", + }; + +-static const struct snd_pcm_hardware bcm2835_pcm_hardware = { ++static struct snd_pcm_hardware bcm2835_pcm_hardware = { + .info = SNDRV_PCM_INFO_INTERLEAVED | + SNDRV_PCM_INFO_JOINT_DUPLEX, + .formats = SNDRV_PCM_FMTBIT_S16_LE | +@@ -835,6 +835,11 @@ static int bcm2835_i2s_probe(struct platform_device *pdev) + } + dma_reg_base = be32_to_cpup(addr); + ++ if (of_property_read_bool(pdev->dev.of_node, "brcm,enable-mmap")) ++ bcm2835_pcm_hardware.info |= ++ SNDRV_PCM_INFO_MMAP | ++ SNDRV_PCM_INFO_MMAP_VALID; ++ + /* Request both ioareas */ + for (i = 0; i <= 1; i++) { + void __iomem *base; + +From 7de919e7b064903b35bcefbd65c34ca649b6194b Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Thu, 21 Apr 2016 15:44:14 +0100 +Subject: [PATCH 127/128] bcm2835-i2s: Reduce the TX DREQ threshold + +TX FIFO overrun is thought to be the cause of channel swapping, so +reducing the DREQ threshold seems reasonable and appears to be +effective. + +See: https://github.com/raspberrypi/linux/issues/1417 + +Signed-off-by: Phil Elwell +--- + sound/soc/bcm/bcm2835-i2s.c | 21 ++++++++++++++------- + 1 file changed, 14 insertions(+), 7 deletions(-) + +diff --git a/sound/soc/bcm/bcm2835-i2s.c b/sound/soc/bcm/bcm2835-i2s.c +index 6f60c2c..b26f958 100644 +--- a/sound/soc/bcm/bcm2835-i2s.c ++++ b/sound/soc/bcm/bcm2835-i2s.c +@@ -555,15 +555,22 @@ static int bcm2835_i2s_hw_params(struct snd_pcm_substream *substream, + + /* Setup the DMA parameters */ + regmap_update_bits(dev->i2s_regmap, BCM2835_I2S_CS_A_REG, +- BCM2835_I2S_RXTHR(1) +- | BCM2835_I2S_TXTHR(1) +- | BCM2835_I2S_DMAEN, 0xffffffff); ++ BCM2835_I2S_RXTHR(3) ++ | BCM2835_I2S_TXTHR(3) ++ | BCM2835_I2S_DMAEN, ++ BCM2835_I2S_RXTHR(1) ++ | BCM2835_I2S_TXTHR(1) ++ | BCM2835_I2S_DMAEN); + + regmap_update_bits(dev->i2s_regmap, BCM2835_I2S_DREQ_A_REG, +- BCM2835_I2S_TX_PANIC(0x10) +- | BCM2835_I2S_RX_PANIC(0x30) +- | BCM2835_I2S_TX(0x30) +- | BCM2835_I2S_RX(0x20), 0xffffffff); ++ BCM2835_I2S_TX_PANIC(0x7f) ++ | BCM2835_I2S_RX_PANIC(0x7f) ++ | BCM2835_I2S_TX(0x7f) ++ | BCM2835_I2S_RX(0x7f), ++ BCM2835_I2S_TX_PANIC(0x10) ++ | BCM2835_I2S_RX_PANIC(0x30) ++ | BCM2835_I2S_TX(0x20) ++ | BCM2835_I2S_RX(0x20)); + + /* Clear FIFOs */ + bcm2835_i2s_clear_fifos(dev, true, true); + +From e3f3dc026fad8e7c4193837c93c94b5e18cc1df9 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Thu, 28 Apr 2016 17:13:47 +0100 +Subject: [PATCH 128/128] brcmfmac: Use original country code as a fallback + +Commit 73345fd212980d2e28a5c6d83801c903bd773680: + + brcmfmac: Configure country code using device specific settings + +prevents region codes from working on devices that lack a region code +translation table. In the event of an absent table, preserve the old +behaviour of using the provided code as-is. + +Signed-off-by: Phil Elwell +--- + .../wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | 20 +++++++++++++++----- + 1 file changed, 15 insertions(+), 5 deletions(-) + +diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c +index 5a08f59..ceba7b6 100644 +--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c ++++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c +@@ -6516,12 +6516,18 @@ static s32 brcmf_translate_country_code(struct brcmf_pub *drvr, char alpha2[2], + struct brcmfmac_pd_cc *country_codes; + struct brcmfmac_pd_cc_entry *cc; + s32 found_index; ++ char ccode[BRCMF_COUNTRY_BUF_SZ]; ++ int rev; + int i; + ++ memcpy(ccode, alpha2, sizeof(ccode)); ++ rev = -1; ++ + country_codes = drvr->settings->country_codes; + if (!country_codes) { +- brcmf_dbg(TRACE, "No country codes configured for device\n"); +- return -EINVAL; ++ brcmf_dbg(TRACE, "No country codes configured for device" ++ " - use requested value\n"); ++ goto use_input_value; + } + + if ((alpha2[0] == ccreq->country_abbrev[0]) && +@@ -6545,10 +6551,14 @@ static s32 brcmf_translate_country_code(struct brcmf_pub *drvr, char alpha2[2], + brcmf_dbg(TRACE, "No country code match found\n"); + return -EINVAL; + } +- memset(ccreq, 0, sizeof(*ccreq)); +- ccreq->rev = cpu_to_le32(country_codes->table[found_index].rev); +- memcpy(ccreq->ccode, country_codes->table[found_index].cc, ++ rev = country_codes->table[found_index].rev; ++ memcpy(ccode, country_codes->table[found_index].cc, + BRCMF_COUNTRY_BUF_SZ); ++ ++use_input_value: ++ memset(ccreq, 0, sizeof(*ccreq)); ++ ccreq->rev = cpu_to_le32(rev); ++ memcpy(ccreq->ccode, ccode, sizeof(ccode)); + ccreq->country_abbrev[0] = alpha2[0]; + ccreq->country_abbrev[1] = alpha2[1]; + ccreq->country_abbrev[2] = 0;