From 2208191316a93f09f95de9c707fbdc1331f8d004 Mon Sep 17 00:00:00 2001 From: MilhouseVH Date: Wed, 13 Apr 2016 18:32:28 +0100 Subject: [PATCH 1/3] linux: update to linux-4.4.7 --- packages/linux/package.mk | 2 +- .../patches/{4.4.6 => 4.4.7}/linux-001-Intel-EDID-fix.patch | 0 .../patches/{4.4.6 => 4.4.7}/linux-003-no_dev_console.patch | 0 .../{4.4.6 => 4.4.7}/linux-004-fix-build-with-gcc-5.patch | 0 .../{4.4.6 => 4.4.7}/linux-051-ouya_controller_support.patch | 0 .../{4.4.6 => 4.4.7}/linux-052-XBOX_remote_support.patch | 0 .../{4.4.6 => 4.4.7}/linux-053-spinelplus-remote-0.2.patch | 0 ...ton_revert_d7b290a1056c5564eec8a1b169c6e84ff3.6.114c13.patch | 0 .../linux-056-add_Adaptec_eHome_Infrared_Receiver.patch | 0 ...57-Removed-MCE-customer-code-restriction-in-rc6-decode.patch | 0 .../linux-057-add_SMK_Manufacturing_Inc_Infrared_Receiver.patch | 0 .../linux-058.05-hid_sony-add_autorepeat_for_PS3_remotes.patch | 0 .../{4.4.6 => 4.4.7}/linux-062-imon_pad_ignore_diagonal.patch | 0 .../{4.4.6 => 4.4.7}/linux-063-xpad-fix_xbox360_wireless.patch | 0 .../linux-203-stb0899_enable_low_symbol_rate.patch | 0 .../{4.4.6 => 4.4.7}/linux-212-mantis_stb0899_faster_lock.patch | 0 .../linux/patches/{4.4.6 => 4.4.7}/linux-221-ngene-octopus.todo | 0 .../{4.4.6 => 4.4.7}/linux-222-stb0899_signal_quality.patch | 0 .../linux-223-Fix-video-artifacts-with-tt-3600-s2-usb.patch | 0 .../{4.4.6 => 4.4.7}/linux-224_Hauppauge_WinTV-soloHD.patch | 0 .../{4.4.6 => 4.4.7}/linux-227-ds3000-invalid-symbol-rate.patch | 0 .../{4.4.6 => 4.4.7}/linux-228-support-tt-ct2-4650-v2.patch | 0 .../{4.4.6 => 4.4.7}/linux-229-avermedia-volar-hd2.patch | 0 .../{4.4.6 => 4.4.7}/linux-230-elgato-eyetv-sat-v3.patch | 0 .../{4.4.6 => 4.4.7}/linux-231-fix-cx23885-ci-devices.patch | 0 .../linux-950-saa716x_PCIe_interface_chipset.patch | 0 ...990.06-hda-Avoid-outputting-HDMI-audio-before-prepare-.patch | 0 .../linux-999-i915-implement-passthrough-colors.patch | 0 .../{4.4.6 => 4.4.7}/linux-999-i915-use-legacy-turbo.patch | 0 ...999.02-0001-pm-disable-async-suspend-resume-by-default.patch | 0 ...5-eMMC-Don-t-initialize-partitions-on-RPMB-flagged-are.patch | 0 31 files changed, 1 insertion(+), 1 deletion(-) rename packages/linux/patches/{4.4.6 => 4.4.7}/linux-001-Intel-EDID-fix.patch (100%) rename packages/linux/patches/{4.4.6 => 4.4.7}/linux-003-no_dev_console.patch (100%) rename packages/linux/patches/{4.4.6 => 4.4.7}/linux-004-fix-build-with-gcc-5.patch (100%) rename packages/linux/patches/{4.4.6 => 4.4.7}/linux-051-ouya_controller_support.patch (100%) rename packages/linux/patches/{4.4.6 => 4.4.7}/linux-052-XBOX_remote_support.patch (100%) rename packages/linux/patches/{4.4.6 => 4.4.7}/linux-053-spinelplus-remote-0.2.patch (100%) rename packages/linux/patches/{4.4.6 => 4.4.7}/linux-054-nuvoton_revert_d7b290a1056c5564eec8a1b169c6e84ff3.6.114c13.patch (100%) rename packages/linux/patches/{4.4.6 => 4.4.7}/linux-056-add_Adaptec_eHome_Infrared_Receiver.patch (100%) rename packages/linux/patches/{4.4.6 => 4.4.7}/linux-057-Removed-MCE-customer-code-restriction-in-rc6-decode.patch (100%) rename packages/linux/patches/{4.4.6 => 4.4.7}/linux-057-add_SMK_Manufacturing_Inc_Infrared_Receiver.patch (100%) rename packages/linux/patches/{4.4.6 => 4.4.7}/linux-058.05-hid_sony-add_autorepeat_for_PS3_remotes.patch (100%) rename packages/linux/patches/{4.4.6 => 4.4.7}/linux-062-imon_pad_ignore_diagonal.patch (100%) rename packages/linux/patches/{4.4.6 => 4.4.7}/linux-063-xpad-fix_xbox360_wireless.patch (100%) rename packages/linux/patches/{4.4.6 => 4.4.7}/linux-203-stb0899_enable_low_symbol_rate.patch (100%) rename packages/linux/patches/{4.4.6 => 4.4.7}/linux-212-mantis_stb0899_faster_lock.patch (100%) rename packages/linux/patches/{4.4.6 => 4.4.7}/linux-221-ngene-octopus.todo (100%) rename packages/linux/patches/{4.4.6 => 4.4.7}/linux-222-stb0899_signal_quality.patch (100%) rename packages/linux/patches/{4.4.6 => 4.4.7}/linux-223-Fix-video-artifacts-with-tt-3600-s2-usb.patch (100%) rename packages/linux/patches/{4.4.6 => 4.4.7}/linux-224_Hauppauge_WinTV-soloHD.patch (100%) rename packages/linux/patches/{4.4.6 => 4.4.7}/linux-227-ds3000-invalid-symbol-rate.patch (100%) rename packages/linux/patches/{4.4.6 => 4.4.7}/linux-228-support-tt-ct2-4650-v2.patch (100%) rename packages/linux/patches/{4.4.6 => 4.4.7}/linux-229-avermedia-volar-hd2.patch (100%) rename packages/linux/patches/{4.4.6 => 4.4.7}/linux-230-elgato-eyetv-sat-v3.patch (100%) rename packages/linux/patches/{4.4.6 => 4.4.7}/linux-231-fix-cx23885-ci-devices.patch (100%) rename packages/linux/patches/{4.4.6 => 4.4.7}/linux-950-saa716x_PCIe_interface_chipset.patch (100%) rename packages/linux/patches/{4.4.6 => 4.4.7}/linux-990.06-hda-Avoid-outputting-HDMI-audio-before-prepare-.patch (100%) rename packages/linux/patches/{4.4.6 => 4.4.7}/linux-999-i915-implement-passthrough-colors.patch (100%) rename packages/linux/patches/{4.4.6 => 4.4.7}/linux-999-i915-use-legacy-turbo.patch (100%) rename packages/linux/patches/{4.4.6 => 4.4.7}/linux-999.02-0001-pm-disable-async-suspend-resume-by-default.patch (100%) rename packages/linux/patches/{4.4.6 => 4.4.7}/linux-999.05-eMMC-Don-t-initialize-partitions-on-RPMB-flagged-are.patch (100%) diff --git a/packages/linux/package.mk b/packages/linux/package.mk index aa7ac4b3fc..15b1b85b63 100644 --- a/packages/linux/package.mk +++ b/packages/linux/package.mk @@ -51,7 +51,7 @@ case "$LINUX" in PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET imx6-status-led imx6-soc-fan irqbalanced" ;; *) - PKG_VERSION="4.4.6" + PKG_VERSION="4.4.7" PKG_URL="http://www.kernel.org/pub/linux/kernel/v4.x/$PKG_NAME-$PKG_VERSION.tar.xz" ;; esac diff --git a/packages/linux/patches/4.4.6/linux-001-Intel-EDID-fix.patch b/packages/linux/patches/4.4.7/linux-001-Intel-EDID-fix.patch similarity index 100% rename from packages/linux/patches/4.4.6/linux-001-Intel-EDID-fix.patch rename to packages/linux/patches/4.4.7/linux-001-Intel-EDID-fix.patch diff --git a/packages/linux/patches/4.4.6/linux-003-no_dev_console.patch b/packages/linux/patches/4.4.7/linux-003-no_dev_console.patch similarity index 100% rename from packages/linux/patches/4.4.6/linux-003-no_dev_console.patch rename to packages/linux/patches/4.4.7/linux-003-no_dev_console.patch diff --git a/packages/linux/patches/4.4.6/linux-004-fix-build-with-gcc-5.patch b/packages/linux/patches/4.4.7/linux-004-fix-build-with-gcc-5.patch similarity index 100% rename from packages/linux/patches/4.4.6/linux-004-fix-build-with-gcc-5.patch rename to packages/linux/patches/4.4.7/linux-004-fix-build-with-gcc-5.patch diff --git a/packages/linux/patches/4.4.6/linux-051-ouya_controller_support.patch b/packages/linux/patches/4.4.7/linux-051-ouya_controller_support.patch similarity index 100% rename from packages/linux/patches/4.4.6/linux-051-ouya_controller_support.patch rename to packages/linux/patches/4.4.7/linux-051-ouya_controller_support.patch diff --git a/packages/linux/patches/4.4.6/linux-052-XBOX_remote_support.patch b/packages/linux/patches/4.4.7/linux-052-XBOX_remote_support.patch similarity index 100% rename from packages/linux/patches/4.4.6/linux-052-XBOX_remote_support.patch rename to packages/linux/patches/4.4.7/linux-052-XBOX_remote_support.patch diff --git a/packages/linux/patches/4.4.6/linux-053-spinelplus-remote-0.2.patch b/packages/linux/patches/4.4.7/linux-053-spinelplus-remote-0.2.patch similarity index 100% rename from packages/linux/patches/4.4.6/linux-053-spinelplus-remote-0.2.patch rename to packages/linux/patches/4.4.7/linux-053-spinelplus-remote-0.2.patch diff --git a/packages/linux/patches/4.4.6/linux-054-nuvoton_revert_d7b290a1056c5564eec8a1b169c6e84ff3.6.114c13.patch b/packages/linux/patches/4.4.7/linux-054-nuvoton_revert_d7b290a1056c5564eec8a1b169c6e84ff3.6.114c13.patch similarity index 100% rename from packages/linux/patches/4.4.6/linux-054-nuvoton_revert_d7b290a1056c5564eec8a1b169c6e84ff3.6.114c13.patch rename to packages/linux/patches/4.4.7/linux-054-nuvoton_revert_d7b290a1056c5564eec8a1b169c6e84ff3.6.114c13.patch diff --git a/packages/linux/patches/4.4.6/linux-056-add_Adaptec_eHome_Infrared_Receiver.patch b/packages/linux/patches/4.4.7/linux-056-add_Adaptec_eHome_Infrared_Receiver.patch similarity index 100% rename from packages/linux/patches/4.4.6/linux-056-add_Adaptec_eHome_Infrared_Receiver.patch rename to packages/linux/patches/4.4.7/linux-056-add_Adaptec_eHome_Infrared_Receiver.patch diff --git a/packages/linux/patches/4.4.6/linux-057-Removed-MCE-customer-code-restriction-in-rc6-decode.patch b/packages/linux/patches/4.4.7/linux-057-Removed-MCE-customer-code-restriction-in-rc6-decode.patch similarity index 100% rename from packages/linux/patches/4.4.6/linux-057-Removed-MCE-customer-code-restriction-in-rc6-decode.patch rename to packages/linux/patches/4.4.7/linux-057-Removed-MCE-customer-code-restriction-in-rc6-decode.patch diff --git a/packages/linux/patches/4.4.6/linux-057-add_SMK_Manufacturing_Inc_Infrared_Receiver.patch b/packages/linux/patches/4.4.7/linux-057-add_SMK_Manufacturing_Inc_Infrared_Receiver.patch similarity index 100% rename from packages/linux/patches/4.4.6/linux-057-add_SMK_Manufacturing_Inc_Infrared_Receiver.patch rename to packages/linux/patches/4.4.7/linux-057-add_SMK_Manufacturing_Inc_Infrared_Receiver.patch diff --git a/packages/linux/patches/4.4.6/linux-058.05-hid_sony-add_autorepeat_for_PS3_remotes.patch b/packages/linux/patches/4.4.7/linux-058.05-hid_sony-add_autorepeat_for_PS3_remotes.patch similarity index 100% rename from packages/linux/patches/4.4.6/linux-058.05-hid_sony-add_autorepeat_for_PS3_remotes.patch rename to packages/linux/patches/4.4.7/linux-058.05-hid_sony-add_autorepeat_for_PS3_remotes.patch diff --git a/packages/linux/patches/4.4.6/linux-062-imon_pad_ignore_diagonal.patch b/packages/linux/patches/4.4.7/linux-062-imon_pad_ignore_diagonal.patch similarity index 100% rename from packages/linux/patches/4.4.6/linux-062-imon_pad_ignore_diagonal.patch rename to packages/linux/patches/4.4.7/linux-062-imon_pad_ignore_diagonal.patch diff --git a/packages/linux/patches/4.4.6/linux-063-xpad-fix_xbox360_wireless.patch b/packages/linux/patches/4.4.7/linux-063-xpad-fix_xbox360_wireless.patch similarity index 100% rename from packages/linux/patches/4.4.6/linux-063-xpad-fix_xbox360_wireless.patch rename to packages/linux/patches/4.4.7/linux-063-xpad-fix_xbox360_wireless.patch diff --git a/packages/linux/patches/4.4.6/linux-203-stb0899_enable_low_symbol_rate.patch b/packages/linux/patches/4.4.7/linux-203-stb0899_enable_low_symbol_rate.patch similarity index 100% rename from packages/linux/patches/4.4.6/linux-203-stb0899_enable_low_symbol_rate.patch rename to packages/linux/patches/4.4.7/linux-203-stb0899_enable_low_symbol_rate.patch diff --git a/packages/linux/patches/4.4.6/linux-212-mantis_stb0899_faster_lock.patch b/packages/linux/patches/4.4.7/linux-212-mantis_stb0899_faster_lock.patch similarity index 100% rename from packages/linux/patches/4.4.6/linux-212-mantis_stb0899_faster_lock.patch rename to packages/linux/patches/4.4.7/linux-212-mantis_stb0899_faster_lock.patch diff --git a/packages/linux/patches/4.4.6/linux-221-ngene-octopus.todo b/packages/linux/patches/4.4.7/linux-221-ngene-octopus.todo similarity index 100% rename from packages/linux/patches/4.4.6/linux-221-ngene-octopus.todo rename to packages/linux/patches/4.4.7/linux-221-ngene-octopus.todo diff --git a/packages/linux/patches/4.4.6/linux-222-stb0899_signal_quality.patch b/packages/linux/patches/4.4.7/linux-222-stb0899_signal_quality.patch similarity index 100% rename from packages/linux/patches/4.4.6/linux-222-stb0899_signal_quality.patch rename to packages/linux/patches/4.4.7/linux-222-stb0899_signal_quality.patch diff --git a/packages/linux/patches/4.4.6/linux-223-Fix-video-artifacts-with-tt-3600-s2-usb.patch b/packages/linux/patches/4.4.7/linux-223-Fix-video-artifacts-with-tt-3600-s2-usb.patch similarity index 100% rename from packages/linux/patches/4.4.6/linux-223-Fix-video-artifacts-with-tt-3600-s2-usb.patch rename to packages/linux/patches/4.4.7/linux-223-Fix-video-artifacts-with-tt-3600-s2-usb.patch diff --git a/packages/linux/patches/4.4.6/linux-224_Hauppauge_WinTV-soloHD.patch b/packages/linux/patches/4.4.7/linux-224_Hauppauge_WinTV-soloHD.patch similarity index 100% rename from packages/linux/patches/4.4.6/linux-224_Hauppauge_WinTV-soloHD.patch rename to packages/linux/patches/4.4.7/linux-224_Hauppauge_WinTV-soloHD.patch diff --git a/packages/linux/patches/4.4.6/linux-227-ds3000-invalid-symbol-rate.patch b/packages/linux/patches/4.4.7/linux-227-ds3000-invalid-symbol-rate.patch similarity index 100% rename from packages/linux/patches/4.4.6/linux-227-ds3000-invalid-symbol-rate.patch rename to packages/linux/patches/4.4.7/linux-227-ds3000-invalid-symbol-rate.patch diff --git a/packages/linux/patches/4.4.6/linux-228-support-tt-ct2-4650-v2.patch b/packages/linux/patches/4.4.7/linux-228-support-tt-ct2-4650-v2.patch similarity index 100% rename from packages/linux/patches/4.4.6/linux-228-support-tt-ct2-4650-v2.patch rename to packages/linux/patches/4.4.7/linux-228-support-tt-ct2-4650-v2.patch diff --git a/packages/linux/patches/4.4.6/linux-229-avermedia-volar-hd2.patch b/packages/linux/patches/4.4.7/linux-229-avermedia-volar-hd2.patch similarity index 100% rename from packages/linux/patches/4.4.6/linux-229-avermedia-volar-hd2.patch rename to packages/linux/patches/4.4.7/linux-229-avermedia-volar-hd2.patch diff --git a/packages/linux/patches/4.4.6/linux-230-elgato-eyetv-sat-v3.patch b/packages/linux/patches/4.4.7/linux-230-elgato-eyetv-sat-v3.patch similarity index 100% rename from packages/linux/patches/4.4.6/linux-230-elgato-eyetv-sat-v3.patch rename to packages/linux/patches/4.4.7/linux-230-elgato-eyetv-sat-v3.patch diff --git a/packages/linux/patches/4.4.6/linux-231-fix-cx23885-ci-devices.patch b/packages/linux/patches/4.4.7/linux-231-fix-cx23885-ci-devices.patch similarity index 100% rename from packages/linux/patches/4.4.6/linux-231-fix-cx23885-ci-devices.patch rename to packages/linux/patches/4.4.7/linux-231-fix-cx23885-ci-devices.patch diff --git a/packages/linux/patches/4.4.6/linux-950-saa716x_PCIe_interface_chipset.patch b/packages/linux/patches/4.4.7/linux-950-saa716x_PCIe_interface_chipset.patch similarity index 100% rename from packages/linux/patches/4.4.6/linux-950-saa716x_PCIe_interface_chipset.patch rename to packages/linux/patches/4.4.7/linux-950-saa716x_PCIe_interface_chipset.patch diff --git a/packages/linux/patches/4.4.6/linux-990.06-hda-Avoid-outputting-HDMI-audio-before-prepare-.patch b/packages/linux/patches/4.4.7/linux-990.06-hda-Avoid-outputting-HDMI-audio-before-prepare-.patch similarity index 100% rename from packages/linux/patches/4.4.6/linux-990.06-hda-Avoid-outputting-HDMI-audio-before-prepare-.patch rename to packages/linux/patches/4.4.7/linux-990.06-hda-Avoid-outputting-HDMI-audio-before-prepare-.patch diff --git a/packages/linux/patches/4.4.6/linux-999-i915-implement-passthrough-colors.patch b/packages/linux/patches/4.4.7/linux-999-i915-implement-passthrough-colors.patch similarity index 100% rename from packages/linux/patches/4.4.6/linux-999-i915-implement-passthrough-colors.patch rename to packages/linux/patches/4.4.7/linux-999-i915-implement-passthrough-colors.patch diff --git a/packages/linux/patches/4.4.6/linux-999-i915-use-legacy-turbo.patch b/packages/linux/patches/4.4.7/linux-999-i915-use-legacy-turbo.patch similarity index 100% rename from packages/linux/patches/4.4.6/linux-999-i915-use-legacy-turbo.patch rename to packages/linux/patches/4.4.7/linux-999-i915-use-legacy-turbo.patch diff --git a/packages/linux/patches/4.4.6/linux-999.02-0001-pm-disable-async-suspend-resume-by-default.patch b/packages/linux/patches/4.4.7/linux-999.02-0001-pm-disable-async-suspend-resume-by-default.patch similarity index 100% rename from packages/linux/patches/4.4.6/linux-999.02-0001-pm-disable-async-suspend-resume-by-default.patch rename to packages/linux/patches/4.4.7/linux-999.02-0001-pm-disable-async-suspend-resume-by-default.patch diff --git a/packages/linux/patches/4.4.6/linux-999.05-eMMC-Don-t-initialize-partitions-on-RPMB-flagged-are.patch b/packages/linux/patches/4.4.7/linux-999.05-eMMC-Don-t-initialize-partitions-on-RPMB-flagged-are.patch similarity index 100% rename from packages/linux/patches/4.4.6/linux-999.05-eMMC-Don-t-initialize-partitions-on-RPMB-flagged-are.patch rename to packages/linux/patches/4.4.7/linux-999.05-eMMC-Don-t-initialize-partitions-on-RPMB-flagged-are.patch From 2fc89f0047d89010e31068d52a5fb7f9c5db8105 Mon Sep 17 00:00:00 2001 From: MilhouseVH Date: Wed, 13 Apr 2016 18:33:52 +0100 Subject: [PATCH 2/3] RPi/RPi2: update linux support patches for linux 4.4.7 --- .../patches/linux/linux-01-RPi_support.patch | 3058 ++++++++++++++--- .../patches/linux/linux-01-RPi_support.patch | 3058 ++++++++++++++--- 2 files changed, 5164 insertions(+), 952 deletions(-) diff --git a/projects/RPi/patches/linux/linux-01-RPi_support.patch b/projects/RPi/patches/linux/linux-01-RPi_support.patch index 403d52b6e3..13300ecc69 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 23b133903a357066adb48bceb76aba8bd30d8c66 Mon Sep 17 00:00:00 2001 +From 3cc8c1beb520133149f9cb5d394cbc1c8bbb01b0 Mon Sep 17 00:00:00 2001 From: Steve Glendinning Date: Thu, 19 Feb 2015 18:47:12 +0000 -Subject: [PATCH 001/220] smsx95xx: fix crimes against truesize +Subject: [PATCH 001/234] 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. @@ -36,10 +36,10 @@ index 66b3ab9..b544181 usbnet_skb_return(dev, ax_skb); } -From e7515ee9af1d150d50b55d8f8f53d735a23cb253 Mon Sep 17 00:00:00 2001 +From d41a067375e9d557ee14ad6ecefbc559b724087c Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 17 Apr 2015 16:58:45 +0100 -Subject: [PATCH 002/220] smsc95xx: Disable turbo mode by default +Subject: [PATCH 002/234] smsc95xx: Disable turbo mode by default --- drivers/net/usb/smsc95xx.c | 2 +- @@ -59,10 +59,10 @@ index b544181..9c0da18 100755 MODULE_PARM_DESC(turbo_mode, "Enable multiple frames per Rx transaction"); -From 849ff5353023c95d40040ecfd279e216074b3d1c Mon Sep 17 00:00:00 2001 +From 52a67e5a346e7dfcd6af9115800108d6c9fca84e Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 18 Jun 2014 13:42:01 +0100 -Subject: [PATCH 003/220] vmstat: Workaround for issue where dirty page count +Subject: [PATCH 003/234] vmstat: Workaround for issue where dirty page count goes negative See: @@ -89,10 +89,10 @@ index 3e5d907..2539068 100644 static inline void __inc_zone_page_state(struct page *page, -From d29365673ed37e7688bd3f35c4a5ad719f878190 Mon Sep 17 00:00:00 2001 +From 5956e14120ab88b53fe2f68f7de6c197eae4a811 Mon Sep 17 00:00:00 2001 From: Robert Tiemann Date: Mon, 20 Jul 2015 11:01:25 +0200 -Subject: [PATCH 004/220] BCM2835_DT: Fix I2S register map +Subject: [PATCH 004/234] BCM2835_DT: Fix I2S register map --- Documentation/devicetree/bindings/dma/brcm,bcm2835-dma.txt | 4 ++-- @@ -146,10 +146,10 @@ index aef64de..864a3ef 100644 dmas = <&dma 2>, <&dma 3>; -From c891de13b385afb3e4b2c97ac5bbea7e2d97252f Mon Sep 17 00:00:00 2001 +From bd8d0148b99e3281aaa294257961377c93a9381d Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 4 Dec 2015 17:41:50 +0000 -Subject: [PATCH 005/220] irq-bcm2836: Prevent spurious interrupts, and trap +Subject: [PATCH 005/234] irq-bcm2836: Prevent spurious interrupts, and trap them early The old arch-specific IRQ macros included a dsb to ensure the @@ -180,10 +180,10 @@ index f687082..4cd8ebe 100644 handle_IRQ(irq_linear_revmap(intc.domain, hwirq), regs); -From 60f7ee79b375d72f5ef46ec542b925b1f1428bad Mon Sep 17 00:00:00 2001 +From 2311742728ef10f5d7ed17debc4065e90cb25c7e 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 006/220] irqchip: bcm2835: Add FIQ support +Subject: [PATCH 006/234] irqchip: bcm2835: Add FIQ support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -312,10 +312,10 @@ index bf9cc5f..3f601f9 100644 } -From 890dccbb9c60be182adefb61b3ede805ccba1a91 Mon Sep 17 00:00:00 2001 +From 60f12c460c71c04609a23be23df6eb986481c365 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 007/220] irqchip: irq-bcm2835: Add 2836 FIQ support +Subject: [PATCH 007/234] irqchip: irq-bcm2835: Add 2836 FIQ support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -411,10 +411,10 @@ index 3f601f9..20deb28 100644 for (b = 0; b < NR_BANKS; b++) { for (i = 0; i < bank_irqs[b]; i++) { -From 9a27662aac88f95b3de1915333a0265614f88a0d Mon Sep 17 00:00:00 2001 +From 8de2ecc5c42ae0a909fbc23da58ef2fa552d4c5b Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 30 Jun 2015 14:12:42 +0100 -Subject: [PATCH 008/220] serial: 8250: Don't crash when nr_uarts is 0 +Subject: [PATCH 008/234] serial: 8250: Don't crash when nr_uarts is 0 --- drivers/tty/serial/8250/8250_core.c | 2 ++ @@ -434,10 +434,10 @@ index 3912646..b51a59c 100644 for (i = 0; i < nr_uarts; i++) { struct uart_8250_port *up = &serial8250_ports[i]; -From 4d7ff05e4d4d8d8adb4e7b4dd5fa8f63ae2be0f6 Mon Sep 17 00:00:00 2001 +From 2567dee80cdc0654788137d07308fa428d3dc8fb Mon Sep 17 00:00:00 2001 From: notro Date: Thu, 10 Jul 2014 13:59:47 +0200 -Subject: [PATCH 009/220] pinctrl-bcm2835: Set base to 0 give expected gpio +Subject: [PATCH 009/234] pinctrl-bcm2835: Set base to 0 give expected gpio numbering Signed-off-by: Noralf Tronnes @@ -446,7 +446,7 @@ Signed-off-by: Noralf Tronnes 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/pinctrl/bcm/pinctrl-bcm2835.c b/drivers/pinctrl/bcm/pinctrl-bcm2835.c -index 2e6ca69..62cc363 100644 +index 17dd8fe..613be28 100644 --- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c +++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c @@ -373,7 +373,7 @@ static struct gpio_chip bcm2835_gpio_chip = { @@ -459,10 +459,10 @@ index 2e6ca69..62cc363 100644 .can_sleep = false, }; -From 969dc44a700e1be13c3f80445d40c1fe51cc4370 Mon Sep 17 00:00:00 2001 +From f23532983c575cac8b55c4bceb1e45a1439f7e0e Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 24 Feb 2015 13:40:50 +0000 -Subject: [PATCH 010/220] pinctrl-bcm2835: Fix interrupt handling for GPIOs +Subject: [PATCH 010/234] pinctrl-bcm2835: Fix interrupt handling for GPIOs 28-31 and 46-53 Contrary to the documentation, the BCM2835 GPIO controller actually has @@ -483,7 +483,7 @@ the pins are often used for I2S instead. 1 file changed, 39 insertions(+), 12 deletions(-) diff --git a/drivers/pinctrl/bcm/pinctrl-bcm2835.c b/drivers/pinctrl/bcm/pinctrl-bcm2835.c -index 62cc363..ab345f4 100644 +index 613be28..a06cf9e 100644 --- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c +++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c @@ -47,6 +47,7 @@ @@ -608,10 +608,10 @@ index 62cc363..ab345f4 100644 }, }; -From b949246bf51fa852bad45136cdd6bcd91a29539e Mon Sep 17 00:00:00 2001 +From fe30b946aef6315884bd029f889f6eb3692705e5 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 26 Feb 2015 09:58:22 +0000 -Subject: [PATCH 011/220] pinctrl-bcm2835: Only request the interrupts listed +Subject: [PATCH 011/234] pinctrl-bcm2835: Only request the interrupts listed in the DTB Although the GPIO controller can generate three interrupts (four counting @@ -625,7 +625,7 @@ interface, is unlikely to be a problem. 1 file changed, 2 insertions(+) diff --git a/drivers/pinctrl/bcm/pinctrl-bcm2835.c b/drivers/pinctrl/bcm/pinctrl-bcm2835.c -index ab345f4..640e3b0 100644 +index a06cf9e..32f779e 100644 --- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c +++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c @@ -1029,6 +1029,8 @@ static int bcm2835_pinctrl_probe(struct platform_device *pdev) @@ -638,10 +638,10 @@ index ab345f4..640e3b0 100644 pc->irq_data[i].irqgroup = i; -From 19bcdacc5a67abe6a2d604a39ddfed5a54c77b2e Mon Sep 17 00:00:00 2001 +From cc544ca7cb8b033c7bf3d884277f32887a1417a7 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 24 Jun 2015 14:10:44 +0100 -Subject: [PATCH 012/220] spi-bcm2835: Support pin groups other than 7-11 +Subject: [PATCH 012/234] 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 @@ -722,10 +722,10 @@ index cf04960..a2b1f45 100644 /* and set up the "mode" and level */ dev_info(&spi->dev, "setting up native-CS%i as GPIO %i\n", -From 7ce5cbfba6e930c2178f342a4390972f1efd75ef Mon Sep 17 00:00:00 2001 +From 8cf07dd13a251b72f28805060d58b942b582feef 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 013/220] ARM: bcm2835: Set Serial number and Revision +Subject: [PATCH 013/234] ARM: bcm2835: Set Serial number and Revision MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -783,10 +783,10 @@ index 0f7b9ea..1e6f1cf 100644 static const char * const bcm2835_compat[] = { -From 569baa856d805e594011f2d1444b6849c291544d Mon Sep 17 00:00:00 2001 +From 902ceaaea891e7883c141d45e52dde7d859e2324 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 11 Oct 2015 16:44:05 +0200 -Subject: [PATCH 014/220] bcm2835-i2s: get base address for DMA from devicetree +Subject: [PATCH 014/234] bcm2835-i2s: get base address for DMA from devicetree Code copied from spi-bcm2835. Get physical address from devicetree instead of using hardcoded constant. @@ -851,10 +851,10 @@ index 8c435be..0bc4f47 100644 /* Set the bus width */ dev->dma_data[SNDRV_PCM_STREAM_PLAYBACK].addr_width = -From c61a7aef15a1aee86e1de59dca2ad7002995f9cf Mon Sep 17 00:00:00 2001 +From c89c8dc0cde738e6d2a5d07dbfd2aaa72f4a07d0 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 11 Oct 2015 15:21:16 +0200 -Subject: [PATCH 015/220] bcm2835-i2s: add 24bit support, update bclk_ratio to +Subject: [PATCH 015/234] bcm2835-i2s: add 24bit support, update bclk_ratio to more correct values Code ported from bcm2708-i2s driver in Raspberry Pi tree. @@ -933,10 +933,10 @@ index 0bc4f47..cf60390 100644 }, .ops = &bcm2835_i2s_dai_ops, -From e2a75ce0e2b6319150e14401f9822adba7895c9c Mon Sep 17 00:00:00 2001 +From da23963f1f4c8999ec76bb99234aec3864b0e56f Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 11 Oct 2015 15:25:51 +0200 -Subject: [PATCH 016/220] bcm2835-i2s: setup clock only if CPU is clock master +Subject: [PATCH 016/234] bcm2835-i2s: setup clock only if CPU is clock master Code ported from bcm2708-i2s driver in Raspberry Pi tree. @@ -991,10 +991,10 @@ index cf60390..4ac4e92 100644 /* Setup the frame format */ format = BCM2835_I2S_CHEN; -From 433841fc5958e1ddbd503b579a022fb67defd74b Mon Sep 17 00:00:00 2001 +From 611d61511eefc080a178187b36c9d86aec9bb8b0 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 11 Oct 2015 15:49:51 +0200 -Subject: [PATCH 017/220] bcm2835-i2s: Eliminate debugfs directory error +Subject: [PATCH 017/234] bcm2835-i2s: Eliminate debugfs directory error Code ported from bcm2708-i2s driver in Raspberry Pi tree. @@ -1030,10 +1030,10 @@ index 4ac4e92..aab3df9 100644 }; -From 7b4481818fe920904457496db40d59dd3d0a83bb Mon Sep 17 00:00:00 2001 +From bb6885bf7549495ca00d9a839954dcd35c4b9e61 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 11 Oct 2015 15:35:20 +0200 -Subject: [PATCH 018/220] bcm2835-i2s: Register PCM device +Subject: [PATCH 018/234] bcm2835-i2s: Register PCM device Code ported from bcm2708-i2s driver in Raspberry Pi tree. @@ -1096,10 +1096,10 @@ index aab3df9..0e5c787 100644 dev_err(&pdev->dev, "Could not register PCM: %d\n", ret); return ret; -From 027ba808e84799c97ae1c64f8424ac8eb7235cc4 Mon Sep 17 00:00:00 2001 +From 7eced106f678f81b479e3f4fcc0de5b0c8e1dbd9 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 11 Oct 2015 15:55:21 +0200 -Subject: [PATCH 019/220] bcm2835-i2s: Enable MMAP support via a DT property +Subject: [PATCH 019/234] bcm2835-i2s: Enable MMAP support via a DT property Code ported from bcm2708-i2s driver in Raspberry Pi tree. @@ -1143,10 +1143,10 @@ index 0e5c787..04c1d13 100644 for (i = 0; i <= 1; i++) { void __iomem *base; -From 8a349301238aabb40c9da5ca8c8492b6b8d146f6 Mon Sep 17 00:00:00 2001 +From 6de25eb4521167e2d9d5a9c777333cec1542192f 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/220] dmaengine: bcm2835: Add slave dma support +Subject: [PATCH 020/234] dmaengine: bcm2835: Add slave dma support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -1466,10 +1466,10 @@ index 996c4b0..b278c66 100644 +MODULE_AUTHOR("Gellert Weisz "); MODULE_LICENSE("GPL v2"); -From 290f55520c62025da992d6be0002fc1e3738cfdb Mon Sep 17 00:00:00 2001 +From 6090e63c27886fcd841ba451d8646c093a179b8d 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/220] dmaengine: bcm2835: set residue_granularity field +Subject: [PATCH 021/234] dmaengine: bcm2835: set residue_granularity field MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -1498,10 +1498,10 @@ index b278c66..696fb30 100644 INIT_LIST_HEAD(&od->ddev.channels); spin_lock_init(&od->lock); -From 6f56fff39c811953809b011f59c49a2122c4d173 Mon Sep 17 00:00:00 2001 +From ea0d9861bde9e049f8d5e43ae89dcf7844cb5e8d 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/220] dmaengine: bcm2835: Load driver early and support +Subject: [PATCH 022/234] dmaengine: bcm2835: Load driver early and support legacy API MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -1601,10 +1601,10 @@ index 696fb30..5db0a95 100644 MODULE_ALIAS("platform:bcm2835-dma"); MODULE_DESCRIPTION("BCM2835 DMA engine driver"); -From df03f00c5e21559185b5a61ea5e8238e10959ab1 Mon Sep 17 00:00:00 2001 +From 8947371bab57f6f0adb8c9519ceeba017fa5fc6a Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sat, 10 Oct 2015 12:29:18 +0200 -Subject: [PATCH 023/220] bcm2835-dma: Fix dreq not set for slave transfers +Subject: [PATCH 023/234] bcm2835-dma: Fix dreq not set for slave transfers Set dreq to slave_id if it is not set like in bcm2708-dmaengine. --- @@ -1625,10 +1625,10 @@ index 5db0a95..fe1fd60 100644 return 0; } -From 052c2005b6ecedc5abad86632f5781adda310aa7 Mon Sep 17 00:00:00 2001 +From 22399cbc5ece0905650012b73e51a366d1c754e6 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 11 Oct 2015 12:28:30 +0200 -Subject: [PATCH 024/220] bcm2835-dma: Limit cyclic transfers on lite channels +Subject: [PATCH 024/234] bcm2835-dma: Limit cyclic transfers on lite channels to 32k Transfers larger than 32k cause repeated clicking with I2S soundcards. @@ -1665,10 +1665,10 @@ index fe1fd60..0adc347 100644 max_size = MAX_NORMAL_TRANSFER; period_len = min(period_len, max_size); -From a72021ae99021409319d552dad744572b20febfb Mon Sep 17 00:00:00 2001 +From 1e8033be36dd0c3b000c014245cc45f94118faa0 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 025/220] bcm2835: Add support for uart1 +Subject: [PATCH 025/234] bcm2835: Add support for uart1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -1725,10 +1725,10 @@ index 1e6f1cf..ea36eec 100644 static const char * const bcm2835_compat[] = { -From 4364707caa6d3d9edf84fa8469a04f33e1ba5d76 Mon Sep 17 00:00:00 2001 +From d97842cc1aac3d0ff132500fad402068743d08df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 26 Jun 2015 14:21:20 +0200 -Subject: [PATCH 026/220] firmware: bcm2835: Add missing property tags +Subject: [PATCH 026/234] firmware: bcm2835: Add missing property tags MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -1790,10 +1790,10 @@ index c07d74a..525816d 100644 RPI_FIRMWARE_GET_COMMAND_LINE = 0x00050001, RPI_FIRMWARE_GET_DMA_CHANNELS = 0x00060001, -From cd721670ab8c729d0c62e99a1d173c2575b63282 Mon Sep 17 00:00:00 2001 +From f01f5606b8fe5e7ea7d70f4f2e0e7435040cabaa Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 12 May 2013 12:24:19 +0100 -Subject: [PATCH 027/220] Main bcm2708/bcm2709 linux port +Subject: [PATCH 027/234] Main bcm2708/bcm2709 linux port MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -4308,10 +4308,10 @@ index 8673ffe..ad22ebb 100644 mmc_pm_flag_t pm_caps; /* supported pm features */ -From 812484cc27980e3351360200478e7044de983f40 Mon Sep 17 00:00:00 2001 +From cc5bcfaa350113324f7433660c9a3dfc0229bcdd Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 11 Nov 2015 21:01:15 +0000 -Subject: [PATCH 028/220] squash: include ARCH_BCM2708 / ARCH_BCM2709 +Subject: [PATCH 028/234] squash: include ARCH_BCM2708 / ARCH_BCM2709 --- drivers/char/hw_random/Kconfig | 2 +- @@ -4463,10 +4463,10 @@ index 6a834e1..c5070ae 100644 select REGMAP_MMIO help -From 7efc2851a46faa1aceda5f6ec255d0e814812ccf Mon Sep 17 00:00:00 2001 +From d23b18d79e915fa0a5820230ee7a35d682e7af42 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 1 May 2013 19:46:17 +0100 -Subject: [PATCH 029/220] Add dwc_otg driver +Subject: [PATCH 029/234] Add dwc_otg driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -5131,10 +5131,10 @@ index 358ca8d..abaac7c 100644 return i; } diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c -index 1560f3f..dd4dd69 100644 +index 2a27488..ae4dca1 100644 --- a/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c -@@ -4967,7 +4967,7 @@ static void port_event(struct usb_hub *hub, int port1) +@@ -4973,7 +4973,7 @@ static void port_event(struct usb_hub *hub, int port1) if (portchange & USB_PORT_STAT_C_OVERCURRENT) { u16 status = 0, unused; @@ -65445,10 +65445,10 @@ index 0000000..cdc9963 +test_main(); +0; -From d3b7394edae550f295e185be4651ed43529e7042 Mon Sep 17 00:00:00 2001 +From 09d89e5bb8c9adc39556accbf5bb118e1609fb80 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 17 Jun 2015 17:06:34 +0100 -Subject: [PATCH 030/220] bcm2708 framebuffer driver +Subject: [PATCH 030/234] bcm2708 framebuffer driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -68910,10 +68910,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 99b7c3cfd05f5898e96d7c44c5970880f2c0cd16 Mon Sep 17 00:00:00 2001 +From 185a83f51686987a770243702f0c54304c60cca2 Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Fri, 22 Nov 2013 14:22:53 +0100 -Subject: [PATCH 031/220] dmaengine: Add support for BCM2708 +Subject: [PATCH 031/234] dmaengine: Add support for BCM2708 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -69533,10 +69533,10 @@ index 0000000..99cc7fd + +#endif /* _PLAT_BCM2708_DMA_H */ -From 65c8aadfd88010efb2d2a2821fea7aac978b6c78 Mon Sep 17 00:00:00 2001 +From dd0f809dccd2522c01727b2822f484ce8e9ce23a Mon Sep 17 00:00:00 2001 From: gellert Date: Fri, 15 Aug 2014 16:35:06 +0100 -Subject: [PATCH 032/220] MMC: added alternative MMC driver +Subject: [PATCH 032/234] MMC: added alternative MMC driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -71234,10 +71234,10 @@ index 0000000..43aed6e +MODULE_LICENSE("GPL v2"); +MODULE_AUTHOR("Gellert Weisz"); -From c58bec0d84082837415562c6567396e9e5ba62f7 Mon Sep 17 00:00:00 2001 +From e15ccca87e0a679797cbcaf24bbf2304b1e8eba3 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 25 Mar 2015 17:49:47 +0000 -Subject: [PATCH 033/220] Adding bcm2835-sdhost driver, and an overlay to +Subject: [PATCH 033/234] Adding bcm2835-sdhost driver, and an overlay to enable it BCM2835 has two SD card interfaces. This driver uses the other one. @@ -73264,10 +73264,10 @@ index 0000000..da08998 +MODULE_LICENSE("GPL v2"); +MODULE_AUTHOR("Phil Elwell"); -From 36d8db53953365eecdf56695944e9f9919634de0 Mon Sep 17 00:00:00 2001 +From a5a139f18bcc782f2cc3a1de66c936ce2dbb6ffb Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 3 Jul 2013 00:31:47 +0100 -Subject: [PATCH 034/220] cma: Add vc_cma driver to enable use of CMA +Subject: [PATCH 034/234] 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 @@ -74610,10 +74610,10 @@ index 0000000..be2819d + +#endif /* VC_CMA_H */ -From 2dd634f97c4fb77d9e81be289a8da29c390a0309 Mon Sep 17 00:00:00 2001 +From 79708ff24769bfa53cc800dd05f951340829cc5d Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 26 Mar 2012 22:15:50 +0100 -Subject: [PATCH 035/220] bcm2708: alsa sound driver +Subject: [PATCH 035/234] bcm2708: alsa sound driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -77311,10 +77311,10 @@ index 0000000..af3e6eb + +#endif // _VC_AUDIO_DEFS_H_ -From 112360f76c91c892f1a29825eb2807bbf86ac67d Mon Sep 17 00:00:00 2001 +From 522686ae5036c50971853fee0fdb371ed8309222 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 2 Jul 2013 23:42:01 +0100 -Subject: [PATCH 036/220] bcm2708 vchiq driver +Subject: [PATCH 036/234] bcm2708 vchiq driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -90619,10 +90619,10 @@ index 0000000..b6bfa21 + return vchiq_build_time; +} -From b0acaf43055bacef7918c835517ff6ea7da26e83 Mon Sep 17 00:00:00 2001 +From a4ad9bf42376a39e5314f41ecd1ea8fbafb4ca46 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 17 Jun 2015 16:07:06 +0100 -Subject: [PATCH 037/220] vc_mem: Add vc_mem driver +Subject: [PATCH 037/234] vc_mem: Add vc_mem driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -91627,10 +91627,10 @@ index 0000000..20a4753 + +#endif /* _VC_MEM_H */ -From 5f05accd033e4b032f64717a0276d7174f697919 Mon Sep 17 00:00:00 2001 +From c18ab896c13c1824cdc4c8c544f2576e778d4595 Mon Sep 17 00:00:00 2001 From: Tim Gover Date: Tue, 22 Jul 2014 15:41:04 +0100 -Subject: [PATCH 038/220] vcsm: VideoCore shared memory service for BCM2835 +Subject: [PATCH 038/234] vcsm: VideoCore shared memory service for BCM2835 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -96046,10 +96046,10 @@ index 0000000..334f36d + +#endif /* __VMCS_SM_IOCTL_H__INCLUDED__ */ -From 1ee3b49a62efe1416a6b40fb5c6032288f3d2b08 Mon Sep 17 00:00:00 2001 +From d778ec78cbc50597690495a4767dad44d9329547 Mon Sep 17 00:00:00 2001 From: Luke Wren Date: Fri, 21 Aug 2015 23:14:48 +0100 -Subject: [PATCH 039/220] Add /dev/gpiomem device for rootless user GPIO access +Subject: [PATCH 039/234] Add /dev/gpiomem device for rootless user GPIO access Signed-off-by: Luke Wren @@ -96360,10 +96360,10 @@ index 0000000..911f5b7 +MODULE_DESCRIPTION("gpiomem driver for accessing GPIO from userspace"); +MODULE_AUTHOR("Luke Wren "); -From e19c303e7d54d986e0bd3e47107a83e30329c1d0 Mon Sep 17 00:00:00 2001 +From 684fa35717d47554b4e019f45e513b58823b50dc Mon Sep 17 00:00:00 2001 From: Luke Wren Date: Sat, 5 Sep 2015 01:14:45 +0100 -Subject: [PATCH 040/220] Add SMI driver +Subject: [PATCH 040/234] Add SMI driver Signed-off-by: Luke Wren --- @@ -98314,10 +98314,10 @@ index 0000000..ee3a75e + +#endif /* BCM2835_SMI_H */ -From c0fe401b61ae4d002f6fc84438ce69c5917c580a Mon Sep 17 00:00:00 2001 +From d6893b8f68df96a0dd728a1ea8518af748d3de55 Mon Sep 17 00:00:00 2001 From: Luke Wren Date: Sat, 5 Sep 2015 01:16:10 +0100 -Subject: [PATCH 041/220] Add SMI NAND driver +Subject: [PATCH 041/234] Add SMI NAND driver Signed-off-by: Luke Wren --- @@ -98683,10 +98683,10 @@ index 0000000..b747326 + ("Driver for NAND chips using Broadcom Secondary Memory Interface"); +MODULE_AUTHOR("Luke Wren "); -From 0bc00c67aea43098c7b066e7b123379b260cc7de Mon Sep 17 00:00:00 2001 +From 90d547aa8fc1259726f56f404af4ecf9dff6ba0e Mon Sep 17 00:00:00 2001 From: Aron Szabo Date: Sat, 16 Jun 2012 12:15:55 +0200 -Subject: [PATCH 042/220] lirc: added support for RaspberryPi GPIO +Subject: [PATCH 042/234] 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 @@ -99535,10 +99535,10 @@ index 0000000..fb69624 + +#endif -From 007ef35b2cf5d8a0197e81e712b38fb72cebae2e Mon Sep 17 00:00:00 2001 +From c220c109c1a18cf786523a205b85a4ebca638624 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 3 Jul 2013 00:49:20 +0100 -Subject: [PATCH 043/220] Add cpufreq driver +Subject: [PATCH 043/234] Add cpufreq driver Signed-off-by: popcornmix --- @@ -99800,10 +99800,10 @@ index 0000000..3eb9e93 +module_init(bcm2835_cpufreq_module_init); +module_exit(bcm2835_cpufreq_module_exit); -From 9f251fdbaaf3bd895c2901413748679d68a0c644 Mon Sep 17 00:00:00 2001 +From 1184f7bb9072fe8b453e3c9a71938a16943a708f Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 26 Mar 2013 19:24:24 +0000 -Subject: [PATCH 044/220] Added hwmon/thermal driver for reporting core +Subject: [PATCH 044/234] Added hwmon/thermal driver for reporting core temperature. Thanks Dorian MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -100001,10 +100001,10 @@ index 0000000..08d8dc7 +MODULE_DESCRIPTION("Thermal driver for bcm2835 chip"); +MODULE_LICENSE("GPL"); -From 28a4399bf03eeb3ec5b7b56c9445b296e1427665 Mon Sep 17 00:00:00 2001 +From 418bd7563b83b568046489b0f4b8c67391d31445 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 17 Jun 2015 15:44:08 +0100 -Subject: [PATCH 045/220] Add Chris Boot's i2c driver +Subject: [PATCH 045/234] Add Chris Boot's i2c driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -100644,10 +100644,10 @@ index 0000000..85f411c +MODULE_LICENSE("GPL v2"); +MODULE_ALIAS("platform:" DRV_NAME); -From 75804edaed6c45d813dcee866d39445130d82539 Mon Sep 17 00:00:00 2001 +From 3c15dbca1ea1cf9b6843cb55e2fd01d4701ef874 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 046/220] char: broadcom: Add vcio module +Subject: [PATCH 046/234] char: broadcom: Add vcio module MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -100873,10 +100873,10 @@ index 0000000..c19bc20 +MODULE_DESCRIPTION("Mailbox userspace access"); +MODULE_LICENSE("GPL"); -From 80b7c5e2cc3d633b3d3a1afbdb537e2ccfe906c7 Mon Sep 17 00:00:00 2001 +From 8481c7c7094e5395ab47c8ecc6c7c12d654baf5a 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 047/220] firmware: bcm2835: Support ARCH_BCM270x +Subject: [PATCH 047/234] firmware: bcm2835: Support ARCH_BCM270x MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -100982,10 +100982,10 @@ index dd506cd..b980d53 100644 MODULE_AUTHOR("Eric Anholt "); MODULE_DESCRIPTION("Raspberry Pi firmware driver"); -From e15fddd4332bd3a762d0feef48ff2b5e3df10af0 Mon Sep 17 00:00:00 2001 +From 7e74c5de1a6c613a28ee5a5cc871661ceadd0fcd Mon Sep 17 00:00:00 2001 From: Vincent Sanders Date: Wed, 30 Jan 2013 12:45:18 +0000 -Subject: [PATCH 048/220] bcm2835: add v4l2 camera device +Subject: [PATCH 048/234] bcm2835: add v4l2 camera device - Supports raw YUV capture, preview, JPEG and H264. - Uses videobuf2 for data transfer, using dma_buf. @@ -108370,10 +108370,10 @@ index 0000000..9d1d11e + +#endif /* MMAL_VCHIQ_H */ -From 91e833ab0b220bb0bb810bb9605b0a03cd76baa8 Mon Sep 17 00:00:00 2001 +From 2a1cb83a705ce839581fbabeb9a8db3dad478ccf Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 11 May 2015 09:00:42 +0100 -Subject: [PATCH 049/220] scripts: Add mkknlimg and knlinfo scripts from tools +Subject: [PATCH 049/234] scripts: Add mkknlimg and knlinfo scripts from tools repo The Raspberry Pi firmware looks for a trailer on the kernel image to @@ -108838,10 +108838,10 @@ index 0000000..3998d43 + return (($val eq 'y') || ($val eq '1')); +} -From 918b9e451bbaebb775725a292fd3b6e3d4cf804f Mon Sep 17 00:00:00 2001 +From 3c9e2867950ad9a36623e07c2d1641445bab50dd Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 5 Dec 2014 17:26:26 +0000 -Subject: [PATCH 050/220] fdt: Add support for the CONFIG_CMDLINE_EXTEND option +Subject: [PATCH 050/234] fdt: Add support for the CONFIG_CMDLINE_EXTEND option --- drivers/of/fdt.c | 29 ++++++++++++++++++++++++----- @@ -108896,10 +108896,10 @@ index 655f79d..fdc4501 100644 pr_debug("Command line is: %s\n", (char*)data); -From d1fdaf68df66e82bea1081b490ebeea414d69203 Mon Sep 17 00:00:00 2001 +From 336ecbfbddc122378578b727f46bfe71858aaa05 Mon Sep 17 00:00:00 2001 From: notro Date: Wed, 9 Jul 2014 14:46:08 +0200 -Subject: [PATCH 051/220] BCM2708: Add core Device Tree support +Subject: [PATCH 051/234] BCM2708: Add core Device Tree support Add the bare minimum needed to boot BCM2708 from a Device Tree. @@ -113625,10 +113625,10 @@ index 0000000..66a98f6 + }; +}; -From da7cdef4979282624e0e7527c3c8334a59f39676 Mon Sep 17 00:00:00 2001 +From 83d747d78be86190ad18c8c49e0d5518ac6bf83b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Sat, 15 Aug 2015 20:47:07 +0200 -Subject: [PATCH 052/220] bcm2835: Match with BCM2708 Device Trees +Subject: [PATCH 052/234] bcm2835: Match with BCM2708 Device Trees MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -114146,10 +114146,10 @@ index 864a3ef..3256bff 100644 + status = "okay"; +}; -From b28366cb5b514e5c59586f9a5509d3afff5337d5 Mon Sep 17 00:00:00 2001 +From 1b4ab4d431eed3ced1dfdcb4ac14ce3937b74244 Mon Sep 17 00:00:00 2001 From: Siarhei Siamashka Date: Mon, 17 Jun 2013 13:32:11 +0300 -Subject: [PATCH 053/220] fbdev: add FBIOCOPYAREA ioctl +Subject: [PATCH 053/234] fbdev: add FBIOCOPYAREA ioctl Based on the patch authored by Ali Gholami Rudi at https://lkml.org/lkml/2009/7/13/153 @@ -114242,10 +114242,10 @@ index fb795c3..fa72af0 100644 #define FB_TYPE_PACKED_PIXELS 0 /* Packed Pixels */ #define FB_TYPE_PLANES 1 /* Non interleaved planes */ -From b4596a50cab2130b5370cd2ecddf0827c014b2ca Mon Sep 17 00:00:00 2001 +From 3b5139c9458b2665a229f83876d02329577f6c6f Mon Sep 17 00:00:00 2001 From: Harm Hanemaaijer Date: Thu, 20 Jun 2013 20:21:39 +0200 -Subject: [PATCH 054/220] Speed up console framebuffer imageblit function +Subject: [PATCH 054/234] 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 @@ -114454,10 +114454,10 @@ index a2bb276..436494f 100644 start_index, pitch_index); } else -From e5141ba61decc8952b87bdc91fab78f5be7e2b33 Mon Sep 17 00:00:00 2001 +From 15afa9ccdb6c5e15d3b646e203dcd20b44fffb48 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 26 Mar 2013 17:26:38 +0000 -Subject: [PATCH 055/220] Allow mac address to be set in smsc95xx +Subject: [PATCH 055/234] Allow mac address to be set in smsc95xx Signed-off-by: popcornmix --- @@ -114548,10 +114548,10 @@ index 9c0da18..3244a90 100755 if (smsc95xx_read_eeprom(dev, EEPROM_MAC_OFFSET, ETH_ALEN, dev->net->dev_addr) == 0) { -From 53408f20f48db00c8d71311ed885f91e2ba41b3f Mon Sep 17 00:00:00 2001 +From 68aca36345f6d2a31124161d2971ed2ec1138fa7 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 8 May 2013 11:46:50 +0100 -Subject: [PATCH 056/220] enabling the realtime clock 1-wire chip DS1307 and +Subject: [PATCH 056/234] 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 @@ -114801,10 +114801,10 @@ index d58594a..feae942 100644 unsigned int ext_pullup_enable_pin; unsigned int pullup_duration; -From 85c41b7e97631944a2e224c3b3d966f8bc240575 Mon Sep 17 00:00:00 2001 +From 715498e3ade34ee0329faa23ce35ce3ae117c0b0 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 18 Dec 2013 22:16:19 +0000 -Subject: [PATCH 057/220] config: Enable CONFIG_MEMCG, but leave it disabled +Subject: [PATCH 057/234] config: Enable CONFIG_MEMCG, but leave it disabled (due to memory cost). Enable with cgroup_enable=memory. --- @@ -114812,10 +114812,10 @@ Subject: [PATCH 057/220] config: Enable CONFIG_MEMCG, but leave it disabled 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/kernel/cgroup.c b/kernel/cgroup.c -index fb1ecfd..888d308 100644 +index dc94f8b..3dda8a8 100644 --- a/kernel/cgroup.c +++ b/kernel/cgroup.c -@@ -5286,7 +5286,7 @@ int __init cgroup_init_early(void) +@@ -5302,7 +5302,7 @@ int __init cgroup_init_early(void) return 0; } @@ -114824,7 +114824,7 @@ index fb1ecfd..888d308 100644 /** * cgroup_init - cgroup initialization -@@ -5782,6 +5782,27 @@ static int __init cgroup_disable(char *str) +@@ -5798,6 +5798,27 @@ static int __init cgroup_disable(char *str) } __setup("cgroup_disable=", cgroup_disable); @@ -114853,10 +114853,10 @@ index fb1ecfd..888d308 100644 * css_tryget_online_from_dir - get corresponding css from a cgroup dentry * @dentry: directory dentry of interest -From c5c0ae52947ae5062cf1c75174c57a466408247e Mon Sep 17 00:00:00 2001 +From 54a1f8fa679c406f256540302a8d0555d11bdbd5 Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Fri, 22 Nov 2013 14:59:51 +0100 -Subject: [PATCH 058/220] ASoC: Add support for PCM5102A codec +Subject: [PATCH 058/234] ASoC: Add support for PCM5102A codec Some definitions to support the PCM5102A codec by Texas Instruments. @@ -114989,10 +114989,10 @@ index 0000000..7c6598e +MODULE_AUTHOR("Florian Meier "); +MODULE_LICENSE("GPL v2"); -From a84f726a98074d1a59f3c7b7e78de23f02eac00f Mon Sep 17 00:00:00 2001 +From e825f277a64734a8761848618d706ed28cb7bc8c Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Fri, 22 Nov 2013 19:19:08 +0100 -Subject: [PATCH 059/220] ASoC: Add support for HifiBerry DAC +Subject: [PATCH 059/234] ASoC: Add support for HifiBerry DAC This adds a machine driver for the HifiBerry DAC. It is a sound card that can @@ -115162,10 +115162,10 @@ index 0000000..3ab0f47 +MODULE_DESCRIPTION("ASoC Driver for HifiBerry DAC"); +MODULE_LICENSE("GPL v2"); -From 2dcfef900197d433421c0bda384725ad4a9d6ef6 Mon Sep 17 00:00:00 2001 +From 275e998fab80613632ecf2def47916cf39866abd Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Fri, 22 Nov 2013 19:21:34 +0100 -Subject: [PATCH 060/220] ASoC: Add support for Rpi-DAC +Subject: [PATCH 060/234] ASoC: Add support for Rpi-DAC --- sound/soc/bcm/Kconfig | 7 +++ @@ -115452,10 +115452,10 @@ index 0000000..afe1b41 +MODULE_AUTHOR("Florian Meier "); +MODULE_LICENSE("GPL v2"); -From 597b34d19fe280ccf307bf4aaa299f400a45b1eb Mon Sep 17 00:00:00 2001 +From b26742d1b3bb01fb18689245463c445ef89a2563 Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Wed, 15 Jan 2014 21:41:23 +0100 -Subject: [PATCH 061/220] ASoC: wm8804: Implement MCLK configuration options, +Subject: [PATCH 061/234] 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 @@ -115495,10 +115495,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 4834b496fe213ad958d035eb917af3e3a00a43ad Mon Sep 17 00:00:00 2001 +From 53ee6d9b8df8dee73efc8eb9c4a2a933709f996a Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Wed, 15 Jan 2014 21:42:08 +0100 -Subject: [PATCH 062/220] ASoC: BCM:Add support for HiFiBerry Digi. Driver is +Subject: [PATCH 062/234] ASoC: BCM:Add support for HiFiBerry Digi. Driver is based on the patched WM8804 driver. Signed-off-by: Daniel Matuschek @@ -115785,10 +115785,10 @@ index 0000000..80732b8 +MODULE_DESCRIPTION("ASoC Driver for HifiBerry Digi"); +MODULE_LICENSE("GPL v2"); -From 6f5d23ea45251f2fa5ec014befd31f43cc869f4c Mon Sep 17 00:00:00 2001 +From 7a49ce152226bdc88cb60ce77ba271a6d20ec522 Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Thu, 16 Jan 2014 07:36:35 +0100 -Subject: [PATCH 063/220] ASoC: wm8804: Set idle_bias_off to false Idle bias +Subject: [PATCH 063/234] ASoC: wm8804: Set idle_bias_off to false Idle bias has been change to remove warning on driver startup Signed-off-by: Daniel Matuschek @@ -115810,10 +115810,10 @@ index 5795fb1..c846716 100644 .dapm_widgets = wm8804_dapm_widgets, .num_dapm_widgets = ARRAY_SIZE(wm8804_dapm_widgets), -From c320e752d4a779b44f257b4784ca8665c66ea2f2 Mon Sep 17 00:00:00 2001 +From 997d633a18686b13447445bae2efedf75d1d4655 Mon Sep 17 00:00:00 2001 From: Gordon Garrity Date: Sat, 8 Mar 2014 16:56:57 +0000 -Subject: [PATCH 064/220] Add IQaudIO Sound Card support for Raspberry Pi +Subject: [PATCH 064/234] Add IQaudIO Sound Card support for Raspberry Pi Set a limit of 0dB on Digital Volume Control @@ -115996,10 +115996,10 @@ index 0000000..37038d4 +MODULE_DESCRIPTION("ASoC Driver for IQAudio DAC"); +MODULE_LICENSE("GPL v2"); -From 43b360019a8d5c10c560102a4e0e84cca2489f83 Mon Sep 17 00:00:00 2001 +From e19d94cbff54cd07ece267c118e1626319d041dd Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 14 Jul 2014 22:02:09 +0100 -Subject: [PATCH 065/220] hid: Reduce default mouse polling interval to 60Hz +Subject: [PATCH 065/234] hid: Reduce default mouse polling interval to 60Hz Reduces overhead when using X --- @@ -116035,10 +116035,10 @@ index 5dd426f..9ae0cd5 100644 ret = -ENOMEM; if (usb_endpoint_dir_in(endpoint)) { -From 655fec62e4702ba6ef037aa285275cca6b95fab9 Mon Sep 17 00:00:00 2001 +From f5aa12666cbbddc0669ccdce0a5268cad467bbf8 Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Mon, 4 Aug 2014 10:06:56 +0200 -Subject: [PATCH 066/220] Added support for HiFiBerry DAC+ +Subject: [PATCH 066/234] 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. @@ -116233,10 +116233,10 @@ index 0000000..11e4f39 +MODULE_DESCRIPTION("ASoC Driver for HiFiBerry DAC+"); +MODULE_LICENSE("GPL v2"); -From b19ad321a57b85b83b4bf4380ced71885f36e6b2 Mon Sep 17 00:00:00 2001 +From 0d5bec6303e174c3d58412a2a43c054a5b0ea9f8 Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Mon, 4 Aug 2014 11:09:58 +0200 -Subject: [PATCH 067/220] Added driver for HiFiBerry Amp amplifier add-on board +Subject: [PATCH 067/234] 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. @@ -117067,10 +117067,10 @@ index 0000000..8f019e0 + +#endif /* _TAS5713_H */ -From 194e0f05820a1b92eec669902d26999001480e85 Mon Sep 17 00:00:00 2001 +From 3a732a5723ad9d452c3da2720e9129dbe7aa8c5f Mon Sep 17 00:00:00 2001 From: Ryan Coe Date: Sat, 31 Jan 2015 18:25:49 -0700 -Subject: [PATCH 068/220] Update ds1307 driver for device-tree support +Subject: [PATCH 068/234] Update ds1307 driver for device-tree support Signed-off-by: Ryan Coe --- @@ -117097,10 +117097,10 @@ index aa705bb..1cb13fe 100644 .driver = { .name = "rtc-ds1307", -From e0f8460b71d3130d5d21452049ffdcb8bbb15be0 Mon Sep 17 00:00:00 2001 +From 7a7ff0be55b1e3a67326d3c03c65b45434dd320d Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 6 Feb 2015 13:50:57 +0000 -Subject: [PATCH 069/220] BCM270x_DT: Add pwr_led, and the required "input" +Subject: [PATCH 069/234] BCM270x_DT: Add pwr_led, and the required "input" trigger The "input" trigger makes the associated GPIO an input. This is to support @@ -117279,10 +117279,10 @@ index fa359c7..4b25a1a 100644 /* Set LED brightness level */ /* Must not sleep, use a workqueue if needed */ -From 7560266f8cc30e6cb31db57c9092773287447cc0 Mon Sep 17 00:00:00 2001 +From 43b58f47b9e73a5fd2c9a9ca2e278fb89d31b6ec Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 27 Feb 2015 15:10:24 +0000 -Subject: [PATCH 070/220] enc28j60: Add device tree compatible string and an +Subject: [PATCH 070/234] enc28j60: Add device tree compatible string and an overlay --- @@ -117311,10 +117311,10 @@ index 86ea17e..a1b20c1 100644 .probe = enc28j60_probe, .remove = enc28j60_remove, -From 3bda1a355570493dbdec3f0ffb97128c9aaf2c08 Mon Sep 17 00:00:00 2001 +From e00b8af19b9249285aa8519b5666a7296b15f360 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Wed, 25 Mar 2015 09:26:17 +0100 -Subject: [PATCH 071/220] Add driver for rpi-proto +Subject: [PATCH 071/234] 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 @@ -117529,10 +117529,10 @@ index 0000000..c6e45a0 +MODULE_DESCRIPTION("ASoC Driver for Raspberry Pi connected to PROTO board (WM8731)"); +MODULE_LICENSE("GPL"); -From e8f36f5d9e4728580868ba048a8c842ba7a5187d Mon Sep 17 00:00:00 2001 +From d09a261738801b95a8a97cdf32c181f0dc64eb7a Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 13 Apr 2015 17:16:29 +0100 -Subject: [PATCH 072/220] config: Add default configs +Subject: [PATCH 072/234] config: Add default configs --- arch/arm/configs/bcm2709_defconfig | 1254 +++++++++++++++++++++++++++++++++++ @@ -120073,10 +120073,10 @@ index 0000000..1d1b799 +CONFIG_CRC_ITU_T=y +CONFIG_LIBCRC32C=y -From 4f6ecced6a6f13da5e91319f10f79131fbe00385 Mon Sep 17 00:00:00 2001 +From 0dd8b9878937bb33b785671b5ab80940e48f96fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Wed, 29 Apr 2015 17:24:02 +0200 -Subject: [PATCH 073/220] bcm2835: bcm2835_defconfig +Subject: [PATCH 073/234] bcm2835: bcm2835_defconfig MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -121502,10 +121502,10 @@ index 31cb073..fdb2e2a 100644 # CONFIG_XZ_DEC_ARM is not set # CONFIG_XZ_DEC_ARMTHUMB is not set -From 720dc241d47fd83550602fa897e3a723153a4b9b Mon Sep 17 00:00:00 2001 +From f8527a3c8859d7eb69d8e8229f92a7265cafaf4b Mon Sep 17 00:00:00 2001 From: Gordon Hollingworth Date: Tue, 12 May 2015 14:47:56 +0100 -Subject: [PATCH 074/220] rpi-ft5406: Add touchscreen driver for pi LCD display +Subject: [PATCH 074/234] 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 @@ -121800,10 +121800,10 @@ index 0000000..b27dbee +MODULE_DESCRIPTION("Touchscreen driver for memory based FT5406"); +MODULE_LICENSE("GPL"); -From a86f1cf0661f306457bd8b8a53647abce2d3490f Mon Sep 17 00:00:00 2001 +From bab36a045c0c34ec0ca5e6fa194a300017be3ebd Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 13 Oct 2014 11:47:53 +0100 -Subject: [PATCH 075/220] Improve __copy_to_user and __copy_from_user +Subject: [PATCH 075/234] Improve __copy_to_user and __copy_from_user performance Provide a __copy_from_user that uses memcpy. On BCM2708, use @@ -123342,10 +123342,10 @@ index 588bbc2..c29df92 100644 static unsigned long noinline __clear_user_memset(void __user *addr, unsigned long n) -From 0a5bb180e28f3f7a5fcbdda7f00825f1a5b3912a Mon Sep 17 00:00:00 2001 +From 25cdd0781ca4965cc732e7eec445d90a6f691737 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 25 Jun 2015 12:16:11 +0100 -Subject: [PATCH 076/220] gpio-poweroff: Allow it to work on Raspberry Pi +Subject: [PATCH 076/234] 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 @@ -123380,10 +123380,10 @@ index be3d81f..a030ae9 100644 "%s: pm_power_off function already registered", __func__); -From 93b0d9103ea1679f844514d91419861673e626a6 Mon Sep 17 00:00:00 2001 +From 87d17dbd873e7d849c31fbbb8dd691fb388a1587 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 14 Jul 2015 10:26:09 +0100 -Subject: [PATCH 077/220] spidev: Add "spidev" compatible string to silence +Subject: [PATCH 077/234] spidev: Add "spidev" compatible string to silence warning See: https://github.com/raspberrypi/linux/issues/1054 @@ -123404,10 +123404,10 @@ index d0e7dfc..57b0760 100644 }; MODULE_DEVICE_TABLE(of, spidev_dt_ids); -From 9097d8fb3892fc3e1201383f0195c650b00aa9aa Mon Sep 17 00:00:00 2001 +From 76e6d5dc690a0ffc2b3fab99e4b77eca53cfe760 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 14 Jul 2015 17:00:18 +0100 -Subject: [PATCH 078/220] scripts/dtc: Add overlay support +Subject: [PATCH 078/234] scripts/dtc: Add overlay support --- scripts/dtc/checks.c | 119 ++- @@ -127812,10 +127812,10 @@ index 5b8c7d5..86b7338 100644 -#define DTC_VERSION "DTC 1.4.1-g9d3649bd" +#define DTC_VERSION "DTC 1.4.1-g9d3649bd-dirty" -From 6ce5de5b5c39618afcb44a67b5c124c7f7e184ff Mon Sep 17 00:00:00 2001 +From fabdcf971d60696f0cd1bcaa5eadcae1bcb356cd Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 14 Jul 2015 14:32:47 +0100 -Subject: [PATCH 079/220] mfd: Add Raspberry Pi Sense HAT core driver +Subject: [PATCH 079/234] mfd: Add Raspberry Pi Sense HAT core driver --- drivers/input/joystick/Kconfig | 8 + @@ -128681,10 +128681,10 @@ index 0000000..56196dc + +#endif -From f4ffbbe422e65f54f81f727eb03077e0e60abbc0 Mon Sep 17 00:00:00 2001 +From 5edc06a3760e5529a8855c96321e93ebca877703 Mon Sep 17 00:00:00 2001 From: Jan Grulich Date: Mon, 24 Aug 2015 16:03:47 +0100 -Subject: [PATCH 080/220] RaspiDAC3 support +Subject: [PATCH 080/234] RaspiDAC3 support Signed-off-by: Jan Grulich @@ -128932,10 +128932,10 @@ index 0000000..3cabf5b +MODULE_DESCRIPTION("ASoC Driver for RaspiDAC Rev.3x"); +MODULE_LICENSE("GPL v2"); -From 160bb52c33e5e9d3873725007920a5ab034df633 Mon Sep 17 00:00:00 2001 +From e44922dbe04bdf51bddcbded96743327197dbb30 Mon Sep 17 00:00:00 2001 From: Jan Grulich Date: Mon, 24 Aug 2015 16:02:34 +0100 -Subject: [PATCH 081/220] tpa6130a2: Add headphone switch control +Subject: [PATCH 081/234] tpa6130a2: Add headphone switch control Signed-off-by: Jan Grulich --- @@ -129026,10 +129026,10 @@ index 11d85c5..3caaa17 100644 /* -From 959618842cac2f89aca253058941864fc09453de Mon Sep 17 00:00:00 2001 +From 381630753b8967478d2a95f51db08bd451b3063a Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 28 Sep 2015 23:38:59 +0100 -Subject: [PATCH 082/220] irq-bcm2835: Fix building with 2708 +Subject: [PATCH 082/234] irq-bcm2835: Fix building with 2708 --- drivers/irqchip/irq-bcm2835.c | 3 ++- @@ -129057,10 +129057,10 @@ index 20deb28..c02bf8a 100644 } init_FIQ(FIQ_START); -From eab058f164321b98332847fd7e33ce76a416b953 Mon Sep 17 00:00:00 2001 +From b2703a8df5d90bf399e23828a0a423b6ec1d0cba Mon Sep 17 00:00:00 2001 From: P33M Date: Wed, 21 Oct 2015 14:55:21 +0100 -Subject: [PATCH 083/220] rpi_display: add backlight driver and overlay +Subject: [PATCH 083/234] 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 @@ -129328,10 +129328,10 @@ index 525816d..b011489 100644 RPI_FIRMWARE_VCHIQ_INIT = 0x00048010, -From 265b00fd10fd38d5fc40057f0dc9a27f9e643f13 Mon Sep 17 00:00:00 2001 +From 802d883971b550c25165c1fb86ff5f8122a9614b Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Mon, 16 Nov 2015 14:05:35 +0000 -Subject: [PATCH 084/220] bcm2835-dma: Fix up convert to DMA pool +Subject: [PATCH 084/234] bcm2835-dma: Fix up convert to DMA pool --- drivers/dma/bcm2835-dma.c | 36 ++++++++++++++++++++++++++---------- @@ -129416,10 +129416,10 @@ index 0adc347..985019b 100644 /* Next block is empty. */ control_block->next = 0; -From 4b0129fc722f7157ef9a0bd717f796b33582f009 Mon Sep 17 00:00:00 2001 +From ee13bd5c60aeca7fd55cd1a68d5007421fd5be67 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 11 Nov 2015 11:38:59 +0000 -Subject: [PATCH 085/220] scripts: Multi-platform support for mkknlimg and +Subject: [PATCH 085/234] scripts: Multi-platform support for mkknlimg and knlinfo The firmware uses tags in the kernel trailer to choose which dtb file @@ -129668,10 +129668,10 @@ index 3998d43..005f404 100755 - return (($val eq 'y') || ($val eq '1')); -} -From a015d1fdd7a5313ba90af71ff370fe0b7625ef1c Mon Sep 17 00:00:00 2001 +From 62f21e00ac669231c5a9ba3e73e45d68e4e9ccb7 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 2 Mar 2015 13:01:12 -0800 -Subject: [PATCH 086/220] drm/vc4: Add suport for 3D rendering using the V3D +Subject: [PATCH 086/234] drm/vc4: Add suport for 3D rendering using the V3D engine. This is a squash of the out-of-tree development series. Since that @@ -135276,10 +135276,10 @@ index 0000000..499daae + +#endif /* _UAPI_VC4_DRM_H_ */ -From 2a2d56e55de5ced7d01cb4db7a80bdcdccd3f2c4 Mon Sep 17 00:00:00 2001 +From 730955cd10b747167ce0315ca1f65af5446d3f61 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Wed, 14 Oct 2015 11:32:14 -0700 -Subject: [PATCH 087/220] drm/vc4: Force HDMI to connected. +Subject: [PATCH 087/234] drm/vc4: Force HDMI to connected. For some reason on the downstream tree, the HPD GPIO isn't working. @@ -135302,10 +135302,10 @@ index da9a36d..d15c529 100644 if (gpio_get_value(vc4->hdmi->hpd_gpio)) return connector_status_connected; -From ca205a3bef8b9c080363a12148a3e6f013081b8a Mon Sep 17 00:00:00 2001 +From dc6c82b433488ea27069410bb1d95e1b4855e854 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 19 Oct 2015 08:23:18 -0700 -Subject: [PATCH 088/220] drm/vc4: bo cache locking fixes. +Subject: [PATCH 088/234] drm/vc4: bo cache locking fixes. Signed-off-by: Eric Anholt --- @@ -135454,10 +135454,10 @@ index 8cc89d1..c079b82 100644 /* Sequence number for the last job queued in job_list. * Starts at 0 (no jobs emitted). -From e8481325c7efc10d87d62cafc3b0c4495cef1dd5 Mon Sep 17 00:00:00 2001 +From 114a74d272f9c13744574ff1ab1c84db68b5824c Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 19 Oct 2015 08:29:41 -0700 -Subject: [PATCH 089/220] drm/vc4: bo cache locking cleanup. +Subject: [PATCH 089/234] drm/vc4: bo cache locking cleanup. Signed-off-by: Eric Anholt --- @@ -135549,10 +135549,10 @@ index af0fde6..acd360c 100644 static void vc4_bo_cache_time_timer(unsigned long data) -From f8c7534d294a7b6ca6c91075d9b0b09b6e980a6c Mon Sep 17 00:00:00 2001 +From 14ca113d8c53efafbd5af98c4d37210873302b18 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 19 Oct 2015 08:32:24 -0700 -Subject: [PATCH 090/220] drm/vc4: Use job_lock to protect seqno_cb_list. +Subject: [PATCH 090/234] drm/vc4: Use job_lock to protect seqno_cb_list. We're (mostly) not supposed to be using struct_mutex in drivers these days. @@ -135606,10 +135606,10 @@ index 361390b..b1853b2 100644 return ret; } -From d49c98713ffe0b1a3d8b8007b8257022f7d6323b Mon Sep 17 00:00:00 2001 +From 4c95c3951ee48334fba5c60c17612c2955372d2a Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 19 Oct 2015 08:44:35 -0700 -Subject: [PATCH 091/220] drm/vc4: Drop struct_mutex around CL validation. +Subject: [PATCH 091/234] drm/vc4: Drop struct_mutex around CL validation. We were using it so that we could make sure that shader validation state didn't change while we were validating, but now shader @@ -135672,10 +135672,10 @@ index b1853b2..32f375a 100644 } -From 682d611be0b0f07eae31a1eb4815d94adccd7d9c Mon Sep 17 00:00:00 2001 +From a7e0e7e5878fe920c674abb567159c07673ca118 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 19 Oct 2015 08:44:35 -0700 -Subject: [PATCH 092/220] drm/vc4: Drop struct_mutex around CL validation. +Subject: [PATCH 092/234] drm/vc4: Drop struct_mutex around CL validation. We were using it so that we could make sure that shader validation state didn't change while we were validating, but now shader @@ -135749,10 +135749,10 @@ index 32f375a..55551ea 100644 return ret; } -From cbe583e0c4f78ec7ee058b3fed31cc312e08fdb1 Mon Sep 17 00:00:00 2001 +From 466cf8e66d585dc067b4a7b6a43992abb469df9f Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Tue, 20 Oct 2015 13:59:15 +0100 -Subject: [PATCH 093/220] drm/vc4: Add support for more display plane formats. +Subject: [PATCH 093/234] drm/vc4: Add support for more display plane formats. Signed-off-by: Eric Anholt --- @@ -135787,10 +135787,10 @@ index 65e5455..0f85eb5 100644 static const struct hvs_format *vc4_get_hvs_format(u32 drm_format) -From 06bd9769b3230b383894c73906efb804861823e9 Mon Sep 17 00:00:00 2001 +From 3d670774388611d6a536e68e6e37e6639c3782b9 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Fri, 23 Oct 2015 12:31:56 +0100 -Subject: [PATCH 094/220] drm/vc4: No need to stop the stopped threads. +Subject: [PATCH 094/234] drm/vc4: No need to stop the stopped threads. This was leftover debug code from the hackdriver. We never submit unless the thread is already idle. @@ -135816,10 +135816,10 @@ index 55551ea..eeb0925 100644 barrier(); -From b13e80df9779eb71b316db4bd63e9cc4dbbe1221 Mon Sep 17 00:00:00 2001 +From 09bea25699571cffdb44d00c1b1a25d82284c1d4 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Fri, 23 Oct 2015 12:33:43 +0100 -Subject: [PATCH 095/220] drm/vc4: Remove extra barrier()s aroudn CTnCA/CTnEA +Subject: [PATCH 095/234] drm/vc4: Remove extra barrier()s aroudn CTnCA/CTnEA setup. The writel() that these expand to already does barriers. @@ -135852,10 +135852,10 @@ index eeb0925..0cea723 100644 int -From 54aab1fc2b80dbb3a1d26bda40bf0072c8b6e9b3 Mon Sep 17 00:00:00 2001 +From 326f7bdb649e45e334296a773cf3a64061186b35 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Fri, 23 Oct 2015 14:57:22 +0100 -Subject: [PATCH 096/220] drm/vc4: Fix a typo in a V3D debug register. +Subject: [PATCH 096/234] drm/vc4: Fix a typo in a V3D debug register. Signed-off-by: Eric Anholt --- @@ -135890,10 +135890,10 @@ index b9cb7cf..cf35f58 100644 REGDEF(V3D_FDBGB), REGDEF(V3D_FDBGR), -From e24ed8459d7ceb69f4b2bb1b110316fd66d70156 Mon Sep 17 00:00:00 2001 +From 4b67a9e16b70a7bf3fa151dcffc5b94e30be985b Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 2 Nov 2015 17:07:33 +0000 -Subject: [PATCH 097/220] drm/vc4: Enable VC4 modules, and increase CMA size +Subject: [PATCH 097/234] drm/vc4: Enable VC4 modules, and increase CMA size with overlay If using the overlay, be careful not to boot to GUI or run startx, @@ -136053,10 +136053,10 @@ index 146add9..d6aa058 100644 CONFIG_FB_BCM2708=y CONFIG_FB_UDL=m -From a1f76174a22bad4e7dab94718e30df2458b7e59a Mon Sep 17 00:00:00 2001 +From 8d63e6f4ff2e2d8b65f5af4bd507a9cca1608325 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 18 Nov 2015 18:29:58 +0000 -Subject: [PATCH 098/220] squash: fixups +Subject: [PATCH 098/234] squash: fixups --- drivers/gpu/drm/vc4/Kconfig | 2 +- @@ -136103,10 +136103,10 @@ index c83287a..2082713 100644 drm_atomic_helper_commit_modeset_enables(dev, state); -From c302ddb4c02a7f7459d0ce5d9abdfb01c322d82e Mon Sep 17 00:00:00 2001 +From cfdc9afe86512c58e1175f1744b3eb4872eac05d Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 18 Nov 2015 20:26:03 +0000 -Subject: [PATCH 099/220] squash: add missing vc4-kms-v3d-overlay.dtb to +Subject: [PATCH 099/234] squash: add missing vc4-kms-v3d-overlay.dtb to makefile --- @@ -136126,10 +136126,10 @@ index fb7ac49..fc09bfb 100644 dtb-$(RPI_DT_OVERLAYS) += w1-gpio-overlay.dtb dtb-$(RPI_DT_OVERLAYS) += w1-gpio-pullup-overlay.dtb -From dd4882f9fbce68acd27f04792805473ae2bfb417 Mon Sep 17 00:00:00 2001 +From 3199b5f30db4ac952b1edc14c395150f1862d4fd Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 12 Oct 2015 11:23:34 -0700 -Subject: [PATCH 100/220] clk: bcm2835: Also build the driver for downstream +Subject: [PATCH 100/234] clk: bcm2835: Also build the driver for downstream kernels. Signed-off-by: Eric Anholt @@ -136151,10 +136151,10 @@ index 3fc9506..a1b4cbc 100644 obj-$(CONFIG_ARCH_BCM_CYGNUS) += clk-cygnus.o obj-$(CONFIG_ARCH_BCM_NSP) += clk-nsp.o -From 5462b88624200a29baca5adaef048d3dbc4626e7 Mon Sep 17 00:00:00 2001 +From 18b004997924daa2670a41daf8f99645fa306000 Mon Sep 17 00:00:00 2001 From: Holger Steinhaus Date: Sat, 14 Nov 2015 18:37:43 +0100 -Subject: [PATCH 101/220] dts: Added overlay for gpio_ir_recv driver +Subject: [PATCH 101/234] dts: Added overlay for gpio_ir_recv driver --- arch/arm/boot/dts/overlays/Makefile | 1 + @@ -136263,10 +136263,10 @@ index 0000000..a2d6bc7 + }; +}; -From 83785d0e067305676bcf0f7f80ca87022263937b Mon Sep 17 00:00:00 2001 +From 4e046619d2140c6e63c5d06e3c98c12ccb979a01 Mon Sep 17 00:00:00 2001 From: Alistair Buxton Date: Sun, 1 Nov 2015 22:27:56 +0000 -Subject: [PATCH 102/220] Build i2c_gpio module and add a device tree overlay +Subject: [PATCH 102/234] Build i2c_gpio module and add a device tree overlay to configure it. --- @@ -136375,10 +136375,10 @@ index d6aa058..51dc019 100644 CONFIG_SPI_BCM2835=m CONFIG_SPI_SPIDEV=y -From 1c711a92bac72da22ac8ea9623991ebc4ba9f990 Mon Sep 17 00:00:00 2001 +From e76a0190ca7aef27bc9cb71fa5973e34c5e74651 Mon Sep 17 00:00:00 2001 From: mwilliams03 Date: Sun, 18 Oct 2015 17:07:24 -0700 -Subject: [PATCH 103/220] New overlay for PiScreen2r +Subject: [PATCH 103/234] New overlay for PiScreen2r --- arch/arm/boot/dts/overlays/Makefile | 1 + @@ -136531,10 +136531,10 @@ index 0000000..7c018e0 +}; + -From 846de308457febf0a988a7d1fcb416103771810c Mon Sep 17 00:00:00 2001 +From 037e1879901fcb2be1344d5775c0685ead051b1a Mon Sep 17 00:00:00 2001 From: Ondrej Wisniewski Date: Fri, 6 Nov 2015 15:01:28 +0100 -Subject: [PATCH 104/220] dts: Added overlay for Adafruit PiTFT 2.8" capacitive +Subject: [PATCH 104/234] dts: Added overlay for Adafruit PiTFT 2.8" capacitive touch screen --- @@ -136684,10 +136684,10 @@ index 0000000..48920e9 + }; +}; -From cd601889aedcb4d49590fc91d5c2988cad2e6d85 Mon Sep 17 00:00:00 2001 +From ad77c59223d9ff5f68f52275fa02268e3fcbcea1 Mon Sep 17 00:00:00 2001 From: Stuart MacLean Date: Fri, 2 Oct 2015 15:12:59 +0100 -Subject: [PATCH 105/220] Add support for the HiFiBerry DAC+ Pro. +Subject: [PATCH 105/234] Add support for the HiFiBerry DAC+ Pro. The HiFiBerry DAC+ and DAC+ Pro products both use the existing bcm sound driver with the DAC+ Pro having a special clock device driver representing the two high precision oscillators. @@ -137235,10 +137235,10 @@ index 047c489..090fe0e 100644 dev_err(dev, "No LRCLK?\n"); return -EINVAL; -From 7a6f317933c0a1319bbf955fd705cc0fa33364a5 Mon Sep 17 00:00:00 2001 +From 832f1f8854b159b771a1dd5602793f4ddeb531f0 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 5 Oct 2015 10:47:45 +0100 -Subject: [PATCH 106/220] BCM270X_DT: Add at86rf233 overlay +Subject: [PATCH 106/234] BCM270X_DT: Add at86rf233 overlay Add an overlay to support the Atmel AT86RF233 WPAN transceiver on spi0.0. @@ -137373,10 +137373,10 @@ index 0000000..0460269 + }; +}; -From e8bb4b5844abce1cdb3911c6904931687b401e6d Mon Sep 17 00:00:00 2001 +From 91fa81779b1f5d1f8bd2caf180676a794c813eb1 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Thu, 18 Dec 2014 16:07:15 -0800 -Subject: [PATCH 107/220] mm: Remove the PFN busy warning +Subject: [PATCH 107/234] mm: Remove the PFN busy warning See commit dae803e165a11bc88ca8dbc07a11077caf97bbcb -- the warning is expected sometimes when using CMA. However, that commit still spams @@ -137388,10 +137388,10 @@ Signed-off-by: Eric Anholt 1 file changed, 2 deletions(-) diff --git a/mm/page_alloc.c b/mm/page_alloc.c -index 9d666df..b682acc 100644 +index c69531a..dc484d3 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c -@@ -6760,8 +6760,6 @@ int alloc_contig_range(unsigned long start, unsigned long end, +@@ -6780,8 +6780,6 @@ int alloc_contig_range(unsigned long start, unsigned long end, /* Make sure the range is really isolated. */ if (test_pages_isolated(outer_start, end, false)) { @@ -137401,10 +137401,10 @@ index 9d666df..b682acc 100644 goto done; } -From f856eef0133f2109a85b25cf6129479578c3bde2 Mon Sep 17 00:00:00 2001 +From 1615d4ace228c85f2b188d4fc7b2f0a8a0e18ae1 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Wed, 19 Nov 2014 12:06:38 -0800 -Subject: [PATCH 108/220] drm: Put an optional field in the driver struct for +Subject: [PATCH 108/234] drm: Put an optional field in the driver struct for GEM obj struct size. This allows a driver to derive from the CMA object without copying all @@ -137446,10 +137446,10 @@ index 0a271ca..54f5469 100644 int num_ioctls; const struct file_operations *fops; -From 95aeeb5d4186e0727d7d6b50bc614fdf470e55bd Mon Sep 17 00:00:00 2001 +From 63e2a58b2213550f7233563ed132f32e6b1ab866 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Fri, 30 Oct 2015 10:09:02 -0700 -Subject: [PATCH 109/220] drm/vc4: Add an interface for capturing the GPU state +Subject: [PATCH 109/234] drm/vc4: Add an interface for capturing the GPU state after a hang. This can be parsed with vc4-gpu-tools tools for trying to figure out @@ -137790,10 +137790,10 @@ index 499daae..4a8d19f 100644 + #endif /* _UAPI_VC4_DRM_H_ */ -From 7278374ce28d2cd82d233e8aec4c9068c36ce82f Mon Sep 17 00:00:00 2001 +From 43fa373eaca4fa25761ce66ff2a282d1e6cd163e Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Fri, 4 Dec 2015 11:35:34 -0800 -Subject: [PATCH 110/220] drm/vc4: Update a bunch of code to match upstream +Subject: [PATCH 110/234] drm/vc4: Update a bunch of code to match upstream submission. This gets almost everything matching, except for the MSAA support and @@ -139713,10 +139713,10 @@ index 54f5469..987c25a 100644 int num_ioctls; const struct file_operations *fops; -From ca8ee4d96868132b2a5aa571dd682c498af9df99 Mon Sep 17 00:00:00 2001 +From e7ddfe837c680dc154a0e50e6bead26de19c7953 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Fri, 11 Dec 2015 19:45:03 -0800 -Subject: [PATCH 111/220] drm: Use the driver's gem_object_free function from +Subject: [PATCH 111/234] drm: Use the driver's gem_object_free function from CMA helpers. VC4 wraps the CMA objects in its own structures, so it needs to do its @@ -139777,10 +139777,10 @@ index 0f7b00b..e5df53b 100644 return ERR_PTR(ret); } -From 7a514565486b690808d3b7cef20a59cd61c5936e Mon Sep 17 00:00:00 2001 +From 246b87d77b04074fc59517b99da4479aa7f5cf86 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Fri, 17 Jul 2015 13:15:50 -0700 -Subject: [PATCH 112/220] drm/vc4: Add support for MSAA rendering. +Subject: [PATCH 112/234] drm/vc4: Add support for MSAA rendering. For MSAA, you set a bit in the binner that halves the size of tiles in each direction, so you can pack 4 samples per pixel in the tile @@ -140304,10 +140304,10 @@ index 4a8d19f..49cd992 100644 uint32_t clear_z; uint8_t clear_s; -From 495d61b459efb475fe3b4b8dd170cece45943a3d Mon Sep 17 00:00:00 2001 +From 5332f64a451df183c738c0ae1ff9788ff85c9fa7 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Tue, 8 Dec 2015 14:00:43 -0800 -Subject: [PATCH 113/220] drm/vc4: A few more non-functional changes to sync to +Subject: [PATCH 113/234] drm/vc4: A few more non-functional changes to sync to upstream. At this point all that's left is the force-enable of HDMI connector, @@ -140651,10 +140651,10 @@ index 49cd992..eeb37e3 100644 #endif /* _UAPI_VC4_DRM_H_ */ -From 6062beb756ae5a95f1dd224977839f0e039fd8a6 Mon Sep 17 00:00:00 2001 +From fc05e310790b52529e29028e9f42712873c1c1fe Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Tue, 15 Dec 2015 23:46:32 +0000 -Subject: [PATCH 114/220] drm/vc4: Use "hpd-gpios" for HDMI GPIO, like what +Subject: [PATCH 114/234] drm/vc4: Use "hpd-gpios" for HDMI GPIO, like what landed upstream. Signed-off-by: Eric Anholt @@ -140676,10 +140676,10 @@ index cf5d5c9..da37483 100644 <&cprman BCM2835_CLOCK_HSM>; clock-names = "pixel", "hdmi"; -From faba9403c11d146bed41008f4d499f8a7bc976af Mon Sep 17 00:00:00 2001 +From 96acf7d2b12a0e270c669a3b8dbeb3b34795284a Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 7 Dec 2015 12:35:01 -0800 -Subject: [PATCH 115/220] drm/vc4: Synchronize validation code for v2 +Subject: [PATCH 115/234] drm/vc4: Synchronize validation code for v2 submission upstream. Signed-off-by: Eric Anholt @@ -141296,10 +141296,10 @@ index 2f22f19..0fb5b99 100644 return ret; } -From ea387e5f3e007f44c7ad197b3459238b673e01be Mon Sep 17 00:00:00 2001 +From 4b68e80c46f80c31384ee5e56acb968edd6ad7f7 Mon Sep 17 00:00:00 2001 From: janluca Date: Sun, 27 Dec 2015 14:34:04 +0100 -Subject: [PATCH 116/220] MMC: Do not use mmc_debug if CONFIG_MMC_BCM2835 is +Subject: [PATCH 116/234] MMC: Do not use mmc_debug if CONFIG_MMC_BCM2835 is not set If CONFIG_MMC_BCM2835 was not set the compiling of the kernel failed @@ -141336,10 +141336,10 @@ index 87ae2e9..b79fe14 100644 } EXPORT_SYMBOL(mmc_fixup_device); -From dd859db6e150624692719e6b3eb94af686350414 Mon Sep 17 00:00:00 2001 +From 5c3ab466619cbcfd96b70baf8cd906d61d80bc70 Mon Sep 17 00:00:00 2001 From: Devon Fyson Date: Wed, 30 Dec 2015 16:40:47 -0500 -Subject: [PATCH 117/220] Extend clock timeout, fix modprobe baudrate +Subject: [PATCH 117/234] Extend clock timeout, fix modprobe baudrate parameter. Set the BSC_CLKT clock streching timeout to 35ms as per SMBus specs.\n- Increase priority of baudrate parameter passed to modprobe (in /etc/modprobe.d/*.conf or command line). Currently custom baudrates don't work because they are overridden by clock-frequency in the platform_device passed to the function. @@ -141447,10 +141447,10 @@ index 85f411c..b152639 100644 dev_info(&pdev->dev, "BSC%d Controller at 0x%08lx (irq %d) (baudrate %d)\n", pdev->id, (unsigned long)regs->start, irq, baudrate); -From 43719e41a45ad4d3e421fe1ddf78e27422befbda Mon Sep 17 00:00:00 2001 +From 1f5a6afed627adfed60b98c81b11e17ea1dd2254 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Thu, 31 Dec 2015 16:44:58 +0100 -Subject: [PATCH 118/220] bcm270x_dt: Add dwc2 and dwc-otg overlays +Subject: [PATCH 118/234] bcm270x_dt: Add dwc2 and dwc-otg overlays --- arch/arm/boot/dts/overlays/Makefile | 2 ++ @@ -141568,10 +141568,10 @@ index 0000000..90c9811 + }; +}; -From ec1679965feef848b8b0e6066f03d8fba01abe9c Mon Sep 17 00:00:00 2001 +From 5f7d31ed88d778829a00ead2c3ce6058e8428cae Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 4 Jan 2016 14:42:17 +0000 -Subject: [PATCH 119/220] BCM270X_DT: Add the sdtweak overlay, for tuning +Subject: [PATCH 119/234] BCM270X_DT: Add the sdtweak overlay, for tuning sdhost The sdhost overlay declares the sdhost interface and allows parameters @@ -141650,10 +141650,10 @@ index 0000000..74c168d + }; +}; -From 275052b001c067a064e516f8268f58885bf835cc Mon Sep 17 00:00:00 2001 +From 18ada5eca56619ab579dd6c65e53d00e9c5a736b Mon Sep 17 00:00:00 2001 From: Andrew Litt Date: Mon, 11 Jan 2016 07:54:21 +0000 -Subject: [PATCH 120/220] bcm2835-mmc: Don't override bus width capabilities +Subject: [PATCH 120/234] bcm2835-mmc: Don't override bus width capabilities from devicetree Take out the force setting of the MMC_CAP_4_BIT_DATA host capability @@ -141677,10 +141677,10 @@ index 43aed6e..104f93e 100644 mmc->caps2 |= MMC_CAP2_SDIO_IRQ_NOTHREAD; -From 9d44aa6fb5dd55e9bcaa8423e0e16a484ff5c773 Mon Sep 17 00:00:00 2001 +From e3155ceee9ab00cab356e6d9f96b018ae7eca51c Mon Sep 17 00:00:00 2001 From: Andrew Litt Date: Mon, 11 Jan 2016 07:55:54 +0000 -Subject: [PATCH 121/220] SDIO-overlay: add bus_width parameter +Subject: [PATCH 121/234] SDIO-overlay: add bus_width parameter Allow setting of the SDIO bus width capability of the bcm2835-mmc host. This is helpful when only a 1 bit wide bus is connected @@ -141724,10 +141724,10 @@ index afc8742..7935e7a 100644 }; }; -From a9243cdee427aceed2240ab4231ee106aad8df74 Mon Sep 17 00:00:00 2001 +From 5bd58d52212f161c84da2662266f07bca2470773 Mon Sep 17 00:00:00 2001 From: wm4 Date: Wed, 13 Jan 2016 19:41:45 +0100 -Subject: [PATCH 122/220] bcm2835: extend allowed range of channels and +Subject: [PATCH 122/234] bcm2835: extend allowed range of channels and samplerates Allow everything the videocore accepts. @@ -141764,10 +141764,10 @@ index 8c86375..31e3131 100755 .period_bytes_min = 1 * 1024, .period_bytes_max = 128 * 1024, -From bfc200a71120b8e2f69cf8ad7fc4c361f0697555 Mon Sep 17 00:00:00 2001 +From 69fa2ce9d89de099868f04720cec37cec024e040 Mon Sep 17 00:00:00 2001 From: wm4 Date: Wed, 13 Jan 2016 19:42:18 +0100 -Subject: [PATCH 123/220] bcm2835: restrict channels*rate to 8*960000 +Subject: [PATCH 123/234] bcm2835: restrict channels*rate to 8*960000 This is required at least for SPDIF. If the bitrate goes above, videocore will either resample the audio or corrupt it due to @@ -141847,10 +141847,10 @@ index 31e3131..b17ed32 100755 chip->opened |= (1 << idx); -From 3a6cc8186dcb6b4a2c789cb7bbb20c0e0499c2f8 Mon Sep 17 00:00:00 2001 +From 29fd7c86e93a48c3cd10ab22f2c794cd946b38ef Mon Sep 17 00:00:00 2001 From: wm4 Date: Wed, 13 Jan 2016 19:42:48 +0100 -Subject: [PATCH 124/220] rpi: update vc_vchi_audioserv_defs.h +Subject: [PATCH 124/234] rpi: update vc_vchi_audioserv_defs.h Add audioserv 3 extensions. The changes were taken from the paste linked here: @@ -141916,10 +141916,10 @@ index af3e6eb..5f4409f 100644 +#endif // _VC_AUDIO_DEFS_H_ \ No newline at end of file -From 00c8442a992bff22ce3fe81157910d6d2e93b63b Mon Sep 17 00:00:00 2001 +From b3283c09906705a7234676beff768e1f9fcb19b4 Mon Sep 17 00:00:00 2001 From: wm4 Date: Wed, 13 Jan 2016 19:43:12 +0100 -Subject: [PATCH 125/220] bcm2835: implement channel map API +Subject: [PATCH 125/234] bcm2835: implement channel map API Report all layouts supported by the HDMI protocol to userspace. Make the videocore set the correct layout according to the @@ -142346,10 +142346,10 @@ index 0f71c5d..997fb69 100755 int bcm2835_audio_close(bcm2835_alsa_stream_t * alsa_stream); int bcm2835_audio_set_params(bcm2835_alsa_stream_t * alsa_stream, -From 49fad443a79e7ada4ef59e12aa750961facf82ad Mon Sep 17 00:00:00 2001 +From 96c6db5e6de3afcd7b8d88d3d8fd663423706d25 Mon Sep 17 00:00:00 2001 From: wm4 Date: Wed, 13 Jan 2016 19:43:35 +0100 -Subject: [PATCH 126/220] bcm2835: access controls under the audio mutex +Subject: [PATCH 126/234] bcm2835: access controls under the audio mutex I don't think the ALSA framework provides any kind of automatic synchronization within the control callbacks. We most likely need @@ -142588,10 +142588,10 @@ index 1067460..48da3bb 100755 return 0; } -From 74dd5403957ba3601438bced4a7d78a2c1fd04bd Mon Sep 17 00:00:00 2001 +From 0ac97ee604b5488d21417c16eadc03005ef848e2 Mon Sep 17 00:00:00 2001 From: wm4 Date: Wed, 13 Jan 2016 19:44:03 +0100 -Subject: [PATCH 127/220] bcm2835: always use 2/4/8 channels for multichannel +Subject: [PATCH 127/234] bcm2835: always use 2/4/8 channels for multichannel layouts Pad the unused channels with NA. This means userspace needs to write @@ -142730,10 +142730,10 @@ index 5b8e6bd..dec052b 100755 }; -From 95bd31380c7ffb1e5cff735bd88e9f9691535dfa Mon Sep 17 00:00:00 2001 +From e030b22f402a99a3b63c0bacbb50beffe316c473 Mon Sep 17 00:00:00 2001 From: wm4 Date: Wed, 13 Jan 2016 19:44:24 +0100 -Subject: [PATCH 128/220] bcm2835: only allow stereo if analogue jack is +Subject: [PATCH 128/234] bcm2835: only allow stereo if analogue jack is selected Sending more than 2 channels to videocore while outputting to analogue @@ -142795,10 +142795,10 @@ index dec052b..e930718 100755 for (x = 0; x < substream->runtime->channels; x++) { int sp = ucontrol->value.integer.value[x]; -From cbc5b12c5730e1a2396e737a3d23978f308b3596 Mon Sep 17 00:00:00 2001 +From 3ac0c0dc4bce4aceb42c68fb5652c52c61bd8fb4 Mon Sep 17 00:00:00 2001 From: wm4 Date: Wed, 13 Jan 2016 19:44:47 +0100 -Subject: [PATCH 129/220] bcm2835: interpolate audio delay +Subject: [PATCH 129/234] bcm2835: interpolate audio delay It appears the GPU only sends us a message all 10ms to update the playback progress. Other than this, the playback position @@ -142890,10 +142890,10 @@ index 997fb69..20ef108 100755 uint32_t enable_fifo_irq; irq_handler_t fifo_irq_handler; -From 9384914ddb90620248e22cade8a42951aa656dec Mon Sep 17 00:00:00 2001 +From a442aa73f934181904d8d33abbe18578aa197f6e Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 19 Jan 2016 17:16:38 +0000 -Subject: [PATCH 130/220] bcm2835-sdhost: Add workaround for odd behaviour on +Subject: [PATCH 130/234] bcm2835-sdhost: Add workaround for odd behaviour on some cards For reasons not understood, the sdhost driver fails when reading @@ -143030,10 +143030,10 @@ index da08998..309633c 100644 } -From e26a12cf41c4c4e4a993708b3251fb964de7f1c6 Mon Sep 17 00:00:00 2001 +From 6ac321e20227b0361e650f751e0b3b2906e1ae02 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 22 Jan 2016 16:03:24 +0000 -Subject: [PATCH 131/220] bcm2835-sdhost: Add debug_flags dtparam +Subject: [PATCH 131/234] bcm2835-sdhost: Add debug_flags dtparam Bit zero disables the single-read-sectors map: @@ -143157,10 +143157,10 @@ index 309633c..ef9b1e6 100644 if (node) { host->dma_chan_tx = -From ee03a11c1190604888fecd077b83b61899f2876e Mon Sep 17 00:00:00 2001 +From 72b03ddd9d4fb66065ea28b6d97f019c7bcc85bc Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 25 Jan 2016 09:12:06 +0000 -Subject: [PATCH 132/220] BCM270X_DT: Add sdio_overclock parameter to sdio +Subject: [PATCH 132/234] BCM270X_DT: Add sdio_overclock parameter to sdio overlay The sdio_overclock parameter is like the overclock_50 parameter, i.e. @@ -143231,10 +143231,10 @@ index 7935e7a..398bd81 100644 }; }; -From a5f0a2e15ae5d6012aaf28087e4a7460599be817 Mon Sep 17 00:00:00 2001 +From 5f7c000de9e55ad3bf6e3dcae31343bbec2c1724 Mon Sep 17 00:00:00 2001 From: Michael Lange Date: Thu, 21 Jan 2016 18:10:16 +0100 -Subject: [PATCH 133/220] rtc: ds1307: add support for the DT property +Subject: [PATCH 133/234] rtc: ds1307: add support for the DT property 'wakeup-source' For RTC chips with no IRQ directly connected to the SoC, the RTC chip @@ -143328,10 +143328,10 @@ index 1cb13fe..28ca4bf 100644 err = devm_request_threaded_irq(&client->dev, client->irq, NULL, irq_handler, -From 6e362fc24cc878bdc05587a65e1a4c29f6839cb6 Mon Sep 17 00:00:00 2001 +From 65d99e381d375d6dc8da36b19261dcd265876ed8 Mon Sep 17 00:00:00 2001 From: vitalogy Date: Tue, 19 Jan 2016 07:02:02 +0100 -Subject: [PATCH 134/220] dt-overlay: add wittypi-overlay.dts +Subject: [PATCH 134/234] dt-overlay: add wittypi-overlay.dts --- arch/arm/boot/dts/overlays/wittypi-overlay.dts | 44 ++++++++++++++++++++++++++ @@ -143389,10 +143389,10 @@ index 0000000..be5987d + +}; -From f006101804897fc9da5d6a5d45fcf2f871325189 Mon Sep 17 00:00:00 2001 +From 182d80ba104dcd33de5a9a517e214890e5b3d71f Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 19 Jan 2016 16:28:05 +0000 -Subject: [PATCH 135/220] FIXUP i2c_bcm2708: Don't change module baudrate +Subject: [PATCH 135/234] FIXUP i2c_bcm2708: Don't change module baudrate parameter Overwriting the baudrate module parameter creates an apparent @@ -143491,10 +143491,10 @@ index b152639..c9b8e5c 100644 return 0; -From 47cf0578d6686f32a1385a6821a2d4fe6652cdd0 Mon Sep 17 00:00:00 2001 +From ecbb995a27f844890cb596f55b6c162bd503c3c1 Mon Sep 17 00:00:00 2001 From: Digital Dreamtime Date: Thu, 4 Feb 2016 14:14:44 +0000 -Subject: [PATCH 136/220] Allow up to 24dB digital gain to be applied when +Subject: [PATCH 136/234] Allow up to 24dB digital gain to be applied when using IQAudIO DAC+ 24db_digital_gain DT param can be used to specify that PCM512x @@ -143597,10 +143597,10 @@ index 37038d4..124d7a9 100644 ret = snd_soc_register_card(&snd_rpi_iqaudio_dac); -From 7e2dcd8334b6eacd2f1a2cf4c6f2059ad1617be5 Mon Sep 17 00:00:00 2001 +From 2b5de011997270039c921001eac6a08da664da83 Mon Sep 17 00:00:00 2001 From: Digital Dreamtime Date: Thu, 4 Feb 2016 20:04:00 +0000 -Subject: [PATCH 137/220] Limit PCM512x "Digital" gain to 0dB by default with +Subject: [PATCH 137/234] Limit PCM512x "Digital" gain to 0dB by default with HiFiBerry DAC+ 24db_digital_gain DT param can be used to specify that PCM512x @@ -143702,10 +143702,10 @@ index a6b651c..153dbcd 100644 ret = snd_soc_register_card(&snd_rpi_hifiberry_dacplus); -From c98ef367b9b550f7ed9bd95730d20aee5ae9d9c2 Mon Sep 17 00:00:00 2001 +From 4229a7006381d75e1a79f2b2214811946ef4646d Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 8 Feb 2016 09:46:33 +0000 -Subject: [PATCH 138/220] BCM270X_DT: Adjust overlay README formatting +Subject: [PATCH 138/234] BCM270X_DT: Adjust overlay README formatting --- arch/arm/boot/dts/overlays/README | 414 +++++++++++++++++++------------------- @@ -144434,38 +144434,10 @@ index 296184f..f987565 100644 Troubleshooting -From 335e207701ba241a9e9d834379cd9b96cc42c696 Mon Sep 17 00:00:00 2001 -From: Phil Elwell -Date: Tue, 9 Feb 2016 09:52:13 +0000 -Subject: [PATCH 139/220] pinctrl-bcm2835: Fix cut-and-paste error in "pull" - parsing - -The DT bindings for pinctrl-bcm2835 allow both the function and pull -to contain either one entry or one per pin. However, an error in the -DT parsing can cause failures if the number of pulls differs from the -number of functions. ---- - drivers/pinctrl/bcm/pinctrl-bcm2835.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/drivers/pinctrl/bcm/pinctrl-bcm2835.c b/drivers/pinctrl/bcm/pinctrl-bcm2835.c -index 640e3b0..32f779e 100644 ---- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c -+++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c -@@ -802,7 +802,7 @@ static int bcm2835_pctl_dt_node_to_map(struct pinctrl_dev *pctldev, - } - if (num_pulls) { - err = of_property_read_u32_index(np, "brcm,pull", -- (num_funcs > 1) ? i : 0, &pull); -+ (num_pulls > 1) ? i : 0, &pull); - if (err) - goto out; - err = bcm2835_pctl_dt_node_to_map_pull(pc, np, pin, - -From 0fa4261b8ebb18c2c8f4424b65c9ccbb67160c0f Mon Sep 17 00:00:00 2001 +From 5187f0c81288df33fb8aa9950fe2df568600b238 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 11 Feb 2016 16:51:01 +0000 -Subject: [PATCH 140/220] bcm2835-sdhost: Major revision +Subject: [PATCH 139/234] bcm2835-sdhost: Major revision This is a significant revision of the bcm2835-sdhost driver. It improves on the original in a number of ways: @@ -146534,10 +146506,10 @@ index ef9b1e6..262180b 100644 .probe = bcm2835_sdhost_probe, .remove = bcm2835_sdhost_remove, -From d243f0173dc4f7f61979272fec65d70abe9cab76 Mon Sep 17 00:00:00 2001 +From a89d94f78da2a6e4c2df2a8206ed61d841143161 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 12 Feb 2016 15:38:00 +0000 -Subject: [PATCH 141/220] BCM270X_DT: Add dtparams for the SD interface +Subject: [PATCH 140/234] BCM270X_DT: Add dtparams for the SD interface Add new base dtparams sd_overclock, sd_force_pio, sd_pio_limit and sd_debug. @@ -146790,10 +146762,10 @@ index b0b208c..e4a4677 100644 }; }; -From 75c60d3c472b2f63a364b83b5aeb8b2c8f228e86 Mon Sep 17 00:00:00 2001 +From 050e65853a2a95ba2835a85f5b79e722a768a3ff Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 12 Feb 2016 14:50:25 +0000 -Subject: [PATCH 142/220] dcw_otg: trim xfer length when buffer larger than +Subject: [PATCH 141/234] dcw_otg: trim xfer length when buffer larger than allocated size is received --- @@ -146830,10 +146802,10 @@ index 8db3dfc..d672a76 100644 if (hc->align_buff && bytes_transferred && hc->ep_is_in) { dwc_memcpy(urb->buf + urb->actual_length, hc->qh->dw_align_buf, -From 45d3be195a6547d98e9d1979b9dff4b6e25f3511 Mon Sep 17 00:00:00 2001 +From 517b68ff48633e45cf1179e75bdcb5cd92caa470 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 15 Feb 2016 10:00:27 +0000 -Subject: [PATCH 143/220] bcm2835-sdhost: Restore ATOMIC flag to PIO sg mapping +Subject: [PATCH 142/234] bcm2835-sdhost: Restore ATOMIC flag to PIO sg mapping Allocation problems have been seen in a wireless driver, and this is the only change which might have been responsible. @@ -146865,10 +146837,10 @@ index 262180b..d66385c 100644 host->blocks = data->blocks; } -From 4bca411d6d79bb963a99b0f344d2e166ea387b1b Mon Sep 17 00:00:00 2001 +From 4b95330d1365c7045e283b0c0cb5f5d93a136dea Mon Sep 17 00:00:00 2001 From: Craig Roberts Date: Tue, 16 Feb 2016 10:03:42 +0000 -Subject: [PATCH 144/220] Updated smsc95xx driver to check for a valid MAC +Subject: [PATCH 143/234] Updated smsc95xx driver to check for a valid MAC address in eeprom before using smsc95xx.macaddr parameter passed on command line. @@ -146908,10 +146880,10 @@ index 3244a90..7483222 100755 netif_dbg(dev, ifup, dev->net, "MAC address set to eth_random_addr\n"); } -From 49c7acf19713e3b277e75564c9adf11c8837b7cb Mon Sep 17 00:00:00 2001 +From f117931be1708330fd5fab0d9f0a99b7c091745d Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 17 Feb 2016 19:02:31 +0000 -Subject: [PATCH 145/220] dcw_otg: Make trimming messages less noisy +Subject: [PATCH 144/234] dcw_otg: Make trimming messages less noisy --- drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c | 6 ++++-- @@ -146942,10 +146914,10 @@ index d672a76..e6b38ac 100644 } -From 17daf96d1897ecb234a14166a59a25f89b0b3691 Mon Sep 17 00:00:00 2001 +From 473fe36c4e0c683b9c41c069f779b58a37a8ab6d Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 18 Feb 2016 15:28:14 +0000 -Subject: [PATCH 146/220] BCM270X_DT: at86rf233 overlay - drop to 3MHz +Subject: [PATCH 145/234] BCM270X_DT: at86rf233 overlay - drop to 3MHz The consensus is that 6MHz is too fast, but that 3MHz is OK. @@ -146983,10 +146955,10 @@ index 0460269..eab4052 100644 }; }; -From 1b5cbad94db73906e9730434f137ca9f09ac8df4 Mon Sep 17 00:00:00 2001 +From 00fe3603a076b0f869f8f6e4cecbaa41e775b134 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 19 Feb 2016 12:04:48 +0000 -Subject: [PATCH 147/220] bcm2835-sdhost: Downgrade log message status +Subject: [PATCH 146/234] bcm2835-sdhost: Downgrade log message status --- drivers/mmc/host/bcm2835-sdhost.c | 4 ++-- @@ -147008,10 +146980,10 @@ index d66385c..4f6cab5 100644 if (!timer_base) pr_err("sdhost: failed to remap timer\n"); -From 6d7968ac9deb4d9e1e1e2f0fdb6ebf587040b1d3 Mon Sep 17 00:00:00 2001 +From 477518bb3f87ec9bbb069aeb96dd1d35c0f7a621 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 15 Jan 2016 16:48:27 +0000 -Subject: [PATCH 148/220] config: Enable HCI over UARTs +Subject: [PATCH 147/234] config: Enable HCI over UARTs --- arch/arm/configs/bcm2709_defconfig | 3 +++ @@ -147046,10 +147018,10 @@ index 51dc019..4368f0d 100644 CONFIG_BT_HCIBPA10X=m CONFIG_BT_HCIBFUSB=m -From c48b71c5495da90df40a5ab608d370a380ee55c7 Mon Sep 17 00:00:00 2001 +From b0252043429f6c50c745f43afc9c231d2961480f Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 17 Dec 2015 13:37:07 +0000 -Subject: [PATCH 149/220] hci_h5: Don't send conf_req when ACTIVE +Subject: [PATCH 148/234] 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. @@ -147072,10 +147044,10 @@ index abee221..2825833 100644 if (H5_HDR_LEN(hdr) > 2) h5->tx_win = (data[2] & 7); -From 9590600fd83051b01b94541bcdbd44126a74c233 Mon Sep 17 00:00:00 2001 +From b564003a5d4ea674a920e2021ab25a0522911543 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 23 Feb 2016 17:26:48 +0000 -Subject: [PATCH 150/220] amba_pl011: Don't use DT aliases for numbering +Subject: [PATCH 149/234] 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 @@ -147104,10 +147076,10 @@ index 899a771..68b3353 100644 uap->old_cr = 0; uap->port.dev = dev; -From 6f9eebcb207c54cc025a0fa03a0a0aec6872bcb1 Mon Sep 17 00:00:00 2001 +From 3dc30aa2b86ef70ffda8a8a5e57ddc653b1fb2d3 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Tue, 15 Dec 2015 15:35:57 -0800 -Subject: [PATCH 151/220] clk: bcm2835: Add bindings for the auxiliary +Subject: [PATCH 150/234] clk: bcm2835: Add bindings for the auxiliary peripheral clock gates. These will be used for enabling UART1, SPI1, and SPI2. @@ -147183,10 +147155,10 @@ index 0000000..d91156e +#define BCM2835_AUX_CLOCK_SPI2 2 +#define BCM2835_AUX_CLOCK_COUNT 3 -From 29fb950e3ba56af92a2183a46555b173cf964674 Mon Sep 17 00:00:00 2001 +From 4334bbc4f8aa283d7e470500bf42b146c0bf2029 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Tue, 15 Dec 2015 15:35:58 -0800 -Subject: [PATCH 152/220] clk: bcm2835: Add a driver for the auxiliary +Subject: [PATCH 151/234] clk: bcm2835: Add a driver for the auxiliary peripheral clock gates. There are a pair of SPI masters and a mini UART that were last minute @@ -147307,10 +147279,10 @@ index 0000000..e4f89e2 +MODULE_DESCRIPTION("BCM2835 auxiliary peripheral clock driver"); +MODULE_LICENSE("GPL v2"); -From 1bf2851444db1c73de9084f05866b2b976136616 Mon Sep 17 00:00:00 2001 +From 4567f48c8cea336f6c69e4244624b504e0e35272 Mon Sep 17 00:00:00 2001 From: Fraser Date: Tue, 23 Feb 2016 10:04:37 +1100 -Subject: [PATCH 153/220] Aux SPI 1&2 implementation +Subject: [PATCH 152/234] Aux SPI 1&2 implementation Adds aux spi 1 & 2 devices to compatible raspberry PIs. * Minor config of the driver build environment to ensure they get built @@ -148040,10 +148012,10 @@ index e842e86..c9d1558 100644 help This selects a driver for the Broadcom BCM2835 SPI aux master. -From f0fc0526b27dfa7e01162255512440f6ca925377 Mon Sep 17 00:00:00 2001 +From 5ff0e7a7d133b1ec4ab95f44bf8575178d3cd8bd Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Tue, 23 Feb 2016 17:28:23 +0100 -Subject: [PATCH 154/220] ASoC: bcm: add missing .owner fields in sound card +Subject: [PATCH 153/234] ASoC: bcm: add missing .owner fields in sound card drivers If snd_soc_card.owner is not set the kernel won't do usage refcounting @@ -148165,10 +148137,10 @@ index c6e45a0..9db678e 100644 .num_links = ARRAY_SIZE(snd_rpi_proto_dai), }; -From 5e4a21532c063cde668062146d4e9736f443a5a2 Mon Sep 17 00:00:00 2001 +From 474200011a4fb8f7174ce074092c4bf83eed5ee6 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 20 Jan 2016 17:50:09 +0000 -Subject: [PATCH 155/220] smsx95xx: Add option to disable the crimes against +Subject: [PATCH 154/234] smsx95xx: Add option to disable the crimes against truesize fix It may improve iperf numbers on Pi 1, but may generate dmesg warnings and possibly cause network issues @@ -148214,10 +148186,10 @@ index 7483222..a61bd08 usbnet_skb_return(dev, ax_skb); } -From 9cc01e6746ad770056575a80e55844828d0f91a5 Mon Sep 17 00:00:00 2001 +From 763d1c355b6995358eb162c8d14414c680ae5397 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 23 Feb 2016 19:56:04 +0000 -Subject: [PATCH 156/220] bcm2835-virtgpio: Virtual GPIO driver +Subject: [PATCH 155/234] bcm2835-virtgpio: Virtual GPIO driver Add a virtual GPIO driver that uses the firmware mailbox interface to request that the VPU toggles LEDs. @@ -148470,10 +148442,10 @@ index b011489..c844968 100644 RPI_FIRMWARE_FRAMEBUFFER_TEST_PHYSICAL_WIDTH_HEIGHT = 0x00044003, RPI_FIRMWARE_FRAMEBUFFER_TEST_VIRTUAL_WIDTH_HEIGHT = 0x00044004, -From 74bf9e6bacea9547dbc61259c5b1fd6c582a09d0 Mon Sep 17 00:00:00 2001 +From 1c56eb666d63752162efc53df92069aec66fdb6d Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 21 Jan 2016 17:57:49 +0000 -Subject: [PATCH 157/220] BCM270X_DT: Add Pi3 support +Subject: [PATCH 156/234] BCM270X_DT: Add Pi3 support --- arch/arm/boot/dts/Makefile | 1 + @@ -148802,10 +148774,10 @@ index 0000000..1a48686 + interrupts = <8>; +}; -From 77f8ba7aa00715d205de661d389c8285eba54cd1 Mon Sep 17 00:00:00 2001 +From 74e67294379f309acfdc52f3594c8c964711a376 Mon Sep 17 00:00:00 2001 From: Dave Stevenson <6by9@users.noreply.github.com> Date: Mon, 8 Feb 2016 23:49:41 +0000 -Subject: [PATCH 158/220] DT: Add overlays to configure I2C pins +Subject: [PATCH 157/234] DT: Add overlays to configure I2C pins Lifted from https://www.raspberrypi.org/forums/viewtopic.php?f=107&t=120938&p=825883 @@ -148947,10 +148919,10 @@ index 0000000..e303b9c + }; +}; -From ff3a72f926b23ea449bc5af9e4b1edc5dd194d3f Mon Sep 17 00:00:00 2001 +From e520168fb0bf9c5beb98703122f21dd6bdf16a73 Mon Sep 17 00:00:00 2001 From: Dhiraj Goel Date: Thu, 3 Mar 2016 21:10:50 -0800 -Subject: [PATCH 159/220] bcm2835-camera: fix a bug in computation of frame +Subject: [PATCH 158/234] bcm2835-camera: fix a bug in computation of frame timestamp Fixes #1318 @@ -148973,10 +148945,10 @@ index e83334c..98a892e 100644 dev->capture.kernel_start_ts.tv_usec + rem; -From 9e60aeea4162ec229e5ebed7b2af695d98309369 Mon Sep 17 00:00:00 2001 +From 0569e24890ce6458b8e89393d81ff912af4518f4 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 2 Mar 2016 10:59:05 +0000 -Subject: [PATCH 160/220] BCM270X_DT: Add pi3-disable-bt overlay +Subject: [PATCH 159/234] BCM270X_DT: Add pi3-disable-bt overlay Disable Bluetooth and restore UART0/ttyAMA0 over GPIOs 14 & 15. To disable the systemd service that initialises the modem so it doesn't use the UART: @@ -149077,10 +149049,10 @@ index 0000000..05403e2 + }; +}; -From 49ee7100969f66f5754c1304b2a5d6dfff5f66c4 Mon Sep 17 00:00:00 2001 +From d2bda5ca90aae84491f8c967122de1b910183837 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 7 Mar 2016 09:53:03 +0000 -Subject: [PATCH 161/220] BCM270X_DT: Add pi3-miniuart-bt DT overlay +Subject: [PATCH 160/234] BCM270X_DT: Add pi3-miniuart-bt DT overlay Switch Pi3 Bluetooth function to use the mini-UART (ttyS0) and restore UART0/ttyAMA0 over GPIOs 14 & 15. Note that this may reduce the maximum @@ -149202,10 +149174,10 @@ index 0000000..ae1292a + }; +}; -From fdcbe65fa8272570e4d8385360c54d6084c527e5 Mon Sep 17 00:00:00 2001 +From 612299645d40261b3ad51c1be30abf3786bc8eaa Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 7 Mar 2016 13:38:39 +0000 -Subject: [PATCH 162/220] Pi3 DT: Add dtparams for the SD interface +Subject: [PATCH 161/234] Pi3 DT: Add dtparams for the SD interface Add new base dtparams sd_overclock, sd_force_pio, sd_pio_limit and sd_debug. These were missed out of the initial Pi3 DTB. @@ -149230,10 +149202,10 @@ index cc06089..36972d8 100644 }; }; -From 6807d1de189d9a85ba25d3d54e1db36d9b67470f Mon Sep 17 00:00:00 2001 +From c6b607df8df72e40f649a26f3f17530c4d6f80e7 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 7 Mar 2016 15:05:11 +0000 -Subject: [PATCH 163/220] vchiq_arm: Tweak the logging output +Subject: [PATCH 162/234] vchiq_arm: Tweak the logging output Signed-off-by: Phil Elwell --- @@ -149308,10 +149280,10 @@ index 2c98da4..160db24 100644 switch (type) { -From a56dfcc0d7fbb6c0953fe7faa7391a14fbaf98cc Mon Sep 17 00:00:00 2001 +From 0309d20fa78d21417424ac2a29f7021005103a95 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 7 Mar 2016 16:46:39 +0000 -Subject: [PATCH 164/220] bcm2835-sdhost: Only claim one DMA channel +Subject: [PATCH 163/234] bcm2835-sdhost: Only claim one DMA channel With both MMC controllers enabled there are few DMA channels left. The bcm2835-sdhost driver only uses DMA in one direction at a time, so it @@ -149473,10 +149445,10 @@ index 4f6cab5..4cc4272 100644 } } -From a1577083ab3d03c878c74153aba00ba6be3501a1 Mon Sep 17 00:00:00 2001 +From 85475f3bb5c999db424e476fd34db78dd2f620e7 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 8 Mar 2016 09:49:16 +0000 -Subject: [PATCH 165/220] bcm2835-mmc: Only claim one DMA channel +Subject: [PATCH 164/234] bcm2835-mmc: Only claim one DMA channel With both MMC controllers enabled there are few DMA channels left. The bcm2835-mmc driver only uses DMA in one direction at a time, so it @@ -149648,10 +149620,10 @@ index 104f93e..ceb3793 100644 #endif clk = devm_clk_get(dev, NULL); -From 8a0c59cffa4e265e12d412be162e6e7e79538085 Mon Sep 17 00:00:00 2001 +From 09b4efc16a0683e3483fca04c29ab50acd77ea35 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 8 Mar 2016 17:08:39 +0000 -Subject: [PATCH 166/220] config: rebuild with savedefconfig +Subject: [PATCH 165/234] config: rebuild with savedefconfig --- arch/arm/configs/bcm2709_defconfig | 3 +-- @@ -149679,10 +149651,10 @@ index 6d6b519..116002b 100644 CONFIG_MCP320X=m CONFIG_DHT11=m -From e429d262078d082532f8538c3272ad41d00dcbe2 Mon Sep 17 00:00:00 2001 +From b0b658052a1bbcb915e1461e785e2ada1de92747 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 8 Mar 2016 17:06:33 +0000 -Subject: [PATCH 167/220] config: Add module for mcp3422 ADC +Subject: [PATCH 166/234] config: Add module for mcp3422 ADC --- arch/arm/configs/bcm2709_defconfig | 1 + @@ -149714,10 +149686,10 @@ index 1ca1695..f09be87 100644 CONFIG_PWM_BCM2835=m CONFIG_RASPBERRYPI_FIRMWARE=y -From 1021df7fe1b5bffc4f6e6020fac272c4cbe359eb Mon Sep 17 00:00:00 2001 +From 13f3cb2aa11e7f35437ef94b643ec18c4216afa7 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 8 Mar 2016 16:18:57 +0000 -Subject: [PATCH 168/220] Pi3 DT: Add pull-ups on the UART RX lines +Subject: [PATCH 167/234] Pi3 DT: Add pull-ups on the UART RX lines Signed-off-by: Phil Elwell --- @@ -149759,10 +149731,10 @@ index ae1292a..0b8f0ca 100644 }; }; -From ee3a4aed77c36c19f325e9aac6e46fbde2ab6e09 Mon Sep 17 00:00:00 2001 +From 40b7ff1151cda094b243d68e04afea524f5f91e1 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 9 Mar 2016 17:25:59 +0000 -Subject: [PATCH 169/220] brcmfmac: Disable power management +Subject: [PATCH 168/234] 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 @@ -149787,10 +149759,10 @@ index deb5f78..90f65d9 100644 if (!check_vif_up(ifp->vif)) { -From 7426f9f0a5a62e36f31d1db185277c92bfa3d844 Mon Sep 17 00:00:00 2001 +From 4c066381ff2a904adfcbff623cb686b6d47e82d4 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 9 Mar 2016 21:28:52 +0000 -Subject: [PATCH 170/220] BCM270X_DT: rpi-display overlay - add swapxy param +Subject: [PATCH 169/234] BCM270X_DT: rpi-display overlay - add swapxy param Signed-off-by: Phil Elwell --- @@ -149830,10 +149802,10 @@ index a8fa974..ccb296e 100644 }; }; -From 2de2cb38722b8fbdbe8f0fb5cef7e0ec2230a2a8 Mon Sep 17 00:00:00 2001 +From 7a9843abb04b72adb5b0fd6e04053b217dbea4a0 Mon Sep 17 00:00:00 2001 From: DigitalDreamtime Date: Fri, 11 Mar 2016 11:44:35 +0000 -Subject: [PATCH 171/220] Remove I2S config from bt_pins. +Subject: [PATCH 170/234] Remove I2S config from bt_pins. Remove I2S config from bt_pins. Causes issues with clock alignment when I2S is used by an external DAC via GPIO header. @@ -149873,10 +149845,10 @@ index 0b8f0ca..f07afcb 100644 }; }; -From 86ad245b6a404b9a7390439598c3a1990888199e Mon Sep 17 00:00:00 2001 +From ed964142cfe7d2949fe10cb39cf897c216f42d8d Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 10 Aug 2015 09:44:59 +0100 -Subject: [PATCH 172/220] Revert "scripts/dtc: Add overlay support" +Subject: [PATCH 171/234] Revert "scripts/dtc: Add overlay support" This reverts commit fa6d1755c2fdd9451077d8248e3804f0619f19b9. --- @@ -154281,10 +154253,10 @@ index 86b7338..5b8c7d5 100644 -#define DTC_VERSION "DTC 1.4.1-g9d3649bd-dirty" +#define DTC_VERSION "DTC 1.4.1-g9d3649bd" -From 4f8951170ab9ba34bd30d822a01d9882b00db581 Mon Sep 17 00:00:00 2001 +From f8ba4ced67c24170cc9a8beb8d41678a10c79cca Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 10 Aug 2015 09:49:15 +0100 -Subject: [PATCH 173/220] scripts/dtc: Update to upstream version 1.4.1 +Subject: [PATCH 172/234] scripts/dtc: Update to upstream version 1.4.1 Includes the new localfixups format. @@ -157038,10 +157010,10 @@ index 5b8c7d5..2595dfd 100644 -#define DTC_VERSION "DTC 1.4.1-g9d3649bd" +#define DTC_VERSION "DTC 1.4.1-g25efc119" -From e8886384ffc0f93c0a4ed3553e74a7f20b940128 Mon Sep 17 00:00:00 2001 +From 0b913e25d5d9d0290cc63a6d6b2154d440da56c2 Mon Sep 17 00:00:00 2001 From: Pantelis Antoniou Date: Thu, 22 Oct 2015 23:30:04 +0300 -Subject: [PATCH 174/220] configfs: implement binary attributes +Subject: [PATCH 173/234] configfs: implement binary attributes ConfigFS lacked binary attributes up until now. This patch introduces support for binary attributes in a somewhat similar @@ -157690,10 +157662,10 @@ index 758a029..f7300d0 100644 * If allow_link() exists, the item can symlink(2) out to other * items. If the item is a group, it may support mkdir(2). -From 9003030b2ba018274c3139f4656045194b3e44f8 Mon Sep 17 00:00:00 2001 +From 53622946808fde54db459134af4d03e094883840 Mon Sep 17 00:00:00 2001 From: Pantelis Antoniou Date: Wed, 3 Dec 2014 13:23:28 +0200 -Subject: [PATCH 175/220] OF: DT-Overlay configfs interface +Subject: [PATCH 174/234] 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. @@ -158109,10 +158081,10 @@ index 0000000..7b66deb +} +late_initcall(of_cfs_init); -From a0591a6a9b4541411c9cb87bc03b3bcae9705d3e Mon Sep 17 00:00:00 2001 +From 18cfeae5235132b5db6c49ed966fbddc447b5c89 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 13 Mar 2015 12:43:36 +0000 -Subject: [PATCH 176/220] Protect __release_resource against resources without +Subject: [PATCH 175/234] Protect __release_resource against resources without parents Without this patch, removing a device tree overlay can crash here. @@ -158140,10 +158112,10 @@ index 249b1eb..eb973a5 100644 for (;;) { tmp = *p; -From 8b7b2a51cdf796abc04fdfb5f86b13593e3c6bf3 Mon Sep 17 00:00:00 2001 +From 992eefefd8d6a5ef59491bc900d13747068dab3c Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 13 Mar 2015 20:00:21 +0000 -Subject: [PATCH 177/220] BCM270X_DT: Add a .dtbo target, use for overlays +Subject: [PATCH 176/234] 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 @@ -158340,10 +158312,10 @@ index 79e8661..7209d62 100644 # Bzip2 -From a7154908e508d14ddb89aab7cf15b0b3d3105129 Mon Sep 17 00:00:00 2001 +From d467a9ff0718d4c2cac2d6bbd273be4c81f5ffaf Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 29 May 2015 11:18:58 +0100 -Subject: [PATCH 178/220] scripts/knlinfo: Decode DDTK atom +Subject: [PATCH 177/234] scripts/knlinfo: Decode DDTK atom Show the DDTK atom as being a boolean. @@ -158374,10 +158346,10 @@ index b9ef124..263ec93 100755 sub format_int -From ac5908f541bf375c752837d7f4adc5ffd741919a Mon Sep 17 00:00:00 2001 +From 569826fad285415f3f662f467c0e6d70ba6e24b0 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 29 May 2015 11:48:59 +0100 -Subject: [PATCH 179/220] Enable Dynamic Device Tree for bcmrpi_defconfig and +Subject: [PATCH 178/234] Enable Dynamic Device Tree for bcmrpi_defconfig and bcm2709_defconfig Signed-off-by: Phil Elwell @@ -158419,10 +158391,10 @@ index f09be87..2db41e6 100644 CONFIG_ZRAM_LZ4_COMPRESS=y CONFIG_BLK_DEV_LOOP=y -From f554341c8348fdf9880fc07ae20fc61035c783e2 Mon Sep 17 00:00:00 2001 +From b5c6d0cfa66fd1dfb8a39f8e80187d13aef072cf Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Sun, 13 Mar 2016 16:14:44 +0000 -Subject: [PATCH 180/220] SQUASH: Add CONFIG_OF_CONFIGFS to bcmrpi_defconfig +Subject: [PATCH 179/234] SQUASH: Add CONFIG_OF_CONFIGFS to bcmrpi_defconfig Signed-off-by: Phil Elwell --- @@ -158451,10 +158423,10 @@ index 2db41e6..74149cf 100644 CONFIG_HFS_FS=m CONFIG_HFSPLUS_FS=m -From 16c43ba7a356906480cb05eaf06b94118089b7b2 Mon Sep 17 00:00:00 2001 +From 2407bd2c947d9d588976ccb4bfafd0ba3ee02a6d Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 14 Mar 2016 16:56:54 +0000 -Subject: [PATCH 181/220] dts, kbuild: dtbs_install installs .dtbo files too +Subject: [PATCH 180/234] dts, kbuild: dtbs_install installs .dtbo files too Signed-off-by: Phil Elwell --- @@ -158496,10 +158468,10 @@ index 1c15717..43647b3 100644 .PHONY: $(PHONY) -From 2074555a2f018ca6d480536a11c8946a87ddf055 Mon Sep 17 00:00:00 2001 +From df9a9b056dc720c57f8444bf177c01cba0549d94 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 15 Mar 2016 14:10:29 +0000 -Subject: [PATCH 182/220] bcm2835-sdhost: Workaround for "slow" sectors +Subject: [PATCH 181/234] bcm2835-sdhost: Workaround for "slow" sectors Some cards have been seen to cause timeouts after certain sectors are read. This workaround enforces a minimum delay between the stop after @@ -158617,10 +158589,10 @@ index 4cc4272..f43aae0 100644 } } else { -From 6a95fda69fd5cd47a91438c34e60884005b2cf60 Mon Sep 17 00:00:00 2001 +From df34119f3390421137e5fd4a27a54c54299fb152 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 15 Mar 2016 15:49:16 +0000 -Subject: [PATCH 183/220] BCM270X_DT: Add labels to spidev nodes +Subject: [PATCH 182/234] BCM270X_DT: Add labels to spidev nodes Signed-off-by: Phil Elwell --- @@ -158742,10 +158714,10 @@ index 2cb7d43..1ce4ea2 100644 reg = <1>; /* CE1 */ #address-cells = <1>; -From 373c4c25a9a663812eeb60f9a21d0b4328a89e7b Mon Sep 17 00:00:00 2001 +From 40a8cebad2744813005953f297e5bc96416d0186 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 15 Mar 2016 16:27:26 +0000 -Subject: [PATCH 184/220] BCM270X_DT: Use spidev labels in overlays +Subject: [PATCH 183/234] BCM270X_DT: Use spidev labels in overlays --- arch/arm/boot/dts/overlays/ads7846-overlay.dts | 22 ++++++++++------- @@ -159399,10 +159371,10 @@ index f7102c8..33c0651 100644 __overlay__ { keypad: keypad { -From 5c59de05cd3c183f48a2c53e15dcbf748a58c686 Mon Sep 17 00:00:00 2001 +From 4378886deeb169b11164e5514339242ec22d3d08 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 15 Mar 2016 16:41:37 +0000 -Subject: [PATCH 185/220] BCM270X_DT: Build and document the wittypi overlay +Subject: [PATCH 184/234] BCM270X_DT: Build and document the wittypi overlay Signed-off-by: Phil Elwell --- @@ -159456,10 +159428,10 @@ index be5987d..8498134 100644 }; -From 61b564dad484329b527fbcf14167b9fd28d34c0e Mon Sep 17 00:00:00 2001 +From be3805c1c13fc147e3f31122370b7aaf8088ebc2 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Tue, 15 Mar 2016 21:13:39 +0100 -Subject: [PATCH 186/220] scripts/dtc: Fix UMR causing corrupt dtbo overlay +Subject: [PATCH 185/234] scripts/dtc: Fix UMR causing corrupt dtbo overlay files struct fixup_entry is allocated from the heap but it's member @@ -159486,10 +159458,10 @@ index 540a3ea..2b3b3a7 100644 /* append it to the local fixups */ fep = &dt->local_fixups; -From c827bc6f8936ec9954718625774663148e4476f2 Mon Sep 17 00:00:00 2001 +From 56bd21103cd7b57b1377f291b88cb894249ff4d4 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 16 Mar 2016 08:35:06 +0000 -Subject: [PATCH 187/220] BCM270X_DT: Add dtparam for uart1 +Subject: [PATCH 186/234] BCM270X_DT: Add dtparam for uart1 Signed-off-by: Phil Elwell --- @@ -159576,10 +159548,10 @@ index d939739..4ce7921 100644 (default "off") -From 9ba1d22a7f422b0e33a83b5523a8b82e5c3fa96b Mon Sep 17 00:00:00 2001 +From d3315968f5772cb7736266382772a4188c9915a7 Mon Sep 17 00:00:00 2001 From: Przemek Rudy Date: Fri, 11 Mar 2016 22:41:26 +0100 -Subject: [PATCH 188/220] dwc-overlay: Use label so overrides can apply. +Subject: [PATCH 187/234] dwc-overlay: Use label so overrides can apply. --- arch/arm/boot/dts/overlays/dwc2-overlay.dts | 10 +++++----- @@ -159613,10 +159585,10 @@ index 90c9811..527abc9 100644 }; }; -From 2f1acd3434a9830ae49f28d2908770ada3d3384a Mon Sep 17 00:00:00 2001 +From f55f58faaa81f7149b790c50e6a2a0b569eba7aa Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Fri, 22 Jan 2016 13:06:39 -0800 -Subject: [PATCH 189/220] drm/vc4: Add a debugfs node for tracking execution +Subject: [PATCH 188/234] drm/vc4: Add a debugfs node for tracking execution state. Signed-off-by: Eric Anholt @@ -159676,10 +159648,10 @@ index 39f29e7..1243f4e 100644 vc4_queue_hangcheck(struct drm_device *dev) { -From de506b61b93bf234a0e1be0d87d4cda23994d3ab Mon Sep 17 00:00:00 2001 +From db80fdfab4984ebddef8b2af3ace7af51dfd72f1 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 25 Jan 2016 13:03:33 -0800 -Subject: [PATCH 190/220] drm/vc4: Include vc4_drm.h in uapi in downstream +Subject: [PATCH 189/234] drm/vc4: Include vc4_drm.h in uapi in downstream build. Signed-off-by: Eric Anholt @@ -159700,10 +159672,10 @@ index 38d4370..23381b5 100644 header-y += vmwgfx_drm.h header-y += msm_drm.h -From 8fbb3e933a4bd43764228037fa15defc1dff9fcf Mon Sep 17 00:00:00 2001 +From 7326e457847d09cd6becc34523e13fdebce82083 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 25 Jan 2016 13:05:00 -0800 -Subject: [PATCH 191/220] drm/vc4: Validate that WAIT_BO padding is cleared. +Subject: [PATCH 190/234] drm/vc4: Validate that WAIT_BO padding is cleared. This is ABI future-proofing if we ever want to extend the pad to mean something. @@ -159728,10 +159700,10 @@ index 1243f4e..849d374 100644 if (!gem_obj) { DRM_ERROR("Failed to look up GEM BO %d\n", args->handle); -From ef720c38f364c54cce4a78d2651f45692864b186 Mon Sep 17 00:00:00 2001 +From dc2af742af507ba0594902be52296d191a3ebfae Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 25 Jan 2016 13:52:41 -0800 -Subject: [PATCH 192/220] drm/vc4: Fix the clear color for the first tile +Subject: [PATCH 191/234] drm/vc4: Fix the clear color for the first tile rendered. Apparently in hardware (as opposed to simulation), the clear colors @@ -159780,10 +159752,10 @@ index 8a2a312..dea97f4 100644 for (x = min_x_tile; x <= max_x_tile; x++) { bool first = (x == min_x_tile && y == min_y_tile); -From 50b3b6fe802180225e112ee995a76fd893abf578 Mon Sep 17 00:00:00 2001 +From 583809919eca83b08415654e13f6a86013898ebf Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 25 Jan 2016 14:13:12 -0800 -Subject: [PATCH 193/220] drm/vc4: Return an ERR_PTR from BO creation instead +Subject: [PATCH 192/234] drm/vc4: Return an ERR_PTR from BO creation instead of NULL. Fixes igt vc4_create_bo/create-bo-0 by returning -EINVAL from the @@ -159928,10 +159900,10 @@ index 0fb5b99..8396960 100644 /* tile alloc address. */ -From 0f16ca83c0f2657fbfada3502bcfca2316d8221e Mon Sep 17 00:00:00 2001 +From 8ed27b5631519f044dcf975413884aaaa8088fb6 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 25 Jan 2016 14:32:41 -0800 -Subject: [PATCH 194/220] drm/vc4: Fix -ERESTARTSYS error return from BO waits. +Subject: [PATCH 193/234] drm/vc4: Fix -ERESTARTSYS error return from BO waits. This caused the wait ioctls to claim that waiting had completed when we actually got interrupted by a signal before it was done. Fixes @@ -159963,10 +159935,10 @@ index f8c003a..dc3044d 100644 static void -From 4c0fab266928bd56412ca57b2e58d05a7ecb3fbd Mon Sep 17 00:00:00 2001 +From 47358baecb8cf02bd4145b2f5c1aa1b8431519df Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 25 Jan 2016 14:33:50 -0800 -Subject: [PATCH 195/220] drm/vc4: Drop error message on seqno wait timeouts. +Subject: [PATCH 194/234] drm/vc4: Drop error message on seqno wait timeouts. These ioctls end up getting exposed to userspace, and having normal user requests print DRM errors is obviously wrong. The message was @@ -159993,10 +159965,10 @@ index dc3044d..a6fa63f 100644 } -From 6943e0f06fad8f66a1f64aa65d69e5fd090b24a1 Mon Sep 17 00:00:00 2001 +From aeaf5cc198e41bfeea81a41173b0ed3e6765f9ac Mon Sep 17 00:00:00 2001 From: campag Date: Wed, 24 Feb 2016 16:45:42 +0000 -Subject: [PATCH 196/220] BCM270X_DT: Add 1-bit SDIO using minimal pins... +Subject: [PATCH 195/234] BCM270X_DT: Add 1-bit SDIO using minimal pins... ... for that mode: GPIOs 22-25. --- @@ -160080,10 +160052,10 @@ index 0000000..46d4538 + }; +}; -From 793561d4d88992ffe5532e850592a99d9cd4e1f2 Mon Sep 17 00:00:00 2001 +From 786a7be1c732a5d54c6d72bd58bfbd07d6a1310d Mon Sep 17 00:00:00 2001 From: Cheong2K Date: Fri, 26 Feb 2016 18:20:10 +0800 -Subject: [PATCH 197/220] brcm: adds support for BCM43341 wifi +Subject: [PATCH 196/234] brcm: adds support for BCM43341 wifi --- drivers/net/wireless/brcm80211/brcmfmac/sdio.c | 5 +++++ @@ -160133,10 +160105,10 @@ index aa06ea2..f3ae83d 100644 #define BRCM_CC_4335_CHIP_ID 0x4335 #define BRCM_CC_4339_CHIP_ID 0x4339 -From 2982e9b263d5ee0db255ab5407b57da6fa7e0749 Mon Sep 17 00:00:00 2001 +From 5f13d4fdf83a21813e952e9eb4d9571f32190d36 Mon Sep 17 00:00:00 2001 From: Michael Heimpold Date: Fri, 29 Jan 2016 12:00:37 +0100 -Subject: [PATCH 198/220] Add overlay and enable support for QCA7000 board +Subject: [PATCH 197/234] Add overlay and enable support for QCA7000 board This adds a device tree overlay for the QCA7000 which can be used when attaching an I2SE's PLC Stamp micro EVK to the Raspberry Pi. @@ -160272,10 +160244,10 @@ index 74149cf..e720c74 100644 CONFIG_PPP=m CONFIG_PPP_BSDCOMP=m -From 54705f156e1cf790f116fb3b8308c7ce413919c0 Mon Sep 17 00:00:00 2001 +From c8a7d7fd820fc9c3983f1ada46f70272bc80984c Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 9 Mar 2016 13:28:24 +0000 -Subject: [PATCH 199/220] serial: Take care starting a hung-up tty's port +Subject: [PATCH 198/234] 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), @@ -160303,10 +160275,10 @@ index 297d4fa..00ce6c6 100644 return 0; } -From aeacbad0b72cce451d6ca651ca264aa086b31117 Mon Sep 17 00:00:00 2001 +From 2f146ce902d611f142d2e868d46ade1376b9c3cc Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 17 Mar 2016 10:16:16 +0000 -Subject: [PATCH 200/220] pi3-miniuart-bt-overlay: Correct and clarify info +Subject: [PATCH 199/234] pi3-miniuart-bt-overlay: Correct and clarify info Signed-off-by: Phil Elwell --- @@ -160349,10 +160321,10 @@ index f07afcb..38ed33b 100644 If cmdline.txt uses the alias serial0 to refer to the user-accessable port then the firmware will replace with the appropriate port whether or not -From 53476038ee92e175f761c56ec03f3160b37c3f0f Mon Sep 17 00:00:00 2001 +From 757f32b50c7ba8b7f30c4d7dcf3898577320c9b3 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 17 Mar 2016 10:41:56 +0000 -Subject: [PATCH 201/220] pwm overlays: Params must have in-overlay targets +Subject: [PATCH 200/234] pwm overlays: Params must have in-overlay targets --- arch/arm/boot/dts/overlays/pwm-2chan-overlay.dts | 9 ++++++++- @@ -160406,10 +160378,10 @@ index ddd67ff..bf030a6 100644 }; }; -From 20fbefa704973bf5390a112aa8a41f9579e17295 Mon Sep 17 00:00:00 2001 +From 797a49072e2732377e4ffd24632bfcc6668e41ab Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 18 Mar 2016 13:06:29 +0000 -Subject: [PATCH 202/220] BCM270X_DT: Switch Compute Module to MMC +Subject: [PATCH 201/234] BCM270X_DT: Switch Compute Module to MMC Signed-off-by: Phil Elwell --- @@ -160462,10 +160434,10 @@ index e09e499..90e330d 100644 }; }; -From c185b46ac9d6c2e97a08117ff34d8c9afc4b691b Mon Sep 17 00:00:00 2001 +From 98fe5a7c56282fdca645293b66dca84fc9328a87 Mon Sep 17 00:00:00 2001 From: P33M Date: Fri, 18 Mar 2016 17:38:37 +0000 -Subject: [PATCH 203/220] dwc_otg: Don't free qh align buffers in atomic +Subject: [PATCH 202/234] dwc_otg: Don't free qh align buffers in atomic context --- @@ -160509,10 +160481,10 @@ index acd0dd7..3b2a607 100644 } -From 8a072f7bbbedeeb4a5f1861f4fdc6c3d7b5df84d Mon Sep 17 00:00:00 2001 +From e98dcafb381c113931135382f12a532f23844b27 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 21 Mar 2016 15:38:38 +0000 -Subject: [PATCH 204/220] dwc_otg: Enable the hack for Split Interrupt +Subject: [PATCH 203/234] dwc_otg: Enable the hack for Split Interrupt transactions by default dwc_otg.fiq_fsm_mask=0xF has long been a suggestion for users with audio stutters or other USB bandwidth issues. @@ -160540,10 +160512,10 @@ index 95edadf..cb060a7 100644 /** * This function shows the Driver Version. -From c807958f0a33033ff8f08bf79e97b246e949a254 Mon Sep 17 00:00:00 2001 +From 1b1b27f51fb1e3fcb84bb943b5479cb04e8ec26a Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Sat, 19 Mar 2016 16:51:37 +0000 -Subject: [PATCH 205/220] BCM270X_DT: Remove explicit claiming of UART pins +Subject: [PATCH 204/234] BCM270X_DT: Remove explicit claiming of UART pins It is convenient to be able to map a different function to the UART pins (e.g. DPI for vga666) without having to disable the UART first. @@ -160636,10 +160608,10 @@ index 38ed33b..17d04cf 100644 __overlay__ { serial0 = "/soc/uart@7e201000"; -From 9655dc3cac7fd783da12d4f73f273d331d132d2e Mon Sep 17 00:00:00 2001 +From e737973b851afacf68ad47469e18f24737b2a7a6 Mon Sep 17 00:00:00 2001 From: Rodrigo Freire Date: Tue, 22 Mar 2016 12:40:33 -0300 -Subject: [PATCH 206/220] lirc_rpi: Lower IR reception error to debug +Subject: [PATCH 205/234] lirc_rpi: Lower IR reception error to debug Lowers a IR reception error condition message to KERNEL_DEBUG --- @@ -160660,10 +160632,10 @@ index cd09c99..0624439 100644 signal, sense, tv.tv_sec, lasttv.tv_sec, tv.tv_usec, lasttv.tv_usec); -From 373adf3fbcc120470fe4692744706f98bf5a3030 Mon Sep 17 00:00:00 2001 +From da7c5fdbb291ead09fb343ee0637baa41531f336 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 23 Mar 2016 14:16:25 +0000 -Subject: [PATCH 207/220] vchiq_arm: Access the dequeue_pending flag locked +Subject: [PATCH 206/234] vchiq_arm: Access the dequeue_pending flag locked Reading through this code looking for another problem (now found in userland) the use of dequeue_pending outside a lock didn't seem safe. @@ -160721,10 +160693,10 @@ index e11c0e0..71883e5 100644 return add_completion(instance, reason, header, user_service, -From 1323236521122fc9c55557680a79e44edfdbeab0 Mon Sep 17 00:00:00 2001 +From 2c4d8a6860d02b367d8812216d904e5de0ff0018 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 23 Mar 2016 15:57:14 +0000 -Subject: [PATCH 208/220] BCM270X_DT: Add pi3-act-led overlay +Subject: [PATCH 207/234] BCM270X_DT: Add pi3-act-led overlay Signed-off-by: Phil Elwell --- @@ -160823,10 +160795,10 @@ index 0000000..14a59dc + }; +}; -From b5a4fa8f9d9e97bf938acdda3806b4dfdd4cad62 Mon Sep 17 00:00:00 2001 +From 4b406588ecc5e136f67c35b3ba5e6c831023d1a1 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 23 Mar 2016 20:53:47 +0000 -Subject: [PATCH 209/220] vchiq_arm: Service callbacks must not fail +Subject: [PATCH 208/234] vchiq_arm: Service callbacks must not fail Service callbacks are not allowed to return an error. The internal callback that delivers events and messages to user tasks does not enqueue them if @@ -160852,10 +160824,10 @@ index 71883e5..a5cc385 100644 DEBUG_TRACE(SERVICE_CALLBACK_LINE); } -From 66dd57b8f4b8c8fcea6d755425b117ff97b8f37b Mon Sep 17 00:00:00 2001 +From a1144c5ebde67a6380ee115b089477ff135c8442 Mon Sep 17 00:00:00 2001 From: Dave Stevenson <6by9@users.noreply.github.com> Date: Thu, 17 Mar 2016 18:16:16 +0000 -Subject: [PATCH 210/220] Add configs and overlay for PCA9548 I2C mux +Subject: [PATCH 209/234] Add configs and overlay for PCA9548 I2C mux Adds kernel configs for I2C muxes and a dt overlay for PCA9548 that adds the 8 muxed I2C buses and mux device. @@ -160997,10 +160969,10 @@ index e720c74..f6e2d84 100644 CONFIG_SPI_BCM2835=m CONFIG_SPI_BCM2835AUX=m -From 05986749a2eaac35aa623be4a3d3804466c999bd Mon Sep 17 00:00:00 2001 +From 3473f0de2273bcc8921dbf51d4bdecfd3df83d39 Mon Sep 17 00:00:00 2001 From: Nicolas Boullis Date: Wed, 23 Mar 2016 23:40:15 +0100 -Subject: [PATCH 211/220] BCM270X_DT: Add DS1339 to i2c-rtc overlay +Subject: [PATCH 210/234] BCM270X_DT: Add DS1339 to i2c-rtc overlay --- arch/arm/boot/dts/overlays/README | 4 ++++ @@ -161060,10 +161032,10 @@ index fed4bd8..eecec16 100644 }; }; -From 1b76cf64a27889e293c10306126fe955bf1a9402 Mon Sep 17 00:00:00 2001 +From dad9bd19647609da9823dca157737537b2372d3f Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 29 Mar 2016 15:32:30 +0100 -Subject: [PATCH 212/220] copy_from_user: CPU_SW_DOMAIN_PAN compatibility +Subject: [PATCH 211/234] copy_from_user: CPU_SW_DOMAIN_PAN compatibility The downstream copy_from_user acceleration must also play nice with CONFIG_CPU_SW_DOMAIN_PAN. @@ -161116,10 +161088,10 @@ index c29df92..6681df5 100644 static unsigned long noinline -From 1b07b9eba23bb72e9754b035ef5b806a278b3a7d Mon Sep 17 00:00:00 2001 +From ef1e082fb7d83d867ca9a24f8236ec42c6c73951 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 30 Mar 2016 16:33:09 +0100 -Subject: [PATCH 213/220] bcm2835-sdhost: Adjust to core clock changes +Subject: [PATCH 212/234] bcm2835-sdhost: Adjust to core clock changes The SDHOST block uses the core clock, so previously it has been necessary to prevent the core clock from changing in order to maintain @@ -161460,10 +161432,10 @@ index f43aae0..1deecef 100644 bcm2835_sdhost_set_power(host, false); -From 5218b8ec0c8bcc1c30812dd67978c12b91cb7237 Mon Sep 17 00:00:00 2001 +From 3d5fd3b064b7f284caaf71734be701d7222ab92b Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 30 Mar 2016 17:07:15 +0100 -Subject: [PATCH 214/220] BCM270X_DT: Document hazards of sdhost overlay +Subject: [PATCH 213/234] BCM270X_DT: Document hazards of sdhost overlay Signed-off-by: Phil Elwell --- @@ -161497,10 +161469,10 @@ index e88e7c8..337be4a 100644 Params: overclock_50 Clock (in MHz) to use when the MMC framework requests 50MHz -From 543bfd50bf9f77cc2f88607f305e272f268d9a01 Mon Sep 17 00:00:00 2001 +From 2e65d41c01b25c2f0c492d08e075e73652487482 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 30 Mar 2016 17:23:15 +0100 -Subject: [PATCH 215/220] cpufreq: Temporarily ignore io_is_busy=1 +Subject: [PATCH 214/234] 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 @@ -161531,10 +161503,10 @@ index 03ac6ce..99a9610 100644 /* we need to re-evaluate prev_cpu_idle */ for_each_online_cpu(j) { -From be52d947f0b06bf64639d20a88d0700b56ee25fa Mon Sep 17 00:00:00 2001 +From 8bfcac27c6e044ce4b8575fcaec2c6a0e81caa27 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 30 Mar 2016 20:18:38 +0100 -Subject: [PATCH 216/220] Revert "cpufreq: Temporarily ignore io_is_busy=1" +Subject: [PATCH 215/234] Revert "cpufreq: Temporarily ignore io_is_busy=1" This reverts commit 2af1218a8a0220fec526f64d03977b8451afb4c8. --- @@ -161560,10 +161532,10 @@ index 99a9610..03ac6ce 100644 /* we need to re-evaluate prev_cpu_idle */ for_each_online_cpu(j) { -From 2163c89a75611d21451e5a5723160cefe1d276b5 Mon Sep 17 00:00:00 2001 +From 6c18ab269d6fecd2af4592eef76d736673ee6e5c Mon Sep 17 00:00:00 2001 From: Daniel Borkmann Date: Thu, 7 Jan 2016 15:50:22 +0100 -Subject: [PATCH 217/220] net, sched: add skb_at_tc_ingress helper +Subject: [PATCH 216/234] net, sched: add skb_at_tc_ingress helper Add a skb_at_tc_ingress() as this will be needed elsewhere as well and can hide the ugly ifdef. @@ -161615,10 +161587,10 @@ index 5faaa54..b3c8bb4 100644 if (unlikely(!skb_mac_header_was_set(skb))) -From 2ed858c4003bb16683124b3d5848c9e0a4f6d4f2 Mon Sep 17 00:00:00 2001 +From 0d1b178dacce1dd75fc5bf4b7ff493a46736e70c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Linus=20L=C3=BCssing?= Date: Wed, 24 Feb 2016 04:21:42 +0100 -Subject: [PATCH 218/220] net: fix bridge multicast packet checksum validation +Subject: [PATCH 217/234] net: fix bridge multicast packet checksum validation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -161693,10 +161665,10 @@ index 5bf88f5..8616d11 100644 if (ret) goto err; -From 8df7ac6bc025d2d4862c95cb5f954519533b75a7 Mon Sep 17 00:00:00 2001 +From 4d5955a2a51ca2caf2d703832aaeee0953e21490 Mon Sep 17 00:00:00 2001 From: Daniel Borkmann Date: Thu, 7 Jan 2016 15:50:23 +0100 -Subject: [PATCH 219/220] bpf: add skb_postpush_rcsum and fix dev_forward_skb +Subject: [PATCH 218/234] bpf: add skb_postpush_rcsum and fix dev_forward_skb occasions Add a small helper skb_postpush_rcsum() and fix up redirect locations @@ -161822,10 +161794,10 @@ index 37157c4..6e337ea 100644 skb->dev = dev; skb_sender_cpu_clear(skb); -From d7266f9f0bf5a3b3ed41f904d615b2bbf6e48289 Mon Sep 17 00:00:00 2001 +From 4cc63615777c6bc447eb9a7175f663f9fc39983d Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 31 Mar 2016 15:44:53 +0100 -Subject: [PATCH 220/220] bcm2835-sdhost: Precalc divisors and overclocks +Subject: [PATCH 219/234] bcm2835-sdhost: Precalc divisors and overclocks Recalculating the clock divisors when the core clock changes is wasteful and makes it harder to manage the overclock settings. Instead, @@ -162095,3 +162067,2137 @@ index 1deecef..cc18ec8 100644 platform_set_drvdata(pdev, host); pr_debug("bcm2835_sdhost_probe -> OK\n"); + +From 14e3b7b73d1f16d98516c803af1e1ca0e51038f0 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Mon, 4 Apr 2016 12:35:32 +0100 +Subject: [PATCH 220/234] Revert "bcm2835-sdhost: Precalc divisors and + overclocks" + +This reverts commit 20260462773366a5734e5268dae0a4c179a21a2d. +--- + drivers/mmc/host/bcm2835-sdhost.c | 152 ++++++++++++++++---------------------- + 1 file changed, 64 insertions(+), 88 deletions(-) + +diff --git a/drivers/mmc/host/bcm2835-sdhost.c b/drivers/mmc/host/bcm2835-sdhost.c +index cc18ec8..1deecef 100644 +--- a/drivers/mmc/host/bcm2835-sdhost.c ++++ b/drivers/mmc/host/bcm2835-sdhost.c +@@ -154,15 +154,12 @@ struct bcm2835_host { + u32 pio_timeout; /* In jiffies */ + + int clock; /* Current clock speed */ +- int clocks[2]; + + bool slow_card; /* Force 11-bit divisor */ + + unsigned int max_clk; /* Max src clock freq */ +- unsigned int src_clks[2]; /* Min/max src clock freqs */ +- unsigned int cur_clk_idx; /* Index of current clock */ +- unsigned int next_clk_idx; /* Next clock index */ +- unsigned int cdivs[2]; ++ unsigned int min_clk; /* Min src clock freq */ ++ unsigned int cur_clk; /* Current src clock freq */ + + struct tasklet_struct finish_tasklet; /* Tasklet structures */ + +@@ -216,7 +213,7 @@ struct bcm2835_host { + u32 delay_after_stop; /* minimum time between stop and subsequent data transfer */ + u32 delay_after_this_stop; /* minimum time between this stop and subsequent data transfer */ + u32 overclock_50; /* frequency to use when 50MHz is requested (in MHz) */ +- u32 prev_overclock_50; ++ u32 overclock; /* Current frequency if overclocked, else zero */ + u32 pio_limit; /* Maximum block count for PIO (0 = always DMA) */ + + u32 sectors; /* Cached card size in sectors */ +@@ -1512,35 +1509,10 @@ static irqreturn_t bcm2835_sdhost_irq(int irq, void *dev_id) + return result; + } + +-static void bcm2835_sdhost_select_clock(struct bcm2835_host *host, int idx) +-{ +- unsigned int clock = host->clocks[idx]; +- unsigned int cdiv = host->cdivs[idx]; +- +- host->mmc->actual_clock = clock; +- host->ns_per_fifo_word = (1000000000/clock) * +- ((host->mmc->caps & MMC_CAP_4_BIT_DATA) ? 8 : 32); +- +- host->cdiv = cdiv; +- bcm2835_sdhost_write(host, host->cdiv, SDCDIV); +- +- /* Set the timeout to 500ms */ +- bcm2835_sdhost_write(host, clock/2, SDTOUT); +- +- host->cur_clk_idx = host->next_clk_idx = idx; +- +- if (host->debug) +- pr_info("%s: clock=%d -> src_clk=%d, cdiv=%x (actual %d)\n", +- mmc_hostname(host->mmc), host->clock, +- host->src_clks[idx], host->cdiv, +- host->mmc->actual_clock); +-} +- + void bcm2835_sdhost_set_clock(struct bcm2835_host *host) + { + int div = 0; /* Initialized for compiler warning */ + unsigned int clock = host->clock; +- int clk_idx; + + if (host->debug) + pr_info("%s: set_clock(%d)\n", mmc_hostname(host->mmc), clock); +@@ -1581,45 +1553,53 @@ void bcm2835_sdhost_set_clock(struct bcm2835_host *host) + return; + } + +- /* Calculate the clock divisors */ +- for (clk_idx = 0; clk_idx <= host->variable_clock; clk_idx++) +- { +- unsigned int cur_clk = host->src_clks[clk_idx]; +- unsigned int actual_clock; +- +- div = cur_clk / clock; +- if (div < 2) +- div = 2; +- if ((cur_clk / div) > clock) +- div++; +- div -= 2; +- +- if (div > SDCDIV_MAX_CDIV) +- div = SDCDIV_MAX_CDIV; +- actual_clock = cur_clk / (div + 2); +- +- host->cdivs[clk_idx] = div; +- host->clocks[clk_idx] = actual_clock; +- +- if (host->overclock_50 != host->prev_overclock_50) { +- const char *clk_name = ""; +- if (host->variable_clock) +- clk_name = clk_idx ? " (turbo)" : " (normal)"; +- if (actual_clock > host->clock) +- pr_info("%s: overclocking to %dHz%s\n", +- mmc_hostname(host->mmc), +- actual_clock, clk_name); +- else if ((host->overclock_50 < 50) && (clk_idx == 0)) +- pr_info("%s: cancelling overclock%s\n", +- mmc_hostname(host->mmc), +- host->variable_clock ? "s" : ""); ++ div = host->cur_clk / clock; ++ if (div < 2) ++ div = 2; ++ if ((host->cur_clk / div) > clock) ++ div++; ++ div -= 2; ++ ++ if (div > SDCDIV_MAX_CDIV) ++ div = SDCDIV_MAX_CDIV; ++ ++ clock = host->cur_clk / (div + 2); ++ host->mmc->actual_clock = clock; ++ ++ /* Calibrate some delays */ ++ ++ host->ns_per_fifo_word = (1000000000/clock) * ++ ((host->mmc->caps & MMC_CAP_4_BIT_DATA) ? 8 : 32); ++ ++ if (clock > host->clock) { ++ /* Save the closest value, to make it easier ++ to reduce in the event of error */ ++ host->overclock_50 = (clock/MHZ); ++ ++ if (clock != host->overclock) { ++ pr_warn("%s: overclocking to %dHz\n", ++ mmc_hostname(host->mmc), clock); ++ host->overclock = clock; + } + } ++ else if (host->overclock) ++ { ++ host->overclock = 0; ++ if (clock == 50 * MHZ) ++ pr_warn("%s: cancelling overclock\n", ++ mmc_hostname(host->mmc)); ++ } ++ ++ host->cdiv = div; ++ bcm2835_sdhost_write(host, host->cdiv, SDCDIV); + +- if (host->clock == 50*MHZ) +- host->prev_overclock_50 = host->overclock_50; ++ /* Set the timeout to 500ms */ ++ bcm2835_sdhost_write(host, host->mmc->actual_clock/2, SDTOUT); + +- bcm2835_sdhost_select_clock(host, host->cur_clk_idx); ++ if (host->debug) ++ pr_info("%s: clock=%d -> cur_clk=%d, cdiv=%x (actual clock %d)\n", ++ mmc_hostname(host->mmc), host->clock, ++ host->cur_clk, host->cdiv, host->mmc->actual_clock); + } + + static void bcm2835_sdhost_request(struct mmc_host *mmc, struct mmc_request *mrq) +@@ -1677,9 +1657,6 @@ static void bcm2835_sdhost_request(struct mmc_host *mmc, struct mmc_request *mrq + + spin_lock_irqsave(&host->lock, flags); + +- if (host->next_clk_idx != host->cur_clk_idx) +- bcm2835_sdhost_select_clock(host, host->next_clk_idx); +- + WARN_ON(host->mrq != NULL); + host->mrq = mrq; + +@@ -1742,7 +1719,11 @@ static int bcm2835_sdhost_cpufreq_callback(struct notifier_block *nb, + return NOTIFY_BAD; + break; + case CPUFREQ_POSTCHANGE: +- host->next_clk_idx = (freq->new > freq->old); ++ if (freq->new > freq->old) ++ host->cur_clk = host->max_clk; ++ else ++ host->cur_clk = host->min_clk; ++ bcm2835_sdhost_set_clock(host); + up(&host->cpufreq_semaphore); + break; + default: +@@ -1782,11 +1763,8 @@ static void bcm2835_sdhost_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) + ios->clock, ios->power_mode, ios->bus_width, + ios->timing, ios->signal_voltage, ios->drv_type); + +- if (ios->clock && (host->cur_clk_idx == -1)) { +- unsigned int cur_clk = +- get_core_clock(RPI_FIRMWARE_GET_CLOCK_RATE); +- host->cur_clk_idx = (cur_clk == host->src_clks[0]) ? 0 : 1; +- } ++ if (ios->clock && !host->cur_clk) ++ host->cur_clk = get_core_clock(RPI_FIRMWARE_GET_CLOCK_RATE); + + spin_lock_irqsave(&host->lock, flags); + +@@ -1876,12 +1854,11 @@ static void bcm2835_sdhost_tasklet_finish(unsigned long param) + + /* Drop the overclock after any data corruption, or after any + error overclocked */ +- if (host->clock > 50*MHZ) { ++ if (host->overclock) { + if ((mrq->cmd && mrq->cmd->error) || + (mrq->data && mrq->data->error) || + (mrq->stop && mrq->stop->error)) { +- host->overclock_50 = (host->clock/MHZ) - 1; +- ++ host->overclock_50--; + pr_warn("%s: reducing overclock due to errors\n", + mmc_hostname(host->mmc)); + bcm2835_sdhost_set_clock(host); +@@ -2045,7 +2022,7 @@ static int bcm2835_sdhost_probe(struct platform_device *pdev) + struct bcm2835_host *host; + struct mmc_host *mmc; + const __be32 *addr; +- unsigned int max_clk, min_clk; ++ unsigned int max_clk; + int ret; + + pr_debug("bcm2835_sdhost_probe\n"); +@@ -2151,8 +2128,12 @@ static int bcm2835_sdhost_probe(struct platform_device *pdev) + else + mmc->caps |= MMC_CAP_4_BIT_DATA; + ++ ret = bcm2835_sdhost_add_host(host); ++ if (ret) ++ goto err; ++ + /* Query the core clock frequencies */ +- min_clk = get_core_clock(RPI_FIRMWARE_GET_MIN_CLOCK_RATE); ++ host->min_clk = get_core_clock(RPI_FIRMWARE_GET_MIN_CLOCK_RATE); + max_clk = get_core_clock(RPI_FIRMWARE_GET_MAX_CLOCK_RATE); + if (max_clk != host->max_clk) { + pr_warn("%s: Expected max clock %d, found %d\n", +@@ -2160,24 +2141,19 @@ static int bcm2835_sdhost_probe(struct platform_device *pdev) + host->max_clk = max_clk; + } + +- host->src_clks[0] = min_clk; +- host->cur_clk_idx = -1; +- if (max_clk != min_clk) { +- host->src_clks[1] = max_clk; ++ if (host->min_clk != host->max_clk) { + host->cpufreq_nb.notifier_call = + bcm2835_sdhost_cpufreq_callback; + sema_init(&host->cpufreq_semaphore, 1); + cpufreq_register_notifier(&host->cpufreq_nb, + CPUFREQ_TRANSITION_NOTIFIER); + host->variable_clock = 1; ++ host->cur_clk = 0; /* Get this later */ + } else { + host->variable_clock = 0; ++ host->cur_clk = host->max_clk; + } + +- ret = bcm2835_sdhost_add_host(host); +- if (ret) +- goto err; +- + platform_set_drvdata(pdev, host); + + pr_debug("bcm2835_sdhost_probe -> OK\n"); + +From 4c77ab3471804f1f051b004369152a7b0759c506 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Mon, 4 Apr 2016 12:35:51 +0100 +Subject: [PATCH 221/234] Revert "bcm2835-sdhost: Adjust to core clock changes" + +This reverts commit 4b89d07fd299a0f4e25321920cb74416ba2e638e. +--- + drivers/mmc/host/Kconfig | 1 - + drivers/mmc/host/bcm2835-sdhost.c | 140 ++++++-------------------------------- + 2 files changed, 22 insertions(+), 119 deletions(-) + +diff --git a/drivers/mmc/host/Kconfig b/drivers/mmc/host/Kconfig +index 98a7fa5..d509d10 100644 +--- a/drivers/mmc/host/Kconfig ++++ b/drivers/mmc/host/Kconfig +@@ -36,7 +36,6 @@ config MMC_BCM2835_PIO_DMA_BARRIER + config MMC_BCM2835_SDHOST + tristate "Support for the SDHost controller on BCM2708/9" + depends on MACH_BCM2708 || MACH_BCM2709 || ARCH_BCM2835 +- depends on RASPBERRYPI_FIRMWARE + help + This selects the SDHost controller on BCM2835/6. + +diff --git a/drivers/mmc/host/bcm2835-sdhost.c b/drivers/mmc/host/bcm2835-sdhost.c +index 1deecef..f43aae0 100644 +--- a/drivers/mmc/host/bcm2835-sdhost.c ++++ b/drivers/mmc/host/bcm2835-sdhost.c +@@ -50,10 +50,6 @@ + #include + #include + #include +-#include +-#include +-#include +- + + #define DRIVER_NAME "sdhost-bcm2835" + +@@ -140,8 +136,6 @@ + + #define MHZ 1000000 + +-#define RPI_FIRMWARE_CLOCK_CORE 4 +- + + struct bcm2835_host { + spinlock_t lock; +@@ -157,9 +151,7 @@ struct bcm2835_host { + + bool slow_card; /* Force 11-bit divisor */ + +- unsigned int max_clk; /* Max src clock freq */ +- unsigned int min_clk; /* Min src clock freq */ +- unsigned int cur_clk; /* Current src clock freq */ ++ unsigned int max_clk; /* Max possible freq */ + + struct tasklet_struct finish_tasklet; /* Tasklet structures */ + +@@ -191,7 +183,6 @@ struct bcm2835_host { + unsigned int use_sbc:1; /* Send CMD23 */ + + unsigned int debug:1; /* Enable debug output */ +- unsigned int variable_clock:1; /* The core clock may change */ + + /*DMA part*/ + struct dma_chan *dma_chan_rxtx; /* DMA channel for reads and writes */ +@@ -217,9 +208,6 @@ struct bcm2835_host { + u32 pio_limit; /* Maximum block count for PIO (0 = always DMA) */ + + u32 sectors; /* Cached card size in sectors */ +- +- struct notifier_block cpufreq_nb; /* The cpufreq callback list item */ +- struct semaphore cpufreq_semaphore; /* Interlock between SD activity and cpufreq changes */ + }; + + #if ENABLE_LOG +@@ -239,10 +227,6 @@ static u32 sdhost_log_idx; + static spinlock_t log_lock; + static void __iomem *timer_base; + +-static int bcm2835_sdhost_cpufreq_callback(struct notifier_block *nb, +- unsigned long action, void *data); +-static unsigned int get_core_clock(unsigned int mode); +- + #define LOG_ENTRIES (256*1) + #define LOG_SIZE (sizeof(LOG_ENTRY_T)*LOG_ENTRIES) + +@@ -464,14 +448,20 @@ static void bcm2835_sdhost_reset(struct mmc_host *mmc) + + static void bcm2835_sdhost_set_ios(struct mmc_host *mmc, struct mmc_ios *ios); + +-static void bcm2835_sdhost_init(struct bcm2835_host *host) ++static void bcm2835_sdhost_init(struct bcm2835_host *host, int soft) + { +- pr_debug("bcm2835_sdhost_init()\n"); ++ pr_debug("bcm2835_sdhost_init(%d)\n", soft); + + /* Set interrupt enables */ + host->hcfg = SDHCFG_BUSY_IRPT_EN; + + bcm2835_sdhost_reset_internal(host); ++ ++ if (soft) { ++ /* force clock reconfiguration */ ++ host->clock = 0; ++ bcm2835_sdhost_set_ios(host->mmc, &host->mmc->ios); ++ } + } + + static void bcm2835_sdhost_wait_transfer_complete(struct bcm2835_host *host) +@@ -1509,10 +1499,10 @@ static irqreturn_t bcm2835_sdhost_irq(int irq, void *dev_id) + return result; + } + +-void bcm2835_sdhost_set_clock(struct bcm2835_host *host) ++void bcm2835_sdhost_set_clock(struct bcm2835_host *host, unsigned int clock) + { + int div = 0; /* Initialized for compiler warning */ +- unsigned int clock = host->clock; ++ unsigned int input_clock = clock; + + if (host->debug) + pr_info("%s: set_clock(%d)\n", mmc_hostname(host->mmc), clock); +@@ -1553,17 +1543,17 @@ void bcm2835_sdhost_set_clock(struct bcm2835_host *host) + return; + } + +- div = host->cur_clk / clock; ++ div = host->max_clk / clock; + if (div < 2) + div = 2; +- if ((host->cur_clk / div) > clock) ++ if ((host->max_clk / div) > clock) + div++; + div -= 2; + + if (div > SDCDIV_MAX_CDIV) + div = SDCDIV_MAX_CDIV; + +- clock = host->cur_clk / (div + 2); ++ clock = host->max_clk / (div + 2); + host->mmc->actual_clock = clock; + + /* Calibrate some delays */ +@@ -1571,7 +1561,7 @@ void bcm2835_sdhost_set_clock(struct bcm2835_host *host) + host->ns_per_fifo_word = (1000000000/clock) * + ((host->mmc->caps & MMC_CAP_4_BIT_DATA) ? 8 : 32); + +- if (clock > host->clock) { ++ if (clock > input_clock) { + /* Save the closest value, to make it easier + to reduce in the event of error */ + host->overclock_50 = (clock/MHZ); +@@ -1597,9 +1587,9 @@ void bcm2835_sdhost_set_clock(struct bcm2835_host *host) + bcm2835_sdhost_write(host, host->mmc->actual_clock/2, SDTOUT); + + if (host->debug) +- pr_info("%s: clock=%d -> cur_clk=%d, cdiv=%x (actual clock %d)\n", +- mmc_hostname(host->mmc), host->clock, +- host->cur_clk, host->cdiv, host->mmc->actual_clock); ++ pr_info("%s: clock=%d -> max_clk=%d, cdiv=%x (actual clock %d)\n", ++ mmc_hostname(host->mmc), input_clock, ++ host->max_clk, host->cdiv, host->mmc->actual_clock); + } + + static void bcm2835_sdhost_request(struct mmc_host *mmc, struct mmc_request *mrq) +@@ -1648,13 +1638,6 @@ static void bcm2835_sdhost_request(struct mmc_host *mmc, struct mmc_request *mrq + (mrq->data->blocks > host->pio_limit)) + bcm2835_sdhost_prepare_dma(host, mrq->data); + +- if (host->variable_clock && +- (down_killable(&host->cpufreq_semaphore) != 0)) { +- mrq->cmd->error = -EINTR; +- mmc_request_done(mmc, mrq); +- return; +- } +- + spin_lock_irqsave(&host->lock, flags); + + WARN_ON(host->mrq != NULL); +@@ -1704,52 +1687,6 @@ static void bcm2835_sdhost_request(struct mmc_host *mmc, struct mmc_request *mrq + spin_unlock_irqrestore(&host->lock, flags); + } + +-static int bcm2835_sdhost_cpufreq_callback(struct notifier_block *nb, +- unsigned long action, void *data) +-{ +- struct cpufreq_freqs *freq = data; +- struct bcm2835_host *host; +- +- host = container_of(nb, struct bcm2835_host, cpufreq_nb); +- +- if (freq->cpu == 0) { +- switch (action) { +- case CPUFREQ_PRECHANGE: +- if (down_killable(&host->cpufreq_semaphore) != 0) +- return NOTIFY_BAD; +- break; +- case CPUFREQ_POSTCHANGE: +- if (freq->new > freq->old) +- host->cur_clk = host->max_clk; +- else +- host->cur_clk = host->min_clk; +- bcm2835_sdhost_set_clock(host); +- up(&host->cpufreq_semaphore); +- break; +- default: +- break; +- } +- } +- return NOTIFY_OK; +-} +- +-static unsigned int get_core_clock(unsigned int mode) +-{ +- struct rpi_firmware *fw = rpi_firmware_get(NULL); +- struct { +- u32 id; +- u32 val; +- } packet; +- int ret; +- +- packet.id = RPI_FIRMWARE_CLOCK_CORE; +- ret = rpi_firmware_property(fw, mode, &packet, sizeof(packet)); +- if (ret) +- return 0; +- +- return packet.val; +-} +- + static void bcm2835_sdhost_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) + { + +@@ -1763,16 +1700,13 @@ static void bcm2835_sdhost_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) + ios->clock, ios->power_mode, ios->bus_width, + ios->timing, ios->signal_voltage, ios->drv_type); + +- if (ios->clock && !host->cur_clk) +- host->cur_clk = get_core_clock(RPI_FIRMWARE_GET_CLOCK_RATE); +- + spin_lock_irqsave(&host->lock, flags); + + log_event("IOS<", ios->clock, 0); + + if (!ios->clock || ios->clock != host->clock) { ++ bcm2835_sdhost_set_clock(host, ios->clock); + host->clock = ios->clock; +- bcm2835_sdhost_set_clock(host); + } + + /* set bus width */ +@@ -1861,7 +1795,7 @@ static void bcm2835_sdhost_tasklet_finish(unsigned long param) + host->overclock_50--; + pr_warn("%s: reducing overclock due to errors\n", + mmc_hostname(host->mmc)); +- bcm2835_sdhost_set_clock(host); ++ bcm2835_sdhost_set_clock(host,50*MHZ); + mrq->cmd->error = -EILSEQ; + mrq->cmd->retries = 1; + } +@@ -1879,9 +1813,6 @@ static void bcm2835_sdhost_tasklet_finish(unsigned long param) + + spin_unlock_irqrestore(&host->lock, flags); + +- if (host->variable_clock) +- up(&host->cpufreq_semaphore); +- + if (terminate_chan) + { + int err = dmaengine_terminate_all(terminate_chan); +@@ -1984,10 +1915,10 @@ int bcm2835_sdhost_add_host(struct bcm2835_host *host) + setup_timer(&host->timer, bcm2835_sdhost_timeout, + (unsigned long)host); + +- bcm2835_sdhost_init(host); ++ bcm2835_sdhost_init(host, 0); + + ret = request_irq(host->irq, bcm2835_sdhost_irq, 0 /*IRQF_SHARED*/, +- mmc_hostname(mmc), host); ++ mmc_hostname(mmc), host); + if (ret) { + pr_err("%s: failed to request IRQ %d: %d\n", + mmc_hostname(mmc), host->irq, ret); +@@ -2022,7 +1953,6 @@ static int bcm2835_sdhost_probe(struct platform_device *pdev) + struct bcm2835_host *host; + struct mmc_host *mmc; + const __be32 *addr; +- unsigned int max_clk; + int ret; + + pr_debug("bcm2835_sdhost_probe\n"); +@@ -2132,28 +2062,6 @@ static int bcm2835_sdhost_probe(struct platform_device *pdev) + if (ret) + goto err; + +- /* Query the core clock frequencies */ +- host->min_clk = get_core_clock(RPI_FIRMWARE_GET_MIN_CLOCK_RATE); +- max_clk = get_core_clock(RPI_FIRMWARE_GET_MAX_CLOCK_RATE); +- if (max_clk != host->max_clk) { +- pr_warn("%s: Expected max clock %d, found %d\n", +- mmc_hostname(mmc), host->max_clk, max_clk); +- host->max_clk = max_clk; +- } +- +- if (host->min_clk != host->max_clk) { +- host->cpufreq_nb.notifier_call = +- bcm2835_sdhost_cpufreq_callback; +- sema_init(&host->cpufreq_semaphore, 1); +- cpufreq_register_notifier(&host->cpufreq_nb, +- CPUFREQ_TRANSITION_NOTIFIER); +- host->variable_clock = 1; +- host->cur_clk = 0; /* Get this later */ +- } else { +- host->variable_clock = 0; +- host->cur_clk = host->max_clk; +- } +- + platform_set_drvdata(pdev, host); + + pr_debug("bcm2835_sdhost_probe -> OK\n"); +@@ -2173,10 +2081,6 @@ static int bcm2835_sdhost_remove(struct platform_device *pdev) + + pr_debug("bcm2835_sdhost_remove\n"); + +- if (host->variable_clock) +- cpufreq_unregister_notifier(&host->cpufreq_nb, +- CPUFREQ_TRANSITION_NOTIFIER); +- + mmc_remove_host(host->mmc); + + bcm2835_sdhost_set_power(host, false); + +From 18886054f90b47848c81b1cc786ec809d97b6b01 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Mon, 4 Apr 2016 16:03:18 +0100 +Subject: [PATCH 222/234] 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 +core clock. This removes the need to use the performance governor or +to enable io_is_busy on the on-demand governor in order to get the +best SD performance. + +N.B. As SD clocks must be an integer divisor of the core clock, it is +possible that the SD clock for "turbo" mode can be different (even +lower) than "normal" mode. + +Signed-off-by: Phil Elwell +--- + drivers/mmc/host/bcm2835-sdhost.c | 120 ++++++++++++++++++----------- + include/soc/bcm2835/raspberrypi-firmware.h | 1 + + 2 files changed, 74 insertions(+), 47 deletions(-) + +diff --git a/drivers/mmc/host/bcm2835-sdhost.c b/drivers/mmc/host/bcm2835-sdhost.c +index f43aae0..54087b2 100644 +--- a/drivers/mmc/host/bcm2835-sdhost.c ++++ b/drivers/mmc/host/bcm2835-sdhost.c +@@ -50,6 +50,7 @@ + #include + #include + #include ++#include + + #define DRIVER_NAME "sdhost-bcm2835" + +@@ -183,6 +184,7 @@ struct bcm2835_host { + unsigned int use_sbc:1; /* Send CMD23 */ + + unsigned int debug:1; /* Enable debug output */ ++ unsigned int firmware_sets_cdiv:1; /* Let the firmware manage the clock */ + + /*DMA part*/ + struct dma_chan *dma_chan_rxtx; /* DMA channel for reads and writes */ +@@ -430,7 +432,7 @@ static void bcm2835_sdhost_reset_internal(struct bcm2835_host *host) + host->clock = 0; + host->sectors = 0; + bcm2835_sdhost_write(host, host->hcfg, SDHCFG); +- bcm2835_sdhost_write(host, host->cdiv, SDCDIV); ++ bcm2835_sdhost_write(host, SDCDIV_MAX_CDIV, SDCDIV); + mmiowb(); + } + +@@ -1534,62 +1536,75 @@ void bcm2835_sdhost_set_clock(struct bcm2835_host *host, unsigned int clock) + + host->mmc->actual_clock = 0; + +- if (clock < 100000) { +- /* Can't stop the clock, but make it as slow as possible +- * to show willing +- */ +- host->cdiv = SDCDIV_MAX_CDIV; +- bcm2835_sdhost_write(host, host->cdiv, SDCDIV); +- return; +- } ++ if (host->firmware_sets_cdiv) { ++ u32 msg[3] = { clock, 0, 0 }; + +- div = host->max_clk / clock; +- if (div < 2) +- div = 2; +- if ((host->max_clk / div) > clock) +- div++; +- div -= 2; ++ rpi_firmware_property(rpi_firmware_get(NULL), ++ RPI_FIRMWARE_SET_SDHOST_CLOCK, ++ &msg, sizeof(msg)); + +- if (div > SDCDIV_MAX_CDIV) +- div = SDCDIV_MAX_CDIV; ++ clock = max(msg[1], msg[2]); ++ } else { ++ if (clock < 100000) { ++ /* Can't stop the clock, but make it as slow as ++ * possible to show willing ++ */ ++ host->cdiv = SDCDIV_MAX_CDIV; ++ bcm2835_sdhost_write(host, host->cdiv, SDCDIV); ++ return; ++ } + +- clock = host->max_clk / (div + 2); +- host->mmc->actual_clock = clock; ++ div = host->max_clk / clock; ++ if (div < 2) ++ div = 2; ++ if ((host->max_clk / div) > clock) ++ div++; ++ div -= 2; ++ ++ if (div > SDCDIV_MAX_CDIV) ++ div = SDCDIV_MAX_CDIV; ++ ++ clock = host->max_clk / (div + 2); ++ ++ host->cdiv = div; ++ bcm2835_sdhost_write(host, host->cdiv, SDCDIV); ++ ++ if (host->debug) ++ pr_info("%s: clock=%d -> max_clk=%d, cdiv=%x " ++ "(actual clock %d)\n", ++ mmc_hostname(host->mmc), input_clock, ++ host->max_clk, host->cdiv, ++ clock); ++ } + + /* Calibrate some delays */ + + host->ns_per_fifo_word = (1000000000/clock) * + ((host->mmc->caps & MMC_CAP_4_BIT_DATA) ? 8 : 32); + +- if (clock > input_clock) { +- /* Save the closest value, to make it easier +- to reduce in the event of error */ +- host->overclock_50 = (clock/MHZ); ++ if (input_clock == 50 * MHZ) { ++ if (clock > input_clock) { ++ /* Save the closest value, to make it easier ++ to reduce in the event of error */ ++ host->overclock_50 = (clock/MHZ); + +- if (clock != host->overclock) { +- pr_warn("%s: overclocking to %dHz\n", +- mmc_hostname(host->mmc), clock); +- host->overclock = clock; ++ if (clock != host->overclock) { ++ pr_warn("%s: overclocking to %dHz\n", ++ mmc_hostname(host->mmc), clock); ++ host->overclock = clock; ++ } ++ } else if (host->overclock) { ++ host->overclock = 0; ++ if (clock == 50 * MHZ) ++ pr_warn("%s: cancelling overclock\n", ++ mmc_hostname(host->mmc)); + } + } +- else if (host->overclock) +- { +- host->overclock = 0; +- if (clock == 50 * MHZ) +- pr_warn("%s: cancelling overclock\n", +- mmc_hostname(host->mmc)); +- } +- +- host->cdiv = div; +- bcm2835_sdhost_write(host, host->cdiv, SDCDIV); + + /* Set the timeout to 500ms */ +- bcm2835_sdhost_write(host, host->mmc->actual_clock/2, SDTOUT); ++ bcm2835_sdhost_write(host, clock/2, SDTOUT); + +- if (host->debug) +- pr_info("%s: clock=%d -> max_clk=%d, cdiv=%x (actual clock %d)\n", +- mmc_hostname(host->mmc), input_clock, +- host->max_clk, host->cdiv, host->mmc->actual_clock); ++ host->mmc->actual_clock = clock; + } + + static void bcm2835_sdhost_request(struct mmc_host *mmc, struct mmc_request *mrq) +@@ -1704,11 +1719,6 @@ static void bcm2835_sdhost_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) + + log_event("IOS<", ios->clock, 0); + +- if (!ios->clock || ios->clock != host->clock) { +- bcm2835_sdhost_set_clock(host, ios->clock); +- host->clock = ios->clock; +- } +- + /* set bus width */ + host->hcfg &= ~SDHCFG_WIDE_EXT_BUS; + if (ios->bus_width == MMC_BUS_WIDTH_4) +@@ -1721,6 +1731,11 @@ static void bcm2835_sdhost_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) + + bcm2835_sdhost_write(host, host->hcfg, SDHCFG); + ++ if (!ios->clock || ios->clock != host->clock) { ++ bcm2835_sdhost_set_clock(host, ios->clock); ++ host->clock = ios->clock; ++ } ++ + mmiowb(); + + spin_unlock_irqrestore(&host->lock, flags); +@@ -1953,6 +1968,7 @@ static int bcm2835_sdhost_probe(struct platform_device *pdev) + struct bcm2835_host *host; + struct mmc_host *mmc; + const __be32 *addr; ++ u32 msg[3]; + int ret; + + pr_debug("bcm2835_sdhost_probe\n"); +@@ -2058,6 +2074,16 @@ static int bcm2835_sdhost_probe(struct platform_device *pdev) + else + mmc->caps |= MMC_CAP_4_BIT_DATA; + ++ msg[0] = 0; ++ msg[1] = ~0; ++ msg[2] = ~0; ++ ++ rpi_firmware_property(rpi_firmware_get(NULL), ++ RPI_FIRMWARE_SET_SDHOST_CLOCK, ++ &msg, sizeof(msg)); ++ ++ host->firmware_sets_cdiv = (msg[1] != ~0); ++ + ret = bcm2835_sdhost_add_host(host); + if (ret) + goto err; +diff --git a/include/soc/bcm2835/raspberrypi-firmware.h b/include/soc/bcm2835/raspberrypi-firmware.h +index c844968..e312e9c 100644 +--- a/include/soc/bcm2835/raspberrypi-firmware.h ++++ b/include/soc/bcm2835/raspberrypi-firmware.h +@@ -79,6 +79,7 @@ enum rpi_firmware_property_tag { + RPI_FIRMWARE_SET_VOLTAGE = 0x00038003, + RPI_FIRMWARE_SET_TURBO = 0x00038009, + RPI_FIRMWARE_SET_CUSTOMER_OTP = 0x00038021, ++ RPI_FIRMWARE_SET_SDHOST_CLOCK = 0x00038042, + + /* Dispmanx TAGS */ + RPI_FIRMWARE_FRAMEBUFFER_ALLOCATE = 0x00040001, + +From 2cc0c036570e76548d3d54d7e1c02443380280e7 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Mon, 4 Apr 2016 19:52:27 +0100 +Subject: [PATCH 223/234] Revert "Revert "cpufreq: Temporarily ignore + io_is_busy=1"" + +This reverts commit c353af0f83220068c10f6593b1767576b9b6cc18. +--- + drivers/cpufreq/cpufreq_ondemand.c | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/drivers/cpufreq/cpufreq_ondemand.c b/drivers/cpufreq/cpufreq_ondemand.c +index 03ac6ce..99a9610 100644 +--- a/drivers/cpufreq/cpufreq_ondemand.c ++++ b/drivers/cpufreq/cpufreq_ondemand.c +@@ -307,7 +307,12 @@ static ssize_t store_io_is_busy(struct dbs_data *dbs_data, const char *buf, + ret = sscanf(buf, "%u", &input); + if (ret != 1) + return -EINVAL; +- od_tuners->io_is_busy = !!input; ++ // XXX temporary hack ++ if (input > 1) ++ input = 1; ++ else ++ input = 0; ++ od_tuners->io_is_busy = input; + + /* we need to re-evaluate prev_cpu_idle */ + for_each_online_cpu(j) { + +From 9436ca6258a029365e97604158214324914f43c8 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Thu, 31 Mar 2016 16:49:52 +0100 +Subject: [PATCH 224/234] config: Enabled IPV6_SUBTREES + +--- + arch/arm/configs/bcm2709_defconfig | 1 + + arch/arm/configs/bcmrpi_defconfig | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/arch/arm/configs/bcm2709_defconfig b/arch/arm/configs/bcm2709_defconfig +index 2c8e4b7..d509168 100644 +--- a/arch/arm/configs/bcm2709_defconfig ++++ b/arch/arm/configs/bcm2709_defconfig +@@ -106,6 +106,7 @@ CONFIG_INET6_ESP=m + CONFIG_INET6_IPCOMP=m + CONFIG_IPV6_TUNNEL=m + CONFIG_IPV6_MULTIPLE_TABLES=y ++CONFIG_IPV6_SUBTREES=y + CONFIG_IPV6_MROUTE=y + CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y + CONFIG_IPV6_PIMSM_V2=y +diff --git a/arch/arm/configs/bcmrpi_defconfig b/arch/arm/configs/bcmrpi_defconfig +index f6e2d84..060ec5f 100644 +--- a/arch/arm/configs/bcmrpi_defconfig ++++ b/arch/arm/configs/bcmrpi_defconfig +@@ -73,6 +73,7 @@ CONFIG_INET=y + CONFIG_IP_MULTICAST=y + CONFIG_IP_ADVANCED_ROUTER=y + CONFIG_IP_MULTIPLE_TABLES=y ++CONFIG_IPV6_SUBTREES=y + CONFIG_IP_ROUTE_MULTIPATH=y + CONFIG_IP_ROUTE_VERBOSE=y + CONFIG_IP_PNP=y + +From a92cb9e6067e9e599a5c559d77909929a99854fd Mon Sep 17 00:00:00 2001 +From: Sam Nazarko +Date: Fri, 1 Apr 2016 17:27:21 +0100 +Subject: [PATCH 225/234] add smsc95xx packetsize module_param + +Signed-off-by: Sam Nazarko +--- + drivers/net/usb/smsc95xx.c | 14 +++++++++----- + 1 file changed, 9 insertions(+), 5 deletions(-) + +diff --git a/drivers/net/usb/smsc95xx.c b/drivers/net/usb/smsc95xx.c +index a61bd08..3c23b11 100644 +--- a/drivers/net/usb/smsc95xx.c ++++ b/drivers/net/usb/smsc95xx.c +@@ -83,6 +83,10 @@ static char *macaddr = ":"; + module_param(macaddr, charp, 0); + MODULE_PARM_DESC(macaddr, "MAC address"); + ++static int packetsize = 0; ++module_param(packetsize, int, 0644); ++MODULE_PARM_DESC(packetsize, "Override the RX URB packet size"); ++ + static int __must_check __smsc95xx_read_reg(struct usbnet *dev, u32 index, + u32 *data, int in_pm) + { +@@ -1006,13 +1010,13 @@ static int smsc95xx_reset(struct usbnet *dev) + + if (!turbo_mode) { + burst_cap = 0; +- dev->rx_urb_size = MAX_SINGLE_PACKET_SIZE; ++ dev->rx_urb_size = packetsize ? packetsize : MAX_SINGLE_PACKET_SIZE; + } else if (dev->udev->speed == USB_SPEED_HIGH) { +- burst_cap = DEFAULT_HS_BURST_CAP_SIZE / HS_USB_PKT_SIZE; +- dev->rx_urb_size = DEFAULT_HS_BURST_CAP_SIZE; ++ dev->rx_urb_size = packetsize ? packetsize : DEFAULT_HS_BURST_CAP_SIZE; ++ burst_cap = dev->rx_urb_size / HS_USB_PKT_SIZE; + } else { +- burst_cap = DEFAULT_FS_BURST_CAP_SIZE / FS_USB_PKT_SIZE; +- dev->rx_urb_size = DEFAULT_FS_BURST_CAP_SIZE; ++ dev->rx_urb_size = packetsize ? packetsize : DEFAULT_FS_BURST_CAP_SIZE; ++ burst_cap = dev->rx_urb_size / FS_USB_PKT_SIZE; + } + + netif_dbg(dev, ifup, dev->net, "rx_urb_size=%ld\n", + +From 2aee7f4935f5b7d808ac81d4ec4c0588143cb27e Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Tue, 5 Apr 2016 19:40:12 +0100 +Subject: [PATCH 226/234] reboot: Use power off rather than busy spinning when + halt is requested + +--- + arch/arm/kernel/reboot.c | 6 +----- + 1 file changed, 1 insertion(+), 5 deletions(-) + +diff --git a/arch/arm/kernel/reboot.c b/arch/arm/kernel/reboot.c +index 3826935..2cd6af2 100644 +--- a/arch/arm/kernel/reboot.c ++++ b/arch/arm/kernel/reboot.c +@@ -102,11 +102,7 @@ void machine_shutdown(void) + */ + void machine_halt(void) + { +- local_irq_disable(); +- smp_send_stop(); +- +- local_irq_disable(); +- while (1); ++ machine_power_off(); + } + + /* + +From c927274d3b5f1da9a457a57bbd1b2860777faf48 Mon Sep 17 00:00:00 2001 +From: HiassofT +Date: Wed, 6 Apr 2016 21:45:01 +0200 +Subject: [PATCH 227/234] Revert "bcm2835-dma: Fix dreq not set for slave + transfers" + +This reverts commit 8ad957e866a1fe1450f663f2b00a57d7de44904c. + + + +DMA channels are set in devicetree, thus dreq will be set, + +and this commit is no longer needed. + + + +Signed-off-by: Matthias Reichl +--- + drivers/dma/bcm2835-dma.c | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/drivers/dma/bcm2835-dma.c b/drivers/dma/bcm2835-dma.c +index 985019b..d26b6bd 100644 +--- a/drivers/dma/bcm2835-dma.c ++++ b/drivers/dma/bcm2835-dma.c +@@ -679,8 +679,6 @@ static int bcm2835_dma_slave_config(struct dma_chan *chan, + } + + c->cfg = *cfg; +- if (!c->dreq) +- c->dreq = cfg->slave_id; + + return 0; + } + +From 08d5dba5adf90fbcbd4a480c9be2d701710e5206 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson <6by9@users.noreply.github.com> +Date: Fri, 1 Apr 2016 15:28:46 +0100 +Subject: [PATCH 228/234] RPi config: Add CONFIG_PWM_PCA9685 for NXP PCA9685 + driver over I2C + +Includes DT overlay to configure it. + +Signed-off-by: Dave Stevenson <6by9@users.noreply.github.com> +--- + arch/arm/boot/dts/overlays/Makefile | 1 + + arch/arm/boot/dts/overlays/README | 6 +++++ + .../boot/dts/overlays/i2c-pwm-pca9685a-overlay.dts | 26 ++++++++++++++++++++++ + arch/arm/configs/bcm2709_defconfig | 1 + + arch/arm/configs/bcmrpi_defconfig | 1 + + 5 files changed, 35 insertions(+) + create mode 100644 arch/arm/boot/dts/overlays/i2c-pwm-pca9685a-overlay.dts + +diff --git a/arch/arm/boot/dts/overlays/Makefile b/arch/arm/boot/dts/overlays/Makefile +index 7c4fc30..239c6a1 100644 +--- a/arch/arm/boot/dts/overlays/Makefile ++++ b/arch/arm/boot/dts/overlays/Makefile +@@ -30,6 +30,7 @@ dtbo-$(RPI_DT_OVERLAYS) += hy28b.dtbo + dtbo-$(RPI_DT_OVERLAYS) += i2c-rtc.dtbo + dtbo-$(RPI_DT_OVERLAYS) += i2c-gpio.dtbo + dtbo-$(RPI_DT_OVERLAYS) += i2c-mux-pca9548a.dtbo ++dtbo-$(RPI_DT_OVERLAYS) += i2c-pwm-pca9685a.dtbo + dtbo-$(RPI_DT_OVERLAYS) += i2c0-bcm2708.dtbo + dtbo-$(RPI_DT_OVERLAYS) += i2c1-bcm2708.dtbo + dtbo-$(RPI_DT_OVERLAYS) += i2s-mmap.dtbo +diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README +index 337be4a..9df71a4 100644 +--- a/arch/arm/boot/dts/overlays/README ++++ b/arch/arm/boot/dts/overlays/README +@@ -366,6 +366,12 @@ Load: dtoverlay=i2c-mux-pca9548a,= + Params: addr I2C address of PCA9548A (default 0x70) + + ++Name: i2c-pwm-pca9685a ++Info: Adds support for an NXP PCA9685A I2C PWM controller on i2c_arm ++Load: dtoverlay=i2c-pwm-pca9685a,= ++Params: addr I2C address of PCA9685A (default 0x40) ++ ++ + Name: i2c-rtc + Info: Adds support for a number of I2C Real Time Clock devices + Load: dtoverlay=i2c-rtc,= +diff --git a/arch/arm/boot/dts/overlays/i2c-pwm-pca9685a-overlay.dts b/arch/arm/boot/dts/overlays/i2c-pwm-pca9685a-overlay.dts +new file mode 100644 +index 0000000..d1ffd23 +--- /dev/null ++++ b/arch/arm/boot/dts/overlays/i2c-pwm-pca9685a-overlay.dts +@@ -0,0 +1,26 @@ ++// Definitions for NXP PCA9685A I2C PWM controller on ARM I2C bus. ++/dts-v1/; ++/plugin/; ++ ++/{ ++ compatible = "brcm,bcm2708"; ++ ++ fragment@0 { ++ target = <&i2c_arm>; ++ __overlay__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ status = "okay"; ++ ++ pca: pca@40 { ++ compatible = "nxp,pca9685"; ++ #pwm-cells = <2>; ++ reg = <0x40>; ++ status = "okay"; ++ }; ++ }; ++ }; ++ __overrides__ { ++ addr = <&pca>,"reg:0"; ++ }; ++}; +diff --git a/arch/arm/configs/bcm2709_defconfig b/arch/arm/configs/bcm2709_defconfig +index d509168..299d7be 100644 +--- a/arch/arm/configs/bcm2709_defconfig ++++ b/arch/arm/configs/bcm2709_defconfig +@@ -1122,6 +1122,7 @@ CONFIG_MCP320X=m + CONFIG_MCP3422=m + CONFIG_DHT11=m + CONFIG_PWM_BCM2835=m ++CONFIG_PWM_PCA9685=m + CONFIG_RASPBERRYPI_FIRMWARE=y + CONFIG_EXT4_FS=y + CONFIG_EXT4_FS_POSIX_ACL=y +diff --git a/arch/arm/configs/bcmrpi_defconfig b/arch/arm/configs/bcmrpi_defconfig +index 060ec5f..acda16b 100644 +--- a/arch/arm/configs/bcmrpi_defconfig ++++ b/arch/arm/configs/bcmrpi_defconfig +@@ -1129,6 +1129,7 @@ CONFIG_MCP320X=m + CONFIG_MCP3422=m + CONFIG_DHT11=m + CONFIG_PWM_BCM2835=m ++CONFIG_PWM_PCA9685=m + CONFIG_RASPBERRYPI_FIRMWARE=y + CONFIG_EXT4_FS=y + CONFIG_EXT4_FS_POSIX_ACL=y + +From 621c9797f5e53c515f436ff8d4386083872b3531 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Fri, 8 Apr 2016 17:43:27 +0100 +Subject: [PATCH 229/234] BCM270X_DT: Don't generate "linux,phandle" props + +The EPAPR standard says to use "phandle" properties to store phandles, +rather than the deprecated "linux,phandle" version. By default, dtc +generates both, but adding "-H epapr" causes it to only generate +"phandle"s, saving some space and clutter. + +Signed-off-by: Phil Elwell +--- + arch/arm/boot/dts/Makefile | 2 +- + scripts/Makefile.lib | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile +index fdc450f..49badba 100644 +--- a/arch/arm/boot/dts/Makefile ++++ b/arch/arm/boot/dts/Makefile +@@ -813,5 +813,5 @@ clean-files := *.dtb + + # Enable fixups to support overlays on BCM2708 platforms + ifeq ($(RPI_DT_OVERLAYS),y) +- DTC_FLAGS ?= -@ ++ DTC_FLAGS ?= -@ -H epapr + endif +diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib +index 7209d62..3079c4f 100644 +--- a/scripts/Makefile.lib ++++ b/scripts/Makefile.lib +@@ -294,7 +294,7 @@ $(obj)/%.dtb: $(src)/%.dts FORCE + + quiet_cmd_dtco = DTCO $@ + cmd_dtco = $(CPP) $(dtc_cpp_flags) -x assembler-with-cpp -o $(dtc-tmp) $< ; \ +- $(objtree)/scripts/dtc/dtc -@ -O dtb -o $@ -b 0 \ ++ $(objtree)/scripts/dtc/dtc -@ -H epapr -O dtb -o $@ -b 0 \ + -i $(dir $<) $(DTC_FLAGS) \ + -d $(depfile).dtc.tmp $(dtc-tmp) ; \ + cat $(depfile).pre.tmp $(depfile).dtc.tmp > $(depfile) + +From dff9d538a4b43b3f37beb13767692c0e8c4ca7ac Mon Sep 17 00:00:00 2001 +From: 6by9 <6by9@users.noreply.github.com> +Date: Fri, 8 Apr 2016 18:15:43 +0100 +Subject: [PATCH 230/234] V4L2 driver updates (#1393) + +* BCM2835-V4L2: Correct ISO control and add V4L2_CID_ISO_SENSITIVITY_AUTO + +https://github.com/raspberrypi/linux/issues/1251 + +V4L2_CID_ISO_SENSITIVITY was not advertising ISO*1000 as it should. +V4L2_CID_ISO_SENSITIVITY_AUTO was not implemented, so was taking +V4L2_CID_ISO_SENSITIVITY as 0 for auto mode. +Still accepts 0 for auto, but also abides by the new parameter. + +Signed-off-by: Dave Stevenson <6by9@users.noreply.github.com> + +* BCM2835-V4L2: Add a video_nr parameter. + +Adds a kernel parameter "video_nr" to specify the preferred +/dev/videoX device node. +https://www.raspberrypi.org/forums/viewtopic.php?f=38&t=136120&p=905545 + +Signed-off-by: Dave Stevenson <6by9@users.noreply.github.com> + +* BCM2835-V4L2: Add support for multiple cameras + +Ask GPU on load how many cameras have been detected, and +enumerate that number of devices. +Only applicable on the Compute Module as no other device +exposes multiple CSI2 interfaces. + +Signed-off-by: Dave Stevenson <6by9@users.noreply.github.com> + +* BCM2835-V4L2: Add control of the overlay location and alpha. + +Actually do something useful in vidioc_s_fmt_vid_overlay and +vidioc_try_fmt_vid_overlay, rather than effectively having +read-only fields. + +Signed-off-by: Dave Stevenson <6by9@users.noreply.github.com> + +* BCM2835-V4L2: V4L2-Compliance failure fix + +VIDIOC_TRY_FMT was failing due to bytesperline not +being set correctly by default. + +Signed-off-by: Dave Stevenson <6by9@users.noreply.github.com> + +* BCM2835-V4L2: Make all module parameters static + +Clean up to correct variable scope + +Signed-off-by: Dave Stevenson <6by9@users.noreply.github.com> +--- + drivers/media/platform/bcm2835/bcm2835-camera.c | 372 +++++++++++++++-------- + drivers/media/platform/bcm2835/bcm2835-camera.h | 19 +- + drivers/media/platform/bcm2835/controls.c | 31 +- + drivers/media/platform/bcm2835/mmal-parameters.h | 33 ++ + 4 files changed, 320 insertions(+), 135 deletions(-) + +diff --git a/drivers/media/platform/bcm2835/bcm2835-camera.c b/drivers/media/platform/bcm2835/bcm2835-camera.c +index 98a892e..0e6c9b4 100644 +--- a/drivers/media/platform/bcm2835/bcm2835-camera.c ++++ b/drivers/media/platform/bcm2835/bcm2835-camera.c +@@ -45,6 +45,8 @@ + #define MAX_VIDEO_MODE_WIDTH 1280 + #define MAX_VIDEO_MODE_HEIGHT 720 + ++#define MAX_BCM2835_CAMERAS 2 ++ + MODULE_DESCRIPTION("Broadcom 2835 MMAL video capture"); + MODULE_AUTHOR("Vincent Sanders"); + MODULE_LICENSE("GPL"); +@@ -54,8 +56,13 @@ int bcm2835_v4l2_debug; + module_param_named(debug, bcm2835_v4l2_debug, int, 0644); + MODULE_PARM_DESC(bcm2835_v4l2_debug, "Debug level 0-2"); + +-int max_video_width = MAX_VIDEO_MODE_WIDTH; +-int max_video_height = MAX_VIDEO_MODE_HEIGHT; ++#define UNSET (-1) ++static int video_nr[] = {[0 ... (MAX_BCM2835_CAMERAS - 1)] = UNSET }; ++module_param_array(video_nr, int, NULL, 0644); ++MODULE_PARM_DESC(video_nr, "videoX start numbers, -1 is autodetect"); ++ ++static int max_video_width = MAX_VIDEO_MODE_WIDTH; ++static int max_video_height = MAX_VIDEO_MODE_HEIGHT; + module_param(max_video_width, int, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH); + MODULE_PARM_DESC(max_video_width, "Threshold for video mode"); + module_param(max_video_height, int, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH); +@@ -70,11 +77,12 @@ MODULE_PARM_DESC(max_video_height, "Threshold for video mode"); + * our function table list (actually switch to an alternate set, but same + * result). + */ +-int gst_v4l2src_is_broken = 0; ++static int gst_v4l2src_is_broken; + module_param(gst_v4l2src_is_broken, int, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH); + MODULE_PARM_DESC(gst_v4l2src_is_broken, "If non-zero, enable workaround for Gstreamer"); + +-static struct bm2835_mmal_dev *gdev; /* global device data */ ++/* global device data array */ ++static struct bm2835_mmal_dev *gdev[MAX_BCM2835_CAMERAS]; + + #define FPS_MIN 1 + #define FPS_MAX 90 +@@ -413,6 +421,17 @@ static int enable_camera(struct bm2835_mmal_dev *dev) + { + int ret; + if (!dev->camera_use_count) { ++ ret = vchiq_mmal_port_parameter_set( ++ dev->instance, ++ &dev->component[MMAL_COMPONENT_CAMERA]->control, ++ MMAL_PARAMETER_CAMERA_NUM, &dev->camera_num, ++ sizeof(dev->camera_num)); ++ if (ret < 0) { ++ v4l2_err(&dev->v4l2_dev, ++ "Failed setting camera num, ret %d\n", ret); ++ return -EINVAL; ++ } ++ + ret = vchiq_mmal_component_enable( + dev->instance, + dev->component[MMAL_COMPONENT_CAMERA]); +@@ -647,6 +666,30 @@ static struct vb2_ops bm2835_mmal_video_qops = { + IOCTL operations + ------------------------------------------------------------------*/ + ++static int set_overlay_params(struct bm2835_mmal_dev *dev, ++ struct vchiq_mmal_port *port) ++{ ++ int ret; ++ struct mmal_parameter_displayregion prev_config = { ++ .set = MMAL_DISPLAY_SET_LAYER | MMAL_DISPLAY_SET_ALPHA | ++ MMAL_DISPLAY_SET_DEST_RECT | MMAL_DISPLAY_SET_FULLSCREEN, ++ .layer = PREVIEW_LAYER, ++ .alpha = dev->overlay.global_alpha, ++ .fullscreen = 0, ++ .dest_rect = { ++ .x = dev->overlay.w.left, ++ .y = dev->overlay.w.top, ++ .width = dev->overlay.w.width, ++ .height = dev->overlay.w.height, ++ }, ++ }; ++ ret = vchiq_mmal_port_parameter_set(dev->instance, port, ++ MMAL_PARAMETER_DISPLAYREGION, ++ &prev_config, sizeof(prev_config)); ++ ++ return ret; ++} ++ + /* overlay ioctl */ + static int vidioc_enum_fmt_vid_overlay(struct file *file, void *priv, + struct v4l2_fmtdesc *f) +@@ -678,10 +721,31 @@ static int vidioc_g_fmt_vid_overlay(struct file *file, void *priv, + static int vidioc_try_fmt_vid_overlay(struct file *file, void *priv, + struct v4l2_format *f) + { +- /* Only support one format so get the current one. */ +- vidioc_g_fmt_vid_overlay(file, priv, f); ++ struct bm2835_mmal_dev *dev = video_drvdata(file); + +- /* todo: allow the size and/or offset to be changed. */ ++ f->fmt.win.field = V4L2_FIELD_NONE; ++ f->fmt.win.chromakey = 0; ++ f->fmt.win.clips = NULL; ++ f->fmt.win.clipcount = 0; ++ f->fmt.win.bitmap = NULL; ++ ++ v4l_bound_align_image(&f->fmt.win.w.width, MIN_WIDTH, MAX_WIDTH, 1, ++ &f->fmt.win.w.height, MIN_HEIGHT, MAX_HEIGHT, ++ 1, 0); ++ v4l_bound_align_image(&f->fmt.win.w.left, MIN_WIDTH, MAX_WIDTH, 1, ++ &f->fmt.win.w.top, MIN_HEIGHT, MAX_HEIGHT, ++ 1, 0); ++ ++ v4l2_dbg(1, bcm2835_v4l2_debug, &dev->v4l2_dev, ++ "Overlay: Now w/h %dx%d l/t %dx%d\n", ++ f->fmt.win.w.width, f->fmt.win.w.height, ++ f->fmt.win.w.left, f->fmt.win.w.top); ++ ++ v4l2_dump_win_format(1, ++ bcm2835_v4l2_debug, ++ &dev->v4l2_dev, ++ &f->fmt.win, ++ __func__); + return 0; + } + +@@ -693,8 +757,11 @@ static int vidioc_s_fmt_vid_overlay(struct file *file, void *priv, + vidioc_try_fmt_vid_overlay(file, priv, f); + + dev->overlay = f->fmt.win; ++ if (dev->component[MMAL_COMPONENT_PREVIEW]->enabled) { ++ set_overlay_params(dev, ++ &dev->component[MMAL_COMPONENT_PREVIEW]->input[0]); ++ } + +- /* todo: program the preview port parameters */ + return 0; + } + +@@ -704,20 +771,6 @@ static int vidioc_overlay(struct file *file, void *f, unsigned int on) + struct bm2835_mmal_dev *dev = video_drvdata(file); + struct vchiq_mmal_port *src; + struct vchiq_mmal_port *dst; +- struct mmal_parameter_displayregion prev_config = { +- .set = MMAL_DISPLAY_SET_LAYER | MMAL_DISPLAY_SET_ALPHA | +- MMAL_DISPLAY_SET_DEST_RECT | MMAL_DISPLAY_SET_FULLSCREEN, +- .layer = PREVIEW_LAYER, +- .alpha = 255, +- .fullscreen = 0, +- .dest_rect = { +- .x = dev->overlay.w.left, +- .y = dev->overlay.w.top, +- .width = dev->overlay.w.width, +- .height = dev->overlay.w.height, +- }, +- }; +- + if ((on && dev->component[MMAL_COMPONENT_PREVIEW]->enabled) || + (!on && !dev->component[MMAL_COMPONENT_PREVIEW]->enabled)) + return 0; /* already in requested state */ +@@ -749,9 +802,7 @@ static int vidioc_overlay(struct file *file, void *f, unsigned int on) + if (ret < 0) + goto error; + +- ret = vchiq_mmal_port_parameter_set(dev->instance, dst, +- MMAL_PARAMETER_DISPLAYREGION, +- &prev_config, sizeof(prev_config)); ++ ret = set_overlay_params(dev, dst); + if (ret < 0) + goto error; + +@@ -782,6 +833,9 @@ static int vidioc_g_fbuf(struct file *file, void *fh, + struct vchiq_mmal_port *preview_port = + &dev->component[MMAL_COMPONENT_CAMERA]-> + output[MMAL_CAMERA_PORT_PREVIEW]; ++ ++ a->capability = V4L2_FBUF_CAP_EXTERNOVERLAY | ++ V4L2_FBUF_CAP_GLOBAL_ALPHA; + a->flags = V4L2_FBUF_FLAG_OVERLAY; + a->fmt.width = preview_port->es.video.width; + a->fmt.height = preview_port->es.video.height; +@@ -1445,6 +1499,34 @@ static struct video_device vdev_template = { + .release = video_device_release_empty, + }; + ++static int get_num_cameras(struct vchiq_mmal_instance *instance) ++{ ++ int ret; ++ struct vchiq_mmal_component *cam_info_component; ++ struct mmal_parameter_camera_info_t cam_info = {0}; ++ int param_size = sizeof(cam_info); ++ ++ /* create a camera_info component */ ++ ret = vchiq_mmal_component_init(instance, "camera_info", ++ &cam_info_component); ++ if (ret < 0) ++ /* Unusual failure - let's guess one camera. */ ++ return 1; ++ ++ if (vchiq_mmal_port_parameter_get(instance, ++ &cam_info_component->control, ++ MMAL_PARAMETER_CAMERA_INFO, ++ &cam_info, ++ ¶m_size)) { ++ pr_info("Failed to get camera info\n"); ++ } ++ ++ vchiq_mmal_component_finalise(instance, ++ cam_info_component); ++ ++ return cam_info.num_cameras; ++} ++ + static int set_camera_parameters(struct vchiq_mmal_instance *instance, + struct vchiq_mmal_component *camera) + { +@@ -1685,7 +1767,9 @@ static int __init bm2835_mmal_init_device(struct bm2835_mmal_dev *dev, + /* video device needs to be able to access instance data */ + video_set_drvdata(vfd, dev); + +- ret = video_register_device(vfd, VFL_TYPE_GRABBER, -1); ++ ret = video_register_device(vfd, ++ VFL_TYPE_GRABBER, ++ video_nr[dev->camera_num]); + if (ret < 0) + return ret; + +@@ -1696,10 +1780,52 @@ static int __init bm2835_mmal_init_device(struct bm2835_mmal_dev *dev, + return 0; + } + ++void bcm2835_cleanup_instance(struct bm2835_mmal_dev *dev) ++{ ++ if (!dev) ++ return; ++ ++ v4l2_info(&dev->v4l2_dev, "unregistering %s\n", ++ video_device_node_name(&dev->vdev)); ++ ++ video_unregister_device(&dev->vdev); ++ ++ if (dev->capture.encode_component) { ++ v4l2_dbg(1, bcm2835_v4l2_debug, &dev->v4l2_dev, ++ "mmal_exit - disconnect tunnel\n"); ++ vchiq_mmal_port_connect_tunnel(dev->instance, ++ dev->capture.camera_port, NULL); ++ vchiq_mmal_component_disable(dev->instance, ++ dev->capture.encode_component); ++ } ++ vchiq_mmal_component_disable(dev->instance, ++ dev->component[MMAL_COMPONENT_CAMERA]); ++ ++ vchiq_mmal_component_finalise(dev->instance, ++ dev-> ++ component[MMAL_COMPONENT_VIDEO_ENCODE]); ++ ++ vchiq_mmal_component_finalise(dev->instance, ++ dev-> ++ component[MMAL_COMPONENT_IMAGE_ENCODE]); ++ ++ vchiq_mmal_component_finalise(dev->instance, ++ dev->component[MMAL_COMPONENT_PREVIEW]); ++ ++ vchiq_mmal_component_finalise(dev->instance, ++ dev->component[MMAL_COMPONENT_CAMERA]); ++ ++ v4l2_ctrl_handler_free(&dev->ctrl_handler); ++ ++ v4l2_device_unregister(&dev->v4l2_dev); ++ ++ kfree(dev); ++} ++ + static struct v4l2_format default_v4l2_format = { + .fmt.pix.pixelformat = V4L2_PIX_FMT_JPEG, + .fmt.pix.width = 1024, +- .fmt.pix.bytesperline = 1024, ++ .fmt.pix.bytesperline = 0, + .fmt.pix.height = 768, + .fmt.pix.sizeimage = 1024*768, + }; +@@ -1709,76 +1835,93 @@ static int __init bm2835_mmal_init(void) + int ret; + struct bm2835_mmal_dev *dev; + struct vb2_queue *q; ++ int camera; ++ unsigned int num_cameras; ++ struct vchiq_mmal_instance *instance; + +- dev = kzalloc(sizeof(*gdev), GFP_KERNEL); +- if (!dev) +- return -ENOMEM; +- +- /* setup device defaults */ +- dev->overlay.w.left = 150; +- dev->overlay.w.top = 50; +- dev->overlay.w.width = 1024; +- dev->overlay.w.height = 768; +- dev->overlay.clipcount = 0; +- dev->overlay.field = V4L2_FIELD_NONE; +- +- dev->capture.fmt = &formats[3]; /* JPEG */ +- +- /* v4l device registration */ +- snprintf(dev->v4l2_dev.name, sizeof(dev->v4l2_dev.name), +- "%s", BM2835_MMAL_MODULE_NAME); +- ret = v4l2_device_register(NULL, &dev->v4l2_dev); +- if (ret) +- goto free_dev; +- +- /* setup v4l controls */ +- ret = bm2835_mmal_init_controls(dev, &dev->ctrl_handler); ++ ret = vchiq_mmal_init(&instance); + if (ret < 0) +- goto unreg_dev; +- dev->v4l2_dev.ctrl_handler = &dev->ctrl_handler; ++ return ret; + +- /* mmal init */ +- ret = mmal_init(dev); +- if (ret < 0) +- goto unreg_dev; +- +- /* initialize queue */ +- q = &dev->capture.vb_vidq; +- memset(q, 0, sizeof(*q)); +- q->type = V4L2_BUF_TYPE_VIDEO_CAPTURE; +- q->io_modes = VB2_MMAP | VB2_USERPTR | VB2_READ; +- q->drv_priv = dev; +- q->buf_struct_size = sizeof(struct mmal_buffer); +- q->ops = &bm2835_mmal_video_qops; +- q->mem_ops = &vb2_vmalloc_memops; +- q->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC; +- ret = vb2_queue_init(q); +- if (ret < 0) +- goto unreg_dev; ++ num_cameras = get_num_cameras(instance); ++ if (num_cameras > MAX_BCM2835_CAMERAS) ++ num_cameras = MAX_BCM2835_CAMERAS; + +- /* v4l2 core mutex used to protect all fops and v4l2 ioctls. */ +- mutex_init(&dev->mutex); ++ for (camera = 0; camera < num_cameras; camera++) { ++ dev = kzalloc(sizeof(struct bm2835_mmal_dev), GFP_KERNEL); ++ if (!dev) ++ return -ENOMEM; + +- /* initialise video devices */ +- ret = bm2835_mmal_init_device(dev, &dev->vdev); +- if (ret < 0) +- goto unreg_dev; ++ dev->camera_num = camera; + +- /* Really want to call vidioc_s_fmt_vid_cap with the default +- * format, but currently the APIs don't join up. +- */ +- ret = mmal_setup_components(dev, &default_v4l2_format); +- if (ret < 0) { +- v4l2_err(&dev->v4l2_dev, +- "%s: could not setup components\n", __func__); +- goto unreg_dev; +- } ++ /* setup device defaults */ ++ dev->overlay.w.left = 150; ++ dev->overlay.w.top = 50; ++ dev->overlay.w.width = 1024; ++ dev->overlay.w.height = 768; ++ dev->overlay.clipcount = 0; ++ dev->overlay.field = V4L2_FIELD_NONE; ++ dev->overlay.global_alpha = 255; + +- v4l2_info(&dev->v4l2_dev, +- "Broadcom 2835 MMAL video capture ver %s loaded.\n", +- BM2835_MMAL_VERSION); ++ dev->capture.fmt = &formats[3]; /* JPEG */ ++ ++ /* v4l device registration */ ++ snprintf(dev->v4l2_dev.name, sizeof(dev->v4l2_dev.name), ++ "%s", BM2835_MMAL_MODULE_NAME); ++ ret = v4l2_device_register(NULL, &dev->v4l2_dev); ++ if (ret) ++ goto free_dev; ++ ++ /* setup v4l controls */ ++ ret = bm2835_mmal_init_controls(dev, &dev->ctrl_handler); ++ if (ret < 0) ++ goto unreg_dev; ++ dev->v4l2_dev.ctrl_handler = &dev->ctrl_handler; ++ ++ /* mmal init */ ++ dev->instance = instance; ++ ret = mmal_init(dev); ++ if (ret < 0) ++ goto unreg_dev; ++ ++ /* initialize queue */ ++ q = &dev->capture.vb_vidq; ++ memset(q, 0, sizeof(*q)); ++ q->type = V4L2_BUF_TYPE_VIDEO_CAPTURE; ++ q->io_modes = VB2_MMAP | VB2_USERPTR | VB2_READ; ++ q->drv_priv = dev; ++ q->buf_struct_size = sizeof(struct mmal_buffer); ++ q->ops = &bm2835_mmal_video_qops; ++ q->mem_ops = &vb2_vmalloc_memops; ++ q->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC; ++ ret = vb2_queue_init(q); ++ if (ret < 0) ++ goto unreg_dev; ++ ++ /* v4l2 core mutex used to protect all fops and v4l2 ioctls. */ ++ mutex_init(&dev->mutex); ++ ++ /* initialise video devices */ ++ ret = bm2835_mmal_init_device(dev, &dev->vdev); ++ if (ret < 0) ++ goto unreg_dev; ++ ++ /* Really want to call vidioc_s_fmt_vid_cap with the default ++ * format, but currently the APIs don't join up. ++ */ ++ ret = mmal_setup_components(dev, &default_v4l2_format); ++ if (ret < 0) { ++ v4l2_err(&dev->v4l2_dev, ++ "%s: could not setup components\n", __func__); ++ goto unreg_dev; ++ } + +- gdev = dev; ++ v4l2_info(&dev->v4l2_dev, ++ "Broadcom 2835 MMAL video capture ver %s loaded.\n", ++ BM2835_MMAL_VERSION); ++ ++ gdev[camera] = dev; ++ } + return 0; + + unreg_dev: +@@ -1788,8 +1931,11 @@ unreg_dev: + free_dev: + kfree(dev); + +- v4l2_err(&dev->v4l2_dev, +- "%s: error %d while loading driver\n", ++ for ( ; camera > 0; camera--) { ++ bcm2835_cleanup_instance(gdev[camera]); ++ gdev[camera] = NULL; ++ } ++ pr_info("%s: error %d while loading driver\n", + BM2835_MMAL_MODULE_NAME, ret); + + return ret; +@@ -1797,46 +1943,14 @@ free_dev: + + static void __exit bm2835_mmal_exit(void) + { +- if (!gdev) +- return; +- +- v4l2_info(&gdev->v4l2_dev, "unregistering %s\n", +- video_device_node_name(&gdev->vdev)); ++ int camera; ++ struct vchiq_mmal_instance *instance = gdev[0]->instance; + +- video_unregister_device(&gdev->vdev); +- +- if (gdev->capture.encode_component) { +- v4l2_dbg(1, bcm2835_v4l2_debug, &gdev->v4l2_dev, +- "mmal_exit - disconnect tunnel\n"); +- vchiq_mmal_port_connect_tunnel(gdev->instance, +- gdev->capture.camera_port, NULL); +- vchiq_mmal_component_disable(gdev->instance, +- gdev->capture.encode_component); ++ for (camera = 0; camera < MAX_BCM2835_CAMERAS; camera++) { ++ bcm2835_cleanup_instance(gdev[camera]); ++ gdev[camera] = NULL; + } +- vchiq_mmal_component_disable(gdev->instance, +- gdev->component[MMAL_COMPONENT_CAMERA]); +- +- vchiq_mmal_component_finalise(gdev->instance, +- gdev-> +- component[MMAL_COMPONENT_VIDEO_ENCODE]); +- +- vchiq_mmal_component_finalise(gdev->instance, +- gdev-> +- component[MMAL_COMPONENT_IMAGE_ENCODE]); +- +- vchiq_mmal_component_finalise(gdev->instance, +- gdev->component[MMAL_COMPONENT_PREVIEW]); +- +- vchiq_mmal_component_finalise(gdev->instance, +- gdev->component[MMAL_COMPONENT_CAMERA]); +- +- vchiq_mmal_finalise(gdev->instance); +- +- v4l2_ctrl_handler_free(&gdev->ctrl_handler); +- +- v4l2_device_unregister(&gdev->v4l2_dev); +- +- kfree(gdev); ++ vchiq_mmal_finalise(instance); + } + + module_init(bm2835_mmal_init); +diff --git a/drivers/media/platform/bcm2835/bcm2835-camera.h b/drivers/media/platform/bcm2835/bcm2835-camera.h +index 7fe9f65..202906b 100644 +--- a/drivers/media/platform/bcm2835/bcm2835-camera.h ++++ b/drivers/media/platform/bcm2835/bcm2835-camera.h +@@ -15,7 +15,7 @@ + * core driver device + */ + +-#define V4L2_CTRL_COUNT 28 /* number of v4l controls */ ++#define V4L2_CTRL_COUNT 29 /* number of v4l controls */ + + enum { + MMAL_COMPONENT_CAMERA = 0, +@@ -58,6 +58,8 @@ struct bm2835_mmal_dev { + enum mmal_parameter_exposuremeteringmode metering_mode; + unsigned int manual_shutter_speed; + bool exp_auto_priority; ++ bool manual_iso_enabled; ++ uint32_t iso; + + /* allocated mmal instance and components */ + struct vchiq_mmal_instance *instance; +@@ -104,6 +106,8 @@ struct bm2835_mmal_dev { + + } capture; + ++ unsigned int camera_num; ++ + }; + + int bm2835_mmal_init_controls( +@@ -124,3 +128,16 @@ int set_framerate_params(struct bm2835_mmal_dev *dev); + (pix_fmt)->pixelformat, (pix_fmt)->bytesperline, \ + (pix_fmt)->sizeimage, (pix_fmt)->colorspace, (pix_fmt)->priv); \ + } ++#define v4l2_dump_win_format(level, debug, dev, win_fmt, desc) \ ++{ \ ++ v4l2_dbg(level, debug, dev, \ ++"%s: w %u h %u l %u t %u field %u chromakey %06X clip %p " \ ++"clipcount %u bitmap %p\n", \ ++ desc == NULL ? "" : desc, \ ++ (win_fmt)->w.width, (win_fmt)->w.height, \ ++ (win_fmt)->w.left, (win_fmt)->w.top, \ ++ (win_fmt)->field, \ ++ (win_fmt)->chromakey, \ ++ (win_fmt)->clips, (win_fmt)->clipcount, \ ++ (win_fmt)->bitmap); \ ++} +diff --git a/drivers/media/platform/bcm2835/controls.c b/drivers/media/platform/bcm2835/controls.c +index f9f903f..fe61330 100644 +--- a/drivers/media/platform/bcm2835/controls.c ++++ b/drivers/media/platform/bcm2835/controls.c +@@ -49,10 +49,13 @@ static const s64 ev_bias_qmenu[] = { + 4000 + }; + +-/* Supported ISO values ++/* Supported ISO values (*1000) + * ISOO = auto ISO + */ + static const s64 iso_qmenu[] = { ++ 0, 100000, 200000, 400000, 800000, ++}; ++static const uint32_t iso_values[] = { + 0, 100, 200, 400, 800, + }; + +@@ -201,7 +204,7 @@ static int ctrl_set_value(struct bm2835_mmal_dev *dev, + &u32_value, sizeof(u32_value)); + } + +-static int ctrl_set_value_menu(struct bm2835_mmal_dev *dev, ++static int ctrl_set_iso(struct bm2835_mmal_dev *dev, + struct v4l2_ctrl *ctrl, + const struct bm2835_mmal_v4l2_ctrl *mmal_ctrl) + { +@@ -211,12 +214,23 @@ static int ctrl_set_value_menu(struct bm2835_mmal_dev *dev, + if (ctrl->val > mmal_ctrl->max || ctrl->val < mmal_ctrl->min) + return 1; + ++ if (ctrl->id == V4L2_CID_ISO_SENSITIVITY) ++ dev->iso = iso_values[ctrl->val]; ++ else if (ctrl->id == V4L2_CID_ISO_SENSITIVITY_AUTO) ++ dev->manual_iso_enabled = ++ (ctrl->val == V4L2_ISO_SENSITIVITY_MANUAL ? ++ true : ++ false); ++ + control = &dev->component[MMAL_COMPONENT_CAMERA]->control; + +- u32_value = mmal_ctrl->imenu[ctrl->val]; ++ if (dev->manual_iso_enabled) ++ u32_value = dev->iso; ++ else ++ u32_value = 0; + + return vchiq_mmal_port_parameter_set(dev->instance, control, +- mmal_ctrl->mmal_id, ++ MMAL_PARAMETER_ISO, + &u32_value, sizeof(u32_value)); + } + +@@ -956,7 +970,14 @@ static const struct bm2835_mmal_v4l2_ctrl v4l2_ctrls[V4L2_CTRL_COUNT] = { + V4L2_CID_ISO_SENSITIVITY, MMAL_CONTROL_TYPE_INT_MENU, + 0, ARRAY_SIZE(iso_qmenu) - 1, 0, 1, iso_qmenu, + MMAL_PARAMETER_ISO, +- &ctrl_set_value_menu, ++ &ctrl_set_iso, ++ false ++ }, ++ { ++ V4L2_CID_ISO_SENSITIVITY_AUTO, MMAL_CONTROL_TYPE_STD_MENU, ++ 0, 1, V4L2_ISO_SENSITIVITY_AUTO, 1, NULL, ++ MMAL_PARAMETER_ISO, ++ &ctrl_set_iso, + false + }, + { +diff --git a/drivers/media/platform/bcm2835/mmal-parameters.h b/drivers/media/platform/bcm2835/mmal-parameters.h +index aa0fd18..f6abb5c 100644 +--- a/drivers/media/platform/bcm2835/mmal-parameters.h ++++ b/drivers/media/platform/bcm2835/mmal-parameters.h +@@ -654,3 +654,36 @@ struct mmal_parameter_imagefx_parameters { + u32 num_effect_params; + u32 effect_parameter[MMAL_MAX_IMAGEFX_PARAMETERS]; + }; ++ ++#define MMAL_PARAMETER_CAMERA_INFO_MAX_CAMERAS 4 ++#define MMAL_PARAMETER_CAMERA_INFO_MAX_FLASHES 2 ++#define MMAL_PARAMETER_CAMERA_INFO_MAX_STR_LEN 16 ++ ++struct mmal_parameter_camera_info_camera_t { ++ u32 port_id; ++ u32 max_width; ++ u32 max_height; ++ u32 lens_present; ++ u8 camera_name[MMAL_PARAMETER_CAMERA_INFO_MAX_STR_LEN]; ++}; ++ ++enum mmal_parameter_camera_info_flash_type_t { ++ /* Make values explicit to ensure they match values in config ini */ ++ MMAL_PARAMETER_CAMERA_INFO_FLASH_TYPE_XENON = 0, ++ MMAL_PARAMETER_CAMERA_INFO_FLASH_TYPE_LED = 1, ++ MMAL_PARAMETER_CAMERA_INFO_FLASH_TYPE_OTHER = 2, ++ MMAL_PARAMETER_CAMERA_INFO_FLASH_TYPE_MAX = 0x7FFFFFFF ++}; ++ ++struct mmal_parameter_camera_info_flash_t { ++ enum mmal_parameter_camera_info_flash_type_t flash_type; ++}; ++ ++struct mmal_parameter_camera_info_t { ++ u32 num_cameras; ++ u32 num_flashes; ++ struct mmal_parameter_camera_info_camera_t ++ cameras[MMAL_PARAMETER_CAMERA_INFO_MAX_CAMERAS]; ++ struct mmal_parameter_camera_info_flash_t ++ flashes[MMAL_PARAMETER_CAMERA_INFO_MAX_FLASHES]; ++}; + +From d81fdb740f3dde1fc4a2a32c71c31ddb24a285e0 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Mon, 11 Apr 2016 12:50:58 +0100 +Subject: [PATCH 231/234] 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 +is not a task. + +Signed-off-by: Phil Elwell +--- + drivers/mmc/host/bcm2835-sdhost.c | 25 ++++++++++++++++++------- + 1 file changed, 18 insertions(+), 7 deletions(-) + +diff --git a/drivers/mmc/host/bcm2835-sdhost.c b/drivers/mmc/host/bcm2835-sdhost.c +index 54087b2..a57faed 100644 +--- a/drivers/mmc/host/bcm2835-sdhost.c ++++ b/drivers/mmc/host/bcm2835-sdhost.c +@@ -185,6 +185,7 @@ struct bcm2835_host { + + unsigned int debug:1; /* Enable debug output */ + unsigned int firmware_sets_cdiv:1; /* Let the firmware manage the clock */ ++ unsigned int reset_clock:1; /* Reset the clock fore the next request */ + + /*DMA part*/ + struct dma_chan *dma_chan_rxtx; /* DMA channel for reads and writes */ +@@ -1505,6 +1506,7 @@ void bcm2835_sdhost_set_clock(struct bcm2835_host *host, unsigned int clock) + { + int div = 0; /* Initialized for compiler warning */ + unsigned int input_clock = clock; ++ unsigned long flags; + + if (host->debug) + pr_info("%s: set_clock(%d)\n", mmc_hostname(host->mmc), clock); +@@ -1544,13 +1546,17 @@ void bcm2835_sdhost_set_clock(struct bcm2835_host *host, unsigned int clock) + &msg, sizeof(msg)); + + clock = max(msg[1], msg[2]); ++ spin_lock_irqsave(&host->lock, flags); + } else { ++ spin_lock_irqsave(&host->lock, flags); + if (clock < 100000) { + /* Can't stop the clock, but make it as slow as + * possible to show willing + */ + host->cdiv = SDCDIV_MAX_CDIV; + bcm2835_sdhost_write(host, host->cdiv, SDCDIV); ++ mmiowb(); ++ spin_unlock_irqrestore(&host->lock, flags); + return; + } + +@@ -1605,6 +1611,11 @@ void bcm2835_sdhost_set_clock(struct bcm2835_host *host, unsigned int clock) + bcm2835_sdhost_write(host, clock/2, SDTOUT); + + host->mmc->actual_clock = clock; ++ host->clock = input_clock; ++ host->reset_clock = 0; ++ ++ mmiowb(); ++ spin_unlock_irqrestore(&host->lock, flags); + } + + static void bcm2835_sdhost_request(struct mmc_host *mmc, struct mmc_request *mrq) +@@ -1653,6 +1664,9 @@ static void bcm2835_sdhost_request(struct mmc_host *mmc, struct mmc_request *mrq + (mrq->data->blocks > host->pio_limit)) + bcm2835_sdhost_prepare_dma(host, mrq->data); + ++ if (host->reset_clock) ++ bcm2835_sdhost_set_clock(host, host->clock); ++ + spin_lock_irqsave(&host->lock, flags); + + WARN_ON(host->mrq != NULL); +@@ -1731,14 +1745,12 @@ static void bcm2835_sdhost_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) + + bcm2835_sdhost_write(host, host->hcfg, SDHCFG); + +- if (!ios->clock || ios->clock != host->clock) { +- bcm2835_sdhost_set_clock(host, ios->clock); +- host->clock = ios->clock; +- } +- + mmiowb(); + + spin_unlock_irqrestore(&host->lock, flags); ++ ++ if (!ios->clock || ios->clock != host->clock) ++ bcm2835_sdhost_set_clock(host, ios->clock); + } + + static struct mmc_host_ops bcm2835_sdhost_ops = { +@@ -1810,7 +1822,7 @@ static void bcm2835_sdhost_tasklet_finish(unsigned long param) + host->overclock_50--; + pr_warn("%s: reducing overclock due to errors\n", + mmc_hostname(host->mmc)); +- bcm2835_sdhost_set_clock(host,50*MHZ); ++ host->reset_clock = 1; + mrq->cmd->error = -EILSEQ; + mrq->cmd->retries = 1; + } +@@ -1979,7 +1991,6 @@ static int bcm2835_sdhost_probe(struct platform_device *pdev) + mmc->ops = &bcm2835_sdhost_ops; + host = mmc_priv(mmc); + host->mmc = mmc; +- host->cmd_quick_poll_retries = 0; + host->pio_timeout = msecs_to_jiffies(500); + host->pio_limit = 1; + host->max_delay = 1; /* Warn if over 1ms */ + +From 8408669aa8e6eb61ef750d6f3b233d727f8c3025 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Thu, 7 Apr 2016 12:44:24 +0100 +Subject: [PATCH 232/234] config: Enable CONFIG_IPV6_ROUTER_PREF for networks + with multiple routers + +--- + arch/arm/configs/bcm2709_defconfig | 1 + + arch/arm/configs/bcmrpi_defconfig | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/arch/arm/configs/bcm2709_defconfig b/arch/arm/configs/bcm2709_defconfig +index 299d7be..7bfc073 100644 +--- a/arch/arm/configs/bcm2709_defconfig ++++ b/arch/arm/configs/bcm2709_defconfig +@@ -101,6 +101,7 @@ CONFIG_INET_XFRM_MODE_TUNNEL=m + CONFIG_INET_XFRM_MODE_BEET=m + CONFIG_INET_LRO=m + CONFIG_INET_DIAG=m ++CONFIG_IPV6_ROUTER_PREF=y + CONFIG_INET6_AH=m + CONFIG_INET6_ESP=m + CONFIG_INET6_IPCOMP=m +diff --git a/arch/arm/configs/bcmrpi_defconfig b/arch/arm/configs/bcmrpi_defconfig +index acda16b..59026b3 100644 +--- a/arch/arm/configs/bcmrpi_defconfig ++++ b/arch/arm/configs/bcmrpi_defconfig +@@ -95,6 +95,7 @@ CONFIG_INET_XFRM_MODE_TUNNEL=m + CONFIG_INET_XFRM_MODE_BEET=m + CONFIG_INET_LRO=m + CONFIG_INET_DIAG=m ++CONFIG_IPV6_ROUTER_PREF=y + CONFIG_INET6_AH=m + CONFIG_INET6_ESP=m + CONFIG_INET6_IPCOMP=m + +From c7a28efacd9fd4b26554c661d819c1c35ed93c05 Mon Sep 17 00:00:00 2001 +From: jochenberger +Date: Thu, 7 Apr 2016 21:38:46 +0200 +Subject: [PATCH 233/234] Enable hid-betopff module + +Add force feedback support for Betop based devices +https://github.com/raspberrypi/linux/blob/rpi-4.1.y/drivers/hid/hid-betopff.c +--- + arch/arm/configs/bcm2709_defconfig | 1 + + arch/arm/configs/bcmrpi_defconfig | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/arch/arm/configs/bcm2709_defconfig b/arch/arm/configs/bcm2709_defconfig +index 7bfc073..31e3ac5 100644 +--- a/arch/arm/configs/bcm2709_defconfig ++++ b/arch/arm/configs/bcm2709_defconfig +@@ -867,6 +867,7 @@ CONFIG_HID_A4TECH=m + CONFIG_HID_ACRUX=m + CONFIG_HID_APPLE=m + CONFIG_HID_BELKIN=m ++CONFIG_HID_BETOP_FF=m + CONFIG_HID_CHERRY=m + CONFIG_HID_CHICONY=m + CONFIG_HID_CYPRESS=m +diff --git a/arch/arm/configs/bcmrpi_defconfig b/arch/arm/configs/bcmrpi_defconfig +index 59026b3..ac9287f 100644 +--- a/arch/arm/configs/bcmrpi_defconfig ++++ b/arch/arm/configs/bcmrpi_defconfig +@@ -859,6 +859,7 @@ CONFIG_HID_A4TECH=m + CONFIG_HID_ACRUX=m + CONFIG_HID_APPLE=m + CONFIG_HID_BELKIN=m ++CONFIG_HID_BETOP_FF=m + CONFIG_HID_CHERRY=m + CONFIG_HID_CHICONY=m + CONFIG_HID_CYPRESS=m + +From 258d5112d854cb9c2e302378ad20c1798a32b43c Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Tue, 12 Apr 2016 12:45:16 +0100 +Subject: [PATCH 234/234] config: Make IPV6 a module and regenerate with + defconfig + +--- + arch/arm/configs/bcm2709_defconfig | 4 ++-- + arch/arm/configs/bcmrpi_defconfig | 6 +++--- + 2 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/arch/arm/configs/bcm2709_defconfig b/arch/arm/configs/bcm2709_defconfig +index 31e3ac5..5a8ab1e 100644 +--- a/arch/arm/configs/bcm2709_defconfig ++++ b/arch/arm/configs/bcm2709_defconfig +@@ -101,6 +101,7 @@ CONFIG_INET_XFRM_MODE_TUNNEL=m + CONFIG_INET_XFRM_MODE_BEET=m + CONFIG_INET_LRO=m + CONFIG_INET_DIAG=m ++CONFIG_IPV6=m + CONFIG_IPV6_ROUTER_PREF=y + CONFIG_INET6_AH=m + CONFIG_INET6_ESP=m +@@ -600,10 +601,9 @@ CONFIG_HW_RANDOM=y + CONFIG_RAW_DRIVER=y + CONFIG_I2C=y + CONFIG_I2C_CHARDEV=m ++CONFIG_I2C_MUX_PCA954x=m + CONFIG_I2C_BCM2708=m + CONFIG_I2C_GPIO=m +-CONFIG_I2C_MUX=m +-CONFIG_I2C_MUX_PCA954x=m + CONFIG_SPI=y + CONFIG_SPI_BCM2835=m + CONFIG_SPI_BCM2835AUX=m +diff --git a/arch/arm/configs/bcmrpi_defconfig b/arch/arm/configs/bcmrpi_defconfig +index ac9287f..852751e 100644 +--- a/arch/arm/configs/bcmrpi_defconfig ++++ b/arch/arm/configs/bcmrpi_defconfig +@@ -73,7 +73,6 @@ CONFIG_INET=y + CONFIG_IP_MULTICAST=y + CONFIG_IP_ADVANCED_ROUTER=y + CONFIG_IP_MULTIPLE_TABLES=y +-CONFIG_IPV6_SUBTREES=y + CONFIG_IP_ROUTE_MULTIPATH=y + CONFIG_IP_ROUTE_VERBOSE=y + CONFIG_IP_PNP=y +@@ -95,12 +94,14 @@ CONFIG_INET_XFRM_MODE_TUNNEL=m + CONFIG_INET_XFRM_MODE_BEET=m + CONFIG_INET_LRO=m + CONFIG_INET_DIAG=m ++CONFIG_IPV6=m + CONFIG_IPV6_ROUTER_PREF=y + CONFIG_INET6_AH=m + CONFIG_INET6_ESP=m + CONFIG_INET6_IPCOMP=m + CONFIG_IPV6_TUNNEL=m + CONFIG_IPV6_MULTIPLE_TABLES=y ++CONFIG_IPV6_SUBTREES=y + CONFIG_IPV6_MROUTE=y + CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y + CONFIG_IPV6_PIMSM_V2=y +@@ -593,10 +594,9 @@ CONFIG_HW_RANDOM=y + CONFIG_RAW_DRIVER=y + CONFIG_I2C=y + CONFIG_I2C_CHARDEV=m ++CONFIG_I2C_MUX_PCA954x=m + CONFIG_I2C_BCM2708=m + CONFIG_I2C_GPIO=m +-CONFIG_I2C_MUX=m +-CONFIG_I2C_MUX_PCA954x=m + CONFIG_SPI=y + CONFIG_SPI_BCM2835=m + CONFIG_SPI_BCM2835AUX=m diff --git a/projects/RPi2/patches/linux/linux-01-RPi_support.patch b/projects/RPi2/patches/linux/linux-01-RPi_support.patch index 403d52b6e3..13300ecc69 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 23b133903a357066adb48bceb76aba8bd30d8c66 Mon Sep 17 00:00:00 2001 +From 3cc8c1beb520133149f9cb5d394cbc1c8bbb01b0 Mon Sep 17 00:00:00 2001 From: Steve Glendinning Date: Thu, 19 Feb 2015 18:47:12 +0000 -Subject: [PATCH 001/220] smsx95xx: fix crimes against truesize +Subject: [PATCH 001/234] 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. @@ -36,10 +36,10 @@ index 66b3ab9..b544181 usbnet_skb_return(dev, ax_skb); } -From e7515ee9af1d150d50b55d8f8f53d735a23cb253 Mon Sep 17 00:00:00 2001 +From d41a067375e9d557ee14ad6ecefbc559b724087c Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 17 Apr 2015 16:58:45 +0100 -Subject: [PATCH 002/220] smsc95xx: Disable turbo mode by default +Subject: [PATCH 002/234] smsc95xx: Disable turbo mode by default --- drivers/net/usb/smsc95xx.c | 2 +- @@ -59,10 +59,10 @@ index b544181..9c0da18 100755 MODULE_PARM_DESC(turbo_mode, "Enable multiple frames per Rx transaction"); -From 849ff5353023c95d40040ecfd279e216074b3d1c Mon Sep 17 00:00:00 2001 +From 52a67e5a346e7dfcd6af9115800108d6c9fca84e Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 18 Jun 2014 13:42:01 +0100 -Subject: [PATCH 003/220] vmstat: Workaround for issue where dirty page count +Subject: [PATCH 003/234] vmstat: Workaround for issue where dirty page count goes negative See: @@ -89,10 +89,10 @@ index 3e5d907..2539068 100644 static inline void __inc_zone_page_state(struct page *page, -From d29365673ed37e7688bd3f35c4a5ad719f878190 Mon Sep 17 00:00:00 2001 +From 5956e14120ab88b53fe2f68f7de6c197eae4a811 Mon Sep 17 00:00:00 2001 From: Robert Tiemann Date: Mon, 20 Jul 2015 11:01:25 +0200 -Subject: [PATCH 004/220] BCM2835_DT: Fix I2S register map +Subject: [PATCH 004/234] BCM2835_DT: Fix I2S register map --- Documentation/devicetree/bindings/dma/brcm,bcm2835-dma.txt | 4 ++-- @@ -146,10 +146,10 @@ index aef64de..864a3ef 100644 dmas = <&dma 2>, <&dma 3>; -From c891de13b385afb3e4b2c97ac5bbea7e2d97252f Mon Sep 17 00:00:00 2001 +From bd8d0148b99e3281aaa294257961377c93a9381d Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 4 Dec 2015 17:41:50 +0000 -Subject: [PATCH 005/220] irq-bcm2836: Prevent spurious interrupts, and trap +Subject: [PATCH 005/234] irq-bcm2836: Prevent spurious interrupts, and trap them early The old arch-specific IRQ macros included a dsb to ensure the @@ -180,10 +180,10 @@ index f687082..4cd8ebe 100644 handle_IRQ(irq_linear_revmap(intc.domain, hwirq), regs); -From 60f7ee79b375d72f5ef46ec542b925b1f1428bad Mon Sep 17 00:00:00 2001 +From 2311742728ef10f5d7ed17debc4065e90cb25c7e 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 006/220] irqchip: bcm2835: Add FIQ support +Subject: [PATCH 006/234] irqchip: bcm2835: Add FIQ support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -312,10 +312,10 @@ index bf9cc5f..3f601f9 100644 } -From 890dccbb9c60be182adefb61b3ede805ccba1a91 Mon Sep 17 00:00:00 2001 +From 60f12c460c71c04609a23be23df6eb986481c365 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 007/220] irqchip: irq-bcm2835: Add 2836 FIQ support +Subject: [PATCH 007/234] irqchip: irq-bcm2835: Add 2836 FIQ support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -411,10 +411,10 @@ index 3f601f9..20deb28 100644 for (b = 0; b < NR_BANKS; b++) { for (i = 0; i < bank_irqs[b]; i++) { -From 9a27662aac88f95b3de1915333a0265614f88a0d Mon Sep 17 00:00:00 2001 +From 8de2ecc5c42ae0a909fbc23da58ef2fa552d4c5b Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 30 Jun 2015 14:12:42 +0100 -Subject: [PATCH 008/220] serial: 8250: Don't crash when nr_uarts is 0 +Subject: [PATCH 008/234] serial: 8250: Don't crash when nr_uarts is 0 --- drivers/tty/serial/8250/8250_core.c | 2 ++ @@ -434,10 +434,10 @@ index 3912646..b51a59c 100644 for (i = 0; i < nr_uarts; i++) { struct uart_8250_port *up = &serial8250_ports[i]; -From 4d7ff05e4d4d8d8adb4e7b4dd5fa8f63ae2be0f6 Mon Sep 17 00:00:00 2001 +From 2567dee80cdc0654788137d07308fa428d3dc8fb Mon Sep 17 00:00:00 2001 From: notro Date: Thu, 10 Jul 2014 13:59:47 +0200 -Subject: [PATCH 009/220] pinctrl-bcm2835: Set base to 0 give expected gpio +Subject: [PATCH 009/234] pinctrl-bcm2835: Set base to 0 give expected gpio numbering Signed-off-by: Noralf Tronnes @@ -446,7 +446,7 @@ Signed-off-by: Noralf Tronnes 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/pinctrl/bcm/pinctrl-bcm2835.c b/drivers/pinctrl/bcm/pinctrl-bcm2835.c -index 2e6ca69..62cc363 100644 +index 17dd8fe..613be28 100644 --- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c +++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c @@ -373,7 +373,7 @@ static struct gpio_chip bcm2835_gpio_chip = { @@ -459,10 +459,10 @@ index 2e6ca69..62cc363 100644 .can_sleep = false, }; -From 969dc44a700e1be13c3f80445d40c1fe51cc4370 Mon Sep 17 00:00:00 2001 +From f23532983c575cac8b55c4bceb1e45a1439f7e0e Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 24 Feb 2015 13:40:50 +0000 -Subject: [PATCH 010/220] pinctrl-bcm2835: Fix interrupt handling for GPIOs +Subject: [PATCH 010/234] pinctrl-bcm2835: Fix interrupt handling for GPIOs 28-31 and 46-53 Contrary to the documentation, the BCM2835 GPIO controller actually has @@ -483,7 +483,7 @@ the pins are often used for I2S instead. 1 file changed, 39 insertions(+), 12 deletions(-) diff --git a/drivers/pinctrl/bcm/pinctrl-bcm2835.c b/drivers/pinctrl/bcm/pinctrl-bcm2835.c -index 62cc363..ab345f4 100644 +index 613be28..a06cf9e 100644 --- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c +++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c @@ -47,6 +47,7 @@ @@ -608,10 +608,10 @@ index 62cc363..ab345f4 100644 }, }; -From b949246bf51fa852bad45136cdd6bcd91a29539e Mon Sep 17 00:00:00 2001 +From fe30b946aef6315884bd029f889f6eb3692705e5 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 26 Feb 2015 09:58:22 +0000 -Subject: [PATCH 011/220] pinctrl-bcm2835: Only request the interrupts listed +Subject: [PATCH 011/234] pinctrl-bcm2835: Only request the interrupts listed in the DTB Although the GPIO controller can generate three interrupts (four counting @@ -625,7 +625,7 @@ interface, is unlikely to be a problem. 1 file changed, 2 insertions(+) diff --git a/drivers/pinctrl/bcm/pinctrl-bcm2835.c b/drivers/pinctrl/bcm/pinctrl-bcm2835.c -index ab345f4..640e3b0 100644 +index a06cf9e..32f779e 100644 --- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c +++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c @@ -1029,6 +1029,8 @@ static int bcm2835_pinctrl_probe(struct platform_device *pdev) @@ -638,10 +638,10 @@ index ab345f4..640e3b0 100644 pc->irq_data[i].irqgroup = i; -From 19bcdacc5a67abe6a2d604a39ddfed5a54c77b2e Mon Sep 17 00:00:00 2001 +From cc544ca7cb8b033c7bf3d884277f32887a1417a7 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 24 Jun 2015 14:10:44 +0100 -Subject: [PATCH 012/220] spi-bcm2835: Support pin groups other than 7-11 +Subject: [PATCH 012/234] 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 @@ -722,10 +722,10 @@ index cf04960..a2b1f45 100644 /* and set up the "mode" and level */ dev_info(&spi->dev, "setting up native-CS%i as GPIO %i\n", -From 7ce5cbfba6e930c2178f342a4390972f1efd75ef Mon Sep 17 00:00:00 2001 +From 8cf07dd13a251b72f28805060d58b942b582feef 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 013/220] ARM: bcm2835: Set Serial number and Revision +Subject: [PATCH 013/234] ARM: bcm2835: Set Serial number and Revision MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -783,10 +783,10 @@ index 0f7b9ea..1e6f1cf 100644 static const char * const bcm2835_compat[] = { -From 569baa856d805e594011f2d1444b6849c291544d Mon Sep 17 00:00:00 2001 +From 902ceaaea891e7883c141d45e52dde7d859e2324 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 11 Oct 2015 16:44:05 +0200 -Subject: [PATCH 014/220] bcm2835-i2s: get base address for DMA from devicetree +Subject: [PATCH 014/234] bcm2835-i2s: get base address for DMA from devicetree Code copied from spi-bcm2835. Get physical address from devicetree instead of using hardcoded constant. @@ -851,10 +851,10 @@ index 8c435be..0bc4f47 100644 /* Set the bus width */ dev->dma_data[SNDRV_PCM_STREAM_PLAYBACK].addr_width = -From c61a7aef15a1aee86e1de59dca2ad7002995f9cf Mon Sep 17 00:00:00 2001 +From c89c8dc0cde738e6d2a5d07dbfd2aaa72f4a07d0 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 11 Oct 2015 15:21:16 +0200 -Subject: [PATCH 015/220] bcm2835-i2s: add 24bit support, update bclk_ratio to +Subject: [PATCH 015/234] bcm2835-i2s: add 24bit support, update bclk_ratio to more correct values Code ported from bcm2708-i2s driver in Raspberry Pi tree. @@ -933,10 +933,10 @@ index 0bc4f47..cf60390 100644 }, .ops = &bcm2835_i2s_dai_ops, -From e2a75ce0e2b6319150e14401f9822adba7895c9c Mon Sep 17 00:00:00 2001 +From da23963f1f4c8999ec76bb99234aec3864b0e56f Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 11 Oct 2015 15:25:51 +0200 -Subject: [PATCH 016/220] bcm2835-i2s: setup clock only if CPU is clock master +Subject: [PATCH 016/234] bcm2835-i2s: setup clock only if CPU is clock master Code ported from bcm2708-i2s driver in Raspberry Pi tree. @@ -991,10 +991,10 @@ index cf60390..4ac4e92 100644 /* Setup the frame format */ format = BCM2835_I2S_CHEN; -From 433841fc5958e1ddbd503b579a022fb67defd74b Mon Sep 17 00:00:00 2001 +From 611d61511eefc080a178187b36c9d86aec9bb8b0 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 11 Oct 2015 15:49:51 +0200 -Subject: [PATCH 017/220] bcm2835-i2s: Eliminate debugfs directory error +Subject: [PATCH 017/234] bcm2835-i2s: Eliminate debugfs directory error Code ported from bcm2708-i2s driver in Raspberry Pi tree. @@ -1030,10 +1030,10 @@ index 4ac4e92..aab3df9 100644 }; -From 7b4481818fe920904457496db40d59dd3d0a83bb Mon Sep 17 00:00:00 2001 +From bb6885bf7549495ca00d9a839954dcd35c4b9e61 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 11 Oct 2015 15:35:20 +0200 -Subject: [PATCH 018/220] bcm2835-i2s: Register PCM device +Subject: [PATCH 018/234] bcm2835-i2s: Register PCM device Code ported from bcm2708-i2s driver in Raspberry Pi tree. @@ -1096,10 +1096,10 @@ index aab3df9..0e5c787 100644 dev_err(&pdev->dev, "Could not register PCM: %d\n", ret); return ret; -From 027ba808e84799c97ae1c64f8424ac8eb7235cc4 Mon Sep 17 00:00:00 2001 +From 7eced106f678f81b479e3f4fcc0de5b0c8e1dbd9 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 11 Oct 2015 15:55:21 +0200 -Subject: [PATCH 019/220] bcm2835-i2s: Enable MMAP support via a DT property +Subject: [PATCH 019/234] bcm2835-i2s: Enable MMAP support via a DT property Code ported from bcm2708-i2s driver in Raspberry Pi tree. @@ -1143,10 +1143,10 @@ index 0e5c787..04c1d13 100644 for (i = 0; i <= 1; i++) { void __iomem *base; -From 8a349301238aabb40c9da5ca8c8492b6b8d146f6 Mon Sep 17 00:00:00 2001 +From 6de25eb4521167e2d9d5a9c777333cec1542192f 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/220] dmaengine: bcm2835: Add slave dma support +Subject: [PATCH 020/234] dmaengine: bcm2835: Add slave dma support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -1466,10 +1466,10 @@ index 996c4b0..b278c66 100644 +MODULE_AUTHOR("Gellert Weisz "); MODULE_LICENSE("GPL v2"); -From 290f55520c62025da992d6be0002fc1e3738cfdb Mon Sep 17 00:00:00 2001 +From 6090e63c27886fcd841ba451d8646c093a179b8d 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/220] dmaengine: bcm2835: set residue_granularity field +Subject: [PATCH 021/234] dmaengine: bcm2835: set residue_granularity field MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -1498,10 +1498,10 @@ index b278c66..696fb30 100644 INIT_LIST_HEAD(&od->ddev.channels); spin_lock_init(&od->lock); -From 6f56fff39c811953809b011f59c49a2122c4d173 Mon Sep 17 00:00:00 2001 +From ea0d9861bde9e049f8d5e43ae89dcf7844cb5e8d 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/220] dmaengine: bcm2835: Load driver early and support +Subject: [PATCH 022/234] dmaengine: bcm2835: Load driver early and support legacy API MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -1601,10 +1601,10 @@ index 696fb30..5db0a95 100644 MODULE_ALIAS("platform:bcm2835-dma"); MODULE_DESCRIPTION("BCM2835 DMA engine driver"); -From df03f00c5e21559185b5a61ea5e8238e10959ab1 Mon Sep 17 00:00:00 2001 +From 8947371bab57f6f0adb8c9519ceeba017fa5fc6a Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sat, 10 Oct 2015 12:29:18 +0200 -Subject: [PATCH 023/220] bcm2835-dma: Fix dreq not set for slave transfers +Subject: [PATCH 023/234] bcm2835-dma: Fix dreq not set for slave transfers Set dreq to slave_id if it is not set like in bcm2708-dmaengine. --- @@ -1625,10 +1625,10 @@ index 5db0a95..fe1fd60 100644 return 0; } -From 052c2005b6ecedc5abad86632f5781adda310aa7 Mon Sep 17 00:00:00 2001 +From 22399cbc5ece0905650012b73e51a366d1c754e6 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 11 Oct 2015 12:28:30 +0200 -Subject: [PATCH 024/220] bcm2835-dma: Limit cyclic transfers on lite channels +Subject: [PATCH 024/234] bcm2835-dma: Limit cyclic transfers on lite channels to 32k Transfers larger than 32k cause repeated clicking with I2S soundcards. @@ -1665,10 +1665,10 @@ index fe1fd60..0adc347 100644 max_size = MAX_NORMAL_TRANSFER; period_len = min(period_len, max_size); -From a72021ae99021409319d552dad744572b20febfb Mon Sep 17 00:00:00 2001 +From 1e8033be36dd0c3b000c014245cc45f94118faa0 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 025/220] bcm2835: Add support for uart1 +Subject: [PATCH 025/234] bcm2835: Add support for uart1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -1725,10 +1725,10 @@ index 1e6f1cf..ea36eec 100644 static const char * const bcm2835_compat[] = { -From 4364707caa6d3d9edf84fa8469a04f33e1ba5d76 Mon Sep 17 00:00:00 2001 +From d97842cc1aac3d0ff132500fad402068743d08df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 26 Jun 2015 14:21:20 +0200 -Subject: [PATCH 026/220] firmware: bcm2835: Add missing property tags +Subject: [PATCH 026/234] firmware: bcm2835: Add missing property tags MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -1790,10 +1790,10 @@ index c07d74a..525816d 100644 RPI_FIRMWARE_GET_COMMAND_LINE = 0x00050001, RPI_FIRMWARE_GET_DMA_CHANNELS = 0x00060001, -From cd721670ab8c729d0c62e99a1d173c2575b63282 Mon Sep 17 00:00:00 2001 +From f01f5606b8fe5e7ea7d70f4f2e0e7435040cabaa Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 12 May 2013 12:24:19 +0100 -Subject: [PATCH 027/220] Main bcm2708/bcm2709 linux port +Subject: [PATCH 027/234] Main bcm2708/bcm2709 linux port MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -4308,10 +4308,10 @@ index 8673ffe..ad22ebb 100644 mmc_pm_flag_t pm_caps; /* supported pm features */ -From 812484cc27980e3351360200478e7044de983f40 Mon Sep 17 00:00:00 2001 +From cc5bcfaa350113324f7433660c9a3dfc0229bcdd Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 11 Nov 2015 21:01:15 +0000 -Subject: [PATCH 028/220] squash: include ARCH_BCM2708 / ARCH_BCM2709 +Subject: [PATCH 028/234] squash: include ARCH_BCM2708 / ARCH_BCM2709 --- drivers/char/hw_random/Kconfig | 2 +- @@ -4463,10 +4463,10 @@ index 6a834e1..c5070ae 100644 select REGMAP_MMIO help -From 7efc2851a46faa1aceda5f6ec255d0e814812ccf Mon Sep 17 00:00:00 2001 +From d23b18d79e915fa0a5820230ee7a35d682e7af42 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 1 May 2013 19:46:17 +0100 -Subject: [PATCH 029/220] Add dwc_otg driver +Subject: [PATCH 029/234] Add dwc_otg driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -5131,10 +5131,10 @@ index 358ca8d..abaac7c 100644 return i; } diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c -index 1560f3f..dd4dd69 100644 +index 2a27488..ae4dca1 100644 --- a/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c -@@ -4967,7 +4967,7 @@ static void port_event(struct usb_hub *hub, int port1) +@@ -4973,7 +4973,7 @@ static void port_event(struct usb_hub *hub, int port1) if (portchange & USB_PORT_STAT_C_OVERCURRENT) { u16 status = 0, unused; @@ -65445,10 +65445,10 @@ index 0000000..cdc9963 +test_main(); +0; -From d3b7394edae550f295e185be4651ed43529e7042 Mon Sep 17 00:00:00 2001 +From 09d89e5bb8c9adc39556accbf5bb118e1609fb80 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 17 Jun 2015 17:06:34 +0100 -Subject: [PATCH 030/220] bcm2708 framebuffer driver +Subject: [PATCH 030/234] bcm2708 framebuffer driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -68910,10 +68910,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 99b7c3cfd05f5898e96d7c44c5970880f2c0cd16 Mon Sep 17 00:00:00 2001 +From 185a83f51686987a770243702f0c54304c60cca2 Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Fri, 22 Nov 2013 14:22:53 +0100 -Subject: [PATCH 031/220] dmaengine: Add support for BCM2708 +Subject: [PATCH 031/234] dmaengine: Add support for BCM2708 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -69533,10 +69533,10 @@ index 0000000..99cc7fd + +#endif /* _PLAT_BCM2708_DMA_H */ -From 65c8aadfd88010efb2d2a2821fea7aac978b6c78 Mon Sep 17 00:00:00 2001 +From dd0f809dccd2522c01727b2822f484ce8e9ce23a Mon Sep 17 00:00:00 2001 From: gellert Date: Fri, 15 Aug 2014 16:35:06 +0100 -Subject: [PATCH 032/220] MMC: added alternative MMC driver +Subject: [PATCH 032/234] MMC: added alternative MMC driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -71234,10 +71234,10 @@ index 0000000..43aed6e +MODULE_LICENSE("GPL v2"); +MODULE_AUTHOR("Gellert Weisz"); -From c58bec0d84082837415562c6567396e9e5ba62f7 Mon Sep 17 00:00:00 2001 +From e15ccca87e0a679797cbcaf24bbf2304b1e8eba3 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 25 Mar 2015 17:49:47 +0000 -Subject: [PATCH 033/220] Adding bcm2835-sdhost driver, and an overlay to +Subject: [PATCH 033/234] Adding bcm2835-sdhost driver, and an overlay to enable it BCM2835 has two SD card interfaces. This driver uses the other one. @@ -73264,10 +73264,10 @@ index 0000000..da08998 +MODULE_LICENSE("GPL v2"); +MODULE_AUTHOR("Phil Elwell"); -From 36d8db53953365eecdf56695944e9f9919634de0 Mon Sep 17 00:00:00 2001 +From a5a139f18bcc782f2cc3a1de66c936ce2dbb6ffb Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 3 Jul 2013 00:31:47 +0100 -Subject: [PATCH 034/220] cma: Add vc_cma driver to enable use of CMA +Subject: [PATCH 034/234] 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 @@ -74610,10 +74610,10 @@ index 0000000..be2819d + +#endif /* VC_CMA_H */ -From 2dd634f97c4fb77d9e81be289a8da29c390a0309 Mon Sep 17 00:00:00 2001 +From 79708ff24769bfa53cc800dd05f951340829cc5d Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 26 Mar 2012 22:15:50 +0100 -Subject: [PATCH 035/220] bcm2708: alsa sound driver +Subject: [PATCH 035/234] bcm2708: alsa sound driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -77311,10 +77311,10 @@ index 0000000..af3e6eb + +#endif // _VC_AUDIO_DEFS_H_ -From 112360f76c91c892f1a29825eb2807bbf86ac67d Mon Sep 17 00:00:00 2001 +From 522686ae5036c50971853fee0fdb371ed8309222 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 2 Jul 2013 23:42:01 +0100 -Subject: [PATCH 036/220] bcm2708 vchiq driver +Subject: [PATCH 036/234] bcm2708 vchiq driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -90619,10 +90619,10 @@ index 0000000..b6bfa21 + return vchiq_build_time; +} -From b0acaf43055bacef7918c835517ff6ea7da26e83 Mon Sep 17 00:00:00 2001 +From a4ad9bf42376a39e5314f41ecd1ea8fbafb4ca46 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 17 Jun 2015 16:07:06 +0100 -Subject: [PATCH 037/220] vc_mem: Add vc_mem driver +Subject: [PATCH 037/234] vc_mem: Add vc_mem driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -91627,10 +91627,10 @@ index 0000000..20a4753 + +#endif /* _VC_MEM_H */ -From 5f05accd033e4b032f64717a0276d7174f697919 Mon Sep 17 00:00:00 2001 +From c18ab896c13c1824cdc4c8c544f2576e778d4595 Mon Sep 17 00:00:00 2001 From: Tim Gover Date: Tue, 22 Jul 2014 15:41:04 +0100 -Subject: [PATCH 038/220] vcsm: VideoCore shared memory service for BCM2835 +Subject: [PATCH 038/234] vcsm: VideoCore shared memory service for BCM2835 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -96046,10 +96046,10 @@ index 0000000..334f36d + +#endif /* __VMCS_SM_IOCTL_H__INCLUDED__ */ -From 1ee3b49a62efe1416a6b40fb5c6032288f3d2b08 Mon Sep 17 00:00:00 2001 +From d778ec78cbc50597690495a4767dad44d9329547 Mon Sep 17 00:00:00 2001 From: Luke Wren Date: Fri, 21 Aug 2015 23:14:48 +0100 -Subject: [PATCH 039/220] Add /dev/gpiomem device for rootless user GPIO access +Subject: [PATCH 039/234] Add /dev/gpiomem device for rootless user GPIO access Signed-off-by: Luke Wren @@ -96360,10 +96360,10 @@ index 0000000..911f5b7 +MODULE_DESCRIPTION("gpiomem driver for accessing GPIO from userspace"); +MODULE_AUTHOR("Luke Wren "); -From e19c303e7d54d986e0bd3e47107a83e30329c1d0 Mon Sep 17 00:00:00 2001 +From 684fa35717d47554b4e019f45e513b58823b50dc Mon Sep 17 00:00:00 2001 From: Luke Wren Date: Sat, 5 Sep 2015 01:14:45 +0100 -Subject: [PATCH 040/220] Add SMI driver +Subject: [PATCH 040/234] Add SMI driver Signed-off-by: Luke Wren --- @@ -98314,10 +98314,10 @@ index 0000000..ee3a75e + +#endif /* BCM2835_SMI_H */ -From c0fe401b61ae4d002f6fc84438ce69c5917c580a Mon Sep 17 00:00:00 2001 +From d6893b8f68df96a0dd728a1ea8518af748d3de55 Mon Sep 17 00:00:00 2001 From: Luke Wren Date: Sat, 5 Sep 2015 01:16:10 +0100 -Subject: [PATCH 041/220] Add SMI NAND driver +Subject: [PATCH 041/234] Add SMI NAND driver Signed-off-by: Luke Wren --- @@ -98683,10 +98683,10 @@ index 0000000..b747326 + ("Driver for NAND chips using Broadcom Secondary Memory Interface"); +MODULE_AUTHOR("Luke Wren "); -From 0bc00c67aea43098c7b066e7b123379b260cc7de Mon Sep 17 00:00:00 2001 +From 90d547aa8fc1259726f56f404af4ecf9dff6ba0e Mon Sep 17 00:00:00 2001 From: Aron Szabo Date: Sat, 16 Jun 2012 12:15:55 +0200 -Subject: [PATCH 042/220] lirc: added support for RaspberryPi GPIO +Subject: [PATCH 042/234] 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 @@ -99535,10 +99535,10 @@ index 0000000..fb69624 + +#endif -From 007ef35b2cf5d8a0197e81e712b38fb72cebae2e Mon Sep 17 00:00:00 2001 +From c220c109c1a18cf786523a205b85a4ebca638624 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 3 Jul 2013 00:49:20 +0100 -Subject: [PATCH 043/220] Add cpufreq driver +Subject: [PATCH 043/234] Add cpufreq driver Signed-off-by: popcornmix --- @@ -99800,10 +99800,10 @@ index 0000000..3eb9e93 +module_init(bcm2835_cpufreq_module_init); +module_exit(bcm2835_cpufreq_module_exit); -From 9f251fdbaaf3bd895c2901413748679d68a0c644 Mon Sep 17 00:00:00 2001 +From 1184f7bb9072fe8b453e3c9a71938a16943a708f Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 26 Mar 2013 19:24:24 +0000 -Subject: [PATCH 044/220] Added hwmon/thermal driver for reporting core +Subject: [PATCH 044/234] Added hwmon/thermal driver for reporting core temperature. Thanks Dorian MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -100001,10 +100001,10 @@ index 0000000..08d8dc7 +MODULE_DESCRIPTION("Thermal driver for bcm2835 chip"); +MODULE_LICENSE("GPL"); -From 28a4399bf03eeb3ec5b7b56c9445b296e1427665 Mon Sep 17 00:00:00 2001 +From 418bd7563b83b568046489b0f4b8c67391d31445 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 17 Jun 2015 15:44:08 +0100 -Subject: [PATCH 045/220] Add Chris Boot's i2c driver +Subject: [PATCH 045/234] Add Chris Boot's i2c driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -100644,10 +100644,10 @@ index 0000000..85f411c +MODULE_LICENSE("GPL v2"); +MODULE_ALIAS("platform:" DRV_NAME); -From 75804edaed6c45d813dcee866d39445130d82539 Mon Sep 17 00:00:00 2001 +From 3c15dbca1ea1cf9b6843cb55e2fd01d4701ef874 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 046/220] char: broadcom: Add vcio module +Subject: [PATCH 046/234] char: broadcom: Add vcio module MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -100873,10 +100873,10 @@ index 0000000..c19bc20 +MODULE_DESCRIPTION("Mailbox userspace access"); +MODULE_LICENSE("GPL"); -From 80b7c5e2cc3d633b3d3a1afbdb537e2ccfe906c7 Mon Sep 17 00:00:00 2001 +From 8481c7c7094e5395ab47c8ecc6c7c12d654baf5a 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 047/220] firmware: bcm2835: Support ARCH_BCM270x +Subject: [PATCH 047/234] firmware: bcm2835: Support ARCH_BCM270x MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -100982,10 +100982,10 @@ index dd506cd..b980d53 100644 MODULE_AUTHOR("Eric Anholt "); MODULE_DESCRIPTION("Raspberry Pi firmware driver"); -From e15fddd4332bd3a762d0feef48ff2b5e3df10af0 Mon Sep 17 00:00:00 2001 +From 7e74c5de1a6c613a28ee5a5cc871661ceadd0fcd Mon Sep 17 00:00:00 2001 From: Vincent Sanders Date: Wed, 30 Jan 2013 12:45:18 +0000 -Subject: [PATCH 048/220] bcm2835: add v4l2 camera device +Subject: [PATCH 048/234] bcm2835: add v4l2 camera device - Supports raw YUV capture, preview, JPEG and H264. - Uses videobuf2 for data transfer, using dma_buf. @@ -108370,10 +108370,10 @@ index 0000000..9d1d11e + +#endif /* MMAL_VCHIQ_H */ -From 91e833ab0b220bb0bb810bb9605b0a03cd76baa8 Mon Sep 17 00:00:00 2001 +From 2a1cb83a705ce839581fbabeb9a8db3dad478ccf Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 11 May 2015 09:00:42 +0100 -Subject: [PATCH 049/220] scripts: Add mkknlimg and knlinfo scripts from tools +Subject: [PATCH 049/234] scripts: Add mkknlimg and knlinfo scripts from tools repo The Raspberry Pi firmware looks for a trailer on the kernel image to @@ -108838,10 +108838,10 @@ index 0000000..3998d43 + return (($val eq 'y') || ($val eq '1')); +} -From 918b9e451bbaebb775725a292fd3b6e3d4cf804f Mon Sep 17 00:00:00 2001 +From 3c9e2867950ad9a36623e07c2d1641445bab50dd Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 5 Dec 2014 17:26:26 +0000 -Subject: [PATCH 050/220] fdt: Add support for the CONFIG_CMDLINE_EXTEND option +Subject: [PATCH 050/234] fdt: Add support for the CONFIG_CMDLINE_EXTEND option --- drivers/of/fdt.c | 29 ++++++++++++++++++++++++----- @@ -108896,10 +108896,10 @@ index 655f79d..fdc4501 100644 pr_debug("Command line is: %s\n", (char*)data); -From d1fdaf68df66e82bea1081b490ebeea414d69203 Mon Sep 17 00:00:00 2001 +From 336ecbfbddc122378578b727f46bfe71858aaa05 Mon Sep 17 00:00:00 2001 From: notro Date: Wed, 9 Jul 2014 14:46:08 +0200 -Subject: [PATCH 051/220] BCM2708: Add core Device Tree support +Subject: [PATCH 051/234] BCM2708: Add core Device Tree support Add the bare minimum needed to boot BCM2708 from a Device Tree. @@ -113625,10 +113625,10 @@ index 0000000..66a98f6 + }; +}; -From da7cdef4979282624e0e7527c3c8334a59f39676 Mon Sep 17 00:00:00 2001 +From 83d747d78be86190ad18c8c49e0d5518ac6bf83b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Sat, 15 Aug 2015 20:47:07 +0200 -Subject: [PATCH 052/220] bcm2835: Match with BCM2708 Device Trees +Subject: [PATCH 052/234] bcm2835: Match with BCM2708 Device Trees MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -114146,10 +114146,10 @@ index 864a3ef..3256bff 100644 + status = "okay"; +}; -From b28366cb5b514e5c59586f9a5509d3afff5337d5 Mon Sep 17 00:00:00 2001 +From 1b4ab4d431eed3ced1dfdcb4ac14ce3937b74244 Mon Sep 17 00:00:00 2001 From: Siarhei Siamashka Date: Mon, 17 Jun 2013 13:32:11 +0300 -Subject: [PATCH 053/220] fbdev: add FBIOCOPYAREA ioctl +Subject: [PATCH 053/234] fbdev: add FBIOCOPYAREA ioctl Based on the patch authored by Ali Gholami Rudi at https://lkml.org/lkml/2009/7/13/153 @@ -114242,10 +114242,10 @@ index fb795c3..fa72af0 100644 #define FB_TYPE_PACKED_PIXELS 0 /* Packed Pixels */ #define FB_TYPE_PLANES 1 /* Non interleaved planes */ -From b4596a50cab2130b5370cd2ecddf0827c014b2ca Mon Sep 17 00:00:00 2001 +From 3b5139c9458b2665a229f83876d02329577f6c6f Mon Sep 17 00:00:00 2001 From: Harm Hanemaaijer Date: Thu, 20 Jun 2013 20:21:39 +0200 -Subject: [PATCH 054/220] Speed up console framebuffer imageblit function +Subject: [PATCH 054/234] 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 @@ -114454,10 +114454,10 @@ index a2bb276..436494f 100644 start_index, pitch_index); } else -From e5141ba61decc8952b87bdc91fab78f5be7e2b33 Mon Sep 17 00:00:00 2001 +From 15afa9ccdb6c5e15d3b646e203dcd20b44fffb48 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 26 Mar 2013 17:26:38 +0000 -Subject: [PATCH 055/220] Allow mac address to be set in smsc95xx +Subject: [PATCH 055/234] Allow mac address to be set in smsc95xx Signed-off-by: popcornmix --- @@ -114548,10 +114548,10 @@ index 9c0da18..3244a90 100755 if (smsc95xx_read_eeprom(dev, EEPROM_MAC_OFFSET, ETH_ALEN, dev->net->dev_addr) == 0) { -From 53408f20f48db00c8d71311ed885f91e2ba41b3f Mon Sep 17 00:00:00 2001 +From 68aca36345f6d2a31124161d2971ed2ec1138fa7 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 8 May 2013 11:46:50 +0100 -Subject: [PATCH 056/220] enabling the realtime clock 1-wire chip DS1307 and +Subject: [PATCH 056/234] 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 @@ -114801,10 +114801,10 @@ index d58594a..feae942 100644 unsigned int ext_pullup_enable_pin; unsigned int pullup_duration; -From 85c41b7e97631944a2e224c3b3d966f8bc240575 Mon Sep 17 00:00:00 2001 +From 715498e3ade34ee0329faa23ce35ce3ae117c0b0 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 18 Dec 2013 22:16:19 +0000 -Subject: [PATCH 057/220] config: Enable CONFIG_MEMCG, but leave it disabled +Subject: [PATCH 057/234] config: Enable CONFIG_MEMCG, but leave it disabled (due to memory cost). Enable with cgroup_enable=memory. --- @@ -114812,10 +114812,10 @@ Subject: [PATCH 057/220] config: Enable CONFIG_MEMCG, but leave it disabled 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/kernel/cgroup.c b/kernel/cgroup.c -index fb1ecfd..888d308 100644 +index dc94f8b..3dda8a8 100644 --- a/kernel/cgroup.c +++ b/kernel/cgroup.c -@@ -5286,7 +5286,7 @@ int __init cgroup_init_early(void) +@@ -5302,7 +5302,7 @@ int __init cgroup_init_early(void) return 0; } @@ -114824,7 +114824,7 @@ index fb1ecfd..888d308 100644 /** * cgroup_init - cgroup initialization -@@ -5782,6 +5782,27 @@ static int __init cgroup_disable(char *str) +@@ -5798,6 +5798,27 @@ static int __init cgroup_disable(char *str) } __setup("cgroup_disable=", cgroup_disable); @@ -114853,10 +114853,10 @@ index fb1ecfd..888d308 100644 * css_tryget_online_from_dir - get corresponding css from a cgroup dentry * @dentry: directory dentry of interest -From c5c0ae52947ae5062cf1c75174c57a466408247e Mon Sep 17 00:00:00 2001 +From 54a1f8fa679c406f256540302a8d0555d11bdbd5 Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Fri, 22 Nov 2013 14:59:51 +0100 -Subject: [PATCH 058/220] ASoC: Add support for PCM5102A codec +Subject: [PATCH 058/234] ASoC: Add support for PCM5102A codec Some definitions to support the PCM5102A codec by Texas Instruments. @@ -114989,10 +114989,10 @@ index 0000000..7c6598e +MODULE_AUTHOR("Florian Meier "); +MODULE_LICENSE("GPL v2"); -From a84f726a98074d1a59f3c7b7e78de23f02eac00f Mon Sep 17 00:00:00 2001 +From e825f277a64734a8761848618d706ed28cb7bc8c Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Fri, 22 Nov 2013 19:19:08 +0100 -Subject: [PATCH 059/220] ASoC: Add support for HifiBerry DAC +Subject: [PATCH 059/234] ASoC: Add support for HifiBerry DAC This adds a machine driver for the HifiBerry DAC. It is a sound card that can @@ -115162,10 +115162,10 @@ index 0000000..3ab0f47 +MODULE_DESCRIPTION("ASoC Driver for HifiBerry DAC"); +MODULE_LICENSE("GPL v2"); -From 2dcfef900197d433421c0bda384725ad4a9d6ef6 Mon Sep 17 00:00:00 2001 +From 275e998fab80613632ecf2def47916cf39866abd Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Fri, 22 Nov 2013 19:21:34 +0100 -Subject: [PATCH 060/220] ASoC: Add support for Rpi-DAC +Subject: [PATCH 060/234] ASoC: Add support for Rpi-DAC --- sound/soc/bcm/Kconfig | 7 +++ @@ -115452,10 +115452,10 @@ index 0000000..afe1b41 +MODULE_AUTHOR("Florian Meier "); +MODULE_LICENSE("GPL v2"); -From 597b34d19fe280ccf307bf4aaa299f400a45b1eb Mon Sep 17 00:00:00 2001 +From b26742d1b3bb01fb18689245463c445ef89a2563 Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Wed, 15 Jan 2014 21:41:23 +0100 -Subject: [PATCH 061/220] ASoC: wm8804: Implement MCLK configuration options, +Subject: [PATCH 061/234] 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 @@ -115495,10 +115495,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 4834b496fe213ad958d035eb917af3e3a00a43ad Mon Sep 17 00:00:00 2001 +From 53ee6d9b8df8dee73efc8eb9c4a2a933709f996a Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Wed, 15 Jan 2014 21:42:08 +0100 -Subject: [PATCH 062/220] ASoC: BCM:Add support for HiFiBerry Digi. Driver is +Subject: [PATCH 062/234] ASoC: BCM:Add support for HiFiBerry Digi. Driver is based on the patched WM8804 driver. Signed-off-by: Daniel Matuschek @@ -115785,10 +115785,10 @@ index 0000000..80732b8 +MODULE_DESCRIPTION("ASoC Driver for HifiBerry Digi"); +MODULE_LICENSE("GPL v2"); -From 6f5d23ea45251f2fa5ec014befd31f43cc869f4c Mon Sep 17 00:00:00 2001 +From 7a49ce152226bdc88cb60ce77ba271a6d20ec522 Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Thu, 16 Jan 2014 07:36:35 +0100 -Subject: [PATCH 063/220] ASoC: wm8804: Set idle_bias_off to false Idle bias +Subject: [PATCH 063/234] ASoC: wm8804: Set idle_bias_off to false Idle bias has been change to remove warning on driver startup Signed-off-by: Daniel Matuschek @@ -115810,10 +115810,10 @@ index 5795fb1..c846716 100644 .dapm_widgets = wm8804_dapm_widgets, .num_dapm_widgets = ARRAY_SIZE(wm8804_dapm_widgets), -From c320e752d4a779b44f257b4784ca8665c66ea2f2 Mon Sep 17 00:00:00 2001 +From 997d633a18686b13447445bae2efedf75d1d4655 Mon Sep 17 00:00:00 2001 From: Gordon Garrity Date: Sat, 8 Mar 2014 16:56:57 +0000 -Subject: [PATCH 064/220] Add IQaudIO Sound Card support for Raspberry Pi +Subject: [PATCH 064/234] Add IQaudIO Sound Card support for Raspberry Pi Set a limit of 0dB on Digital Volume Control @@ -115996,10 +115996,10 @@ index 0000000..37038d4 +MODULE_DESCRIPTION("ASoC Driver for IQAudio DAC"); +MODULE_LICENSE("GPL v2"); -From 43b360019a8d5c10c560102a4e0e84cca2489f83 Mon Sep 17 00:00:00 2001 +From e19d94cbff54cd07ece267c118e1626319d041dd Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 14 Jul 2014 22:02:09 +0100 -Subject: [PATCH 065/220] hid: Reduce default mouse polling interval to 60Hz +Subject: [PATCH 065/234] hid: Reduce default mouse polling interval to 60Hz Reduces overhead when using X --- @@ -116035,10 +116035,10 @@ index 5dd426f..9ae0cd5 100644 ret = -ENOMEM; if (usb_endpoint_dir_in(endpoint)) { -From 655fec62e4702ba6ef037aa285275cca6b95fab9 Mon Sep 17 00:00:00 2001 +From f5aa12666cbbddc0669ccdce0a5268cad467bbf8 Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Mon, 4 Aug 2014 10:06:56 +0200 -Subject: [PATCH 066/220] Added support for HiFiBerry DAC+ +Subject: [PATCH 066/234] 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. @@ -116233,10 +116233,10 @@ index 0000000..11e4f39 +MODULE_DESCRIPTION("ASoC Driver for HiFiBerry DAC+"); +MODULE_LICENSE("GPL v2"); -From b19ad321a57b85b83b4bf4380ced71885f36e6b2 Mon Sep 17 00:00:00 2001 +From 0d5bec6303e174c3d58412a2a43c054a5b0ea9f8 Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Mon, 4 Aug 2014 11:09:58 +0200 -Subject: [PATCH 067/220] Added driver for HiFiBerry Amp amplifier add-on board +Subject: [PATCH 067/234] 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. @@ -117067,10 +117067,10 @@ index 0000000..8f019e0 + +#endif /* _TAS5713_H */ -From 194e0f05820a1b92eec669902d26999001480e85 Mon Sep 17 00:00:00 2001 +From 3a732a5723ad9d452c3da2720e9129dbe7aa8c5f Mon Sep 17 00:00:00 2001 From: Ryan Coe Date: Sat, 31 Jan 2015 18:25:49 -0700 -Subject: [PATCH 068/220] Update ds1307 driver for device-tree support +Subject: [PATCH 068/234] Update ds1307 driver for device-tree support Signed-off-by: Ryan Coe --- @@ -117097,10 +117097,10 @@ index aa705bb..1cb13fe 100644 .driver = { .name = "rtc-ds1307", -From e0f8460b71d3130d5d21452049ffdcb8bbb15be0 Mon Sep 17 00:00:00 2001 +From 7a7ff0be55b1e3a67326d3c03c65b45434dd320d Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 6 Feb 2015 13:50:57 +0000 -Subject: [PATCH 069/220] BCM270x_DT: Add pwr_led, and the required "input" +Subject: [PATCH 069/234] BCM270x_DT: Add pwr_led, and the required "input" trigger The "input" trigger makes the associated GPIO an input. This is to support @@ -117279,10 +117279,10 @@ index fa359c7..4b25a1a 100644 /* Set LED brightness level */ /* Must not sleep, use a workqueue if needed */ -From 7560266f8cc30e6cb31db57c9092773287447cc0 Mon Sep 17 00:00:00 2001 +From 43b58f47b9e73a5fd2c9a9ca2e278fb89d31b6ec Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 27 Feb 2015 15:10:24 +0000 -Subject: [PATCH 070/220] enc28j60: Add device tree compatible string and an +Subject: [PATCH 070/234] enc28j60: Add device tree compatible string and an overlay --- @@ -117311,10 +117311,10 @@ index 86ea17e..a1b20c1 100644 .probe = enc28j60_probe, .remove = enc28j60_remove, -From 3bda1a355570493dbdec3f0ffb97128c9aaf2c08 Mon Sep 17 00:00:00 2001 +From e00b8af19b9249285aa8519b5666a7296b15f360 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Wed, 25 Mar 2015 09:26:17 +0100 -Subject: [PATCH 071/220] Add driver for rpi-proto +Subject: [PATCH 071/234] 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 @@ -117529,10 +117529,10 @@ index 0000000..c6e45a0 +MODULE_DESCRIPTION("ASoC Driver for Raspberry Pi connected to PROTO board (WM8731)"); +MODULE_LICENSE("GPL"); -From e8f36f5d9e4728580868ba048a8c842ba7a5187d Mon Sep 17 00:00:00 2001 +From d09a261738801b95a8a97cdf32c181f0dc64eb7a Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 13 Apr 2015 17:16:29 +0100 -Subject: [PATCH 072/220] config: Add default configs +Subject: [PATCH 072/234] config: Add default configs --- arch/arm/configs/bcm2709_defconfig | 1254 +++++++++++++++++++++++++++++++++++ @@ -120073,10 +120073,10 @@ index 0000000..1d1b799 +CONFIG_CRC_ITU_T=y +CONFIG_LIBCRC32C=y -From 4f6ecced6a6f13da5e91319f10f79131fbe00385 Mon Sep 17 00:00:00 2001 +From 0dd8b9878937bb33b785671b5ab80940e48f96fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Wed, 29 Apr 2015 17:24:02 +0200 -Subject: [PATCH 073/220] bcm2835: bcm2835_defconfig +Subject: [PATCH 073/234] bcm2835: bcm2835_defconfig MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -121502,10 +121502,10 @@ index 31cb073..fdb2e2a 100644 # CONFIG_XZ_DEC_ARM is not set # CONFIG_XZ_DEC_ARMTHUMB is not set -From 720dc241d47fd83550602fa897e3a723153a4b9b Mon Sep 17 00:00:00 2001 +From f8527a3c8859d7eb69d8e8229f92a7265cafaf4b Mon Sep 17 00:00:00 2001 From: Gordon Hollingworth Date: Tue, 12 May 2015 14:47:56 +0100 -Subject: [PATCH 074/220] rpi-ft5406: Add touchscreen driver for pi LCD display +Subject: [PATCH 074/234] 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 @@ -121800,10 +121800,10 @@ index 0000000..b27dbee +MODULE_DESCRIPTION("Touchscreen driver for memory based FT5406"); +MODULE_LICENSE("GPL"); -From a86f1cf0661f306457bd8b8a53647abce2d3490f Mon Sep 17 00:00:00 2001 +From bab36a045c0c34ec0ca5e6fa194a300017be3ebd Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 13 Oct 2014 11:47:53 +0100 -Subject: [PATCH 075/220] Improve __copy_to_user and __copy_from_user +Subject: [PATCH 075/234] Improve __copy_to_user and __copy_from_user performance Provide a __copy_from_user that uses memcpy. On BCM2708, use @@ -123342,10 +123342,10 @@ index 588bbc2..c29df92 100644 static unsigned long noinline __clear_user_memset(void __user *addr, unsigned long n) -From 0a5bb180e28f3f7a5fcbdda7f00825f1a5b3912a Mon Sep 17 00:00:00 2001 +From 25cdd0781ca4965cc732e7eec445d90a6f691737 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 25 Jun 2015 12:16:11 +0100 -Subject: [PATCH 076/220] gpio-poweroff: Allow it to work on Raspberry Pi +Subject: [PATCH 076/234] 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 @@ -123380,10 +123380,10 @@ index be3d81f..a030ae9 100644 "%s: pm_power_off function already registered", __func__); -From 93b0d9103ea1679f844514d91419861673e626a6 Mon Sep 17 00:00:00 2001 +From 87d17dbd873e7d849c31fbbb8dd691fb388a1587 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 14 Jul 2015 10:26:09 +0100 -Subject: [PATCH 077/220] spidev: Add "spidev" compatible string to silence +Subject: [PATCH 077/234] spidev: Add "spidev" compatible string to silence warning See: https://github.com/raspberrypi/linux/issues/1054 @@ -123404,10 +123404,10 @@ index d0e7dfc..57b0760 100644 }; MODULE_DEVICE_TABLE(of, spidev_dt_ids); -From 9097d8fb3892fc3e1201383f0195c650b00aa9aa Mon Sep 17 00:00:00 2001 +From 76e6d5dc690a0ffc2b3fab99e4b77eca53cfe760 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 14 Jul 2015 17:00:18 +0100 -Subject: [PATCH 078/220] scripts/dtc: Add overlay support +Subject: [PATCH 078/234] scripts/dtc: Add overlay support --- scripts/dtc/checks.c | 119 ++- @@ -127812,10 +127812,10 @@ index 5b8c7d5..86b7338 100644 -#define DTC_VERSION "DTC 1.4.1-g9d3649bd" +#define DTC_VERSION "DTC 1.4.1-g9d3649bd-dirty" -From 6ce5de5b5c39618afcb44a67b5c124c7f7e184ff Mon Sep 17 00:00:00 2001 +From fabdcf971d60696f0cd1bcaa5eadcae1bcb356cd Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 14 Jul 2015 14:32:47 +0100 -Subject: [PATCH 079/220] mfd: Add Raspberry Pi Sense HAT core driver +Subject: [PATCH 079/234] mfd: Add Raspberry Pi Sense HAT core driver --- drivers/input/joystick/Kconfig | 8 + @@ -128681,10 +128681,10 @@ index 0000000..56196dc + +#endif -From f4ffbbe422e65f54f81f727eb03077e0e60abbc0 Mon Sep 17 00:00:00 2001 +From 5edc06a3760e5529a8855c96321e93ebca877703 Mon Sep 17 00:00:00 2001 From: Jan Grulich Date: Mon, 24 Aug 2015 16:03:47 +0100 -Subject: [PATCH 080/220] RaspiDAC3 support +Subject: [PATCH 080/234] RaspiDAC3 support Signed-off-by: Jan Grulich @@ -128932,10 +128932,10 @@ index 0000000..3cabf5b +MODULE_DESCRIPTION("ASoC Driver for RaspiDAC Rev.3x"); +MODULE_LICENSE("GPL v2"); -From 160bb52c33e5e9d3873725007920a5ab034df633 Mon Sep 17 00:00:00 2001 +From e44922dbe04bdf51bddcbded96743327197dbb30 Mon Sep 17 00:00:00 2001 From: Jan Grulich Date: Mon, 24 Aug 2015 16:02:34 +0100 -Subject: [PATCH 081/220] tpa6130a2: Add headphone switch control +Subject: [PATCH 081/234] tpa6130a2: Add headphone switch control Signed-off-by: Jan Grulich --- @@ -129026,10 +129026,10 @@ index 11d85c5..3caaa17 100644 /* -From 959618842cac2f89aca253058941864fc09453de Mon Sep 17 00:00:00 2001 +From 381630753b8967478d2a95f51db08bd451b3063a Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 28 Sep 2015 23:38:59 +0100 -Subject: [PATCH 082/220] irq-bcm2835: Fix building with 2708 +Subject: [PATCH 082/234] irq-bcm2835: Fix building with 2708 --- drivers/irqchip/irq-bcm2835.c | 3 ++- @@ -129057,10 +129057,10 @@ index 20deb28..c02bf8a 100644 } init_FIQ(FIQ_START); -From eab058f164321b98332847fd7e33ce76a416b953 Mon Sep 17 00:00:00 2001 +From b2703a8df5d90bf399e23828a0a423b6ec1d0cba Mon Sep 17 00:00:00 2001 From: P33M Date: Wed, 21 Oct 2015 14:55:21 +0100 -Subject: [PATCH 083/220] rpi_display: add backlight driver and overlay +Subject: [PATCH 083/234] 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 @@ -129328,10 +129328,10 @@ index 525816d..b011489 100644 RPI_FIRMWARE_VCHIQ_INIT = 0x00048010, -From 265b00fd10fd38d5fc40057f0dc9a27f9e643f13 Mon Sep 17 00:00:00 2001 +From 802d883971b550c25165c1fb86ff5f8122a9614b Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Mon, 16 Nov 2015 14:05:35 +0000 -Subject: [PATCH 084/220] bcm2835-dma: Fix up convert to DMA pool +Subject: [PATCH 084/234] bcm2835-dma: Fix up convert to DMA pool --- drivers/dma/bcm2835-dma.c | 36 ++++++++++++++++++++++++++---------- @@ -129416,10 +129416,10 @@ index 0adc347..985019b 100644 /* Next block is empty. */ control_block->next = 0; -From 4b0129fc722f7157ef9a0bd717f796b33582f009 Mon Sep 17 00:00:00 2001 +From ee13bd5c60aeca7fd55cd1a68d5007421fd5be67 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 11 Nov 2015 11:38:59 +0000 -Subject: [PATCH 085/220] scripts: Multi-platform support for mkknlimg and +Subject: [PATCH 085/234] scripts: Multi-platform support for mkknlimg and knlinfo The firmware uses tags in the kernel trailer to choose which dtb file @@ -129668,10 +129668,10 @@ index 3998d43..005f404 100755 - return (($val eq 'y') || ($val eq '1')); -} -From a015d1fdd7a5313ba90af71ff370fe0b7625ef1c Mon Sep 17 00:00:00 2001 +From 62f21e00ac669231c5a9ba3e73e45d68e4e9ccb7 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 2 Mar 2015 13:01:12 -0800 -Subject: [PATCH 086/220] drm/vc4: Add suport for 3D rendering using the V3D +Subject: [PATCH 086/234] drm/vc4: Add suport for 3D rendering using the V3D engine. This is a squash of the out-of-tree development series. Since that @@ -135276,10 +135276,10 @@ index 0000000..499daae + +#endif /* _UAPI_VC4_DRM_H_ */ -From 2a2d56e55de5ced7d01cb4db7a80bdcdccd3f2c4 Mon Sep 17 00:00:00 2001 +From 730955cd10b747167ce0315ca1f65af5446d3f61 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Wed, 14 Oct 2015 11:32:14 -0700 -Subject: [PATCH 087/220] drm/vc4: Force HDMI to connected. +Subject: [PATCH 087/234] drm/vc4: Force HDMI to connected. For some reason on the downstream tree, the HPD GPIO isn't working. @@ -135302,10 +135302,10 @@ index da9a36d..d15c529 100644 if (gpio_get_value(vc4->hdmi->hpd_gpio)) return connector_status_connected; -From ca205a3bef8b9c080363a12148a3e6f013081b8a Mon Sep 17 00:00:00 2001 +From dc6c82b433488ea27069410bb1d95e1b4855e854 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 19 Oct 2015 08:23:18 -0700 -Subject: [PATCH 088/220] drm/vc4: bo cache locking fixes. +Subject: [PATCH 088/234] drm/vc4: bo cache locking fixes. Signed-off-by: Eric Anholt --- @@ -135454,10 +135454,10 @@ index 8cc89d1..c079b82 100644 /* Sequence number for the last job queued in job_list. * Starts at 0 (no jobs emitted). -From e8481325c7efc10d87d62cafc3b0c4495cef1dd5 Mon Sep 17 00:00:00 2001 +From 114a74d272f9c13744574ff1ab1c84db68b5824c Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 19 Oct 2015 08:29:41 -0700 -Subject: [PATCH 089/220] drm/vc4: bo cache locking cleanup. +Subject: [PATCH 089/234] drm/vc4: bo cache locking cleanup. Signed-off-by: Eric Anholt --- @@ -135549,10 +135549,10 @@ index af0fde6..acd360c 100644 static void vc4_bo_cache_time_timer(unsigned long data) -From f8c7534d294a7b6ca6c91075d9b0b09b6e980a6c Mon Sep 17 00:00:00 2001 +From 14ca113d8c53efafbd5af98c4d37210873302b18 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 19 Oct 2015 08:32:24 -0700 -Subject: [PATCH 090/220] drm/vc4: Use job_lock to protect seqno_cb_list. +Subject: [PATCH 090/234] drm/vc4: Use job_lock to protect seqno_cb_list. We're (mostly) not supposed to be using struct_mutex in drivers these days. @@ -135606,10 +135606,10 @@ index 361390b..b1853b2 100644 return ret; } -From d49c98713ffe0b1a3d8b8007b8257022f7d6323b Mon Sep 17 00:00:00 2001 +From 4c95c3951ee48334fba5c60c17612c2955372d2a Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 19 Oct 2015 08:44:35 -0700 -Subject: [PATCH 091/220] drm/vc4: Drop struct_mutex around CL validation. +Subject: [PATCH 091/234] drm/vc4: Drop struct_mutex around CL validation. We were using it so that we could make sure that shader validation state didn't change while we were validating, but now shader @@ -135672,10 +135672,10 @@ index b1853b2..32f375a 100644 } -From 682d611be0b0f07eae31a1eb4815d94adccd7d9c Mon Sep 17 00:00:00 2001 +From a7e0e7e5878fe920c674abb567159c07673ca118 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 19 Oct 2015 08:44:35 -0700 -Subject: [PATCH 092/220] drm/vc4: Drop struct_mutex around CL validation. +Subject: [PATCH 092/234] drm/vc4: Drop struct_mutex around CL validation. We were using it so that we could make sure that shader validation state didn't change while we were validating, but now shader @@ -135749,10 +135749,10 @@ index 32f375a..55551ea 100644 return ret; } -From cbe583e0c4f78ec7ee058b3fed31cc312e08fdb1 Mon Sep 17 00:00:00 2001 +From 466cf8e66d585dc067b4a7b6a43992abb469df9f Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Tue, 20 Oct 2015 13:59:15 +0100 -Subject: [PATCH 093/220] drm/vc4: Add support for more display plane formats. +Subject: [PATCH 093/234] drm/vc4: Add support for more display plane formats. Signed-off-by: Eric Anholt --- @@ -135787,10 +135787,10 @@ index 65e5455..0f85eb5 100644 static const struct hvs_format *vc4_get_hvs_format(u32 drm_format) -From 06bd9769b3230b383894c73906efb804861823e9 Mon Sep 17 00:00:00 2001 +From 3d670774388611d6a536e68e6e37e6639c3782b9 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Fri, 23 Oct 2015 12:31:56 +0100 -Subject: [PATCH 094/220] drm/vc4: No need to stop the stopped threads. +Subject: [PATCH 094/234] drm/vc4: No need to stop the stopped threads. This was leftover debug code from the hackdriver. We never submit unless the thread is already idle. @@ -135816,10 +135816,10 @@ index 55551ea..eeb0925 100644 barrier(); -From b13e80df9779eb71b316db4bd63e9cc4dbbe1221 Mon Sep 17 00:00:00 2001 +From 09bea25699571cffdb44d00c1b1a25d82284c1d4 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Fri, 23 Oct 2015 12:33:43 +0100 -Subject: [PATCH 095/220] drm/vc4: Remove extra barrier()s aroudn CTnCA/CTnEA +Subject: [PATCH 095/234] drm/vc4: Remove extra barrier()s aroudn CTnCA/CTnEA setup. The writel() that these expand to already does barriers. @@ -135852,10 +135852,10 @@ index eeb0925..0cea723 100644 int -From 54aab1fc2b80dbb3a1d26bda40bf0072c8b6e9b3 Mon Sep 17 00:00:00 2001 +From 326f7bdb649e45e334296a773cf3a64061186b35 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Fri, 23 Oct 2015 14:57:22 +0100 -Subject: [PATCH 096/220] drm/vc4: Fix a typo in a V3D debug register. +Subject: [PATCH 096/234] drm/vc4: Fix a typo in a V3D debug register. Signed-off-by: Eric Anholt --- @@ -135890,10 +135890,10 @@ index b9cb7cf..cf35f58 100644 REGDEF(V3D_FDBGB), REGDEF(V3D_FDBGR), -From e24ed8459d7ceb69f4b2bb1b110316fd66d70156 Mon Sep 17 00:00:00 2001 +From 4b67a9e16b70a7bf3fa151dcffc5b94e30be985b Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 2 Nov 2015 17:07:33 +0000 -Subject: [PATCH 097/220] drm/vc4: Enable VC4 modules, and increase CMA size +Subject: [PATCH 097/234] drm/vc4: Enable VC4 modules, and increase CMA size with overlay If using the overlay, be careful not to boot to GUI or run startx, @@ -136053,10 +136053,10 @@ index 146add9..d6aa058 100644 CONFIG_FB_BCM2708=y CONFIG_FB_UDL=m -From a1f76174a22bad4e7dab94718e30df2458b7e59a Mon Sep 17 00:00:00 2001 +From 8d63e6f4ff2e2d8b65f5af4bd507a9cca1608325 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 18 Nov 2015 18:29:58 +0000 -Subject: [PATCH 098/220] squash: fixups +Subject: [PATCH 098/234] squash: fixups --- drivers/gpu/drm/vc4/Kconfig | 2 +- @@ -136103,10 +136103,10 @@ index c83287a..2082713 100644 drm_atomic_helper_commit_modeset_enables(dev, state); -From c302ddb4c02a7f7459d0ce5d9abdfb01c322d82e Mon Sep 17 00:00:00 2001 +From cfdc9afe86512c58e1175f1744b3eb4872eac05d Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 18 Nov 2015 20:26:03 +0000 -Subject: [PATCH 099/220] squash: add missing vc4-kms-v3d-overlay.dtb to +Subject: [PATCH 099/234] squash: add missing vc4-kms-v3d-overlay.dtb to makefile --- @@ -136126,10 +136126,10 @@ index fb7ac49..fc09bfb 100644 dtb-$(RPI_DT_OVERLAYS) += w1-gpio-overlay.dtb dtb-$(RPI_DT_OVERLAYS) += w1-gpio-pullup-overlay.dtb -From dd4882f9fbce68acd27f04792805473ae2bfb417 Mon Sep 17 00:00:00 2001 +From 3199b5f30db4ac952b1edc14c395150f1862d4fd Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 12 Oct 2015 11:23:34 -0700 -Subject: [PATCH 100/220] clk: bcm2835: Also build the driver for downstream +Subject: [PATCH 100/234] clk: bcm2835: Also build the driver for downstream kernels. Signed-off-by: Eric Anholt @@ -136151,10 +136151,10 @@ index 3fc9506..a1b4cbc 100644 obj-$(CONFIG_ARCH_BCM_CYGNUS) += clk-cygnus.o obj-$(CONFIG_ARCH_BCM_NSP) += clk-nsp.o -From 5462b88624200a29baca5adaef048d3dbc4626e7 Mon Sep 17 00:00:00 2001 +From 18b004997924daa2670a41daf8f99645fa306000 Mon Sep 17 00:00:00 2001 From: Holger Steinhaus Date: Sat, 14 Nov 2015 18:37:43 +0100 -Subject: [PATCH 101/220] dts: Added overlay for gpio_ir_recv driver +Subject: [PATCH 101/234] dts: Added overlay for gpio_ir_recv driver --- arch/arm/boot/dts/overlays/Makefile | 1 + @@ -136263,10 +136263,10 @@ index 0000000..a2d6bc7 + }; +}; -From 83785d0e067305676bcf0f7f80ca87022263937b Mon Sep 17 00:00:00 2001 +From 4e046619d2140c6e63c5d06e3c98c12ccb979a01 Mon Sep 17 00:00:00 2001 From: Alistair Buxton Date: Sun, 1 Nov 2015 22:27:56 +0000 -Subject: [PATCH 102/220] Build i2c_gpio module and add a device tree overlay +Subject: [PATCH 102/234] Build i2c_gpio module and add a device tree overlay to configure it. --- @@ -136375,10 +136375,10 @@ index d6aa058..51dc019 100644 CONFIG_SPI_BCM2835=m CONFIG_SPI_SPIDEV=y -From 1c711a92bac72da22ac8ea9623991ebc4ba9f990 Mon Sep 17 00:00:00 2001 +From e76a0190ca7aef27bc9cb71fa5973e34c5e74651 Mon Sep 17 00:00:00 2001 From: mwilliams03 Date: Sun, 18 Oct 2015 17:07:24 -0700 -Subject: [PATCH 103/220] New overlay for PiScreen2r +Subject: [PATCH 103/234] New overlay for PiScreen2r --- arch/arm/boot/dts/overlays/Makefile | 1 + @@ -136531,10 +136531,10 @@ index 0000000..7c018e0 +}; + -From 846de308457febf0a988a7d1fcb416103771810c Mon Sep 17 00:00:00 2001 +From 037e1879901fcb2be1344d5775c0685ead051b1a Mon Sep 17 00:00:00 2001 From: Ondrej Wisniewski Date: Fri, 6 Nov 2015 15:01:28 +0100 -Subject: [PATCH 104/220] dts: Added overlay for Adafruit PiTFT 2.8" capacitive +Subject: [PATCH 104/234] dts: Added overlay for Adafruit PiTFT 2.8" capacitive touch screen --- @@ -136684,10 +136684,10 @@ index 0000000..48920e9 + }; +}; -From cd601889aedcb4d49590fc91d5c2988cad2e6d85 Mon Sep 17 00:00:00 2001 +From ad77c59223d9ff5f68f52275fa02268e3fcbcea1 Mon Sep 17 00:00:00 2001 From: Stuart MacLean Date: Fri, 2 Oct 2015 15:12:59 +0100 -Subject: [PATCH 105/220] Add support for the HiFiBerry DAC+ Pro. +Subject: [PATCH 105/234] Add support for the HiFiBerry DAC+ Pro. The HiFiBerry DAC+ and DAC+ Pro products both use the existing bcm sound driver with the DAC+ Pro having a special clock device driver representing the two high precision oscillators. @@ -137235,10 +137235,10 @@ index 047c489..090fe0e 100644 dev_err(dev, "No LRCLK?\n"); return -EINVAL; -From 7a6f317933c0a1319bbf955fd705cc0fa33364a5 Mon Sep 17 00:00:00 2001 +From 832f1f8854b159b771a1dd5602793f4ddeb531f0 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 5 Oct 2015 10:47:45 +0100 -Subject: [PATCH 106/220] BCM270X_DT: Add at86rf233 overlay +Subject: [PATCH 106/234] BCM270X_DT: Add at86rf233 overlay Add an overlay to support the Atmel AT86RF233 WPAN transceiver on spi0.0. @@ -137373,10 +137373,10 @@ index 0000000..0460269 + }; +}; -From e8bb4b5844abce1cdb3911c6904931687b401e6d Mon Sep 17 00:00:00 2001 +From 91fa81779b1f5d1f8bd2caf180676a794c813eb1 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Thu, 18 Dec 2014 16:07:15 -0800 -Subject: [PATCH 107/220] mm: Remove the PFN busy warning +Subject: [PATCH 107/234] mm: Remove the PFN busy warning See commit dae803e165a11bc88ca8dbc07a11077caf97bbcb -- the warning is expected sometimes when using CMA. However, that commit still spams @@ -137388,10 +137388,10 @@ Signed-off-by: Eric Anholt 1 file changed, 2 deletions(-) diff --git a/mm/page_alloc.c b/mm/page_alloc.c -index 9d666df..b682acc 100644 +index c69531a..dc484d3 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c -@@ -6760,8 +6760,6 @@ int alloc_contig_range(unsigned long start, unsigned long end, +@@ -6780,8 +6780,6 @@ int alloc_contig_range(unsigned long start, unsigned long end, /* Make sure the range is really isolated. */ if (test_pages_isolated(outer_start, end, false)) { @@ -137401,10 +137401,10 @@ index 9d666df..b682acc 100644 goto done; } -From f856eef0133f2109a85b25cf6129479578c3bde2 Mon Sep 17 00:00:00 2001 +From 1615d4ace228c85f2b188d4fc7b2f0a8a0e18ae1 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Wed, 19 Nov 2014 12:06:38 -0800 -Subject: [PATCH 108/220] drm: Put an optional field in the driver struct for +Subject: [PATCH 108/234] drm: Put an optional field in the driver struct for GEM obj struct size. This allows a driver to derive from the CMA object without copying all @@ -137446,10 +137446,10 @@ index 0a271ca..54f5469 100644 int num_ioctls; const struct file_operations *fops; -From 95aeeb5d4186e0727d7d6b50bc614fdf470e55bd Mon Sep 17 00:00:00 2001 +From 63e2a58b2213550f7233563ed132f32e6b1ab866 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Fri, 30 Oct 2015 10:09:02 -0700 -Subject: [PATCH 109/220] drm/vc4: Add an interface for capturing the GPU state +Subject: [PATCH 109/234] drm/vc4: Add an interface for capturing the GPU state after a hang. This can be parsed with vc4-gpu-tools tools for trying to figure out @@ -137790,10 +137790,10 @@ index 499daae..4a8d19f 100644 + #endif /* _UAPI_VC4_DRM_H_ */ -From 7278374ce28d2cd82d233e8aec4c9068c36ce82f Mon Sep 17 00:00:00 2001 +From 43fa373eaca4fa25761ce66ff2a282d1e6cd163e Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Fri, 4 Dec 2015 11:35:34 -0800 -Subject: [PATCH 110/220] drm/vc4: Update a bunch of code to match upstream +Subject: [PATCH 110/234] drm/vc4: Update a bunch of code to match upstream submission. This gets almost everything matching, except for the MSAA support and @@ -139713,10 +139713,10 @@ index 54f5469..987c25a 100644 int num_ioctls; const struct file_operations *fops; -From ca8ee4d96868132b2a5aa571dd682c498af9df99 Mon Sep 17 00:00:00 2001 +From e7ddfe837c680dc154a0e50e6bead26de19c7953 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Fri, 11 Dec 2015 19:45:03 -0800 -Subject: [PATCH 111/220] drm: Use the driver's gem_object_free function from +Subject: [PATCH 111/234] drm: Use the driver's gem_object_free function from CMA helpers. VC4 wraps the CMA objects in its own structures, so it needs to do its @@ -139777,10 +139777,10 @@ index 0f7b00b..e5df53b 100644 return ERR_PTR(ret); } -From 7a514565486b690808d3b7cef20a59cd61c5936e Mon Sep 17 00:00:00 2001 +From 246b87d77b04074fc59517b99da4479aa7f5cf86 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Fri, 17 Jul 2015 13:15:50 -0700 -Subject: [PATCH 112/220] drm/vc4: Add support for MSAA rendering. +Subject: [PATCH 112/234] drm/vc4: Add support for MSAA rendering. For MSAA, you set a bit in the binner that halves the size of tiles in each direction, so you can pack 4 samples per pixel in the tile @@ -140304,10 +140304,10 @@ index 4a8d19f..49cd992 100644 uint32_t clear_z; uint8_t clear_s; -From 495d61b459efb475fe3b4b8dd170cece45943a3d Mon Sep 17 00:00:00 2001 +From 5332f64a451df183c738c0ae1ff9788ff85c9fa7 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Tue, 8 Dec 2015 14:00:43 -0800 -Subject: [PATCH 113/220] drm/vc4: A few more non-functional changes to sync to +Subject: [PATCH 113/234] drm/vc4: A few more non-functional changes to sync to upstream. At this point all that's left is the force-enable of HDMI connector, @@ -140651,10 +140651,10 @@ index 49cd992..eeb37e3 100644 #endif /* _UAPI_VC4_DRM_H_ */ -From 6062beb756ae5a95f1dd224977839f0e039fd8a6 Mon Sep 17 00:00:00 2001 +From fc05e310790b52529e29028e9f42712873c1c1fe Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Tue, 15 Dec 2015 23:46:32 +0000 -Subject: [PATCH 114/220] drm/vc4: Use "hpd-gpios" for HDMI GPIO, like what +Subject: [PATCH 114/234] drm/vc4: Use "hpd-gpios" for HDMI GPIO, like what landed upstream. Signed-off-by: Eric Anholt @@ -140676,10 +140676,10 @@ index cf5d5c9..da37483 100644 <&cprman BCM2835_CLOCK_HSM>; clock-names = "pixel", "hdmi"; -From faba9403c11d146bed41008f4d499f8a7bc976af Mon Sep 17 00:00:00 2001 +From 96acf7d2b12a0e270c669a3b8dbeb3b34795284a Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 7 Dec 2015 12:35:01 -0800 -Subject: [PATCH 115/220] drm/vc4: Synchronize validation code for v2 +Subject: [PATCH 115/234] drm/vc4: Synchronize validation code for v2 submission upstream. Signed-off-by: Eric Anholt @@ -141296,10 +141296,10 @@ index 2f22f19..0fb5b99 100644 return ret; } -From ea387e5f3e007f44c7ad197b3459238b673e01be Mon Sep 17 00:00:00 2001 +From 4b68e80c46f80c31384ee5e56acb968edd6ad7f7 Mon Sep 17 00:00:00 2001 From: janluca Date: Sun, 27 Dec 2015 14:34:04 +0100 -Subject: [PATCH 116/220] MMC: Do not use mmc_debug if CONFIG_MMC_BCM2835 is +Subject: [PATCH 116/234] MMC: Do not use mmc_debug if CONFIG_MMC_BCM2835 is not set If CONFIG_MMC_BCM2835 was not set the compiling of the kernel failed @@ -141336,10 +141336,10 @@ index 87ae2e9..b79fe14 100644 } EXPORT_SYMBOL(mmc_fixup_device); -From dd859db6e150624692719e6b3eb94af686350414 Mon Sep 17 00:00:00 2001 +From 5c3ab466619cbcfd96b70baf8cd906d61d80bc70 Mon Sep 17 00:00:00 2001 From: Devon Fyson Date: Wed, 30 Dec 2015 16:40:47 -0500 -Subject: [PATCH 117/220] Extend clock timeout, fix modprobe baudrate +Subject: [PATCH 117/234] Extend clock timeout, fix modprobe baudrate parameter. Set the BSC_CLKT clock streching timeout to 35ms as per SMBus specs.\n- Increase priority of baudrate parameter passed to modprobe (in /etc/modprobe.d/*.conf or command line). Currently custom baudrates don't work because they are overridden by clock-frequency in the platform_device passed to the function. @@ -141447,10 +141447,10 @@ index 85f411c..b152639 100644 dev_info(&pdev->dev, "BSC%d Controller at 0x%08lx (irq %d) (baudrate %d)\n", pdev->id, (unsigned long)regs->start, irq, baudrate); -From 43719e41a45ad4d3e421fe1ddf78e27422befbda Mon Sep 17 00:00:00 2001 +From 1f5a6afed627adfed60b98c81b11e17ea1dd2254 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Thu, 31 Dec 2015 16:44:58 +0100 -Subject: [PATCH 118/220] bcm270x_dt: Add dwc2 and dwc-otg overlays +Subject: [PATCH 118/234] bcm270x_dt: Add dwc2 and dwc-otg overlays --- arch/arm/boot/dts/overlays/Makefile | 2 ++ @@ -141568,10 +141568,10 @@ index 0000000..90c9811 + }; +}; -From ec1679965feef848b8b0e6066f03d8fba01abe9c Mon Sep 17 00:00:00 2001 +From 5f7d31ed88d778829a00ead2c3ce6058e8428cae Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 4 Jan 2016 14:42:17 +0000 -Subject: [PATCH 119/220] BCM270X_DT: Add the sdtweak overlay, for tuning +Subject: [PATCH 119/234] BCM270X_DT: Add the sdtweak overlay, for tuning sdhost The sdhost overlay declares the sdhost interface and allows parameters @@ -141650,10 +141650,10 @@ index 0000000..74c168d + }; +}; -From 275052b001c067a064e516f8268f58885bf835cc Mon Sep 17 00:00:00 2001 +From 18ada5eca56619ab579dd6c65e53d00e9c5a736b Mon Sep 17 00:00:00 2001 From: Andrew Litt Date: Mon, 11 Jan 2016 07:54:21 +0000 -Subject: [PATCH 120/220] bcm2835-mmc: Don't override bus width capabilities +Subject: [PATCH 120/234] bcm2835-mmc: Don't override bus width capabilities from devicetree Take out the force setting of the MMC_CAP_4_BIT_DATA host capability @@ -141677,10 +141677,10 @@ index 43aed6e..104f93e 100644 mmc->caps2 |= MMC_CAP2_SDIO_IRQ_NOTHREAD; -From 9d44aa6fb5dd55e9bcaa8423e0e16a484ff5c773 Mon Sep 17 00:00:00 2001 +From e3155ceee9ab00cab356e6d9f96b018ae7eca51c Mon Sep 17 00:00:00 2001 From: Andrew Litt Date: Mon, 11 Jan 2016 07:55:54 +0000 -Subject: [PATCH 121/220] SDIO-overlay: add bus_width parameter +Subject: [PATCH 121/234] SDIO-overlay: add bus_width parameter Allow setting of the SDIO bus width capability of the bcm2835-mmc host. This is helpful when only a 1 bit wide bus is connected @@ -141724,10 +141724,10 @@ index afc8742..7935e7a 100644 }; }; -From a9243cdee427aceed2240ab4231ee106aad8df74 Mon Sep 17 00:00:00 2001 +From 5bd58d52212f161c84da2662266f07bca2470773 Mon Sep 17 00:00:00 2001 From: wm4 Date: Wed, 13 Jan 2016 19:41:45 +0100 -Subject: [PATCH 122/220] bcm2835: extend allowed range of channels and +Subject: [PATCH 122/234] bcm2835: extend allowed range of channels and samplerates Allow everything the videocore accepts. @@ -141764,10 +141764,10 @@ index 8c86375..31e3131 100755 .period_bytes_min = 1 * 1024, .period_bytes_max = 128 * 1024, -From bfc200a71120b8e2f69cf8ad7fc4c361f0697555 Mon Sep 17 00:00:00 2001 +From 69fa2ce9d89de099868f04720cec37cec024e040 Mon Sep 17 00:00:00 2001 From: wm4 Date: Wed, 13 Jan 2016 19:42:18 +0100 -Subject: [PATCH 123/220] bcm2835: restrict channels*rate to 8*960000 +Subject: [PATCH 123/234] bcm2835: restrict channels*rate to 8*960000 This is required at least for SPDIF. If the bitrate goes above, videocore will either resample the audio or corrupt it due to @@ -141847,10 +141847,10 @@ index 31e3131..b17ed32 100755 chip->opened |= (1 << idx); -From 3a6cc8186dcb6b4a2c789cb7bbb20c0e0499c2f8 Mon Sep 17 00:00:00 2001 +From 29fd7c86e93a48c3cd10ab22f2c794cd946b38ef Mon Sep 17 00:00:00 2001 From: wm4 Date: Wed, 13 Jan 2016 19:42:48 +0100 -Subject: [PATCH 124/220] rpi: update vc_vchi_audioserv_defs.h +Subject: [PATCH 124/234] rpi: update vc_vchi_audioserv_defs.h Add audioserv 3 extensions. The changes were taken from the paste linked here: @@ -141916,10 +141916,10 @@ index af3e6eb..5f4409f 100644 +#endif // _VC_AUDIO_DEFS_H_ \ No newline at end of file -From 00c8442a992bff22ce3fe81157910d6d2e93b63b Mon Sep 17 00:00:00 2001 +From b3283c09906705a7234676beff768e1f9fcb19b4 Mon Sep 17 00:00:00 2001 From: wm4 Date: Wed, 13 Jan 2016 19:43:12 +0100 -Subject: [PATCH 125/220] bcm2835: implement channel map API +Subject: [PATCH 125/234] bcm2835: implement channel map API Report all layouts supported by the HDMI protocol to userspace. Make the videocore set the correct layout according to the @@ -142346,10 +142346,10 @@ index 0f71c5d..997fb69 100755 int bcm2835_audio_close(bcm2835_alsa_stream_t * alsa_stream); int bcm2835_audio_set_params(bcm2835_alsa_stream_t * alsa_stream, -From 49fad443a79e7ada4ef59e12aa750961facf82ad Mon Sep 17 00:00:00 2001 +From 96c6db5e6de3afcd7b8d88d3d8fd663423706d25 Mon Sep 17 00:00:00 2001 From: wm4 Date: Wed, 13 Jan 2016 19:43:35 +0100 -Subject: [PATCH 126/220] bcm2835: access controls under the audio mutex +Subject: [PATCH 126/234] bcm2835: access controls under the audio mutex I don't think the ALSA framework provides any kind of automatic synchronization within the control callbacks. We most likely need @@ -142588,10 +142588,10 @@ index 1067460..48da3bb 100755 return 0; } -From 74dd5403957ba3601438bced4a7d78a2c1fd04bd Mon Sep 17 00:00:00 2001 +From 0ac97ee604b5488d21417c16eadc03005ef848e2 Mon Sep 17 00:00:00 2001 From: wm4 Date: Wed, 13 Jan 2016 19:44:03 +0100 -Subject: [PATCH 127/220] bcm2835: always use 2/4/8 channels for multichannel +Subject: [PATCH 127/234] bcm2835: always use 2/4/8 channels for multichannel layouts Pad the unused channels with NA. This means userspace needs to write @@ -142730,10 +142730,10 @@ index 5b8e6bd..dec052b 100755 }; -From 95bd31380c7ffb1e5cff735bd88e9f9691535dfa Mon Sep 17 00:00:00 2001 +From e030b22f402a99a3b63c0bacbb50beffe316c473 Mon Sep 17 00:00:00 2001 From: wm4 Date: Wed, 13 Jan 2016 19:44:24 +0100 -Subject: [PATCH 128/220] bcm2835: only allow stereo if analogue jack is +Subject: [PATCH 128/234] bcm2835: only allow stereo if analogue jack is selected Sending more than 2 channels to videocore while outputting to analogue @@ -142795,10 +142795,10 @@ index dec052b..e930718 100755 for (x = 0; x < substream->runtime->channels; x++) { int sp = ucontrol->value.integer.value[x]; -From cbc5b12c5730e1a2396e737a3d23978f308b3596 Mon Sep 17 00:00:00 2001 +From 3ac0c0dc4bce4aceb42c68fb5652c52c61bd8fb4 Mon Sep 17 00:00:00 2001 From: wm4 Date: Wed, 13 Jan 2016 19:44:47 +0100 -Subject: [PATCH 129/220] bcm2835: interpolate audio delay +Subject: [PATCH 129/234] bcm2835: interpolate audio delay It appears the GPU only sends us a message all 10ms to update the playback progress. Other than this, the playback position @@ -142890,10 +142890,10 @@ index 997fb69..20ef108 100755 uint32_t enable_fifo_irq; irq_handler_t fifo_irq_handler; -From 9384914ddb90620248e22cade8a42951aa656dec Mon Sep 17 00:00:00 2001 +From a442aa73f934181904d8d33abbe18578aa197f6e Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 19 Jan 2016 17:16:38 +0000 -Subject: [PATCH 130/220] bcm2835-sdhost: Add workaround for odd behaviour on +Subject: [PATCH 130/234] bcm2835-sdhost: Add workaround for odd behaviour on some cards For reasons not understood, the sdhost driver fails when reading @@ -143030,10 +143030,10 @@ index da08998..309633c 100644 } -From e26a12cf41c4c4e4a993708b3251fb964de7f1c6 Mon Sep 17 00:00:00 2001 +From 6ac321e20227b0361e650f751e0b3b2906e1ae02 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 22 Jan 2016 16:03:24 +0000 -Subject: [PATCH 131/220] bcm2835-sdhost: Add debug_flags dtparam +Subject: [PATCH 131/234] bcm2835-sdhost: Add debug_flags dtparam Bit zero disables the single-read-sectors map: @@ -143157,10 +143157,10 @@ index 309633c..ef9b1e6 100644 if (node) { host->dma_chan_tx = -From ee03a11c1190604888fecd077b83b61899f2876e Mon Sep 17 00:00:00 2001 +From 72b03ddd9d4fb66065ea28b6d97f019c7bcc85bc Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 25 Jan 2016 09:12:06 +0000 -Subject: [PATCH 132/220] BCM270X_DT: Add sdio_overclock parameter to sdio +Subject: [PATCH 132/234] BCM270X_DT: Add sdio_overclock parameter to sdio overlay The sdio_overclock parameter is like the overclock_50 parameter, i.e. @@ -143231,10 +143231,10 @@ index 7935e7a..398bd81 100644 }; }; -From a5f0a2e15ae5d6012aaf28087e4a7460599be817 Mon Sep 17 00:00:00 2001 +From 5f7c000de9e55ad3bf6e3dcae31343bbec2c1724 Mon Sep 17 00:00:00 2001 From: Michael Lange Date: Thu, 21 Jan 2016 18:10:16 +0100 -Subject: [PATCH 133/220] rtc: ds1307: add support for the DT property +Subject: [PATCH 133/234] rtc: ds1307: add support for the DT property 'wakeup-source' For RTC chips with no IRQ directly connected to the SoC, the RTC chip @@ -143328,10 +143328,10 @@ index 1cb13fe..28ca4bf 100644 err = devm_request_threaded_irq(&client->dev, client->irq, NULL, irq_handler, -From 6e362fc24cc878bdc05587a65e1a4c29f6839cb6 Mon Sep 17 00:00:00 2001 +From 65d99e381d375d6dc8da36b19261dcd265876ed8 Mon Sep 17 00:00:00 2001 From: vitalogy Date: Tue, 19 Jan 2016 07:02:02 +0100 -Subject: [PATCH 134/220] dt-overlay: add wittypi-overlay.dts +Subject: [PATCH 134/234] dt-overlay: add wittypi-overlay.dts --- arch/arm/boot/dts/overlays/wittypi-overlay.dts | 44 ++++++++++++++++++++++++++ @@ -143389,10 +143389,10 @@ index 0000000..be5987d + +}; -From f006101804897fc9da5d6a5d45fcf2f871325189 Mon Sep 17 00:00:00 2001 +From 182d80ba104dcd33de5a9a517e214890e5b3d71f Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 19 Jan 2016 16:28:05 +0000 -Subject: [PATCH 135/220] FIXUP i2c_bcm2708: Don't change module baudrate +Subject: [PATCH 135/234] FIXUP i2c_bcm2708: Don't change module baudrate parameter Overwriting the baudrate module parameter creates an apparent @@ -143491,10 +143491,10 @@ index b152639..c9b8e5c 100644 return 0; -From 47cf0578d6686f32a1385a6821a2d4fe6652cdd0 Mon Sep 17 00:00:00 2001 +From ecbb995a27f844890cb596f55b6c162bd503c3c1 Mon Sep 17 00:00:00 2001 From: Digital Dreamtime Date: Thu, 4 Feb 2016 14:14:44 +0000 -Subject: [PATCH 136/220] Allow up to 24dB digital gain to be applied when +Subject: [PATCH 136/234] Allow up to 24dB digital gain to be applied when using IQAudIO DAC+ 24db_digital_gain DT param can be used to specify that PCM512x @@ -143597,10 +143597,10 @@ index 37038d4..124d7a9 100644 ret = snd_soc_register_card(&snd_rpi_iqaudio_dac); -From 7e2dcd8334b6eacd2f1a2cf4c6f2059ad1617be5 Mon Sep 17 00:00:00 2001 +From 2b5de011997270039c921001eac6a08da664da83 Mon Sep 17 00:00:00 2001 From: Digital Dreamtime Date: Thu, 4 Feb 2016 20:04:00 +0000 -Subject: [PATCH 137/220] Limit PCM512x "Digital" gain to 0dB by default with +Subject: [PATCH 137/234] Limit PCM512x "Digital" gain to 0dB by default with HiFiBerry DAC+ 24db_digital_gain DT param can be used to specify that PCM512x @@ -143702,10 +143702,10 @@ index a6b651c..153dbcd 100644 ret = snd_soc_register_card(&snd_rpi_hifiberry_dacplus); -From c98ef367b9b550f7ed9bd95730d20aee5ae9d9c2 Mon Sep 17 00:00:00 2001 +From 4229a7006381d75e1a79f2b2214811946ef4646d Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 8 Feb 2016 09:46:33 +0000 -Subject: [PATCH 138/220] BCM270X_DT: Adjust overlay README formatting +Subject: [PATCH 138/234] BCM270X_DT: Adjust overlay README formatting --- arch/arm/boot/dts/overlays/README | 414 +++++++++++++++++++------------------- @@ -144434,38 +144434,10 @@ index 296184f..f987565 100644 Troubleshooting -From 335e207701ba241a9e9d834379cd9b96cc42c696 Mon Sep 17 00:00:00 2001 -From: Phil Elwell -Date: Tue, 9 Feb 2016 09:52:13 +0000 -Subject: [PATCH 139/220] pinctrl-bcm2835: Fix cut-and-paste error in "pull" - parsing - -The DT bindings for pinctrl-bcm2835 allow both the function and pull -to contain either one entry or one per pin. However, an error in the -DT parsing can cause failures if the number of pulls differs from the -number of functions. ---- - drivers/pinctrl/bcm/pinctrl-bcm2835.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/drivers/pinctrl/bcm/pinctrl-bcm2835.c b/drivers/pinctrl/bcm/pinctrl-bcm2835.c -index 640e3b0..32f779e 100644 ---- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c -+++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c -@@ -802,7 +802,7 @@ static int bcm2835_pctl_dt_node_to_map(struct pinctrl_dev *pctldev, - } - if (num_pulls) { - err = of_property_read_u32_index(np, "brcm,pull", -- (num_funcs > 1) ? i : 0, &pull); -+ (num_pulls > 1) ? i : 0, &pull); - if (err) - goto out; - err = bcm2835_pctl_dt_node_to_map_pull(pc, np, pin, - -From 0fa4261b8ebb18c2c8f4424b65c9ccbb67160c0f Mon Sep 17 00:00:00 2001 +From 5187f0c81288df33fb8aa9950fe2df568600b238 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 11 Feb 2016 16:51:01 +0000 -Subject: [PATCH 140/220] bcm2835-sdhost: Major revision +Subject: [PATCH 139/234] bcm2835-sdhost: Major revision This is a significant revision of the bcm2835-sdhost driver. It improves on the original in a number of ways: @@ -146534,10 +146506,10 @@ index ef9b1e6..262180b 100644 .probe = bcm2835_sdhost_probe, .remove = bcm2835_sdhost_remove, -From d243f0173dc4f7f61979272fec65d70abe9cab76 Mon Sep 17 00:00:00 2001 +From a89d94f78da2a6e4c2df2a8206ed61d841143161 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 12 Feb 2016 15:38:00 +0000 -Subject: [PATCH 141/220] BCM270X_DT: Add dtparams for the SD interface +Subject: [PATCH 140/234] BCM270X_DT: Add dtparams for the SD interface Add new base dtparams sd_overclock, sd_force_pio, sd_pio_limit and sd_debug. @@ -146790,10 +146762,10 @@ index b0b208c..e4a4677 100644 }; }; -From 75c60d3c472b2f63a364b83b5aeb8b2c8f228e86 Mon Sep 17 00:00:00 2001 +From 050e65853a2a95ba2835a85f5b79e722a768a3ff Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 12 Feb 2016 14:50:25 +0000 -Subject: [PATCH 142/220] dcw_otg: trim xfer length when buffer larger than +Subject: [PATCH 141/234] dcw_otg: trim xfer length when buffer larger than allocated size is received --- @@ -146830,10 +146802,10 @@ index 8db3dfc..d672a76 100644 if (hc->align_buff && bytes_transferred && hc->ep_is_in) { dwc_memcpy(urb->buf + urb->actual_length, hc->qh->dw_align_buf, -From 45d3be195a6547d98e9d1979b9dff4b6e25f3511 Mon Sep 17 00:00:00 2001 +From 517b68ff48633e45cf1179e75bdcb5cd92caa470 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 15 Feb 2016 10:00:27 +0000 -Subject: [PATCH 143/220] bcm2835-sdhost: Restore ATOMIC flag to PIO sg mapping +Subject: [PATCH 142/234] bcm2835-sdhost: Restore ATOMIC flag to PIO sg mapping Allocation problems have been seen in a wireless driver, and this is the only change which might have been responsible. @@ -146865,10 +146837,10 @@ index 262180b..d66385c 100644 host->blocks = data->blocks; } -From 4bca411d6d79bb963a99b0f344d2e166ea387b1b Mon Sep 17 00:00:00 2001 +From 4b95330d1365c7045e283b0c0cb5f5d93a136dea Mon Sep 17 00:00:00 2001 From: Craig Roberts Date: Tue, 16 Feb 2016 10:03:42 +0000 -Subject: [PATCH 144/220] Updated smsc95xx driver to check for a valid MAC +Subject: [PATCH 143/234] Updated smsc95xx driver to check for a valid MAC address in eeprom before using smsc95xx.macaddr parameter passed on command line. @@ -146908,10 +146880,10 @@ index 3244a90..7483222 100755 netif_dbg(dev, ifup, dev->net, "MAC address set to eth_random_addr\n"); } -From 49c7acf19713e3b277e75564c9adf11c8837b7cb Mon Sep 17 00:00:00 2001 +From f117931be1708330fd5fab0d9f0a99b7c091745d Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 17 Feb 2016 19:02:31 +0000 -Subject: [PATCH 145/220] dcw_otg: Make trimming messages less noisy +Subject: [PATCH 144/234] dcw_otg: Make trimming messages less noisy --- drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c | 6 ++++-- @@ -146942,10 +146914,10 @@ index d672a76..e6b38ac 100644 } -From 17daf96d1897ecb234a14166a59a25f89b0b3691 Mon Sep 17 00:00:00 2001 +From 473fe36c4e0c683b9c41c069f779b58a37a8ab6d Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 18 Feb 2016 15:28:14 +0000 -Subject: [PATCH 146/220] BCM270X_DT: at86rf233 overlay - drop to 3MHz +Subject: [PATCH 145/234] BCM270X_DT: at86rf233 overlay - drop to 3MHz The consensus is that 6MHz is too fast, but that 3MHz is OK. @@ -146983,10 +146955,10 @@ index 0460269..eab4052 100644 }; }; -From 1b5cbad94db73906e9730434f137ca9f09ac8df4 Mon Sep 17 00:00:00 2001 +From 00fe3603a076b0f869f8f6e4cecbaa41e775b134 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 19 Feb 2016 12:04:48 +0000 -Subject: [PATCH 147/220] bcm2835-sdhost: Downgrade log message status +Subject: [PATCH 146/234] bcm2835-sdhost: Downgrade log message status --- drivers/mmc/host/bcm2835-sdhost.c | 4 ++-- @@ -147008,10 +146980,10 @@ index d66385c..4f6cab5 100644 if (!timer_base) pr_err("sdhost: failed to remap timer\n"); -From 6d7968ac9deb4d9e1e1e2f0fdb6ebf587040b1d3 Mon Sep 17 00:00:00 2001 +From 477518bb3f87ec9bbb069aeb96dd1d35c0f7a621 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 15 Jan 2016 16:48:27 +0000 -Subject: [PATCH 148/220] config: Enable HCI over UARTs +Subject: [PATCH 147/234] config: Enable HCI over UARTs --- arch/arm/configs/bcm2709_defconfig | 3 +++ @@ -147046,10 +147018,10 @@ index 51dc019..4368f0d 100644 CONFIG_BT_HCIBPA10X=m CONFIG_BT_HCIBFUSB=m -From c48b71c5495da90df40a5ab608d370a380ee55c7 Mon Sep 17 00:00:00 2001 +From b0252043429f6c50c745f43afc9c231d2961480f Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 17 Dec 2015 13:37:07 +0000 -Subject: [PATCH 149/220] hci_h5: Don't send conf_req when ACTIVE +Subject: [PATCH 148/234] 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. @@ -147072,10 +147044,10 @@ index abee221..2825833 100644 if (H5_HDR_LEN(hdr) > 2) h5->tx_win = (data[2] & 7); -From 9590600fd83051b01b94541bcdbd44126a74c233 Mon Sep 17 00:00:00 2001 +From b564003a5d4ea674a920e2021ab25a0522911543 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 23 Feb 2016 17:26:48 +0000 -Subject: [PATCH 150/220] amba_pl011: Don't use DT aliases for numbering +Subject: [PATCH 149/234] 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 @@ -147104,10 +147076,10 @@ index 899a771..68b3353 100644 uap->old_cr = 0; uap->port.dev = dev; -From 6f9eebcb207c54cc025a0fa03a0a0aec6872bcb1 Mon Sep 17 00:00:00 2001 +From 3dc30aa2b86ef70ffda8a8a5e57ddc653b1fb2d3 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Tue, 15 Dec 2015 15:35:57 -0800 -Subject: [PATCH 151/220] clk: bcm2835: Add bindings for the auxiliary +Subject: [PATCH 150/234] clk: bcm2835: Add bindings for the auxiliary peripheral clock gates. These will be used for enabling UART1, SPI1, and SPI2. @@ -147183,10 +147155,10 @@ index 0000000..d91156e +#define BCM2835_AUX_CLOCK_SPI2 2 +#define BCM2835_AUX_CLOCK_COUNT 3 -From 29fb950e3ba56af92a2183a46555b173cf964674 Mon Sep 17 00:00:00 2001 +From 4334bbc4f8aa283d7e470500bf42b146c0bf2029 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Tue, 15 Dec 2015 15:35:58 -0800 -Subject: [PATCH 152/220] clk: bcm2835: Add a driver for the auxiliary +Subject: [PATCH 151/234] clk: bcm2835: Add a driver for the auxiliary peripheral clock gates. There are a pair of SPI masters and a mini UART that were last minute @@ -147307,10 +147279,10 @@ index 0000000..e4f89e2 +MODULE_DESCRIPTION("BCM2835 auxiliary peripheral clock driver"); +MODULE_LICENSE("GPL v2"); -From 1bf2851444db1c73de9084f05866b2b976136616 Mon Sep 17 00:00:00 2001 +From 4567f48c8cea336f6c69e4244624b504e0e35272 Mon Sep 17 00:00:00 2001 From: Fraser Date: Tue, 23 Feb 2016 10:04:37 +1100 -Subject: [PATCH 153/220] Aux SPI 1&2 implementation +Subject: [PATCH 152/234] Aux SPI 1&2 implementation Adds aux spi 1 & 2 devices to compatible raspberry PIs. * Minor config of the driver build environment to ensure they get built @@ -148040,10 +148012,10 @@ index e842e86..c9d1558 100644 help This selects a driver for the Broadcom BCM2835 SPI aux master. -From f0fc0526b27dfa7e01162255512440f6ca925377 Mon Sep 17 00:00:00 2001 +From 5ff0e7a7d133b1ec4ab95f44bf8575178d3cd8bd Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Tue, 23 Feb 2016 17:28:23 +0100 -Subject: [PATCH 154/220] ASoC: bcm: add missing .owner fields in sound card +Subject: [PATCH 153/234] ASoC: bcm: add missing .owner fields in sound card drivers If snd_soc_card.owner is not set the kernel won't do usage refcounting @@ -148165,10 +148137,10 @@ index c6e45a0..9db678e 100644 .num_links = ARRAY_SIZE(snd_rpi_proto_dai), }; -From 5e4a21532c063cde668062146d4e9736f443a5a2 Mon Sep 17 00:00:00 2001 +From 474200011a4fb8f7174ce074092c4bf83eed5ee6 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 20 Jan 2016 17:50:09 +0000 -Subject: [PATCH 155/220] smsx95xx: Add option to disable the crimes against +Subject: [PATCH 154/234] smsx95xx: Add option to disable the crimes against truesize fix It may improve iperf numbers on Pi 1, but may generate dmesg warnings and possibly cause network issues @@ -148214,10 +148186,10 @@ index 7483222..a61bd08 usbnet_skb_return(dev, ax_skb); } -From 9cc01e6746ad770056575a80e55844828d0f91a5 Mon Sep 17 00:00:00 2001 +From 763d1c355b6995358eb162c8d14414c680ae5397 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 23 Feb 2016 19:56:04 +0000 -Subject: [PATCH 156/220] bcm2835-virtgpio: Virtual GPIO driver +Subject: [PATCH 155/234] bcm2835-virtgpio: Virtual GPIO driver Add a virtual GPIO driver that uses the firmware mailbox interface to request that the VPU toggles LEDs. @@ -148470,10 +148442,10 @@ index b011489..c844968 100644 RPI_FIRMWARE_FRAMEBUFFER_TEST_PHYSICAL_WIDTH_HEIGHT = 0x00044003, RPI_FIRMWARE_FRAMEBUFFER_TEST_VIRTUAL_WIDTH_HEIGHT = 0x00044004, -From 74bf9e6bacea9547dbc61259c5b1fd6c582a09d0 Mon Sep 17 00:00:00 2001 +From 1c56eb666d63752162efc53df92069aec66fdb6d Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 21 Jan 2016 17:57:49 +0000 -Subject: [PATCH 157/220] BCM270X_DT: Add Pi3 support +Subject: [PATCH 156/234] BCM270X_DT: Add Pi3 support --- arch/arm/boot/dts/Makefile | 1 + @@ -148802,10 +148774,10 @@ index 0000000..1a48686 + interrupts = <8>; +}; -From 77f8ba7aa00715d205de661d389c8285eba54cd1 Mon Sep 17 00:00:00 2001 +From 74e67294379f309acfdc52f3594c8c964711a376 Mon Sep 17 00:00:00 2001 From: Dave Stevenson <6by9@users.noreply.github.com> Date: Mon, 8 Feb 2016 23:49:41 +0000 -Subject: [PATCH 158/220] DT: Add overlays to configure I2C pins +Subject: [PATCH 157/234] DT: Add overlays to configure I2C pins Lifted from https://www.raspberrypi.org/forums/viewtopic.php?f=107&t=120938&p=825883 @@ -148947,10 +148919,10 @@ index 0000000..e303b9c + }; +}; -From ff3a72f926b23ea449bc5af9e4b1edc5dd194d3f Mon Sep 17 00:00:00 2001 +From e520168fb0bf9c5beb98703122f21dd6bdf16a73 Mon Sep 17 00:00:00 2001 From: Dhiraj Goel Date: Thu, 3 Mar 2016 21:10:50 -0800 -Subject: [PATCH 159/220] bcm2835-camera: fix a bug in computation of frame +Subject: [PATCH 158/234] bcm2835-camera: fix a bug in computation of frame timestamp Fixes #1318 @@ -148973,10 +148945,10 @@ index e83334c..98a892e 100644 dev->capture.kernel_start_ts.tv_usec + rem; -From 9e60aeea4162ec229e5ebed7b2af695d98309369 Mon Sep 17 00:00:00 2001 +From 0569e24890ce6458b8e89393d81ff912af4518f4 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 2 Mar 2016 10:59:05 +0000 -Subject: [PATCH 160/220] BCM270X_DT: Add pi3-disable-bt overlay +Subject: [PATCH 159/234] BCM270X_DT: Add pi3-disable-bt overlay Disable Bluetooth and restore UART0/ttyAMA0 over GPIOs 14 & 15. To disable the systemd service that initialises the modem so it doesn't use the UART: @@ -149077,10 +149049,10 @@ index 0000000..05403e2 + }; +}; -From 49ee7100969f66f5754c1304b2a5d6dfff5f66c4 Mon Sep 17 00:00:00 2001 +From d2bda5ca90aae84491f8c967122de1b910183837 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 7 Mar 2016 09:53:03 +0000 -Subject: [PATCH 161/220] BCM270X_DT: Add pi3-miniuart-bt DT overlay +Subject: [PATCH 160/234] BCM270X_DT: Add pi3-miniuart-bt DT overlay Switch Pi3 Bluetooth function to use the mini-UART (ttyS0) and restore UART0/ttyAMA0 over GPIOs 14 & 15. Note that this may reduce the maximum @@ -149202,10 +149174,10 @@ index 0000000..ae1292a + }; +}; -From fdcbe65fa8272570e4d8385360c54d6084c527e5 Mon Sep 17 00:00:00 2001 +From 612299645d40261b3ad51c1be30abf3786bc8eaa Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 7 Mar 2016 13:38:39 +0000 -Subject: [PATCH 162/220] Pi3 DT: Add dtparams for the SD interface +Subject: [PATCH 161/234] Pi3 DT: Add dtparams for the SD interface Add new base dtparams sd_overclock, sd_force_pio, sd_pio_limit and sd_debug. These were missed out of the initial Pi3 DTB. @@ -149230,10 +149202,10 @@ index cc06089..36972d8 100644 }; }; -From 6807d1de189d9a85ba25d3d54e1db36d9b67470f Mon Sep 17 00:00:00 2001 +From c6b607df8df72e40f649a26f3f17530c4d6f80e7 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 7 Mar 2016 15:05:11 +0000 -Subject: [PATCH 163/220] vchiq_arm: Tweak the logging output +Subject: [PATCH 162/234] vchiq_arm: Tweak the logging output Signed-off-by: Phil Elwell --- @@ -149308,10 +149280,10 @@ index 2c98da4..160db24 100644 switch (type) { -From a56dfcc0d7fbb6c0953fe7faa7391a14fbaf98cc Mon Sep 17 00:00:00 2001 +From 0309d20fa78d21417424ac2a29f7021005103a95 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 7 Mar 2016 16:46:39 +0000 -Subject: [PATCH 164/220] bcm2835-sdhost: Only claim one DMA channel +Subject: [PATCH 163/234] bcm2835-sdhost: Only claim one DMA channel With both MMC controllers enabled there are few DMA channels left. The bcm2835-sdhost driver only uses DMA in one direction at a time, so it @@ -149473,10 +149445,10 @@ index 4f6cab5..4cc4272 100644 } } -From a1577083ab3d03c878c74153aba00ba6be3501a1 Mon Sep 17 00:00:00 2001 +From 85475f3bb5c999db424e476fd34db78dd2f620e7 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 8 Mar 2016 09:49:16 +0000 -Subject: [PATCH 165/220] bcm2835-mmc: Only claim one DMA channel +Subject: [PATCH 164/234] bcm2835-mmc: Only claim one DMA channel With both MMC controllers enabled there are few DMA channels left. The bcm2835-mmc driver only uses DMA in one direction at a time, so it @@ -149648,10 +149620,10 @@ index 104f93e..ceb3793 100644 #endif clk = devm_clk_get(dev, NULL); -From 8a0c59cffa4e265e12d412be162e6e7e79538085 Mon Sep 17 00:00:00 2001 +From 09b4efc16a0683e3483fca04c29ab50acd77ea35 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 8 Mar 2016 17:08:39 +0000 -Subject: [PATCH 166/220] config: rebuild with savedefconfig +Subject: [PATCH 165/234] config: rebuild with savedefconfig --- arch/arm/configs/bcm2709_defconfig | 3 +-- @@ -149679,10 +149651,10 @@ index 6d6b519..116002b 100644 CONFIG_MCP320X=m CONFIG_DHT11=m -From e429d262078d082532f8538c3272ad41d00dcbe2 Mon Sep 17 00:00:00 2001 +From b0b658052a1bbcb915e1461e785e2ada1de92747 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 8 Mar 2016 17:06:33 +0000 -Subject: [PATCH 167/220] config: Add module for mcp3422 ADC +Subject: [PATCH 166/234] config: Add module for mcp3422 ADC --- arch/arm/configs/bcm2709_defconfig | 1 + @@ -149714,10 +149686,10 @@ index 1ca1695..f09be87 100644 CONFIG_PWM_BCM2835=m CONFIG_RASPBERRYPI_FIRMWARE=y -From 1021df7fe1b5bffc4f6e6020fac272c4cbe359eb Mon Sep 17 00:00:00 2001 +From 13f3cb2aa11e7f35437ef94b643ec18c4216afa7 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 8 Mar 2016 16:18:57 +0000 -Subject: [PATCH 168/220] Pi3 DT: Add pull-ups on the UART RX lines +Subject: [PATCH 167/234] Pi3 DT: Add pull-ups on the UART RX lines Signed-off-by: Phil Elwell --- @@ -149759,10 +149731,10 @@ index ae1292a..0b8f0ca 100644 }; }; -From ee3a4aed77c36c19f325e9aac6e46fbde2ab6e09 Mon Sep 17 00:00:00 2001 +From 40b7ff1151cda094b243d68e04afea524f5f91e1 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 9 Mar 2016 17:25:59 +0000 -Subject: [PATCH 169/220] brcmfmac: Disable power management +Subject: [PATCH 168/234] 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 @@ -149787,10 +149759,10 @@ index deb5f78..90f65d9 100644 if (!check_vif_up(ifp->vif)) { -From 7426f9f0a5a62e36f31d1db185277c92bfa3d844 Mon Sep 17 00:00:00 2001 +From 4c066381ff2a904adfcbff623cb686b6d47e82d4 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 9 Mar 2016 21:28:52 +0000 -Subject: [PATCH 170/220] BCM270X_DT: rpi-display overlay - add swapxy param +Subject: [PATCH 169/234] BCM270X_DT: rpi-display overlay - add swapxy param Signed-off-by: Phil Elwell --- @@ -149830,10 +149802,10 @@ index a8fa974..ccb296e 100644 }; }; -From 2de2cb38722b8fbdbe8f0fb5cef7e0ec2230a2a8 Mon Sep 17 00:00:00 2001 +From 7a9843abb04b72adb5b0fd6e04053b217dbea4a0 Mon Sep 17 00:00:00 2001 From: DigitalDreamtime Date: Fri, 11 Mar 2016 11:44:35 +0000 -Subject: [PATCH 171/220] Remove I2S config from bt_pins. +Subject: [PATCH 170/234] Remove I2S config from bt_pins. Remove I2S config from bt_pins. Causes issues with clock alignment when I2S is used by an external DAC via GPIO header. @@ -149873,10 +149845,10 @@ index 0b8f0ca..f07afcb 100644 }; }; -From 86ad245b6a404b9a7390439598c3a1990888199e Mon Sep 17 00:00:00 2001 +From ed964142cfe7d2949fe10cb39cf897c216f42d8d Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 10 Aug 2015 09:44:59 +0100 -Subject: [PATCH 172/220] Revert "scripts/dtc: Add overlay support" +Subject: [PATCH 171/234] Revert "scripts/dtc: Add overlay support" This reverts commit fa6d1755c2fdd9451077d8248e3804f0619f19b9. --- @@ -154281,10 +154253,10 @@ index 86b7338..5b8c7d5 100644 -#define DTC_VERSION "DTC 1.4.1-g9d3649bd-dirty" +#define DTC_VERSION "DTC 1.4.1-g9d3649bd" -From 4f8951170ab9ba34bd30d822a01d9882b00db581 Mon Sep 17 00:00:00 2001 +From f8ba4ced67c24170cc9a8beb8d41678a10c79cca Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 10 Aug 2015 09:49:15 +0100 -Subject: [PATCH 173/220] scripts/dtc: Update to upstream version 1.4.1 +Subject: [PATCH 172/234] scripts/dtc: Update to upstream version 1.4.1 Includes the new localfixups format. @@ -157038,10 +157010,10 @@ index 5b8c7d5..2595dfd 100644 -#define DTC_VERSION "DTC 1.4.1-g9d3649bd" +#define DTC_VERSION "DTC 1.4.1-g25efc119" -From e8886384ffc0f93c0a4ed3553e74a7f20b940128 Mon Sep 17 00:00:00 2001 +From 0b913e25d5d9d0290cc63a6d6b2154d440da56c2 Mon Sep 17 00:00:00 2001 From: Pantelis Antoniou Date: Thu, 22 Oct 2015 23:30:04 +0300 -Subject: [PATCH 174/220] configfs: implement binary attributes +Subject: [PATCH 173/234] configfs: implement binary attributes ConfigFS lacked binary attributes up until now. This patch introduces support for binary attributes in a somewhat similar @@ -157690,10 +157662,10 @@ index 758a029..f7300d0 100644 * If allow_link() exists, the item can symlink(2) out to other * items. If the item is a group, it may support mkdir(2). -From 9003030b2ba018274c3139f4656045194b3e44f8 Mon Sep 17 00:00:00 2001 +From 53622946808fde54db459134af4d03e094883840 Mon Sep 17 00:00:00 2001 From: Pantelis Antoniou Date: Wed, 3 Dec 2014 13:23:28 +0200 -Subject: [PATCH 175/220] OF: DT-Overlay configfs interface +Subject: [PATCH 174/234] 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. @@ -158109,10 +158081,10 @@ index 0000000..7b66deb +} +late_initcall(of_cfs_init); -From a0591a6a9b4541411c9cb87bc03b3bcae9705d3e Mon Sep 17 00:00:00 2001 +From 18cfeae5235132b5db6c49ed966fbddc447b5c89 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 13 Mar 2015 12:43:36 +0000 -Subject: [PATCH 176/220] Protect __release_resource against resources without +Subject: [PATCH 175/234] Protect __release_resource against resources without parents Without this patch, removing a device tree overlay can crash here. @@ -158140,10 +158112,10 @@ index 249b1eb..eb973a5 100644 for (;;) { tmp = *p; -From 8b7b2a51cdf796abc04fdfb5f86b13593e3c6bf3 Mon Sep 17 00:00:00 2001 +From 992eefefd8d6a5ef59491bc900d13747068dab3c Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 13 Mar 2015 20:00:21 +0000 -Subject: [PATCH 177/220] BCM270X_DT: Add a .dtbo target, use for overlays +Subject: [PATCH 176/234] 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 @@ -158340,10 +158312,10 @@ index 79e8661..7209d62 100644 # Bzip2 -From a7154908e508d14ddb89aab7cf15b0b3d3105129 Mon Sep 17 00:00:00 2001 +From d467a9ff0718d4c2cac2d6bbd273be4c81f5ffaf Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 29 May 2015 11:18:58 +0100 -Subject: [PATCH 178/220] scripts/knlinfo: Decode DDTK atom +Subject: [PATCH 177/234] scripts/knlinfo: Decode DDTK atom Show the DDTK atom as being a boolean. @@ -158374,10 +158346,10 @@ index b9ef124..263ec93 100755 sub format_int -From ac5908f541bf375c752837d7f4adc5ffd741919a Mon Sep 17 00:00:00 2001 +From 569826fad285415f3f662f467c0e6d70ba6e24b0 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 29 May 2015 11:48:59 +0100 -Subject: [PATCH 179/220] Enable Dynamic Device Tree for bcmrpi_defconfig and +Subject: [PATCH 178/234] Enable Dynamic Device Tree for bcmrpi_defconfig and bcm2709_defconfig Signed-off-by: Phil Elwell @@ -158419,10 +158391,10 @@ index f09be87..2db41e6 100644 CONFIG_ZRAM_LZ4_COMPRESS=y CONFIG_BLK_DEV_LOOP=y -From f554341c8348fdf9880fc07ae20fc61035c783e2 Mon Sep 17 00:00:00 2001 +From b5c6d0cfa66fd1dfb8a39f8e80187d13aef072cf Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Sun, 13 Mar 2016 16:14:44 +0000 -Subject: [PATCH 180/220] SQUASH: Add CONFIG_OF_CONFIGFS to bcmrpi_defconfig +Subject: [PATCH 179/234] SQUASH: Add CONFIG_OF_CONFIGFS to bcmrpi_defconfig Signed-off-by: Phil Elwell --- @@ -158451,10 +158423,10 @@ index 2db41e6..74149cf 100644 CONFIG_HFS_FS=m CONFIG_HFSPLUS_FS=m -From 16c43ba7a356906480cb05eaf06b94118089b7b2 Mon Sep 17 00:00:00 2001 +From 2407bd2c947d9d588976ccb4bfafd0ba3ee02a6d Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 14 Mar 2016 16:56:54 +0000 -Subject: [PATCH 181/220] dts, kbuild: dtbs_install installs .dtbo files too +Subject: [PATCH 180/234] dts, kbuild: dtbs_install installs .dtbo files too Signed-off-by: Phil Elwell --- @@ -158496,10 +158468,10 @@ index 1c15717..43647b3 100644 .PHONY: $(PHONY) -From 2074555a2f018ca6d480536a11c8946a87ddf055 Mon Sep 17 00:00:00 2001 +From df9a9b056dc720c57f8444bf177c01cba0549d94 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 15 Mar 2016 14:10:29 +0000 -Subject: [PATCH 182/220] bcm2835-sdhost: Workaround for "slow" sectors +Subject: [PATCH 181/234] bcm2835-sdhost: Workaround for "slow" sectors Some cards have been seen to cause timeouts after certain sectors are read. This workaround enforces a minimum delay between the stop after @@ -158617,10 +158589,10 @@ index 4cc4272..f43aae0 100644 } } else { -From 6a95fda69fd5cd47a91438c34e60884005b2cf60 Mon Sep 17 00:00:00 2001 +From df34119f3390421137e5fd4a27a54c54299fb152 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 15 Mar 2016 15:49:16 +0000 -Subject: [PATCH 183/220] BCM270X_DT: Add labels to spidev nodes +Subject: [PATCH 182/234] BCM270X_DT: Add labels to spidev nodes Signed-off-by: Phil Elwell --- @@ -158742,10 +158714,10 @@ index 2cb7d43..1ce4ea2 100644 reg = <1>; /* CE1 */ #address-cells = <1>; -From 373c4c25a9a663812eeb60f9a21d0b4328a89e7b Mon Sep 17 00:00:00 2001 +From 40a8cebad2744813005953f297e5bc96416d0186 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 15 Mar 2016 16:27:26 +0000 -Subject: [PATCH 184/220] BCM270X_DT: Use spidev labels in overlays +Subject: [PATCH 183/234] BCM270X_DT: Use spidev labels in overlays --- arch/arm/boot/dts/overlays/ads7846-overlay.dts | 22 ++++++++++------- @@ -159399,10 +159371,10 @@ index f7102c8..33c0651 100644 __overlay__ { keypad: keypad { -From 5c59de05cd3c183f48a2c53e15dcbf748a58c686 Mon Sep 17 00:00:00 2001 +From 4378886deeb169b11164e5514339242ec22d3d08 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 15 Mar 2016 16:41:37 +0000 -Subject: [PATCH 185/220] BCM270X_DT: Build and document the wittypi overlay +Subject: [PATCH 184/234] BCM270X_DT: Build and document the wittypi overlay Signed-off-by: Phil Elwell --- @@ -159456,10 +159428,10 @@ index be5987d..8498134 100644 }; -From 61b564dad484329b527fbcf14167b9fd28d34c0e Mon Sep 17 00:00:00 2001 +From be3805c1c13fc147e3f31122370b7aaf8088ebc2 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Tue, 15 Mar 2016 21:13:39 +0100 -Subject: [PATCH 186/220] scripts/dtc: Fix UMR causing corrupt dtbo overlay +Subject: [PATCH 185/234] scripts/dtc: Fix UMR causing corrupt dtbo overlay files struct fixup_entry is allocated from the heap but it's member @@ -159486,10 +159458,10 @@ index 540a3ea..2b3b3a7 100644 /* append it to the local fixups */ fep = &dt->local_fixups; -From c827bc6f8936ec9954718625774663148e4476f2 Mon Sep 17 00:00:00 2001 +From 56bd21103cd7b57b1377f291b88cb894249ff4d4 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 16 Mar 2016 08:35:06 +0000 -Subject: [PATCH 187/220] BCM270X_DT: Add dtparam for uart1 +Subject: [PATCH 186/234] BCM270X_DT: Add dtparam for uart1 Signed-off-by: Phil Elwell --- @@ -159576,10 +159548,10 @@ index d939739..4ce7921 100644 (default "off") -From 9ba1d22a7f422b0e33a83b5523a8b82e5c3fa96b Mon Sep 17 00:00:00 2001 +From d3315968f5772cb7736266382772a4188c9915a7 Mon Sep 17 00:00:00 2001 From: Przemek Rudy Date: Fri, 11 Mar 2016 22:41:26 +0100 -Subject: [PATCH 188/220] dwc-overlay: Use label so overrides can apply. +Subject: [PATCH 187/234] dwc-overlay: Use label so overrides can apply. --- arch/arm/boot/dts/overlays/dwc2-overlay.dts | 10 +++++----- @@ -159613,10 +159585,10 @@ index 90c9811..527abc9 100644 }; }; -From 2f1acd3434a9830ae49f28d2908770ada3d3384a Mon Sep 17 00:00:00 2001 +From f55f58faaa81f7149b790c50e6a2a0b569eba7aa Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Fri, 22 Jan 2016 13:06:39 -0800 -Subject: [PATCH 189/220] drm/vc4: Add a debugfs node for tracking execution +Subject: [PATCH 188/234] drm/vc4: Add a debugfs node for tracking execution state. Signed-off-by: Eric Anholt @@ -159676,10 +159648,10 @@ index 39f29e7..1243f4e 100644 vc4_queue_hangcheck(struct drm_device *dev) { -From de506b61b93bf234a0e1be0d87d4cda23994d3ab Mon Sep 17 00:00:00 2001 +From db80fdfab4984ebddef8b2af3ace7af51dfd72f1 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 25 Jan 2016 13:03:33 -0800 -Subject: [PATCH 190/220] drm/vc4: Include vc4_drm.h in uapi in downstream +Subject: [PATCH 189/234] drm/vc4: Include vc4_drm.h in uapi in downstream build. Signed-off-by: Eric Anholt @@ -159700,10 +159672,10 @@ index 38d4370..23381b5 100644 header-y += vmwgfx_drm.h header-y += msm_drm.h -From 8fbb3e933a4bd43764228037fa15defc1dff9fcf Mon Sep 17 00:00:00 2001 +From 7326e457847d09cd6becc34523e13fdebce82083 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 25 Jan 2016 13:05:00 -0800 -Subject: [PATCH 191/220] drm/vc4: Validate that WAIT_BO padding is cleared. +Subject: [PATCH 190/234] drm/vc4: Validate that WAIT_BO padding is cleared. This is ABI future-proofing if we ever want to extend the pad to mean something. @@ -159728,10 +159700,10 @@ index 1243f4e..849d374 100644 if (!gem_obj) { DRM_ERROR("Failed to look up GEM BO %d\n", args->handle); -From ef720c38f364c54cce4a78d2651f45692864b186 Mon Sep 17 00:00:00 2001 +From dc2af742af507ba0594902be52296d191a3ebfae Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 25 Jan 2016 13:52:41 -0800 -Subject: [PATCH 192/220] drm/vc4: Fix the clear color for the first tile +Subject: [PATCH 191/234] drm/vc4: Fix the clear color for the first tile rendered. Apparently in hardware (as opposed to simulation), the clear colors @@ -159780,10 +159752,10 @@ index 8a2a312..dea97f4 100644 for (x = min_x_tile; x <= max_x_tile; x++) { bool first = (x == min_x_tile && y == min_y_tile); -From 50b3b6fe802180225e112ee995a76fd893abf578 Mon Sep 17 00:00:00 2001 +From 583809919eca83b08415654e13f6a86013898ebf Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 25 Jan 2016 14:13:12 -0800 -Subject: [PATCH 193/220] drm/vc4: Return an ERR_PTR from BO creation instead +Subject: [PATCH 192/234] drm/vc4: Return an ERR_PTR from BO creation instead of NULL. Fixes igt vc4_create_bo/create-bo-0 by returning -EINVAL from the @@ -159928,10 +159900,10 @@ index 0fb5b99..8396960 100644 /* tile alloc address. */ -From 0f16ca83c0f2657fbfada3502bcfca2316d8221e Mon Sep 17 00:00:00 2001 +From 8ed27b5631519f044dcf975413884aaaa8088fb6 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 25 Jan 2016 14:32:41 -0800 -Subject: [PATCH 194/220] drm/vc4: Fix -ERESTARTSYS error return from BO waits. +Subject: [PATCH 193/234] drm/vc4: Fix -ERESTARTSYS error return from BO waits. This caused the wait ioctls to claim that waiting had completed when we actually got interrupted by a signal before it was done. Fixes @@ -159963,10 +159935,10 @@ index f8c003a..dc3044d 100644 static void -From 4c0fab266928bd56412ca57b2e58d05a7ecb3fbd Mon Sep 17 00:00:00 2001 +From 47358baecb8cf02bd4145b2f5c1aa1b8431519df Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 25 Jan 2016 14:33:50 -0800 -Subject: [PATCH 195/220] drm/vc4: Drop error message on seqno wait timeouts. +Subject: [PATCH 194/234] drm/vc4: Drop error message on seqno wait timeouts. These ioctls end up getting exposed to userspace, and having normal user requests print DRM errors is obviously wrong. The message was @@ -159993,10 +159965,10 @@ index dc3044d..a6fa63f 100644 } -From 6943e0f06fad8f66a1f64aa65d69e5fd090b24a1 Mon Sep 17 00:00:00 2001 +From aeaf5cc198e41bfeea81a41173b0ed3e6765f9ac Mon Sep 17 00:00:00 2001 From: campag Date: Wed, 24 Feb 2016 16:45:42 +0000 -Subject: [PATCH 196/220] BCM270X_DT: Add 1-bit SDIO using minimal pins... +Subject: [PATCH 195/234] BCM270X_DT: Add 1-bit SDIO using minimal pins... ... for that mode: GPIOs 22-25. --- @@ -160080,10 +160052,10 @@ index 0000000..46d4538 + }; +}; -From 793561d4d88992ffe5532e850592a99d9cd4e1f2 Mon Sep 17 00:00:00 2001 +From 786a7be1c732a5d54c6d72bd58bfbd07d6a1310d Mon Sep 17 00:00:00 2001 From: Cheong2K Date: Fri, 26 Feb 2016 18:20:10 +0800 -Subject: [PATCH 197/220] brcm: adds support for BCM43341 wifi +Subject: [PATCH 196/234] brcm: adds support for BCM43341 wifi --- drivers/net/wireless/brcm80211/brcmfmac/sdio.c | 5 +++++ @@ -160133,10 +160105,10 @@ index aa06ea2..f3ae83d 100644 #define BRCM_CC_4335_CHIP_ID 0x4335 #define BRCM_CC_4339_CHIP_ID 0x4339 -From 2982e9b263d5ee0db255ab5407b57da6fa7e0749 Mon Sep 17 00:00:00 2001 +From 5f13d4fdf83a21813e952e9eb4d9571f32190d36 Mon Sep 17 00:00:00 2001 From: Michael Heimpold Date: Fri, 29 Jan 2016 12:00:37 +0100 -Subject: [PATCH 198/220] Add overlay and enable support for QCA7000 board +Subject: [PATCH 197/234] Add overlay and enable support for QCA7000 board This adds a device tree overlay for the QCA7000 which can be used when attaching an I2SE's PLC Stamp micro EVK to the Raspberry Pi. @@ -160272,10 +160244,10 @@ index 74149cf..e720c74 100644 CONFIG_PPP=m CONFIG_PPP_BSDCOMP=m -From 54705f156e1cf790f116fb3b8308c7ce413919c0 Mon Sep 17 00:00:00 2001 +From c8a7d7fd820fc9c3983f1ada46f70272bc80984c Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 9 Mar 2016 13:28:24 +0000 -Subject: [PATCH 199/220] serial: Take care starting a hung-up tty's port +Subject: [PATCH 198/234] 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), @@ -160303,10 +160275,10 @@ index 297d4fa..00ce6c6 100644 return 0; } -From aeacbad0b72cce451d6ca651ca264aa086b31117 Mon Sep 17 00:00:00 2001 +From 2f146ce902d611f142d2e868d46ade1376b9c3cc Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 17 Mar 2016 10:16:16 +0000 -Subject: [PATCH 200/220] pi3-miniuart-bt-overlay: Correct and clarify info +Subject: [PATCH 199/234] pi3-miniuart-bt-overlay: Correct and clarify info Signed-off-by: Phil Elwell --- @@ -160349,10 +160321,10 @@ index f07afcb..38ed33b 100644 If cmdline.txt uses the alias serial0 to refer to the user-accessable port then the firmware will replace with the appropriate port whether or not -From 53476038ee92e175f761c56ec03f3160b37c3f0f Mon Sep 17 00:00:00 2001 +From 757f32b50c7ba8b7f30c4d7dcf3898577320c9b3 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 17 Mar 2016 10:41:56 +0000 -Subject: [PATCH 201/220] pwm overlays: Params must have in-overlay targets +Subject: [PATCH 200/234] pwm overlays: Params must have in-overlay targets --- arch/arm/boot/dts/overlays/pwm-2chan-overlay.dts | 9 ++++++++- @@ -160406,10 +160378,10 @@ index ddd67ff..bf030a6 100644 }; }; -From 20fbefa704973bf5390a112aa8a41f9579e17295 Mon Sep 17 00:00:00 2001 +From 797a49072e2732377e4ffd24632bfcc6668e41ab Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 18 Mar 2016 13:06:29 +0000 -Subject: [PATCH 202/220] BCM270X_DT: Switch Compute Module to MMC +Subject: [PATCH 201/234] BCM270X_DT: Switch Compute Module to MMC Signed-off-by: Phil Elwell --- @@ -160462,10 +160434,10 @@ index e09e499..90e330d 100644 }; }; -From c185b46ac9d6c2e97a08117ff34d8c9afc4b691b Mon Sep 17 00:00:00 2001 +From 98fe5a7c56282fdca645293b66dca84fc9328a87 Mon Sep 17 00:00:00 2001 From: P33M Date: Fri, 18 Mar 2016 17:38:37 +0000 -Subject: [PATCH 203/220] dwc_otg: Don't free qh align buffers in atomic +Subject: [PATCH 202/234] dwc_otg: Don't free qh align buffers in atomic context --- @@ -160509,10 +160481,10 @@ index acd0dd7..3b2a607 100644 } -From 8a072f7bbbedeeb4a5f1861f4fdc6c3d7b5df84d Mon Sep 17 00:00:00 2001 +From e98dcafb381c113931135382f12a532f23844b27 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 21 Mar 2016 15:38:38 +0000 -Subject: [PATCH 204/220] dwc_otg: Enable the hack for Split Interrupt +Subject: [PATCH 203/234] dwc_otg: Enable the hack for Split Interrupt transactions by default dwc_otg.fiq_fsm_mask=0xF has long been a suggestion for users with audio stutters or other USB bandwidth issues. @@ -160540,10 +160512,10 @@ index 95edadf..cb060a7 100644 /** * This function shows the Driver Version. -From c807958f0a33033ff8f08bf79e97b246e949a254 Mon Sep 17 00:00:00 2001 +From 1b1b27f51fb1e3fcb84bb943b5479cb04e8ec26a Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Sat, 19 Mar 2016 16:51:37 +0000 -Subject: [PATCH 205/220] BCM270X_DT: Remove explicit claiming of UART pins +Subject: [PATCH 204/234] BCM270X_DT: Remove explicit claiming of UART pins It is convenient to be able to map a different function to the UART pins (e.g. DPI for vga666) without having to disable the UART first. @@ -160636,10 +160608,10 @@ index 38ed33b..17d04cf 100644 __overlay__ { serial0 = "/soc/uart@7e201000"; -From 9655dc3cac7fd783da12d4f73f273d331d132d2e Mon Sep 17 00:00:00 2001 +From e737973b851afacf68ad47469e18f24737b2a7a6 Mon Sep 17 00:00:00 2001 From: Rodrigo Freire Date: Tue, 22 Mar 2016 12:40:33 -0300 -Subject: [PATCH 206/220] lirc_rpi: Lower IR reception error to debug +Subject: [PATCH 205/234] lirc_rpi: Lower IR reception error to debug Lowers a IR reception error condition message to KERNEL_DEBUG --- @@ -160660,10 +160632,10 @@ index cd09c99..0624439 100644 signal, sense, tv.tv_sec, lasttv.tv_sec, tv.tv_usec, lasttv.tv_usec); -From 373adf3fbcc120470fe4692744706f98bf5a3030 Mon Sep 17 00:00:00 2001 +From da7c5fdbb291ead09fb343ee0637baa41531f336 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 23 Mar 2016 14:16:25 +0000 -Subject: [PATCH 207/220] vchiq_arm: Access the dequeue_pending flag locked +Subject: [PATCH 206/234] vchiq_arm: Access the dequeue_pending flag locked Reading through this code looking for another problem (now found in userland) the use of dequeue_pending outside a lock didn't seem safe. @@ -160721,10 +160693,10 @@ index e11c0e0..71883e5 100644 return add_completion(instance, reason, header, user_service, -From 1323236521122fc9c55557680a79e44edfdbeab0 Mon Sep 17 00:00:00 2001 +From 2c4d8a6860d02b367d8812216d904e5de0ff0018 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 23 Mar 2016 15:57:14 +0000 -Subject: [PATCH 208/220] BCM270X_DT: Add pi3-act-led overlay +Subject: [PATCH 207/234] BCM270X_DT: Add pi3-act-led overlay Signed-off-by: Phil Elwell --- @@ -160823,10 +160795,10 @@ index 0000000..14a59dc + }; +}; -From b5a4fa8f9d9e97bf938acdda3806b4dfdd4cad62 Mon Sep 17 00:00:00 2001 +From 4b406588ecc5e136f67c35b3ba5e6c831023d1a1 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 23 Mar 2016 20:53:47 +0000 -Subject: [PATCH 209/220] vchiq_arm: Service callbacks must not fail +Subject: [PATCH 208/234] vchiq_arm: Service callbacks must not fail Service callbacks are not allowed to return an error. The internal callback that delivers events and messages to user tasks does not enqueue them if @@ -160852,10 +160824,10 @@ index 71883e5..a5cc385 100644 DEBUG_TRACE(SERVICE_CALLBACK_LINE); } -From 66dd57b8f4b8c8fcea6d755425b117ff97b8f37b Mon Sep 17 00:00:00 2001 +From a1144c5ebde67a6380ee115b089477ff135c8442 Mon Sep 17 00:00:00 2001 From: Dave Stevenson <6by9@users.noreply.github.com> Date: Thu, 17 Mar 2016 18:16:16 +0000 -Subject: [PATCH 210/220] Add configs and overlay for PCA9548 I2C mux +Subject: [PATCH 209/234] Add configs and overlay for PCA9548 I2C mux Adds kernel configs for I2C muxes and a dt overlay for PCA9548 that adds the 8 muxed I2C buses and mux device. @@ -160997,10 +160969,10 @@ index e720c74..f6e2d84 100644 CONFIG_SPI_BCM2835=m CONFIG_SPI_BCM2835AUX=m -From 05986749a2eaac35aa623be4a3d3804466c999bd Mon Sep 17 00:00:00 2001 +From 3473f0de2273bcc8921dbf51d4bdecfd3df83d39 Mon Sep 17 00:00:00 2001 From: Nicolas Boullis Date: Wed, 23 Mar 2016 23:40:15 +0100 -Subject: [PATCH 211/220] BCM270X_DT: Add DS1339 to i2c-rtc overlay +Subject: [PATCH 210/234] BCM270X_DT: Add DS1339 to i2c-rtc overlay --- arch/arm/boot/dts/overlays/README | 4 ++++ @@ -161060,10 +161032,10 @@ index fed4bd8..eecec16 100644 }; }; -From 1b76cf64a27889e293c10306126fe955bf1a9402 Mon Sep 17 00:00:00 2001 +From dad9bd19647609da9823dca157737537b2372d3f Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 29 Mar 2016 15:32:30 +0100 -Subject: [PATCH 212/220] copy_from_user: CPU_SW_DOMAIN_PAN compatibility +Subject: [PATCH 211/234] copy_from_user: CPU_SW_DOMAIN_PAN compatibility The downstream copy_from_user acceleration must also play nice with CONFIG_CPU_SW_DOMAIN_PAN. @@ -161116,10 +161088,10 @@ index c29df92..6681df5 100644 static unsigned long noinline -From 1b07b9eba23bb72e9754b035ef5b806a278b3a7d Mon Sep 17 00:00:00 2001 +From ef1e082fb7d83d867ca9a24f8236ec42c6c73951 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 30 Mar 2016 16:33:09 +0100 -Subject: [PATCH 213/220] bcm2835-sdhost: Adjust to core clock changes +Subject: [PATCH 212/234] bcm2835-sdhost: Adjust to core clock changes The SDHOST block uses the core clock, so previously it has been necessary to prevent the core clock from changing in order to maintain @@ -161460,10 +161432,10 @@ index f43aae0..1deecef 100644 bcm2835_sdhost_set_power(host, false); -From 5218b8ec0c8bcc1c30812dd67978c12b91cb7237 Mon Sep 17 00:00:00 2001 +From 3d5fd3b064b7f284caaf71734be701d7222ab92b Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 30 Mar 2016 17:07:15 +0100 -Subject: [PATCH 214/220] BCM270X_DT: Document hazards of sdhost overlay +Subject: [PATCH 213/234] BCM270X_DT: Document hazards of sdhost overlay Signed-off-by: Phil Elwell --- @@ -161497,10 +161469,10 @@ index e88e7c8..337be4a 100644 Params: overclock_50 Clock (in MHz) to use when the MMC framework requests 50MHz -From 543bfd50bf9f77cc2f88607f305e272f268d9a01 Mon Sep 17 00:00:00 2001 +From 2e65d41c01b25c2f0c492d08e075e73652487482 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 30 Mar 2016 17:23:15 +0100 -Subject: [PATCH 215/220] cpufreq: Temporarily ignore io_is_busy=1 +Subject: [PATCH 214/234] 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 @@ -161531,10 +161503,10 @@ index 03ac6ce..99a9610 100644 /* we need to re-evaluate prev_cpu_idle */ for_each_online_cpu(j) { -From be52d947f0b06bf64639d20a88d0700b56ee25fa Mon Sep 17 00:00:00 2001 +From 8bfcac27c6e044ce4b8575fcaec2c6a0e81caa27 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 30 Mar 2016 20:18:38 +0100 -Subject: [PATCH 216/220] Revert "cpufreq: Temporarily ignore io_is_busy=1" +Subject: [PATCH 215/234] Revert "cpufreq: Temporarily ignore io_is_busy=1" This reverts commit 2af1218a8a0220fec526f64d03977b8451afb4c8. --- @@ -161560,10 +161532,10 @@ index 99a9610..03ac6ce 100644 /* we need to re-evaluate prev_cpu_idle */ for_each_online_cpu(j) { -From 2163c89a75611d21451e5a5723160cefe1d276b5 Mon Sep 17 00:00:00 2001 +From 6c18ab269d6fecd2af4592eef76d736673ee6e5c Mon Sep 17 00:00:00 2001 From: Daniel Borkmann Date: Thu, 7 Jan 2016 15:50:22 +0100 -Subject: [PATCH 217/220] net, sched: add skb_at_tc_ingress helper +Subject: [PATCH 216/234] net, sched: add skb_at_tc_ingress helper Add a skb_at_tc_ingress() as this will be needed elsewhere as well and can hide the ugly ifdef. @@ -161615,10 +161587,10 @@ index 5faaa54..b3c8bb4 100644 if (unlikely(!skb_mac_header_was_set(skb))) -From 2ed858c4003bb16683124b3d5848c9e0a4f6d4f2 Mon Sep 17 00:00:00 2001 +From 0d1b178dacce1dd75fc5bf4b7ff493a46736e70c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Linus=20L=C3=BCssing?= Date: Wed, 24 Feb 2016 04:21:42 +0100 -Subject: [PATCH 218/220] net: fix bridge multicast packet checksum validation +Subject: [PATCH 217/234] net: fix bridge multicast packet checksum validation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -161693,10 +161665,10 @@ index 5bf88f5..8616d11 100644 if (ret) goto err; -From 8df7ac6bc025d2d4862c95cb5f954519533b75a7 Mon Sep 17 00:00:00 2001 +From 4d5955a2a51ca2caf2d703832aaeee0953e21490 Mon Sep 17 00:00:00 2001 From: Daniel Borkmann Date: Thu, 7 Jan 2016 15:50:23 +0100 -Subject: [PATCH 219/220] bpf: add skb_postpush_rcsum and fix dev_forward_skb +Subject: [PATCH 218/234] bpf: add skb_postpush_rcsum and fix dev_forward_skb occasions Add a small helper skb_postpush_rcsum() and fix up redirect locations @@ -161822,10 +161794,10 @@ index 37157c4..6e337ea 100644 skb->dev = dev; skb_sender_cpu_clear(skb); -From d7266f9f0bf5a3b3ed41f904d615b2bbf6e48289 Mon Sep 17 00:00:00 2001 +From 4cc63615777c6bc447eb9a7175f663f9fc39983d Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 31 Mar 2016 15:44:53 +0100 -Subject: [PATCH 220/220] bcm2835-sdhost: Precalc divisors and overclocks +Subject: [PATCH 219/234] bcm2835-sdhost: Precalc divisors and overclocks Recalculating the clock divisors when the core clock changes is wasteful and makes it harder to manage the overclock settings. Instead, @@ -162095,3 +162067,2137 @@ index 1deecef..cc18ec8 100644 platform_set_drvdata(pdev, host); pr_debug("bcm2835_sdhost_probe -> OK\n"); + +From 14e3b7b73d1f16d98516c803af1e1ca0e51038f0 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Mon, 4 Apr 2016 12:35:32 +0100 +Subject: [PATCH 220/234] Revert "bcm2835-sdhost: Precalc divisors and + overclocks" + +This reverts commit 20260462773366a5734e5268dae0a4c179a21a2d. +--- + drivers/mmc/host/bcm2835-sdhost.c | 152 ++++++++++++++++---------------------- + 1 file changed, 64 insertions(+), 88 deletions(-) + +diff --git a/drivers/mmc/host/bcm2835-sdhost.c b/drivers/mmc/host/bcm2835-sdhost.c +index cc18ec8..1deecef 100644 +--- a/drivers/mmc/host/bcm2835-sdhost.c ++++ b/drivers/mmc/host/bcm2835-sdhost.c +@@ -154,15 +154,12 @@ struct bcm2835_host { + u32 pio_timeout; /* In jiffies */ + + int clock; /* Current clock speed */ +- int clocks[2]; + + bool slow_card; /* Force 11-bit divisor */ + + unsigned int max_clk; /* Max src clock freq */ +- unsigned int src_clks[2]; /* Min/max src clock freqs */ +- unsigned int cur_clk_idx; /* Index of current clock */ +- unsigned int next_clk_idx; /* Next clock index */ +- unsigned int cdivs[2]; ++ unsigned int min_clk; /* Min src clock freq */ ++ unsigned int cur_clk; /* Current src clock freq */ + + struct tasklet_struct finish_tasklet; /* Tasklet structures */ + +@@ -216,7 +213,7 @@ struct bcm2835_host { + u32 delay_after_stop; /* minimum time between stop and subsequent data transfer */ + u32 delay_after_this_stop; /* minimum time between this stop and subsequent data transfer */ + u32 overclock_50; /* frequency to use when 50MHz is requested (in MHz) */ +- u32 prev_overclock_50; ++ u32 overclock; /* Current frequency if overclocked, else zero */ + u32 pio_limit; /* Maximum block count for PIO (0 = always DMA) */ + + u32 sectors; /* Cached card size in sectors */ +@@ -1512,35 +1509,10 @@ static irqreturn_t bcm2835_sdhost_irq(int irq, void *dev_id) + return result; + } + +-static void bcm2835_sdhost_select_clock(struct bcm2835_host *host, int idx) +-{ +- unsigned int clock = host->clocks[idx]; +- unsigned int cdiv = host->cdivs[idx]; +- +- host->mmc->actual_clock = clock; +- host->ns_per_fifo_word = (1000000000/clock) * +- ((host->mmc->caps & MMC_CAP_4_BIT_DATA) ? 8 : 32); +- +- host->cdiv = cdiv; +- bcm2835_sdhost_write(host, host->cdiv, SDCDIV); +- +- /* Set the timeout to 500ms */ +- bcm2835_sdhost_write(host, clock/2, SDTOUT); +- +- host->cur_clk_idx = host->next_clk_idx = idx; +- +- if (host->debug) +- pr_info("%s: clock=%d -> src_clk=%d, cdiv=%x (actual %d)\n", +- mmc_hostname(host->mmc), host->clock, +- host->src_clks[idx], host->cdiv, +- host->mmc->actual_clock); +-} +- + void bcm2835_sdhost_set_clock(struct bcm2835_host *host) + { + int div = 0; /* Initialized for compiler warning */ + unsigned int clock = host->clock; +- int clk_idx; + + if (host->debug) + pr_info("%s: set_clock(%d)\n", mmc_hostname(host->mmc), clock); +@@ -1581,45 +1553,53 @@ void bcm2835_sdhost_set_clock(struct bcm2835_host *host) + return; + } + +- /* Calculate the clock divisors */ +- for (clk_idx = 0; clk_idx <= host->variable_clock; clk_idx++) +- { +- unsigned int cur_clk = host->src_clks[clk_idx]; +- unsigned int actual_clock; +- +- div = cur_clk / clock; +- if (div < 2) +- div = 2; +- if ((cur_clk / div) > clock) +- div++; +- div -= 2; +- +- if (div > SDCDIV_MAX_CDIV) +- div = SDCDIV_MAX_CDIV; +- actual_clock = cur_clk / (div + 2); +- +- host->cdivs[clk_idx] = div; +- host->clocks[clk_idx] = actual_clock; +- +- if (host->overclock_50 != host->prev_overclock_50) { +- const char *clk_name = ""; +- if (host->variable_clock) +- clk_name = clk_idx ? " (turbo)" : " (normal)"; +- if (actual_clock > host->clock) +- pr_info("%s: overclocking to %dHz%s\n", +- mmc_hostname(host->mmc), +- actual_clock, clk_name); +- else if ((host->overclock_50 < 50) && (clk_idx == 0)) +- pr_info("%s: cancelling overclock%s\n", +- mmc_hostname(host->mmc), +- host->variable_clock ? "s" : ""); ++ div = host->cur_clk / clock; ++ if (div < 2) ++ div = 2; ++ if ((host->cur_clk / div) > clock) ++ div++; ++ div -= 2; ++ ++ if (div > SDCDIV_MAX_CDIV) ++ div = SDCDIV_MAX_CDIV; ++ ++ clock = host->cur_clk / (div + 2); ++ host->mmc->actual_clock = clock; ++ ++ /* Calibrate some delays */ ++ ++ host->ns_per_fifo_word = (1000000000/clock) * ++ ((host->mmc->caps & MMC_CAP_4_BIT_DATA) ? 8 : 32); ++ ++ if (clock > host->clock) { ++ /* Save the closest value, to make it easier ++ to reduce in the event of error */ ++ host->overclock_50 = (clock/MHZ); ++ ++ if (clock != host->overclock) { ++ pr_warn("%s: overclocking to %dHz\n", ++ mmc_hostname(host->mmc), clock); ++ host->overclock = clock; + } + } ++ else if (host->overclock) ++ { ++ host->overclock = 0; ++ if (clock == 50 * MHZ) ++ pr_warn("%s: cancelling overclock\n", ++ mmc_hostname(host->mmc)); ++ } ++ ++ host->cdiv = div; ++ bcm2835_sdhost_write(host, host->cdiv, SDCDIV); + +- if (host->clock == 50*MHZ) +- host->prev_overclock_50 = host->overclock_50; ++ /* Set the timeout to 500ms */ ++ bcm2835_sdhost_write(host, host->mmc->actual_clock/2, SDTOUT); + +- bcm2835_sdhost_select_clock(host, host->cur_clk_idx); ++ if (host->debug) ++ pr_info("%s: clock=%d -> cur_clk=%d, cdiv=%x (actual clock %d)\n", ++ mmc_hostname(host->mmc), host->clock, ++ host->cur_clk, host->cdiv, host->mmc->actual_clock); + } + + static void bcm2835_sdhost_request(struct mmc_host *mmc, struct mmc_request *mrq) +@@ -1677,9 +1657,6 @@ static void bcm2835_sdhost_request(struct mmc_host *mmc, struct mmc_request *mrq + + spin_lock_irqsave(&host->lock, flags); + +- if (host->next_clk_idx != host->cur_clk_idx) +- bcm2835_sdhost_select_clock(host, host->next_clk_idx); +- + WARN_ON(host->mrq != NULL); + host->mrq = mrq; + +@@ -1742,7 +1719,11 @@ static int bcm2835_sdhost_cpufreq_callback(struct notifier_block *nb, + return NOTIFY_BAD; + break; + case CPUFREQ_POSTCHANGE: +- host->next_clk_idx = (freq->new > freq->old); ++ if (freq->new > freq->old) ++ host->cur_clk = host->max_clk; ++ else ++ host->cur_clk = host->min_clk; ++ bcm2835_sdhost_set_clock(host); + up(&host->cpufreq_semaphore); + break; + default: +@@ -1782,11 +1763,8 @@ static void bcm2835_sdhost_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) + ios->clock, ios->power_mode, ios->bus_width, + ios->timing, ios->signal_voltage, ios->drv_type); + +- if (ios->clock && (host->cur_clk_idx == -1)) { +- unsigned int cur_clk = +- get_core_clock(RPI_FIRMWARE_GET_CLOCK_RATE); +- host->cur_clk_idx = (cur_clk == host->src_clks[0]) ? 0 : 1; +- } ++ if (ios->clock && !host->cur_clk) ++ host->cur_clk = get_core_clock(RPI_FIRMWARE_GET_CLOCK_RATE); + + spin_lock_irqsave(&host->lock, flags); + +@@ -1876,12 +1854,11 @@ static void bcm2835_sdhost_tasklet_finish(unsigned long param) + + /* Drop the overclock after any data corruption, or after any + error overclocked */ +- if (host->clock > 50*MHZ) { ++ if (host->overclock) { + if ((mrq->cmd && mrq->cmd->error) || + (mrq->data && mrq->data->error) || + (mrq->stop && mrq->stop->error)) { +- host->overclock_50 = (host->clock/MHZ) - 1; +- ++ host->overclock_50--; + pr_warn("%s: reducing overclock due to errors\n", + mmc_hostname(host->mmc)); + bcm2835_sdhost_set_clock(host); +@@ -2045,7 +2022,7 @@ static int bcm2835_sdhost_probe(struct platform_device *pdev) + struct bcm2835_host *host; + struct mmc_host *mmc; + const __be32 *addr; +- unsigned int max_clk, min_clk; ++ unsigned int max_clk; + int ret; + + pr_debug("bcm2835_sdhost_probe\n"); +@@ -2151,8 +2128,12 @@ static int bcm2835_sdhost_probe(struct platform_device *pdev) + else + mmc->caps |= MMC_CAP_4_BIT_DATA; + ++ ret = bcm2835_sdhost_add_host(host); ++ if (ret) ++ goto err; ++ + /* Query the core clock frequencies */ +- min_clk = get_core_clock(RPI_FIRMWARE_GET_MIN_CLOCK_RATE); ++ host->min_clk = get_core_clock(RPI_FIRMWARE_GET_MIN_CLOCK_RATE); + max_clk = get_core_clock(RPI_FIRMWARE_GET_MAX_CLOCK_RATE); + if (max_clk != host->max_clk) { + pr_warn("%s: Expected max clock %d, found %d\n", +@@ -2160,24 +2141,19 @@ static int bcm2835_sdhost_probe(struct platform_device *pdev) + host->max_clk = max_clk; + } + +- host->src_clks[0] = min_clk; +- host->cur_clk_idx = -1; +- if (max_clk != min_clk) { +- host->src_clks[1] = max_clk; ++ if (host->min_clk != host->max_clk) { + host->cpufreq_nb.notifier_call = + bcm2835_sdhost_cpufreq_callback; + sema_init(&host->cpufreq_semaphore, 1); + cpufreq_register_notifier(&host->cpufreq_nb, + CPUFREQ_TRANSITION_NOTIFIER); + host->variable_clock = 1; ++ host->cur_clk = 0; /* Get this later */ + } else { + host->variable_clock = 0; ++ host->cur_clk = host->max_clk; + } + +- ret = bcm2835_sdhost_add_host(host); +- if (ret) +- goto err; +- + platform_set_drvdata(pdev, host); + + pr_debug("bcm2835_sdhost_probe -> OK\n"); + +From 4c77ab3471804f1f051b004369152a7b0759c506 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Mon, 4 Apr 2016 12:35:51 +0100 +Subject: [PATCH 221/234] Revert "bcm2835-sdhost: Adjust to core clock changes" + +This reverts commit 4b89d07fd299a0f4e25321920cb74416ba2e638e. +--- + drivers/mmc/host/Kconfig | 1 - + drivers/mmc/host/bcm2835-sdhost.c | 140 ++++++-------------------------------- + 2 files changed, 22 insertions(+), 119 deletions(-) + +diff --git a/drivers/mmc/host/Kconfig b/drivers/mmc/host/Kconfig +index 98a7fa5..d509d10 100644 +--- a/drivers/mmc/host/Kconfig ++++ b/drivers/mmc/host/Kconfig +@@ -36,7 +36,6 @@ config MMC_BCM2835_PIO_DMA_BARRIER + config MMC_BCM2835_SDHOST + tristate "Support for the SDHost controller on BCM2708/9" + depends on MACH_BCM2708 || MACH_BCM2709 || ARCH_BCM2835 +- depends on RASPBERRYPI_FIRMWARE + help + This selects the SDHost controller on BCM2835/6. + +diff --git a/drivers/mmc/host/bcm2835-sdhost.c b/drivers/mmc/host/bcm2835-sdhost.c +index 1deecef..f43aae0 100644 +--- a/drivers/mmc/host/bcm2835-sdhost.c ++++ b/drivers/mmc/host/bcm2835-sdhost.c +@@ -50,10 +50,6 @@ + #include + #include + #include +-#include +-#include +-#include +- + + #define DRIVER_NAME "sdhost-bcm2835" + +@@ -140,8 +136,6 @@ + + #define MHZ 1000000 + +-#define RPI_FIRMWARE_CLOCK_CORE 4 +- + + struct bcm2835_host { + spinlock_t lock; +@@ -157,9 +151,7 @@ struct bcm2835_host { + + bool slow_card; /* Force 11-bit divisor */ + +- unsigned int max_clk; /* Max src clock freq */ +- unsigned int min_clk; /* Min src clock freq */ +- unsigned int cur_clk; /* Current src clock freq */ ++ unsigned int max_clk; /* Max possible freq */ + + struct tasklet_struct finish_tasklet; /* Tasklet structures */ + +@@ -191,7 +183,6 @@ struct bcm2835_host { + unsigned int use_sbc:1; /* Send CMD23 */ + + unsigned int debug:1; /* Enable debug output */ +- unsigned int variable_clock:1; /* The core clock may change */ + + /*DMA part*/ + struct dma_chan *dma_chan_rxtx; /* DMA channel for reads and writes */ +@@ -217,9 +208,6 @@ struct bcm2835_host { + u32 pio_limit; /* Maximum block count for PIO (0 = always DMA) */ + + u32 sectors; /* Cached card size in sectors */ +- +- struct notifier_block cpufreq_nb; /* The cpufreq callback list item */ +- struct semaphore cpufreq_semaphore; /* Interlock between SD activity and cpufreq changes */ + }; + + #if ENABLE_LOG +@@ -239,10 +227,6 @@ static u32 sdhost_log_idx; + static spinlock_t log_lock; + static void __iomem *timer_base; + +-static int bcm2835_sdhost_cpufreq_callback(struct notifier_block *nb, +- unsigned long action, void *data); +-static unsigned int get_core_clock(unsigned int mode); +- + #define LOG_ENTRIES (256*1) + #define LOG_SIZE (sizeof(LOG_ENTRY_T)*LOG_ENTRIES) + +@@ -464,14 +448,20 @@ static void bcm2835_sdhost_reset(struct mmc_host *mmc) + + static void bcm2835_sdhost_set_ios(struct mmc_host *mmc, struct mmc_ios *ios); + +-static void bcm2835_sdhost_init(struct bcm2835_host *host) ++static void bcm2835_sdhost_init(struct bcm2835_host *host, int soft) + { +- pr_debug("bcm2835_sdhost_init()\n"); ++ pr_debug("bcm2835_sdhost_init(%d)\n", soft); + + /* Set interrupt enables */ + host->hcfg = SDHCFG_BUSY_IRPT_EN; + + bcm2835_sdhost_reset_internal(host); ++ ++ if (soft) { ++ /* force clock reconfiguration */ ++ host->clock = 0; ++ bcm2835_sdhost_set_ios(host->mmc, &host->mmc->ios); ++ } + } + + static void bcm2835_sdhost_wait_transfer_complete(struct bcm2835_host *host) +@@ -1509,10 +1499,10 @@ static irqreturn_t bcm2835_sdhost_irq(int irq, void *dev_id) + return result; + } + +-void bcm2835_sdhost_set_clock(struct bcm2835_host *host) ++void bcm2835_sdhost_set_clock(struct bcm2835_host *host, unsigned int clock) + { + int div = 0; /* Initialized for compiler warning */ +- unsigned int clock = host->clock; ++ unsigned int input_clock = clock; + + if (host->debug) + pr_info("%s: set_clock(%d)\n", mmc_hostname(host->mmc), clock); +@@ -1553,17 +1543,17 @@ void bcm2835_sdhost_set_clock(struct bcm2835_host *host) + return; + } + +- div = host->cur_clk / clock; ++ div = host->max_clk / clock; + if (div < 2) + div = 2; +- if ((host->cur_clk / div) > clock) ++ if ((host->max_clk / div) > clock) + div++; + div -= 2; + + if (div > SDCDIV_MAX_CDIV) + div = SDCDIV_MAX_CDIV; + +- clock = host->cur_clk / (div + 2); ++ clock = host->max_clk / (div + 2); + host->mmc->actual_clock = clock; + + /* Calibrate some delays */ +@@ -1571,7 +1561,7 @@ void bcm2835_sdhost_set_clock(struct bcm2835_host *host) + host->ns_per_fifo_word = (1000000000/clock) * + ((host->mmc->caps & MMC_CAP_4_BIT_DATA) ? 8 : 32); + +- if (clock > host->clock) { ++ if (clock > input_clock) { + /* Save the closest value, to make it easier + to reduce in the event of error */ + host->overclock_50 = (clock/MHZ); +@@ -1597,9 +1587,9 @@ void bcm2835_sdhost_set_clock(struct bcm2835_host *host) + bcm2835_sdhost_write(host, host->mmc->actual_clock/2, SDTOUT); + + if (host->debug) +- pr_info("%s: clock=%d -> cur_clk=%d, cdiv=%x (actual clock %d)\n", +- mmc_hostname(host->mmc), host->clock, +- host->cur_clk, host->cdiv, host->mmc->actual_clock); ++ pr_info("%s: clock=%d -> max_clk=%d, cdiv=%x (actual clock %d)\n", ++ mmc_hostname(host->mmc), input_clock, ++ host->max_clk, host->cdiv, host->mmc->actual_clock); + } + + static void bcm2835_sdhost_request(struct mmc_host *mmc, struct mmc_request *mrq) +@@ -1648,13 +1638,6 @@ static void bcm2835_sdhost_request(struct mmc_host *mmc, struct mmc_request *mrq + (mrq->data->blocks > host->pio_limit)) + bcm2835_sdhost_prepare_dma(host, mrq->data); + +- if (host->variable_clock && +- (down_killable(&host->cpufreq_semaphore) != 0)) { +- mrq->cmd->error = -EINTR; +- mmc_request_done(mmc, mrq); +- return; +- } +- + spin_lock_irqsave(&host->lock, flags); + + WARN_ON(host->mrq != NULL); +@@ -1704,52 +1687,6 @@ static void bcm2835_sdhost_request(struct mmc_host *mmc, struct mmc_request *mrq + spin_unlock_irqrestore(&host->lock, flags); + } + +-static int bcm2835_sdhost_cpufreq_callback(struct notifier_block *nb, +- unsigned long action, void *data) +-{ +- struct cpufreq_freqs *freq = data; +- struct bcm2835_host *host; +- +- host = container_of(nb, struct bcm2835_host, cpufreq_nb); +- +- if (freq->cpu == 0) { +- switch (action) { +- case CPUFREQ_PRECHANGE: +- if (down_killable(&host->cpufreq_semaphore) != 0) +- return NOTIFY_BAD; +- break; +- case CPUFREQ_POSTCHANGE: +- if (freq->new > freq->old) +- host->cur_clk = host->max_clk; +- else +- host->cur_clk = host->min_clk; +- bcm2835_sdhost_set_clock(host); +- up(&host->cpufreq_semaphore); +- break; +- default: +- break; +- } +- } +- return NOTIFY_OK; +-} +- +-static unsigned int get_core_clock(unsigned int mode) +-{ +- struct rpi_firmware *fw = rpi_firmware_get(NULL); +- struct { +- u32 id; +- u32 val; +- } packet; +- int ret; +- +- packet.id = RPI_FIRMWARE_CLOCK_CORE; +- ret = rpi_firmware_property(fw, mode, &packet, sizeof(packet)); +- if (ret) +- return 0; +- +- return packet.val; +-} +- + static void bcm2835_sdhost_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) + { + +@@ -1763,16 +1700,13 @@ static void bcm2835_sdhost_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) + ios->clock, ios->power_mode, ios->bus_width, + ios->timing, ios->signal_voltage, ios->drv_type); + +- if (ios->clock && !host->cur_clk) +- host->cur_clk = get_core_clock(RPI_FIRMWARE_GET_CLOCK_RATE); +- + spin_lock_irqsave(&host->lock, flags); + + log_event("IOS<", ios->clock, 0); + + if (!ios->clock || ios->clock != host->clock) { ++ bcm2835_sdhost_set_clock(host, ios->clock); + host->clock = ios->clock; +- bcm2835_sdhost_set_clock(host); + } + + /* set bus width */ +@@ -1861,7 +1795,7 @@ static void bcm2835_sdhost_tasklet_finish(unsigned long param) + host->overclock_50--; + pr_warn("%s: reducing overclock due to errors\n", + mmc_hostname(host->mmc)); +- bcm2835_sdhost_set_clock(host); ++ bcm2835_sdhost_set_clock(host,50*MHZ); + mrq->cmd->error = -EILSEQ; + mrq->cmd->retries = 1; + } +@@ -1879,9 +1813,6 @@ static void bcm2835_sdhost_tasklet_finish(unsigned long param) + + spin_unlock_irqrestore(&host->lock, flags); + +- if (host->variable_clock) +- up(&host->cpufreq_semaphore); +- + if (terminate_chan) + { + int err = dmaengine_terminate_all(terminate_chan); +@@ -1984,10 +1915,10 @@ int bcm2835_sdhost_add_host(struct bcm2835_host *host) + setup_timer(&host->timer, bcm2835_sdhost_timeout, + (unsigned long)host); + +- bcm2835_sdhost_init(host); ++ bcm2835_sdhost_init(host, 0); + + ret = request_irq(host->irq, bcm2835_sdhost_irq, 0 /*IRQF_SHARED*/, +- mmc_hostname(mmc), host); ++ mmc_hostname(mmc), host); + if (ret) { + pr_err("%s: failed to request IRQ %d: %d\n", + mmc_hostname(mmc), host->irq, ret); +@@ -2022,7 +1953,6 @@ static int bcm2835_sdhost_probe(struct platform_device *pdev) + struct bcm2835_host *host; + struct mmc_host *mmc; + const __be32 *addr; +- unsigned int max_clk; + int ret; + + pr_debug("bcm2835_sdhost_probe\n"); +@@ -2132,28 +2062,6 @@ static int bcm2835_sdhost_probe(struct platform_device *pdev) + if (ret) + goto err; + +- /* Query the core clock frequencies */ +- host->min_clk = get_core_clock(RPI_FIRMWARE_GET_MIN_CLOCK_RATE); +- max_clk = get_core_clock(RPI_FIRMWARE_GET_MAX_CLOCK_RATE); +- if (max_clk != host->max_clk) { +- pr_warn("%s: Expected max clock %d, found %d\n", +- mmc_hostname(mmc), host->max_clk, max_clk); +- host->max_clk = max_clk; +- } +- +- if (host->min_clk != host->max_clk) { +- host->cpufreq_nb.notifier_call = +- bcm2835_sdhost_cpufreq_callback; +- sema_init(&host->cpufreq_semaphore, 1); +- cpufreq_register_notifier(&host->cpufreq_nb, +- CPUFREQ_TRANSITION_NOTIFIER); +- host->variable_clock = 1; +- host->cur_clk = 0; /* Get this later */ +- } else { +- host->variable_clock = 0; +- host->cur_clk = host->max_clk; +- } +- + platform_set_drvdata(pdev, host); + + pr_debug("bcm2835_sdhost_probe -> OK\n"); +@@ -2173,10 +2081,6 @@ static int bcm2835_sdhost_remove(struct platform_device *pdev) + + pr_debug("bcm2835_sdhost_remove\n"); + +- if (host->variable_clock) +- cpufreq_unregister_notifier(&host->cpufreq_nb, +- CPUFREQ_TRANSITION_NOTIFIER); +- + mmc_remove_host(host->mmc); + + bcm2835_sdhost_set_power(host, false); + +From 18886054f90b47848c81b1cc786ec809d97b6b01 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Mon, 4 Apr 2016 16:03:18 +0100 +Subject: [PATCH 222/234] 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 +core clock. This removes the need to use the performance governor or +to enable io_is_busy on the on-demand governor in order to get the +best SD performance. + +N.B. As SD clocks must be an integer divisor of the core clock, it is +possible that the SD clock for "turbo" mode can be different (even +lower) than "normal" mode. + +Signed-off-by: Phil Elwell +--- + drivers/mmc/host/bcm2835-sdhost.c | 120 ++++++++++++++++++----------- + include/soc/bcm2835/raspberrypi-firmware.h | 1 + + 2 files changed, 74 insertions(+), 47 deletions(-) + +diff --git a/drivers/mmc/host/bcm2835-sdhost.c b/drivers/mmc/host/bcm2835-sdhost.c +index f43aae0..54087b2 100644 +--- a/drivers/mmc/host/bcm2835-sdhost.c ++++ b/drivers/mmc/host/bcm2835-sdhost.c +@@ -50,6 +50,7 @@ + #include + #include + #include ++#include + + #define DRIVER_NAME "sdhost-bcm2835" + +@@ -183,6 +184,7 @@ struct bcm2835_host { + unsigned int use_sbc:1; /* Send CMD23 */ + + unsigned int debug:1; /* Enable debug output */ ++ unsigned int firmware_sets_cdiv:1; /* Let the firmware manage the clock */ + + /*DMA part*/ + struct dma_chan *dma_chan_rxtx; /* DMA channel for reads and writes */ +@@ -430,7 +432,7 @@ static void bcm2835_sdhost_reset_internal(struct bcm2835_host *host) + host->clock = 0; + host->sectors = 0; + bcm2835_sdhost_write(host, host->hcfg, SDHCFG); +- bcm2835_sdhost_write(host, host->cdiv, SDCDIV); ++ bcm2835_sdhost_write(host, SDCDIV_MAX_CDIV, SDCDIV); + mmiowb(); + } + +@@ -1534,62 +1536,75 @@ void bcm2835_sdhost_set_clock(struct bcm2835_host *host, unsigned int clock) + + host->mmc->actual_clock = 0; + +- if (clock < 100000) { +- /* Can't stop the clock, but make it as slow as possible +- * to show willing +- */ +- host->cdiv = SDCDIV_MAX_CDIV; +- bcm2835_sdhost_write(host, host->cdiv, SDCDIV); +- return; +- } ++ if (host->firmware_sets_cdiv) { ++ u32 msg[3] = { clock, 0, 0 }; + +- div = host->max_clk / clock; +- if (div < 2) +- div = 2; +- if ((host->max_clk / div) > clock) +- div++; +- div -= 2; ++ rpi_firmware_property(rpi_firmware_get(NULL), ++ RPI_FIRMWARE_SET_SDHOST_CLOCK, ++ &msg, sizeof(msg)); + +- if (div > SDCDIV_MAX_CDIV) +- div = SDCDIV_MAX_CDIV; ++ clock = max(msg[1], msg[2]); ++ } else { ++ if (clock < 100000) { ++ /* Can't stop the clock, but make it as slow as ++ * possible to show willing ++ */ ++ host->cdiv = SDCDIV_MAX_CDIV; ++ bcm2835_sdhost_write(host, host->cdiv, SDCDIV); ++ return; ++ } + +- clock = host->max_clk / (div + 2); +- host->mmc->actual_clock = clock; ++ div = host->max_clk / clock; ++ if (div < 2) ++ div = 2; ++ if ((host->max_clk / div) > clock) ++ div++; ++ div -= 2; ++ ++ if (div > SDCDIV_MAX_CDIV) ++ div = SDCDIV_MAX_CDIV; ++ ++ clock = host->max_clk / (div + 2); ++ ++ host->cdiv = div; ++ bcm2835_sdhost_write(host, host->cdiv, SDCDIV); ++ ++ if (host->debug) ++ pr_info("%s: clock=%d -> max_clk=%d, cdiv=%x " ++ "(actual clock %d)\n", ++ mmc_hostname(host->mmc), input_clock, ++ host->max_clk, host->cdiv, ++ clock); ++ } + + /* Calibrate some delays */ + + host->ns_per_fifo_word = (1000000000/clock) * + ((host->mmc->caps & MMC_CAP_4_BIT_DATA) ? 8 : 32); + +- if (clock > input_clock) { +- /* Save the closest value, to make it easier +- to reduce in the event of error */ +- host->overclock_50 = (clock/MHZ); ++ if (input_clock == 50 * MHZ) { ++ if (clock > input_clock) { ++ /* Save the closest value, to make it easier ++ to reduce in the event of error */ ++ host->overclock_50 = (clock/MHZ); + +- if (clock != host->overclock) { +- pr_warn("%s: overclocking to %dHz\n", +- mmc_hostname(host->mmc), clock); +- host->overclock = clock; ++ if (clock != host->overclock) { ++ pr_warn("%s: overclocking to %dHz\n", ++ mmc_hostname(host->mmc), clock); ++ host->overclock = clock; ++ } ++ } else if (host->overclock) { ++ host->overclock = 0; ++ if (clock == 50 * MHZ) ++ pr_warn("%s: cancelling overclock\n", ++ mmc_hostname(host->mmc)); + } + } +- else if (host->overclock) +- { +- host->overclock = 0; +- if (clock == 50 * MHZ) +- pr_warn("%s: cancelling overclock\n", +- mmc_hostname(host->mmc)); +- } +- +- host->cdiv = div; +- bcm2835_sdhost_write(host, host->cdiv, SDCDIV); + + /* Set the timeout to 500ms */ +- bcm2835_sdhost_write(host, host->mmc->actual_clock/2, SDTOUT); ++ bcm2835_sdhost_write(host, clock/2, SDTOUT); + +- if (host->debug) +- pr_info("%s: clock=%d -> max_clk=%d, cdiv=%x (actual clock %d)\n", +- mmc_hostname(host->mmc), input_clock, +- host->max_clk, host->cdiv, host->mmc->actual_clock); ++ host->mmc->actual_clock = clock; + } + + static void bcm2835_sdhost_request(struct mmc_host *mmc, struct mmc_request *mrq) +@@ -1704,11 +1719,6 @@ static void bcm2835_sdhost_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) + + log_event("IOS<", ios->clock, 0); + +- if (!ios->clock || ios->clock != host->clock) { +- bcm2835_sdhost_set_clock(host, ios->clock); +- host->clock = ios->clock; +- } +- + /* set bus width */ + host->hcfg &= ~SDHCFG_WIDE_EXT_BUS; + if (ios->bus_width == MMC_BUS_WIDTH_4) +@@ -1721,6 +1731,11 @@ static void bcm2835_sdhost_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) + + bcm2835_sdhost_write(host, host->hcfg, SDHCFG); + ++ if (!ios->clock || ios->clock != host->clock) { ++ bcm2835_sdhost_set_clock(host, ios->clock); ++ host->clock = ios->clock; ++ } ++ + mmiowb(); + + spin_unlock_irqrestore(&host->lock, flags); +@@ -1953,6 +1968,7 @@ static int bcm2835_sdhost_probe(struct platform_device *pdev) + struct bcm2835_host *host; + struct mmc_host *mmc; + const __be32 *addr; ++ u32 msg[3]; + int ret; + + pr_debug("bcm2835_sdhost_probe\n"); +@@ -2058,6 +2074,16 @@ static int bcm2835_sdhost_probe(struct platform_device *pdev) + else + mmc->caps |= MMC_CAP_4_BIT_DATA; + ++ msg[0] = 0; ++ msg[1] = ~0; ++ msg[2] = ~0; ++ ++ rpi_firmware_property(rpi_firmware_get(NULL), ++ RPI_FIRMWARE_SET_SDHOST_CLOCK, ++ &msg, sizeof(msg)); ++ ++ host->firmware_sets_cdiv = (msg[1] != ~0); ++ + ret = bcm2835_sdhost_add_host(host); + if (ret) + goto err; +diff --git a/include/soc/bcm2835/raspberrypi-firmware.h b/include/soc/bcm2835/raspberrypi-firmware.h +index c844968..e312e9c 100644 +--- a/include/soc/bcm2835/raspberrypi-firmware.h ++++ b/include/soc/bcm2835/raspberrypi-firmware.h +@@ -79,6 +79,7 @@ enum rpi_firmware_property_tag { + RPI_FIRMWARE_SET_VOLTAGE = 0x00038003, + RPI_FIRMWARE_SET_TURBO = 0x00038009, + RPI_FIRMWARE_SET_CUSTOMER_OTP = 0x00038021, ++ RPI_FIRMWARE_SET_SDHOST_CLOCK = 0x00038042, + + /* Dispmanx TAGS */ + RPI_FIRMWARE_FRAMEBUFFER_ALLOCATE = 0x00040001, + +From 2cc0c036570e76548d3d54d7e1c02443380280e7 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Mon, 4 Apr 2016 19:52:27 +0100 +Subject: [PATCH 223/234] Revert "Revert "cpufreq: Temporarily ignore + io_is_busy=1"" + +This reverts commit c353af0f83220068c10f6593b1767576b9b6cc18. +--- + drivers/cpufreq/cpufreq_ondemand.c | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/drivers/cpufreq/cpufreq_ondemand.c b/drivers/cpufreq/cpufreq_ondemand.c +index 03ac6ce..99a9610 100644 +--- a/drivers/cpufreq/cpufreq_ondemand.c ++++ b/drivers/cpufreq/cpufreq_ondemand.c +@@ -307,7 +307,12 @@ static ssize_t store_io_is_busy(struct dbs_data *dbs_data, const char *buf, + ret = sscanf(buf, "%u", &input); + if (ret != 1) + return -EINVAL; +- od_tuners->io_is_busy = !!input; ++ // XXX temporary hack ++ if (input > 1) ++ input = 1; ++ else ++ input = 0; ++ od_tuners->io_is_busy = input; + + /* we need to re-evaluate prev_cpu_idle */ + for_each_online_cpu(j) { + +From 9436ca6258a029365e97604158214324914f43c8 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Thu, 31 Mar 2016 16:49:52 +0100 +Subject: [PATCH 224/234] config: Enabled IPV6_SUBTREES + +--- + arch/arm/configs/bcm2709_defconfig | 1 + + arch/arm/configs/bcmrpi_defconfig | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/arch/arm/configs/bcm2709_defconfig b/arch/arm/configs/bcm2709_defconfig +index 2c8e4b7..d509168 100644 +--- a/arch/arm/configs/bcm2709_defconfig ++++ b/arch/arm/configs/bcm2709_defconfig +@@ -106,6 +106,7 @@ CONFIG_INET6_ESP=m + CONFIG_INET6_IPCOMP=m + CONFIG_IPV6_TUNNEL=m + CONFIG_IPV6_MULTIPLE_TABLES=y ++CONFIG_IPV6_SUBTREES=y + CONFIG_IPV6_MROUTE=y + CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y + CONFIG_IPV6_PIMSM_V2=y +diff --git a/arch/arm/configs/bcmrpi_defconfig b/arch/arm/configs/bcmrpi_defconfig +index f6e2d84..060ec5f 100644 +--- a/arch/arm/configs/bcmrpi_defconfig ++++ b/arch/arm/configs/bcmrpi_defconfig +@@ -73,6 +73,7 @@ CONFIG_INET=y + CONFIG_IP_MULTICAST=y + CONFIG_IP_ADVANCED_ROUTER=y + CONFIG_IP_MULTIPLE_TABLES=y ++CONFIG_IPV6_SUBTREES=y + CONFIG_IP_ROUTE_MULTIPATH=y + CONFIG_IP_ROUTE_VERBOSE=y + CONFIG_IP_PNP=y + +From a92cb9e6067e9e599a5c559d77909929a99854fd Mon Sep 17 00:00:00 2001 +From: Sam Nazarko +Date: Fri, 1 Apr 2016 17:27:21 +0100 +Subject: [PATCH 225/234] add smsc95xx packetsize module_param + +Signed-off-by: Sam Nazarko +--- + drivers/net/usb/smsc95xx.c | 14 +++++++++----- + 1 file changed, 9 insertions(+), 5 deletions(-) + +diff --git a/drivers/net/usb/smsc95xx.c b/drivers/net/usb/smsc95xx.c +index a61bd08..3c23b11 100644 +--- a/drivers/net/usb/smsc95xx.c ++++ b/drivers/net/usb/smsc95xx.c +@@ -83,6 +83,10 @@ static char *macaddr = ":"; + module_param(macaddr, charp, 0); + MODULE_PARM_DESC(macaddr, "MAC address"); + ++static int packetsize = 0; ++module_param(packetsize, int, 0644); ++MODULE_PARM_DESC(packetsize, "Override the RX URB packet size"); ++ + static int __must_check __smsc95xx_read_reg(struct usbnet *dev, u32 index, + u32 *data, int in_pm) + { +@@ -1006,13 +1010,13 @@ static int smsc95xx_reset(struct usbnet *dev) + + if (!turbo_mode) { + burst_cap = 0; +- dev->rx_urb_size = MAX_SINGLE_PACKET_SIZE; ++ dev->rx_urb_size = packetsize ? packetsize : MAX_SINGLE_PACKET_SIZE; + } else if (dev->udev->speed == USB_SPEED_HIGH) { +- burst_cap = DEFAULT_HS_BURST_CAP_SIZE / HS_USB_PKT_SIZE; +- dev->rx_urb_size = DEFAULT_HS_BURST_CAP_SIZE; ++ dev->rx_urb_size = packetsize ? packetsize : DEFAULT_HS_BURST_CAP_SIZE; ++ burst_cap = dev->rx_urb_size / HS_USB_PKT_SIZE; + } else { +- burst_cap = DEFAULT_FS_BURST_CAP_SIZE / FS_USB_PKT_SIZE; +- dev->rx_urb_size = DEFAULT_FS_BURST_CAP_SIZE; ++ dev->rx_urb_size = packetsize ? packetsize : DEFAULT_FS_BURST_CAP_SIZE; ++ burst_cap = dev->rx_urb_size / FS_USB_PKT_SIZE; + } + + netif_dbg(dev, ifup, dev->net, "rx_urb_size=%ld\n", + +From 2aee7f4935f5b7d808ac81d4ec4c0588143cb27e Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Tue, 5 Apr 2016 19:40:12 +0100 +Subject: [PATCH 226/234] reboot: Use power off rather than busy spinning when + halt is requested + +--- + arch/arm/kernel/reboot.c | 6 +----- + 1 file changed, 1 insertion(+), 5 deletions(-) + +diff --git a/arch/arm/kernel/reboot.c b/arch/arm/kernel/reboot.c +index 3826935..2cd6af2 100644 +--- a/arch/arm/kernel/reboot.c ++++ b/arch/arm/kernel/reboot.c +@@ -102,11 +102,7 @@ void machine_shutdown(void) + */ + void machine_halt(void) + { +- local_irq_disable(); +- smp_send_stop(); +- +- local_irq_disable(); +- while (1); ++ machine_power_off(); + } + + /* + +From c927274d3b5f1da9a457a57bbd1b2860777faf48 Mon Sep 17 00:00:00 2001 +From: HiassofT +Date: Wed, 6 Apr 2016 21:45:01 +0200 +Subject: [PATCH 227/234] Revert "bcm2835-dma: Fix dreq not set for slave + transfers" + +This reverts commit 8ad957e866a1fe1450f663f2b00a57d7de44904c. + + + +DMA channels are set in devicetree, thus dreq will be set, + +and this commit is no longer needed. + + + +Signed-off-by: Matthias Reichl +--- + drivers/dma/bcm2835-dma.c | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/drivers/dma/bcm2835-dma.c b/drivers/dma/bcm2835-dma.c +index 985019b..d26b6bd 100644 +--- a/drivers/dma/bcm2835-dma.c ++++ b/drivers/dma/bcm2835-dma.c +@@ -679,8 +679,6 @@ static int bcm2835_dma_slave_config(struct dma_chan *chan, + } + + c->cfg = *cfg; +- if (!c->dreq) +- c->dreq = cfg->slave_id; + + return 0; + } + +From 08d5dba5adf90fbcbd4a480c9be2d701710e5206 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson <6by9@users.noreply.github.com> +Date: Fri, 1 Apr 2016 15:28:46 +0100 +Subject: [PATCH 228/234] RPi config: Add CONFIG_PWM_PCA9685 for NXP PCA9685 + driver over I2C + +Includes DT overlay to configure it. + +Signed-off-by: Dave Stevenson <6by9@users.noreply.github.com> +--- + arch/arm/boot/dts/overlays/Makefile | 1 + + arch/arm/boot/dts/overlays/README | 6 +++++ + .../boot/dts/overlays/i2c-pwm-pca9685a-overlay.dts | 26 ++++++++++++++++++++++ + arch/arm/configs/bcm2709_defconfig | 1 + + arch/arm/configs/bcmrpi_defconfig | 1 + + 5 files changed, 35 insertions(+) + create mode 100644 arch/arm/boot/dts/overlays/i2c-pwm-pca9685a-overlay.dts + +diff --git a/arch/arm/boot/dts/overlays/Makefile b/arch/arm/boot/dts/overlays/Makefile +index 7c4fc30..239c6a1 100644 +--- a/arch/arm/boot/dts/overlays/Makefile ++++ b/arch/arm/boot/dts/overlays/Makefile +@@ -30,6 +30,7 @@ dtbo-$(RPI_DT_OVERLAYS) += hy28b.dtbo + dtbo-$(RPI_DT_OVERLAYS) += i2c-rtc.dtbo + dtbo-$(RPI_DT_OVERLAYS) += i2c-gpio.dtbo + dtbo-$(RPI_DT_OVERLAYS) += i2c-mux-pca9548a.dtbo ++dtbo-$(RPI_DT_OVERLAYS) += i2c-pwm-pca9685a.dtbo + dtbo-$(RPI_DT_OVERLAYS) += i2c0-bcm2708.dtbo + dtbo-$(RPI_DT_OVERLAYS) += i2c1-bcm2708.dtbo + dtbo-$(RPI_DT_OVERLAYS) += i2s-mmap.dtbo +diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README +index 337be4a..9df71a4 100644 +--- a/arch/arm/boot/dts/overlays/README ++++ b/arch/arm/boot/dts/overlays/README +@@ -366,6 +366,12 @@ Load: dtoverlay=i2c-mux-pca9548a,= + Params: addr I2C address of PCA9548A (default 0x70) + + ++Name: i2c-pwm-pca9685a ++Info: Adds support for an NXP PCA9685A I2C PWM controller on i2c_arm ++Load: dtoverlay=i2c-pwm-pca9685a,= ++Params: addr I2C address of PCA9685A (default 0x40) ++ ++ + Name: i2c-rtc + Info: Adds support for a number of I2C Real Time Clock devices + Load: dtoverlay=i2c-rtc,= +diff --git a/arch/arm/boot/dts/overlays/i2c-pwm-pca9685a-overlay.dts b/arch/arm/boot/dts/overlays/i2c-pwm-pca9685a-overlay.dts +new file mode 100644 +index 0000000..d1ffd23 +--- /dev/null ++++ b/arch/arm/boot/dts/overlays/i2c-pwm-pca9685a-overlay.dts +@@ -0,0 +1,26 @@ ++// Definitions for NXP PCA9685A I2C PWM controller on ARM I2C bus. ++/dts-v1/; ++/plugin/; ++ ++/{ ++ compatible = "brcm,bcm2708"; ++ ++ fragment@0 { ++ target = <&i2c_arm>; ++ __overlay__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ status = "okay"; ++ ++ pca: pca@40 { ++ compatible = "nxp,pca9685"; ++ #pwm-cells = <2>; ++ reg = <0x40>; ++ status = "okay"; ++ }; ++ }; ++ }; ++ __overrides__ { ++ addr = <&pca>,"reg:0"; ++ }; ++}; +diff --git a/arch/arm/configs/bcm2709_defconfig b/arch/arm/configs/bcm2709_defconfig +index d509168..299d7be 100644 +--- a/arch/arm/configs/bcm2709_defconfig ++++ b/arch/arm/configs/bcm2709_defconfig +@@ -1122,6 +1122,7 @@ CONFIG_MCP320X=m + CONFIG_MCP3422=m + CONFIG_DHT11=m + CONFIG_PWM_BCM2835=m ++CONFIG_PWM_PCA9685=m + CONFIG_RASPBERRYPI_FIRMWARE=y + CONFIG_EXT4_FS=y + CONFIG_EXT4_FS_POSIX_ACL=y +diff --git a/arch/arm/configs/bcmrpi_defconfig b/arch/arm/configs/bcmrpi_defconfig +index 060ec5f..acda16b 100644 +--- a/arch/arm/configs/bcmrpi_defconfig ++++ b/arch/arm/configs/bcmrpi_defconfig +@@ -1129,6 +1129,7 @@ CONFIG_MCP320X=m + CONFIG_MCP3422=m + CONFIG_DHT11=m + CONFIG_PWM_BCM2835=m ++CONFIG_PWM_PCA9685=m + CONFIG_RASPBERRYPI_FIRMWARE=y + CONFIG_EXT4_FS=y + CONFIG_EXT4_FS_POSIX_ACL=y + +From 621c9797f5e53c515f436ff8d4386083872b3531 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Fri, 8 Apr 2016 17:43:27 +0100 +Subject: [PATCH 229/234] BCM270X_DT: Don't generate "linux,phandle" props + +The EPAPR standard says to use "phandle" properties to store phandles, +rather than the deprecated "linux,phandle" version. By default, dtc +generates both, but adding "-H epapr" causes it to only generate +"phandle"s, saving some space and clutter. + +Signed-off-by: Phil Elwell +--- + arch/arm/boot/dts/Makefile | 2 +- + scripts/Makefile.lib | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile +index fdc450f..49badba 100644 +--- a/arch/arm/boot/dts/Makefile ++++ b/arch/arm/boot/dts/Makefile +@@ -813,5 +813,5 @@ clean-files := *.dtb + + # Enable fixups to support overlays on BCM2708 platforms + ifeq ($(RPI_DT_OVERLAYS),y) +- DTC_FLAGS ?= -@ ++ DTC_FLAGS ?= -@ -H epapr + endif +diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib +index 7209d62..3079c4f 100644 +--- a/scripts/Makefile.lib ++++ b/scripts/Makefile.lib +@@ -294,7 +294,7 @@ $(obj)/%.dtb: $(src)/%.dts FORCE + + quiet_cmd_dtco = DTCO $@ + cmd_dtco = $(CPP) $(dtc_cpp_flags) -x assembler-with-cpp -o $(dtc-tmp) $< ; \ +- $(objtree)/scripts/dtc/dtc -@ -O dtb -o $@ -b 0 \ ++ $(objtree)/scripts/dtc/dtc -@ -H epapr -O dtb -o $@ -b 0 \ + -i $(dir $<) $(DTC_FLAGS) \ + -d $(depfile).dtc.tmp $(dtc-tmp) ; \ + cat $(depfile).pre.tmp $(depfile).dtc.tmp > $(depfile) + +From dff9d538a4b43b3f37beb13767692c0e8c4ca7ac Mon Sep 17 00:00:00 2001 +From: 6by9 <6by9@users.noreply.github.com> +Date: Fri, 8 Apr 2016 18:15:43 +0100 +Subject: [PATCH 230/234] V4L2 driver updates (#1393) + +* BCM2835-V4L2: Correct ISO control and add V4L2_CID_ISO_SENSITIVITY_AUTO + +https://github.com/raspberrypi/linux/issues/1251 + +V4L2_CID_ISO_SENSITIVITY was not advertising ISO*1000 as it should. +V4L2_CID_ISO_SENSITIVITY_AUTO was not implemented, so was taking +V4L2_CID_ISO_SENSITIVITY as 0 for auto mode. +Still accepts 0 for auto, but also abides by the new parameter. + +Signed-off-by: Dave Stevenson <6by9@users.noreply.github.com> + +* BCM2835-V4L2: Add a video_nr parameter. + +Adds a kernel parameter "video_nr" to specify the preferred +/dev/videoX device node. +https://www.raspberrypi.org/forums/viewtopic.php?f=38&t=136120&p=905545 + +Signed-off-by: Dave Stevenson <6by9@users.noreply.github.com> + +* BCM2835-V4L2: Add support for multiple cameras + +Ask GPU on load how many cameras have been detected, and +enumerate that number of devices. +Only applicable on the Compute Module as no other device +exposes multiple CSI2 interfaces. + +Signed-off-by: Dave Stevenson <6by9@users.noreply.github.com> + +* BCM2835-V4L2: Add control of the overlay location and alpha. + +Actually do something useful in vidioc_s_fmt_vid_overlay and +vidioc_try_fmt_vid_overlay, rather than effectively having +read-only fields. + +Signed-off-by: Dave Stevenson <6by9@users.noreply.github.com> + +* BCM2835-V4L2: V4L2-Compliance failure fix + +VIDIOC_TRY_FMT was failing due to bytesperline not +being set correctly by default. + +Signed-off-by: Dave Stevenson <6by9@users.noreply.github.com> + +* BCM2835-V4L2: Make all module parameters static + +Clean up to correct variable scope + +Signed-off-by: Dave Stevenson <6by9@users.noreply.github.com> +--- + drivers/media/platform/bcm2835/bcm2835-camera.c | 372 +++++++++++++++-------- + drivers/media/platform/bcm2835/bcm2835-camera.h | 19 +- + drivers/media/platform/bcm2835/controls.c | 31 +- + drivers/media/platform/bcm2835/mmal-parameters.h | 33 ++ + 4 files changed, 320 insertions(+), 135 deletions(-) + +diff --git a/drivers/media/platform/bcm2835/bcm2835-camera.c b/drivers/media/platform/bcm2835/bcm2835-camera.c +index 98a892e..0e6c9b4 100644 +--- a/drivers/media/platform/bcm2835/bcm2835-camera.c ++++ b/drivers/media/platform/bcm2835/bcm2835-camera.c +@@ -45,6 +45,8 @@ + #define MAX_VIDEO_MODE_WIDTH 1280 + #define MAX_VIDEO_MODE_HEIGHT 720 + ++#define MAX_BCM2835_CAMERAS 2 ++ + MODULE_DESCRIPTION("Broadcom 2835 MMAL video capture"); + MODULE_AUTHOR("Vincent Sanders"); + MODULE_LICENSE("GPL"); +@@ -54,8 +56,13 @@ int bcm2835_v4l2_debug; + module_param_named(debug, bcm2835_v4l2_debug, int, 0644); + MODULE_PARM_DESC(bcm2835_v4l2_debug, "Debug level 0-2"); + +-int max_video_width = MAX_VIDEO_MODE_WIDTH; +-int max_video_height = MAX_VIDEO_MODE_HEIGHT; ++#define UNSET (-1) ++static int video_nr[] = {[0 ... (MAX_BCM2835_CAMERAS - 1)] = UNSET }; ++module_param_array(video_nr, int, NULL, 0644); ++MODULE_PARM_DESC(video_nr, "videoX start numbers, -1 is autodetect"); ++ ++static int max_video_width = MAX_VIDEO_MODE_WIDTH; ++static int max_video_height = MAX_VIDEO_MODE_HEIGHT; + module_param(max_video_width, int, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH); + MODULE_PARM_DESC(max_video_width, "Threshold for video mode"); + module_param(max_video_height, int, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH); +@@ -70,11 +77,12 @@ MODULE_PARM_DESC(max_video_height, "Threshold for video mode"); + * our function table list (actually switch to an alternate set, but same + * result). + */ +-int gst_v4l2src_is_broken = 0; ++static int gst_v4l2src_is_broken; + module_param(gst_v4l2src_is_broken, int, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH); + MODULE_PARM_DESC(gst_v4l2src_is_broken, "If non-zero, enable workaround for Gstreamer"); + +-static struct bm2835_mmal_dev *gdev; /* global device data */ ++/* global device data array */ ++static struct bm2835_mmal_dev *gdev[MAX_BCM2835_CAMERAS]; + + #define FPS_MIN 1 + #define FPS_MAX 90 +@@ -413,6 +421,17 @@ static int enable_camera(struct bm2835_mmal_dev *dev) + { + int ret; + if (!dev->camera_use_count) { ++ ret = vchiq_mmal_port_parameter_set( ++ dev->instance, ++ &dev->component[MMAL_COMPONENT_CAMERA]->control, ++ MMAL_PARAMETER_CAMERA_NUM, &dev->camera_num, ++ sizeof(dev->camera_num)); ++ if (ret < 0) { ++ v4l2_err(&dev->v4l2_dev, ++ "Failed setting camera num, ret %d\n", ret); ++ return -EINVAL; ++ } ++ + ret = vchiq_mmal_component_enable( + dev->instance, + dev->component[MMAL_COMPONENT_CAMERA]); +@@ -647,6 +666,30 @@ static struct vb2_ops bm2835_mmal_video_qops = { + IOCTL operations + ------------------------------------------------------------------*/ + ++static int set_overlay_params(struct bm2835_mmal_dev *dev, ++ struct vchiq_mmal_port *port) ++{ ++ int ret; ++ struct mmal_parameter_displayregion prev_config = { ++ .set = MMAL_DISPLAY_SET_LAYER | MMAL_DISPLAY_SET_ALPHA | ++ MMAL_DISPLAY_SET_DEST_RECT | MMAL_DISPLAY_SET_FULLSCREEN, ++ .layer = PREVIEW_LAYER, ++ .alpha = dev->overlay.global_alpha, ++ .fullscreen = 0, ++ .dest_rect = { ++ .x = dev->overlay.w.left, ++ .y = dev->overlay.w.top, ++ .width = dev->overlay.w.width, ++ .height = dev->overlay.w.height, ++ }, ++ }; ++ ret = vchiq_mmal_port_parameter_set(dev->instance, port, ++ MMAL_PARAMETER_DISPLAYREGION, ++ &prev_config, sizeof(prev_config)); ++ ++ return ret; ++} ++ + /* overlay ioctl */ + static int vidioc_enum_fmt_vid_overlay(struct file *file, void *priv, + struct v4l2_fmtdesc *f) +@@ -678,10 +721,31 @@ static int vidioc_g_fmt_vid_overlay(struct file *file, void *priv, + static int vidioc_try_fmt_vid_overlay(struct file *file, void *priv, + struct v4l2_format *f) + { +- /* Only support one format so get the current one. */ +- vidioc_g_fmt_vid_overlay(file, priv, f); ++ struct bm2835_mmal_dev *dev = video_drvdata(file); + +- /* todo: allow the size and/or offset to be changed. */ ++ f->fmt.win.field = V4L2_FIELD_NONE; ++ f->fmt.win.chromakey = 0; ++ f->fmt.win.clips = NULL; ++ f->fmt.win.clipcount = 0; ++ f->fmt.win.bitmap = NULL; ++ ++ v4l_bound_align_image(&f->fmt.win.w.width, MIN_WIDTH, MAX_WIDTH, 1, ++ &f->fmt.win.w.height, MIN_HEIGHT, MAX_HEIGHT, ++ 1, 0); ++ v4l_bound_align_image(&f->fmt.win.w.left, MIN_WIDTH, MAX_WIDTH, 1, ++ &f->fmt.win.w.top, MIN_HEIGHT, MAX_HEIGHT, ++ 1, 0); ++ ++ v4l2_dbg(1, bcm2835_v4l2_debug, &dev->v4l2_dev, ++ "Overlay: Now w/h %dx%d l/t %dx%d\n", ++ f->fmt.win.w.width, f->fmt.win.w.height, ++ f->fmt.win.w.left, f->fmt.win.w.top); ++ ++ v4l2_dump_win_format(1, ++ bcm2835_v4l2_debug, ++ &dev->v4l2_dev, ++ &f->fmt.win, ++ __func__); + return 0; + } + +@@ -693,8 +757,11 @@ static int vidioc_s_fmt_vid_overlay(struct file *file, void *priv, + vidioc_try_fmt_vid_overlay(file, priv, f); + + dev->overlay = f->fmt.win; ++ if (dev->component[MMAL_COMPONENT_PREVIEW]->enabled) { ++ set_overlay_params(dev, ++ &dev->component[MMAL_COMPONENT_PREVIEW]->input[0]); ++ } + +- /* todo: program the preview port parameters */ + return 0; + } + +@@ -704,20 +771,6 @@ static int vidioc_overlay(struct file *file, void *f, unsigned int on) + struct bm2835_mmal_dev *dev = video_drvdata(file); + struct vchiq_mmal_port *src; + struct vchiq_mmal_port *dst; +- struct mmal_parameter_displayregion prev_config = { +- .set = MMAL_DISPLAY_SET_LAYER | MMAL_DISPLAY_SET_ALPHA | +- MMAL_DISPLAY_SET_DEST_RECT | MMAL_DISPLAY_SET_FULLSCREEN, +- .layer = PREVIEW_LAYER, +- .alpha = 255, +- .fullscreen = 0, +- .dest_rect = { +- .x = dev->overlay.w.left, +- .y = dev->overlay.w.top, +- .width = dev->overlay.w.width, +- .height = dev->overlay.w.height, +- }, +- }; +- + if ((on && dev->component[MMAL_COMPONENT_PREVIEW]->enabled) || + (!on && !dev->component[MMAL_COMPONENT_PREVIEW]->enabled)) + return 0; /* already in requested state */ +@@ -749,9 +802,7 @@ static int vidioc_overlay(struct file *file, void *f, unsigned int on) + if (ret < 0) + goto error; + +- ret = vchiq_mmal_port_parameter_set(dev->instance, dst, +- MMAL_PARAMETER_DISPLAYREGION, +- &prev_config, sizeof(prev_config)); ++ ret = set_overlay_params(dev, dst); + if (ret < 0) + goto error; + +@@ -782,6 +833,9 @@ static int vidioc_g_fbuf(struct file *file, void *fh, + struct vchiq_mmal_port *preview_port = + &dev->component[MMAL_COMPONENT_CAMERA]-> + output[MMAL_CAMERA_PORT_PREVIEW]; ++ ++ a->capability = V4L2_FBUF_CAP_EXTERNOVERLAY | ++ V4L2_FBUF_CAP_GLOBAL_ALPHA; + a->flags = V4L2_FBUF_FLAG_OVERLAY; + a->fmt.width = preview_port->es.video.width; + a->fmt.height = preview_port->es.video.height; +@@ -1445,6 +1499,34 @@ static struct video_device vdev_template = { + .release = video_device_release_empty, + }; + ++static int get_num_cameras(struct vchiq_mmal_instance *instance) ++{ ++ int ret; ++ struct vchiq_mmal_component *cam_info_component; ++ struct mmal_parameter_camera_info_t cam_info = {0}; ++ int param_size = sizeof(cam_info); ++ ++ /* create a camera_info component */ ++ ret = vchiq_mmal_component_init(instance, "camera_info", ++ &cam_info_component); ++ if (ret < 0) ++ /* Unusual failure - let's guess one camera. */ ++ return 1; ++ ++ if (vchiq_mmal_port_parameter_get(instance, ++ &cam_info_component->control, ++ MMAL_PARAMETER_CAMERA_INFO, ++ &cam_info, ++ ¶m_size)) { ++ pr_info("Failed to get camera info\n"); ++ } ++ ++ vchiq_mmal_component_finalise(instance, ++ cam_info_component); ++ ++ return cam_info.num_cameras; ++} ++ + static int set_camera_parameters(struct vchiq_mmal_instance *instance, + struct vchiq_mmal_component *camera) + { +@@ -1685,7 +1767,9 @@ static int __init bm2835_mmal_init_device(struct bm2835_mmal_dev *dev, + /* video device needs to be able to access instance data */ + video_set_drvdata(vfd, dev); + +- ret = video_register_device(vfd, VFL_TYPE_GRABBER, -1); ++ ret = video_register_device(vfd, ++ VFL_TYPE_GRABBER, ++ video_nr[dev->camera_num]); + if (ret < 0) + return ret; + +@@ -1696,10 +1780,52 @@ static int __init bm2835_mmal_init_device(struct bm2835_mmal_dev *dev, + return 0; + } + ++void bcm2835_cleanup_instance(struct bm2835_mmal_dev *dev) ++{ ++ if (!dev) ++ return; ++ ++ v4l2_info(&dev->v4l2_dev, "unregistering %s\n", ++ video_device_node_name(&dev->vdev)); ++ ++ video_unregister_device(&dev->vdev); ++ ++ if (dev->capture.encode_component) { ++ v4l2_dbg(1, bcm2835_v4l2_debug, &dev->v4l2_dev, ++ "mmal_exit - disconnect tunnel\n"); ++ vchiq_mmal_port_connect_tunnel(dev->instance, ++ dev->capture.camera_port, NULL); ++ vchiq_mmal_component_disable(dev->instance, ++ dev->capture.encode_component); ++ } ++ vchiq_mmal_component_disable(dev->instance, ++ dev->component[MMAL_COMPONENT_CAMERA]); ++ ++ vchiq_mmal_component_finalise(dev->instance, ++ dev-> ++ component[MMAL_COMPONENT_VIDEO_ENCODE]); ++ ++ vchiq_mmal_component_finalise(dev->instance, ++ dev-> ++ component[MMAL_COMPONENT_IMAGE_ENCODE]); ++ ++ vchiq_mmal_component_finalise(dev->instance, ++ dev->component[MMAL_COMPONENT_PREVIEW]); ++ ++ vchiq_mmal_component_finalise(dev->instance, ++ dev->component[MMAL_COMPONENT_CAMERA]); ++ ++ v4l2_ctrl_handler_free(&dev->ctrl_handler); ++ ++ v4l2_device_unregister(&dev->v4l2_dev); ++ ++ kfree(dev); ++} ++ + static struct v4l2_format default_v4l2_format = { + .fmt.pix.pixelformat = V4L2_PIX_FMT_JPEG, + .fmt.pix.width = 1024, +- .fmt.pix.bytesperline = 1024, ++ .fmt.pix.bytesperline = 0, + .fmt.pix.height = 768, + .fmt.pix.sizeimage = 1024*768, + }; +@@ -1709,76 +1835,93 @@ static int __init bm2835_mmal_init(void) + int ret; + struct bm2835_mmal_dev *dev; + struct vb2_queue *q; ++ int camera; ++ unsigned int num_cameras; ++ struct vchiq_mmal_instance *instance; + +- dev = kzalloc(sizeof(*gdev), GFP_KERNEL); +- if (!dev) +- return -ENOMEM; +- +- /* setup device defaults */ +- dev->overlay.w.left = 150; +- dev->overlay.w.top = 50; +- dev->overlay.w.width = 1024; +- dev->overlay.w.height = 768; +- dev->overlay.clipcount = 0; +- dev->overlay.field = V4L2_FIELD_NONE; +- +- dev->capture.fmt = &formats[3]; /* JPEG */ +- +- /* v4l device registration */ +- snprintf(dev->v4l2_dev.name, sizeof(dev->v4l2_dev.name), +- "%s", BM2835_MMAL_MODULE_NAME); +- ret = v4l2_device_register(NULL, &dev->v4l2_dev); +- if (ret) +- goto free_dev; +- +- /* setup v4l controls */ +- ret = bm2835_mmal_init_controls(dev, &dev->ctrl_handler); ++ ret = vchiq_mmal_init(&instance); + if (ret < 0) +- goto unreg_dev; +- dev->v4l2_dev.ctrl_handler = &dev->ctrl_handler; ++ return ret; + +- /* mmal init */ +- ret = mmal_init(dev); +- if (ret < 0) +- goto unreg_dev; +- +- /* initialize queue */ +- q = &dev->capture.vb_vidq; +- memset(q, 0, sizeof(*q)); +- q->type = V4L2_BUF_TYPE_VIDEO_CAPTURE; +- q->io_modes = VB2_MMAP | VB2_USERPTR | VB2_READ; +- q->drv_priv = dev; +- q->buf_struct_size = sizeof(struct mmal_buffer); +- q->ops = &bm2835_mmal_video_qops; +- q->mem_ops = &vb2_vmalloc_memops; +- q->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC; +- ret = vb2_queue_init(q); +- if (ret < 0) +- goto unreg_dev; ++ num_cameras = get_num_cameras(instance); ++ if (num_cameras > MAX_BCM2835_CAMERAS) ++ num_cameras = MAX_BCM2835_CAMERAS; + +- /* v4l2 core mutex used to protect all fops and v4l2 ioctls. */ +- mutex_init(&dev->mutex); ++ for (camera = 0; camera < num_cameras; camera++) { ++ dev = kzalloc(sizeof(struct bm2835_mmal_dev), GFP_KERNEL); ++ if (!dev) ++ return -ENOMEM; + +- /* initialise video devices */ +- ret = bm2835_mmal_init_device(dev, &dev->vdev); +- if (ret < 0) +- goto unreg_dev; ++ dev->camera_num = camera; + +- /* Really want to call vidioc_s_fmt_vid_cap with the default +- * format, but currently the APIs don't join up. +- */ +- ret = mmal_setup_components(dev, &default_v4l2_format); +- if (ret < 0) { +- v4l2_err(&dev->v4l2_dev, +- "%s: could not setup components\n", __func__); +- goto unreg_dev; +- } ++ /* setup device defaults */ ++ dev->overlay.w.left = 150; ++ dev->overlay.w.top = 50; ++ dev->overlay.w.width = 1024; ++ dev->overlay.w.height = 768; ++ dev->overlay.clipcount = 0; ++ dev->overlay.field = V4L2_FIELD_NONE; ++ dev->overlay.global_alpha = 255; + +- v4l2_info(&dev->v4l2_dev, +- "Broadcom 2835 MMAL video capture ver %s loaded.\n", +- BM2835_MMAL_VERSION); ++ dev->capture.fmt = &formats[3]; /* JPEG */ ++ ++ /* v4l device registration */ ++ snprintf(dev->v4l2_dev.name, sizeof(dev->v4l2_dev.name), ++ "%s", BM2835_MMAL_MODULE_NAME); ++ ret = v4l2_device_register(NULL, &dev->v4l2_dev); ++ if (ret) ++ goto free_dev; ++ ++ /* setup v4l controls */ ++ ret = bm2835_mmal_init_controls(dev, &dev->ctrl_handler); ++ if (ret < 0) ++ goto unreg_dev; ++ dev->v4l2_dev.ctrl_handler = &dev->ctrl_handler; ++ ++ /* mmal init */ ++ dev->instance = instance; ++ ret = mmal_init(dev); ++ if (ret < 0) ++ goto unreg_dev; ++ ++ /* initialize queue */ ++ q = &dev->capture.vb_vidq; ++ memset(q, 0, sizeof(*q)); ++ q->type = V4L2_BUF_TYPE_VIDEO_CAPTURE; ++ q->io_modes = VB2_MMAP | VB2_USERPTR | VB2_READ; ++ q->drv_priv = dev; ++ q->buf_struct_size = sizeof(struct mmal_buffer); ++ q->ops = &bm2835_mmal_video_qops; ++ q->mem_ops = &vb2_vmalloc_memops; ++ q->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC; ++ ret = vb2_queue_init(q); ++ if (ret < 0) ++ goto unreg_dev; ++ ++ /* v4l2 core mutex used to protect all fops and v4l2 ioctls. */ ++ mutex_init(&dev->mutex); ++ ++ /* initialise video devices */ ++ ret = bm2835_mmal_init_device(dev, &dev->vdev); ++ if (ret < 0) ++ goto unreg_dev; ++ ++ /* Really want to call vidioc_s_fmt_vid_cap with the default ++ * format, but currently the APIs don't join up. ++ */ ++ ret = mmal_setup_components(dev, &default_v4l2_format); ++ if (ret < 0) { ++ v4l2_err(&dev->v4l2_dev, ++ "%s: could not setup components\n", __func__); ++ goto unreg_dev; ++ } + +- gdev = dev; ++ v4l2_info(&dev->v4l2_dev, ++ "Broadcom 2835 MMAL video capture ver %s loaded.\n", ++ BM2835_MMAL_VERSION); ++ ++ gdev[camera] = dev; ++ } + return 0; + + unreg_dev: +@@ -1788,8 +1931,11 @@ unreg_dev: + free_dev: + kfree(dev); + +- v4l2_err(&dev->v4l2_dev, +- "%s: error %d while loading driver\n", ++ for ( ; camera > 0; camera--) { ++ bcm2835_cleanup_instance(gdev[camera]); ++ gdev[camera] = NULL; ++ } ++ pr_info("%s: error %d while loading driver\n", + BM2835_MMAL_MODULE_NAME, ret); + + return ret; +@@ -1797,46 +1943,14 @@ free_dev: + + static void __exit bm2835_mmal_exit(void) + { +- if (!gdev) +- return; +- +- v4l2_info(&gdev->v4l2_dev, "unregistering %s\n", +- video_device_node_name(&gdev->vdev)); ++ int camera; ++ struct vchiq_mmal_instance *instance = gdev[0]->instance; + +- video_unregister_device(&gdev->vdev); +- +- if (gdev->capture.encode_component) { +- v4l2_dbg(1, bcm2835_v4l2_debug, &gdev->v4l2_dev, +- "mmal_exit - disconnect tunnel\n"); +- vchiq_mmal_port_connect_tunnel(gdev->instance, +- gdev->capture.camera_port, NULL); +- vchiq_mmal_component_disable(gdev->instance, +- gdev->capture.encode_component); ++ for (camera = 0; camera < MAX_BCM2835_CAMERAS; camera++) { ++ bcm2835_cleanup_instance(gdev[camera]); ++ gdev[camera] = NULL; + } +- vchiq_mmal_component_disable(gdev->instance, +- gdev->component[MMAL_COMPONENT_CAMERA]); +- +- vchiq_mmal_component_finalise(gdev->instance, +- gdev-> +- component[MMAL_COMPONENT_VIDEO_ENCODE]); +- +- vchiq_mmal_component_finalise(gdev->instance, +- gdev-> +- component[MMAL_COMPONENT_IMAGE_ENCODE]); +- +- vchiq_mmal_component_finalise(gdev->instance, +- gdev->component[MMAL_COMPONENT_PREVIEW]); +- +- vchiq_mmal_component_finalise(gdev->instance, +- gdev->component[MMAL_COMPONENT_CAMERA]); +- +- vchiq_mmal_finalise(gdev->instance); +- +- v4l2_ctrl_handler_free(&gdev->ctrl_handler); +- +- v4l2_device_unregister(&gdev->v4l2_dev); +- +- kfree(gdev); ++ vchiq_mmal_finalise(instance); + } + + module_init(bm2835_mmal_init); +diff --git a/drivers/media/platform/bcm2835/bcm2835-camera.h b/drivers/media/platform/bcm2835/bcm2835-camera.h +index 7fe9f65..202906b 100644 +--- a/drivers/media/platform/bcm2835/bcm2835-camera.h ++++ b/drivers/media/platform/bcm2835/bcm2835-camera.h +@@ -15,7 +15,7 @@ + * core driver device + */ + +-#define V4L2_CTRL_COUNT 28 /* number of v4l controls */ ++#define V4L2_CTRL_COUNT 29 /* number of v4l controls */ + + enum { + MMAL_COMPONENT_CAMERA = 0, +@@ -58,6 +58,8 @@ struct bm2835_mmal_dev { + enum mmal_parameter_exposuremeteringmode metering_mode; + unsigned int manual_shutter_speed; + bool exp_auto_priority; ++ bool manual_iso_enabled; ++ uint32_t iso; + + /* allocated mmal instance and components */ + struct vchiq_mmal_instance *instance; +@@ -104,6 +106,8 @@ struct bm2835_mmal_dev { + + } capture; + ++ unsigned int camera_num; ++ + }; + + int bm2835_mmal_init_controls( +@@ -124,3 +128,16 @@ int set_framerate_params(struct bm2835_mmal_dev *dev); + (pix_fmt)->pixelformat, (pix_fmt)->bytesperline, \ + (pix_fmt)->sizeimage, (pix_fmt)->colorspace, (pix_fmt)->priv); \ + } ++#define v4l2_dump_win_format(level, debug, dev, win_fmt, desc) \ ++{ \ ++ v4l2_dbg(level, debug, dev, \ ++"%s: w %u h %u l %u t %u field %u chromakey %06X clip %p " \ ++"clipcount %u bitmap %p\n", \ ++ desc == NULL ? "" : desc, \ ++ (win_fmt)->w.width, (win_fmt)->w.height, \ ++ (win_fmt)->w.left, (win_fmt)->w.top, \ ++ (win_fmt)->field, \ ++ (win_fmt)->chromakey, \ ++ (win_fmt)->clips, (win_fmt)->clipcount, \ ++ (win_fmt)->bitmap); \ ++} +diff --git a/drivers/media/platform/bcm2835/controls.c b/drivers/media/platform/bcm2835/controls.c +index f9f903f..fe61330 100644 +--- a/drivers/media/platform/bcm2835/controls.c ++++ b/drivers/media/platform/bcm2835/controls.c +@@ -49,10 +49,13 @@ static const s64 ev_bias_qmenu[] = { + 4000 + }; + +-/* Supported ISO values ++/* Supported ISO values (*1000) + * ISOO = auto ISO + */ + static const s64 iso_qmenu[] = { ++ 0, 100000, 200000, 400000, 800000, ++}; ++static const uint32_t iso_values[] = { + 0, 100, 200, 400, 800, + }; + +@@ -201,7 +204,7 @@ static int ctrl_set_value(struct bm2835_mmal_dev *dev, + &u32_value, sizeof(u32_value)); + } + +-static int ctrl_set_value_menu(struct bm2835_mmal_dev *dev, ++static int ctrl_set_iso(struct bm2835_mmal_dev *dev, + struct v4l2_ctrl *ctrl, + const struct bm2835_mmal_v4l2_ctrl *mmal_ctrl) + { +@@ -211,12 +214,23 @@ static int ctrl_set_value_menu(struct bm2835_mmal_dev *dev, + if (ctrl->val > mmal_ctrl->max || ctrl->val < mmal_ctrl->min) + return 1; + ++ if (ctrl->id == V4L2_CID_ISO_SENSITIVITY) ++ dev->iso = iso_values[ctrl->val]; ++ else if (ctrl->id == V4L2_CID_ISO_SENSITIVITY_AUTO) ++ dev->manual_iso_enabled = ++ (ctrl->val == V4L2_ISO_SENSITIVITY_MANUAL ? ++ true : ++ false); ++ + control = &dev->component[MMAL_COMPONENT_CAMERA]->control; + +- u32_value = mmal_ctrl->imenu[ctrl->val]; ++ if (dev->manual_iso_enabled) ++ u32_value = dev->iso; ++ else ++ u32_value = 0; + + return vchiq_mmal_port_parameter_set(dev->instance, control, +- mmal_ctrl->mmal_id, ++ MMAL_PARAMETER_ISO, + &u32_value, sizeof(u32_value)); + } + +@@ -956,7 +970,14 @@ static const struct bm2835_mmal_v4l2_ctrl v4l2_ctrls[V4L2_CTRL_COUNT] = { + V4L2_CID_ISO_SENSITIVITY, MMAL_CONTROL_TYPE_INT_MENU, + 0, ARRAY_SIZE(iso_qmenu) - 1, 0, 1, iso_qmenu, + MMAL_PARAMETER_ISO, +- &ctrl_set_value_menu, ++ &ctrl_set_iso, ++ false ++ }, ++ { ++ V4L2_CID_ISO_SENSITIVITY_AUTO, MMAL_CONTROL_TYPE_STD_MENU, ++ 0, 1, V4L2_ISO_SENSITIVITY_AUTO, 1, NULL, ++ MMAL_PARAMETER_ISO, ++ &ctrl_set_iso, + false + }, + { +diff --git a/drivers/media/platform/bcm2835/mmal-parameters.h b/drivers/media/platform/bcm2835/mmal-parameters.h +index aa0fd18..f6abb5c 100644 +--- a/drivers/media/platform/bcm2835/mmal-parameters.h ++++ b/drivers/media/platform/bcm2835/mmal-parameters.h +@@ -654,3 +654,36 @@ struct mmal_parameter_imagefx_parameters { + u32 num_effect_params; + u32 effect_parameter[MMAL_MAX_IMAGEFX_PARAMETERS]; + }; ++ ++#define MMAL_PARAMETER_CAMERA_INFO_MAX_CAMERAS 4 ++#define MMAL_PARAMETER_CAMERA_INFO_MAX_FLASHES 2 ++#define MMAL_PARAMETER_CAMERA_INFO_MAX_STR_LEN 16 ++ ++struct mmal_parameter_camera_info_camera_t { ++ u32 port_id; ++ u32 max_width; ++ u32 max_height; ++ u32 lens_present; ++ u8 camera_name[MMAL_PARAMETER_CAMERA_INFO_MAX_STR_LEN]; ++}; ++ ++enum mmal_parameter_camera_info_flash_type_t { ++ /* Make values explicit to ensure they match values in config ini */ ++ MMAL_PARAMETER_CAMERA_INFO_FLASH_TYPE_XENON = 0, ++ MMAL_PARAMETER_CAMERA_INFO_FLASH_TYPE_LED = 1, ++ MMAL_PARAMETER_CAMERA_INFO_FLASH_TYPE_OTHER = 2, ++ MMAL_PARAMETER_CAMERA_INFO_FLASH_TYPE_MAX = 0x7FFFFFFF ++}; ++ ++struct mmal_parameter_camera_info_flash_t { ++ enum mmal_parameter_camera_info_flash_type_t flash_type; ++}; ++ ++struct mmal_parameter_camera_info_t { ++ u32 num_cameras; ++ u32 num_flashes; ++ struct mmal_parameter_camera_info_camera_t ++ cameras[MMAL_PARAMETER_CAMERA_INFO_MAX_CAMERAS]; ++ struct mmal_parameter_camera_info_flash_t ++ flashes[MMAL_PARAMETER_CAMERA_INFO_MAX_FLASHES]; ++}; + +From d81fdb740f3dde1fc4a2a32c71c31ddb24a285e0 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Mon, 11 Apr 2016 12:50:58 +0100 +Subject: [PATCH 231/234] 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 +is not a task. + +Signed-off-by: Phil Elwell +--- + drivers/mmc/host/bcm2835-sdhost.c | 25 ++++++++++++++++++------- + 1 file changed, 18 insertions(+), 7 deletions(-) + +diff --git a/drivers/mmc/host/bcm2835-sdhost.c b/drivers/mmc/host/bcm2835-sdhost.c +index 54087b2..a57faed 100644 +--- a/drivers/mmc/host/bcm2835-sdhost.c ++++ b/drivers/mmc/host/bcm2835-sdhost.c +@@ -185,6 +185,7 @@ struct bcm2835_host { + + unsigned int debug:1; /* Enable debug output */ + unsigned int firmware_sets_cdiv:1; /* Let the firmware manage the clock */ ++ unsigned int reset_clock:1; /* Reset the clock fore the next request */ + + /*DMA part*/ + struct dma_chan *dma_chan_rxtx; /* DMA channel for reads and writes */ +@@ -1505,6 +1506,7 @@ void bcm2835_sdhost_set_clock(struct bcm2835_host *host, unsigned int clock) + { + int div = 0; /* Initialized for compiler warning */ + unsigned int input_clock = clock; ++ unsigned long flags; + + if (host->debug) + pr_info("%s: set_clock(%d)\n", mmc_hostname(host->mmc), clock); +@@ -1544,13 +1546,17 @@ void bcm2835_sdhost_set_clock(struct bcm2835_host *host, unsigned int clock) + &msg, sizeof(msg)); + + clock = max(msg[1], msg[2]); ++ spin_lock_irqsave(&host->lock, flags); + } else { ++ spin_lock_irqsave(&host->lock, flags); + if (clock < 100000) { + /* Can't stop the clock, but make it as slow as + * possible to show willing + */ + host->cdiv = SDCDIV_MAX_CDIV; + bcm2835_sdhost_write(host, host->cdiv, SDCDIV); ++ mmiowb(); ++ spin_unlock_irqrestore(&host->lock, flags); + return; + } + +@@ -1605,6 +1611,11 @@ void bcm2835_sdhost_set_clock(struct bcm2835_host *host, unsigned int clock) + bcm2835_sdhost_write(host, clock/2, SDTOUT); + + host->mmc->actual_clock = clock; ++ host->clock = input_clock; ++ host->reset_clock = 0; ++ ++ mmiowb(); ++ spin_unlock_irqrestore(&host->lock, flags); + } + + static void bcm2835_sdhost_request(struct mmc_host *mmc, struct mmc_request *mrq) +@@ -1653,6 +1664,9 @@ static void bcm2835_sdhost_request(struct mmc_host *mmc, struct mmc_request *mrq + (mrq->data->blocks > host->pio_limit)) + bcm2835_sdhost_prepare_dma(host, mrq->data); + ++ if (host->reset_clock) ++ bcm2835_sdhost_set_clock(host, host->clock); ++ + spin_lock_irqsave(&host->lock, flags); + + WARN_ON(host->mrq != NULL); +@@ -1731,14 +1745,12 @@ static void bcm2835_sdhost_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) + + bcm2835_sdhost_write(host, host->hcfg, SDHCFG); + +- if (!ios->clock || ios->clock != host->clock) { +- bcm2835_sdhost_set_clock(host, ios->clock); +- host->clock = ios->clock; +- } +- + mmiowb(); + + spin_unlock_irqrestore(&host->lock, flags); ++ ++ if (!ios->clock || ios->clock != host->clock) ++ bcm2835_sdhost_set_clock(host, ios->clock); + } + + static struct mmc_host_ops bcm2835_sdhost_ops = { +@@ -1810,7 +1822,7 @@ static void bcm2835_sdhost_tasklet_finish(unsigned long param) + host->overclock_50--; + pr_warn("%s: reducing overclock due to errors\n", + mmc_hostname(host->mmc)); +- bcm2835_sdhost_set_clock(host,50*MHZ); ++ host->reset_clock = 1; + mrq->cmd->error = -EILSEQ; + mrq->cmd->retries = 1; + } +@@ -1979,7 +1991,6 @@ static int bcm2835_sdhost_probe(struct platform_device *pdev) + mmc->ops = &bcm2835_sdhost_ops; + host = mmc_priv(mmc); + host->mmc = mmc; +- host->cmd_quick_poll_retries = 0; + host->pio_timeout = msecs_to_jiffies(500); + host->pio_limit = 1; + host->max_delay = 1; /* Warn if over 1ms */ + +From 8408669aa8e6eb61ef750d6f3b233d727f8c3025 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Thu, 7 Apr 2016 12:44:24 +0100 +Subject: [PATCH 232/234] config: Enable CONFIG_IPV6_ROUTER_PREF for networks + with multiple routers + +--- + arch/arm/configs/bcm2709_defconfig | 1 + + arch/arm/configs/bcmrpi_defconfig | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/arch/arm/configs/bcm2709_defconfig b/arch/arm/configs/bcm2709_defconfig +index 299d7be..7bfc073 100644 +--- a/arch/arm/configs/bcm2709_defconfig ++++ b/arch/arm/configs/bcm2709_defconfig +@@ -101,6 +101,7 @@ CONFIG_INET_XFRM_MODE_TUNNEL=m + CONFIG_INET_XFRM_MODE_BEET=m + CONFIG_INET_LRO=m + CONFIG_INET_DIAG=m ++CONFIG_IPV6_ROUTER_PREF=y + CONFIG_INET6_AH=m + CONFIG_INET6_ESP=m + CONFIG_INET6_IPCOMP=m +diff --git a/arch/arm/configs/bcmrpi_defconfig b/arch/arm/configs/bcmrpi_defconfig +index acda16b..59026b3 100644 +--- a/arch/arm/configs/bcmrpi_defconfig ++++ b/arch/arm/configs/bcmrpi_defconfig +@@ -95,6 +95,7 @@ CONFIG_INET_XFRM_MODE_TUNNEL=m + CONFIG_INET_XFRM_MODE_BEET=m + CONFIG_INET_LRO=m + CONFIG_INET_DIAG=m ++CONFIG_IPV6_ROUTER_PREF=y + CONFIG_INET6_AH=m + CONFIG_INET6_ESP=m + CONFIG_INET6_IPCOMP=m + +From c7a28efacd9fd4b26554c661d819c1c35ed93c05 Mon Sep 17 00:00:00 2001 +From: jochenberger +Date: Thu, 7 Apr 2016 21:38:46 +0200 +Subject: [PATCH 233/234] Enable hid-betopff module + +Add force feedback support for Betop based devices +https://github.com/raspberrypi/linux/blob/rpi-4.1.y/drivers/hid/hid-betopff.c +--- + arch/arm/configs/bcm2709_defconfig | 1 + + arch/arm/configs/bcmrpi_defconfig | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/arch/arm/configs/bcm2709_defconfig b/arch/arm/configs/bcm2709_defconfig +index 7bfc073..31e3ac5 100644 +--- a/arch/arm/configs/bcm2709_defconfig ++++ b/arch/arm/configs/bcm2709_defconfig +@@ -867,6 +867,7 @@ CONFIG_HID_A4TECH=m + CONFIG_HID_ACRUX=m + CONFIG_HID_APPLE=m + CONFIG_HID_BELKIN=m ++CONFIG_HID_BETOP_FF=m + CONFIG_HID_CHERRY=m + CONFIG_HID_CHICONY=m + CONFIG_HID_CYPRESS=m +diff --git a/arch/arm/configs/bcmrpi_defconfig b/arch/arm/configs/bcmrpi_defconfig +index 59026b3..ac9287f 100644 +--- a/arch/arm/configs/bcmrpi_defconfig ++++ b/arch/arm/configs/bcmrpi_defconfig +@@ -859,6 +859,7 @@ CONFIG_HID_A4TECH=m + CONFIG_HID_ACRUX=m + CONFIG_HID_APPLE=m + CONFIG_HID_BELKIN=m ++CONFIG_HID_BETOP_FF=m + CONFIG_HID_CHERRY=m + CONFIG_HID_CHICONY=m + CONFIG_HID_CYPRESS=m + +From 258d5112d854cb9c2e302378ad20c1798a32b43c Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Tue, 12 Apr 2016 12:45:16 +0100 +Subject: [PATCH 234/234] config: Make IPV6 a module and regenerate with + defconfig + +--- + arch/arm/configs/bcm2709_defconfig | 4 ++-- + arch/arm/configs/bcmrpi_defconfig | 6 +++--- + 2 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/arch/arm/configs/bcm2709_defconfig b/arch/arm/configs/bcm2709_defconfig +index 31e3ac5..5a8ab1e 100644 +--- a/arch/arm/configs/bcm2709_defconfig ++++ b/arch/arm/configs/bcm2709_defconfig +@@ -101,6 +101,7 @@ CONFIG_INET_XFRM_MODE_TUNNEL=m + CONFIG_INET_XFRM_MODE_BEET=m + CONFIG_INET_LRO=m + CONFIG_INET_DIAG=m ++CONFIG_IPV6=m + CONFIG_IPV6_ROUTER_PREF=y + CONFIG_INET6_AH=m + CONFIG_INET6_ESP=m +@@ -600,10 +601,9 @@ CONFIG_HW_RANDOM=y + CONFIG_RAW_DRIVER=y + CONFIG_I2C=y + CONFIG_I2C_CHARDEV=m ++CONFIG_I2C_MUX_PCA954x=m + CONFIG_I2C_BCM2708=m + CONFIG_I2C_GPIO=m +-CONFIG_I2C_MUX=m +-CONFIG_I2C_MUX_PCA954x=m + CONFIG_SPI=y + CONFIG_SPI_BCM2835=m + CONFIG_SPI_BCM2835AUX=m +diff --git a/arch/arm/configs/bcmrpi_defconfig b/arch/arm/configs/bcmrpi_defconfig +index ac9287f..852751e 100644 +--- a/arch/arm/configs/bcmrpi_defconfig ++++ b/arch/arm/configs/bcmrpi_defconfig +@@ -73,7 +73,6 @@ CONFIG_INET=y + CONFIG_IP_MULTICAST=y + CONFIG_IP_ADVANCED_ROUTER=y + CONFIG_IP_MULTIPLE_TABLES=y +-CONFIG_IPV6_SUBTREES=y + CONFIG_IP_ROUTE_MULTIPATH=y + CONFIG_IP_ROUTE_VERBOSE=y + CONFIG_IP_PNP=y +@@ -95,12 +94,14 @@ CONFIG_INET_XFRM_MODE_TUNNEL=m + CONFIG_INET_XFRM_MODE_BEET=m + CONFIG_INET_LRO=m + CONFIG_INET_DIAG=m ++CONFIG_IPV6=m + CONFIG_IPV6_ROUTER_PREF=y + CONFIG_INET6_AH=m + CONFIG_INET6_ESP=m + CONFIG_INET6_IPCOMP=m + CONFIG_IPV6_TUNNEL=m + CONFIG_IPV6_MULTIPLE_TABLES=y ++CONFIG_IPV6_SUBTREES=y + CONFIG_IPV6_MROUTE=y + CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y + CONFIG_IPV6_PIMSM_V2=y +@@ -593,10 +594,9 @@ CONFIG_HW_RANDOM=y + CONFIG_RAW_DRIVER=y + CONFIG_I2C=y + CONFIG_I2C_CHARDEV=m ++CONFIG_I2C_MUX_PCA954x=m + CONFIG_I2C_BCM2708=m + CONFIG_I2C_GPIO=m +-CONFIG_I2C_MUX=m +-CONFIG_I2C_MUX_PCA954x=m + CONFIG_SPI=y + CONFIG_SPI_BCM2835=m + CONFIG_SPI_BCM2835AUX=m From 2dd55d6cf913ed884ab9c084353831aaa1705b84 Mon Sep 17 00:00:00 2001 From: MilhouseVH Date: Wed, 13 Apr 2016 19:44:46 +0100 Subject: [PATCH 3/3] RBP: Update firmware efdcf16 --- packages/graphics/bcm2835-driver/package.mk | 2 +- packages/tools/bcm2835-bootloader/package.mk | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/graphics/bcm2835-driver/package.mk b/packages/graphics/bcm2835-driver/package.mk index 659e4dddd2..68d36f723e 100644 --- a/packages/graphics/bcm2835-driver/package.mk +++ b/packages/graphics/bcm2835-driver/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="bcm2835-driver" -PKG_VERSION="046effa" +PKG_VERSION="efdcf16" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="nonfree" diff --git a/packages/tools/bcm2835-bootloader/package.mk b/packages/tools/bcm2835-bootloader/package.mk index 5204ab1677..bcd25a208a 100644 --- a/packages/tools/bcm2835-bootloader/package.mk +++ b/packages/tools/bcm2835-bootloader/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="bcm2835-bootloader" -PKG_VERSION="046effa" +PKG_VERSION="efdcf16" PKG_REV="1" PKG_ARCH="arm" PKG_LICENSE="nonfree"