diff --git a/packages/graphics/bcm2835-driver/package.mk b/packages/graphics/bcm2835-driver/package.mk index 64d03d32cc..1ad6b4dfaa 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="ec5a517" +PKG_VERSION="c53b9e5" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="nonfree" diff --git a/packages/linux/package.mk b/packages/linux/package.mk index 4e6b7d777b..10ff8c5e38 100644 --- a/packages/linux/package.mk +++ b/packages/linux/package.mk @@ -56,7 +56,7 @@ case "$LINUX" in PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET imx6-status-led imx6-soc-fan irqbalanced" ;; *) - PKG_VERSION="4.8.4" + PKG_VERSION="4.8.6" 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.8.4/linux-999-i915-extend-fake-hdmi-live-status-to-valley-view.patch b/packages/linux/patches/4.8.4/linux-999-i915-extend-fake-hdmi-live-status-to-valley-view.patch deleted file mode 100644 index 315d09a9c3..0000000000 --- a/packages/linux/patches/4.8.4/linux-999-i915-extend-fake-hdmi-live-status-to-valley-view.patch +++ /dev/null @@ -1,29 +0,0 @@ -Subject: [PATCH] drm/i915: Extend Fake HDMI live status to Valley View - -On Atom E38xx based boards from two different manufacturers we have -encountered the HDMI display being disabled early during the boot process. - -Extending the Fake HDMI live status to include Valley View chipsets -fixes this problem on both boards. - -Signed-off-by: James Stafford ---- - drivers/gpu/drm/i915/intel_hdmi.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/drivers/gpu/drm/i915/intel_hdmi.c -b/drivers/gpu/drm/i915/intel_hdmi.c -index 6b52c6a..358f9b2 100644 ---- a/drivers/gpu/drm/i915/intel_hdmi.c -+++ b/drivers/gpu/drm/i915/intel_hdmi.c -@@ -1507,7 +1507,7 @@ intel_hdmi_detect(struct drm_connector *connector, bool force) - * So consider live_status only for certain platforms, for - * others, read EDID to determine presence of sink. - */ -- if (INTEL_INFO(dev_priv)->gen < 7 || IS_IVYBRIDGE(dev_priv)) -+ if (INTEL_INFO(dev_priv)->gen < 7 || IS_IVYBRIDGE(dev_priv) || IS_VALLEYVIEW(dev_priv)) - live_status = true; - } - --- -2.7.4 diff --git a/packages/linux/patches/4.8.4/linux-004-fix-build-with-gcc-5.patch b/packages/linux/patches/4.8.6/linux-004-fix-build-with-gcc-5.patch similarity index 100% rename from packages/linux/patches/4.8.4/linux-004-fix-build-with-gcc-5.patch rename to packages/linux/patches/4.8.6/linux-004-fix-build-with-gcc-5.patch diff --git a/packages/linux/patches/4.8.4/linux-051-ouya_controller_support.patch b/packages/linux/patches/4.8.6/linux-051-ouya_controller_support.patch similarity index 100% rename from packages/linux/patches/4.8.4/linux-051-ouya_controller_support.patch rename to packages/linux/patches/4.8.6/linux-051-ouya_controller_support.patch diff --git a/packages/linux/patches/4.8.4/linux-052-XBOX_remote_support.patch b/packages/linux/patches/4.8.6/linux-052-XBOX_remote_support.patch similarity index 100% rename from packages/linux/patches/4.8.4/linux-052-XBOX_remote_support.patch rename to packages/linux/patches/4.8.6/linux-052-XBOX_remote_support.patch diff --git a/packages/linux/patches/4.8.4/linux-053-spinelplus-remote-0.2.patch b/packages/linux/patches/4.8.6/linux-053-spinelplus-remote-0.2.patch similarity index 100% rename from packages/linux/patches/4.8.4/linux-053-spinelplus-remote-0.2.patch rename to packages/linux/patches/4.8.6/linux-053-spinelplus-remote-0.2.patch diff --git a/packages/linux/patches/4.8.4/linux-054-nuvoton_revert_d7b290a1056c5564eec8a1b169c6e84ff3.6.114c13.patch b/packages/linux/patches/4.8.6/linux-054-nuvoton_revert_d7b290a1056c5564eec8a1b169c6e84ff3.6.114c13.patch similarity index 100% rename from packages/linux/patches/4.8.4/linux-054-nuvoton_revert_d7b290a1056c5564eec8a1b169c6e84ff3.6.114c13.patch rename to packages/linux/patches/4.8.6/linux-054-nuvoton_revert_d7b290a1056c5564eec8a1b169c6e84ff3.6.114c13.patch diff --git a/packages/linux/patches/4.8.4/linux-057-Removed-MCE-customer-code-restriction-in-rc6-decode.patch b/packages/linux/patches/4.8.6/linux-057-Removed-MCE-customer-code-restriction-in-rc6-decode.patch similarity index 100% rename from packages/linux/patches/4.8.4/linux-057-Removed-MCE-customer-code-restriction-in-rc6-decode.patch rename to packages/linux/patches/4.8.6/linux-057-Removed-MCE-customer-code-restriction-in-rc6-decode.patch diff --git a/packages/linux/patches/4.8.4/linux-058.05-hid_sony-add_autorepeat_for_PS3_remotes.patch b/packages/linux/patches/4.8.6/linux-058.05-hid_sony-add_autorepeat_for_PS3_remotes.patch similarity index 100% rename from packages/linux/patches/4.8.4/linux-058.05-hid_sony-add_autorepeat_for_PS3_remotes.patch rename to packages/linux/patches/4.8.6/linux-058.05-hid_sony-add_autorepeat_for_PS3_remotes.patch diff --git a/packages/linux/patches/4.8.4/linux-062-imon_pad_ignore_diagonal.patch b/packages/linux/patches/4.8.6/linux-062-imon_pad_ignore_diagonal.patch similarity index 100% rename from packages/linux/patches/4.8.4/linux-062-imon_pad_ignore_diagonal.patch rename to packages/linux/patches/4.8.6/linux-062-imon_pad_ignore_diagonal.patch diff --git a/packages/linux/patches/4.8.4/linux-203-stb0899_enable_low_symbol_rate.patch b/packages/linux/patches/4.8.6/linux-203-stb0899_enable_low_symbol_rate.patch similarity index 100% rename from packages/linux/patches/4.8.4/linux-203-stb0899_enable_low_symbol_rate.patch rename to packages/linux/patches/4.8.6/linux-203-stb0899_enable_low_symbol_rate.patch diff --git a/packages/linux/patches/4.8.4/linux-212-mantis_stb0899_faster_lock.patch b/packages/linux/patches/4.8.6/linux-212-mantis_stb0899_faster_lock.patch similarity index 100% rename from packages/linux/patches/4.8.4/linux-212-mantis_stb0899_faster_lock.patch rename to packages/linux/patches/4.8.6/linux-212-mantis_stb0899_faster_lock.patch diff --git a/packages/linux/patches/4.8.4/linux-221-ddbridge-features.patch b/packages/linux/patches/4.8.6/linux-221-ddbridge-features.patch similarity index 100% rename from packages/linux/patches/4.8.4/linux-221-ddbridge-features.patch rename to packages/linux/patches/4.8.6/linux-221-ddbridge-features.patch diff --git a/packages/linux/patches/4.8.4/linux-222-stb0899_signal_quality.patch b/packages/linux/patches/4.8.6/linux-222-stb0899_signal_quality.patch similarity index 100% rename from packages/linux/patches/4.8.4/linux-222-stb0899_signal_quality.patch rename to packages/linux/patches/4.8.6/linux-222-stb0899_signal_quality.patch diff --git a/packages/linux/patches/4.8.4/linux-227-ds3000-invalid-symbol-rate.patch b/packages/linux/patches/4.8.6/linux-227-ds3000-invalid-symbol-rate.patch similarity index 100% rename from packages/linux/patches/4.8.4/linux-227-ds3000-invalid-symbol-rate.patch rename to packages/linux/patches/4.8.6/linux-227-ds3000-invalid-symbol-rate.patch diff --git a/packages/linux/patches/4.8.4/linux-950-saa716x_PCIe_interface_chipset.patch.todo b/packages/linux/patches/4.8.6/linux-950-saa716x_PCIe_interface_chipset.patch.todo similarity index 100% rename from packages/linux/patches/4.8.4/linux-950-saa716x_PCIe_interface_chipset.patch.todo rename to packages/linux/patches/4.8.6/linux-950-saa716x_PCIe_interface_chipset.patch.todo diff --git a/packages/linux/patches/4.8.4/linux-990.06-hda-Avoid-outputting-HDMI-audio-before-prepare-.patch b/packages/linux/patches/4.8.6/linux-990.06-hda-Avoid-outputting-HDMI-audio-before-prepare-.patch similarity index 100% rename from packages/linux/patches/4.8.4/linux-990.06-hda-Avoid-outputting-HDMI-audio-before-prepare-.patch rename to packages/linux/patches/4.8.6/linux-990.06-hda-Avoid-outputting-HDMI-audio-before-prepare-.patch diff --git a/packages/linux/patches/4.8.4/linux-999-i915-Fix-random-GPU-hang-Bug-156851.patch b/packages/linux/patches/4.8.6/linux-999-i915-Fix-random-GPU-hang-Bug-156851.patch similarity index 100% rename from packages/linux/patches/4.8.4/linux-999-i915-Fix-random-GPU-hang-Bug-156851.patch rename to packages/linux/patches/4.8.6/linux-999-i915-Fix-random-GPU-hang-Bug-156851.patch diff --git a/packages/linux/patches/4.8.4/linux-999-i915-chris-wilson-limit-depth-of-display-pipeline.patch b/packages/linux/patches/4.8.6/linux-999-i915-chris-wilson-limit-depth-of-display-pipeline.patch similarity index 100% rename from packages/linux/patches/4.8.4/linux-999-i915-chris-wilson-limit-depth-of-display-pipeline.patch rename to packages/linux/patches/4.8.6/linux-999-i915-chris-wilson-limit-depth-of-display-pipeline.patch diff --git a/packages/linux/patches/4.8.4/linux-999-i915-fixes-and-diagnostics-for-braswell.patch b/packages/linux/patches/4.8.6/linux-999-i915-fixes-and-diagnostics-for-braswell.patch similarity index 100% rename from packages/linux/patches/4.8.4/linux-999-i915-fixes-and-diagnostics-for-braswell.patch rename to packages/linux/patches/4.8.6/linux-999-i915-fixes-and-diagnostics-for-braswell.patch diff --git a/packages/linux/patches/4.8.4/linux-999-i915-implement-passthrough-colors.patch b/packages/linux/patches/4.8.6/linux-999-i915-implement-passthrough-colors.patch similarity index 100% rename from packages/linux/patches/4.8.4/linux-999-i915-implement-passthrough-colors.patch rename to packages/linux/patches/4.8.6/linux-999-i915-implement-passthrough-colors.patch diff --git a/packages/linux/patches/4.8.4/linux-999-i915-use-legacy-turbo.patch b/packages/linux/patches/4.8.6/linux-999-i915-use-legacy-turbo.patch similarity index 100% rename from packages/linux/patches/4.8.4/linux-999-i915-use-legacy-turbo.patch rename to packages/linux/patches/4.8.6/linux-999-i915-use-legacy-turbo.patch diff --git a/packages/linux/patches/4.8.4/linux-999-partly-revert-media-rc-core.patch b/packages/linux/patches/4.8.6/linux-999-partly-revert-media-rc-core.patch similarity index 100% rename from packages/linux/patches/4.8.4/linux-999-partly-revert-media-rc-core.patch rename to packages/linux/patches/4.8.6/linux-999-partly-revert-media-rc-core.patch diff --git a/packages/linux/patches/4.8.4/linux-999.02-0001-pm-disable-async-suspend-resume-by-default.patch b/packages/linux/patches/4.8.6/linux-999.02-0001-pm-disable-async-suspend-resume-by-default.patch similarity index 100% rename from packages/linux/patches/4.8.4/linux-999.02-0001-pm-disable-async-suspend-resume-by-default.patch rename to packages/linux/patches/4.8.6/linux-999.02-0001-pm-disable-async-suspend-resume-by-default.patch diff --git a/packages/linux/patches/4.8.4/linux-999.05-eMMC-Don-t-initialize-partitions-on-RPMB-flagged-are.patch b/packages/linux/patches/4.8.6/linux-999.05-eMMC-Don-t-initialize-partitions-on-RPMB-flagged-are.patch similarity index 100% rename from packages/linux/patches/4.8.4/linux-999.05-eMMC-Don-t-initialize-partitions-on-RPMB-flagged-are.patch rename to packages/linux/patches/4.8.6/linux-999.05-eMMC-Don-t-initialize-partitions-on-RPMB-flagged-are.patch diff --git a/packages/tools/bcm2835-bootloader/package.mk b/packages/tools/bcm2835-bootloader/package.mk index 140cb6e553..33f4d8b0ce 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="ec5a517" +PKG_VERSION="c53b9e5" PKG_REV="1" PKG_ARCH="arm" PKG_LICENSE="nonfree" diff --git a/projects/Generic/patches/linux/linux-030-BYT-CHT-SOC-audio-support.patch b/projects/Generic/patches/linux/linux-030-BYT-CHT-SOC-audio-support.patch index 9d5d1c5b17..8d15755afb 100644 --- a/projects/Generic/patches/linux/linux-030-BYT-CHT-SOC-audio-support.patch +++ b/projects/Generic/patches/linux/linux-030-BYT-CHT-SOC-audio-support.patch @@ -1,34 +1,7 @@ -From 982a9c5bbe16cabc297e75d6d9e8d2926f5641b8 Mon Sep 17 00:00:00 2001 -From: Pierre-Louis Bossart -Date: Wed, 2 Mar 2016 14:30:44 -0600 -Subject: [PATCH 01/12] drm: i915: remove intel_hdmi variable declaration - -'intel_hdmi' variable is redeclared, use same variable declared in -function scope. - -Signed-off-by: Pierre-Louis Bossart ---- - drivers/gpu/drm/i915/intel_hdmi.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c -index 4df9f38..34e497f 100644 ---- a/drivers/gpu/drm/i915/intel_hdmi.c -+++ b/drivers/gpu/drm/i915/intel_hdmi.c -@@ -1496,7 +1496,7 @@ intel_hdmi_detect(struct drm_connector *connector, bool force) - intel_hdmi_unset_edid(connector); - - if (intel_hdmi_set_edid(connector, live_status)) { -- struct intel_hdmi *intel_hdmi = intel_attached_hdmi(connector); -+ intel_hdmi = intel_attached_hdmi(connector); - - hdmi_to_dig_port(intel_hdmi)->base.type = INTEL_OUTPUT_HDMI; - status = connector_status_connected; - -From 9a4bb140fbca791441bcf93ddf0a2ae062bc9945 Mon Sep 17 00:00:00 2001 +From 3902239e5cff2b4df1fe67e6b4bc362ca022ab51 Mon Sep 17 00:00:00 2001 From: Pierre-Louis Bossart Date: Tue, 1 Mar 2016 16:25:04 -0600 -Subject: [PATCH 02/12] drm/i915: Add headers for non-HDAudio HDMI interface +Subject: [PATCH 01/12] drm/i915: Add headers for non-HDAudio HDMI interface Add header files for interface available on Baytrail and CherryTrail @@ -181,18 +154,18 @@ index 0000000..165bba5 + +#endif /* __HDMI_AUDIO_IF_H */ diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h -index f68c789..4c682fae 100644 +index 8b9ee4e..12582b1 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h -@@ -63,6 +63,7 @@ - #include "i915_gem_render_state.h" +@@ -64,6 +64,7 @@ + #include "i915_gem_request.h" #include "intel_gvt.h" +#include "hdmi_audio_if.h" /* General customization: */ -@@ -1208,6 +1209,18 @@ struct intel_gen6_power_mgmt { +@@ -1236,6 +1237,18 @@ struct intel_gen6_power_mgmt { struct mutex hw_lock; }; @@ -211,7 +184,7 @@ index f68c789..4c682fae 100644 /* defined intel_pm.c */ extern spinlock_t mchdev_lock; -@@ -2066,6 +2079,19 @@ struct drm_i915_private { +@@ -2081,6 +2094,19 @@ struct drm_i915_private { struct intel_encoder *dig_port_map[I915_MAX_PORTS]; @@ -231,7 +204,7 @@ index f68c789..4c682fae 100644 /* * NOTE: This is the dri1/ums dungeon, don't add stuff here. Your patch * will be rejected. Instead look for a better place. -@@ -3903,6 +3929,11 @@ int intel_freq_opcode(struct drm_i915_private *dev_priv, int val); +@@ -3761,6 +3787,11 @@ int intel_freq_opcode(struct drm_i915_private *dev_priv, int val); } while (upper != old_upper && loop++ < 2); \ (u64)upper << 32 | lower; }) @@ -244,7 +217,7 @@ index f68c789..4c682fae 100644 #define POSTING_READ16(reg) (void)I915_READ16_NOTRACE(reg) diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h -index bf2cad3..bb0378f2d 100644 +index 70d9616..72ea5a8 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h @@ -2131,7 +2131,25 @@ enum skl_disp_power_wells { @@ -292,10 +265,10 @@ index bf2cad3..bb0378f2d 100644 #define PORT_DFT_I9XX _MMIO(0x61150) #define DC_BALANCE_RESET (1 << 25) diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h -index ff399b9..83915b1 100644 +index a19ec06..b781c0b 100644 --- a/drivers/gpu/drm/i915/intel_drv.h +++ b/drivers/gpu/drm/i915/intel_drv.h -@@ -796,6 +796,14 @@ struct cxsr_latency { +@@ -824,6 +824,14 @@ struct cxsr_latency { #define to_intel_plane_state(x) container_of(x, struct intel_plane_state, base) #define intel_fb_obj(x) (x ? to_intel_framebuffer(x)->obj : NULL) @@ -310,7 +283,7 @@ index ff399b9..83915b1 100644 struct intel_hdmi { i915_reg_t hdmi_reg; int ddc_bus; -@@ -811,6 +819,9 @@ struct intel_hdmi { +@@ -839,6 +847,9 @@ struct intel_hdmi { bool rgb_quant_range_selectable; enum hdmi_picture_aspect aspect_ratio; struct intel_connector *attached_connector; @@ -320,7 +293,7 @@ index ff399b9..83915b1 100644 void (*write_infoframe)(struct drm_encoder *encoder, enum hdmi_infoframe_type type, const void *frame, ssize_t len); -@@ -1263,6 +1274,8 @@ intel_rotation_90_or_270(unsigned int rotation) +@@ -1293,6 +1304,8 @@ intel_rotation_90_or_270(unsigned int rotation) void intel_create_rotation_property(struct drm_device *dev, struct intel_plane *plane); @@ -330,10 +303,10 @@ index ff399b9..83915b1 100644 void assert_pch_transcoder_disabled(struct drm_i915_private *dev_priv, enum pipe pipe); -From 0aca8e42f07b0f84970a39d7f91b33a9899001a9 Mon Sep 17 00:00:00 2001 +From ea1770285c030c114d62204799ef0b583fcd7b12 Mon Sep 17 00:00:00 2001 From: Pierre-Louis Bossart Date: Tue, 1 Mar 2016 16:25:04 -0600 -Subject: [PATCH 03/12] drm/i915: changes for non-HDAudio HDMI interface +Subject: [PATCH 02/12] drm/i915: changes for non-HDAudio HDMI interface Changes to existing code for interface available on Baytrail and CherryTrail @@ -359,16 +332,16 @@ Signed-off-by: David Henningsson Signed-off-by: Pierre-Louis Bossart Signed-off-by: Toyo Abe --- - drivers/gpu/drm/i915/i915_irq.c | 169 +++++++++++++++++++++++++++- - drivers/gpu/drm/i915/intel_display.c | 100 +++++++++++++++++ - drivers/gpu/drm/i915/intel_hdmi.c | 212 ++++++++++++++++++++++++++++++++++- - 3 files changed, 478 insertions(+), 3 deletions(-) + drivers/gpu/drm/i915/i915_irq.c | 169 ++++++++++++++++++++++++++- + drivers/gpu/drm/i915/intel_display.c | 100 ++++++++++++++++ + drivers/gpu/drm/i915/intel_hdmi.c | 215 ++++++++++++++++++++++++++++++++++- + 3 files changed, 480 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c -index 1c2aec3..93ad21e 100644 +index 3fc286c..82ff6ed 100644 --- a/drivers/gpu/drm/i915/i915_irq.c +++ b/drivers/gpu/drm/i915/i915_irq.c -@@ -587,6 +587,42 @@ i915_disable_pipestat(struct drm_i915_private *dev_priv, enum pipe pipe, +@@ -593,6 +593,42 @@ i915_disable_pipestat(struct drm_i915_private *dev_priv, enum pipe pipe, __i915_disable_pipestat(dev_priv, pipe, enable_mask, status_mask); } @@ -411,7 +384,7 @@ index 1c2aec3..93ad21e 100644 /** * i915_enable_asle_pipestat - enable ASLE pipestat for OpRegion * @dev_priv: i915 device private -@@ -1618,6 +1654,24 @@ static bool intel_pipe_handle_vblank(struct drm_i915_private *dev_priv, +@@ -1617,6 +1653,24 @@ static bool intel_pipe_handle_vblank(struct drm_i915_private *dev_priv, return ret; } @@ -436,7 +409,7 @@ index 1c2aec3..93ad21e 100644 static void valleyview_pipestat_irq_ack(struct drm_i915_private *dev_priv, u32 iir, u32 pipe_stats[I915_MAX_PIPES]) { -@@ -1817,6 +1871,23 @@ static irqreturn_t valleyview_irq_handler(int irq, void *arg) +@@ -1816,6 +1870,23 @@ static irqreturn_t valleyview_irq_handler(int irq, void *arg) i9xx_hpd_irq_handler(dev_priv, hotplug_status); valleyview_pipestat_irq_handler(dev_priv, pipe_stats); @@ -460,7 +433,7 @@ index 1c2aec3..93ad21e 100644 } while (0); enable_rpm_wakeref_asserts(dev_priv); -@@ -1894,6 +1965,23 @@ static irqreturn_t cherryview_irq_handler(int irq, void *arg) +@@ -1893,6 +1964,23 @@ static irqreturn_t cherryview_irq_handler(int irq, void *arg) i9xx_hpd_irq_handler(dev_priv, hotplug_status); valleyview_pipestat_irq_handler(dev_priv, pipe_stats); @@ -484,7 +457,7 @@ index 1c2aec3..93ad21e 100644 } while (0); enable_rpm_wakeref_asserts(dev_priv); -@@ -2803,6 +2891,72 @@ static void gen8_disable_vblank(struct drm_device *dev, unsigned int pipe) +@@ -2798,6 +2886,72 @@ static void gen8_disable_vblank(struct drm_device *dev, unsigned int pipe) spin_unlock_irqrestore(&dev_priv->irq_lock, irqflags); } @@ -555,9 +528,9 @@ index 1c2aec3..93ad21e 100644 +} + static bool - ring_idle(struct intel_engine_cs *engine, u32 seqno) + ipehr_is_semaphore_wait(struct intel_engine_cs *engine, u32 ipehr) { -@@ -3293,7 +3447,8 @@ static void vlv_display_irq_postinstall(struct drm_i915_private *dev_priv) +@@ -3263,7 +3417,8 @@ static void vlv_display_irq_postinstall(struct drm_i915_private *dev_priv) u32 pipestat_mask; u32 enable_mask; enum pipe pipe; @@ -567,7 +540,7 @@ index 1c2aec3..93ad21e 100644 pipestat_mask = PLANE_FLIP_DONE_INT_STATUS_VLV | PIPE_CRC_DONE_INTERRUPT_STATUS; -@@ -3307,6 +3462,18 @@ static void vlv_display_irq_postinstall(struct drm_i915_private *dev_priv) +@@ -3277,6 +3432,18 @@ static void vlv_display_irq_postinstall(struct drm_i915_private *dev_priv) if (IS_CHERRYVIEW(dev_priv)) enable_mask |= I915_DISPLAY_PIPE_C_EVENT_INTERRUPT; @@ -587,10 +560,10 @@ index 1c2aec3..93ad21e 100644 dev_priv->irq_mask = ~enable_mask; diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c -index 175595f..d4499ff 100644 +index fbcfed6..73e887c 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c -@@ -8096,6 +8096,8 @@ static int chv_crtc_compute_clock(struct intel_crtc *crtc, +@@ -8613,6 +8613,8 @@ static int chv_crtc_compute_clock(struct intel_crtc *crtc, { int refclk = 100000; const struct intel_limit *limit = &intel_limits_chv; @@ -599,7 +572,7 @@ index 175595f..d4499ff 100644 memset(&crtc_state->dpll_hw_state, 0, sizeof(crtc_state->dpll_hw_state)); -@@ -8109,6 +8111,16 @@ static int chv_crtc_compute_clock(struct intel_crtc *crtc, +@@ -8626,6 +8628,16 @@ static int chv_crtc_compute_clock(struct intel_crtc *crtc, chv_compute_dpll(crtc, crtc_state); @@ -616,7 +589,7 @@ index 175595f..d4499ff 100644 return 0; } -@@ -8117,6 +8129,8 @@ static int vlv_crtc_compute_clock(struct intel_crtc *crtc, +@@ -8634,6 +8646,8 @@ static int vlv_crtc_compute_clock(struct intel_crtc *crtc, { int refclk = 100000; const struct intel_limit *limit = &intel_limits_vlv; @@ -625,7 +598,7 @@ index 175595f..d4499ff 100644 memset(&crtc_state->dpll_hw_state, 0, sizeof(crtc_state->dpll_hw_state)); -@@ -8130,6 +8144,16 @@ static int vlv_crtc_compute_clock(struct intel_crtc *crtc, +@@ -8647,6 +8661,16 @@ static int vlv_crtc_compute_clock(struct intel_crtc *crtc, vlv_compute_dpll(crtc, crtc_state); @@ -642,7 +615,7 @@ index 175595f..d4499ff 100644 return 0; } -@@ -14913,6 +14937,82 @@ static void intel_setup_outputs(struct drm_device *dev) +@@ -15565,6 +15589,82 @@ static void intel_setup_outputs(struct drm_device *dev) drm_helper_move_panel_connectors_to_head(dev); } @@ -726,7 +699,7 @@ index 175595f..d4499ff 100644 { struct drm_device *dev = fb->dev; diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c -index 34e497f..67cbf17 100644 +index f40a35f..8ddddce 100644 --- a/drivers/gpu/drm/i915/intel_hdmi.c +++ b/drivers/gpu/drm/i915/intel_hdmi.c @@ -38,6 +38,8 @@ @@ -738,7 +711,7 @@ index 34e497f..67cbf17 100644 static struct drm_device *intel_hdmi_to_dev(struct intel_hdmi *intel_hdmi) { return hdmi_to_dig_port(intel_hdmi)->base.base.dev; -@@ -1461,6 +1463,124 @@ intel_hdmi_set_edid(struct drm_connector *connector, bool force) +@@ -1483,11 +1485,132 @@ intel_hdmi_set_edid(struct drm_connector *connector) return connected; } @@ -863,16 +836,24 @@ index 34e497f..67cbf17 100644 static enum drm_connector_status intel_hdmi_detect(struct drm_connector *connector, bool force) { -@@ -1469,6 +1589,8 @@ intel_hdmi_detect(struct drm_connector *connector, bool force) + enum drm_connector_status status; struct drm_i915_private *dev_priv = to_i915(connector->dev); - bool live_status = false; - unsigned int try; + bool inform_audio = false; + struct drm_device *dev = connector->dev; ++ struct intel_hdmi *intel_hdmi; DRM_DEBUG_KMS("[CONNECTOR:%d:%s]\n", connector->base.id, connector->name); -@@ -1505,6 +1627,31 @@ intel_hdmi_detect(struct drm_connector *connector, bool force) +@@ -1497,7 +1620,7 @@ intel_hdmi_detect(struct drm_connector *connector, bool force) + intel_hdmi_unset_edid(connector); + + if (intel_hdmi_set_edid(connector)) { +- struct intel_hdmi *intel_hdmi = intel_attached_hdmi(connector); ++ intel_hdmi = intel_attached_hdmi(connector); + + hdmi_to_dig_port(intel_hdmi)->base.type = INTEL_OUTPUT_HDMI; + status = connector_status_connected; +@@ -1506,6 +1629,31 @@ intel_hdmi_detect(struct drm_connector *connector, bool force) intel_display_power_put(dev_priv, POWER_DOMAIN_GMBUS); @@ -904,7 +885,7 @@ index 34e497f..67cbf17 100644 return status; } -@@ -1528,12 +1675,29 @@ intel_hdmi_force(struct drm_connector *connector) +@@ -1529,12 +1677,29 @@ intel_hdmi_force(struct drm_connector *connector) static int intel_hdmi_get_modes(struct drm_connector *connector) { struct edid *edid; @@ -935,7 +916,7 @@ index 34e497f..67cbf17 100644 } static bool -@@ -1907,6 +2071,21 @@ void intel_hdmi_init_connector(struct intel_digital_port *intel_dig_port, +@@ -1924,6 +2089,21 @@ void intel_hdmi_init_connector(struct intel_digital_port *intel_dig_port, u32 temp = I915_READ(PEG_BAND_GAP_DATA); I915_WRITE(PEG_BAND_GAP_DATA, (temp & ~0xf) | 0xd); } @@ -957,7 +938,7 @@ index 34e497f..67cbf17 100644 } void intel_hdmi_init(struct drm_device *dev, -@@ -1915,7 +2094,10 @@ void intel_hdmi_init(struct drm_device *dev, +@@ -1932,7 +2112,10 @@ void intel_hdmi_init(struct drm_device *dev, struct intel_digital_port *intel_dig_port; struct intel_encoder *intel_encoder; struct intel_connector *intel_connector; @@ -969,7 +950,7 @@ index 34e497f..67cbf17 100644 intel_dig_port = kzalloc(sizeof(*intel_dig_port), GFP_KERNEL); if (!intel_dig_port) return; -@@ -1926,6 +2108,7 @@ void intel_hdmi_init(struct drm_device *dev, +@@ -1943,6 +2126,7 @@ void intel_hdmi_init(struct drm_device *dev, return; } @@ -977,7 +958,7 @@ index 34e497f..67cbf17 100644 intel_encoder = &intel_dig_port->base; drm_encoder_init(dev, &intel_encoder->base, &intel_hdmi_enc_funcs, -@@ -1985,4 +2168,29 @@ void intel_hdmi_init(struct drm_device *dev, +@@ -2002,4 +2186,29 @@ void intel_hdmi_init(struct drm_device *dev, intel_dig_port->max_lanes = 4; intel_hdmi_init_connector(intel_dig_port, intel_connector); @@ -1008,10 +989,10 @@ index 34e497f..67cbf17 100644 + } -From c2fc8a0fadd274be5b75f6ca10c3ca35c381d611 Mon Sep 17 00:00:00 2001 +From 3ef992c6d560220679822eb3fb00459774b33e69 Mon Sep 17 00:00:00 2001 From: Pierre-Louis Bossart Date: Tue, 1 Mar 2016 16:25:04 -0600 -Subject: [PATCH 04/12] drm/i915: power-related changes non-HDAudio HDMI +Subject: [PATCH 03/12] drm/i915: power-related changes non-HDAudio HDMI interface PM and RPM changes for interface available on Baytrail and CherryTrail @@ -1513,7 +1494,7 @@ index 0000000..511311c + +#endif /*CONFIG_PM_RUNTIME*/ diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c -index 2d24813..23206de 100644 +index a2f751c..f1fbe8f 100644 --- a/drivers/gpu/drm/i915/intel_pm.c +++ b/drivers/gpu/drm/i915/intel_pm.c @@ -32,6 +32,17 @@ @@ -1534,7 +1515,7 @@ index 2d24813..23206de 100644 /** * DOC: RC6 * -@@ -7774,6 +7785,7 @@ void intel_init_clock_gating_hooks(struct drm_i915_private *dev_priv) +@@ -7715,6 +7726,7 @@ void intel_init_clock_gating_hooks(struct drm_i915_private *dev_priv) void intel_init_pm(struct drm_device *dev) { struct drm_i915_private *dev_priv = to_i915(dev); @@ -1542,7 +1523,7 @@ index 2d24813..23206de 100644 intel_fbc_init(dev_priv); -@@ -8088,3 +8100,44 @@ void intel_pm_setup(struct drm_device *dev) +@@ -8026,3 +8038,44 @@ void intel_pm_setup(struct drm_device *dev) atomic_set(&dev_priv->pm.wakeref_count, 0); atomic_set(&dev_priv->pm.atomic_seq, 0); } @@ -1588,10 +1569,10 @@ index 2d24813..23206de 100644 +} +EXPORT_SYMBOL(ospm_power_using_hw_end); -From d37021d5405ce4eb5f42328b575f07fa5d6f34a9 Mon Sep 17 00:00:00 2001 +From aa6c7b9b1a10c119f04baf70f888c892cf22e5a4 Mon Sep 17 00:00:00 2001 From: Pierre-Louis Bossart Date: Thu, 3 Mar 2016 11:08:10 -0600 -Subject: [PATCH 05/12] drm/i915: Add API code for non-HDAudio HDMI interface +Subject: [PATCH 04/12] drm/i915: Add API code for non-HDAudio HDMI interface Add API code for interface available on Baytrail and CherryTrail @@ -2041,10 +2022,10 @@ index 0000000..d176b25 +EXPORT_SYMBOL(mid_hdmi_audio_register); +#endif -From fee88eee7f0b174a146bf612ef19bc0602b5f89b Mon Sep 17 00:00:00 2001 +From 9ea272c3fdd4c3353f6250328403d371b0920977 Mon Sep 17 00:00:00 2001 From: Pierre-Louis Bossart Date: Tue, 1 Mar 2016 16:25:04 -0600 -Subject: [PATCH 06/12] drm/i915: enable non-HDAudio HDMI interface Makefile +Subject: [PATCH 05/12] drm/i915: enable non-HDAudio HDMI interface Makefile Makefile for all previous patches @@ -2061,10 +2042,10 @@ Signed-off-by: Pierre-Louis Bossart 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile -index 684fc1c..ea14a7c 100644 +index a998c2b..5402ab7 100644 --- a/drivers/gpu/drm/i915/Makefile +++ b/drivers/gpu/drm/i915/Makefile -@@ -16,7 +16,8 @@ i915-y := i915_drv.o \ +@@ -21,7 +21,8 @@ i915-y := i915_drv.o \ intel_csr.o \ intel_device_info.o \ intel_pm.o \ @@ -2074,8 +2055,8 @@ index 684fc1c..ea14a7c 100644 i915-$(CONFIG_COMPAT) += i915_ioc32.o i915-$(CONFIG_DEBUG_FS) += i915_debugfs.o -@@ -42,6 +43,7 @@ i915-y += i915_cmd_parser.o \ - intel_breadcrumbs.o \ +@@ -48,6 +49,7 @@ i915-y += i915_cmd_parser.o \ + intel_engine_cs.o \ intel_lrc.o \ intel_mocs.o \ + i915_rpm.o \ @@ -2083,10 +2064,10 @@ index 684fc1c..ea14a7c 100644 intel_uncore.o -From 138e6f7e00064d2d94a76308771f4f4b7e528a48 Mon Sep 17 00:00:00 2001 +From cbcf16ad5687aad3576bf9217fb418870e9c2008 Mon Sep 17 00:00:00 2001 From: Pierre-Louis Bossart Date: Thu, 3 Mar 2016 11:09:26 -0600 -Subject: [PATCH 07/12] ALSA: Intel: Atom: add Atom non-HDAudio HDMI interface +Subject: [PATCH 06/12] ALSA: Intel: Atom: add Atom non-HDAudio HDMI interface Add support interface available on Baytrail and CherryTrail @@ -5474,10 +5455,10 @@ index 0000000..acc407d + return retval; +} -From ba7b36acd4d4f2bcf9c84c885d385d3d1327b221 Mon Sep 17 00:00:00 2001 +From 1caa516a989aa3e8556b46b546e32b864d3672da Mon Sep 17 00:00:00 2001 From: Pierre-Louis Bossart Date: Sat, 20 Feb 2016 18:08:41 -0600 -Subject: [PATCH 08/12] add dependency on PM_RUNTIME +Subject: [PATCH 07/12] add dependency on PM_RUNTIME Signed-off-by: Pierre-Louis Bossart --- @@ -5497,10 +5478,10 @@ index 75c679e..b8b4fce 100644 help Choose this option to support HDMI. -From 30f9d3b223b28623431348350cdf00409b8cef24 Mon Sep 17 00:00:00 2001 +From 68d6ff8799a8921bb0e798d6a4bba298e804af04 Mon Sep 17 00:00:00 2001 From: David Henningsson Date: Fri, 21 Aug 2015 11:08:47 +0200 -Subject: [PATCH 09/12] hdmi_audio: Improve position reporting +Subject: [PATCH 08/12] hdmi_audio: Improve position reporting Using a hw register to calculate sub-period position reports. @@ -5550,10 +5531,10 @@ index d8c5574..b2337c3 100644 } -From 25f0028061dcb8c4ed3d464419e4095570a68441 Mon Sep 17 00:00:00 2001 +From 3d7c6630dcb6e25f27b6a4c699d4efe552c6c6fe Mon Sep 17 00:00:00 2001 From: David Henningsson Date: Fri, 21 Aug 2015 11:18:19 +0200 -Subject: [PATCH 10/12] hdmi_audio: Fixup some monitor +Subject: [PATCH 09/12] hdmi_audio: Fixup some monitor I think this change was given to us, and they claimed it fixed an issue on some monitor brand. I'm not sure what this patch actually does. @@ -5602,10 +5583,10 @@ index b2337c3..1667748 100644 return 0; } -From 0ef07c8e6cf8505f89ceab0b27895d8a21062d70 Mon Sep 17 00:00:00 2001 +From e8e4a06465137d4b8d22ab320af22c381413805c Mon Sep 17 00:00:00 2001 From: Toyo Abe Date: Thu, 3 Mar 2016 12:57:41 +0900 -Subject: [PATCH 11/12] hdmi_audio: Fix mishandling of AUD_HDMI_STATUS_v2 +Subject: [PATCH 10/12] hdmi_audio: Fix mishandling of AUD_HDMI_STATUS_v2 register. According to the datasheet, write one to clear these UNDERRUN flag bits. @@ -5632,10 +5613,10 @@ index 1667748..86db38e 100644 } else break; -From 71729bb7f7f080b68e36a4e4b9f65fce67d5e869 Mon Sep 17 00:00:00 2001 +From 881b1fcdde86076b2de7b7d30bbfa0477fd0ac0e Mon Sep 17 00:00:00 2001 From: Jerome Anand Date: Fri, 1 Apr 2016 11:07:48 +0530 -Subject: [PATCH 12/12] Create a platform device for hdmi audio driver and +Subject: [PATCH 11/12] Create a platform device for hdmi audio driver and allocate full resources Signed-off-by: Pierre-Louis Bossart @@ -5708,3 +5689,100 @@ index 86db38e..6497b6f 100644 } late_initcall(alsa_card_intelhad_init); module_exit(alsa_card_intelhad_exit); + +From dcbfbf5f551942b55e8a01ac4269d5435a59a562 Mon Sep 17 00:00:00 2001 +From: Pierre-Louis Bossart +Date: Thu, 13 Oct 2016 12:52:27 -0500 +Subject: [PATCH 12/12] hdmi_audio: fix GCC compilation issues with inline + functions + +remove inlining to avoid errors reported by GCC 6 +--- + sound/hdmi_audio/intel_mid_hdmi_audio.c | 12 ++++++------ + sound/hdmi_audio/intel_mid_hdmi_audio.h | 14 +++++++------- + 2 files changed, 13 insertions(+), 13 deletions(-) + +diff --git a/sound/hdmi_audio/intel_mid_hdmi_audio.c b/sound/hdmi_audio/intel_mid_hdmi_audio.c +index 6497b6f..4857a4b 100644 +--- a/sound/hdmi_audio/intel_mid_hdmi_audio.c ++++ b/sound/hdmi_audio/intel_mid_hdmi_audio.c +@@ -197,7 +197,7 @@ static const struct snd_pcm_hardware snd_intel_hadstream = { + + /* Register access functions */ + +-inline int had_get_hwstate(struct snd_intelhad *intelhaddata) ++int had_get_hwstate(struct snd_intelhad *intelhaddata) + { + /* Check for device presence -SW state */ + if (intelhaddata->drv_status == HAD_DRV_DISCONNECTED) { +@@ -220,7 +220,7 @@ inline int had_get_hwstate(struct snd_intelhad *intelhaddata) + return 0; + } + +-inline int had_get_caps(enum had_caps_list query, void *caps) ++int had_get_caps(enum had_caps_list query, void *caps) + { + int retval; + struct snd_intelhad *intelhaddata = had_data; +@@ -233,7 +233,7 @@ inline int had_get_caps(enum had_caps_list query, void *caps) + return retval; + } + +-inline int had_set_caps(enum had_caps_list set_element, void *caps) ++int had_set_caps(enum had_caps_list set_element, void *caps) + { + int retval; + struct snd_intelhad *intelhaddata = had_data; +@@ -246,7 +246,7 @@ inline int had_set_caps(enum had_caps_list set_element, void *caps) + return retval; + } + +-inline int had_read_register(uint32_t offset, uint32_t *data) ++int had_read_register(uint32_t offset, uint32_t *data) + { + int retval; + struct snd_intelhad *intelhaddata = had_data; +@@ -260,7 +260,7 @@ inline int had_read_register(uint32_t offset, uint32_t *data) + return retval; + } + +-inline int had_write_register(uint32_t offset, uint32_t data) ++int had_write_register(uint32_t offset, uint32_t data) + { + int retval; + struct snd_intelhad *intelhaddata = had_data; +@@ -274,7 +274,7 @@ inline int had_write_register(uint32_t offset, uint32_t data) + return retval; + } + +-inline int had_read_modify(uint32_t offset, uint32_t data, uint32_t mask) ++int had_read_modify(uint32_t offset, uint32_t data, uint32_t mask) + { + int retval; + struct snd_intelhad *intelhaddata = had_data; +diff --git a/sound/hdmi_audio/intel_mid_hdmi_audio.h b/sound/hdmi_audio/intel_mid_hdmi_audio.h +index 7c54b97..53a1049 100644 +--- a/sound/hdmi_audio/intel_mid_hdmi_audio.h ++++ b/sound/hdmi_audio/intel_mid_hdmi_audio.h +@@ -727,14 +727,14 @@ int snd_intelhad_init_audio_ctrl(struct snd_pcm_substream *substream, + int snd_intelhad_prog_buffer(struct snd_intelhad *intelhaddata, + int start, int end); + int snd_intelhad_invd_buffer(int start, int end); +-inline int snd_intelhad_read_len(struct snd_intelhad *intelhaddata); ++int snd_intelhad_read_len(struct snd_intelhad *intelhaddata); + void had_build_channel_allocation_map(struct snd_intelhad *intelhaddata); + + /* Register access functions */ +-inline int had_get_hwstate(struct snd_intelhad *intelhaddata); +-inline int had_get_caps(enum had_caps_list query_element, void *capabilties); +-inline int had_set_caps(enum had_caps_list set_element, void *capabilties); +-inline int had_read_register(uint32_t reg_addr, uint32_t *data); +-inline int had_write_register(uint32_t reg_addr, uint32_t data); +-inline int had_read_modify(uint32_t reg_addr, uint32_t data, uint32_t mask); ++int had_get_hwstate(struct snd_intelhad *intelhaddata); ++int had_get_caps(enum had_caps_list query_element, void *capabilties); ++int had_set_caps(enum had_caps_list set_element, void *capabilties); ++int had_read_register(uint32_t reg_addr, uint32_t *data); ++int had_write_register(uint32_t reg_addr, uint32_t data); ++int had_read_modify(uint32_t reg_addr, uint32_t data, uint32_t mask); + #endif diff --git a/projects/RPi/linux/linux.arm.conf b/projects/RPi/linux/linux.arm.conf index e884d50298..60d4e97001 100644 --- a/projects/RPi/linux/linux.arm.conf +++ b/projects/RPi/linux/linux.arm.conf @@ -1,8 +1,10 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/arm 4.8.4 Kernel Configuration +# Linux/arm 4.8.6 Kernel Configuration # CONFIG_ARM=y +CONFIG_ARM_HAS_SG_CHAIN=y +CONFIG_MIGHT_HAVE_PCI=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y CONFIG_HAVE_PROC_CPU=y CONFIG_STACKTRACE_SUPPORT=y @@ -16,10 +18,7 @@ CONFIG_NEED_DMA_MAP_STATE=y CONFIG_ARCH_SUPPORTS_UPROBES=y CONFIG_FIQ=y CONFIG_VECTORS_BASE=0xffff0000 -# CONFIG_ARM_PATCH_PHYS_VIRT is not set -CONFIG_NEED_MACH_IO_H=y -CONFIG_NEED_MACH_MEMORY_H=y -CONFIG_PHYS_OFFSET=0x0 +CONFIG_ARM_PATCH_PHYS_VIRT=y CONFIG_GENERIC_BUG=y CONFIG_PGTABLE_LEVELS=2 CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" @@ -315,9 +314,7 @@ CONFIG_FREEZER=y # System Type # CONFIG_MMU=y -CONFIG_ARCH_BCM2708=y -# CONFIG_ARCH_BCM2709 is not set -# CONFIG_ARCH_MULTIPLATFORM is not set +CONFIG_ARCH_MULTIPLATFORM=y # CONFIG_ARCH_GEMINI is not set # CONFIG_ARCH_EBSA110 is not set # CONFIG_ARCH_EP93XX is not set @@ -339,16 +336,52 @@ CONFIG_ARCH_BCM2708=y # CONFIG_ARCH_OMAP1 is not set # -# Broadcom BCM2708 Implementations +# Multiple platform selection # + +# +# CPU Core family selection +# +CONFIG_ARCH_MULTI_V6=y +# CONFIG_ARCH_MULTI_V7 is not set +CONFIG_ARCH_MULTI_V6_V7=y +# CONFIG_ARCH_MULTI_CPU_AUTO is not set +CONFIG_ARCH_BCM=y + +# +# IPROC architected SoCs +# + +# +# KONA architected SoCs +# + +# +# Other Architectures +# +CONFIG_ARCH_BCM2835=y CONFIG_MACH_BCM2708=y -# CONFIG_BCM2708_NOL2CACHE is not set +CONFIG_ARCH_BCM2708=y +# CONFIG_ARCH_CNS3XXX is not set +# CONFIG_ARCH_INTEGRATOR is not set +# CONFIG_ARCH_ASPEED is not set +# CONFIG_ARCH_MXC is not set + +# +# TI OMAP/AM/DM/DRA Family +# +# CONFIG_ARCH_OMAP2 is not set +# CONFIG_ARCH_PICOXCELL is not set +# CONFIG_ARCH_REALVIEW is not set +# CONFIG_ARCH_S3C64XX is not set +# CONFIG_ARCH_WM8750 is not set # # Processor Type # -CONFIG_CPU_V6=y +CONFIG_CPU_V6K=y CONFIG_CPU_32v6=y +CONFIG_CPU_32v6K=y CONFIG_CPU_ABRT_EV6=y CONFIG_CPU_PABRT_V6=y CONFIG_CPU_CACHE_V6=y @@ -368,18 +401,18 @@ CONFIG_ARM_THUMB=y # CONFIG_CPU_DCACHE_DISABLE is not set # CONFIG_CPU_BPREDICT_DISABLE is not set CONFIG_KUSER_HELPERS=y +CONFIG_MIGHT_HAVE_CACHE_L2X0=y # CONFIG_CACHE_L2X0 is not set CONFIG_ARM_L1_CACHE_SHIFT=5 CONFIG_ARM_DMA_MEM_BUFFERABLE=y # CONFIG_DEBUG_RODATA is not set CONFIG_MULTI_IRQ_HANDLER=y -CONFIG_ARM_ERRATA_326103=y CONFIG_ARM_ERRATA_411920=y -CONFIG_ARM_ERRATA_364296=y # # Bus support # +# CONFIG_PCI is not set # CONFIG_PCI_DOMAINS_GENERIC is not set # CONFIG_PCI_SYSCALL is not set # CONFIG_PCCARD is not set @@ -462,10 +495,10 @@ CONFIG_CMDLINE="root=/dev/ram0 rdinit=/init BOOT_IMAGE=/kernel.img usbcore.autos # CONFIG_CMDLINE_FROM_BOOTLOADER is not set CONFIG_CMDLINE_EXTEND=y # CONFIG_CMDLINE_FORCE is not set -# CONFIG_XIP_KERNEL is not set # CONFIG_KEXEC is not set # CONFIG_CRASH_DUMP is not set -# CONFIG_AUTO_ZRELADDR is not set +CONFIG_AUTO_ZRELADDR=y +# CONFIG_EFI is not set # # CPU Power Management @@ -535,8 +568,13 @@ CONFIG_COREDUMP=y # # CONFIG_SUSPEND is not set # CONFIG_HIBERNATION is not set -# CONFIG_PM is not set +CONFIG_PM=y +# CONFIG_PM_DEBUG is not set # CONFIG_APM_EMULATION is not set +CONFIG_PM_CLK=y +CONFIG_PM_GENERIC_DOMAINS=y +# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set +CONFIG_PM_GENERIC_DOMAINS_OF=y CONFIG_CPU_PM=y CONFIG_ARCH_SUSPEND_POSSIBLE=y # CONFIG_ARM_CPU_SUSPEND is not set @@ -1258,6 +1296,7 @@ CONFIG_ATH9K=m CONFIG_ATH9K_AHB=y # CONFIG_ATH9K_DEBUGFS is not set # CONFIG_ATH9K_DYNACK is not set +# CONFIG_ATH9K_WOW is not set # CONFIG_ATH9K_CHANNEL_CONTEXT is not set CONFIG_ATH9K_PCOEM=y CONFIG_ATH9K_HTC=m @@ -1730,7 +1769,6 @@ CONFIG_PINCONF=y # CONFIG_PINCTRL_SINGLE is not set CONFIG_PINCTRL_BCM2835=y CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y -CONFIG_ARCH_REQUIRE_GPIOLIB=y CONFIG_GPIOLIB=y CONFIG_GPIO_DEVRES=y CONFIG_OF_GPIO=y @@ -2530,6 +2568,7 @@ CONFIG_DVB_AF9033=m # # Graphics support # +# CONFIG_IMX_IPUV3_CORE is not set # CONFIG_DRM is not set # @@ -2920,6 +2959,7 @@ CONFIG_USB_ANNOUNCE_NEW_DEVICES=y # CONFIG_USB_DEFAULT_PERSIST=y # CONFIG_USB_DYNAMIC_MINORS is not set +# CONFIG_USB_OTG is not set # CONFIG_USB_OTG_WHITELIST is not set # CONFIG_USB_OTG_BLACKLIST_HUB is not set # CONFIG_USB_ULPI_BUS is not set @@ -3108,6 +3148,7 @@ CONFIG_MMC_SDHCI_PLTFM=y # CONFIG_MMC_SDHCI_OF_ARASAN is not set # CONFIG_MMC_SDHCI_OF_AT91 is not set # CONFIG_MMC_SDHCI_F_SDH30 is not set +# CONFIG_MMC_SDHCI_IPROC is not set # CONFIG_MMC_SPI is not set # CONFIG_MMC_DW is not set # CONFIG_MMC_VUB300 is not set @@ -3388,7 +3429,8 @@ CONFIG_COMMON_CLK=y CONFIG_CLKSRC_OF=y CONFIG_CLKSRC_PROBE=y CONFIG_CLKSRC_MMIO=y -# CONFIG_ARM_TIMER_SP804 is not set +CONFIG_BCM2835_TIMER=y +CONFIG_ARM_TIMER_SP804=y # CONFIG_ATMEL_PIT is not set # CONFIG_SH_TIMER_CMT is not set # CONFIG_SH_TIMER_MTU2 is not set @@ -4075,7 +4117,6 @@ CONFIG_HAS_IOPORT_MAP=y CONFIG_HAS_DMA=y CONFIG_DQL=y CONFIG_NLATTR=y -CONFIG_GENERIC_ATOMIC64=y CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y # CONFIG_CORDIC is not set # CONFIG_DDR is not set @@ -4088,5 +4129,5 @@ CONFIG_FONT_8x8=y CONFIG_FONT_8x16=y # CONFIG_SG_SPLIT is not set CONFIG_SG_POOL=y -# CONFIG_ARCH_HAS_SG_CHAIN is not set +CONFIG_ARCH_HAS_SG_CHAIN=y # CONFIG_VIRTUALIZATION is not set diff --git a/projects/RPi/patches/linux/linux-01-RPi_support.patch b/projects/RPi/patches/linux/linux-01-RPi_support.patch index db3b0e6822..c68b684f75 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 22ad2a514798c9748803e1f6e9d01fa0f9c413ba Mon Sep 17 00:00:00 2001 +From a4af50c1021695afd8d35b00a824d9dcef5b0444 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 27 Apr 2016 17:43:28 +0100 -Subject: [PATCH 001/133] Revert "SUNRPC: Make NFS swap work with multipath" +Subject: [PATCH 001/147] Revert "SUNRPC: Make NFS swap work with multipath" This reverts commit 15001e5a7e1e207b6bd258cd8f187814cd15b6dc. --- @@ -95,10 +95,10 @@ index 66f23b376fa04a91134eddf6d8ee22a2f5de5808..f55fe2b0137e8fbefcd20c336b28ad48 EXPORT_SYMBOL_GPL(rpc_clnt_swap_deactivate); #endif /* CONFIG_SUNRPC_SWAP */ -From d60dea6b48078d26b3aac303045082e2313b3ea0 Mon Sep 17 00:00:00 2001 +From e278f6a69df039c32543d292ae4d5b2bc17c8f86 Mon Sep 17 00:00:00 2001 From: Steve Glendinning Date: Thu, 19 Feb 2015 18:47:12 +0000 -Subject: [PATCH 002/133] smsx95xx: fix crimes against truesize +Subject: [PATCH 002/147] 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. @@ -145,10 +145,10 @@ index dc989a8b5afbd62b07cd65a2fa5edde67d3cc5fb..116680e3089f16e1e3e9113a3b93e62c usbnet_skb_return(dev, ax_skb); } -From 7a8df51375053d0f24027d2d0600627f275e6cdd Mon Sep 17 00:00:00 2001 +From 66f5a0d340b638f19d9a094ef37ea62b8888a98f Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 17 Apr 2015 16:58:45 +0100 -Subject: [PATCH 003/133] smsc95xx: Disable turbo mode by default +Subject: [PATCH 003/147] smsc95xx: Disable turbo mode by default --- drivers/net/usb/smsc95xx.c | 2 +- @@ -168,10 +168,10 @@ index 116680e3089f16e1e3e9113a3b93e62cb78cc1bb..aa4cb43dcd9ba83b042332bc15a4dce6 MODULE_PARM_DESC(turbo_mode, "Enable multiple frames per Rx transaction"); -From 5edee9a8107124ff13f6748d906823f0de13d4c7 Mon Sep 17 00:00:00 2001 +From ddcc944b6565f7f0f0c7d18bf2d2f687bf79bfb1 Mon Sep 17 00:00:00 2001 From: Sam Nazarko Date: Fri, 1 Apr 2016 17:27:21 +0100 -Subject: [PATCH 004/133] add smsc95xx packetsize module_param +Subject: [PATCH 004/147] add smsc95xx packetsize module_param Signed-off-by: Sam Nazarko --- @@ -213,10 +213,10 @@ index aa4cb43dcd9ba83b042332bc15a4dce68affce28..889bdabd9dea6cebccc361aa4ac569d7 netif_dbg(dev, ifup, dev->net, "rx_urb_size=%ld\n", -From 118cc9a01ab37eda968e0568f8f88e051c0f2701 Mon Sep 17 00:00:00 2001 +From a61702e80b9799fcc84d05a4529092fe41be58f4 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 26 Mar 2013 17:26:38 +0000 -Subject: [PATCH 005/133] Allow mac address to be set in smsc95xx +Subject: [PATCH 005/147] Allow mac address to be set in smsc95xx Signed-off-by: popcornmix --- @@ -312,10 +312,10 @@ index 889bdabd9dea6cebccc361aa4ac569d73681396b..d22a2324085fbf61fbd8920362bfc7b9 eth_hw_addr_random(dev->net); netif_dbg(dev, ifup, dev->net, "MAC address set to eth_random_addr\n"); -From d9dbf25a2e3d16e84a93a15b28a8964cc08ad033 Mon Sep 17 00:00:00 2001 +From beb6b7e6346a324b6b2a7739df99de9049d7407e Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 9 Aug 2016 22:19:28 +0100 -Subject: [PATCH 006/133] smsc95xx: Experimental: Enable turbo_mode and +Subject: [PATCH 006/147] smsc95xx: Experimental: Enable turbo_mode and packetsize=2560 by default See: http://forum.kodi.tv/showthread.php?tid=285288 @@ -346,10 +346,10 @@ index d22a2324085fbf61fbd8920362bfc7b9f72bebe3..c846c55075387398d9bcb0957e31f5c8 MODULE_PARM_DESC(packetsize, "Override the RX URB packet size"); -From 71e2a1712058109a030244dcc73e8a77e1ce9e1b Mon Sep 17 00:00:00 2001 +From c1b6d1d2b148ae8b0f59c707c0089a3f4748fda0 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 9 Mar 2016 13:28:24 +0000 -Subject: [PATCH 007/133] serial: Take care starting a hung-up tty's port +Subject: [PATCH 007/147] 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), @@ -377,10 +377,10 @@ index 2f44e20136545162d15ee9a39c2eae38352580d1..6b0518ce13ad210b888b73dd6c02a555 return 0; } -From 4b865496e5f0c2847749ed18e987b9edbccd7bdf Mon Sep 17 00:00:00 2001 +From 63ff5aacb1f6a7d2ccff35dbfcb379332db518b9 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 13 Mar 2015 12:43:36 +0000 -Subject: [PATCH 008/133] Protect __release_resource against resources without +Subject: [PATCH 008/147] Protect __release_resource against resources without parents Without this patch, removing a device tree overlay can crash here. @@ -408,10 +408,10 @@ index 9b5f04404152c296af3a96132f27cfc80ffa9af9..f8a9af6e6b915812be2ba2c1c2b40106 for (;;) { tmp = *p; -From 7b2fb7ebb7971e25f8d3097f5b66e42afac17efd Mon Sep 17 00:00:00 2001 +From 7dee84d113ad3984275aa5c9947b9671868b054c Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Thu, 18 Dec 2014 16:07:15 -0800 -Subject: [PATCH 009/133] mm: Remove the PFN busy warning +Subject: [PATCH 009/147] mm: Remove the PFN busy warning See commit dae803e165a11bc88ca8dbc07a11077caf97bbcb -- the warning is expected sometimes when using CMA. However, that commit still spams @@ -436,10 +436,10 @@ index a2214c64ed3cd04dceaed7a579f593852e458df1..de26bffb1baa5cffa692fcb12b478263 goto done; } -From 8a3e2fa3b57d6992d12a636715cd108f093499f7 Mon Sep 17 00:00:00 2001 +From 72a13998cef3853972c04ef161e160657e131928 Mon Sep 17 00:00:00 2001 From: Robert Tiemann Date: Mon, 20 Jul 2015 11:01:25 +0200 -Subject: [PATCH 010/133] BCM2835_DT: Fix I2S register map +Subject: [PATCH 010/147] BCM2835_DT: Fix I2S register map --- Documentation/devicetree/bindings/dma/brcm,bcm2835-dma.txt | 4 ++-- @@ -477,10 +477,10 @@ index 65783de0aedf3da79adc36fd077b7a89954ddb6b..a89fe4220fdc3f26f75ee66daf187554 dmas = <&dma 2>, <&dma 3>; -From 3eda77d21eace8c70848f6cc131f2b81a767571b Mon Sep 17 00:00:00 2001 +From 845f05c3ad428a6d00fd1443df129ce809c87243 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 4 Dec 2015 17:41:50 +0000 -Subject: [PATCH 011/133] irq-bcm2836: Prevent spurious interrupts, and trap +Subject: [PATCH 011/147] irq-bcm2836: Prevent spurious interrupts, and trap them early The old arch-specific IRQ macros included a dsb to ensure the @@ -507,10 +507,10 @@ index d96b2c947e74e3edab3917551c64fbd1ced0f34c..93e3f7660c4230c9f1dd3b195958cb49 #endif } else if (stat) { -From e48d7853af14ed499222a918e8d8628956ec985b Mon Sep 17 00:00:00 2001 +From 2d72825126219048d31f47a2ff5591516c78f95e 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 012/133] irqchip: bcm2835: Add FIQ support +Subject: [PATCH 012/147] irqchip: bcm2835: Add FIQ support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -639,10 +639,10 @@ index 44d7c38dde479d771f3552e914bf8c1c1f5019f7..42ff5e6a8e0d532f5b60a1e7af7cc4d9 } -From 9dbf9e9b3970068fb05224536d041a76c4ab7eaa Mon Sep 17 00:00:00 2001 +From 692c02f9867ba3b2fa1c689f117552e685edb6c9 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 013/133] irqchip: irq-bcm2835: Add 2836 FIQ support +Subject: [PATCH 013/147] irqchip: irq-bcm2835: Add 2836 FIQ support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -741,10 +741,10 @@ index 42ff5e6a8e0d532f5b60a1e7af7cc4d941bd5008..eccf6ed025299cb480884f5bcbe77abf for (b = 0; b < NR_BANKS; b++) { for (i = 0; i < bank_irqs[b]; i++) { -From 8e7877b9735a76ac8fa5f4abcfe952ab55bae911 Mon Sep 17 00:00:00 2001 +From c4d120db5f133a08952ea22590b0c0c67eb6a7ab Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 14 Jul 2015 10:26:09 +0100 -Subject: [PATCH 014/133] spidev: Add "spidev" compatible string to silence +Subject: [PATCH 014/147] spidev: Add "spidev" compatible string to silence warning See: https://github.com/raspberrypi/linux/issues/1054 @@ -765,10 +765,10 @@ index 2e05046f866bd01bf87edcdeff0d5b76d4d0aea7..d780491b8013a4e97fa843958964454e }; MODULE_DEVICE_TABLE(of, spidev_dt_ids); -From 7b0af07f6a0af6792b809035f93700ce1f029294 Mon Sep 17 00:00:00 2001 +From badd9feeaa82ab875609b7b0a7bf25efbfaa8035 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 30 Jun 2015 14:12:42 +0100 -Subject: [PATCH 015/133] serial: 8250: Don't crash when nr_uarts is 0 +Subject: [PATCH 015/147] serial: 8250: Don't crash when nr_uarts is 0 --- drivers/tty/serial/8250/8250_core.c | 2 ++ @@ -788,10 +788,10 @@ index dcf43f66404f12d2bd290a30adfe494dd056162e..0fba189c676ded310b92a09c4e7e8f76 for (i = 0; i < nr_uarts; i++) { struct uart_8250_port *up = &serial8250_ports[i]; -From fade6fd9658203524a83cc806dc58001c275b297 Mon Sep 17 00:00:00 2001 +From 67c2058d24c35fcbfc2b8c5f106eac48431dae5c Mon Sep 17 00:00:00 2001 From: notro Date: Thu, 10 Jul 2014 13:59:47 +0200 -Subject: [PATCH 016/133] pinctrl-bcm2835: Set base to 0 give expected gpio +Subject: [PATCH 016/147] pinctrl-bcm2835: Set base to 0 give expected gpio numbering Signed-off-by: Noralf Tronnes @@ -813,10 +813,10 @@ index fa77165fab2c1348163979da507df17e7168c49b..d11e2e4ea189466e686d762cb6c6fef9 .can_sleep = false, }; -From faf52efe1c23d4cfbff42e8bfa4f16caafc3eb0b Mon Sep 17 00:00:00 2001 +From f715cb5504f4fa469703bcb947d79b490e1915bb Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 24 Feb 2015 13:40:50 +0000 -Subject: [PATCH 017/133] pinctrl-bcm2835: Fix interrupt handling for GPIOs +Subject: [PATCH 017/147] pinctrl-bcm2835: Fix interrupt handling for GPIOs 28-31 and 46-53 Contrary to the documentation, the BCM2835 GPIO controller actually has @@ -962,10 +962,10 @@ index d11e2e4ea189466e686d762cb6c6fef9111ecf8e..107ad7d58de8f8a7f55e09c9cdcf7d66 }, }; -From 352f27ed30f1ee6f5700c16141a35e12c7900348 Mon Sep 17 00:00:00 2001 +From 70031a22e92ff2be5c3532683240358eff5dc748 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 26 Feb 2015 09:58:22 +0000 -Subject: [PATCH 018/133] pinctrl-bcm2835: Only request the interrupts listed +Subject: [PATCH 018/147] pinctrl-bcm2835: Only request the interrupts listed in the DTB Although the GPIO controller can generate three interrupts (four counting @@ -992,10 +992,10 @@ index 107ad7d58de8f8a7f55e09c9cdcf7d66fa7ab66b..644bdecbcfcb79d3b84a33769265fca5 pc->irq_data[i].irqgroup = i; -From b1257924703c2b200fbcc692f0a7c76bde3abf5b Mon Sep 17 00:00:00 2001 +From 2cffb96f1be716d7faf8bf834779ee3654664dc6 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 6 May 2016 12:32:47 +0100 -Subject: [PATCH 019/133] pinctrl-bcm2835: Return pins to inputs when freed +Subject: [PATCH 019/147] pinctrl-bcm2835: Return pins to inputs when freed When dynamically unloading overlays, it is important that freed pins are restored to being inputs to prevent functions from being enabled in @@ -1036,10 +1036,10 @@ index 644bdecbcfcb79d3b84a33769265fca5d3d0c9e5..81a66cba2ab0f7e3ae179de7edd10122 .get_function_name = bcm2835_pmx_get_function_name, .get_function_groups = bcm2835_pmx_get_function_groups, -From 91778ecd864c25b0abb37221d7a2f5c709a8b6bf Mon Sep 17 00:00:00 2001 +From d325199f920511b129f6a3f515e3e7b96925d8e6 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 24 Jun 2015 14:10:44 +0100 -Subject: [PATCH 020/133] spi-bcm2835: Support pin groups other than 7-11 +Subject: [PATCH 020/147] 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 @@ -1120,10 +1120,10 @@ index f35cc10772f6670397ea923ad30158270dd68578..5dfe20ffc2866fa6789825016c585175 /* and set up the "mode" and level */ dev_info(&spi->dev, "setting up native-CS%i as GPIO %i\n", -From 52485f1ae81f0f49a789b4fd4038a41c8a6834b0 Mon Sep 17 00:00:00 2001 +From 3b00154095725c4a7fe1ef520c58b2580500bd95 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 1 Jul 2016 22:09:24 +0100 -Subject: [PATCH 021/133] spi-bcm2835: Disable forced software CS +Subject: [PATCH 021/147] spi-bcm2835: Disable forced software CS Select software CS in bcm2708_common.dtsi, and disable the automatic conversion in the driver to allow hardware CS to be re-enabled with an @@ -1157,10 +1157,10 @@ index 5dfe20ffc2866fa6789825016c585175a29705b6..8493474d286f7a1ac6454a22c61c8c2c return 0; } -From 1d3ce1396a5d204e9caec86ff7d7ecf0b0f89e2a Mon Sep 17 00:00:00 2001 +From 2864bf800f6e4b7e528bf08b8b4a010f3df791fc 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 022/133] ARM: bcm2835: Set Serial number and Revision +Subject: [PATCH 022/147] ARM: bcm2835: Set Serial number and Revision MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -1213,10 +1213,10 @@ index 0c1edfc98696da0e0bb7f4a18cdfbcdd27a9795d..8f152266ba9b470df2eaaed9ebcf158e static const char * const bcm2835_compat[] = { -From d4b91e1a5706ee7257b2d7d51e21cb084c864169 Mon Sep 17 00:00:00 2001 +From 6a4aa446e9349b392a25290731dbec76234b3209 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 023/133] dmaengine: bcm2835: Load driver early and support +Subject: [PATCH 023/147] dmaengine: bcm2835: Load driver early and support legacy API MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -1319,10 +1319,10 @@ index e18dc596cf2447fa9ef7e41b62d9396e29043426..80d35f760b4a4a51e60c355a84d538ba MODULE_ALIAS("platform:bcm2835-dma"); MODULE_DESCRIPTION("BCM2835 DMA engine driver"); -From b4bcc7f785a173139bd02f1ad7e9a3fc2ec2fc62 Mon Sep 17 00:00:00 2001 +From 43d2daba968de660dd7c9cdc3bea3198de2ac07d 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 024/133] bcm2835: Add support for uart1 +Subject: [PATCH 024/147] bcm2835: Add support for uart1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -1379,10 +1379,10 @@ index 8f152266ba9b470df2eaaed9ebcf158ed2079834..0ef5cd3d1d6ec420360294acc98d40d6 static const char * const bcm2835_compat[] = { -From 36d0f9a29d1bea6920ea4cc653dcefb473f8bd92 Mon Sep 17 00:00:00 2001 +From e173cc5bb5cc0e60e3cbf7d330668196336a02a3 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 25 Jan 2016 17:25:12 +0000 -Subject: [PATCH 025/133] firmware: Updated mailbox header +Subject: [PATCH 025/147] firmware: Updated mailbox header --- include/soc/bcm2835/raspberrypi-firmware.h | 11 +++++++++++ @@ -1445,10 +1445,10 @@ index 3fb357193f09914fe21f8555a4b8613f74f22bc3..227a107214a02deadcca3db202da265e RPI_FIRMWARE_GET_COMMAND_LINE = 0x00050001, RPI_FIRMWARE_GET_DMA_CHANNELS = 0x00060001, -From 9cba2df5f7561a806e277eb3072e1a7f1fc46acc Mon Sep 17 00:00:00 2001 +From 5650c43fd3b3fd1dd3a19bbaedf590cac1fce8c2 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Tue, 26 Apr 2016 11:44:59 -0700 -Subject: [PATCH 026/133] clk: bcm2835: Mark the VPU clock as critical +Subject: [PATCH 026/147] clk: bcm2835: Mark the VPU clock as critical The VPU clock is also the clock for our AXI bus, so we really can't disable it. This might have happened during boot if, for example, @@ -1464,7 +1464,7 @@ Signed-off-by: Eric Anholt 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/clk/bcm/clk-bcm2835.c b/drivers/clk/bcm/clk-bcm2835.c -index 7a7970865c2d856b6b57113c2bb7e8074140a5dd..d9db03cb3fd84163f320dca6f2e533c61f61b5ad 100644 +index 0fc71cbaa4404bddc1ca603a28a43425a7e5a341..085e5217d3b9f73c312dc7fd510ef55cddb4a27c 100644 --- a/drivers/clk/bcm/clk-bcm2835.c +++ b/drivers/clk/bcm/clk-bcm2835.c @@ -443,6 +443,8 @@ struct bcm2835_clock_data { @@ -1476,7 +1476,7 @@ index 7a7970865c2d856b6b57113c2bb7e8074140a5dd..d9db03cb3fd84163f320dca6f2e533c6 bool is_vpu_clock; bool is_mash_clock; }; -@@ -1230,7 +1232,7 @@ static struct clk *bcm2835_register_clock(struct bcm2835_cprman *cprman, +@@ -1253,7 +1255,7 @@ static struct clk *bcm2835_register_clock(struct bcm2835_cprman *cprman, init.parent_names = parents; init.num_parents = data->num_mux_parents; init.name = data->name; @@ -1485,7 +1485,7 @@ index 7a7970865c2d856b6b57113c2bb7e8074140a5dd..d9db03cb3fd84163f320dca6f2e533c6 if (data->is_vpu_clock) { init.ops = &bcm2835_vpu_clock_clk_ops; -@@ -1649,6 +1651,7 @@ static const struct bcm2835_clk_desc clk_desc_array[] = { +@@ -1672,6 +1674,7 @@ static const struct bcm2835_clk_desc clk_desc_array[] = { .div_reg = CM_VPUDIV, .int_bits = 12, .frac_bits = 8, @@ -1494,10 +1494,10 @@ index 7a7970865c2d856b6b57113c2bb7e8074140a5dd..d9db03cb3fd84163f320dca6f2e533c6 /* clocks with per parent mux */ -From 4192862c24bc31eb92393913ff6bbafdd82dd7b4 Mon Sep 17 00:00:00 2001 +From bfab37b97822e45e9cfb0aed8953839ee8c3b1ab Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 9 May 2016 17:28:18 -0700 -Subject: [PATCH 027/133] clk: bcm2835: Mark GPIO clocks enabled at boot as +Subject: [PATCH 027/147] clk: bcm2835: Mark GPIO clocks enabled at boot as critical. These divide off of PLLD_PER and are used for the ethernet and wifi @@ -1515,10 +1515,10 @@ Signed-off-by: Eric Anholt 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/drivers/clk/bcm/clk-bcm2835.c b/drivers/clk/bcm/clk-bcm2835.c -index d9db03cb3fd84163f320dca6f2e533c61f61b5ad..f6bbe8d5929828048114286ec29a33e02519eab8 100644 +index 085e5217d3b9f73c312dc7fd510ef55cddb4a27c..e527649ee5e32d20cebd762f4badbfca06657a84 100644 --- a/drivers/clk/bcm/clk-bcm2835.c +++ b/drivers/clk/bcm/clk-bcm2835.c -@@ -1234,6 +1234,15 @@ static struct clk *bcm2835_register_clock(struct bcm2835_cprman *cprman, +@@ -1257,6 +1257,15 @@ static struct clk *bcm2835_register_clock(struct bcm2835_cprman *cprman, init.name = data->name; init.flags = data->flags | CLK_IGNORE_UNUSED; @@ -1534,7 +1534,7 @@ index d9db03cb3fd84163f320dca6f2e533c61f61b5ad..f6bbe8d5929828048114286ec29a33e0 if (data->is_vpu_clock) { init.ops = &bcm2835_vpu_clock_clk_ops; } else { -@@ -1708,13 +1717,15 @@ static const struct bcm2835_clk_desc clk_desc_array[] = { +@@ -1731,13 +1740,15 @@ static const struct bcm2835_clk_desc clk_desc_array[] = { .div_reg = CM_GP1DIV, .int_bits = 12, .frac_bits = 12, @@ -1552,84 +1552,10 @@ index d9db03cb3fd84163f320dca6f2e533c61f61b5ad..f6bbe8d5929828048114286ec29a33e0 /* HDMI state machine */ [BCM2835_CLOCK_HSM] = REGISTER_PER_CLK( -From 3513813a98006e6ccbb9efda27643de751b4d3f9 Mon Sep 17 00:00:00 2001 -From: Eric Anholt -Date: Tue, 26 Apr 2016 12:39:45 -0700 -Subject: [PATCH 028/133] clk: bcm2835: Skip PLLC clocks when deciding on a new - clock parent - -If the firmware had set up a clock to source from PLLC, go along with -it. But if we're looking for a new parent, we don't want to switch it -to PLLC because the firmware will force PLLC (and thus the AXI bus -clock) to different frequencies during over-temp/under-voltage, -without notification to Linux. - -On my system, this moves the Linux-enabled HDMI state machine and DSI1 -escape clock over to plld_per from pllc_per. EMMC still ends up on -pllc_per, because the firmware had set it up to use that. - -Signed-off-by: Eric Anholt -Fixes: 41691b8862e2 ("clk: bcm2835: Add support for programming the audio domain clocks") ---- - drivers/clk/bcm/clk-bcm2835.c | 23 +++++++++++++++++++++++ - 1 file changed, 23 insertions(+) - -diff --git a/drivers/clk/bcm/clk-bcm2835.c b/drivers/clk/bcm/clk-bcm2835.c -index f6bbe8d5929828048114286ec29a33e02519eab8..e527649ee5e32d20cebd762f4badbfca06657a84 100644 ---- a/drivers/clk/bcm/clk-bcm2835.c -+++ b/drivers/clk/bcm/clk-bcm2835.c -@@ -1008,16 +1008,28 @@ static int bcm2835_clock_set_rate(struct clk_hw *hw, - return 0; - } - -+static bool -+bcm2835_clk_is_pllc(struct clk_hw *hw) -+{ -+ if (!hw) -+ return false; -+ -+ return strncmp(clk_hw_get_name(hw), "pllc", 4) == 0; -+} -+ - static int bcm2835_clock_determine_rate(struct clk_hw *hw, - struct clk_rate_request *req) - { - struct bcm2835_clock *clock = bcm2835_clock_from_hw(hw); - struct clk_hw *parent, *best_parent = NULL; -+ bool current_parent_is_pllc; - unsigned long rate, best_rate = 0; - unsigned long prate, best_prate = 0; - size_t i; - u32 div; - -+ current_parent_is_pllc = bcm2835_clk_is_pllc(clk_hw_get_parent(hw)); -+ - /* - * Select parent clock that results in the closest but lower rate - */ -@@ -1025,6 +1037,17 @@ static int bcm2835_clock_determine_rate(struct clk_hw *hw, - parent = clk_hw_get_parent_by_index(hw, i); - if (!parent) - continue; -+ -+ /* -+ * Don't choose a PLLC-derived clock as our parent -+ * unless it had been manually set that way. PLLC's -+ * frequency gets adjusted by the firmware due to -+ * over-temp or under-voltage conditions, without -+ * prior notification to our clock consumer. -+ */ -+ if (bcm2835_clk_is_pllc(parent) && !current_parent_is_pllc) -+ continue; -+ - prate = clk_hw_get_rate(parent); - div = bcm2835_clock_choose_div(hw, req->rate, prate, true); - rate = bcm2835_clock_rate_from_divisor(clock, prate, div); - -From a0fff5c58561060aea5d5661cf690f20cee67b59 Mon Sep 17 00:00:00 2001 +From 20f4074103a081f6f62859085ad8c63ed7c26907 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Wed, 1 Jun 2016 12:05:35 -0700 -Subject: [PATCH 029/133] clk: bcm2835: Mark the CM SDRAM clock's parent as +Subject: [PATCH 028/147] clk: bcm2835: Mark the CM SDRAM clock's parent as critical While the SDRAM is being driven by its dedicated PLL most of the time, @@ -1703,10 +1629,10 @@ index e527649ee5e32d20cebd762f4badbfca06657a84..fbf616021704178a9d007219a0ea2a9f &cprman->onecell); } -From 2c8ec9b8aab3846395bcd6a18b9cce69b8d57123 Mon Sep 17 00:00:00 2001 +From a26e2e949802c585bb0e52eca15eb53d530a3d53 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 3 Oct 2016 13:58:40 +0100 -Subject: [PATCH 030/133] Enable upstream BCM2835 auxiliar mini UART support +Subject: [PATCH 029/147] Enable upstream BCM2835 auxiliar mini UART support --- drivers/tty/serial/8250/Kconfig | 2 +- @@ -1726,10 +1652,10 @@ index 7c6f7afca5ddeed7b25fa6272246fc539bf31b04..748098f900d3474b5d535b24da76ad06 help Support for the BCM2835 auxiliar mini UART. -From dd842c1ecd7e8aa67f9eeb74f9dfd2dd5dfb3a22 Mon Sep 17 00:00:00 2001 +From 22746eb2611f0df11273a5683c6843f08c554fc3 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 15 Jun 2016 16:48:41 +0100 -Subject: [PATCH 031/133] rtc: Add SPI alias for pcf2123 driver +Subject: [PATCH 030/147] rtc: Add SPI alias for pcf2123 driver Without this alias, Device Tree won't cause the driver to be loaded. @@ -1749,10 +1675,10 @@ index b4478cc92b55dbd76731ea8ec6a4228677adcebb..6981064d5cbad7d7078b23ce4ed5227e MODULE_LICENSE("GPL"); +MODULE_ALIAS("spi:rtc-pcf2123"); -From 34a4517eeb6e4eaaeb09681d1905cdd91e7b885c Mon Sep 17 00:00:00 2001 +From 078983ce02393115f2586a2192daa662da250fc1 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Tue, 19 Apr 2016 15:55:02 -0700 -Subject: [PATCH 032/133] ARM: bcm2708: Enable building power domain driver. +Subject: [PATCH 031/147] ARM: bcm2708: Enable building power domain driver. Signed-off-by: Eric Anholt --- @@ -1773,10 +1699,10 @@ index a39b0d58ddd0fdf0ac1cc7295f8aafb12546e226..7d11a44f36d2e6f8697773cd49a72e53 select PM_GENERIC_DOMAINS if PM help -From 030e766c1255c016089956c1b735ddd411bdcd79 Mon Sep 17 00:00:00 2001 +From d628172d94f5db1cb8e3447bd5d0646dfe95a88a Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 12 May 2013 12:24:19 +0100 -Subject: [PATCH 033/133] Main bcm2708/bcm2709 linux port +Subject: [PATCH 032/147] Main bcm2708/bcm2709 linux port MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -4301,10 +4227,10 @@ index aa4bfbf129e4585ebb89b25fca4b03c928925022..89f7a3a539b5a1b84ddcf0a1548160c0 mmc_pm_flag_t pm_caps; /* supported pm features */ -From 3590c152bc93eb52713e115ab8a94bdeb4df0e1a Mon Sep 17 00:00:00 2001 +From c7c3a04135c44b5923a487a5bb6e77cca415066d Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 5 Apr 2016 19:40:12 +0100 -Subject: [PATCH 034/133] reboot: Use power off rather than busy spinning when +Subject: [PATCH 033/147] reboot: Use power off rather than busy spinning when halt is requested --- @@ -4327,10 +4253,10 @@ index 3fa867a2aae672755c6ce6448f4148c989dbf964..80dca8dcd6709034b643c6a3f35729e0 /* -From 7c94b0d784d2ac4e6f431a8c138b0070a4210558 Mon Sep 17 00:00:00 2001 +From 5025942b9ae5e098639b318fe7c16a6630db5eab Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 11 Nov 2015 21:01:15 +0000 -Subject: [PATCH 035/133] squash: include ARCH_BCM2708 / ARCH_BCM2709 +Subject: [PATCH 034/147] squash: include ARCH_BCM2708 / ARCH_BCM2709 --- drivers/char/hw_random/Kconfig | 2 +- @@ -4494,10 +4420,10 @@ index d528aaceaad95bc6bae2147ebe66249629d2512e..03a303e52d5fe57bbdd8769d24bca590 select REGMAP_MMIO help -From 803da67aa6257789f65ac74fb4c60216557e56a3 Mon Sep 17 00:00:00 2001 +From 0e37b043e6008b854397be514cfc39ea12e8e7df Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 1 May 2013 19:46:17 +0100 -Subject: [PATCH 036/133] Add dwc_otg driver +Subject: [PATCH 035/147] Add dwc_otg driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -65523,10 +65449,10 @@ index 0000000000000000000000000000000000000000..cdc9963176e5a4a0d5250613b61e26c5 +test_main(); +0; -From 7c7e3f19c99b5bcbba13df411be58f5d47e67b38 Mon Sep 17 00:00:00 2001 +From e191bd94df99006e4ae446d089365240a0a066b5 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 17 Jun 2015 17:06:34 +0100 -Subject: [PATCH 037/133] bcm2708 framebuffer driver +Subject: [PATCH 036/147] bcm2708 framebuffer driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -68985,10 +68911,10 @@ index 3c14e43b82fefe1d32f591d1b2f61d2cd28d0fa8..7626beb6a5bb8df601ddf0f6e6909d1f +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 -From 58cdbb2c5c39e1ad230f57581a38d777776a7454 Mon Sep 17 00:00:00 2001 +From 15691abde28f83698bef6933a1ba3c6b2f33ad94 Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Fri, 22 Nov 2013 14:22:53 +0100 -Subject: [PATCH 038/133] dmaengine: Add support for BCM2708 +Subject: [PATCH 037/147] dmaengine: Add support for BCM2708 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -69610,10 +69536,10 @@ index 0000000000000000000000000000000000000000..c5bfff2765be4606077e6c8af73040ec + +#endif /* _PLAT_BCM2708_DMA_H */ -From 9d4105c8791b3d3ee6a6eaa51879142875166831 Mon Sep 17 00:00:00 2001 +From a5c624f57a5acc7ea245f4f227853004d353627c Mon Sep 17 00:00:00 2001 From: gellert Date: Fri, 15 Aug 2014 16:35:06 +0100 -Subject: [PATCH 039/133] MMC: added alternative MMC driver +Subject: [PATCH 038/147] MMC: added alternative MMC driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -71360,10 +71286,10 @@ index 0000000000000000000000000000000000000000..ceb37930e167f47c9c848e8de757ad09 +MODULE_LICENSE("GPL v2"); +MODULE_AUTHOR("Gellert Weisz"); -From c37a3521e6cd3fe01c3ac774311271bf3c0c49b1 Mon Sep 17 00:00:00 2001 +From e1a45e934c517ef9a714d9ffc31e16c78eaf93d0 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 25 Mar 2015 17:49:47 +0000 -Subject: [PATCH 040/133] Adding bcm2835-sdhost driver, and an overlay to +Subject: [PATCH 039/147] Adding bcm2835-sdhost driver, and an overlay to enable it BCM2835 has two SD card interfaces. This driver uses the other one. @@ -73755,10 +73681,10 @@ index 0000000000000000000000000000000000000000..23dea422182534e248435aeaee3ecb5d +MODULE_LICENSE("GPL v2"); +MODULE_AUTHOR("Phil Elwell"); -From 50067c20afbd42922981343d28894d474e1d7d43 Mon Sep 17 00:00:00 2001 +From e707483b225a17abcde849a17cbdfd058ed89edc Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 11 May 2016 12:50:33 +0100 -Subject: [PATCH 041/133] mmc: Add MMC_QUIRK_ERASE_BROKEN for some cards +Subject: [PATCH 040/147] mmc: Add MMC_QUIRK_ERASE_BROKEN for some cards Some SD cards have been found that corrupt data when small blocks are erased. Add a quirk to indicate that ERASE should not be used, @@ -73787,7 +73713,7 @@ Signed-off-by: Phil Elwell 3 files changed, 41 insertions(+), 4 deletions(-) diff --git a/drivers/mmc/card/block.c b/drivers/mmc/card/block.c -index 2206d4477dbbdb5190906e277124580b600d71e0..8c3c361f24ea675cd3a85d9d2d0124f3793adcc9 100644 +index 17891f17f39d88941990177b21d05479ec708037..c0163b8bdd20c33f65d952f6446d9bd2ca7bb3a6 100644 --- a/drivers/mmc/card/block.c +++ b/drivers/mmc/card/block.c @@ -134,6 +134,13 @@ enum { @@ -73804,7 +73730,7 @@ index 2206d4477dbbdb5190906e277124580b600d71e0..8c3c361f24ea675cd3a85d9d2d0124f3 static inline int mmc_blk_part_switch(struct mmc_card *card, struct mmc_blk_data *md); static int get_card_status(struct mmc_card *card, u32 *status, int retries); -@@ -2572,6 +2579,17 @@ static const struct mmc_fixup blk_fixups[] = +@@ -2573,6 +2580,17 @@ static const struct mmc_fixup blk_fixups[] = MMC_FIXUP("V10016", CID_MANFID_KINGSTON, CID_OEMID_ANY, add_quirk_mmc, MMC_QUIRK_TRIM_BROKEN), @@ -73822,7 +73748,7 @@ index 2206d4477dbbdb5190906e277124580b600d71e0..8c3c361f24ea675cd3a85d9d2d0124f3 END_FIXUP }; -@@ -2579,6 +2597,7 @@ static int mmc_blk_probe(struct mmc_card *card) +@@ -2580,6 +2598,7 @@ static int mmc_blk_probe(struct mmc_card *card) { struct mmc_blk_data *md, *part_md; char cap_str[10]; @@ -73830,7 +73756,7 @@ index 2206d4477dbbdb5190906e277124580b600d71e0..8c3c361f24ea675cd3a85d9d2d0124f3 /* * Check that the card supports the command class(es) we need. -@@ -2586,7 +2605,16 @@ static int mmc_blk_probe(struct mmc_card *card) +@@ -2587,7 +2606,16 @@ static int mmc_blk_probe(struct mmc_card *card) if (!(card->csd.cmdclass & CCC_BLOCK_READ)) return -ENODEV; @@ -73848,7 +73774,7 @@ index 2206d4477dbbdb5190906e277124580b600d71e0..8c3c361f24ea675cd3a85d9d2d0124f3 md = mmc_blk_alloc(card); if (IS_ERR(md)) -@@ -2594,9 +2622,14 @@ static int mmc_blk_probe(struct mmc_card *card) +@@ -2595,9 +2623,14 @@ static int mmc_blk_probe(struct mmc_card *card) string_get_size((u64)get_capacity(md->disk), 512, STRING_UNITS_2, cap_str, sizeof(cap_str)); @@ -73894,10 +73820,10 @@ index d8673ca968ba2d65fb3da39680583ca5152641e4..510c3872929b3267fb6665bb69d26f5a unsigned int erase_shift; /* if erase unit is power 2 */ unsigned int pref_erase; /* in sectors */ -From af44f3c2d5631fe1dd413838cf150f8573829b44 Mon Sep 17 00:00:00 2001 +From 7d1b326d12782751c83a8667b9a381346e9e5b95 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 3 Jul 2013 00:31:47 +0100 -Subject: [PATCH 042/133] cma: Add vc_cma driver to enable use of CMA +Subject: [PATCH 041/147] 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 @@ -75240,10 +75166,10 @@ index 0000000000000000000000000000000000000000..be2819d5d41f9d5ed65daf8eedb94c9e + +#endif /* VC_CMA_H */ -From 2e89eff887d0aad7b4269cb38996187bfe7a8ded Mon Sep 17 00:00:00 2001 +From be0f0447f09e519cadc268d5e544addc3cfccecd Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 26 Mar 2012 22:15:50 +0100 -Subject: [PATCH 043/133] bcm2708: alsa sound driver +Subject: [PATCH 042/147] bcm2708: alsa sound driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -77979,10 +77905,10 @@ index 0000000000000000000000000000000000000000..af3e6eb690113fc32ce9e06bd2f0f294 + +#endif // _VC_AUDIO_DEFS_H_ -From c82f2bb59be5d01c5cafe3f53fb0c4295c2f8917 Mon Sep 17 00:00:00 2001 +From 76c58b748517c00ec318fb862bd5dd03b1778e64 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 2 Jul 2013 23:42:01 +0100 -Subject: [PATCH 044/133] bcm2708 vchiq driver +Subject: [PATCH 043/147] bcm2708 vchiq driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -91347,10 +91273,10 @@ index 0000000000000000000000000000000000000000..b6bfa21155e431e93bfb2c149d324371 + return vchiq_build_time; +} -From 56bcbb1c15897cac27788fb419ec4326c2e323f6 Mon Sep 17 00:00:00 2001 +From abc3e6c51f5a3efb5e41ea209bfd208d683a5d8c Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 17 Jun 2015 16:07:06 +0100 -Subject: [PATCH 045/133] vc_mem: Add vc_mem driver +Subject: [PATCH 044/147] vc_mem: Add vc_mem driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -92355,10 +92281,10 @@ index 0000000000000000000000000000000000000000..20a475377eb3078ea1ecaef2b24efc35 + +#endif /* _VC_MEM_H */ -From 8099c52e8672766bce4142be97b1b3f5ce54e5ab Mon Sep 17 00:00:00 2001 +From b5820bdf78d981ef65ad87f2f01a6ed8c27bc38e Mon Sep 17 00:00:00 2001 From: Tim Gover Date: Tue, 22 Jul 2014 15:41:04 +0100 -Subject: [PATCH 046/133] vcsm: VideoCore shared memory service for BCM2835 +Subject: [PATCH 045/147] vcsm: VideoCore shared memory service for BCM2835 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -96776,10 +96702,10 @@ index 0000000000000000000000000000000000000000..334f36d0d697b047df2922b5f2db67f3 + +#endif /* __VMCS_SM_IOCTL_H__INCLUDED__ */ -From 5246ed7cbe4739c6752264e452f8d7e0bdbc9725 Mon Sep 17 00:00:00 2001 +From 3676bbcced7a440d5f67ec7361553eb47ed6eb5b Mon Sep 17 00:00:00 2001 From: Luke Wren Date: Fri, 21 Aug 2015 23:14:48 +0100 -Subject: [PATCH 047/133] Add /dev/gpiomem device for rootless user GPIO access +Subject: [PATCH 046/147] Add /dev/gpiomem device for rootless user GPIO access Signed-off-by: Luke Wren @@ -97090,10 +97016,10 @@ index 0000000000000000000000000000000000000000..911f5b7393ed48ceed8751f06967ae64 +MODULE_DESCRIPTION("gpiomem driver for accessing GPIO from userspace"); +MODULE_AUTHOR("Luke Wren "); -From 1f79ba972a11655e56296a00226c936c2ec1bf98 Mon Sep 17 00:00:00 2001 +From f7d98fc7e067a2276d2f5ebbd20db617f149d9cd Mon Sep 17 00:00:00 2001 From: Luke Wren Date: Sat, 5 Sep 2015 01:14:45 +0100 -Subject: [PATCH 048/133] Add SMI driver +Subject: [PATCH 047/147] Add SMI driver Signed-off-by: Luke Wren --- @@ -99044,10 +98970,10 @@ index 0000000000000000000000000000000000000000..ee3a75edfc033eeb0d90a687ffb68b10 + +#endif /* BCM2835_SMI_H */ -From eedc98f450f15d5964f3a83be550dd71d79da181 Mon Sep 17 00:00:00 2001 +From 8367c05a30e9624b12d7d3712e6909cf1e215be3 Mon Sep 17 00:00:00 2001 From: Martin Sperl Date: Tue, 26 Apr 2016 14:59:21 +0000 -Subject: [PATCH 049/133] MISC: bcm2835: smi: use clock manager and fix reload +Subject: [PATCH 048/147] MISC: bcm2835: smi: use clock manager and fix reload issues Use clock manager instead of self-made clockmanager. @@ -99217,10 +99143,10 @@ index 63a4ea08b9930a3a31a985f0a1d969b488ed49ec..1261540703127d1d63b9f3c87042c6e5 return 0; } -From 757c8ea3fc3c4ff43b5a3c6bc137917b1bb11097 Mon Sep 17 00:00:00 2001 +From 6ba83eb2c7620c477cd1a666a6b84ba007dbb9a1 Mon Sep 17 00:00:00 2001 From: Luke Wren Date: Sat, 5 Sep 2015 01:16:10 +0100 -Subject: [PATCH 050/133] Add SMI NAND driver +Subject: [PATCH 049/147] Add SMI NAND driver Signed-off-by: Luke Wren --- @@ -99585,10 +99511,10 @@ index 0000000000000000000000000000000000000000..02adda6da18bd0ba9ab19a104975b79d + ("Driver for NAND chips using Broadcom Secondary Memory Interface"); +MODULE_AUTHOR("Luke Wren "); -From 2b78376e267757011c3ace089ab02bc1957ce731 Mon Sep 17 00:00:00 2001 +From 2d577077553d6913a970d0d310f6130698fc7330 Mon Sep 17 00:00:00 2001 From: Aron Szabo Date: Sat, 16 Jun 2012 12:15:55 +0200 -Subject: [PATCH 051/133] lirc: added support for RaspberryPi GPIO +Subject: [PATCH 050/147] 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 @@ -100451,10 +100377,10 @@ index 0000000000000000000000000000000000000000..fb69624ccef00ddbdccf8256d6baf1b1 + +#endif -From 26fec1142057f9ccf3484be0cf47dfccbcdbe464 Mon Sep 17 00:00:00 2001 +From 89567e90863abb9857b09e3fc051df1c0ee80af6 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 3 Jul 2013 00:49:20 +0100 -Subject: [PATCH 052/133] Add cpufreq driver +Subject: [PATCH 051/147] Add cpufreq driver Signed-off-by: popcornmix --- @@ -100716,10 +100642,10 @@ index 0000000000000000000000000000000000000000..3eb9e9326231b08e6ee95ad486485245 +module_init(bcm2835_cpufreq_module_init); +module_exit(bcm2835_cpufreq_module_exit); -From e9b11b676f3d703fe9a2f27cfce5a9fae571c2e4 Mon Sep 17 00:00:00 2001 +From c6c210234adf244ae3d7b353138e6212097efd4e Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 26 Mar 2013 19:24:24 +0000 -Subject: [PATCH 053/133] Added hwmon/thermal driver for reporting core +Subject: [PATCH 052/147] Added hwmon/thermal driver for reporting core temperature. Thanks Dorian MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -100885,10 +100811,10 @@ index 0000000000000000000000000000000000000000..c63fb9f9d143e19612a18fe530c7b2b3 +MODULE_DESCRIPTION("Thermal driver for bcm2835 chip"); +MODULE_LICENSE("GPL"); -From 9fc131b5e21ad6741aabc73fa5a48e80c54ec3ee Mon Sep 17 00:00:00 2001 +From 40cf8b0e804938d25e1b8a6d708e566dc332d622 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 17 Jun 2015 15:44:08 +0100 -Subject: [PATCH 054/133] Add Chris Boot's i2c driver +Subject: [PATCH 053/147] Add Chris Boot's i2c driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -101562,10 +101488,10 @@ index 0000000000000000000000000000000000000000..962f2e5c7455d91bf32925d785f5f16b +MODULE_LICENSE("GPL v2"); +MODULE_ALIAS("platform:" DRV_NAME); -From e13939694965ea45922bb1aac762dd304e29c251 Mon Sep 17 00:00:00 2001 +From 85fd5ef8372d72fd8648d0a2a3238d8d649b9a37 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 055/133] char: broadcom: Add vcio module +Subject: [PATCH 054/147] char: broadcom: Add vcio module MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -101791,10 +101717,10 @@ index 0000000000000000000000000000000000000000..c19bc2075c77879563ef5e59038b5a14 +MODULE_DESCRIPTION("Mailbox userspace access"); +MODULE_LICENSE("GPL"); -From 0c533fb19eccd178d7422816dcf42eb046b2a1c8 Mon Sep 17 00:00:00 2001 +From 6a3a35c240473f724f22581a956cef5c4c208ce0 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 056/133] firmware: bcm2835: Support ARCH_BCM270x +Subject: [PATCH 055/147] firmware: bcm2835: Support ARCH_BCM270x MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -101900,10 +101826,10 @@ index dd506cd3a5b874f9e1acd07efb8cd151bb6145d1..b980d531b35b9981a88356ef1c8a7b86 MODULE_AUTHOR("Eric Anholt "); MODULE_DESCRIPTION("Raspberry Pi firmware driver"); -From a7f5c542ca7327ae83a670b48e808098fecbee7b Mon Sep 17 00:00:00 2001 +From c20b8387cf7daba6d5d8cfca9971ba8d3fb2b0d8 Mon Sep 17 00:00:00 2001 From: Vincent Sanders Date: Wed, 30 Jan 2013 12:45:18 +0000 -Subject: [PATCH 057/133] bcm2835: add v4l2 camera device +Subject: [PATCH 056/147] bcm2835: add v4l2 camera device - Supports raw YUV capture, preview, JPEG and H264. - Uses videobuf2 for data transfer, using dma_buf. @@ -109635,10 +109561,10 @@ index 0000000000000000000000000000000000000000..9d1d11e4a53e510c04a416d92d195a7d + +#endif /* MMAL_VCHIQ_H */ -From 4f3b4755d1fdaf21c2196584897243f480375af6 Mon Sep 17 00:00:00 2001 +From b4ef7cff9216b662c6f8a564e59d2d59975af98a Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 11 May 2015 09:00:42 +0100 -Subject: [PATCH 058/133] scripts: Add mkknlimg and knlinfo scripts from tools +Subject: [PATCH 057/147] scripts: Add mkknlimg and knlinfo scripts from tools repo The Raspberry Pi firmware looks for a trailer on the kernel image to @@ -110150,10 +110076,10 @@ index 0000000000000000000000000000000000000000..78c5845d2f01deb04b477327d83fa606 + return $trailer; +} -From 9aa153fcdf67297ff85cd52e7c9420c782d530df Mon Sep 17 00:00:00 2001 +From 897b7a7e5dbee3c8f31a15787bc72aa152040ec1 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 10 Aug 2015 09:49:15 +0100 -Subject: [PATCH 059/133] scripts/dtc: Update to upstream version 1.4.1 +Subject: [PATCH 058/147] scripts/dtc: Update to upstream version 1.4.1 Includes the new localfixups format. @@ -113004,10 +112930,10 @@ index ad9b05ae698b0495ecbda42ffcf4743555313a27..2595dfda020fd9e03f0beff5006f229d -#define DTC_VERSION "DTC 1.4.1-g53bf130b" +#define DTC_VERSION "DTC 1.4.1-g25efc119" -From 59aa060bf3e8bb828c9a4009877166e90c9bc3a1 Mon Sep 17 00:00:00 2001 +From 1000326aad301ee90d38cfeffbe40248844637d4 Mon Sep 17 00:00:00 2001 From: notro Date: Wed, 9 Jul 2014 14:46:08 +0200 -Subject: [PATCH 060/133] BCM2708: Add core Device Tree support +Subject: [PATCH 059/147] BCM2708: Add core Device Tree support Add the bare minimum needed to boot BCM2708 from a Device Tree. @@ -122836,10 +122762,10 @@ index 0000000000000000000000000000000000000000..8498134fdbb3912e9ce18282b53084d8 + +}; -From e2b767015c0689ec0d0a60b36f9541329a8a3f42 Mon Sep 17 00:00:00 2001 +From cb5beb68e71d20d4ca863ba9edddc02584bc663c Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 24 Aug 2016 16:28:44 +0100 -Subject: [PATCH 061/133] kbuild: Ignore dtco targets when filtering symbols +Subject: [PATCH 060/147] kbuild: Ignore dtco targets when filtering symbols --- scripts/Kbuild.include | 2 +- @@ -122859,10 +122785,10 @@ index 179219845dfcdfbeb586d12c5ec1296095d9fbf4..e0743e44f84188667a0c322e8c3d36f1 esac | tr ";" "\n" | sed -rn 's/^.*=== __KSYM_(.*) ===.*$$/KSYM_\1/p' -From e0e1b2218408e14a9b0671fdba9200ec3e66b010 Mon Sep 17 00:00:00 2001 +From 40b94e61e4965f868cd80228722b1c8cb711472f Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 13 Mar 2015 20:00:21 +0000 -Subject: [PATCH 062/133] BCM270X_DT: Add a .dtbo target, use for overlays +Subject: [PATCH 061/147] 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 @@ -122945,10 +122871,10 @@ index 0a07f9014944ed92a8e2e42983ae43be60b3e471..b1513a7c175885137034b9f7225788c0 # Bzip2 -From 71710ca1cd727834551a5c0cd851831e05ac99ec Mon Sep 17 00:00:00 2001 +From 5367a026c7630fd21e5655e240db0b7961f51455 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 8 Apr 2016 17:43:27 +0100 -Subject: [PATCH 063/133] BCM270X_DT: Don't generate "linux,phandle" props +Subject: [PATCH 062/147] 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 @@ -122974,10 +122900,10 @@ index b1513a7c175885137034b9f7225788c0a7c35027..1d949b7410600dd3b04a3acde8c41cfe -d $(depfile).dtc.tmp $(dtc-tmp) ; \ cat $(depfile).pre.tmp $(depfile).dtc.tmp > $(depfile) -From 3367dcee4ae6fad79183c4943b9f3cbe403aa45b Mon Sep 17 00:00:00 2001 +From 38179d1bdd5d56eb4f650e1fcb03e16a9919f3b0 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 6 Feb 2015 13:50:57 +0000 -Subject: [PATCH 064/133] BCM270x_DT: Add pwr_led, and the required "input" +Subject: [PATCH 063/147] BCM270x_DT: Add pwr_led, and the required "input" trigger The "input" trigger makes the associated GPIO an input. This is to support @@ -123153,10 +123079,10 @@ index 8a3b5d29602ffe665cfb26522180f3a696664371..d067976ddc2f34d5476bcd9321856b1c /* Set LED brightness level * Must not sleep. Use brightness_set_blocking for drivers -From 5ff040fa30a3899c0b24b5b808abd3286943eeba Mon Sep 17 00:00:00 2001 +From 17563d181c440776b9fd48b955692049b256faef Mon Sep 17 00:00:00 2001 From: Siarhei Siamashka Date: Mon, 17 Jun 2013 13:32:11 +0300 -Subject: [PATCH 065/133] fbdev: add FBIOCOPYAREA ioctl +Subject: [PATCH 064/147] fbdev: add FBIOCOPYAREA ioctl Based on the patch authored by Ali Gholami Rudi at https://lkml.org/lkml/2009/7/13/153 @@ -123255,10 +123181,10 @@ index fb795c3b3c178ad3cd7c9e9e4547ffd492bac181..fa72af0c981710fe80bacf4cf6612f6d #define FB_TYPE_PACKED_PIXELS 0 /* Packed Pixels */ #define FB_TYPE_PLANES 1 /* Non interleaved planes */ -From f21804eef6f572ed104ddbd998aa0f35f0af1238 Mon Sep 17 00:00:00 2001 +From d9e798ccdfc952fb773014af8ea17f0761265fc2 Mon Sep 17 00:00:00 2001 From: Harm Hanemaaijer Date: Thu, 20 Jun 2013 20:21:39 +0200 -Subject: [PATCH 066/133] Speed up console framebuffer imageblit function +Subject: [PATCH 065/147] 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 @@ -123467,10 +123393,10 @@ index a2bb276a8b2463eee98eb237c4647bc00cd93601..436494fba15abecb400ef28688466faf start_index, pitch_index); } else -From a33a99a7be2f23ef94e0396abdd8a9981a4e3252 Mon Sep 17 00:00:00 2001 +From cf627c1a74bbb2365793ba9b95b93343b13ee8f8 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 8 May 2013 11:46:50 +0100 -Subject: [PATCH 067/133] enabling the realtime clock 1-wire chip DS1307 and +Subject: [PATCH 066/147] 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 @@ -123720,10 +123646,10 @@ index d58594a3232492e33f1dd4babd3798b03e0f0203..feae94256256316fd9d850c3d83325af unsigned int ext_pullup_enable_pin; unsigned int pullup_duration; -From 3aae96b0bda04b82d6bd4f35de7760f570f5d6ff Mon Sep 17 00:00:00 2001 +From bbacc68e30e1a11a8cebebf48131c2c88f7a2024 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 18 Dec 2013 22:16:19 +0000 -Subject: [PATCH 068/133] config: Enable CONFIG_MEMCG, but leave it disabled +Subject: [PATCH 067/147] config: Enable CONFIG_MEMCG, but leave it disabled (due to memory cost). Enable with cgroup_enable=memory. --- @@ -123773,10 +123699,10 @@ index d6b729beba4930bbb1a1ddc4a6a6b8533bbf94e0..69e8d214f663572319f784fe17032b1e * css_tryget_online_from_dir - get corresponding css from a cgroup dentry * @dentry: directory dentry of interest -From 40be2be146712cebcbaa70e2cd84a384bb1e2ddb Mon Sep 17 00:00:00 2001 +From 01e472c83c0c80ab085a1cdb57e98d2edb61b19f Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 14 Jul 2014 22:02:09 +0100 -Subject: [PATCH 069/133] hid: Reduce default mouse polling interval to 60Hz +Subject: [PATCH 068/147] hid: Reduce default mouse polling interval to 60Hz Reduces overhead when using X --- @@ -123812,10 +123738,10 @@ index ae83af649a607f67239f1a64bf45dd4b5770cc7d..4a7af9d0b910f59d17421ce14138400d ret = -ENOMEM; if (usb_endpoint_dir_in(endpoint)) { -From fb5905311ee0a57d1ebdb5220aa571b63075f203 Mon Sep 17 00:00:00 2001 +From 89d8d2311e4fc8cd51321ff48ba68453b2ad7f23 Mon Sep 17 00:00:00 2001 From: Gordon Hollingworth Date: Tue, 12 May 2015 14:47:56 +0100 -Subject: [PATCH 070/133] rpi-ft5406: Add touchscreen driver for pi LCD display +Subject: [PATCH 069/147] 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 @@ -124110,10 +124036,10 @@ index 0000000000000000000000000000000000000000..b27dbee8f56773dbd2a5503dc864747d +MODULE_DESCRIPTION("Touchscreen driver for memory based FT5406"); +MODULE_LICENSE("GPL"); -From 06a51e0b34869a8059d9f8f0335a8253245da51a Mon Sep 17 00:00:00 2001 +From b332bdfd992d99b87de05b8959216c69bbfec7b5 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 13 Oct 2014 11:47:53 +0100 -Subject: [PATCH 071/133] Improve __copy_to_user and __copy_from_user +Subject: [PATCH 070/147] Improve __copy_to_user and __copy_from_user performance Provide a __copy_from_user that uses memcpy. On BCM2708, use @@ -125669,10 +125595,10 @@ index 6bd1089b07e0960830ed6bd6a8345202b7efd8b0..cd17dd11ebe7bbe00089e70cd2ccea74 static unsigned long noinline __clear_user_memset(void __user *addr, unsigned long n) -From c22b680f44ff3703ab3670bbb801b0a2f0f5c2a7 Mon Sep 17 00:00:00 2001 +From f32c1e5e821f93a2608c9c348a226953767f2dfc Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 25 Jun 2015 12:16:11 +0100 -Subject: [PATCH 072/133] gpio-poweroff: Allow it to work on Raspberry Pi +Subject: [PATCH 071/147] 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 @@ -125707,10 +125633,10 @@ index be3d81ff51cc3f510d85e4eed7a52960e51e7bc1..a030ae9fb1fca325061c093696e82186 "%s: pm_power_off function already registered", __func__); -From 1bb52e6360c88bcb3ae0638fadbee236d50678cf Mon Sep 17 00:00:00 2001 +From 737361dc9e36f0bf100a2858f16d8af95c8c6af8 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 14 Jul 2015 14:32:47 +0100 -Subject: [PATCH 073/133] mfd: Add Raspberry Pi Sense HAT core driver +Subject: [PATCH 072/147] mfd: Add Raspberry Pi Sense HAT core driver --- drivers/input/joystick/Kconfig | 8 + @@ -126575,10 +126501,10 @@ index 0000000000000000000000000000000000000000..56196dc2af10e464a1e3f98b028dca1c + +#endif -From 8d441097e8301ddfe71b411695f277b9e9158c56 Mon Sep 17 00:00:00 2001 +From c68fbf3a29b5f18ecd3d0eb161334aa9248172cc Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Fri, 22 Nov 2013 19:19:08 +0100 -Subject: [PATCH 074/133] ASoC: Add support for HifiBerry DAC +Subject: [PATCH 073/147] ASoC: Add support for HifiBerry DAC This adds a machine driver for the HifiBerry DAC. It is a sound card that can @@ -126752,10 +126678,10 @@ index 0000000000000000000000000000000000000000..29ecc08a227cdd4b3c6141935d0c5d21 +MODULE_DESCRIPTION("ASoC Driver for HifiBerry DAC"); +MODULE_LICENSE("GPL v2"); -From 99b41cf3b303275458ad9360746ddc1e41e8d7b6 Mon Sep 17 00:00:00 2001 +From b4420a1837db44bde6f4252c2f8895003fe0da11 Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Mon, 25 Jan 2016 15:48:59 +0000 -Subject: [PATCH 075/133] ASoC: Add support for Rpi-DAC +Subject: [PATCH 074/147] ASoC: Add support for Rpi-DAC --- sound/soc/bcm/Kconfig | 7 +++ @@ -127039,10 +126965,10 @@ index 0000000000000000000000000000000000000000..afe1b419582aa40c4b2729d242bb13cd +MODULE_AUTHOR("Florian Meier "); +MODULE_LICENSE("GPL v2"); -From 4ba0700ed4024b02ed837e6aa20472d540b642e7 Mon Sep 17 00:00:00 2001 +From 580f59b3b5f090e913694a3fb720d6b851026d07 Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Wed, 15 Jan 2014 21:41:23 +0100 -Subject: [PATCH 076/133] ASoC: wm8804: Implement MCLK configuration options, +Subject: [PATCH 075/147] 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 @@ -127091,10 +127017,10 @@ index 8d914702cae4a3fe2c0ca0599cd1ec79f7322c83..c846716b4ed1027ade5512e8be90801d .dapm_widgets = wm8804_dapm_widgets, .num_dapm_widgets = ARRAY_SIZE(wm8804_dapm_widgets), -From 362d51e6d195b4fd1c24bd3f3cc0c32654f730e3 Mon Sep 17 00:00:00 2001 +From fb1c04f22e67e4e5e3ac880b62d88e076a375478 Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Wed, 15 Jan 2014 21:42:08 +0100 -Subject: [PATCH 077/133] ASoC: BCM:Add support for HiFiBerry Digi. Driver is +Subject: [PATCH 076/147] ASoC: BCM:Add support for HiFiBerry Digi. Driver is based on the patched WM8804 driver. Signed-off-by: Daniel Matuschek @@ -127382,10 +127308,10 @@ index 0000000000000000000000000000000000000000..9840e15d3e2be6396bc3ce6e74749408 +MODULE_DESCRIPTION("ASoC Driver for HifiBerry Digi"); +MODULE_LICENSE("GPL v2"); -From 722a9e44f813b02bda1ebca5765b817cddc0f566 Mon Sep 17 00:00:00 2001 +From a731345091e8cac6184b2393626e16752160298e Mon Sep 17 00:00:00 2001 From: Gordon Garrity Date: Sat, 8 Mar 2014 16:56:57 +0000 -Subject: [PATCH 078/133] Add IQaudIO Sound Card support for Raspberry Pi +Subject: [PATCH 077/147] Add IQaudIO Sound Card support for Raspberry Pi Set a limit of 0dB on Digital Volume Control @@ -127715,10 +127641,10 @@ index 0000000000000000000000000000000000000000..4e8e6dec14bcf4a1ff286c43742d4097 +MODULE_DESCRIPTION("ASoC Driver for IQAudio DAC"); +MODULE_LICENSE("GPL v2"); -From 497b938312ca04558a3ac9b58bbbb009eb4dbbc3 Mon Sep 17 00:00:00 2001 +From 272329421a229c079947265c0240a315944b6239 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 25 Jul 2016 17:06:50 +0100 -Subject: [PATCH 079/133] iqaudio-dac: Compile fix - untested +Subject: [PATCH 078/147] iqaudio-dac: Compile fix - untested --- sound/soc/bcm/iqaudio-dac.c | 6 +++++- @@ -127742,10 +127668,10 @@ index 4e8e6dec14bcf4a1ff286c43742d4097249d6777..aa15bc4b49ca95edec905fddd8fd0a6d if (dapm->dev != codec_dai->dev) return 0; -From 27aca523108059e07b28bd73e49a455d1ad07afe Mon Sep 17 00:00:00 2001 +From 4102ff718c700e8e7f2b33334a30e1f325af05f1 Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Mon, 4 Aug 2014 10:06:56 +0200 -Subject: [PATCH 080/133] Added support for HiFiBerry DAC+ +Subject: [PATCH 079/147] 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. @@ -128374,10 +128300,10 @@ index 047c48953a20cd4075000ac294a17fe59baedcde..090fe0ee08e8765f9edbb62777413bb6 dev_err(dev, "No LRCLK?\n"); return -EINVAL; -From c5a5fb9ed76afba271fde65059904fca4d90bfb2 Mon Sep 17 00:00:00 2001 +From 37e7ddff6e4a2d5f7c0a600705214f45d8aa1c34 Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Mon, 4 Aug 2014 11:09:58 +0200 -Subject: [PATCH 081/133] Added driver for HiFiBerry Amp amplifier add-on board +Subject: [PATCH 080/147] 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. @@ -129209,10 +129135,10 @@ index 0000000000000000000000000000000000000000..8f019e04898754d2f87e9630137be9e8 + +#endif /* _TAS5713_H */ -From f60a9818aba0457dc2b18a9577f9435371a1cdc6 Mon Sep 17 00:00:00 2001 +From bbf443ac198557ce97083a2eec5d379dcb0b9846 Mon Sep 17 00:00:00 2001 From: "Daniel Matuschek (HiFiBerry)" Date: Tue, 26 Jul 2016 19:16:25 +0200 -Subject: [PATCH 082/133] Added HiFiBerry Digi+ Pro driver +Subject: [PATCH 081/147] Added HiFiBerry Digi+ Pro driver Signed-off-by: Daniel Matuschek --- @@ -129320,10 +129246,10 @@ index 9840e15d3e2be6396bc3ce6e74749408cc28c333..52ab9dea2e724c4238986ca53c59c849 ret = snd_soc_register_card(&snd_rpi_hifiberry_digi); -From 5986266b254bf71871c77cbeb734e79c9fc64198 Mon Sep 17 00:00:00 2001 +From cefc2e41425094bc18530f8c5911c6cae87d614c Mon Sep 17 00:00:00 2001 From: Ryan Coe Date: Sat, 31 Jan 2015 18:25:49 -0700 -Subject: [PATCH 083/133] Update ds1307 driver for device-tree support +Subject: [PATCH 082/147] Update ds1307 driver for device-tree support Signed-off-by: Ryan Coe --- @@ -129350,10 +129276,10 @@ index 8e1c5cb6ece6f60619e5cafcea4271e056d96778..f9536679b270a39a4d9639fdbd3420fe .driver = { .name = "rtc-ds1307", -From bb714661d70519e8712d8cc66661093656f58358 Mon Sep 17 00:00:00 2001 +From 0e0b3d3128d115eac8bd7ac736c22ae0fc738d20 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Wed, 25 Mar 2015 09:26:17 +0100 -Subject: [PATCH 084/133] Add driver for rpi-proto +Subject: [PATCH 083/147] 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 @@ -129569,10 +129495,10 @@ index 0000000000000000000000000000000000000000..9db678e885efd63d84d60a098a84ed67 +MODULE_DESCRIPTION("ASoC Driver for Raspberry Pi connected to PROTO board (WM8731)"); +MODULE_LICENSE("GPL"); -From 63319d985ede2f7ef61282f4d747808d93a92b7d Mon Sep 17 00:00:00 2001 +From ddcd9417f7a403c52ea358c52779fe605110b599 Mon Sep 17 00:00:00 2001 From: Jan Grulich Date: Mon, 24 Aug 2015 16:03:47 +0100 -Subject: [PATCH 085/133] RaspiDAC3 support +Subject: [PATCH 084/147] RaspiDAC3 support Signed-off-by: Jan Grulich @@ -129815,10 +129741,10 @@ index 0000000000000000000000000000000000000000..dd9eeea2af0382307f437e6db09d1546 +MODULE_DESCRIPTION("ASoC Driver for RaspiDAC Rev.3x"); +MODULE_LICENSE("GPL v2"); -From 3a182dafc91ca024aee3c64b9bf443cdb516fc71 Mon Sep 17 00:00:00 2001 +From 70c9d6420872f69ec7d5ab2f152e9cbbb7f19d81 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 9 Aug 2016 14:49:23 +0100 -Subject: [PATCH 086/133] tpa6130a2: Add headphone switch control +Subject: [PATCH 085/147] tpa6130a2: Add headphone switch control Signed-off-by: Jan Grulich --- @@ -129927,10 +129853,10 @@ index f1ea052a822e1f584eb55cbc876b8e079e813ccd..3bf0163956c5665683d7950798df527f { struct tpa6130a2_data *data = snd_soc_component_get_drvdata(component); -From d43316c3ff8ea4822df2496be31400e91438fc3e Mon Sep 17 00:00:00 2001 +From bdc944205e23a4a113e49dbf570de4f0101bafd1 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 9 Aug 2016 14:49:29 +0100 -Subject: [PATCH 087/133] Revert "tpa6130a2: Add headphone switch control" +Subject: [PATCH 086/147] Revert "tpa6130a2: Add headphone switch control" This reverts commit 860574af506a7a28782ca373feb880e7846943f9. --- @@ -130039,10 +129965,10 @@ index 3bf0163956c5665683d7950798df527fa1b57b59..f1ea052a822e1f584eb55cbc876b8e07 { struct tpa6130a2_data *data = snd_soc_component_get_drvdata(component); -From cb97e9c6a0b9aaf7ebb6b9c9a11974a6759e5a33 Mon Sep 17 00:00:00 2001 +From 1696716f31b53ba9a9cf0e521ef792f20165d107 Mon Sep 17 00:00:00 2001 From: Aaron Shaw Date: Thu, 7 Apr 2016 21:26:21 +0100 -Subject: [PATCH 088/133] Add Support for JustBoom Audio boards +Subject: [PATCH 087/147] Add Support for JustBoom Audio boards justboom-dac: Adjust for ALSA API change @@ -130496,10 +130422,10 @@ index 0000000000000000000000000000000000000000..91acb666380faa3c0deb2230f8a0f8bb +MODULE_DESCRIPTION("ASoC Driver for JustBoom PI Digi HAT Sound Card"); +MODULE_LICENSE("GPL v2"); -From 552f2030ac9a8a6714494e0cfbb5b6db3ac16913 Mon Sep 17 00:00:00 2001 +From de0659bfb838856c751502e97e13affe2a85b7a3 Mon Sep 17 00:00:00 2001 From: Andrey Grodzovsky Date: Tue, 3 May 2016 22:10:59 -0400 -Subject: [PATCH 089/133] ARM: adau1977-adc: Add basic machine driver for +Subject: [PATCH 088/147] ARM: adau1977-adc: Add basic machine driver for adau1977 codec driver. This commit adds basic support for the codec usage including: Device tree overlay, @@ -130681,10 +130607,10 @@ index 0000000000000000000000000000000000000000..6e2ee027926ee63c89222f75ceb89e3d +MODULE_DESCRIPTION("ASoC Driver for ADAU1977 ADC"); +MODULE_LICENSE("GPL v2"); -From dbdab3a61d86bb349e8303007338c9e9068120e2 Mon Sep 17 00:00:00 2001 +From 3644ed3253d6670362751df22e99b874d68a87bb Mon Sep 17 00:00:00 2001 From: Matt Flax Date: Mon, 16 May 2016 21:36:31 +1000 -Subject: [PATCH 090/133] New AudioInjector.net Pi soundcard with low jitter +Subject: [PATCH 089/147] New AudioInjector.net Pi soundcard with low jitter audio in and out. Contains the sound/soc/bcm ALSA machine driver and necessary alterations to the Kconfig and Makefile. @@ -130933,10 +130859,10 @@ index 0000000000000000000000000000000000000000..5ff0985e07efb96b95634a65995f09f7 +MODULE_ALIAS("platform:audioinjector-pi-soundcard"); + -From 917a96d289cab81fea006276c07deef0bc594c3f Mon Sep 17 00:00:00 2001 +From a4e6032dba3a007474c3e20280d494c876140a3d Mon Sep 17 00:00:00 2001 From: DigitalDreamtime Date: Thu, 30 Jun 2016 18:38:42 +0100 -Subject: [PATCH 091/133] Add IQAudIO Digi WM8804 board support +Subject: [PATCH 090/147] Add IQAudIO Digi WM8804 board support Support IQAudIO Digi board with iqaudio_digi machine driver and iqaudio-digi-wm8804-audio overlay. @@ -131236,10 +131162,10 @@ index 0000000000000000000000000000000000000000..9b6e829bcb5b1762a853775e78163196 +MODULE_DESCRIPTION("ASoC Driver for IQAudIO WM8804 Digi"); +MODULE_LICENSE("GPL v2"); -From 6c9818de78faa595e8dec34921db0f5a3c24dbdd Mon Sep 17 00:00:00 2001 +From 300fa7e3486eaacfb0e21252b22ac240d9bdf4f1 Mon Sep 17 00:00:00 2001 From: escalator2015 Date: Tue, 24 May 2016 16:20:09 +0100 -Subject: [PATCH 092/133] New driver for RRA DigiDAC1 soundcard using WM8741 + +Subject: [PATCH 091/147] New driver for RRA DigiDAC1 soundcard using WM8741 + WM8804 --- @@ -131712,10 +131638,10 @@ index 0000000000000000000000000000000000000000..446796e7e4c14a7d95b2f2a01211d9a0 +MODULE_DESCRIPTION("ASoC Driver for RRA DigiDAC1"); +MODULE_LICENSE("GPL v2"); -From f36e6ef700f5d416745ac40a848d620de89b0fc0 Mon Sep 17 00:00:00 2001 +From 84ad27aa1028b7812b2f74c1a8b23a4f0c4f5cdb Mon Sep 17 00:00:00 2001 From: DigitalDreamtime Date: Sat, 2 Jul 2016 16:26:19 +0100 -Subject: [PATCH 093/133] Add support for Dion Audio LOCO DAC-AMP HAT +Subject: [PATCH 092/147] Add support for Dion Audio LOCO DAC-AMP HAT Using dedicated machine driver and pcm5102a codec driver. @@ -131888,10 +131814,10 @@ index 0000000000000000000000000000000000000000..89e65317512bc774453ac8d0d5b0ff98 +MODULE_DESCRIPTION("ASoC Driver for DionAudio LOCO"); +MODULE_LICENSE("GPL v2"); -From 80b1d272eaf5373aa4aaef1025180e17173724bc Mon Sep 17 00:00:00 2001 +From 3a9b5642c0f49f89fdb4f83c995cd242d6496d8c Mon Sep 17 00:00:00 2001 From: Clive Messer Date: Mon, 19 Sep 2016 14:01:04 +0100 -Subject: [PATCH 094/133] Allo Piano DAC boards: Initial 2 channel (stereo) +Subject: [PATCH 093/147] Allo Piano DAC boards: Initial 2 channel (stereo) support (#1645) Add initial 2 channel (stereo) support for Allo Piano DAC (2.0/2.1) boards, @@ -132098,10 +132024,10 @@ index 0000000000000000000000000000000000000000..8e8e62e5a36a279b425ed4655cfbac99 +MODULE_DESCRIPTION("ALSA ASoC Machine Driver for Allo Piano DAC"); +MODULE_LICENSE("GPL v2"); -From 95f53ad904af8e3b9be9e62f0f84e52b43edd219 Mon Sep 17 00:00:00 2001 +From 0fe0e233834a7947164cb6d01a96994d75880969 Mon Sep 17 00:00:00 2001 From: P33M Date: Wed, 21 Oct 2015 14:55:21 +0100 -Subject: [PATCH 095/133] rpi_display: add backlight driver and overlay +Subject: [PATCH 094/147] 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 @@ -132270,10 +132196,10 @@ index 0000000000000000000000000000000000000000..14a0d9b037395497c1fdae2961feccd5 +MODULE_DESCRIPTION("Raspberry Pi mailbox based Backlight Driver"); +MODULE_LICENSE("GPL"); -From bd6634fc3b4c6b05819371848921eeb7517cf902 Mon Sep 17 00:00:00 2001 +From 4865ed3c59b45b63289b98ff732aa96cc377e4ad Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 23 Feb 2016 19:56:04 +0000 -Subject: [PATCH 096/133] bcm2835-virtgpio: Virtual GPIO driver +Subject: [PATCH 095/147] bcm2835-virtgpio: Virtual GPIO driver Add a virtual GPIO driver that uses the firmware mailbox interface to request that the VPU toggles LEDs. @@ -132499,10 +132425,10 @@ index 0000000000000000000000000000000000000000..f3e0f1620b979e4fa3c7e556eb785ac2 +MODULE_DESCRIPTION("brcmvirt GPIO driver"); +MODULE_ALIAS("platform:brcmvirt-gpio"); -From dd4fa828f6f545fc6dadd4ef4b5d5c82ec117690 Mon Sep 17 00:00:00 2001 +From 3b62ce62c3a8eeef7d50e3cbf457680627719693 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 4 Mar 2016 12:49:09 +0000 -Subject: [PATCH 097/133] DRM_VC4: Allow to be built for ARCH_BCM270x +Subject: [PATCH 096/147] DRM_VC4: Allow to be built for ARCH_BCM270x --- drivers/gpu/drm/vc4/Kconfig | 2 +- @@ -132521,10 +132447,10 @@ index e53df59cb139f25f8e6ae916bca93abf0c49e063..f6e938208b73512f20eab46a383ca91b select DRM_KMS_HELPER select DRM_KMS_CMA_HELPER -From 8044f69ae2b56ea458a20b513f1f2d56e5910d11 Mon Sep 17 00:00:00 2001 +From 20a14552028b3dac925f53afebcfbe5b259a9f69 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 23 Feb 2016 17:26:48 +0000 -Subject: [PATCH 098/133] amba_pl011: Don't use DT aliases for numbering +Subject: [PATCH 097/147] 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 @@ -132553,10 +132479,10 @@ index 8a9e213387a79fcc335caad27520a68edf03f446..4a5a1c5cf9b345e255f4d79714a7ae46 uap->old_cr = 0; uap->port.dev = dev; -From 48e96cdb3fbd584ac2e6b5412ac45318c867fb9a Mon Sep 17 00:00:00 2001 +From 7f7a084613bc66c4d06326fab4e1cbdb67349a23 Mon Sep 17 00:00:00 2001 From: Pantelis Antoniou Date: Wed, 3 Dec 2014 13:23:28 +0200 -Subject: [PATCH 099/133] OF: DT-Overlay configfs interface +Subject: [PATCH 098/147] 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. @@ -132988,10 +132914,10 @@ index 0000000000000000000000000000000000000000..0037e6868a6cda8706c88194c6a4454b +} +late_initcall(of_cfs_init); -From 3e09710fca5b0bd7ae65c8fb8ca8f471d496fcef Mon Sep 17 00:00:00 2001 +From c4a12c0f368ac62c71f241e2a007fef50a0e4a31 Mon Sep 17 00:00:00 2001 From: Cheong2K Date: Fri, 26 Feb 2016 18:20:10 +0800 -Subject: [PATCH 100/133] brcm: adds support for BCM43341 wifi +Subject: [PATCH 099/147] brcm: adds support for BCM43341 wifi --- drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c | 2 ++ @@ -133031,10 +132957,10 @@ index 3cc42bef6245529c37320f0ec6ab5e7b77f1d2f6..2ae9d0c9dbaaab6bc16610ac012039cd #define BRCM_CC_4335_CHIP_ID 0x4335 #define BRCM_CC_4339_CHIP_ID 0x4339 -From 78357f179e557462830725efebc2ffd8b8711d97 Mon Sep 17 00:00:00 2001 +From 5390e78a93ce43d5e73c234fe811d3a7900b259d Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 9 Mar 2016 17:25:59 +0000 -Subject: [PATCH 101/133] brcmfmac: Disable power management +Subject: [PATCH 100/147] 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 @@ -133059,10 +132985,10 @@ index abaf003a5b396f94e891c6569217ffbb595987e1..f6221c20ff8e2c07a9ddb329204cc59c if (!check_vif_up(ifp->vif)) { -From 4504b967e9be672f59852b3ca985b3b667472ffa Mon Sep 17 00:00:00 2001 +From dd1ce01c2721bd6400d9c4ae6c7691ca6d5ea5e8 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 28 Apr 2016 17:13:47 +0100 -Subject: [PATCH 102/133] brcmfmac: Use original country code as a fallback +Subject: [PATCH 101/147] brcmfmac: Use original country code as a fallback Commit 73345fd212980d2e28a5c6d83801c903bd773680: @@ -133121,10 +133047,10 @@ index f6221c20ff8e2c07a9ddb329204cc59ce574117b..12bffe239e9d28ce8f73db48b3f5759f ccreq->country_abbrev[1] = alpha2[1]; ccreq->country_abbrev[2] = 0; -From f4effcdad3727c800a85771a121a7c81cb662bad Mon Sep 17 00:00:00 2001 +From e69aabda86715cce55c8b8cddda7e4d5cfc879e7 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 13 Sep 2016 16:32:37 +0100 -Subject: [PATCH 103/133] brcmfmac: do not use internal roaming engine by +Subject: [PATCH 102/147] brcmfmac: do not use internal roaming engine by default Some evidence of curing disconnects with this disabled, so make it a default. @@ -133148,10 +133074,10 @@ index 3e15d64c64813513bc22202dd9e468588699abb0..4051780f64f44a5ce522babe6c371a1b MODULE_PARM_DESC(roamoff, "Do not use internal roaming engine"); -From 26a7afe4bdd277a8ed282fe6d924ae59b83384c6 Mon Sep 17 00:00:00 2001 +From f517714e4bf668d741543df203c4e4535a93d270 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 31 Aug 2016 17:10:09 +0100 -Subject: [PATCH 104/133] brcmfmac: Change stop_ap sequence +Subject: [PATCH 103/147] brcmfmac: Change stop_ap sequence Patch from Broadcom/Cypress to resolve a customer error @@ -133184,10 +133110,10 @@ index 12bffe239e9d28ce8f73db48b3f5759ffe550162..0c3cecb22763db2db5ccbc1789f50b2b brcmf_fil_iovar_int_set(ifp, "mbss", 0); err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_REGULATORY, -From 2e77cd765f85994a46ca1f64b1c2d638f4eba866 Mon Sep 17 00:00:00 2001 +From d83d64c25aaa6922c6409d7072519ae7b3a661b1 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 17 Dec 2015 13:37:07 +0000 -Subject: [PATCH 105/133] hci_h5: Don't send conf_req when ACTIVE +Subject: [PATCH 104/147] 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. @@ -133210,10 +133136,10 @@ index 0879d64b1caf58afb6e5d494c07d9ab7e7cdf983..5161ab30fd533d50f516bb93d5b9f402 if (H5_HDR_LEN(hdr) > 2) h5->tx_win = (data[2] & 0x07); -From d0bacd8ae2b478be18e0463d630bc46d0a540a22 Mon Sep 17 00:00:00 2001 +From 0bcd78b36798f8e47e741009724395bd89d2fd99 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Fri, 22 Jan 2016 13:06:39 -0800 -Subject: [PATCH 106/133] drm/vc4: Add a debugfs node for tracking execution +Subject: [PATCH 105/147] drm/vc4: Add a debugfs node for tracking execution state. Signed-off-by: Eric Anholt @@ -133236,10 +133162,10 @@ index 245115d49c46a1244ef3e460a03fde397f763de8..94f2154c3685255e2e67d225f77dea37 {"hvs_regs", vc4_hvs_debugfs_regs, 0}, {"crtc0_regs", vc4_crtc_debugfs_regs, 0, (void *)(uintptr_t)0}, diff --git a/drivers/gpu/drm/vc4/vc4_drv.h b/drivers/gpu/drm/vc4/vc4_drv.h -index 428e24919ef11919a027b67225f7145173430d98..3874b838102886dd4111830ce12254ae6c798f4c 100644 +index f696b752886b153c4654c0b8acca3fe46c9136cb..dbe2190f30757d4ec7fa56d03de6e261e7401eb7 100644 --- a/drivers/gpu/drm/vc4/vc4_drv.h +++ b/drivers/gpu/drm/vc4/vc4_drv.h -@@ -464,6 +464,7 @@ void vc4_job_handle_completed(struct vc4_dev *vc4); +@@ -481,6 +481,7 @@ void vc4_job_handle_completed(struct vc4_dev *vc4); int vc4_queue_seqno_cb(struct drm_device *dev, struct vc4_seqno_cb *cb, uint64_t seqno, void (*func)(struct vc4_seqno_cb *cb)); @@ -133248,7 +133174,7 @@ index 428e24919ef11919a027b67225f7145173430d98..3874b838102886dd4111830ce12254ae /* vc4_hdmi.c */ extern struct platform_driver vc4_hdmi_driver; diff --git a/drivers/gpu/drm/vc4/vc4_gem.c b/drivers/gpu/drm/vc4/vc4_gem.c -index b262c5c26f109702572ed613fa0965f06a993ef9..27f42023fa49c7e62e643dc007e9e121efa930f5 100644 +index ae1609e739ef424d99207f830cd2bac41ce71557..26dc4f5b491e2e7fcd1a28dcc8ef0cbe88461851 100644 --- a/drivers/gpu/drm/vc4/vc4_gem.c +++ b/drivers/gpu/drm/vc4/vc4_gem.c @@ -32,6 +32,20 @@ @@ -133273,10 +133199,10 @@ index b262c5c26f109702572ed613fa0965f06a993ef9..27f42023fa49c7e62e643dc007e9e121 vc4_queue_hangcheck(struct drm_device *dev) { -From f64994b0175ade91579e3b337804b4c4661924e8 Mon Sep 17 00:00:00 2001 +From 994c435395b96dd51459aae172fe9b8de0f0007c Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 25 Jan 2016 13:03:33 -0800 -Subject: [PATCH 107/133] drm/vc4: Include vc4_drm.h in uapi in downstream +Subject: [PATCH 106/147] drm/vc4: Include vc4_drm.h in uapi in downstream build. Signed-off-by: Eric Anholt @@ -133297,10 +133223,10 @@ index 9355dd8eff3ba39401dfe37e7fbf7737f0397f11..68828bf586f05a8d9b0a6ab409ee91a7 header-y += vmwgfx_drm.h header-y += msm_drm.h -From 35da78653fd3c928405841ca2e2f36c660d199de Mon Sep 17 00:00:00 2001 +From 3c8d3033afca8aab182da9869d319e14365606f4 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Wed, 14 Oct 2015 11:32:14 -0700 -Subject: [PATCH 108/133] drm/vc4: Force HDMI to connected. +Subject: [PATCH 107/147] drm/vc4: Force HDMI to connected. For some reason on the downstream tree, the HPD GPIO isn't working. @@ -133323,10 +133249,10 @@ index 4452f3631cacea37bbd5dc8a594367631e308adc..3a622f70a077c2ebe214830f5d700cd8 if (gpio_get_value_cansleep(vc4->hdmi->hpd_gpio) ^ vc4->hdmi->hpd_active_low) -From 90d38277d9d9974217927887e330cd6db24479b3 Mon Sep 17 00:00:00 2001 +From 75d03980407e81b671f70db64d5c2eb8701742f9 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 13 Apr 2015 17:16:29 +0100 -Subject: [PATCH 109/133] config: Add default configs +Subject: [PATCH 108/147] config: Add default configs --- arch/arm/configs/bcm2709_defconfig | 1294 +++++++++++++++++++++++++++++++++++ @@ -135945,10 +135871,10 @@ index 0000000000000000000000000000000000000000..cfe21355f7d95326b292be1b018b988f +CONFIG_CRC_ITU_T=y +CONFIG_LIBCRC32C=y -From 8dc615f6120d3b2461fbfbaebb12b6836161e192 Mon Sep 17 00:00:00 2001 +From 0ede8332ea5e3b571cf37fad426991f8ac0fa603 Mon Sep 17 00:00:00 2001 From: Michael Zoran Date: Wed, 24 Aug 2016 03:35:56 -0700 -Subject: [PATCH 110/133] Add arm64 configuration and device tree differences. +Subject: [PATCH 109/147] Add arm64 configuration and device tree differences. Disable MMC_BCM2835_SDHOST and MMC_BCM2835 since these drivers are crashing at the moment. @@ -137351,10 +137277,10 @@ index 0000000000000000000000000000000000000000..1fcde8c1329bbfd329245a8bb1769199 +CONFIG_LIBCRC32C=y +CONFIG_BCM2708_VCHIQ=n -From 13c1b1bef46969e12fe3a56278c1cda9ebea1a57 Mon Sep 17 00:00:00 2001 +From 00a5965015003650f46ae16830020624f085f062 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 5 Oct 2016 16:10:59 +0100 -Subject: [PATCH 111/133] bcm2835-cpufreq: Only report a single frequency when +Subject: [PATCH 110/147] bcm2835-cpufreq: Only report a single frequency when max and min frequencies are the same 4.8 kernel gives EINV error when max and min frequencies are the same (e.g. from using force_turbo=1) @@ -137423,10 +137349,10 @@ index 3eb9e9326231b08e6ee95ad486485245c71cf868..414fbdc10dfbfc6e4bb47870a7af3fd5 /* the CPUFreq driver */ -From 3c603169e9eddab5d8b1c37235a3802ea257071b Mon Sep 17 00:00:00 2001 +From 4b96fd892f5d8beb28ece1053d13a448d9799100 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 7 Oct 2016 12:37:09 +0100 -Subject: [PATCH 112/133] scripts/mkknlimg: Change string for DDT detection +Subject: [PATCH 111/147] scripts/mkknlimg: Change string for DDT detection The old "of_overlay_apply" string does not appear in 4.8 kernel builds. "of_cfs_init" is both present and a more accurate indication of support @@ -137453,10 +137379,10 @@ index 78c5845d2f01deb04b477327d83fa60624f87f98..a21f7e31bc904233e980e66ae3e6337e my $res = try_extract($kernel_file, $tmpfile1); -From 3cd83195169e2473da3f1b0b463525b15b099821 Mon Sep 17 00:00:00 2001 +From cf4eeae824ca15077545b040d3de0f8f64234dc4 Mon Sep 17 00:00:00 2001 From: Herve Jourdain Date: Fri, 20 May 2016 16:02:23 +0800 -Subject: [PATCH 113/133] build: support for .dtbo files for dtb overlays +Subject: [PATCH 112/147] build: support for .dtbo files for dtb overlays Kernel 4.4.6+ on RaspberryPi support .dtbo files for overlays, instead of .dtb. Patch the kernel, which has faulty rules to generate .dtbo the way yocto does @@ -137498,10 +137424,10 @@ index 1d949b7410600dd3b04a3acde8c41cfead15bfa4..1967878a843461c3ff1f473b9a030eb0 -d $(depfile).dtc.tmp $(dtc-tmp) ; \ cat $(depfile).pre.tmp $(depfile).dtc.tmp > $(depfile) -From 22f0fb2b8542920ca9af3add8348d05803d8b276 Mon Sep 17 00:00:00 2001 +From 90575664c517a63fdf4da3875737ce4cf4fd912e Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Thu, 6 Oct 2016 19:42:55 -0700 -Subject: [PATCH 114/133] [media]bcm2835-camera: fix compilation warning/werror +Subject: [PATCH 113/147] [media]bcm2835-camera: fix compilation warning/werror | /a/builder/mnt/build/tmp-glibc/work-shared/raspberrypi3/kernel-source/drivers/media/platform/bcm2835/bcm2835-camera.c:656:17: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types ] @@ -137531,10 +137457,10 @@ index 70f4db2741037381e638d1dda5a95478809eb161..cb5bab642eaab2f60d641801dd0afdac struct bm2835_mmal_dev *dev = vb2_get_drv_priv(vq); unsigned long size; -From 616c5c4cd2030dd22981b5918bddb76a778e7c4a Mon Sep 17 00:00:00 2001 +From 22db6534fde59cad8c8c5be264815e6861672ffc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Sat, 8 Oct 2016 16:26:46 +0200 -Subject: [PATCH 115/133] bcm2709: Drop platform smp and timer init code +Subject: [PATCH 114/147] bcm2709: Drop platform smp and timer init code MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -137709,10 +137635,10 @@ index 90773a30b87abbfda1615326c6faf59b9db6d68e..d4c9d57d78a964fbbf799b534471462d .init_early = bcm2709_init_early, .reserve = board_reserve, -From 37a8cc3aa4b014988237b32c4488a57be94b8ca3 Mon Sep 17 00:00:00 2001 +From b4cbdcee1d87382e855e58fc59f3f04152220269 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Mon, 3 Oct 2016 17:53:15 +0200 -Subject: [PATCH 116/133] BCM270X_DT: Use bcm283x.dtsi, bcm2835.dtsi and +Subject: [PATCH 115/147] BCM270X_DT: Use bcm283x.dtsi, bcm2835.dtsi and bcm2836.dtsi MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -138841,10 +138767,10 @@ index 223bd9627b3dcaac5458909dc59c877eed751ce4..491594c918cf5da94fbb19a606edb0dd +}; +#endif -From 5a13c708c76934bc7483650a218f75dca70fb8c3 Mon Sep 17 00:00:00 2001 +From fa7774975833873689e6e7676e645e829cee79ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 7 Oct 2016 16:50:59 +0200 -Subject: [PATCH 117/133] watchdog: bcm2835: Support setting reboot partition +Subject: [PATCH 116/147] watchdog: bcm2835: Support setting reboot partition MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -138968,10 +138894,10 @@ index 4dddd8298a227d64862f2e92954a465f2e44b3f6..1f545e024422f59280932713e6a1b051 register_restart_handler(&wdt->restart_handler); if (pm_power_off == NULL) -From 9eba7f4bdc01e2d7efb6c1e12d55111e07a2738b Mon Sep 17 00:00:00 2001 +From 030afa45a903debfcccf2fc8dce1e25c3cab8ae4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 7 Oct 2016 17:07:46 +0200 -Subject: [PATCH 118/133] bcm270x: Use watchdog for reboot/poweroff +Subject: [PATCH 117/147] bcm270x: Use watchdog for reboot/poweroff MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -139230,10 +139156,10 @@ index d4c9d57d78a964fbbf799b534471462d3c3b88f1..ed5c5414f7a3ad7284cda881e9e55077 module_param(serial, uint, 0644); -module_param(reboot_part, uint, 0644); -From d3463d34f01707e97ac000c65c2abe276ff54028 Mon Sep 17 00:00:00 2001 +From 216d6b21f0820ad52f15c13d65c8d14e9a6756b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Mon, 10 Oct 2016 17:35:40 +0200 -Subject: [PATCH 119/133] bcm270x: Remove dead files +Subject: [PATCH 118/147] bcm270x: Remove dead files MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -139434,10 +139360,10 @@ index 6aa68260dd866c83527dffece8de483913231fb3..00000000000000000000000000000000 - */ -#define VMALLOC_END (0xff000000) -From 82da69473f3e27c89d26701e9bd2e6e81153a6c6 Mon Sep 17 00:00:00 2001 +From fe42494868c90a4abc3bfd5a3ab5e800d6bf689e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Mon, 10 Oct 2016 17:37:43 +0200 -Subject: [PATCH 120/133] bcm270x: Drop bcm2835-aux-uart hack +Subject: [PATCH 119/147] bcm270x: Drop bcm2835-aux-uart hack MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -139517,10 +139443,10 @@ index ed5c5414f7a3ad7284cda881e9e550777cd29282..9a1ad48d13172856e3ec748db015cb95 system_serial_low = serial; } -From d680b9c559d1cfc467f42695128254d1471cf00e Mon Sep 17 00:00:00 2001 +From 274b9d89a7951612b10f95f304a8bd900d45157a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Mon, 10 Oct 2016 17:39:30 +0200 -Subject: [PATCH 121/133] Revert "bcm2835: Add support for uart1" +Subject: [PATCH 120/147] Revert "bcm2835: Add support for uart1" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -139578,10 +139504,10 @@ index 0ef5cd3d1d6ec420360294acc98d40d698d38d8a..8f152266ba9b470df2eaaed9ebcf158e static const char * const bcm2835_compat[] = { -From 932b2d1bbff9515be1e6e3ec6901c024d40554d4 Mon Sep 17 00:00:00 2001 +From 310e634ea1703b48aac869ffbdcca05da91f7258 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Mon, 10 Oct 2016 17:41:26 +0200 -Subject: [PATCH 122/133] bcm270x: Remove unnecessary of_platform_populate +Subject: [PATCH 121/147] bcm270x: Remove unnecessary of_platform_populate MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -139656,10 +139582,10 @@ index 9a1ad48d13172856e3ec748db015cb95cd110b76..d2762f558f644ac87c56ba9402a638a3 system_serial_low = serial; } -From 8c2512c07ada399a412e22a60b4d568e734b6145 Mon Sep 17 00:00:00 2001 +From 82ba7cbc3452d3bda087321dbdf186b514514a53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Mon, 10 Oct 2016 17:46:27 +0200 -Subject: [PATCH 123/133] bcm270x: Remove 4MB dma coherent pool +Subject: [PATCH 122/147] bcm270x: Remove 4MB dma coherent pool MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -139740,10 +139666,10 @@ index d2762f558f644ac87c56ba9402a638a3c7a26397..d0e43619669e851350c5d9d7bb7e9dd1 .dt_compat = bcm2709_compat, MACHINE_END -From f1128ffff4dd59610e68a74f453ecd02faa72c19 Mon Sep 17 00:00:00 2001 +From 03b217a1f5d0f70ab498f9ce5af219488f7a7ec3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Mon, 10 Oct 2016 19:26:42 +0200 -Subject: [PATCH 124/133] bcm270x: Drop map_io device mapping +Subject: [PATCH 123/147] bcm270x: Drop map_io device mapping MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -140692,10 +140618,10 @@ index de7504bfc20ba24be8707861b8389783860adb77..00000000000000000000000000000000 - */ -#define arch_decomp_wdog() -From 2f9da3eb26ad9794e14751dafe317fcdf1f9f884 Mon Sep 17 00:00:00 2001 +From ec476714f27c47e086cae43736ce588611385e48 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Mon, 10 Oct 2016 19:37:06 +0200 -Subject: [PATCH 125/133] bcm270x: Use DT_MACHINE_START +Subject: [PATCH 124/147] bcm270x: Use DT_MACHINE_START MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -140777,10 +140703,10 @@ index b52d949ee91d96eb7672fbbb4969bfa1e7afc376..2ed1b8a922ed02b9e3545991873af77b ics_if_voip MACH_ICS_IF_VOIP ICS_IF_VOIP 3206 wlf_cragg_6410 MACH_WLF_CRAGG_6410 WLF_CRAGG_6410 3207 -From 73425c95121ff9235ca2221c490841c2441694fe Mon Sep 17 00:00:00 2001 +From 58e4131735311d401d9ae5e3ae9aea4e6c389897 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 11 Oct 2016 17:48:07 +0100 -Subject: [PATCH 126/133] Use DT rather than modules params for board rev and +Subject: [PATCH 125/147] Use DT rather than modules params for board rev and serial --- @@ -140874,10 +140800,10 @@ index 9cf36118e57b3c362de9adcf089425023d4a601d..9f113736627175bdcb362e0eda469e09 -module_param(boardrev, uint, 0644); -module_param(serial, uint, 0644); -From 58670873d8bbc78caa5fb27912b4cce51a7be225 Mon Sep 17 00:00:00 2001 +From 8bc7fdbf0d73e0797b5d0fae6f78be6735320a34 Mon Sep 17 00:00:00 2001 From: Martin Sperl Date: Fri, 2 Sep 2016 16:45:27 +0100 -Subject: [PATCH 127/133] Register the clocks early during the boot process, so +Subject: [PATCH 126/147] Register the clocks early during the boot process, so that special/critical clocks can get enabled early on in the boot process avoiding the risk of disabling a clock, pll_divider or pll when a claiming driver fails to install propperly - maybe it needs to defer. @@ -140923,10 +140849,10 @@ index fbf616021704178a9d007219a0ea2a9f1704f0a6..cbbc8d4ddcffc797268c0ecb6477005f MODULE_AUTHOR("Eric Anholt "); MODULE_DESCRIPTION("BCM2835 clock driver"); -From dce21deb558be888b6a3744ed14c8f096416aa7e Mon Sep 17 00:00:00 2001 +From 2a908551f7bb1c6c0172f639dd9fad7b89b14298 Mon Sep 17 00:00:00 2001 From: Scott Ellis Date: Tue, 27 Sep 2016 04:29:00 -0400 -Subject: [PATCH 128/133] Add Adafruit pitft35 touchscreen support (#1657) +Subject: [PATCH 127/147] Add Adafruit pitft35 touchscreen support (#1657) The dts comes from the Adafruit repository @@ -141131,10 +141057,10 @@ index 952104ab6c4cd0e9d8f7bd5f2fba7a72da75424e..26fa6c2b6b6d745178e666465ba226af CONFIG_FB_TFT_ILI9320=m CONFIG_FB_TFT_ILI9325=m -From 48dbca68f2cb7bb5d72721415c39f2206fd6495c Mon Sep 17 00:00:00 2001 +From 6f7afe8710ea9fc3bf4ef6cd57b717203292d471 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 10 Oct 2016 15:06:20 +0100 -Subject: [PATCH 129/133] BCM270X_DT: Update CM3 to use sdhost interface +Subject: [PATCH 128/147] BCM270X_DT: Update CM3 to use sdhost interface --- arch/arm/boot/dts/bcm2710-rpi-cm3.dts | 9 ++++----- @@ -141170,10 +141096,10 @@ index b5a5ae7747455438f8eabd28e8c11c6aeb0c1ecc..d13e3d4dac4e198c8cac451e3f64ef68 bus-width = <4>; status = "okay"; -From 7ece1f81bf9766f552742e7ec4019cbc10c92535 Mon Sep 17 00:00:00 2001 +From 2c3945297209db3678231d5c64109261c7ff4611 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 11 Oct 2016 18:10:17 +0100 -Subject: [PATCH 130/133] Revert "Register the clocks early during the boot +Subject: [PATCH 129/147] Revert "Register the clocks early during the boot process," This reverts commit bcc804ce3dfd5eb4800c9dd77370da7e7913f77d. @@ -141217,10 +141143,10 @@ index cbbc8d4ddcffc797268c0ecb6477005fa14e228b..fbf616021704178a9d007219a0ea2a9f MODULE_AUTHOR("Eric Anholt "); MODULE_DESCRIPTION("BCM2835 clock driver"); -From 5c9bf74f1c69d59342147bded52718452eda6fa9 Mon Sep 17 00:00:00 2001 +From 3ae99df780c07ea947d98fd330b9d9df2a2aec13 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 12 Oct 2016 15:10:14 +0100 -Subject: [PATCH 131/133] mmc: info (not err) msg on clock probe deferral +Subject: [PATCH 130/147] mmc: info (not err) msg on clock probe deferral --- drivers/mmc/host/bcm2835-mmc.c | 5 ++++- @@ -141262,10 +141188,10 @@ index 23dea422182534e248435aeaee3ecb5da69c0d33..9e55d5ac08b5809c40fe391ae6e685fd } -From 2844dad796a4f9c9dc2157aa7b6011b55a58ce25 Mon Sep 17 00:00:00 2001 +From 6331f4e0b369bb212fc7a4f309b5bd2eb6751cd5 Mon Sep 17 00:00:00 2001 From: Electron752 Date: Sat, 15 Oct 2016 11:49:52 -0700 -Subject: [PATCH 132/133] ARM64: Modify default config to get raspbian to boot +Subject: [PATCH 131/147] ARM64: Modify default config to get raspbian to boot (#1686) 1. Enable emulation of deprecated instructions. @@ -141330,10 +141256,10 @@ index 1fcde8c1329bbfd329245a8bb17691999882ccfc..d7406f5a4620151044b8f716b4d10bb8 CONFIG_MFD_STMPE=y CONFIG_STMPE_SPI=y -From 3c08504053c3b87477b33dde65ede3527f45b32d Mon Sep 17 00:00:00 2001 +From 20e71d135210be9e2c45a44985402f930be5ca3a Mon Sep 17 00:00:00 2001 From: gtrainavicius Date: Sun, 23 Oct 2016 12:06:53 +0300 -Subject: [PATCH 133/133] Support for Blokas Labs pisound board +Subject: [PATCH 132/147] Support for Blokas Labs pisound board --- .../devicetree/bindings/vendor-prefixes.txt | 1 + @@ -142558,3 +142484,2441 @@ index 0000000000000000000000000000000000000000..b156e5793e4c482385dedafd85bbf190 +MODULE_AUTHOR("Giedrius Trainavicius "); +MODULE_DESCRIPTION("ASoC Driver for pisound, http://blokas.io/pisound"); +MODULE_LICENSE("GPL v2"); + +From d1b99c2fe198693ac8a966fd65582abaf2d5d733 Mon Sep 17 00:00:00 2001 +From: Giedrius Trainavicius +Date: Tue, 25 Oct 2016 01:47:20 +0300 +Subject: [PATCH 133/147] FIXUP: pisound: Fix a warning in DEBUG builds + +Also change a macro that enables debug level printing from DEBUG to +PISOUND_DEBUG. +--- + sound/soc/bcm/pisound.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/sound/soc/bcm/pisound.c b/sound/soc/bcm/pisound.c +index b156e5793e4c482385dedafd85bbf190acc8162b..a3cd089a01447bdb6741ed6bba3b21d40061d7df 100644 +--- a/sound/soc/bcm/pisound.c ++++ b/sound/soc/bcm/pisound.c +@@ -55,7 +55,7 @@ static void pisnd_midi_uninit(void); + + #define PISOUND_LOG_PREFIX "pisound: " + +-#ifdef DEBUG ++#ifdef PISOUND_DEBUG + # define printd(...) pr_alert(PISOUND_LOG_PREFIX __VA_ARGS__) + #else + # define printd(...) do {} while (0) +@@ -119,7 +119,7 @@ static void pisnd_midi_recv_callback(void *substream) + while ((n = pisnd_spi_recv(data, sizeof(data)))) { + int res = snd_rawmidi_receive(substream, data, n); + (void)res; +- printd("midi recv 0x%02x, res = %d\n", data, res); ++ printd("midi recv %u bytes, res = %d\n", n, res); + } + } + + +From 019c773638b6525c4099311eb5f0591d2702a177 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= +Date: Wed, 19 Oct 2016 16:25:41 +0200 +Subject: [PATCH 134/147] bcm270x: Remove bcm2708_reboot_mode parameter +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This isn't used anymore now that the watchdog driver does restart/poweroff. + +Signed-off-by: Noralf Trønnes +--- + arch/arm/kernel/process.c | 10 ---------- + 1 file changed, 10 deletions(-) + +diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c +index 0a0332cb13a7475ee0c4d75a97685b7de6475c95..612eb530f33fcd19bc4539facb26fc30a2583979 100644 +--- a/arch/arm/kernel/process.c ++++ b/arch/arm/kernel/process.c +@@ -91,16 +91,6 @@ void arch_cpu_idle_exit(void) + ledtrig_cpu(CPU_LED_IDLE_END); + } + +-char bcm2708_reboot_mode = 'h'; +- +-int __init reboot_setup(char *str) +-{ +- bcm2708_reboot_mode = str[0]; +- return 1; +-} +- +-__setup("reboot=", reboot_setup); +- + void __show_regs(struct pt_regs *regs) + { + unsigned long flags; + +From 3bbebce33cd4df7af988ec21b9d4a2f23fb24388 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= +Date: Wed, 19 Oct 2016 15:54:41 +0200 +Subject: [PATCH 135/147] bcm270x: Remove NEED_MACH_IO_H +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +NEED_MACH_IO_H isn't necessary since we don't have +PC card/PCI/ISA IO space. +The __io macro is only used in the {in,out}[bwl] macros. + +arch/arm/include/asm/io.h will give these defaults now: + +define __io(a) __typesafe_io((a) & IO_SPACE_LIMIT) +define IO_SPACE_LIMIT ((resource_size_t)0) + +This is the same as ARCH_BCM2835. + +Signed-off-by: Noralf Trønnes +--- + arch/arm/Kconfig | 1 - + arch/arm/mach-bcm2708/Kconfig | 1 - + arch/arm/mach-bcm2708/include/mach/io.h | 27 --------------------------- + arch/arm/mach-bcm2709/include/mach/io.h | 27 --------------------------- + 4 files changed, 56 deletions(-) + delete mode 100644 arch/arm/mach-bcm2708/include/mach/io.h + delete mode 100644 arch/arm/mach-bcm2709/include/mach/io.h + +diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig +index 018ee76322d9e013598887c50ebea9628ecb9ee3..962d632c2af85c752b848c3ba7a8f3f3ba32c222 100644 +--- a/arch/arm/Kconfig ++++ b/arch/arm/Kconfig +@@ -355,7 +355,6 @@ config ARCH_BCM2709 + select MIGHT_HAVE_CACHE_L2X0 + select HAVE_SCHED_CLOCK + select NEED_MACH_MEMORY_H +- select NEED_MACH_IO_H + select COMMON_CLK + select ARCH_HAS_CPUFREQ + select GENERIC_CLOCKEVENTS +diff --git a/arch/arm/mach-bcm2708/Kconfig b/arch/arm/mach-bcm2708/Kconfig +index 6eabe844767f7fa9bdc09a897bab83e5149fc0dd..e93df839ab8c6cddb8d784d0af3b827276ba9120 100644 +--- a/arch/arm/mach-bcm2708/Kconfig ++++ b/arch/arm/mach-bcm2708/Kconfig +@@ -4,7 +4,6 @@ menu "Broadcom BCM2708 Implementations" + config MACH_BCM2708 + bool "Broadcom BCM2708 Development Platform" + select NEED_MACH_MEMORY_H +- select NEED_MACH_IO_H + select CPU_V6 + select USE_OF + select ARCH_REQUIRE_GPIOLIB +diff --git a/arch/arm/mach-bcm2708/include/mach/io.h b/arch/arm/mach-bcm2708/include/mach/io.h +deleted file mode 100644 +index e6eb84d71006db417dbd0afc4d08d3b19b09a619..0000000000000000000000000000000000000000 +--- a/arch/arm/mach-bcm2708/include/mach/io.h ++++ /dev/null +@@ -1,27 +0,0 @@ +-/* +- * arch/arm/mach-bcm2708/include/mach/io.h +- * +- * Copyright (C) 2003 ARM Limited +- * +- * This program is free software; you can redistribute it and/or modify +- * it under the terms of the GNU General Public License as published by +- * the Free Software Foundation; either version 2 of the License, or +- * (at your option) any later version. +- * +- * This program is distributed in the hope that it will be useful, +- * but WITHOUT ANY WARRANTY; without even the implied warranty of +- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- * GNU General Public License for more details. +- * +- * You should have received a copy of the GNU General Public License +- * along with this program; if not, write to the Free Software +- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +- */ +-#ifndef __ASM_ARM_ARCH_IO_H +-#define __ASM_ARM_ARCH_IO_H +- +-#define IO_SPACE_LIMIT 0xffffffff +- +-#define __io(a) __typesafe_io(a) +- +-#endif +diff --git a/arch/arm/mach-bcm2709/include/mach/io.h b/arch/arm/mach-bcm2709/include/mach/io.h +deleted file mode 100644 +index e6eb84d71006db417dbd0afc4d08d3b19b09a619..0000000000000000000000000000000000000000 +--- a/arch/arm/mach-bcm2709/include/mach/io.h ++++ /dev/null +@@ -1,27 +0,0 @@ +-/* +- * arch/arm/mach-bcm2708/include/mach/io.h +- * +- * Copyright (C) 2003 ARM Limited +- * +- * This program is free software; you can redistribute it and/or modify +- * it under the terms of the GNU General Public License as published by +- * the Free Software Foundation; either version 2 of the License, or +- * (at your option) any later version. +- * +- * This program is distributed in the hope that it will be useful, +- * but WITHOUT ANY WARRANTY; without even the implied warranty of +- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- * GNU General Public License for more details. +- * +- * You should have received a copy of the GNU General Public License +- * along with this program; if not, write to the Free Software +- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +- */ +-#ifndef __ASM_ARM_ARCH_IO_H +-#define __ASM_ARM_ARCH_IO_H +- +-#define IO_SPACE_LIMIT 0xffffffff +- +-#define __io(a) __typesafe_io(a) +- +-#endif + +From 3adb8088c33a26d20135bb88ecbfda177dc5010a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= +Date: Wed, 19 Oct 2016 16:01:01 +0200 +Subject: [PATCH 136/147] dwc_otg: Pass struct device to dma_alloc*() +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This makes it possible to get the bus address from Device Tree. + +Signed-off-by: Noralf Trønnes +--- + .../usb/host/dwc_common_port/dwc_common_linux.c | 19 +---- + drivers/usb/host/dwc_common_port/dwc_os.h | 18 ++--- + drivers/usb/host/dwc_otg/dwc_otg_hcd.c | 13 ++-- + drivers/usb/host/dwc_otg/dwc_otg_hcd.h | 6 ++ + drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c | 23 ++++-- + drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c | 2 +- + drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c | 3 +- + drivers/usb/host/dwc_otg/dwc_otg_pcd.c | 87 +++++++++++++--------- + drivers/usb/host/dwc_otg/dwc_otg_pcd.h | 7 ++ + drivers/usb/host/dwc_otg/dwc_otg_pcd_if.h | 3 +- + drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c | 3 +- + drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c | 2 +- + 12 files changed, 105 insertions(+), 81 deletions(-) + +diff --git a/drivers/usb/host/dwc_common_port/dwc_common_linux.c b/drivers/usb/host/dwc_common_port/dwc_common_linux.c +index 46646841dda96fb2bed01152de552ccac5f0e5e4..0d641e6da24beeb07109e23847d1d6e81dc7d4ea 100644 +--- a/drivers/usb/host/dwc_common_port/dwc_common_linux.c ++++ b/drivers/usb/host/dwc_common_port/dwc_common_linux.c +@@ -337,27 +337,12 @@ void DWC_DMA_POOL_FREE(dwc_pool_t *pool, void *vaddr, void *daddr) + + void *__DWC_DMA_ALLOC(void *dma_ctx, uint32_t size, dwc_dma_t *dma_addr) + { +-#ifdef xxCOSIM /* Only works for 32-bit cosim */ +- void *buf = dma_alloc_coherent(dma_ctx, (size_t)size, dma_addr, GFP_KERNEL); +-#else +- void *buf = dma_alloc_coherent(dma_ctx, (size_t)size, dma_addr, GFP_KERNEL | GFP_DMA32); +-#endif +- if (!buf) { +- return NULL; +- } +- +- memset(buf, 0, (size_t)size); +- return buf; ++ return dma_zalloc_coherent(dma_ctx, size, dma_addr, GFP_KERNEL | GFP_DMA32); + } + + void *__DWC_DMA_ALLOC_ATOMIC(void *dma_ctx, uint32_t size, dwc_dma_t *dma_addr) + { +- void *buf = dma_alloc_coherent(NULL, (size_t)size, dma_addr, GFP_ATOMIC); +- if (!buf) { +- return NULL; +- } +- memset(buf, 0, (size_t)size); +- return buf; ++ return dma_zalloc_coherent(dma_ctx, size, dma_addr, GFP_ATOMIC); + } + + void __DWC_DMA_FREE(void *dma_ctx, uint32_t size, void *virt_addr, dwc_dma_t dma_addr) +diff --git a/drivers/usb/host/dwc_common_port/dwc_os.h b/drivers/usb/host/dwc_common_port/dwc_os.h +index a2bbe232ffc3b58001d026864c3019792cdf5efa..9a86d299403bd1dfdcdb6532fad702b2b65138d7 100644 +--- a/drivers/usb/host/dwc_common_port/dwc_os.h ++++ b/drivers/usb/host/dwc_common_port/dwc_os.h +@@ -675,9 +675,9 @@ extern void __DWC_FREE(void *mem_ctx, void *addr); + #define DWC_FREE(_addr_) __DWC_FREE(NULL, _addr_) + + # ifdef DWC_LINUX +-#define DWC_DMA_ALLOC(_size_,_dma_) __DWC_DMA_ALLOC(NULL, _size_, _dma_) +-#define DWC_DMA_ALLOC_ATOMIC(_size_,_dma_) __DWC_DMA_ALLOC_ATOMIC(NULL, _size_,_dma_) +-#define DWC_DMA_FREE(_size_,_virt_,_dma_) __DWC_DMA_FREE(NULL, _size_, _virt_, _dma_) ++#define DWC_DMA_ALLOC(_dev, _size_, _dma_) __DWC_DMA_ALLOC(_dev, _size_, _dma_) ++#define DWC_DMA_ALLOC_ATOMIC(_dev, _size_, _dma_) __DWC_DMA_ALLOC_ATOMIC(_dev, _size_, _dma_) ++#define DWC_DMA_FREE(_dev, _size_,_virt_, _dma_) __DWC_DMA_FREE(_dev, _size_, _virt_, _dma_) + # endif + + # if defined(DWC_FREEBSD) || defined(DWC_NETBSD) +@@ -708,12 +708,12 @@ extern void dwc_memory_debug_report(void); + #define DWC_FREE(_addr_) dwc_free_debug(NULL, _addr_, __func__, __LINE__) + + # ifdef DWC_LINUX +-#define DWC_DMA_ALLOC(_size_,_dma_) dwc_dma_alloc_debug(NULL, _size_, \ +- _dma_, __func__, __LINE__) +-#define DWC_DMA_ALLOC_ATOMIC(_size_,_dma_) dwc_dma_alloc_atomic_debug(NULL, _size_, \ +- _dma_, __func__, __LINE__) +-#define DWC_DMA_FREE(_size_,_virt_,_dma_) dwc_dma_free_debug(NULL, _size_, \ +- _virt_, _dma_, __func__, __LINE__) ++#define DWC_DMA_ALLOC(_dev, _size_, _dma_) \ ++ dwc_dma_alloc_debug(_dev, _size_, _dma_, __func__, __LINE__) ++#define DWC_DMA_ALLOC_ATOMIC(_dev, _size_, _dma_) \ ++ dwc_dma_alloc_atomic_debug(_dev, _size_, _dma_, __func__, __LINE__) ++#define DWC_DMA_FREE(_dev, _size_, _virt_, _dma_) \ ++ dwc_dma_free_debug(_dev, _size_, _virt_, _dma_, __func__, __LINE__) + # endif + + # if defined(DWC_FREEBSD) || defined(DWC_NETBSD) +diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c +index 135b611abe08e141c937612ab7baada6b13113fc..027414bb2bf9fc3f3652407724187f3c6dc5ff68 100644 +--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd.c ++++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c +@@ -884,6 +884,7 @@ void dwc_otg_cleanup_fiq_channel(dwc_otg_hcd_t *hcd, uint32_t num) + */ + static void dwc_otg_hcd_free(dwc_otg_hcd_t * dwc_otg_hcd) + { ++ struct device *dev = dwc_otg_hcd_to_dev(dwc_otg_hcd); + int i; + + DWC_DEBUGPL(DBG_HCD, "DWC OTG HCD FREE\n"); +@@ -916,7 +917,7 @@ static void dwc_otg_hcd_free(dwc_otg_hcd_t * dwc_otg_hcd) + + if (dwc_otg_hcd->core_if->dma_enable) { + if (dwc_otg_hcd->status_buf_dma) { +- DWC_DMA_FREE(DWC_OTG_HCD_STATUS_BUF_SIZE, ++ DWC_DMA_FREE(dev, DWC_OTG_HCD_STATUS_BUF_SIZE, + dwc_otg_hcd->status_buf, + dwc_otg_hcd->status_buf_dma); + } +@@ -946,6 +947,7 @@ int init_hcd_usecs(dwc_otg_hcd_t *_hcd); + + int dwc_otg_hcd_init(dwc_otg_hcd_t * hcd, dwc_otg_core_if_t * core_if) + { ++ struct device *dev = dwc_otg_hcd_to_dev(hcd); + int retval = 0; + int num_channels; + int i; +@@ -1041,7 +1043,7 @@ int dwc_otg_hcd_init(dwc_otg_hcd_t * hcd, dwc_otg_core_if_t * core_if) + * for use as transaction bounce buffers in a 2-D array. Our access into this chunk is done by some + * moderately readable array casts. + */ +- hcd->fiq_dmab = DWC_DMA_ALLOC((sizeof(struct fiq_dma_channel) * num_channels), &hcd->fiq_state->dma_base); ++ hcd->fiq_dmab = DWC_DMA_ALLOC(dev, (sizeof(struct fiq_dma_channel) * num_channels), &hcd->fiq_state->dma_base); + DWC_WARN("FIQ DMA bounce buffers: virt = 0x%08x dma = 0x%08x len=%d", + (unsigned int)hcd->fiq_dmab, (unsigned int)hcd->fiq_state->dma_base, + sizeof(struct fiq_dma_channel) * num_channels); +@@ -1092,7 +1094,7 @@ int dwc_otg_hcd_init(dwc_otg_hcd_t * hcd, dwc_otg_core_if_t * core_if) + */ + if (hcd->core_if->dma_enable) { + hcd->status_buf = +- DWC_DMA_ALLOC(DWC_OTG_HCD_STATUS_BUF_SIZE, ++ DWC_DMA_ALLOC(dev, DWC_OTG_HCD_STATUS_BUF_SIZE, + &hcd->status_buf_dma); + } else { + hcd->status_buf = DWC_ALLOC(DWC_OTG_HCD_STATUS_BUF_SIZE); +@@ -1187,6 +1189,7 @@ static void assign_and_init_hc(dwc_otg_hcd_t * hcd, dwc_otg_qh_t * qh) + uint32_t intr_enable; + unsigned long flags; + gintmsk_data_t gintmsk = { .d32 = 0, }; ++ struct device *dev = dwc_otg_hcd_to_dev(hcd); + + qtd = DWC_CIRCLEQ_FIRST(&qh->qtd_list); + +@@ -1381,7 +1384,7 @@ static void assign_and_init_hc(dwc_otg_hcd_t * hcd, dwc_otg_qh_t * qh) + buf_size = 4096; + } + if (!qh->dw_align_buf) { +- qh->dw_align_buf = DWC_DMA_ALLOC_ATOMIC(buf_size, ++ qh->dw_align_buf = DWC_DMA_ALLOC_ATOMIC(dev, buf_size, + &qh->dw_align_buf_dma); + if (!qh->dw_align_buf) { + DWC_ERROR +@@ -1432,7 +1435,7 @@ static void assign_and_init_hc(dwc_otg_hcd_t * hcd, dwc_otg_qh_t * qh) + fiq_fsm_spin_unlock(&hcd->fiq_state->lock); + local_fiq_enable(); + } +- ++ + local_irq_restore(flags); + hc->qh = qh; + } +diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd.h b/drivers/usb/host/dwc_otg/dwc_otg_hcd.h +index 43dbed9fddbf5491bab33cc6e551b99ca8dce7dc..4539cd7b802d3e49ac9a6cb3f1d88b475a1ace16 100644 +--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd.h ++++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd.h +@@ -41,6 +41,7 @@ + #include "dwc_list.h" + #include "dwc_otg_cil.h" + #include "dwc_otg_fiq_fsm.h" ++#include "dwc_otg_driver.h" + + + /** +@@ -613,6 +614,11 @@ struct dwc_otg_hcd { + #endif + }; + ++static inline struct device *dwc_otg_hcd_to_dev(struct dwc_otg_hcd *hcd) ++{ ++ return &hcd->otg_dev->os_dep.platformdev->dev; ++} ++ + /** @name Transaction Execution Functions */ + /** @{ */ + extern dwc_otg_transaction_type_e dwc_otg_hcd_select_transactions(dwc_otg_hcd_t +diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c +index ee920c4d8f4a2980e4406cb878b81d809fec4e70..126e99ab2fc43f11d89a08ff0476181ead84029f 100644 +--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c ++++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c +@@ -75,12 +75,12 @@ static inline uint16_t frame_incr_val(dwc_otg_qh_t * qh) + : qh->interval); + } + +-static int desc_list_alloc(dwc_otg_qh_t * qh) ++static int desc_list_alloc(struct device *dev, dwc_otg_qh_t * qh) + { + int retval = 0; + + qh->desc_list = (dwc_otg_host_dma_desc_t *) +- DWC_DMA_ALLOC(sizeof(dwc_otg_host_dma_desc_t) * max_desc_num(qh), ++ DWC_DMA_ALLOC(dev, sizeof(dwc_otg_host_dma_desc_t) * max_desc_num(qh), + &qh->desc_list_dma); + + if (!qh->desc_list) { +@@ -106,10 +106,10 @@ static int desc_list_alloc(dwc_otg_qh_t * qh) + + } + +-static void desc_list_free(dwc_otg_qh_t * qh) ++static void desc_list_free(struct device *dev, dwc_otg_qh_t * qh) + { + if (qh->desc_list) { +- DWC_DMA_FREE(max_desc_num(qh), qh->desc_list, ++ DWC_DMA_FREE(dev, max_desc_num(qh), qh->desc_list, + qh->desc_list_dma); + qh->desc_list = NULL; + } +@@ -122,11 +122,13 @@ static void desc_list_free(dwc_otg_qh_t * qh) + + static int frame_list_alloc(dwc_otg_hcd_t * hcd) + { ++ struct device *dev = dwc_otg_hcd_to_dev(hcd); + int retval = 0; ++ + if (hcd->frame_list) + return 0; + +- hcd->frame_list = DWC_DMA_ALLOC(4 * MAX_FRLIST_EN_NUM, ++ hcd->frame_list = DWC_DMA_ALLOC(dev, 4 * MAX_FRLIST_EN_NUM, + &hcd->frame_list_dma); + if (!hcd->frame_list) { + retval = -DWC_E_NO_MEMORY; +@@ -140,10 +142,12 @@ static int frame_list_alloc(dwc_otg_hcd_t * hcd) + + static void frame_list_free(dwc_otg_hcd_t * hcd) + { ++ struct device *dev = dwc_otg_hcd_to_dev(hcd); ++ + if (!hcd->frame_list) + return; + +- DWC_DMA_FREE(4 * MAX_FRLIST_EN_NUM, hcd->frame_list, hcd->frame_list_dma); ++ DWC_DMA_FREE(dev, 4 * MAX_FRLIST_EN_NUM, hcd->frame_list, hcd->frame_list_dma); + hcd->frame_list = NULL; + } + +@@ -321,6 +325,7 @@ static void release_channel_ddma(dwc_otg_hcd_t * hcd, dwc_otg_qh_t * qh) + */ + int dwc_otg_hcd_qh_init_ddma(dwc_otg_hcd_t * hcd, dwc_otg_qh_t * qh) + { ++ struct device *dev = dwc_otg_hcd_to_dev(hcd); + int retval = 0; + + if (qh->do_split) { +@@ -328,7 +333,7 @@ int dwc_otg_hcd_qh_init_ddma(dwc_otg_hcd_t * hcd, dwc_otg_qh_t * qh) + return -1; + } + +- retval = desc_list_alloc(qh); ++ retval = desc_list_alloc(dev, qh); + + if ((retval == 0) + && (qh->ep_type == UE_ISOCHRONOUS || qh->ep_type == UE_INTERRUPT)) { +@@ -355,7 +360,9 @@ int dwc_otg_hcd_qh_init_ddma(dwc_otg_hcd_t * hcd, dwc_otg_qh_t * qh) + */ + void dwc_otg_hcd_qh_free_ddma(dwc_otg_hcd_t * hcd, dwc_otg_qh_t * qh) + { +- desc_list_free(qh); ++ struct device *dev = dwc_otg_hcd_to_dev(hcd); ++ ++ desc_list_free(dev, qh); + + /* + * Channel still assigned due to some reasons. +diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c +index 2ceed4212980f04ad082e78851c6a7e83aee1443..74cd5fa54aed5241b61371477ef67d706477fd30 100644 +--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c ++++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c +@@ -517,6 +517,7 @@ int hcd_init(dwc_bus_dev_t *_dev) + ((struct wrapper_priv_data *)(hcd->hcd_priv))->dwc_otg_hcd = + dwc_otg_hcd; + otg_dev->hcd = dwc_otg_hcd; ++ otg_dev->hcd->otg_dev = otg_dev; + + if (dwc_otg_hcd_init(dwc_otg_hcd, otg_dev->core_if)) { + goto error2; +@@ -531,7 +532,6 @@ int hcd_init(dwc_bus_dev_t *_dev) + } + } + +- otg_dev->hcd->otg_dev = otg_dev; + hcd->self.otg_port = dwc_otg_hcd_otg_port(dwc_otg_hcd); + #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33) //don't support for LM(with 2.6.20.1 kernel) + #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,35) //version field absent later +diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c +index 3b2a60763b92fb2e9261a8ade3d4b33e3896cd62..c2dff94e8e6edd22e4427aaa1eac7aad972cb6bd 100644 +--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c ++++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c +@@ -59,6 +59,7 @@ void dwc_otg_hcd_qh_free(dwc_otg_hcd_t * hcd, dwc_otg_qh_t * qh) + uint32_t buf_size = 0; + uint8_t *align_buf_virt = NULL; + dwc_dma_t align_buf_dma; ++ struct device *dev = dwc_otg_hcd_to_dev(hcd); + + /* Free each QTD in the QTD list */ + DWC_SPINLOCK_IRQSAVE(hcd->lock, &flags); +@@ -82,7 +83,7 @@ void dwc_otg_hcd_qh_free(dwc_otg_hcd_t * hcd, dwc_otg_qh_t * qh) + DWC_FREE(qh); + DWC_SPINUNLOCK_IRQRESTORE(hcd->lock, flags); + if (align_buf_virt) +- DWC_DMA_FREE(buf_size, align_buf_virt, align_buf_dma); ++ DWC_DMA_FREE(dev, buf_size, align_buf_virt, align_buf_dma); + return; + } + +diff --git a/drivers/usb/host/dwc_otg/dwc_otg_pcd.c b/drivers/usb/host/dwc_otg/dwc_otg_pcd.c +index ae0c72d02d007d5e7ce0f2dfb79b35d3d7ef86b8..9dabbe5c9791c5296d1cc7b663afa6ec462173cb 100644 +--- a/drivers/usb/host/dwc_otg/dwc_otg_pcd.c ++++ b/drivers/usb/host/dwc_otg/dwc_otg_pcd.c +@@ -237,20 +237,22 @@ static dwc_otg_cil_callbacks_t pcd_callbacks = { + * This function allocates a DMA Descriptor chain for the Endpoint + * buffer to be used for a transfer to/from the specified endpoint. + */ +-dwc_otg_dev_dma_desc_t *dwc_otg_ep_alloc_desc_chain(dwc_dma_t * dma_desc_addr, ++dwc_otg_dev_dma_desc_t *dwc_otg_ep_alloc_desc_chain(struct device *dev, ++ dwc_dma_t * dma_desc_addr, + uint32_t count) + { +- return DWC_DMA_ALLOC_ATOMIC(count * sizeof(dwc_otg_dev_dma_desc_t), ++ return DWC_DMA_ALLOC_ATOMIC(dev, count * sizeof(dwc_otg_dev_dma_desc_t), + dma_desc_addr); + } + + /** + * This function frees a DMA Descriptor chain that was allocated by ep_alloc_desc. + */ +-void dwc_otg_ep_free_desc_chain(dwc_otg_dev_dma_desc_t * desc_addr, ++void dwc_otg_ep_free_desc_chain(struct device *dev, ++ dwc_otg_dev_dma_desc_t * desc_addr, + uint32_t dma_desc_addr, uint32_t count) + { +- DWC_DMA_FREE(count * sizeof(dwc_otg_dev_dma_desc_t), desc_addr, ++ DWC_DMA_FREE(dev, count * sizeof(dwc_otg_dev_dma_desc_t), desc_addr, + dma_desc_addr); + } + +@@ -1105,8 +1107,10 @@ static void start_xfer_tasklet_func(void *data) + * This function initialized the PCD portion of the driver. + * + */ +-dwc_otg_pcd_t *dwc_otg_pcd_init(dwc_otg_core_if_t * core_if) ++dwc_otg_pcd_t *dwc_otg_pcd_init(dwc_otg_device_t *otg_dev) + { ++ struct device *dev = &otg_dev->os_dep.platformdev->dev; ++ dwc_otg_core_if_t *core_if = otg_dev->core_if; + dwc_otg_pcd_t *pcd = NULL; + dwc_otg_dev_if_t *dev_if; + int i; +@@ -1163,7 +1167,7 @@ dwc_otg_pcd_t *dwc_otg_pcd_init(dwc_otg_core_if_t * core_if) + */ + if (GET_CORE_IF(pcd)->dma_enable) { + pcd->setup_pkt = +- DWC_DMA_ALLOC(sizeof(*pcd->setup_pkt) * 5, ++ DWC_DMA_ALLOC(dev, sizeof(*pcd->setup_pkt) * 5, + &pcd->setup_pkt_dma_handle); + if (pcd->setup_pkt == NULL) { + DWC_FREE(pcd); +@@ -1171,10 +1175,10 @@ dwc_otg_pcd_t *dwc_otg_pcd_init(dwc_otg_core_if_t * core_if) + } + + pcd->status_buf = +- DWC_DMA_ALLOC(sizeof(uint16_t), ++ DWC_DMA_ALLOC(dev, sizeof(uint16_t), + &pcd->status_buf_dma_handle); + if (pcd->status_buf == NULL) { +- DWC_DMA_FREE(sizeof(*pcd->setup_pkt) * 5, ++ DWC_DMA_FREE(dev, sizeof(*pcd->setup_pkt) * 5, + pcd->setup_pkt, pcd->setup_pkt_dma_handle); + DWC_FREE(pcd); + return NULL; +@@ -1182,17 +1186,17 @@ dwc_otg_pcd_t *dwc_otg_pcd_init(dwc_otg_core_if_t * core_if) + + if (GET_CORE_IF(pcd)->dma_desc_enable) { + dev_if->setup_desc_addr[0] = +- dwc_otg_ep_alloc_desc_chain +- (&dev_if->dma_setup_desc_addr[0], 1); ++ dwc_otg_ep_alloc_desc_chain(dev, ++ &dev_if->dma_setup_desc_addr[0], 1); + dev_if->setup_desc_addr[1] = +- dwc_otg_ep_alloc_desc_chain +- (&dev_if->dma_setup_desc_addr[1], 1); ++ dwc_otg_ep_alloc_desc_chain(dev, ++ &dev_if->dma_setup_desc_addr[1], 1); + dev_if->in_desc_addr = +- dwc_otg_ep_alloc_desc_chain +- (&dev_if->dma_in_desc_addr, 1); ++ dwc_otg_ep_alloc_desc_chain(dev, ++ &dev_if->dma_in_desc_addr, 1); + dev_if->out_desc_addr = +- dwc_otg_ep_alloc_desc_chain +- (&dev_if->dma_out_desc_addr, 1); ++ dwc_otg_ep_alloc_desc_chain(dev, ++ &dev_if->dma_out_desc_addr, 1); + pcd->data_terminated = 0; + + if (dev_if->setup_desc_addr[0] == 0 +@@ -1201,26 +1205,26 @@ dwc_otg_pcd_t *dwc_otg_pcd_init(dwc_otg_core_if_t * core_if) + || dev_if->out_desc_addr == 0) { + + if (dev_if->out_desc_addr) +- dwc_otg_ep_free_desc_chain +- (dev_if->out_desc_addr, ++ dwc_otg_ep_free_desc_chain(dev, ++ dev_if->out_desc_addr, + dev_if->dma_out_desc_addr, 1); + if (dev_if->in_desc_addr) +- dwc_otg_ep_free_desc_chain +- (dev_if->in_desc_addr, ++ dwc_otg_ep_free_desc_chain(dev, ++ dev_if->in_desc_addr, + dev_if->dma_in_desc_addr, 1); + if (dev_if->setup_desc_addr[1]) +- dwc_otg_ep_free_desc_chain +- (dev_if->setup_desc_addr[1], ++ dwc_otg_ep_free_desc_chain(dev, ++ dev_if->setup_desc_addr[1], + dev_if->dma_setup_desc_addr[1], 1); + if (dev_if->setup_desc_addr[0]) +- dwc_otg_ep_free_desc_chain +- (dev_if->setup_desc_addr[0], ++ dwc_otg_ep_free_desc_chain(dev, ++ dev_if->setup_desc_addr[0], + dev_if->dma_setup_desc_addr[0], 1); + +- DWC_DMA_FREE(sizeof(*pcd->setup_pkt) * 5, ++ DWC_DMA_FREE(dev, sizeof(*pcd->setup_pkt) * 5, + pcd->setup_pkt, + pcd->setup_pkt_dma_handle); +- DWC_DMA_FREE(sizeof(*pcd->status_buf), ++ DWC_DMA_FREE(dev, sizeof(*pcd->status_buf), + pcd->status_buf, + pcd->status_buf_dma_handle); + +@@ -1302,7 +1306,9 @@ fail: + void dwc_otg_pcd_remove(dwc_otg_pcd_t * pcd) + { + dwc_otg_dev_if_t *dev_if = GET_CORE_IF(pcd)->dev_if; ++ struct device *dev = dwc_otg_pcd_to_dev(pcd); + int i; ++ + if (pcd->core_if->core_params->dev_out_nak) { + for (i = 0; i < MAX_EPS_CHANNELS; i++) { + DWC_TIMER_CANCEL(pcd->core_if->ep_xfer_timer[i]); +@@ -1311,20 +1317,24 @@ void dwc_otg_pcd_remove(dwc_otg_pcd_t * pcd) + } + + if (GET_CORE_IF(pcd)->dma_enable) { +- DWC_DMA_FREE(sizeof(*pcd->setup_pkt) * 5, pcd->setup_pkt, ++ DWC_DMA_FREE(dev, sizeof(*pcd->setup_pkt) * 5, pcd->setup_pkt, + pcd->setup_pkt_dma_handle); +- DWC_DMA_FREE(sizeof(uint16_t), pcd->status_buf, ++ DWC_DMA_FREE(dev, sizeof(uint16_t), pcd->status_buf, + pcd->status_buf_dma_handle); + if (GET_CORE_IF(pcd)->dma_desc_enable) { +- dwc_otg_ep_free_desc_chain(dev_if->setup_desc_addr[0], ++ dwc_otg_ep_free_desc_chain(dev, ++ dev_if->setup_desc_addr[0], + dev_if->dma_setup_desc_addr + [0], 1); +- dwc_otg_ep_free_desc_chain(dev_if->setup_desc_addr[1], ++ dwc_otg_ep_free_desc_chain(dev, ++ dev_if->setup_desc_addr[1], + dev_if->dma_setup_desc_addr + [1], 1); +- dwc_otg_ep_free_desc_chain(dev_if->in_desc_addr, ++ dwc_otg_ep_free_desc_chain(dev, ++ dev_if->in_desc_addr, + dev_if->dma_in_desc_addr, 1); +- dwc_otg_ep_free_desc_chain(dev_if->out_desc_addr, ++ dwc_otg_ep_free_desc_chain(dev, ++ dev_if->out_desc_addr, + dev_if->dma_out_desc_addr, + 1); + } +@@ -1463,6 +1473,7 @@ int dwc_otg_pcd_ep_enable(dwc_otg_pcd_t * pcd, + gdfifocfg_data_t gdfifocfgbase = {.d32 = 0 }; + int retval = 0; + int i, epcount; ++ struct device *dev = dwc_otg_pcd_to_dev(pcd); + + desc = (const usb_endpoint_descriptor_t *)ep_desc; + +@@ -1571,9 +1582,9 @@ int dwc_otg_pcd_ep_enable(dwc_otg_pcd_t * pcd, + if (ep->dwc_ep.type != UE_ISOCHRONOUS) { + #endif + ep->dwc_ep.desc_addr = +- dwc_otg_ep_alloc_desc_chain(&ep-> +- dwc_ep.dma_desc_addr, +- MAX_DMA_DESC_CNT); ++ dwc_otg_ep_alloc_desc_chain(dev, ++ &ep->dwc_ep.dma_desc_addr, ++ MAX_DMA_DESC_CNT); + if (!ep->dwc_ep.desc_addr) { + DWC_WARN("%s, can't allocate DMA descriptor\n", + __func__); +@@ -1624,6 +1635,7 @@ int dwc_otg_pcd_ep_disable(dwc_otg_pcd_t * pcd, void *ep_handle) + gdfifocfg_data_t gdfifocfgbase = {.d32 = 0 }; + gdfifocfg_data_t gdfifocfg = {.d32 = 0 }; + fifosize_data_t dptxfsiz = {.d32 = 0 }; ++ struct device *dev = dwc_otg_pcd_to_dev(pcd); + + ep = get_ep_from_handle(pcd, ep_handle); + +@@ -1678,7 +1690,7 @@ int dwc_otg_pcd_ep_disable(dwc_otg_pcd_t * pcd, void *ep_handle) + + /* Cannot call dma_free_coherent() with IRQs disabled */ + DWC_SPINUNLOCK_IRQRESTORE(pcd->lock, flags); +- dwc_otg_ep_free_desc_chain(desc_addr, dma_desc_addr, ++ dwc_otg_ep_free_desc_chain(dev, desc_addr, dma_desc_addr, + MAX_DMA_DESC_CNT); + + goto out_unlocked; +@@ -2079,6 +2091,7 @@ int dwc_otg_pcd_ep_queue(dwc_otg_pcd_t * pcd, void *ep_handle, + uint8_t * buf, dwc_dma_t dma_buf, uint32_t buflen, + int zero, void *req_handle, int atomic_alloc) + { ++ struct device *dev = dwc_otg_pcd_to_dev(pcd); + dwc_irqflags_t flags; + dwc_otg_pcd_request_t *req; + dwc_otg_pcd_ep_t *ep; +@@ -2115,7 +2128,7 @@ int dwc_otg_pcd_ep_queue(dwc_otg_pcd_t * pcd, void *ep_handle, + req->dw_align_buf = NULL; + if ((dma_buf & 0x3) && GET_CORE_IF(pcd)->dma_enable + && !GET_CORE_IF(pcd)->dma_desc_enable) +- req->dw_align_buf = DWC_DMA_ALLOC(buflen, ++ req->dw_align_buf = DWC_DMA_ALLOC(dev, buflen, + &req->dw_align_buf_dma); + DWC_SPINLOCK_IRQSAVE(pcd->lock, &flags); + +diff --git a/drivers/usb/host/dwc_otg/dwc_otg_pcd.h b/drivers/usb/host/dwc_otg/dwc_otg_pcd.h +index 8ef7ba648ad92b9b7e141f22db2a0c2837ddcfa8..a70ebd049d2cca3bf988a1f809832eebede14f96 100644 +--- a/drivers/usb/host/dwc_otg/dwc_otg_pcd.h ++++ b/drivers/usb/host/dwc_otg/dwc_otg_pcd.h +@@ -38,6 +38,8 @@ + #include "usb.h" + #include "dwc_otg_cil.h" + #include "dwc_otg_pcd_if.h" ++#include "dwc_otg_driver.h" ++ + struct cfiobject; + + /** +@@ -253,6 +255,11 @@ struct dwc_otg_pcd { + + }; + ++static inline struct device *dwc_otg_pcd_to_dev(struct dwc_otg_pcd *pcd) ++{ ++ return &pcd->otg_dev->os_dep.platformdev->dev; ++} ++ + //FIXME this functions should be static, and this prototypes should be removed + extern void dwc_otg_request_nuke(dwc_otg_pcd_ep_t * ep); + extern void dwc_otg_request_done(dwc_otg_pcd_ep_t * ep, +diff --git a/drivers/usb/host/dwc_otg/dwc_otg_pcd_if.h b/drivers/usb/host/dwc_otg/dwc_otg_pcd_if.h +index c8d2e0e0c99486558a4964a8c82de80c64b496b4..4c1d591fbc098b2f4a745669e4f243e068735b20 100644 +--- a/drivers/usb/host/dwc_otg/dwc_otg_pcd_if.h ++++ b/drivers/usb/host/dwc_otg/dwc_otg_pcd_if.h +@@ -37,6 +37,7 @@ + + //#include "dwc_os.h" + #include "dwc_otg_core_if.h" ++#include "dwc_otg_driver.h" + + /** @file + * This file defines DWC_OTG PCD Core API. +@@ -139,7 +140,7 @@ struct dwc_otg_pcd_function_ops { + * + * @param core_if The DWC_OTG Core + */ +-extern dwc_otg_pcd_t *dwc_otg_pcd_init(dwc_otg_core_if_t * core_if); ++extern dwc_otg_pcd_t *dwc_otg_pcd_init(dwc_otg_device_t *otg_dev); + + /** Frees PCD allocated by dwc_otg_pcd_init + * +diff --git a/drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c b/drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c +index c8590b527110753b8064d35fab4c34226d094f84..e55ea9c74be46167a41dc14a2d88a1228878b1bb 100644 +--- a/drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c ++++ b/drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c +@@ -2144,6 +2144,7 @@ static inline int cfi_calc_desc_residue(dwc_otg_pcd_ep_t * ep) + static void complete_ep(dwc_otg_pcd_ep_t * ep) + { + dwc_otg_core_if_t *core_if = GET_CORE_IF(ep->pcd); ++ struct device *dev = dwc_otg_pcd_to_dev(ep->pcd); + dwc_otg_dev_if_t *dev_if = core_if->dev_if; + dwc_otg_dev_in_ep_regs_t *in_ep_regs = + dev_if->in_ep_regs[ep->dwc_ep.num]; +@@ -2484,7 +2485,7 @@ static void complete_ep(dwc_otg_pcd_ep_t * ep) + if (!ep->dwc_ep.is_in) { + dwc_memcpy(req->buf, req->dw_align_buf, req->length); + } +- DWC_DMA_FREE(req->length, req->dw_align_buf, ++ DWC_DMA_FREE(dev, req->length, req->dw_align_buf, + req->dw_align_buf_dma); + } + +diff --git a/drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c b/drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c +index 5624f32c9ea9117599df451af29fca2e3bca36de..50aaeacdd12fff93d7a9cf1c54612367406c6bee 100644 +--- a/drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c ++++ b/drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c +@@ -1206,7 +1206,7 @@ int pcd_init(dwc_bus_dev_t *_dev) + + DWC_DEBUGPL(DBG_PCDV, "%s(%p) otg_dev=%p\n", __func__, _dev, otg_dev); + +- otg_dev->pcd = dwc_otg_pcd_init(otg_dev->core_if); ++ otg_dev->pcd = dwc_otg_pcd_init(otg_dev); + + if (!otg_dev->pcd) { + DWC_ERROR("dwc_otg_pcd_init failed\n"); + +From 5a39905808aeae97c328dd15e092528d8bfbc466 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= +Date: Wed, 19 Oct 2016 16:05:36 +0200 +Subject: [PATCH 137/147] mmc: bcm2835-sdhost: Pass struct device to + dma_alloc*() +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This makes it possible to get the bus address from Device Tree. +At the same time move the call to log_init() after getting the clock +to avoid allocating twice due to deferred probing. + +Signed-off-by: Noralf Trønnes +--- + drivers/mmc/host/bcm2835-sdhost.c | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git a/drivers/mmc/host/bcm2835-sdhost.c b/drivers/mmc/host/bcm2835-sdhost.c +index 9e55d5ac08b5809c40fe391ae6e685fdb4d62df7..a9bc79bfdbb71807819dfe2d8f1651445997f92a 100644 +--- a/drivers/mmc/host/bcm2835-sdhost.c ++++ b/drivers/mmc/host/bcm2835-sdhost.c +@@ -235,10 +235,10 @@ static void __iomem *timer_base; + #define LOG_ENTRIES (256*1) + #define LOG_SIZE (sizeof(LOG_ENTRY_T)*LOG_ENTRIES) + +-static void log_init(u32 bus_to_phys) ++static void log_init(struct device *dev, u32 bus_to_phys) + { + spin_lock_init(&log_lock); +- sdhost_log_buf = dma_zalloc_coherent(NULL, LOG_SIZE, &sdhost_log_addr, ++ sdhost_log_buf = dma_zalloc_coherent(dev, LOG_SIZE, &sdhost_log_addr, + GFP_KERNEL); + if (sdhost_log_buf) { + pr_info("sdhost: log_buf @ %p (%x)\n", +@@ -2037,7 +2037,6 @@ static int bcm2835_sdhost_probe(struct platform_device *pdev) + return -ENODEV; + } + host->bus_addr = be32_to_cpup(addr); +- log_init(iomem->start - host->bus_addr); + pr_debug(" - ioaddr %lx, iomem->start %lx, bus_addr %lx\n", + (unsigned long)host->ioaddr, + (unsigned long)iomem->start, +@@ -2110,6 +2109,8 @@ static int bcm2835_sdhost_probe(struct platform_device *pdev) + (unsigned long)host->max_clk, + (int)host->irq); + ++ log_init(dev, iomem->start - host->bus_addr); ++ + if (node) + mmc_of_parse(mmc); + else + +From b53162d15a72031e04b19d8a9bdd838ae0afdd59 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= +Date: Wed, 19 Oct 2016 16:16:48 +0200 +Subject: [PATCH 138/147] bcm270x: Drop NEED_MACH_MEMORY_H and use DT + dma-ranges +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Drop NEED_MACH_MEMORY_H and use dma-ranges from the Device Tree to +get the bus address, like ARCH_BCM2835 does. + +This means that we go from this: + +arch/arm/mach-bcm270x/include/mach/memory.h: + +define __virt_to_bus(x) ((x) + (BUS_OFFSET - PAGE_OFFSET)) +define __bus_to_virt(x) ((x) - (BUS_OFFSET - PAGE_OFFSET)) +define __pfn_to_bus(x) (__pfn_to_phys(x) + BUS_OFFSET) +define __bus_to_pfn(x) __phys_to_pfn((x) - BUS_OFFSET + +To this: + +arch/arm/include/asm/memory.h: + +define __virt_to_bus __virt_to_phys +define __bus_to_virt __phys_to_virt +define __pfn_to_bus(x) __pfn_to_phys(x) +define __bus_to_pfn(x) __phys_to_pfn(x) + +Drivers now have to use the DMA API to get to the bus address. + +Signed-off-by: Noralf Trønnes +--- + arch/arm/Kconfig | 2 - + arch/arm/boot/dts/bcm2708.dtsi | 3 -- + arch/arm/boot/dts/bcm2709.dtsi | 1 - + arch/arm/mach-bcm2708/Kconfig | 8 ---- + arch/arm/mach-bcm2708/include/mach/memory.h | 57 ----------------------------- + arch/arm/mach-bcm2709/Kconfig | 7 ---- + arch/arm/mach-bcm2709/include/mach/memory.h | 57 ----------------------------- + 7 files changed, 135 deletions(-) + delete mode 100644 arch/arm/mach-bcm2708/include/mach/memory.h + delete mode 100644 arch/arm/mach-bcm2709/include/mach/memory.h + +diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig +index 962d632c2af85c752b848c3ba7a8f3f3ba32c222..82cbd045d7894e1b75460021a862f8b56f5ec645 100644 +--- a/arch/arm/Kconfig ++++ b/arch/arm/Kconfig +@@ -334,7 +334,6 @@ config ARCH_BCM2708 + select CLKSRC_OF if OF + select HAVE_SCHED_CLOCK + select NEED_MACH_GPIO_H +- select NEED_MACH_MEMORY_H + select COMMON_CLK + select ARCH_HAS_CPUFREQ + select GENERIC_CLOCKEVENTS +@@ -354,7 +353,6 @@ config ARCH_BCM2709 + select ARM_AMBA + select MIGHT_HAVE_CACHE_L2X0 + select HAVE_SCHED_CLOCK +- select NEED_MACH_MEMORY_H + select COMMON_CLK + select ARCH_HAS_CPUFREQ + select GENERIC_CLOCKEVENTS +diff --git a/arch/arm/boot/dts/bcm2708.dtsi b/arch/arm/boot/dts/bcm2708.dtsi +index 1bd2a707ef5c0d92f233296e6312916f5a550bd2..663843965027da5dbaefbec1285e275c56746367 100644 +--- a/arch/arm/boot/dts/bcm2708.dtsi ++++ b/arch/arm/boot/dts/bcm2708.dtsi +@@ -7,9 +7,6 @@ + model = "BCM2708"; + + soc { +- ranges = <0x7e000000 0x20000000 0x01000000>; +- /delete-property/ dma-ranges; +- + timer@7e003000 { + compatible = "brcm,bcm2835-system-timer"; + reg = <0x7e003000 0x1000>; +diff --git a/arch/arm/boot/dts/bcm2709.dtsi b/arch/arm/boot/dts/bcm2709.dtsi +index 757d0053c1c07452babc63ca6ecd0a8f047b25dd..b1d82f9026d02e8b5371cbb4d8a144e67207a276 100644 +--- a/arch/arm/boot/dts/bcm2709.dtsi ++++ b/arch/arm/boot/dts/bcm2709.dtsi +@@ -9,7 +9,6 @@ + soc { + ranges = <0x7e000000 0x3f000000 0x01000000>, + <0x40000000 0x40000000 0x00040000>; +- /delete-property/ dma-ranges; + + syscon@40000000 { + compatible = "brcm,bcm2836-arm-local", "syscon"; +diff --git a/arch/arm/mach-bcm2708/Kconfig b/arch/arm/mach-bcm2708/Kconfig +index e93df839ab8c6cddb8d784d0af3b827276ba9120..265c3fb90f3debfc439491a89346e4863edec427 100644 +--- a/arch/arm/mach-bcm2708/Kconfig ++++ b/arch/arm/mach-bcm2708/Kconfig +@@ -3,7 +3,6 @@ menu "Broadcom BCM2708 Implementations" + + config MACH_BCM2708 + bool "Broadcom BCM2708 Development Platform" +- select NEED_MACH_MEMORY_H + select CPU_V6 + select USE_OF + select ARCH_REQUIRE_GPIOLIB +@@ -12,11 +11,4 @@ config MACH_BCM2708 + help + Include support for the Broadcom(R) BCM2708 platform. + +-config BCM2708_NOL2CACHE +- bool "Videocore L2 cache disable" +- depends on MACH_BCM2708 +- default n +- help +- Do not allow ARM to use GPU's L2 cache. Requires disable_l2cache in config.txt. +- + endmenu +diff --git a/arch/arm/mach-bcm2708/include/mach/memory.h b/arch/arm/mach-bcm2708/include/mach/memory.h +deleted file mode 100644 +index 7548a52dcf84affa4d1b0667e5e2f89f591891b8..0000000000000000000000000000000000000000 +--- a/arch/arm/mach-bcm2708/include/mach/memory.h ++++ /dev/null +@@ -1,57 +0,0 @@ +-/* +- * arch/arm/mach-bcm2708/include/mach/memory.h +- * +- * Copyright (C) 2010 Broadcom +- * +- * This program is free software; you can redistribute it and/or modify +- * it under the terms of the GNU General Public License as published by +- * the Free Software Foundation; either version 2 of the License, or +- * (at your option) any later version. +- * +- * This program is distributed in the hope that it will be useful, +- * but WITHOUT ANY WARRANTY; without even the implied warranty of +- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- * GNU General Public License for more details. +- * +- * You should have received a copy of the GNU General Public License +- * along with this program; if not, write to the Free Software +- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +- */ +-#ifndef __ASM_ARCH_MEMORY_H +-#define __ASM_ARCH_MEMORY_H +- +-/* Memory overview: +- +- [ARMcore] <--virtual addr--> +- [ARMmmu] <--physical addr--> +- [GERTmap] <--bus add--> +- [VCperiph] +- +-*/ +- +-/* +- * Physical DRAM offset. +- */ +-#define BCM_PLAT_PHYS_OFFSET UL(0x00000000) +-#define VC_ARMMEM_OFFSET UL(0x00000000) /* offset in VC of ARM memory */ +- +-#ifdef CONFIG_BCM2708_NOL2CACHE +- #define _REAL_BUS_OFFSET UL(0xC0000000) /* don't use L1 or L2 caches */ +-#else +- #define _REAL_BUS_OFFSET UL(0x40000000) /* use L2 cache */ +-#endif +- +-/* We're using the memory at 64M in the VideoCore for Linux - this adjustment +- * will provide the offset into this area as well as setting the bits that +- * stop the L1 and L2 cache from being used +- * +- * WARNING: this only works because the ARM is given memory at a fixed location +- * (ARMMEM_OFFSET) +- */ +-#define BUS_OFFSET (VC_ARMMEM_OFFSET + _REAL_BUS_OFFSET) +-#define __virt_to_bus(x) ((x) + (BUS_OFFSET - PAGE_OFFSET)) +-#define __bus_to_virt(x) ((x) - (BUS_OFFSET - PAGE_OFFSET)) +-#define __pfn_to_bus(x) (__pfn_to_phys(x) + (BUS_OFFSET - BCM_PLAT_PHYS_OFFSET)) +-#define __bus_to_pfn(x) __phys_to_pfn((x) - (BUS_OFFSET - BCM_PLAT_PHYS_OFFSET)) +- +-#endif +diff --git a/arch/arm/mach-bcm2709/Kconfig b/arch/arm/mach-bcm2709/Kconfig +index 643b4b984512a5f2ae33cee9beffa70a53e005ff..41f407ac1db3a86e87941153c1832b9fce1ead5d 100644 +--- a/arch/arm/mach-bcm2709/Kconfig ++++ b/arch/arm/mach-bcm2709/Kconfig +@@ -6,11 +6,4 @@ config MACH_BCM2709 + help + Include support for the Broadcom(R) BCM2709 platform. + +-config BCM2708_NOL2CACHE +- bool "Videocore L2 cache disable" +- depends on MACH_BCM2709 +- default y +- help +- Do not allow ARM to use GPU's L2 cache. Requires disable_l2cache in config.txt. +- + endmenu +diff --git a/arch/arm/mach-bcm2709/include/mach/memory.h b/arch/arm/mach-bcm2709/include/mach/memory.h +deleted file mode 100644 +index 7548a52dcf84affa4d1b0667e5e2f89f591891b8..0000000000000000000000000000000000000000 +--- a/arch/arm/mach-bcm2709/include/mach/memory.h ++++ /dev/null +@@ -1,57 +0,0 @@ +-/* +- * arch/arm/mach-bcm2708/include/mach/memory.h +- * +- * Copyright (C) 2010 Broadcom +- * +- * This program is free software; you can redistribute it and/or modify +- * it under the terms of the GNU General Public License as published by +- * the Free Software Foundation; either version 2 of the License, or +- * (at your option) any later version. +- * +- * This program is distributed in the hope that it will be useful, +- * but WITHOUT ANY WARRANTY; without even the implied warranty of +- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- * GNU General Public License for more details. +- * +- * You should have received a copy of the GNU General Public License +- * along with this program; if not, write to the Free Software +- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +- */ +-#ifndef __ASM_ARCH_MEMORY_H +-#define __ASM_ARCH_MEMORY_H +- +-/* Memory overview: +- +- [ARMcore] <--virtual addr--> +- [ARMmmu] <--physical addr--> +- [GERTmap] <--bus add--> +- [VCperiph] +- +-*/ +- +-/* +- * Physical DRAM offset. +- */ +-#define BCM_PLAT_PHYS_OFFSET UL(0x00000000) +-#define VC_ARMMEM_OFFSET UL(0x00000000) /* offset in VC of ARM memory */ +- +-#ifdef CONFIG_BCM2708_NOL2CACHE +- #define _REAL_BUS_OFFSET UL(0xC0000000) /* don't use L1 or L2 caches */ +-#else +- #define _REAL_BUS_OFFSET UL(0x40000000) /* use L2 cache */ +-#endif +- +-/* We're using the memory at 64M in the VideoCore for Linux - this adjustment +- * will provide the offset into this area as well as setting the bits that +- * stop the L1 and L2 cache from being used +- * +- * WARNING: this only works because the ARM is given memory at a fixed location +- * (ARMMEM_OFFSET) +- */ +-#define BUS_OFFSET (VC_ARMMEM_OFFSET + _REAL_BUS_OFFSET) +-#define __virt_to_bus(x) ((x) + (BUS_OFFSET - PAGE_OFFSET)) +-#define __bus_to_virt(x) ((x) - (BUS_OFFSET - PAGE_OFFSET)) +-#define __pfn_to_bus(x) (__pfn_to_phys(x) + (BUS_OFFSET - BCM_PLAT_PHYS_OFFSET)) +-#define __bus_to_pfn(x) __phys_to_pfn((x) - (BUS_OFFSET - BCM_PLAT_PHYS_OFFSET)) +- +-#endif + +From 8c31b39c5c492e9da9e4a4b0a746cfdc5856040a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= +Date: Tue, 25 Oct 2016 15:55:09 +0200 +Subject: [PATCH 139/147] dts: Remove bcm2835-rpi-cm.dts +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This file doesn't build anymore and isn't used so remove it. +It was added as part of my ARCH_BCM2835 work last year, but the future +didn't pan out as expected. + +Signed-off-by: Noralf Trønnes +--- + arch/arm/boot/dts/Makefile | 1 - + arch/arm/boot/dts/bcm2835-rpi-cm.dts | 93 ----------------------------------- + arch/arm/boot/dts/bcm2835-rpi-cm.dtsi | 30 ----------- + 3 files changed, 124 deletions(-) + delete mode 100644 arch/arm/boot/dts/bcm2835-rpi-cm.dts + delete mode 100644 arch/arm/boot/dts/bcm2835-rpi-cm.dtsi + +diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile +index 71f794ecc710ac533731854bd95961a6a4175b64..0cb86b7a5ab212fee36a34b3672856d27c446593 100644 +--- a/arch/arm/boot/dts/Makefile ++++ b/arch/arm/boot/dts/Makefile +@@ -3,7 +3,6 @@ ifeq ($(CONFIG_OF),y) + dtb-$(CONFIG_ARCH_BCM2708) += bcm2708-rpi-b.dtb + dtb-$(CONFIG_ARCH_BCM2708) += bcm2708-rpi-b-plus.dtb + dtb-$(CONFIG_ARCH_BCM2708) += bcm2708-rpi-cm.dtb +-dtb-$(CONFIG_ARCH_BCM2835) += bcm2835-rpi-cm.dtb + dtb-$(CONFIG_ARCH_BCM2709) += bcm2709-rpi-2-b.dtb + dtb-$(CONFIG_ARCH_BCM2709) += bcm2710-rpi-3-b.dtb + dtb-$(CONFIG_ARCH_BCM2709) += bcm2710-rpi-cm3.dtb +diff --git a/arch/arm/boot/dts/bcm2835-rpi-cm.dts b/arch/arm/boot/dts/bcm2835-rpi-cm.dts +deleted file mode 100644 +index c6e6860a6d4356a613f4f7ab41c6befc76740a15..0000000000000000000000000000000000000000 +--- a/arch/arm/boot/dts/bcm2835-rpi-cm.dts ++++ /dev/null +@@ -1,93 +0,0 @@ +-/dts-v1/; +- +-#include "bcm2835-rpi-cm.dtsi" +- +-/ { +- model = "Raspberry Pi Compute Module"; +-}; +- +-&uart0 { +- status = "okay"; +-}; +- +-&gpio { +- spi0_pins: spi0_pins { +- brcm,pins = <7 8 9 10 11>; +- brcm,function = <4>; /* alt0 */ +- }; +- +- i2c0_pins: i2c0 { +- brcm,pins = <0 1>; +- brcm,function = <4>; +- }; +- +- i2c1_pins: i2c1 { +- brcm,pins = <2 3>; +- brcm,function = <4>; +- }; +- +- i2s_pins: i2s { +- brcm,pins = <18 19 20 21>; +- brcm,function = <4>; /* alt0 */ +- }; +-}; +- +-&spi0 { +- pinctrl-names = "default"; +- pinctrl-0 = <&spi0_pins>; +- +- spidev@0{ +- compatible = "spidev"; +- reg = <0>; /* CE0 */ +- #address-cells = <1>; +- #size-cells = <0>; +- spi-max-frequency = <500000>; +- }; +- +- spidev@1{ +- compatible = "spidev"; +- reg = <1>; /* CE1 */ +- #address-cells = <1>; +- #size-cells = <0>; +- spi-max-frequency = <500000>; +- }; +-}; +- +-&i2c0 { +- pinctrl-names = "default"; +- pinctrl-0 = <&i2c0_pins>; +- clock-frequency = <100000>; +-}; +- +-&i2c1 { +- pinctrl-names = "default"; +- pinctrl-0 = <&i2c1_pins>; +- clock-frequency = <100000>; +-}; +- +-&i2c2 { +- clock-frequency = <100000>; +-}; +- +-&i2s { +- #sound-dai-cells = <0>; +- pinctrl-names = "default"; +- pinctrl-0 = <&i2s_pins>; +-}; +- +-/ { +- __overrides__ { +- uart0 = <&uart0>,"status"; +- uart0_clkrate = <&clk_uart0>,"clock-frequency:0"; +- uart1_clkrate = <&uart1>,"clock-frequency:0"; +- i2s = <&i2s>,"status"; +- spi = <&spi0>,"status"; +- i2c0 = <&i2c0>,"status"; +- i2c1 = <&i2c1>,"status"; +- i2c2_iknowwhatimdoing = <&i2c2>,"status"; +- i2c0_baudrate = <&i2c0>,"clock-frequency:0"; +- i2c1_baudrate = <&i2c1>,"clock-frequency:0"; +- i2c2_baudrate = <&i2c2>,"clock-frequency:0"; +- core_freq = <&clk_core>,"clock-frequency:0"; +- }; +-}; +diff --git a/arch/arm/boot/dts/bcm2835-rpi-cm.dtsi b/arch/arm/boot/dts/bcm2835-rpi-cm.dtsi +deleted file mode 100644 +index 9c4000fc686a9882b9ddde24fdcf937d52b0f86f..0000000000000000000000000000000000000000 +--- a/arch/arm/boot/dts/bcm2835-rpi-cm.dtsi ++++ /dev/null +@@ -1,30 +0,0 @@ +-#include "bcm2835.dtsi" +- +-&leds { +- act_led: act { +- label = "led0"; +- linux,default-trigger = "mmc0"; +- gpios = <&gpio 47 0>; +- }; +-}; +- +-&mmc { +- status = "okay"; +- bus-width = <4>; +-}; +- +-&fb { +- status = "okay"; +-}; +- +-/ { +- __overrides__ { +- act_led_gpio = <&act_led>,"gpios:4"; +- act_led_activelow = <&act_led>,"gpios:8"; +- act_led_trigger = <&act_led>,"linux,default-trigger"; +- +- audio = <&audio>,"status"; +- watchdog = <&watchdog>,"status"; +- random = <&random>,"status"; +- }; +-}; + +From 3fa49a0c237888a5ec69480409441fe4b8f76dc8 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= +Date: Tue, 25 Oct 2016 16:00:07 +0200 +Subject: [PATCH 140/147] bcm2708: Convert to ARCH_MULTIPLATFORM +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Convert to multi platform and base it on ARCH_BCM2835. + +Signed-off-by: Noralf Trønnes +--- + arch/arm/Kconfig | 21 -------------- + arch/arm/Makefile | 1 - + arch/arm/configs/bcmrpi_defconfig | 6 ++-- + arch/arm/mach-bcm/Kconfig | 14 +++++++++ + arch/arm/mach-bcm/board_bcm2835.c | 21 ++++++++++++++ + arch/arm/mach-bcm2708/Kconfig | 14 --------- + arch/arm/mach-bcm2708/Makefile | 5 ---- + arch/arm/mach-bcm2708/Makefile.boot | 3 -- + arch/arm/mach-bcm2708/bcm2708.c | 57 ------------------------------------- + drivers/clk/bcm/Makefile | 4 +-- + drivers/clocksource/Makefile | 2 +- + drivers/irqchip/Makefile | 1 - + 12 files changed, 42 insertions(+), 107 deletions(-) + delete mode 100644 arch/arm/mach-bcm2708/Kconfig + delete mode 100644 arch/arm/mach-bcm2708/Makefile + delete mode 100644 arch/arm/mach-bcm2708/Makefile.boot + delete mode 100644 arch/arm/mach-bcm2708/bcm2708.c + +diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig +index 82cbd045d7894e1b75460021a862f8b56f5ec645..4578b06fda58702f040477cabd0a828afa7eccf4 100644 +--- a/arch/arm/Kconfig ++++ b/arch/arm/Kconfig +@@ -326,26 +326,6 @@ choice + default ARM_SINGLE_ARMV7M if !MMU + default ARCH_MULTIPLATFORM if MMU + +-config ARCH_BCM2708 +- bool "Broadcom BCM2708 family" +- select CPU_V6 +- select ARM_AMBA +- select CLKSRC_MMIO +- select CLKSRC_OF if OF +- select HAVE_SCHED_CLOCK +- select NEED_MACH_GPIO_H +- select COMMON_CLK +- select ARCH_HAS_CPUFREQ +- select GENERIC_CLOCKEVENTS +- select ARM_ERRATA_411920 +- select MACH_BCM2708 +- select MULTI_IRQ_HANDLER +- select SPARSE_IRQ +- select VC4 +- select FIQ +- help +- This enables support for Broadcom BCM2708 boards. +- + config ARCH_BCM2709 + bool "Broadcom BCM2709 family" + select CPU_V7 +@@ -754,7 +734,6 @@ config ARCH_VIRT + # Kconfigs may be included either alphabetically (according to the + # plat- suffix) or along side the corresponding mach-* source. + # +-source "arch/arm/mach-bcm2708/Kconfig" + source "arch/arm/mach-bcm2709/Kconfig" + + source "arch/arm/mach-mvebu/Kconfig" +diff --git a/arch/arm/Makefile b/arch/arm/Makefile +index 275c53561cd7c3b1f52a60c95b5fb287fb3ccb62..ca1877e0c75d53091c8eee3373e8b8eb210022a2 100644 +--- a/arch/arm/Makefile ++++ b/arch/arm/Makefile +@@ -152,7 +152,6 @@ textofs-$(CONFIG_ARCH_AXXIA) := 0x00308000 + + # Machine directory name. This list is sorted alphanumerically + # by CONFIG_* macro name. +-machine-$(CONFIG_ARCH_BCM2708) += bcm2708 + machine-$(CONFIG_ARCH_BCM2709) += bcm2709 + machine-$(CONFIG_ARCH_ALPINE) += alpine + machine-$(CONFIG_ARCH_ARTPEC) += artpec +diff --git a/arch/arm/configs/bcmrpi_defconfig b/arch/arm/configs/bcmrpi_defconfig +index 46b91678fef473334b9417409fd1c529c0415977..27c61471a12a38feda62447af8010530bc89c141 100644 +--- a/arch/arm/configs/bcmrpi_defconfig ++++ b/arch/arm/configs/bcmrpi_defconfig +@@ -1,5 +1,3 @@ +-# CONFIG_ARM_PATCH_PHYS_VIRT is not set +-CONFIG_PHYS_OFFSET=0 + # CONFIG_LOCALVERSION_AUTO is not set + CONFIG_SYSVIPC=y + CONFIG_POSIX_MQUEUE=y +@@ -38,7 +36,11 @@ CONFIG_BLK_DEV_THROTTLING=y + CONFIG_PARTITION_ADVANCED=y + CONFIG_MAC_PARTITION=y + CONFIG_CFQ_GROUP_IOSCHED=y ++CONFIG_ARCH_MULTI_V6=y ++# CONFIG_ARCH_MULTI_V7 is not set ++CONFIG_ARCH_BCM=y + CONFIG_ARCH_BCM2708=y ++# CONFIG_CACHE_L2X0 is not set + CONFIG_PREEMPT_VOLUNTARY=y + CONFIG_AEABI=y + CONFIG_OABI_COMPAT=y +diff --git a/arch/arm/mach-bcm/Kconfig b/arch/arm/mach-bcm/Kconfig +index 5f6ab16792a93b2dd2e3f9e647f8ac4062d4fa6d..9461147888e20c10eba7eeca9d8601bff7d849c0 100644 +--- a/arch/arm/mach-bcm/Kconfig ++++ b/arch/arm/mach-bcm/Kconfig +@@ -160,6 +160,20 @@ config ARCH_BCM2835 + This enables support for the Broadcom BCM2835 and BCM2836 SoCs. + This SoC is used in the Raspberry Pi and Roku 2 devices. + ++config MACH_BCM2708 ++ bool "Enable optimized __copy_to_user and __copy_from_user" ++ depends on ARCH_BCM2708 ++ default y ++ help ++ Optimized versions of __copy_to_user and __copy_from_user for Pi1. ++ ++config ARCH_BCM2708 ++ bool "Broadcom BCM2708 family" ++ depends on ARCH_MULTI_V6 ++ select ARCH_BCM2835 ++ help ++ This enables support for Broadcom BCM2708 boards. ++ + config ARCH_BCM_63XX + bool "Broadcom BCM63xx DSL SoC" + depends on ARCH_MULTI_V7 +diff --git a/arch/arm/mach-bcm/board_bcm2835.c b/arch/arm/mach-bcm/board_bcm2835.c +index 8f152266ba9b470df2eaaed9ebcf158ed2079834..309a336df05191450aa162c91687592a7107a1b0 100644 +--- a/arch/arm/mach-bcm/board_bcm2835.c ++++ b/arch/arm/mach-bcm/board_bcm2835.c +@@ -16,6 +16,7 @@ + #include + #include + #include ++#include + #include + + #include +@@ -27,6 +28,7 @@ static void __init bcm2835_init(void) + u32 val; + u64 val64; + ++ vc_cma_early_init(); + bcm2835_init_clocks(); + + if (!of_property_read_u32(np, "linux,revision", &val)) +@@ -35,6 +37,11 @@ static void __init bcm2835_init(void) + system_serial_low = val64; + } + ++static void __init bcm2835_board_reserve(void) ++{ ++ vc_cma_reserve(); ++} ++ + static const char * const bcm2835_compat[] = { + #ifdef CONFIG_ARCH_MULTI_V6 + "brcm,bcm2835", +@@ -47,5 +54,19 @@ static const char * const bcm2835_compat[] = { + + DT_MACHINE_START(BCM2835, "BCM2835") + .init_machine = bcm2835_init, ++ .reserve = bcm2835_board_reserve, + .dt_compat = bcm2835_compat + MACHINE_END ++ ++#ifdef CONFIG_ARCH_BCM2708 ++static const char * const bcm2708_compat[] = { ++ "brcm,bcm2708", ++ NULL ++}; ++ ++DT_MACHINE_START(BCM2708, "BCM2708") ++ .init_machine = bcm2835_init, ++ .reserve = bcm2835_board_reserve, ++ .dt_compat = bcm2708_compat, ++MACHINE_END ++#endif +diff --git a/arch/arm/mach-bcm2708/Kconfig b/arch/arm/mach-bcm2708/Kconfig +deleted file mode 100644 +index 265c3fb90f3debfc439491a89346e4863edec427..0000000000000000000000000000000000000000 +--- a/arch/arm/mach-bcm2708/Kconfig ++++ /dev/null +@@ -1,14 +0,0 @@ +-menu "Broadcom BCM2708 Implementations" +- depends on ARCH_BCM2708 +- +-config MACH_BCM2708 +- bool "Broadcom BCM2708 Development Platform" +- select CPU_V6 +- select USE_OF +- select ARCH_REQUIRE_GPIOLIB +- select PINCTRL +- select PINCTRL_BCM2835 +- help +- Include support for the Broadcom(R) BCM2708 platform. +- +-endmenu +diff --git a/arch/arm/mach-bcm2708/Makefile b/arch/arm/mach-bcm2708/Makefile +deleted file mode 100644 +index 3da1a1b4ea1fb04ae0b535b2915ea9f386f5701c..0000000000000000000000000000000000000000 +--- a/arch/arm/mach-bcm2708/Makefile ++++ /dev/null +@@ -1,5 +0,0 @@ +-# +-# Makefile for the linux kernel. +-# +- +-obj-$(CONFIG_MACH_BCM2708) += bcm2708.o +diff --git a/arch/arm/mach-bcm2708/Makefile.boot b/arch/arm/mach-bcm2708/Makefile.boot +deleted file mode 100644 +index 67039c3e0c48fa6b94f1147b3316f74afcecba9e..0000000000000000000000000000000000000000 +--- a/arch/arm/mach-bcm2708/Makefile.boot ++++ /dev/null +@@ -1,3 +0,0 @@ +- zreladdr-y := 0x00008000 +-params_phys-y := 0x00000100 +-initrd_phys-y := 0x00800000 +diff --git a/arch/arm/mach-bcm2708/bcm2708.c b/arch/arm/mach-bcm2708/bcm2708.c +deleted file mode 100644 +index 06b078569006a6d821d3d049f1a0fa5783c1c1b3..0000000000000000000000000000000000000000 +--- a/arch/arm/mach-bcm2708/bcm2708.c ++++ /dev/null +@@ -1,57 +0,0 @@ +-/* +- * linux/arch/arm/mach-bcm2708/bcm2708.c +- * +- * Copyright (C) 2010 Broadcom +- * +- * This program is free software; you can redistribute it and/or modify +- * it under the terms of the GNU General Public License as published by +- * the Free Software Foundation; either version 2 of the License, or +- * (at your option) any later version. +- * +- * This program is distributed in the hope that it will be useful, +- * but WITHOUT ANY WARRANTY; without even the implied warranty of +- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- * GNU General Public License for more details. +- * +- * You should have received a copy of the GNU General Public License +- * along with this program; if not, write to the Free Software +- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +- */ +- +-#include +-#include +- +-#include +-#include +- +-static void __init bcm2708_init(void) +-{ +- struct device_node *np = of_find_node_by_path("/system"); +- u32 val; +- u64 val64; +- +- vc_cma_early_init(); +- +- if (!of_property_read_u32(np, "linux,revision", &val)) +- system_rev = val; +- if (!of_property_read_u64(np, "linux,serial", &val64)) +- system_serial_low = val64; +-} +- +-static void __init board_reserve(void) +-{ +- vc_cma_reserve(); +-} +- +-static const char * const bcm2708_compat[] = { +- "brcm,bcm2708", +- NULL +-}; +- +-DT_MACHINE_START(BCM2708, "BCM2708") +- /* Maintainer: Broadcom Europe Ltd. */ +- .init_machine = bcm2708_init, +- .reserve = board_reserve, +- .dt_compat = bcm2708_compat, +-MACHINE_END +- +diff --git a/drivers/clk/bcm/Makefile b/drivers/clk/bcm/Makefile +index fcf1bb5d792111a31226c33dec6b1da309a36e0d..84dc055849c0cea70aad86898a0cac757a93cc9e 100644 +--- a/drivers/clk/bcm/Makefile ++++ b/drivers/clk/bcm/Makefile +@@ -4,8 +4,8 @@ obj-$(CONFIG_CLK_BCM_KONA) += clk-kona-setup.o + obj-$(CONFIG_CLK_BCM_KONA) += clk-bcm281xx.o + obj-$(CONFIG_CLK_BCM_KONA) += clk-bcm21664.o + obj-$(CONFIG_COMMON_CLK_IPROC) += clk-iproc-armpll.o clk-iproc-pll.o clk-iproc-asiu.o +-obj-$(CONFIG_ARCH_BCM2835)$(CONFIG_ARCH_BCM2708)$(CONFIG_ARCH_BCM2709) += clk-bcm2835.o +-obj-$(CONFIG_ARCH_BCM2835)$(CONFIG_ARCH_BCM2708)$(CONFIG_ARCH_BCM2709) += clk-bcm2835-aux.o ++obj-$(CONFIG_ARCH_BCM2835)$(CONFIG_ARCH_BCM2709) += clk-bcm2835.o ++obj-$(CONFIG_ARCH_BCM2835)$(CONFIG_ARCH_BCM2709) += clk-bcm2835-aux.o + obj-$(CONFIG_COMMON_CLK_IPROC) += clk-ns2.o + obj-$(CONFIG_ARCH_BCM_CYGNUS) += clk-cygnus.o + obj-$(CONFIG_ARCH_BCM_NSP) += clk-nsp.o +diff --git a/drivers/clocksource/Makefile b/drivers/clocksource/Makefile +index a60aa840b28f0fa73c496a2e0d5c816eed6f771a..fd9d6df0bbc0993c3b7862a08f89dc3a9725be9d 100644 +--- a/drivers/clocksource/Makefile ++++ b/drivers/clocksource/Makefile +@@ -19,7 +19,7 @@ obj-$(CONFIG_CLKSRC_NOMADIK_MTU) += nomadik-mtu.o + obj-$(CONFIG_CLKSRC_DBX500_PRCMU) += clksrc-dbx500-prcmu.o + obj-$(CONFIG_ARMADA_370_XP_TIMER) += time-armada-370-xp.o + obj-$(CONFIG_ORION_TIMER) += time-orion.o +-obj-$(CONFIG_BCM2835_TIMER)$(CONFIG_ARCH_BCM2708) += bcm2835_timer.o ++obj-$(CONFIG_BCM2835_TIMER) += bcm2835_timer.o + obj-$(CONFIG_CLPS711X_TIMER) += clps711x-timer.o + obj-$(CONFIG_ATLAS7_TIMER) += timer-atlas7.o + obj-$(CONFIG_MOXART_TIMER) += moxart_timer.o +diff --git a/drivers/irqchip/Makefile b/drivers/irqchip/Makefile +index 75da978fac0e06819d8a9740b95ee3d7035c1059..662790c8fa9c972bbf3ac7f41b9f5eace912b69c 100644 +--- a/drivers/irqchip/Makefile ++++ b/drivers/irqchip/Makefile +@@ -5,7 +5,6 @@ obj-$(CONFIG_ATH79) += irq-ath79-cpu.o + obj-$(CONFIG_ATH79) += irq-ath79-misc.o + obj-$(CONFIG_ARCH_BCM2835) += irq-bcm2835.o + obj-$(CONFIG_ARCH_BCM2835) += irq-bcm2836.o +-obj-$(CONFIG_ARCH_BCM2708) += irq-bcm2835.o + obj-$(CONFIG_ARCH_BCM2709) += irq-bcm2835.o + obj-$(CONFIG_ARCH_BCM2709) += irq-bcm2836.o + obj-$(CONFIG_ARCH_EXYNOS) += exynos-combiner.o + +From b1b1bc303a19b07b8d5307250e5f746b99b2dd1c Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= +Date: Tue, 25 Oct 2016 16:02:39 +0200 +Subject: [PATCH 141/147] bcm2709: Convert to ARCH_MULTIPLATFORM +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Convert to multi platform and base it on ARCH_BCM2835. + +Signed-off-by: Noralf Trønnes +--- + arch/arm/Kconfig | 25 ----------------- + arch/arm/Makefile | 1 - + arch/arm/configs/bcm2709_defconfig | 4 +-- + arch/arm/mach-bcm/Kconfig | 9 ++++++ + arch/arm/mach-bcm/board_bcm2835.c | 13 +++++++++ + arch/arm/mach-bcm2709/Kconfig | 9 ------ + arch/arm/mach-bcm2709/Makefile | 5 ---- + arch/arm/mach-bcm2709/Makefile.boot | 3 -- + arch/arm/mach-bcm2709/bcm2709.c | 56 ------------------------------------- + drivers/clk/bcm/Makefile | 4 +-- + drivers/irqchip/Makefile | 2 -- + 11 files changed, 25 insertions(+), 106 deletions(-) + delete mode 100644 arch/arm/mach-bcm2709/Kconfig + delete mode 100644 arch/arm/mach-bcm2709/Makefile + delete mode 100644 arch/arm/mach-bcm2709/Makefile.boot + delete mode 100644 arch/arm/mach-bcm2709/bcm2709.c + +diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig +index 4578b06fda58702f040477cabd0a828afa7eccf4..a9c4e48bb7ec997bec394066914d26f337a2fec4 100644 +--- a/arch/arm/Kconfig ++++ b/arch/arm/Kconfig +@@ -326,29 +326,6 @@ choice + default ARM_SINGLE_ARMV7M if !MMU + default ARCH_MULTIPLATFORM if MMU + +-config ARCH_BCM2709 +- bool "Broadcom BCM2709 family" +- select CPU_V7 +- select HAVE_SMP +- select ARM_AMBA +- select MIGHT_HAVE_CACHE_L2X0 +- select HAVE_SCHED_CLOCK +- select COMMON_CLK +- select ARCH_HAS_CPUFREQ +- select GENERIC_CLOCKEVENTS +- select MACH_BCM2709 +- select MULTI_IRQ_HANDLER +- select SPARSE_IRQ +- select MFD_SYSCON +- select VC4 +- select FIQ +- select USE_OF +- select ARCH_REQUIRE_GPIOLIB +- select PINCTRL +- select PINCTRL_BCM2835 +- help +- This enables support for Broadcom BCM2709 boards. +- + config ARCH_MULTIPLATFORM + bool "Allow multiple platforms to be selected" + depends on MMU +@@ -734,8 +711,6 @@ config ARCH_VIRT + # Kconfigs may be included either alphabetically (according to the + # plat- suffix) or along side the corresponding mach-* source. + # +-source "arch/arm/mach-bcm2709/Kconfig" +- + source "arch/arm/mach-mvebu/Kconfig" + + source "arch/arm/mach-alpine/Kconfig" +diff --git a/arch/arm/Makefile b/arch/arm/Makefile +index ca1877e0c75d53091c8eee3373e8b8eb210022a2..5eb5aef84c1953d12cce666b8a587e0f1f7dd10a 100644 +--- a/arch/arm/Makefile ++++ b/arch/arm/Makefile +@@ -152,7 +152,6 @@ textofs-$(CONFIG_ARCH_AXXIA) := 0x00308000 + + # Machine directory name. This list is sorted alphanumerically + # by CONFIG_* macro name. +-machine-$(CONFIG_ARCH_BCM2709) += bcm2709 + machine-$(CONFIG_ARCH_ALPINE) += alpine + machine-$(CONFIG_ARCH_ARTPEC) += artpec + machine-$(CONFIG_ARCH_AT91) += at91 +diff --git a/arch/arm/configs/bcm2709_defconfig b/arch/arm/configs/bcm2709_defconfig +index 40841d8421e44f8863cb23c53802388b502e61a3..d246dd91b12d40a2d59d5e6758548471f1b195a0 100644 +--- a/arch/arm/configs/bcm2709_defconfig ++++ b/arch/arm/configs/bcm2709_defconfig +@@ -1,5 +1,3 @@ +-# CONFIG_ARM_PATCH_PHYS_VIRT is not set +-CONFIG_PHYS_OFFSET=0 + CONFIG_LOCALVERSION="-v7" + # CONFIG_LOCALVERSION_AUTO is not set + CONFIG_SYSVIPC=y +@@ -39,10 +37,10 @@ CONFIG_BLK_DEV_THROTTLING=y + CONFIG_PARTITION_ADVANCED=y + CONFIG_MAC_PARTITION=y + CONFIG_CFQ_GROUP_IOSCHED=y ++CONFIG_ARCH_BCM=y + CONFIG_ARCH_BCM2709=y + # CONFIG_CACHE_L2X0 is not set + CONFIG_SMP=y +-CONFIG_HAVE_ARM_ARCH_TIMER=y + CONFIG_VMSPLIT_2G=y + CONFIG_PREEMPT_VOLUNTARY=y + CONFIG_AEABI=y +diff --git a/arch/arm/mach-bcm/Kconfig b/arch/arm/mach-bcm/Kconfig +index 9461147888e20c10eba7eeca9d8601bff7d849c0..929a5fa241fa94134993c61a137d1f79b514d64b 100644 +--- a/arch/arm/mach-bcm/Kconfig ++++ b/arch/arm/mach-bcm/Kconfig +@@ -174,6 +174,15 @@ config ARCH_BCM2708 + help + This enables support for Broadcom BCM2708 boards. + ++config ARCH_BCM2709 ++ bool "Broadcom BCM2709 family" ++ depends on ARCH_MULTI_V7 ++ select ARCH_BCM2835 ++ select HAVE_SMP ++ select MFD_SYSCON ++ help ++ This enables support for Broadcom BCM2709 boards. ++ + config ARCH_BCM_63XX + bool "Broadcom BCM63xx DSL SoC" + depends on ARCH_MULTI_V7 +diff --git a/arch/arm/mach-bcm/board_bcm2835.c b/arch/arm/mach-bcm/board_bcm2835.c +index 309a336df05191450aa162c91687592a7107a1b0..6ce49dea7856b243b38f180231afd25b57dee729 100644 +--- a/arch/arm/mach-bcm/board_bcm2835.c ++++ b/arch/arm/mach-bcm/board_bcm2835.c +@@ -70,3 +70,16 @@ DT_MACHINE_START(BCM2708, "BCM2708") + .dt_compat = bcm2708_compat, + MACHINE_END + #endif ++ ++#ifdef CONFIG_ARCH_BCM2709 ++static const char * const bcm2709_compat[] = { ++ "brcm,bcm2709", ++ NULL ++}; ++ ++DT_MACHINE_START(BCM2709, "BCM2709") ++ .init_machine = bcm2835_init, ++ .reserve = bcm2835_board_reserve, ++ .dt_compat = bcm2709_compat, ++MACHINE_END ++#endif +diff --git a/arch/arm/mach-bcm2709/Kconfig b/arch/arm/mach-bcm2709/Kconfig +deleted file mode 100644 +index 41f407ac1db3a86e87941153c1832b9fce1ead5d..0000000000000000000000000000000000000000 +--- a/arch/arm/mach-bcm2709/Kconfig ++++ /dev/null +@@ -1,9 +0,0 @@ +-menu "Broadcom BCM2709 Implementations" +- depends on ARCH_BCM2709 +- +-config MACH_BCM2709 +- bool "Broadcom BCM2709 Development Platform" +- help +- Include support for the Broadcom(R) BCM2709 platform. +- +-endmenu +diff --git a/arch/arm/mach-bcm2709/Makefile b/arch/arm/mach-bcm2709/Makefile +deleted file mode 100644 +index 26cd67d3dc343dbd250fa97855a82c28bbd95af0..0000000000000000000000000000000000000000 +--- a/arch/arm/mach-bcm2709/Makefile ++++ /dev/null +@@ -1,5 +0,0 @@ +-# +-# Makefile for the linux kernel. +-# +- +-obj-$(CONFIG_MACH_BCM2709) += bcm2709.o +diff --git a/arch/arm/mach-bcm2709/Makefile.boot b/arch/arm/mach-bcm2709/Makefile.boot +deleted file mode 100644 +index 67039c3e0c48fa6b94f1147b3316f74afcecba9e..0000000000000000000000000000000000000000 +--- a/arch/arm/mach-bcm2709/Makefile.boot ++++ /dev/null +@@ -1,3 +0,0 @@ +- zreladdr-y := 0x00008000 +-params_phys-y := 0x00000100 +-initrd_phys-y := 0x00800000 +diff --git a/arch/arm/mach-bcm2709/bcm2709.c b/arch/arm/mach-bcm2709/bcm2709.c +deleted file mode 100644 +index 9f113736627175bdcb362e0eda469e09e3d5f2e0..0000000000000000000000000000000000000000 +--- a/arch/arm/mach-bcm2709/bcm2709.c ++++ /dev/null +@@ -1,56 +0,0 @@ +-/* +- * linux/arch/arm/mach-bcm2709/bcm2709.c +- * +- * Copyright (C) 2010 Broadcom +- * +- * This program is free software; you can redistribute it and/or modify +- * it under the terms of the GNU General Public License as published by +- * the Free Software Foundation; either version 2 of the License, or +- * (at your option) any later version. +- * +- * This program is distributed in the hope that it will be useful, +- * but WITHOUT ANY WARRANTY; without even the implied warranty of +- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- * GNU General Public License for more details. +- * +- * You should have received a copy of the GNU General Public License +- * along with this program; if not, write to the Free Software +- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +- */ +- +-#include +-#include +- +-#include +-#include +- +-static void __init bcm2709_init(void) +-{ +- struct device_node *np = of_find_node_by_path("/system"); +- u32 val; +- u64 val64; +- +- vc_cma_early_init(); +- +- if (!of_property_read_u32(np, "linux,revision", &val)) +- system_rev = val; +- if (!of_property_read_u64(np, "linux,serial", &val64)) +- system_serial_low = val64; +-} +- +-static void __init board_reserve(void) +-{ +- vc_cma_reserve(); +-} +- +-static const char * const bcm2709_compat[] = { +- "brcm,bcm2709", +- NULL +-}; +- +-DT_MACHINE_START(BCM2709, "BCM2709") +- /* Maintainer: Broadcom Europe Ltd. */ +- .init_machine = bcm2709_init, +- .reserve = board_reserve, +- .dt_compat = bcm2709_compat, +-MACHINE_END +diff --git a/drivers/clk/bcm/Makefile b/drivers/clk/bcm/Makefile +index 84dc055849c0cea70aad86898a0cac757a93cc9e..1d79bd2c36f004669d1dcf78fa681025c3f074e2 100644 +--- a/drivers/clk/bcm/Makefile ++++ b/drivers/clk/bcm/Makefile +@@ -4,8 +4,8 @@ obj-$(CONFIG_CLK_BCM_KONA) += clk-kona-setup.o + obj-$(CONFIG_CLK_BCM_KONA) += clk-bcm281xx.o + obj-$(CONFIG_CLK_BCM_KONA) += clk-bcm21664.o + obj-$(CONFIG_COMMON_CLK_IPROC) += clk-iproc-armpll.o clk-iproc-pll.o clk-iproc-asiu.o +-obj-$(CONFIG_ARCH_BCM2835)$(CONFIG_ARCH_BCM2709) += clk-bcm2835.o +-obj-$(CONFIG_ARCH_BCM2835)$(CONFIG_ARCH_BCM2709) += clk-bcm2835-aux.o ++obj-$(CONFIG_ARCH_BCM2835) += clk-bcm2835.o ++obj-$(CONFIG_ARCH_BCM2835) += clk-bcm2835-aux.o + obj-$(CONFIG_COMMON_CLK_IPROC) += clk-ns2.o + obj-$(CONFIG_ARCH_BCM_CYGNUS) += clk-cygnus.o + obj-$(CONFIG_ARCH_BCM_NSP) += clk-nsp.o +diff --git a/drivers/irqchip/Makefile b/drivers/irqchip/Makefile +index 662790c8fa9c972bbf3ac7f41b9f5eace912b69c..4c203b6b816357dce8d7a768ac81feaba91d431b 100644 +--- a/drivers/irqchip/Makefile ++++ b/drivers/irqchip/Makefile +@@ -5,8 +5,6 @@ obj-$(CONFIG_ATH79) += irq-ath79-cpu.o + obj-$(CONFIG_ATH79) += irq-ath79-misc.o + obj-$(CONFIG_ARCH_BCM2835) += irq-bcm2835.o + obj-$(CONFIG_ARCH_BCM2835) += irq-bcm2836.o +-obj-$(CONFIG_ARCH_BCM2709) += irq-bcm2835.o +-obj-$(CONFIG_ARCH_BCM2709) += irq-bcm2836.o + obj-$(CONFIG_ARCH_EXYNOS) += exynos-combiner.o + obj-$(CONFIG_ARCH_HIP04) += irq-hip04.o + obj-$(CONFIG_ARCH_LPC32XX) += irq-lpc32xx.o + +From 6e7c8eabcb8f4c0adc617e6b6e529823971234e1 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= +Date: Tue, 25 Oct 2016 17:32:02 +0200 +Subject: [PATCH 142/147] kconfig: Just use ARCH_BCM2835 for depends on +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +ARCH_BCM2708 and ARCH_BCM2709 selects ARCH_BCM2835 now, so the +dependencies can be simplified. + +Signed-off-by: Noralf Trønnes +--- + arch/arm/Kconfig.debug | 10 ++++------ + drivers/char/broadcom/Kconfig | 2 +- + drivers/char/hw_random/Kconfig | 2 +- + drivers/dma/Kconfig | 2 +- + drivers/gpio/Kconfig | 2 +- + drivers/gpu/drm/vc4/Kconfig | 2 +- + drivers/i2c/busses/Kconfig | 4 ++-- + drivers/mailbox/Kconfig | 2 +- + drivers/media/platform/bcm2835/Kconfig | 2 +- + drivers/misc/Kconfig | 2 +- + drivers/mmc/host/Kconfig | 4 ++-- + drivers/mtd/nand/Kconfig | 2 +- + drivers/pwm/Kconfig | 2 +- + drivers/soc/bcm/Kconfig | 2 +- + drivers/spi/Kconfig | 4 ++-- + drivers/tty/serial/8250/Kconfig | 2 +- + drivers/watchdog/Kconfig | 2 +- + sound/arm/Kconfig | 3 +-- + sound/soc/bcm/Kconfig | 2 +- + 19 files changed, 25 insertions(+), 28 deletions(-) + +diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug +index 11aa81fcaaa8e476ded9b9f41e30ddefa11c1cae..a9693b6987a6e41c69702f1003d0d8bd2279530e 100644 +--- a/arch/arm/Kconfig.debug ++++ b/arch/arm/Kconfig.debug +@@ -147,12 +147,12 @@ choice + + config DEBUG_BCM2835 + bool "Kernel low-level debugging on BCM2835 PL011 UART" +- depends on (ARCH_BCM2835 && ARCH_MULTI_V6) || ARCH_BCM2708 ++ depends on ARCH_BCM2835 && ARCH_MULTI_V6 + select DEBUG_UART_PL01X + + config DEBUG_BCM2836 + bool "Kernel low-level debugging on BCM2836 PL011 UART" +- depends on (ARCH_BCM2835 && ARCH_MULTI_V7) || ARCH_BCM2709 ++ depends on ARCH_BCM2835 && ARCH_MULTI_V7 + select DEBUG_UART_PL01X + + config DEBUG_BCM_5301X +@@ -1695,8 +1695,7 @@ config DEBUG_UART_8250_FLOW_CONTROL + + config DEBUG_UNCOMPRESS + bool +- depends on ARCH_MULTIPLATFORM || PLAT_SAMSUNG || ARM_SINGLE_ARMV7M || \ +- ARCH_BCM2708 || ARCH_BCM2709 ++ depends on ARCH_MULTIPLATFORM || PLAT_SAMSUNG || ARM_SINGLE_ARMV7M + default y if DEBUG_LL && !DEBUG_OMAP2PLUS_UART && \ + (!DEBUG_TEGRA_UART || !ZBOOT_ROM) + help +@@ -1713,8 +1712,7 @@ config DEBUG_UNCOMPRESS + config UNCOMPRESS_INCLUDE + string + default "debug/uncompress.h" if ARCH_MULTIPLATFORM || ARCH_MSM || \ +- PLAT_SAMSUNG || ARM_SINGLE_ARMV7M || \ +- ARCH_BCM2708 || ARCH_BCM2709 ++ PLAT_SAMSUNG || ARM_SINGLE_ARMV7M + default "mach/uncompress.h" + + config EARLY_PRINTK +diff --git a/drivers/char/broadcom/Kconfig b/drivers/char/broadcom/Kconfig +index 5489f19f05c620a30541e1a222d77b6ee4356d97..032164919350db25c586c36f0e05d3e4891fb835 100644 +--- a/drivers/char/broadcom/Kconfig ++++ b/drivers/char/broadcom/Kconfig +@@ -49,7 +49,7 @@ config BCM2835_DEVGPIOMEM + + config BCM2835_SMI_DEV + tristate "Character device driver for BCM2835 Secondary Memory Interface" +- depends on (MACH_BCM2708 || MACH_BCM2709 || ARCH_BCM2835) && BCM2835_SMI ++ depends on BCM2835_SMI + default m + help + This driver provides a character device interface (ioctl + read/write) to +diff --git a/drivers/char/hw_random/Kconfig b/drivers/char/hw_random/Kconfig +index 205b6b34d32c660d34c885e8391032d682c8870e..8c0770bf8881351c1d956d310c5d670684090770 100644 +--- a/drivers/char/hw_random/Kconfig ++++ b/drivers/char/hw_random/Kconfig +@@ -90,7 +90,7 @@ config HW_RANDOM_BCM63XX + + config HW_RANDOM_BCM2835 + tristate "Broadcom BCM2835 Random Number Generator support" +- depends on ARCH_BCM2835 || ARCH_BCM2708 || ARCH_BCM2709 || ARCH_BCM_NSP || ARCH_BCM_5301X ++ depends on ARCH_BCM2835 || ARCH_BCM_NSP || ARCH_BCM_5301X + default HW_RANDOM + ---help--- + This driver provides kernel-side support for the Random Number +diff --git a/drivers/dma/Kconfig b/drivers/dma/Kconfig +index 2a2108062687ff33ff540c987f6367fa3b8aad9d..61c3318e8c88e1cd88e4ccc20875321bb238d936 100644 +--- a/drivers/dma/Kconfig ++++ b/drivers/dma/Kconfig +@@ -108,7 +108,7 @@ config COH901318 + + config DMA_BCM2835 + tristate "BCM2835 DMA engine support" +- depends on ARCH_BCM2835 || ARCH_BCM2708 || ARCH_BCM2709 ++ depends on ARCH_BCM2835 + select DMA_ENGINE + select DMA_VIRTUAL_CHANNELS + +diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig +index 343adff44f82b78d0a09d41518a2890c602fc83d..71d7754587afbb4d6446ebd5448ef7e7c110c47e 100644 +--- a/drivers/gpio/Kconfig ++++ b/drivers/gpio/Kconfig +@@ -146,7 +146,7 @@ config GPIO_BCM_KONA + + config GPIO_BCM_VIRT + bool "Broadcom Virt GPIO" +- depends on OF_GPIO && RASPBERRYPI_FIRMWARE && (ARCH_BCM2835 || ARCH_BCM2708 || ARCH_BCM2709 || COMPILE_TEST) ++ depends on OF_GPIO && RASPBERRYPI_FIRMWARE && (ARCH_BCM2835 || COMPILE_TEST) + help + Turn on virtual GPIO support for Broadcom BCM283X chips. + +diff --git a/drivers/gpu/drm/vc4/Kconfig b/drivers/gpu/drm/vc4/Kconfig +index f6e938208b73512f20eab46a383ca91bf675a845..e53df59cb139f25f8e6ae916bca93abf0c49e063 100644 +--- a/drivers/gpu/drm/vc4/Kconfig ++++ b/drivers/gpu/drm/vc4/Kconfig +@@ -1,6 +1,6 @@ + config DRM_VC4 + tristate "Broadcom VC4 Graphics" +- depends on ARCH_BCM2835 || ARCH_BCM2708 || ARCH_BCM2709 || COMPILE_TEST ++ depends on ARCH_BCM2835 || COMPILE_TEST + depends on DRM + select DRM_KMS_HELPER + select DRM_KMS_CMA_HELPER +diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig +index 37f463232d6db91940763345600b095dbd8b5c58..9cd5735259276cfc823e6e51907a74db611a2ebc 100644 +--- a/drivers/i2c/busses/Kconfig ++++ b/drivers/i2c/busses/Kconfig +@@ -10,7 +10,7 @@ comment "PC SMBus host controller drivers" + + config I2C_BCM2708 + tristate "BCM2708 BSC" +- depends on MACH_BCM2708 || MACH_BCM2709 || ARCH_BCM2835 ++ depends on ARCH_BCM2835 + help + Enabling this option will add BSC (Broadcom Serial Controller) + support for the BCM2708. BSC is a Broadcom proprietary bus compatible +@@ -385,7 +385,7 @@ config I2C_AXXIA + + config I2C_BCM2835 + tristate "Broadcom BCM2835 I2C controller" +- depends on ARCH_BCM2835 || ARCH_BCM2708 || ARCH_BCM2709 ++ depends on ARCH_BCM2835 + help + If you say yes to this option, support will be included for the + BCM2835 I2C controller. +diff --git a/drivers/mailbox/Kconfig b/drivers/mailbox/Kconfig +index dc46b41705af8ea405dc961d9230058c7086db7d..7817d40d81e74ad282b1760b1dc50d090d10670d 100644 +--- a/drivers/mailbox/Kconfig ++++ b/drivers/mailbox/Kconfig +@@ -74,7 +74,7 @@ config ALTERA_MBOX + + config BCM2835_MBOX + tristate "BCM2835 Mailbox" +- depends on ARCH_BCM2835 || ARCH_BCM2708 || ARCH_BCM2709 ++ depends on ARCH_BCM2835 + help + An implementation of the BCM2385 Mailbox. It is used to invoke + the services of the Videocore. Say Y here if you want to use the +diff --git a/drivers/media/platform/bcm2835/Kconfig b/drivers/media/platform/bcm2835/Kconfig +index 99a5cbccf0f3fa66ad5190ec0942b0c232c3e824..58d5f9600d726cb20e6d04c54c58c53ac3a586d2 100644 +--- a/drivers/media/platform/bcm2835/Kconfig ++++ b/drivers/media/platform/bcm2835/Kconfig +@@ -2,7 +2,7 @@ + + config VIDEO_BCM2835 + bool "Broadcom BCM2835 camera interface driver" +- depends on VIDEO_V4L2 && (ARCH_BCM2708 || ARCH_BCM2709 || ARCH_BCM2835) ++ depends on VIDEO_V4L2 && ARCH_BCM2835 + ---help--- + Say Y here to enable camera host interface devices for + Broadcom BCM2835 SoC. This operates over the VCHIQ interface +diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig +index cff8c3df50c4b13d40fd1143eb86a66756bc097c..f34254bc14de8a33bb5922a680331b74f2fae4cb 100644 +--- a/drivers/misc/Kconfig ++++ b/drivers/misc/Kconfig +@@ -12,7 +12,7 @@ config SENSORS_LIS3LV02D + + config BCM2835_SMI + tristate "Broadcom 283x Secondary Memory Interface driver" +- depends on MACH_BCM2708 || MACH_BCM2709 || ARCH_BCM2835 ++ depends on ARCH_BCM2835 + default m + help + Driver for enabling and using Broadcom's Secondary/Slow Memory Interface. +diff --git a/drivers/mmc/host/Kconfig b/drivers/mmc/host/Kconfig +index 205d836b52e3bbcf8956fec98072c6ee7804a403..87d251e93913b216359383812cae196e91bf6cfb 100644 +--- a/drivers/mmc/host/Kconfig ++++ b/drivers/mmc/host/Kconfig +@@ -6,7 +6,7 @@ comment "MMC/SD/SDIO Host Controller Drivers" + + config MMC_BCM2835 + tristate "MMC support on BCM2835" +- depends on MACH_BCM2708 || MACH_BCM2709 || ARCH_BCM2835 ++ depends on ARCH_BCM2835 + help + This selects the MMC Interface on BCM2835. + +@@ -35,7 +35,7 @@ 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 ARCH_BCM2835 + help + This selects the SDHost controller on BCM2835/6. + +diff --git a/drivers/mtd/nand/Kconfig b/drivers/mtd/nand/Kconfig +index b6a0529b2c15f37983169e3429b67bedb71fb14e..7825a51f7a4fee6468d16debab661fa3d210daee 100644 +--- a/drivers/mtd/nand/Kconfig ++++ b/drivers/mtd/nand/Kconfig +@@ -43,7 +43,7 @@ config MTD_SM_COMMON + + config MTD_NAND_BCM2835_SMI + tristate "Use Broadcom's Secondary Memory Interface as a NAND controller (BCM283x)" +- depends on (MACH_BCM2708 || MACH_BCM2709 || ARCH_BCM2835) && BCM2835_SMI && MTD_NAND ++ depends on BCM2835_SMI + default m + help + Uses the BCM2835's SMI peripheral as a NAND controller. +diff --git a/drivers/pwm/Kconfig b/drivers/pwm/Kconfig +index 549cf7a786e27e19863ec0ad53a8b2836afd0c2a..80a566a00d0437dcc8fca7715c1109e7c2d35f67 100644 +--- a/drivers/pwm/Kconfig ++++ b/drivers/pwm/Kconfig +@@ -95,7 +95,7 @@ config PWM_BCM_KONA + + config PWM_BCM2835 + tristate "BCM2835 PWM support" +- depends on ARCH_BCM2835 || ARCH_BCM2708 || ARCH_BCM2709 ++ depends on ARCH_BCM2835 + help + PWM framework driver for BCM2835 controller (Raspberry Pi) + +diff --git a/drivers/soc/bcm/Kconfig b/drivers/soc/bcm/Kconfig +index 7d11a44f36d2e6f8697773cd49a72e53bca3a5a0..a39b0d58ddd0fdf0ac1cc7295f8aafb12546e226 100644 +--- a/drivers/soc/bcm/Kconfig ++++ b/drivers/soc/bcm/Kconfig +@@ -2,7 +2,7 @@ menu "Broadcom SoC drivers" + + config RASPBERRYPI_POWER + bool "Raspberry Pi power domain driver" +- depends on ARCH_BCM2835 || ARCH_BCM2708 || ARCH_BCM2709 || (COMPILE_TEST && OF) ++ depends on ARCH_BCM2835 || (COMPILE_TEST && OF) + depends on RASPBERRYPI_FIRMWARE=y + select PM_GENERIC_DOMAINS if PM + help +diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig +index 4b09be74af155c2a6e0590a6380242db40e6f914..d6fb8d4b778672fd006446c0eab710d35f6e6e3a 100644 +--- a/drivers/spi/Kconfig ++++ b/drivers/spi/Kconfig +@@ -94,7 +94,7 @@ config SPI_AXI_SPI_ENGINE + config SPI_BCM2835 + tristate "BCM2835 SPI controller" + depends on GPIOLIB +- depends on ARCH_BCM2835 || ARCH_BCM2708 || ARCH_BCM2709 || COMPILE_TEST ++ depends on ARCH_BCM2835 || COMPILE_TEST + help + This selects a driver for the Broadcom BCM2835 SPI master. + +@@ -105,7 +105,7 @@ config SPI_BCM2835 + + config SPI_BCM2835AUX + tristate "BCM2835 SPI auxiliary controller" +- depends on ((ARCH_BCM2835 || ARCH_BCM2708 || ARCH_BCM2709) && GPIOLIB) || COMPILE_TEST ++ depends on (ARCH_BCM2835 && GPIOLIB) || COMPILE_TEST + help + This selects a driver for the Broadcom BCM2835 SPI aux master. + +diff --git a/drivers/tty/serial/8250/Kconfig b/drivers/tty/serial/8250/Kconfig +index 748098f900d3474b5d535b24da76ad06e9690335..7c6f7afca5ddeed7b25fa6272246fc539bf31b04 100644 +--- a/drivers/tty/serial/8250/Kconfig ++++ b/drivers/tty/serial/8250/Kconfig +@@ -291,7 +291,7 @@ config SERIAL_8250_ACORN + + config SERIAL_8250_BCM2835AUX + tristate "BCM2835 auxiliar mini UART support" +- depends on ARCH_BCM2708 || ARCH_BCM2709 || ARCH_BCM2835 || COMPILE_TEST ++ depends on ARCH_BCM2835 || COMPILE_TEST + depends on SERIAL_8250 && SERIAL_8250_SHARE_IRQ + help + Support for the BCM2835 auxiliar mini UART. +diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig +index 9a28f1fdf93a79104049c03ed51abc31d34165d5..1bffe006ca9a843e2e71bc1a461a2d67e97480c0 100644 +--- a/drivers/watchdog/Kconfig ++++ b/drivers/watchdog/Kconfig +@@ -1440,7 +1440,7 @@ config BCM63XX_WDT + + config BCM2835_WDT + tristate "Broadcom BCM2835 hardware watchdog" +- depends on ARCH_BCM2835 || ARCH_BCM2708 || ARCH_BCM2709 ++ depends on ARCH_BCM2835 + select WATCHDOG_CORE + help + Watchdog driver for the built in watchdog hardware in Broadcom +diff --git a/sound/arm/Kconfig b/sound/arm/Kconfig +index 8883c2f3a3269742e2bf6fc995643fb282f3509a..02b6d263035ca18c9ce53229369dfb00915c260b 100644 +--- a/sound/arm/Kconfig ++++ b/sound/arm/Kconfig +@@ -34,8 +34,7 @@ config SND_PXA2XX_AC97 + + config SND_BCM2835 + tristate "BCM2835 ALSA driver" +- depends on (ARCH_BCM2708 || ARCH_BCM2709 || ARCH_BCM2835) \ +- && BCM2708_VCHIQ && SND ++ depends on ARCH_BCM2835 && BCM2708_VCHIQ && SND + select SND_PCM + help + Say Y or M if you want to support BCM2835 Alsa pcm card driver +diff --git a/sound/soc/bcm/Kconfig b/sound/soc/bcm/Kconfig +index aed7b47d8736ea3fb1810b0c77916855082f3b2d..d024377e8450fb5402dcb5ea27161f774b04a8ec 100644 +--- a/sound/soc/bcm/Kconfig ++++ b/sound/soc/bcm/Kconfig +@@ -1,6 +1,6 @@ + config SND_BCM2835_SOC_I2S + tristate "SoC Audio support for the Broadcom BCM2835 I2S module" +- depends on ARCH_BCM2835 || MACH_BCM2708 || MACH_BCM2709 || COMPILE_TEST ++ depends on ARCH_BCM2835 || COMPILE_TEST + select SND_SOC_GENERIC_DMAENGINE_PCM + select REGMAP_MMIO + help + +From 9a41750326ecc5a1089d52a5ca16a57b03b1eded Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Fri, 28 Oct 2016 13:55:36 +0100 +Subject: [PATCH 143/147] bcm270x: Use dma-ranges unconditionally on bcm2710 + +See: https://github.com/raspberrypi/linux/pull/1699 + +Signed-off-by: Phil Elwell +--- + arch/arm/boot/dts/bcm2710.dtsi | 4 ---- + 1 file changed, 4 deletions(-) + +diff --git a/arch/arm/boot/dts/bcm2710.dtsi b/arch/arm/boot/dts/bcm2710.dtsi +index 491594c918cf5da94fbb19a606edb0dd9a28c3a9..df1a4ce1cd4e570876b7785b357d6c31f66191a4 100644 +--- a/arch/arm/boot/dts/bcm2710.dtsi ++++ b/arch/arm/boot/dts/bcm2710.dtsi +@@ -9,9 +9,7 @@ + soc { + ranges = <0x7e000000 0x3f000000 0x01000000>, + <0x40000000 0x40000000 0x00040000>; +-#ifdef RPI364 + dma-ranges = <0xc0000000 0x00000000 0x3f000000>; +-#endif + + local_intc: local_intc { + compatible = "brcm,bcm2836-l1-intc"; +@@ -143,9 +141,7 @@ + + &intc { + compatible = "brcm,bcm2836-armctrl-ic"; +-#ifdef RPI364 + reg = <0x7e00b200 0x200>; +-#endif + interrupt-parent = <&local_intc>; + interrupts = <8>; + }; + +From ccf8a90ff33fcc6da99dce23ba08886e742be6ce Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= +Date: Thu, 27 Oct 2016 21:57:56 +0200 +Subject: [PATCH 144/147] BCM270X_DT: Use raspberrypi-power to turn on USB + power +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Use the raspberrypi-power driver to turn on USB power. + +Signed-off-by: Noralf Trønnes +--- + arch/arm/boot/dts/bcm2708-rpi.dtsi | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/arch/arm/boot/dts/bcm2708-rpi.dtsi b/arch/arm/boot/dts/bcm2708-rpi.dtsi +index d85c05901c8f55f822b89c32d198f15559a2b4b0..46cf8602c3b96e477b05b57dbfe5e349930c9d9a 100644 +--- a/arch/arm/boot/dts/bcm2708-rpi.dtsi ++++ b/arch/arm/boot/dts/bcm2708-rpi.dtsi +@@ -103,3 +103,7 @@ + &hdmi { + power-domains = <&power RPI_POWER_DOMAIN_HDMI>; + }; ++ ++&usb { ++ power-domains = <&power RPI_POWER_DOMAIN_USB>; ++}; + +From 1ae1228d385033e1476e2145cfdb274216394cd8 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= +Date: Thu, 27 Oct 2016 21:58:09 +0200 +Subject: [PATCH 145/147] firmware: bcm2835: Don't turn on USB power +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The raspberrypi-power driver is now used to turn on USB power. + +This partly reverts commit: +firmware: bcm2835: Support ARCH_BCM270x + +Signed-off-by: Noralf Trønnes +--- + drivers/firmware/raspberrypi.c | 22 ---------------------- + 1 file changed, 22 deletions(-) + +diff --git a/drivers/firmware/raspberrypi.c b/drivers/firmware/raspberrypi.c +index b980d531b35b9981a88356ef1c8a7b868a85f2b5..3f070bd38a91511c986e3fb114b15bd4ac32634c 100644 +--- a/drivers/firmware/raspberrypi.c ++++ b/drivers/firmware/raspberrypi.c +@@ -185,25 +185,6 @@ rpi_firmware_print_firmware_revision(struct rpi_firmware *fw) + } + } + +-static int raspberrypi_firmware_set_power(struct rpi_firmware *fw, +- u32 domain, bool on) +-{ +- struct { +- u32 domain; +- u32 on; +- } packet; +- int ret; +- +- packet.domain = domain; +- packet.on = on; +- ret = rpi_firmware_property(fw, RPI_FIRMWARE_SET_POWER_STATE, +- &packet, sizeof(packet)); +- if (!ret && packet.on != on) +- ret = -EINVAL; +- +- return ret; +-} +- + static int rpi_firmware_probe(struct platform_device *pdev) + { + struct device *dev = &pdev->dev; +@@ -232,9 +213,6 @@ static int rpi_firmware_probe(struct platform_device *pdev) + + rpi_firmware_print_firmware_revision(fw); + +- if (raspberrypi_firmware_set_power(fw, 3, true)) +- dev_err(dev, "failed to turn on USB power\n"); +- + return 0; + } + + +From e7924c4cfb4a8dcc76539698914e748e4312dc19 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Mon, 31 Oct 2016 17:35:31 +0000 +Subject: [PATCH 146/147] bcm2835: Increase coherent allocation to 1M for + dwc_otg bounce buffers + +--- + arch/arm/mach-bcm/board_bcm2835.c | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +diff --git a/arch/arm/mach-bcm/board_bcm2835.c b/arch/arm/mach-bcm/board_bcm2835.c +index 6ce49dea7856b243b38f180231afd25b57dee729..efbd18020479c1cab40ce680446a4259c62c83cb 100644 +--- a/arch/arm/mach-bcm/board_bcm2835.c ++++ b/arch/arm/mach-bcm/board_bcm2835.c +@@ -22,6 +22,8 @@ + #include + #include + ++#include ++ + static void __init bcm2835_init(void) + { + struct device_node *np = of_find_node_by_path("/system"); +@@ -37,6 +39,12 @@ static void __init bcm2835_init(void) + system_serial_low = val64; + } + ++static void __init bcm2835_init_early(void) ++{ ++ /* dwc_otg needs this for bounce buffers on non-aligned transfers */ ++ init_dma_coherent_pool_size(SZ_1M); ++} ++ + static void __init bcm2835_board_reserve(void) + { + vc_cma_reserve(); +@@ -55,6 +63,7 @@ static const char * const bcm2835_compat[] = { + DT_MACHINE_START(BCM2835, "BCM2835") + .init_machine = bcm2835_init, + .reserve = bcm2835_board_reserve, ++ .init_early = bcm2835_init_early, + .dt_compat = bcm2835_compat + MACHINE_END + +@@ -67,6 +76,7 @@ static const char * const bcm2708_compat[] = { + DT_MACHINE_START(BCM2708, "BCM2708") + .init_machine = bcm2835_init, + .reserve = bcm2835_board_reserve, ++ .init_early = bcm2835_init_early, + .dt_compat = bcm2708_compat, + MACHINE_END + #endif +@@ -80,6 +90,7 @@ static const char * const bcm2709_compat[] = { + DT_MACHINE_START(BCM2709, "BCM2709") + .init_machine = bcm2835_init, + .reserve = bcm2835_board_reserve, ++ .init_early = bcm2835_init_early, + .dt_compat = bcm2709_compat, + MACHINE_END + #endif + +From 0d455ab582c43e749bddf333de9ed04c5893f590 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Mon, 31 Oct 2016 17:35:57 +0000 +Subject: [PATCH 147/147] dwc_otg: Warn if dma_alloc_coherent fails + +--- + drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c b/drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c +index 50aaeacdd12fff93d7a9cf1c54612367406c6bee..e799f15f294706ad7ac328dcb9ce68fbd0e71d38 100644 +--- a/drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c ++++ b/drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c +@@ -270,6 +270,7 @@ static void *dwc_otg_pcd_alloc_buffer(struct usb_ep *usb_ep, unsigned bytes, + } + + buf = dma_alloc_coherent(NULL, bytes, dma, gfp_flags); ++ WARN_ON(!buf); + + /* Check dword alignment */ + if (((int)buf & 0x3UL) != 0) { diff --git a/projects/RPi2/linux/linux.arm.conf b/projects/RPi2/linux/linux.arm.conf index 60091cd3fb..8277f673b0 100644 --- a/projects/RPi2/linux/linux.arm.conf +++ b/projects/RPi2/linux/linux.arm.conf @@ -1,8 +1,10 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/arm 4.8.4 Kernel Configuration +# Linux/arm 4.8.6 Kernel Configuration # CONFIG_ARM=y +CONFIG_ARM_HAS_SG_CHAIN=y +CONFIG_MIGHT_HAVE_PCI=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y CONFIG_HAVE_PROC_CPU=y CONFIG_STACKTRACE_SUPPORT=y @@ -17,8 +19,6 @@ CONFIG_ARCH_SUPPORTS_UPROBES=y CONFIG_FIQ=y CONFIG_VECTORS_BASE=0xffff0000 CONFIG_ARM_PATCH_PHYS_VIRT=y -CONFIG_NEED_MACH_IO_H=y -CONFIG_NEED_MACH_MEMORY_H=y CONFIG_GENERIC_BUG=y CONFIG_PGTABLE_LEVELS=2 CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" @@ -322,9 +322,7 @@ CONFIG_FREEZER=y # System Type # CONFIG_MMU=y -# CONFIG_ARCH_BCM2708 is not set -CONFIG_ARCH_BCM2709=y -# CONFIG_ARCH_MULTIPLATFORM is not set +CONFIG_ARCH_MULTIPLATFORM=y # CONFIG_ARCH_GEMINI is not set # CONFIG_ARCH_EBSA110 is not set # CONFIG_ARCH_EP93XX is not set @@ -344,12 +342,84 @@ CONFIG_ARCH_BCM2709=y # CONFIG_ARCH_S3C24XX is not set # CONFIG_ARCH_DAVINCI is not set # CONFIG_ARCH_OMAP1 is not set -CONFIG_BCM2708_NOL2CACHE=y # -# Broadcom BCM2709 Implementations +# Multiple platform selection # -CONFIG_MACH_BCM2709=y + +# +# CPU Core family selection +# +# CONFIG_ARCH_MULTI_V6 is not set +CONFIG_ARCH_MULTI_V7=y +CONFIG_ARCH_MULTI_V6_V7=y +# CONFIG_ARCH_MULTI_CPU_AUTO is not set +# CONFIG_ARCH_VIRT is not set +# CONFIG_ARCH_MVEBU is not set +# CONFIG_ARCH_ALPINE is not set +# CONFIG_ARCH_ARTPEC is not set +# CONFIG_ARCH_AT91 is not set +CONFIG_ARCH_BCM=y + +# +# IPROC architected SoCs +# +# CONFIG_ARCH_BCM_CYGNUS is not set +# CONFIG_ARCH_BCM_NSP is not set +# CONFIG_ARCH_BCM_5301X is not set + +# +# KONA architected SoCs +# +# CONFIG_ARCH_BCM_281XX is not set +# CONFIG_ARCH_BCM_21664 is not set +# CONFIG_ARCH_BCM_23550 is not set + +# +# Other Architectures +# +CONFIG_ARCH_BCM2835=y +CONFIG_ARCH_BCM2709=y +# CONFIG_ARCH_BCM_63XX is not set +# CONFIG_ARCH_BRCMSTB is not set +# CONFIG_ARCH_BERLIN is not set +# CONFIG_ARCH_DIGICOLOR is not set +# CONFIG_ARCH_HIGHBANK is not set +# CONFIG_ARCH_HISI is not set +# CONFIG_ARCH_KEYSTONE is not set +# CONFIG_ARCH_MESON is not set +# CONFIG_ARCH_MXC is not set +# CONFIG_ARCH_MEDIATEK is not set + +# +# TI OMAP/AM/DM/DRA Family +# +# CONFIG_ARCH_OMAP3 is not set +# CONFIG_ARCH_OMAP4 is not set +# CONFIG_SOC_OMAP5 is not set +# CONFIG_SOC_AM33XX is not set +# CONFIG_SOC_AM43XX is not set +# CONFIG_SOC_DRA7XX is not set +# CONFIG_ARCH_MMP is not set +# CONFIG_ARCH_QCOM is not set +# CONFIG_ARCH_REALVIEW is not set +# CONFIG_ARCH_ROCKCHIP is not set +# CONFIG_ARCH_SOCFPGA is not set +# CONFIG_PLAT_SPEAR is not set +# CONFIG_ARCH_STI is not set +# CONFIG_ARCH_S5PV210 is not set +# CONFIG_ARCH_EXYNOS is not set +# CONFIG_ARCH_RENESAS is not set +# CONFIG_ARCH_SUNXI is not set +# CONFIG_ARCH_SIRF is not set +# CONFIG_ARCH_TANGO is not set +# CONFIG_ARCH_TEGRA is not set +# CONFIG_ARCH_UNIPHIER is not set +# CONFIG_ARCH_U8500 is not set +# CONFIG_ARCH_VEXPRESS is not set +# CONFIG_ARCH_WM8850 is not set +# CONFIG_ARCH_ZX is not set +# CONFIG_ARCH_ZYNQ is not set # # Processor Type @@ -389,14 +459,8 @@ CONFIG_DEBUG_RODATA=y CONFIG_DEBUG_ALIGN_RODATA=y CONFIG_MULTI_IRQ_HANDLER=y # CONFIG_ARM_ERRATA_430973 is not set -# CONFIG_ARM_ERRATA_458693 is not set -# CONFIG_ARM_ERRATA_460075 is not set -# CONFIG_ARM_ERRATA_742230 is not set -# CONFIG_ARM_ERRATA_742231 is not set # CONFIG_ARM_ERRATA_643719 is not set # CONFIG_ARM_ERRATA_720789 is not set -# CONFIG_ARM_ERRATA_743622 is not set -# CONFIG_ARM_ERRATA_751472 is not set # CONFIG_ARM_ERRATA_754322 is not set # CONFIG_ARM_ERRATA_754327 is not set # CONFIG_ARM_ERRATA_764369 is not set @@ -412,6 +476,7 @@ CONFIG_MULTI_IRQ_HANDLER=y # # Bus support # +# CONFIG_PCI is not set # CONFIG_PCI_DOMAINS_GENERIC is not set # CONFIG_PCI_SYSCALL is not set # CONFIG_PCCARD is not set @@ -508,9 +573,9 @@ CONFIG_CMDLINE="root=/dev/ram0 rdinit=/init BOOT_IMAGE=/kernel.img usbcore.autos # CONFIG_CMDLINE_FROM_BOOTLOADER is not set CONFIG_CMDLINE_EXTEND=y # CONFIG_CMDLINE_FORCE is not set -# CONFIG_XIP_KERNEL is not set # CONFIG_CRASH_DUMP is not set -# CONFIG_AUTO_ZRELADDR is not set +CONFIG_AUTO_ZRELADDR=y +# CONFIG_EFI is not set # # CPU Power Management @@ -586,8 +651,13 @@ CONFIG_COREDUMP=y # # CONFIG_SUSPEND is not set # CONFIG_HIBERNATION is not set -# CONFIG_PM is not set +CONFIG_PM=y +# CONFIG_PM_DEBUG is not set # CONFIG_APM_EMULATION is not set +CONFIG_PM_CLK=y +CONFIG_PM_GENERIC_DOMAINS=y +# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set +CONFIG_PM_GENERIC_DOMAINS_OF=y CONFIG_CPU_PM=y CONFIG_ARCH_SUSPEND_POSSIBLE=y # CONFIG_ARM_CPU_SUSPEND is not set @@ -1313,6 +1383,7 @@ CONFIG_ATH9K=m CONFIG_ATH9K_AHB=y # CONFIG_ATH9K_DEBUGFS is not set # CONFIG_ATH9K_DYNACK is not set +# CONFIG_ATH9K_WOW is not set # CONFIG_ATH9K_CHANNEL_CONTEXT is not set CONFIG_ATH9K_PCOEM=y CONFIG_ATH9K_HTC=m @@ -1784,7 +1855,6 @@ CONFIG_PINCONF=y # CONFIG_PINCTRL_SINGLE is not set CONFIG_PINCTRL_BCM2835=y CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y -CONFIG_ARCH_REQUIRE_GPIOLIB=y CONFIG_GPIOLIB=y CONFIG_GPIO_DEVRES=y CONFIG_OF_GPIO=y @@ -2588,6 +2658,7 @@ CONFIG_DVB_AF9033=m # # Graphics support # +# CONFIG_IMX_IPUV3_CORE is not set # CONFIG_DRM is not set # @@ -2978,6 +3049,7 @@ CONFIG_USB_ANNOUNCE_NEW_DEVICES=y # CONFIG_USB_DEFAULT_PERSIST=y # CONFIG_USB_DYNAMIC_MINORS is not set +# CONFIG_USB_OTG is not set # CONFIG_USB_OTG_WHITELIST is not set # CONFIG_USB_OTG_BLACKLIST_HUB is not set # CONFIG_USB_ULPI_BUS is not set @@ -3166,6 +3238,7 @@ CONFIG_MMC_SDHCI_PLTFM=y # CONFIG_MMC_SDHCI_OF_ARASAN is not set # CONFIG_MMC_SDHCI_OF_AT91 is not set # CONFIG_MMC_SDHCI_F_SDH30 is not set +# CONFIG_MMC_SDHCI_IPROC is not set # CONFIG_MMC_SPI is not set # CONFIG_MMC_DW is not set # CONFIG_MMC_VUB300 is not set @@ -3446,9 +3519,11 @@ CONFIG_COMMON_CLK=y # CONFIG_CLKSRC_OF=y CONFIG_CLKSRC_PROBE=y +CONFIG_CLKSRC_MMIO=y +CONFIG_BCM2835_TIMER=y CONFIG_ARM_ARCH_TIMER=y CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y -# CONFIG_ARM_TIMER_SP804 is not set +CONFIG_ARM_TIMER_SP804=y # CONFIG_ATMEL_PIT is not set # CONFIG_SH_TIMER_CMT is not set # CONFIG_SH_TIMER_MTU2 is not set @@ -4159,5 +4234,5 @@ CONFIG_FONT_8x8=y CONFIG_FONT_8x16=y # CONFIG_SG_SPLIT is not set CONFIG_SG_POOL=y -# CONFIG_ARCH_HAS_SG_CHAIN is not set +CONFIG_ARCH_HAS_SG_CHAIN=y # CONFIG_VIRTUALIZATION is not set diff --git a/projects/RPi2/patches/linux/linux-01-RPi_support.patch b/projects/RPi2/patches/linux/linux-01-RPi_support.patch index db3b0e6822..c68b684f75 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 22ad2a514798c9748803e1f6e9d01fa0f9c413ba Mon Sep 17 00:00:00 2001 +From a4af50c1021695afd8d35b00a824d9dcef5b0444 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 27 Apr 2016 17:43:28 +0100 -Subject: [PATCH 001/133] Revert "SUNRPC: Make NFS swap work with multipath" +Subject: [PATCH 001/147] Revert "SUNRPC: Make NFS swap work with multipath" This reverts commit 15001e5a7e1e207b6bd258cd8f187814cd15b6dc. --- @@ -95,10 +95,10 @@ index 66f23b376fa04a91134eddf6d8ee22a2f5de5808..f55fe2b0137e8fbefcd20c336b28ad48 EXPORT_SYMBOL_GPL(rpc_clnt_swap_deactivate); #endif /* CONFIG_SUNRPC_SWAP */ -From d60dea6b48078d26b3aac303045082e2313b3ea0 Mon Sep 17 00:00:00 2001 +From e278f6a69df039c32543d292ae4d5b2bc17c8f86 Mon Sep 17 00:00:00 2001 From: Steve Glendinning Date: Thu, 19 Feb 2015 18:47:12 +0000 -Subject: [PATCH 002/133] smsx95xx: fix crimes against truesize +Subject: [PATCH 002/147] 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. @@ -145,10 +145,10 @@ index dc989a8b5afbd62b07cd65a2fa5edde67d3cc5fb..116680e3089f16e1e3e9113a3b93e62c usbnet_skb_return(dev, ax_skb); } -From 7a8df51375053d0f24027d2d0600627f275e6cdd Mon Sep 17 00:00:00 2001 +From 66f5a0d340b638f19d9a094ef37ea62b8888a98f Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 17 Apr 2015 16:58:45 +0100 -Subject: [PATCH 003/133] smsc95xx: Disable turbo mode by default +Subject: [PATCH 003/147] smsc95xx: Disable turbo mode by default --- drivers/net/usb/smsc95xx.c | 2 +- @@ -168,10 +168,10 @@ index 116680e3089f16e1e3e9113a3b93e62cb78cc1bb..aa4cb43dcd9ba83b042332bc15a4dce6 MODULE_PARM_DESC(turbo_mode, "Enable multiple frames per Rx transaction"); -From 5edee9a8107124ff13f6748d906823f0de13d4c7 Mon Sep 17 00:00:00 2001 +From ddcc944b6565f7f0f0c7d18bf2d2f687bf79bfb1 Mon Sep 17 00:00:00 2001 From: Sam Nazarko Date: Fri, 1 Apr 2016 17:27:21 +0100 -Subject: [PATCH 004/133] add smsc95xx packetsize module_param +Subject: [PATCH 004/147] add smsc95xx packetsize module_param Signed-off-by: Sam Nazarko --- @@ -213,10 +213,10 @@ index aa4cb43dcd9ba83b042332bc15a4dce68affce28..889bdabd9dea6cebccc361aa4ac569d7 netif_dbg(dev, ifup, dev->net, "rx_urb_size=%ld\n", -From 118cc9a01ab37eda968e0568f8f88e051c0f2701 Mon Sep 17 00:00:00 2001 +From a61702e80b9799fcc84d05a4529092fe41be58f4 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 26 Mar 2013 17:26:38 +0000 -Subject: [PATCH 005/133] Allow mac address to be set in smsc95xx +Subject: [PATCH 005/147] Allow mac address to be set in smsc95xx Signed-off-by: popcornmix --- @@ -312,10 +312,10 @@ index 889bdabd9dea6cebccc361aa4ac569d73681396b..d22a2324085fbf61fbd8920362bfc7b9 eth_hw_addr_random(dev->net); netif_dbg(dev, ifup, dev->net, "MAC address set to eth_random_addr\n"); -From d9dbf25a2e3d16e84a93a15b28a8964cc08ad033 Mon Sep 17 00:00:00 2001 +From beb6b7e6346a324b6b2a7739df99de9049d7407e Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 9 Aug 2016 22:19:28 +0100 -Subject: [PATCH 006/133] smsc95xx: Experimental: Enable turbo_mode and +Subject: [PATCH 006/147] smsc95xx: Experimental: Enable turbo_mode and packetsize=2560 by default See: http://forum.kodi.tv/showthread.php?tid=285288 @@ -346,10 +346,10 @@ index d22a2324085fbf61fbd8920362bfc7b9f72bebe3..c846c55075387398d9bcb0957e31f5c8 MODULE_PARM_DESC(packetsize, "Override the RX URB packet size"); -From 71e2a1712058109a030244dcc73e8a77e1ce9e1b Mon Sep 17 00:00:00 2001 +From c1b6d1d2b148ae8b0f59c707c0089a3f4748fda0 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 9 Mar 2016 13:28:24 +0000 -Subject: [PATCH 007/133] serial: Take care starting a hung-up tty's port +Subject: [PATCH 007/147] 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), @@ -377,10 +377,10 @@ index 2f44e20136545162d15ee9a39c2eae38352580d1..6b0518ce13ad210b888b73dd6c02a555 return 0; } -From 4b865496e5f0c2847749ed18e987b9edbccd7bdf Mon Sep 17 00:00:00 2001 +From 63ff5aacb1f6a7d2ccff35dbfcb379332db518b9 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 13 Mar 2015 12:43:36 +0000 -Subject: [PATCH 008/133] Protect __release_resource against resources without +Subject: [PATCH 008/147] Protect __release_resource against resources without parents Without this patch, removing a device tree overlay can crash here. @@ -408,10 +408,10 @@ index 9b5f04404152c296af3a96132f27cfc80ffa9af9..f8a9af6e6b915812be2ba2c1c2b40106 for (;;) { tmp = *p; -From 7b2fb7ebb7971e25f8d3097f5b66e42afac17efd Mon Sep 17 00:00:00 2001 +From 7dee84d113ad3984275aa5c9947b9671868b054c Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Thu, 18 Dec 2014 16:07:15 -0800 -Subject: [PATCH 009/133] mm: Remove the PFN busy warning +Subject: [PATCH 009/147] mm: Remove the PFN busy warning See commit dae803e165a11bc88ca8dbc07a11077caf97bbcb -- the warning is expected sometimes when using CMA. However, that commit still spams @@ -436,10 +436,10 @@ index a2214c64ed3cd04dceaed7a579f593852e458df1..de26bffb1baa5cffa692fcb12b478263 goto done; } -From 8a3e2fa3b57d6992d12a636715cd108f093499f7 Mon Sep 17 00:00:00 2001 +From 72a13998cef3853972c04ef161e160657e131928 Mon Sep 17 00:00:00 2001 From: Robert Tiemann Date: Mon, 20 Jul 2015 11:01:25 +0200 -Subject: [PATCH 010/133] BCM2835_DT: Fix I2S register map +Subject: [PATCH 010/147] BCM2835_DT: Fix I2S register map --- Documentation/devicetree/bindings/dma/brcm,bcm2835-dma.txt | 4 ++-- @@ -477,10 +477,10 @@ index 65783de0aedf3da79adc36fd077b7a89954ddb6b..a89fe4220fdc3f26f75ee66daf187554 dmas = <&dma 2>, <&dma 3>; -From 3eda77d21eace8c70848f6cc131f2b81a767571b Mon Sep 17 00:00:00 2001 +From 845f05c3ad428a6d00fd1443df129ce809c87243 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 4 Dec 2015 17:41:50 +0000 -Subject: [PATCH 011/133] irq-bcm2836: Prevent spurious interrupts, and trap +Subject: [PATCH 011/147] irq-bcm2836: Prevent spurious interrupts, and trap them early The old arch-specific IRQ macros included a dsb to ensure the @@ -507,10 +507,10 @@ index d96b2c947e74e3edab3917551c64fbd1ced0f34c..93e3f7660c4230c9f1dd3b195958cb49 #endif } else if (stat) { -From e48d7853af14ed499222a918e8d8628956ec985b Mon Sep 17 00:00:00 2001 +From 2d72825126219048d31f47a2ff5591516c78f95e 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 012/133] irqchip: bcm2835: Add FIQ support +Subject: [PATCH 012/147] irqchip: bcm2835: Add FIQ support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -639,10 +639,10 @@ index 44d7c38dde479d771f3552e914bf8c1c1f5019f7..42ff5e6a8e0d532f5b60a1e7af7cc4d9 } -From 9dbf9e9b3970068fb05224536d041a76c4ab7eaa Mon Sep 17 00:00:00 2001 +From 692c02f9867ba3b2fa1c689f117552e685edb6c9 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 013/133] irqchip: irq-bcm2835: Add 2836 FIQ support +Subject: [PATCH 013/147] irqchip: irq-bcm2835: Add 2836 FIQ support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -741,10 +741,10 @@ index 42ff5e6a8e0d532f5b60a1e7af7cc4d941bd5008..eccf6ed025299cb480884f5bcbe77abf for (b = 0; b < NR_BANKS; b++) { for (i = 0; i < bank_irqs[b]; i++) { -From 8e7877b9735a76ac8fa5f4abcfe952ab55bae911 Mon Sep 17 00:00:00 2001 +From c4d120db5f133a08952ea22590b0c0c67eb6a7ab Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 14 Jul 2015 10:26:09 +0100 -Subject: [PATCH 014/133] spidev: Add "spidev" compatible string to silence +Subject: [PATCH 014/147] spidev: Add "spidev" compatible string to silence warning See: https://github.com/raspberrypi/linux/issues/1054 @@ -765,10 +765,10 @@ index 2e05046f866bd01bf87edcdeff0d5b76d4d0aea7..d780491b8013a4e97fa843958964454e }; MODULE_DEVICE_TABLE(of, spidev_dt_ids); -From 7b0af07f6a0af6792b809035f93700ce1f029294 Mon Sep 17 00:00:00 2001 +From badd9feeaa82ab875609b7b0a7bf25efbfaa8035 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 30 Jun 2015 14:12:42 +0100 -Subject: [PATCH 015/133] serial: 8250: Don't crash when nr_uarts is 0 +Subject: [PATCH 015/147] serial: 8250: Don't crash when nr_uarts is 0 --- drivers/tty/serial/8250/8250_core.c | 2 ++ @@ -788,10 +788,10 @@ index dcf43f66404f12d2bd290a30adfe494dd056162e..0fba189c676ded310b92a09c4e7e8f76 for (i = 0; i < nr_uarts; i++) { struct uart_8250_port *up = &serial8250_ports[i]; -From fade6fd9658203524a83cc806dc58001c275b297 Mon Sep 17 00:00:00 2001 +From 67c2058d24c35fcbfc2b8c5f106eac48431dae5c Mon Sep 17 00:00:00 2001 From: notro Date: Thu, 10 Jul 2014 13:59:47 +0200 -Subject: [PATCH 016/133] pinctrl-bcm2835: Set base to 0 give expected gpio +Subject: [PATCH 016/147] pinctrl-bcm2835: Set base to 0 give expected gpio numbering Signed-off-by: Noralf Tronnes @@ -813,10 +813,10 @@ index fa77165fab2c1348163979da507df17e7168c49b..d11e2e4ea189466e686d762cb6c6fef9 .can_sleep = false, }; -From faf52efe1c23d4cfbff42e8bfa4f16caafc3eb0b Mon Sep 17 00:00:00 2001 +From f715cb5504f4fa469703bcb947d79b490e1915bb Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 24 Feb 2015 13:40:50 +0000 -Subject: [PATCH 017/133] pinctrl-bcm2835: Fix interrupt handling for GPIOs +Subject: [PATCH 017/147] pinctrl-bcm2835: Fix interrupt handling for GPIOs 28-31 and 46-53 Contrary to the documentation, the BCM2835 GPIO controller actually has @@ -962,10 +962,10 @@ index d11e2e4ea189466e686d762cb6c6fef9111ecf8e..107ad7d58de8f8a7f55e09c9cdcf7d66 }, }; -From 352f27ed30f1ee6f5700c16141a35e12c7900348 Mon Sep 17 00:00:00 2001 +From 70031a22e92ff2be5c3532683240358eff5dc748 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 26 Feb 2015 09:58:22 +0000 -Subject: [PATCH 018/133] pinctrl-bcm2835: Only request the interrupts listed +Subject: [PATCH 018/147] pinctrl-bcm2835: Only request the interrupts listed in the DTB Although the GPIO controller can generate three interrupts (four counting @@ -992,10 +992,10 @@ index 107ad7d58de8f8a7f55e09c9cdcf7d66fa7ab66b..644bdecbcfcb79d3b84a33769265fca5 pc->irq_data[i].irqgroup = i; -From b1257924703c2b200fbcc692f0a7c76bde3abf5b Mon Sep 17 00:00:00 2001 +From 2cffb96f1be716d7faf8bf834779ee3654664dc6 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 6 May 2016 12:32:47 +0100 -Subject: [PATCH 019/133] pinctrl-bcm2835: Return pins to inputs when freed +Subject: [PATCH 019/147] pinctrl-bcm2835: Return pins to inputs when freed When dynamically unloading overlays, it is important that freed pins are restored to being inputs to prevent functions from being enabled in @@ -1036,10 +1036,10 @@ index 644bdecbcfcb79d3b84a33769265fca5d3d0c9e5..81a66cba2ab0f7e3ae179de7edd10122 .get_function_name = bcm2835_pmx_get_function_name, .get_function_groups = bcm2835_pmx_get_function_groups, -From 91778ecd864c25b0abb37221d7a2f5c709a8b6bf Mon Sep 17 00:00:00 2001 +From d325199f920511b129f6a3f515e3e7b96925d8e6 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 24 Jun 2015 14:10:44 +0100 -Subject: [PATCH 020/133] spi-bcm2835: Support pin groups other than 7-11 +Subject: [PATCH 020/147] 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 @@ -1120,10 +1120,10 @@ index f35cc10772f6670397ea923ad30158270dd68578..5dfe20ffc2866fa6789825016c585175 /* and set up the "mode" and level */ dev_info(&spi->dev, "setting up native-CS%i as GPIO %i\n", -From 52485f1ae81f0f49a789b4fd4038a41c8a6834b0 Mon Sep 17 00:00:00 2001 +From 3b00154095725c4a7fe1ef520c58b2580500bd95 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 1 Jul 2016 22:09:24 +0100 -Subject: [PATCH 021/133] spi-bcm2835: Disable forced software CS +Subject: [PATCH 021/147] spi-bcm2835: Disable forced software CS Select software CS in bcm2708_common.dtsi, and disable the automatic conversion in the driver to allow hardware CS to be re-enabled with an @@ -1157,10 +1157,10 @@ index 5dfe20ffc2866fa6789825016c585175a29705b6..8493474d286f7a1ac6454a22c61c8c2c return 0; } -From 1d3ce1396a5d204e9caec86ff7d7ecf0b0f89e2a Mon Sep 17 00:00:00 2001 +From 2864bf800f6e4b7e528bf08b8b4a010f3df791fc 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 022/133] ARM: bcm2835: Set Serial number and Revision +Subject: [PATCH 022/147] ARM: bcm2835: Set Serial number and Revision MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -1213,10 +1213,10 @@ index 0c1edfc98696da0e0bb7f4a18cdfbcdd27a9795d..8f152266ba9b470df2eaaed9ebcf158e static const char * const bcm2835_compat[] = { -From d4b91e1a5706ee7257b2d7d51e21cb084c864169 Mon Sep 17 00:00:00 2001 +From 6a4aa446e9349b392a25290731dbec76234b3209 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 023/133] dmaengine: bcm2835: Load driver early and support +Subject: [PATCH 023/147] dmaengine: bcm2835: Load driver early and support legacy API MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -1319,10 +1319,10 @@ index e18dc596cf2447fa9ef7e41b62d9396e29043426..80d35f760b4a4a51e60c355a84d538ba MODULE_ALIAS("platform:bcm2835-dma"); MODULE_DESCRIPTION("BCM2835 DMA engine driver"); -From b4bcc7f785a173139bd02f1ad7e9a3fc2ec2fc62 Mon Sep 17 00:00:00 2001 +From 43d2daba968de660dd7c9cdc3bea3198de2ac07d 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 024/133] bcm2835: Add support for uart1 +Subject: [PATCH 024/147] bcm2835: Add support for uart1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -1379,10 +1379,10 @@ index 8f152266ba9b470df2eaaed9ebcf158ed2079834..0ef5cd3d1d6ec420360294acc98d40d6 static const char * const bcm2835_compat[] = { -From 36d0f9a29d1bea6920ea4cc653dcefb473f8bd92 Mon Sep 17 00:00:00 2001 +From e173cc5bb5cc0e60e3cbf7d330668196336a02a3 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 25 Jan 2016 17:25:12 +0000 -Subject: [PATCH 025/133] firmware: Updated mailbox header +Subject: [PATCH 025/147] firmware: Updated mailbox header --- include/soc/bcm2835/raspberrypi-firmware.h | 11 +++++++++++ @@ -1445,10 +1445,10 @@ index 3fb357193f09914fe21f8555a4b8613f74f22bc3..227a107214a02deadcca3db202da265e RPI_FIRMWARE_GET_COMMAND_LINE = 0x00050001, RPI_FIRMWARE_GET_DMA_CHANNELS = 0x00060001, -From 9cba2df5f7561a806e277eb3072e1a7f1fc46acc Mon Sep 17 00:00:00 2001 +From 5650c43fd3b3fd1dd3a19bbaedf590cac1fce8c2 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Tue, 26 Apr 2016 11:44:59 -0700 -Subject: [PATCH 026/133] clk: bcm2835: Mark the VPU clock as critical +Subject: [PATCH 026/147] clk: bcm2835: Mark the VPU clock as critical The VPU clock is also the clock for our AXI bus, so we really can't disable it. This might have happened during boot if, for example, @@ -1464,7 +1464,7 @@ Signed-off-by: Eric Anholt 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/clk/bcm/clk-bcm2835.c b/drivers/clk/bcm/clk-bcm2835.c -index 7a7970865c2d856b6b57113c2bb7e8074140a5dd..d9db03cb3fd84163f320dca6f2e533c61f61b5ad 100644 +index 0fc71cbaa4404bddc1ca603a28a43425a7e5a341..085e5217d3b9f73c312dc7fd510ef55cddb4a27c 100644 --- a/drivers/clk/bcm/clk-bcm2835.c +++ b/drivers/clk/bcm/clk-bcm2835.c @@ -443,6 +443,8 @@ struct bcm2835_clock_data { @@ -1476,7 +1476,7 @@ index 7a7970865c2d856b6b57113c2bb7e8074140a5dd..d9db03cb3fd84163f320dca6f2e533c6 bool is_vpu_clock; bool is_mash_clock; }; -@@ -1230,7 +1232,7 @@ static struct clk *bcm2835_register_clock(struct bcm2835_cprman *cprman, +@@ -1253,7 +1255,7 @@ static struct clk *bcm2835_register_clock(struct bcm2835_cprman *cprman, init.parent_names = parents; init.num_parents = data->num_mux_parents; init.name = data->name; @@ -1485,7 +1485,7 @@ index 7a7970865c2d856b6b57113c2bb7e8074140a5dd..d9db03cb3fd84163f320dca6f2e533c6 if (data->is_vpu_clock) { init.ops = &bcm2835_vpu_clock_clk_ops; -@@ -1649,6 +1651,7 @@ static const struct bcm2835_clk_desc clk_desc_array[] = { +@@ -1672,6 +1674,7 @@ static const struct bcm2835_clk_desc clk_desc_array[] = { .div_reg = CM_VPUDIV, .int_bits = 12, .frac_bits = 8, @@ -1494,10 +1494,10 @@ index 7a7970865c2d856b6b57113c2bb7e8074140a5dd..d9db03cb3fd84163f320dca6f2e533c6 /* clocks with per parent mux */ -From 4192862c24bc31eb92393913ff6bbafdd82dd7b4 Mon Sep 17 00:00:00 2001 +From bfab37b97822e45e9cfb0aed8953839ee8c3b1ab Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 9 May 2016 17:28:18 -0700 -Subject: [PATCH 027/133] clk: bcm2835: Mark GPIO clocks enabled at boot as +Subject: [PATCH 027/147] clk: bcm2835: Mark GPIO clocks enabled at boot as critical. These divide off of PLLD_PER and are used for the ethernet and wifi @@ -1515,10 +1515,10 @@ Signed-off-by: Eric Anholt 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/drivers/clk/bcm/clk-bcm2835.c b/drivers/clk/bcm/clk-bcm2835.c -index d9db03cb3fd84163f320dca6f2e533c61f61b5ad..f6bbe8d5929828048114286ec29a33e02519eab8 100644 +index 085e5217d3b9f73c312dc7fd510ef55cddb4a27c..e527649ee5e32d20cebd762f4badbfca06657a84 100644 --- a/drivers/clk/bcm/clk-bcm2835.c +++ b/drivers/clk/bcm/clk-bcm2835.c -@@ -1234,6 +1234,15 @@ static struct clk *bcm2835_register_clock(struct bcm2835_cprman *cprman, +@@ -1257,6 +1257,15 @@ static struct clk *bcm2835_register_clock(struct bcm2835_cprman *cprman, init.name = data->name; init.flags = data->flags | CLK_IGNORE_UNUSED; @@ -1534,7 +1534,7 @@ index d9db03cb3fd84163f320dca6f2e533c61f61b5ad..f6bbe8d5929828048114286ec29a33e0 if (data->is_vpu_clock) { init.ops = &bcm2835_vpu_clock_clk_ops; } else { -@@ -1708,13 +1717,15 @@ static const struct bcm2835_clk_desc clk_desc_array[] = { +@@ -1731,13 +1740,15 @@ static const struct bcm2835_clk_desc clk_desc_array[] = { .div_reg = CM_GP1DIV, .int_bits = 12, .frac_bits = 12, @@ -1552,84 +1552,10 @@ index d9db03cb3fd84163f320dca6f2e533c61f61b5ad..f6bbe8d5929828048114286ec29a33e0 /* HDMI state machine */ [BCM2835_CLOCK_HSM] = REGISTER_PER_CLK( -From 3513813a98006e6ccbb9efda27643de751b4d3f9 Mon Sep 17 00:00:00 2001 -From: Eric Anholt -Date: Tue, 26 Apr 2016 12:39:45 -0700 -Subject: [PATCH 028/133] clk: bcm2835: Skip PLLC clocks when deciding on a new - clock parent - -If the firmware had set up a clock to source from PLLC, go along with -it. But if we're looking for a new parent, we don't want to switch it -to PLLC because the firmware will force PLLC (and thus the AXI bus -clock) to different frequencies during over-temp/under-voltage, -without notification to Linux. - -On my system, this moves the Linux-enabled HDMI state machine and DSI1 -escape clock over to plld_per from pllc_per. EMMC still ends up on -pllc_per, because the firmware had set it up to use that. - -Signed-off-by: Eric Anholt -Fixes: 41691b8862e2 ("clk: bcm2835: Add support for programming the audio domain clocks") ---- - drivers/clk/bcm/clk-bcm2835.c | 23 +++++++++++++++++++++++ - 1 file changed, 23 insertions(+) - -diff --git a/drivers/clk/bcm/clk-bcm2835.c b/drivers/clk/bcm/clk-bcm2835.c -index f6bbe8d5929828048114286ec29a33e02519eab8..e527649ee5e32d20cebd762f4badbfca06657a84 100644 ---- a/drivers/clk/bcm/clk-bcm2835.c -+++ b/drivers/clk/bcm/clk-bcm2835.c -@@ -1008,16 +1008,28 @@ static int bcm2835_clock_set_rate(struct clk_hw *hw, - return 0; - } - -+static bool -+bcm2835_clk_is_pllc(struct clk_hw *hw) -+{ -+ if (!hw) -+ return false; -+ -+ return strncmp(clk_hw_get_name(hw), "pllc", 4) == 0; -+} -+ - static int bcm2835_clock_determine_rate(struct clk_hw *hw, - struct clk_rate_request *req) - { - struct bcm2835_clock *clock = bcm2835_clock_from_hw(hw); - struct clk_hw *parent, *best_parent = NULL; -+ bool current_parent_is_pllc; - unsigned long rate, best_rate = 0; - unsigned long prate, best_prate = 0; - size_t i; - u32 div; - -+ current_parent_is_pllc = bcm2835_clk_is_pllc(clk_hw_get_parent(hw)); -+ - /* - * Select parent clock that results in the closest but lower rate - */ -@@ -1025,6 +1037,17 @@ static int bcm2835_clock_determine_rate(struct clk_hw *hw, - parent = clk_hw_get_parent_by_index(hw, i); - if (!parent) - continue; -+ -+ /* -+ * Don't choose a PLLC-derived clock as our parent -+ * unless it had been manually set that way. PLLC's -+ * frequency gets adjusted by the firmware due to -+ * over-temp or under-voltage conditions, without -+ * prior notification to our clock consumer. -+ */ -+ if (bcm2835_clk_is_pllc(parent) && !current_parent_is_pllc) -+ continue; -+ - prate = clk_hw_get_rate(parent); - div = bcm2835_clock_choose_div(hw, req->rate, prate, true); - rate = bcm2835_clock_rate_from_divisor(clock, prate, div); - -From a0fff5c58561060aea5d5661cf690f20cee67b59 Mon Sep 17 00:00:00 2001 +From 20f4074103a081f6f62859085ad8c63ed7c26907 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Wed, 1 Jun 2016 12:05:35 -0700 -Subject: [PATCH 029/133] clk: bcm2835: Mark the CM SDRAM clock's parent as +Subject: [PATCH 028/147] clk: bcm2835: Mark the CM SDRAM clock's parent as critical While the SDRAM is being driven by its dedicated PLL most of the time, @@ -1703,10 +1629,10 @@ index e527649ee5e32d20cebd762f4badbfca06657a84..fbf616021704178a9d007219a0ea2a9f &cprman->onecell); } -From 2c8ec9b8aab3846395bcd6a18b9cce69b8d57123 Mon Sep 17 00:00:00 2001 +From a26e2e949802c585bb0e52eca15eb53d530a3d53 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 3 Oct 2016 13:58:40 +0100 -Subject: [PATCH 030/133] Enable upstream BCM2835 auxiliar mini UART support +Subject: [PATCH 029/147] Enable upstream BCM2835 auxiliar mini UART support --- drivers/tty/serial/8250/Kconfig | 2 +- @@ -1726,10 +1652,10 @@ index 7c6f7afca5ddeed7b25fa6272246fc539bf31b04..748098f900d3474b5d535b24da76ad06 help Support for the BCM2835 auxiliar mini UART. -From dd842c1ecd7e8aa67f9eeb74f9dfd2dd5dfb3a22 Mon Sep 17 00:00:00 2001 +From 22746eb2611f0df11273a5683c6843f08c554fc3 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 15 Jun 2016 16:48:41 +0100 -Subject: [PATCH 031/133] rtc: Add SPI alias for pcf2123 driver +Subject: [PATCH 030/147] rtc: Add SPI alias for pcf2123 driver Without this alias, Device Tree won't cause the driver to be loaded. @@ -1749,10 +1675,10 @@ index b4478cc92b55dbd76731ea8ec6a4228677adcebb..6981064d5cbad7d7078b23ce4ed5227e MODULE_LICENSE("GPL"); +MODULE_ALIAS("spi:rtc-pcf2123"); -From 34a4517eeb6e4eaaeb09681d1905cdd91e7b885c Mon Sep 17 00:00:00 2001 +From 078983ce02393115f2586a2192daa662da250fc1 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Tue, 19 Apr 2016 15:55:02 -0700 -Subject: [PATCH 032/133] ARM: bcm2708: Enable building power domain driver. +Subject: [PATCH 031/147] ARM: bcm2708: Enable building power domain driver. Signed-off-by: Eric Anholt --- @@ -1773,10 +1699,10 @@ index a39b0d58ddd0fdf0ac1cc7295f8aafb12546e226..7d11a44f36d2e6f8697773cd49a72e53 select PM_GENERIC_DOMAINS if PM help -From 030e766c1255c016089956c1b735ddd411bdcd79 Mon Sep 17 00:00:00 2001 +From d628172d94f5db1cb8e3447bd5d0646dfe95a88a Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 12 May 2013 12:24:19 +0100 -Subject: [PATCH 033/133] Main bcm2708/bcm2709 linux port +Subject: [PATCH 032/147] Main bcm2708/bcm2709 linux port MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -4301,10 +4227,10 @@ index aa4bfbf129e4585ebb89b25fca4b03c928925022..89f7a3a539b5a1b84ddcf0a1548160c0 mmc_pm_flag_t pm_caps; /* supported pm features */ -From 3590c152bc93eb52713e115ab8a94bdeb4df0e1a Mon Sep 17 00:00:00 2001 +From c7c3a04135c44b5923a487a5bb6e77cca415066d Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 5 Apr 2016 19:40:12 +0100 -Subject: [PATCH 034/133] reboot: Use power off rather than busy spinning when +Subject: [PATCH 033/147] reboot: Use power off rather than busy spinning when halt is requested --- @@ -4327,10 +4253,10 @@ index 3fa867a2aae672755c6ce6448f4148c989dbf964..80dca8dcd6709034b643c6a3f35729e0 /* -From 7c94b0d784d2ac4e6f431a8c138b0070a4210558 Mon Sep 17 00:00:00 2001 +From 5025942b9ae5e098639b318fe7c16a6630db5eab Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 11 Nov 2015 21:01:15 +0000 -Subject: [PATCH 035/133] squash: include ARCH_BCM2708 / ARCH_BCM2709 +Subject: [PATCH 034/147] squash: include ARCH_BCM2708 / ARCH_BCM2709 --- drivers/char/hw_random/Kconfig | 2 +- @@ -4494,10 +4420,10 @@ index d528aaceaad95bc6bae2147ebe66249629d2512e..03a303e52d5fe57bbdd8769d24bca590 select REGMAP_MMIO help -From 803da67aa6257789f65ac74fb4c60216557e56a3 Mon Sep 17 00:00:00 2001 +From 0e37b043e6008b854397be514cfc39ea12e8e7df Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 1 May 2013 19:46:17 +0100 -Subject: [PATCH 036/133] Add dwc_otg driver +Subject: [PATCH 035/147] Add dwc_otg driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -65523,10 +65449,10 @@ index 0000000000000000000000000000000000000000..cdc9963176e5a4a0d5250613b61e26c5 +test_main(); +0; -From 7c7e3f19c99b5bcbba13df411be58f5d47e67b38 Mon Sep 17 00:00:00 2001 +From e191bd94df99006e4ae446d089365240a0a066b5 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 17 Jun 2015 17:06:34 +0100 -Subject: [PATCH 037/133] bcm2708 framebuffer driver +Subject: [PATCH 036/147] bcm2708 framebuffer driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -68985,10 +68911,10 @@ index 3c14e43b82fefe1d32f591d1b2f61d2cd28d0fa8..7626beb6a5bb8df601ddf0f6e6909d1f +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 -From 58cdbb2c5c39e1ad230f57581a38d777776a7454 Mon Sep 17 00:00:00 2001 +From 15691abde28f83698bef6933a1ba3c6b2f33ad94 Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Fri, 22 Nov 2013 14:22:53 +0100 -Subject: [PATCH 038/133] dmaengine: Add support for BCM2708 +Subject: [PATCH 037/147] dmaengine: Add support for BCM2708 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -69610,10 +69536,10 @@ index 0000000000000000000000000000000000000000..c5bfff2765be4606077e6c8af73040ec + +#endif /* _PLAT_BCM2708_DMA_H */ -From 9d4105c8791b3d3ee6a6eaa51879142875166831 Mon Sep 17 00:00:00 2001 +From a5c624f57a5acc7ea245f4f227853004d353627c Mon Sep 17 00:00:00 2001 From: gellert Date: Fri, 15 Aug 2014 16:35:06 +0100 -Subject: [PATCH 039/133] MMC: added alternative MMC driver +Subject: [PATCH 038/147] MMC: added alternative MMC driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -71360,10 +71286,10 @@ index 0000000000000000000000000000000000000000..ceb37930e167f47c9c848e8de757ad09 +MODULE_LICENSE("GPL v2"); +MODULE_AUTHOR("Gellert Weisz"); -From c37a3521e6cd3fe01c3ac774311271bf3c0c49b1 Mon Sep 17 00:00:00 2001 +From e1a45e934c517ef9a714d9ffc31e16c78eaf93d0 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 25 Mar 2015 17:49:47 +0000 -Subject: [PATCH 040/133] Adding bcm2835-sdhost driver, and an overlay to +Subject: [PATCH 039/147] Adding bcm2835-sdhost driver, and an overlay to enable it BCM2835 has two SD card interfaces. This driver uses the other one. @@ -73755,10 +73681,10 @@ index 0000000000000000000000000000000000000000..23dea422182534e248435aeaee3ecb5d +MODULE_LICENSE("GPL v2"); +MODULE_AUTHOR("Phil Elwell"); -From 50067c20afbd42922981343d28894d474e1d7d43 Mon Sep 17 00:00:00 2001 +From e707483b225a17abcde849a17cbdfd058ed89edc Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 11 May 2016 12:50:33 +0100 -Subject: [PATCH 041/133] mmc: Add MMC_QUIRK_ERASE_BROKEN for some cards +Subject: [PATCH 040/147] mmc: Add MMC_QUIRK_ERASE_BROKEN for some cards Some SD cards have been found that corrupt data when small blocks are erased. Add a quirk to indicate that ERASE should not be used, @@ -73787,7 +73713,7 @@ Signed-off-by: Phil Elwell 3 files changed, 41 insertions(+), 4 deletions(-) diff --git a/drivers/mmc/card/block.c b/drivers/mmc/card/block.c -index 2206d4477dbbdb5190906e277124580b600d71e0..8c3c361f24ea675cd3a85d9d2d0124f3793adcc9 100644 +index 17891f17f39d88941990177b21d05479ec708037..c0163b8bdd20c33f65d952f6446d9bd2ca7bb3a6 100644 --- a/drivers/mmc/card/block.c +++ b/drivers/mmc/card/block.c @@ -134,6 +134,13 @@ enum { @@ -73804,7 +73730,7 @@ index 2206d4477dbbdb5190906e277124580b600d71e0..8c3c361f24ea675cd3a85d9d2d0124f3 static inline int mmc_blk_part_switch(struct mmc_card *card, struct mmc_blk_data *md); static int get_card_status(struct mmc_card *card, u32 *status, int retries); -@@ -2572,6 +2579,17 @@ static const struct mmc_fixup blk_fixups[] = +@@ -2573,6 +2580,17 @@ static const struct mmc_fixup blk_fixups[] = MMC_FIXUP("V10016", CID_MANFID_KINGSTON, CID_OEMID_ANY, add_quirk_mmc, MMC_QUIRK_TRIM_BROKEN), @@ -73822,7 +73748,7 @@ index 2206d4477dbbdb5190906e277124580b600d71e0..8c3c361f24ea675cd3a85d9d2d0124f3 END_FIXUP }; -@@ -2579,6 +2597,7 @@ static int mmc_blk_probe(struct mmc_card *card) +@@ -2580,6 +2598,7 @@ static int mmc_blk_probe(struct mmc_card *card) { struct mmc_blk_data *md, *part_md; char cap_str[10]; @@ -73830,7 +73756,7 @@ index 2206d4477dbbdb5190906e277124580b600d71e0..8c3c361f24ea675cd3a85d9d2d0124f3 /* * Check that the card supports the command class(es) we need. -@@ -2586,7 +2605,16 @@ static int mmc_blk_probe(struct mmc_card *card) +@@ -2587,7 +2606,16 @@ static int mmc_blk_probe(struct mmc_card *card) if (!(card->csd.cmdclass & CCC_BLOCK_READ)) return -ENODEV; @@ -73848,7 +73774,7 @@ index 2206d4477dbbdb5190906e277124580b600d71e0..8c3c361f24ea675cd3a85d9d2d0124f3 md = mmc_blk_alloc(card); if (IS_ERR(md)) -@@ -2594,9 +2622,14 @@ static int mmc_blk_probe(struct mmc_card *card) +@@ -2595,9 +2623,14 @@ static int mmc_blk_probe(struct mmc_card *card) string_get_size((u64)get_capacity(md->disk), 512, STRING_UNITS_2, cap_str, sizeof(cap_str)); @@ -73894,10 +73820,10 @@ index d8673ca968ba2d65fb3da39680583ca5152641e4..510c3872929b3267fb6665bb69d26f5a unsigned int erase_shift; /* if erase unit is power 2 */ unsigned int pref_erase; /* in sectors */ -From af44f3c2d5631fe1dd413838cf150f8573829b44 Mon Sep 17 00:00:00 2001 +From 7d1b326d12782751c83a8667b9a381346e9e5b95 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 3 Jul 2013 00:31:47 +0100 -Subject: [PATCH 042/133] cma: Add vc_cma driver to enable use of CMA +Subject: [PATCH 041/147] 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 @@ -75240,10 +75166,10 @@ index 0000000000000000000000000000000000000000..be2819d5d41f9d5ed65daf8eedb94c9e + +#endif /* VC_CMA_H */ -From 2e89eff887d0aad7b4269cb38996187bfe7a8ded Mon Sep 17 00:00:00 2001 +From be0f0447f09e519cadc268d5e544addc3cfccecd Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 26 Mar 2012 22:15:50 +0100 -Subject: [PATCH 043/133] bcm2708: alsa sound driver +Subject: [PATCH 042/147] bcm2708: alsa sound driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -77979,10 +77905,10 @@ index 0000000000000000000000000000000000000000..af3e6eb690113fc32ce9e06bd2f0f294 + +#endif // _VC_AUDIO_DEFS_H_ -From c82f2bb59be5d01c5cafe3f53fb0c4295c2f8917 Mon Sep 17 00:00:00 2001 +From 76c58b748517c00ec318fb862bd5dd03b1778e64 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 2 Jul 2013 23:42:01 +0100 -Subject: [PATCH 044/133] bcm2708 vchiq driver +Subject: [PATCH 043/147] bcm2708 vchiq driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -91347,10 +91273,10 @@ index 0000000000000000000000000000000000000000..b6bfa21155e431e93bfb2c149d324371 + return vchiq_build_time; +} -From 56bcbb1c15897cac27788fb419ec4326c2e323f6 Mon Sep 17 00:00:00 2001 +From abc3e6c51f5a3efb5e41ea209bfd208d683a5d8c Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 17 Jun 2015 16:07:06 +0100 -Subject: [PATCH 045/133] vc_mem: Add vc_mem driver +Subject: [PATCH 044/147] vc_mem: Add vc_mem driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -92355,10 +92281,10 @@ index 0000000000000000000000000000000000000000..20a475377eb3078ea1ecaef2b24efc35 + +#endif /* _VC_MEM_H */ -From 8099c52e8672766bce4142be97b1b3f5ce54e5ab Mon Sep 17 00:00:00 2001 +From b5820bdf78d981ef65ad87f2f01a6ed8c27bc38e Mon Sep 17 00:00:00 2001 From: Tim Gover Date: Tue, 22 Jul 2014 15:41:04 +0100 -Subject: [PATCH 046/133] vcsm: VideoCore shared memory service for BCM2835 +Subject: [PATCH 045/147] vcsm: VideoCore shared memory service for BCM2835 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -96776,10 +96702,10 @@ index 0000000000000000000000000000000000000000..334f36d0d697b047df2922b5f2db67f3 + +#endif /* __VMCS_SM_IOCTL_H__INCLUDED__ */ -From 5246ed7cbe4739c6752264e452f8d7e0bdbc9725 Mon Sep 17 00:00:00 2001 +From 3676bbcced7a440d5f67ec7361553eb47ed6eb5b Mon Sep 17 00:00:00 2001 From: Luke Wren Date: Fri, 21 Aug 2015 23:14:48 +0100 -Subject: [PATCH 047/133] Add /dev/gpiomem device for rootless user GPIO access +Subject: [PATCH 046/147] Add /dev/gpiomem device for rootless user GPIO access Signed-off-by: Luke Wren @@ -97090,10 +97016,10 @@ index 0000000000000000000000000000000000000000..911f5b7393ed48ceed8751f06967ae64 +MODULE_DESCRIPTION("gpiomem driver for accessing GPIO from userspace"); +MODULE_AUTHOR("Luke Wren "); -From 1f79ba972a11655e56296a00226c936c2ec1bf98 Mon Sep 17 00:00:00 2001 +From f7d98fc7e067a2276d2f5ebbd20db617f149d9cd Mon Sep 17 00:00:00 2001 From: Luke Wren Date: Sat, 5 Sep 2015 01:14:45 +0100 -Subject: [PATCH 048/133] Add SMI driver +Subject: [PATCH 047/147] Add SMI driver Signed-off-by: Luke Wren --- @@ -99044,10 +98970,10 @@ index 0000000000000000000000000000000000000000..ee3a75edfc033eeb0d90a687ffb68b10 + +#endif /* BCM2835_SMI_H */ -From eedc98f450f15d5964f3a83be550dd71d79da181 Mon Sep 17 00:00:00 2001 +From 8367c05a30e9624b12d7d3712e6909cf1e215be3 Mon Sep 17 00:00:00 2001 From: Martin Sperl Date: Tue, 26 Apr 2016 14:59:21 +0000 -Subject: [PATCH 049/133] MISC: bcm2835: smi: use clock manager and fix reload +Subject: [PATCH 048/147] MISC: bcm2835: smi: use clock manager and fix reload issues Use clock manager instead of self-made clockmanager. @@ -99217,10 +99143,10 @@ index 63a4ea08b9930a3a31a985f0a1d969b488ed49ec..1261540703127d1d63b9f3c87042c6e5 return 0; } -From 757c8ea3fc3c4ff43b5a3c6bc137917b1bb11097 Mon Sep 17 00:00:00 2001 +From 6ba83eb2c7620c477cd1a666a6b84ba007dbb9a1 Mon Sep 17 00:00:00 2001 From: Luke Wren Date: Sat, 5 Sep 2015 01:16:10 +0100 -Subject: [PATCH 050/133] Add SMI NAND driver +Subject: [PATCH 049/147] Add SMI NAND driver Signed-off-by: Luke Wren --- @@ -99585,10 +99511,10 @@ index 0000000000000000000000000000000000000000..02adda6da18bd0ba9ab19a104975b79d + ("Driver for NAND chips using Broadcom Secondary Memory Interface"); +MODULE_AUTHOR("Luke Wren "); -From 2b78376e267757011c3ace089ab02bc1957ce731 Mon Sep 17 00:00:00 2001 +From 2d577077553d6913a970d0d310f6130698fc7330 Mon Sep 17 00:00:00 2001 From: Aron Szabo Date: Sat, 16 Jun 2012 12:15:55 +0200 -Subject: [PATCH 051/133] lirc: added support for RaspberryPi GPIO +Subject: [PATCH 050/147] 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 @@ -100451,10 +100377,10 @@ index 0000000000000000000000000000000000000000..fb69624ccef00ddbdccf8256d6baf1b1 + +#endif -From 26fec1142057f9ccf3484be0cf47dfccbcdbe464 Mon Sep 17 00:00:00 2001 +From 89567e90863abb9857b09e3fc051df1c0ee80af6 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 3 Jul 2013 00:49:20 +0100 -Subject: [PATCH 052/133] Add cpufreq driver +Subject: [PATCH 051/147] Add cpufreq driver Signed-off-by: popcornmix --- @@ -100716,10 +100642,10 @@ index 0000000000000000000000000000000000000000..3eb9e9326231b08e6ee95ad486485245 +module_init(bcm2835_cpufreq_module_init); +module_exit(bcm2835_cpufreq_module_exit); -From e9b11b676f3d703fe9a2f27cfce5a9fae571c2e4 Mon Sep 17 00:00:00 2001 +From c6c210234adf244ae3d7b353138e6212097efd4e Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 26 Mar 2013 19:24:24 +0000 -Subject: [PATCH 053/133] Added hwmon/thermal driver for reporting core +Subject: [PATCH 052/147] Added hwmon/thermal driver for reporting core temperature. Thanks Dorian MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -100885,10 +100811,10 @@ index 0000000000000000000000000000000000000000..c63fb9f9d143e19612a18fe530c7b2b3 +MODULE_DESCRIPTION("Thermal driver for bcm2835 chip"); +MODULE_LICENSE("GPL"); -From 9fc131b5e21ad6741aabc73fa5a48e80c54ec3ee Mon Sep 17 00:00:00 2001 +From 40cf8b0e804938d25e1b8a6d708e566dc332d622 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 17 Jun 2015 15:44:08 +0100 -Subject: [PATCH 054/133] Add Chris Boot's i2c driver +Subject: [PATCH 053/147] Add Chris Boot's i2c driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -101562,10 +101488,10 @@ index 0000000000000000000000000000000000000000..962f2e5c7455d91bf32925d785f5f16b +MODULE_LICENSE("GPL v2"); +MODULE_ALIAS("platform:" DRV_NAME); -From e13939694965ea45922bb1aac762dd304e29c251 Mon Sep 17 00:00:00 2001 +From 85fd5ef8372d72fd8648d0a2a3238d8d649b9a37 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 055/133] char: broadcom: Add vcio module +Subject: [PATCH 054/147] char: broadcom: Add vcio module MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -101791,10 +101717,10 @@ index 0000000000000000000000000000000000000000..c19bc2075c77879563ef5e59038b5a14 +MODULE_DESCRIPTION("Mailbox userspace access"); +MODULE_LICENSE("GPL"); -From 0c533fb19eccd178d7422816dcf42eb046b2a1c8 Mon Sep 17 00:00:00 2001 +From 6a3a35c240473f724f22581a956cef5c4c208ce0 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 056/133] firmware: bcm2835: Support ARCH_BCM270x +Subject: [PATCH 055/147] firmware: bcm2835: Support ARCH_BCM270x MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -101900,10 +101826,10 @@ index dd506cd3a5b874f9e1acd07efb8cd151bb6145d1..b980d531b35b9981a88356ef1c8a7b86 MODULE_AUTHOR("Eric Anholt "); MODULE_DESCRIPTION("Raspberry Pi firmware driver"); -From a7f5c542ca7327ae83a670b48e808098fecbee7b Mon Sep 17 00:00:00 2001 +From c20b8387cf7daba6d5d8cfca9971ba8d3fb2b0d8 Mon Sep 17 00:00:00 2001 From: Vincent Sanders Date: Wed, 30 Jan 2013 12:45:18 +0000 -Subject: [PATCH 057/133] bcm2835: add v4l2 camera device +Subject: [PATCH 056/147] bcm2835: add v4l2 camera device - Supports raw YUV capture, preview, JPEG and H264. - Uses videobuf2 for data transfer, using dma_buf. @@ -109635,10 +109561,10 @@ index 0000000000000000000000000000000000000000..9d1d11e4a53e510c04a416d92d195a7d + +#endif /* MMAL_VCHIQ_H */ -From 4f3b4755d1fdaf21c2196584897243f480375af6 Mon Sep 17 00:00:00 2001 +From b4ef7cff9216b662c6f8a564e59d2d59975af98a Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 11 May 2015 09:00:42 +0100 -Subject: [PATCH 058/133] scripts: Add mkknlimg and knlinfo scripts from tools +Subject: [PATCH 057/147] scripts: Add mkknlimg and knlinfo scripts from tools repo The Raspberry Pi firmware looks for a trailer on the kernel image to @@ -110150,10 +110076,10 @@ index 0000000000000000000000000000000000000000..78c5845d2f01deb04b477327d83fa606 + return $trailer; +} -From 9aa153fcdf67297ff85cd52e7c9420c782d530df Mon Sep 17 00:00:00 2001 +From 897b7a7e5dbee3c8f31a15787bc72aa152040ec1 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 10 Aug 2015 09:49:15 +0100 -Subject: [PATCH 059/133] scripts/dtc: Update to upstream version 1.4.1 +Subject: [PATCH 058/147] scripts/dtc: Update to upstream version 1.4.1 Includes the new localfixups format. @@ -113004,10 +112930,10 @@ index ad9b05ae698b0495ecbda42ffcf4743555313a27..2595dfda020fd9e03f0beff5006f229d -#define DTC_VERSION "DTC 1.4.1-g53bf130b" +#define DTC_VERSION "DTC 1.4.1-g25efc119" -From 59aa060bf3e8bb828c9a4009877166e90c9bc3a1 Mon Sep 17 00:00:00 2001 +From 1000326aad301ee90d38cfeffbe40248844637d4 Mon Sep 17 00:00:00 2001 From: notro Date: Wed, 9 Jul 2014 14:46:08 +0200 -Subject: [PATCH 060/133] BCM2708: Add core Device Tree support +Subject: [PATCH 059/147] BCM2708: Add core Device Tree support Add the bare minimum needed to boot BCM2708 from a Device Tree. @@ -122836,10 +122762,10 @@ index 0000000000000000000000000000000000000000..8498134fdbb3912e9ce18282b53084d8 + +}; -From e2b767015c0689ec0d0a60b36f9541329a8a3f42 Mon Sep 17 00:00:00 2001 +From cb5beb68e71d20d4ca863ba9edddc02584bc663c Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 24 Aug 2016 16:28:44 +0100 -Subject: [PATCH 061/133] kbuild: Ignore dtco targets when filtering symbols +Subject: [PATCH 060/147] kbuild: Ignore dtco targets when filtering symbols --- scripts/Kbuild.include | 2 +- @@ -122859,10 +122785,10 @@ index 179219845dfcdfbeb586d12c5ec1296095d9fbf4..e0743e44f84188667a0c322e8c3d36f1 esac | tr ";" "\n" | sed -rn 's/^.*=== __KSYM_(.*) ===.*$$/KSYM_\1/p' -From e0e1b2218408e14a9b0671fdba9200ec3e66b010 Mon Sep 17 00:00:00 2001 +From 40b94e61e4965f868cd80228722b1c8cb711472f Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 13 Mar 2015 20:00:21 +0000 -Subject: [PATCH 062/133] BCM270X_DT: Add a .dtbo target, use for overlays +Subject: [PATCH 061/147] 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 @@ -122945,10 +122871,10 @@ index 0a07f9014944ed92a8e2e42983ae43be60b3e471..b1513a7c175885137034b9f7225788c0 # Bzip2 -From 71710ca1cd727834551a5c0cd851831e05ac99ec Mon Sep 17 00:00:00 2001 +From 5367a026c7630fd21e5655e240db0b7961f51455 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 8 Apr 2016 17:43:27 +0100 -Subject: [PATCH 063/133] BCM270X_DT: Don't generate "linux,phandle" props +Subject: [PATCH 062/147] 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 @@ -122974,10 +122900,10 @@ index b1513a7c175885137034b9f7225788c0a7c35027..1d949b7410600dd3b04a3acde8c41cfe -d $(depfile).dtc.tmp $(dtc-tmp) ; \ cat $(depfile).pre.tmp $(depfile).dtc.tmp > $(depfile) -From 3367dcee4ae6fad79183c4943b9f3cbe403aa45b Mon Sep 17 00:00:00 2001 +From 38179d1bdd5d56eb4f650e1fcb03e16a9919f3b0 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 6 Feb 2015 13:50:57 +0000 -Subject: [PATCH 064/133] BCM270x_DT: Add pwr_led, and the required "input" +Subject: [PATCH 063/147] BCM270x_DT: Add pwr_led, and the required "input" trigger The "input" trigger makes the associated GPIO an input. This is to support @@ -123153,10 +123079,10 @@ index 8a3b5d29602ffe665cfb26522180f3a696664371..d067976ddc2f34d5476bcd9321856b1c /* Set LED brightness level * Must not sleep. Use brightness_set_blocking for drivers -From 5ff040fa30a3899c0b24b5b808abd3286943eeba Mon Sep 17 00:00:00 2001 +From 17563d181c440776b9fd48b955692049b256faef Mon Sep 17 00:00:00 2001 From: Siarhei Siamashka Date: Mon, 17 Jun 2013 13:32:11 +0300 -Subject: [PATCH 065/133] fbdev: add FBIOCOPYAREA ioctl +Subject: [PATCH 064/147] fbdev: add FBIOCOPYAREA ioctl Based on the patch authored by Ali Gholami Rudi at https://lkml.org/lkml/2009/7/13/153 @@ -123255,10 +123181,10 @@ index fb795c3b3c178ad3cd7c9e9e4547ffd492bac181..fa72af0c981710fe80bacf4cf6612f6d #define FB_TYPE_PACKED_PIXELS 0 /* Packed Pixels */ #define FB_TYPE_PLANES 1 /* Non interleaved planes */ -From f21804eef6f572ed104ddbd998aa0f35f0af1238 Mon Sep 17 00:00:00 2001 +From d9e798ccdfc952fb773014af8ea17f0761265fc2 Mon Sep 17 00:00:00 2001 From: Harm Hanemaaijer Date: Thu, 20 Jun 2013 20:21:39 +0200 -Subject: [PATCH 066/133] Speed up console framebuffer imageblit function +Subject: [PATCH 065/147] 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 @@ -123467,10 +123393,10 @@ index a2bb276a8b2463eee98eb237c4647bc00cd93601..436494fba15abecb400ef28688466faf start_index, pitch_index); } else -From a33a99a7be2f23ef94e0396abdd8a9981a4e3252 Mon Sep 17 00:00:00 2001 +From cf627c1a74bbb2365793ba9b95b93343b13ee8f8 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 8 May 2013 11:46:50 +0100 -Subject: [PATCH 067/133] enabling the realtime clock 1-wire chip DS1307 and +Subject: [PATCH 066/147] 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 @@ -123720,10 +123646,10 @@ index d58594a3232492e33f1dd4babd3798b03e0f0203..feae94256256316fd9d850c3d83325af unsigned int ext_pullup_enable_pin; unsigned int pullup_duration; -From 3aae96b0bda04b82d6bd4f35de7760f570f5d6ff Mon Sep 17 00:00:00 2001 +From bbacc68e30e1a11a8cebebf48131c2c88f7a2024 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 18 Dec 2013 22:16:19 +0000 -Subject: [PATCH 068/133] config: Enable CONFIG_MEMCG, but leave it disabled +Subject: [PATCH 067/147] config: Enable CONFIG_MEMCG, but leave it disabled (due to memory cost). Enable with cgroup_enable=memory. --- @@ -123773,10 +123699,10 @@ index d6b729beba4930bbb1a1ddc4a6a6b8533bbf94e0..69e8d214f663572319f784fe17032b1e * css_tryget_online_from_dir - get corresponding css from a cgroup dentry * @dentry: directory dentry of interest -From 40be2be146712cebcbaa70e2cd84a384bb1e2ddb Mon Sep 17 00:00:00 2001 +From 01e472c83c0c80ab085a1cdb57e98d2edb61b19f Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 14 Jul 2014 22:02:09 +0100 -Subject: [PATCH 069/133] hid: Reduce default mouse polling interval to 60Hz +Subject: [PATCH 068/147] hid: Reduce default mouse polling interval to 60Hz Reduces overhead when using X --- @@ -123812,10 +123738,10 @@ index ae83af649a607f67239f1a64bf45dd4b5770cc7d..4a7af9d0b910f59d17421ce14138400d ret = -ENOMEM; if (usb_endpoint_dir_in(endpoint)) { -From fb5905311ee0a57d1ebdb5220aa571b63075f203 Mon Sep 17 00:00:00 2001 +From 89d8d2311e4fc8cd51321ff48ba68453b2ad7f23 Mon Sep 17 00:00:00 2001 From: Gordon Hollingworth Date: Tue, 12 May 2015 14:47:56 +0100 -Subject: [PATCH 070/133] rpi-ft5406: Add touchscreen driver for pi LCD display +Subject: [PATCH 069/147] 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 @@ -124110,10 +124036,10 @@ index 0000000000000000000000000000000000000000..b27dbee8f56773dbd2a5503dc864747d +MODULE_DESCRIPTION("Touchscreen driver for memory based FT5406"); +MODULE_LICENSE("GPL"); -From 06a51e0b34869a8059d9f8f0335a8253245da51a Mon Sep 17 00:00:00 2001 +From b332bdfd992d99b87de05b8959216c69bbfec7b5 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 13 Oct 2014 11:47:53 +0100 -Subject: [PATCH 071/133] Improve __copy_to_user and __copy_from_user +Subject: [PATCH 070/147] Improve __copy_to_user and __copy_from_user performance Provide a __copy_from_user that uses memcpy. On BCM2708, use @@ -125669,10 +125595,10 @@ index 6bd1089b07e0960830ed6bd6a8345202b7efd8b0..cd17dd11ebe7bbe00089e70cd2ccea74 static unsigned long noinline __clear_user_memset(void __user *addr, unsigned long n) -From c22b680f44ff3703ab3670bbb801b0a2f0f5c2a7 Mon Sep 17 00:00:00 2001 +From f32c1e5e821f93a2608c9c348a226953767f2dfc Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 25 Jun 2015 12:16:11 +0100 -Subject: [PATCH 072/133] gpio-poweroff: Allow it to work on Raspberry Pi +Subject: [PATCH 071/147] 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 @@ -125707,10 +125633,10 @@ index be3d81ff51cc3f510d85e4eed7a52960e51e7bc1..a030ae9fb1fca325061c093696e82186 "%s: pm_power_off function already registered", __func__); -From 1bb52e6360c88bcb3ae0638fadbee236d50678cf Mon Sep 17 00:00:00 2001 +From 737361dc9e36f0bf100a2858f16d8af95c8c6af8 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 14 Jul 2015 14:32:47 +0100 -Subject: [PATCH 073/133] mfd: Add Raspberry Pi Sense HAT core driver +Subject: [PATCH 072/147] mfd: Add Raspberry Pi Sense HAT core driver --- drivers/input/joystick/Kconfig | 8 + @@ -126575,10 +126501,10 @@ index 0000000000000000000000000000000000000000..56196dc2af10e464a1e3f98b028dca1c + +#endif -From 8d441097e8301ddfe71b411695f277b9e9158c56 Mon Sep 17 00:00:00 2001 +From c68fbf3a29b5f18ecd3d0eb161334aa9248172cc Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Fri, 22 Nov 2013 19:19:08 +0100 -Subject: [PATCH 074/133] ASoC: Add support for HifiBerry DAC +Subject: [PATCH 073/147] ASoC: Add support for HifiBerry DAC This adds a machine driver for the HifiBerry DAC. It is a sound card that can @@ -126752,10 +126678,10 @@ index 0000000000000000000000000000000000000000..29ecc08a227cdd4b3c6141935d0c5d21 +MODULE_DESCRIPTION("ASoC Driver for HifiBerry DAC"); +MODULE_LICENSE("GPL v2"); -From 99b41cf3b303275458ad9360746ddc1e41e8d7b6 Mon Sep 17 00:00:00 2001 +From b4420a1837db44bde6f4252c2f8895003fe0da11 Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Mon, 25 Jan 2016 15:48:59 +0000 -Subject: [PATCH 075/133] ASoC: Add support for Rpi-DAC +Subject: [PATCH 074/147] ASoC: Add support for Rpi-DAC --- sound/soc/bcm/Kconfig | 7 +++ @@ -127039,10 +126965,10 @@ index 0000000000000000000000000000000000000000..afe1b419582aa40c4b2729d242bb13cd +MODULE_AUTHOR("Florian Meier "); +MODULE_LICENSE("GPL v2"); -From 4ba0700ed4024b02ed837e6aa20472d540b642e7 Mon Sep 17 00:00:00 2001 +From 580f59b3b5f090e913694a3fb720d6b851026d07 Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Wed, 15 Jan 2014 21:41:23 +0100 -Subject: [PATCH 076/133] ASoC: wm8804: Implement MCLK configuration options, +Subject: [PATCH 075/147] 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 @@ -127091,10 +127017,10 @@ index 8d914702cae4a3fe2c0ca0599cd1ec79f7322c83..c846716b4ed1027ade5512e8be90801d .dapm_widgets = wm8804_dapm_widgets, .num_dapm_widgets = ARRAY_SIZE(wm8804_dapm_widgets), -From 362d51e6d195b4fd1c24bd3f3cc0c32654f730e3 Mon Sep 17 00:00:00 2001 +From fb1c04f22e67e4e5e3ac880b62d88e076a375478 Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Wed, 15 Jan 2014 21:42:08 +0100 -Subject: [PATCH 077/133] ASoC: BCM:Add support for HiFiBerry Digi. Driver is +Subject: [PATCH 076/147] ASoC: BCM:Add support for HiFiBerry Digi. Driver is based on the patched WM8804 driver. Signed-off-by: Daniel Matuschek @@ -127382,10 +127308,10 @@ index 0000000000000000000000000000000000000000..9840e15d3e2be6396bc3ce6e74749408 +MODULE_DESCRIPTION("ASoC Driver for HifiBerry Digi"); +MODULE_LICENSE("GPL v2"); -From 722a9e44f813b02bda1ebca5765b817cddc0f566 Mon Sep 17 00:00:00 2001 +From a731345091e8cac6184b2393626e16752160298e Mon Sep 17 00:00:00 2001 From: Gordon Garrity Date: Sat, 8 Mar 2014 16:56:57 +0000 -Subject: [PATCH 078/133] Add IQaudIO Sound Card support for Raspberry Pi +Subject: [PATCH 077/147] Add IQaudIO Sound Card support for Raspberry Pi Set a limit of 0dB on Digital Volume Control @@ -127715,10 +127641,10 @@ index 0000000000000000000000000000000000000000..4e8e6dec14bcf4a1ff286c43742d4097 +MODULE_DESCRIPTION("ASoC Driver for IQAudio DAC"); +MODULE_LICENSE("GPL v2"); -From 497b938312ca04558a3ac9b58bbbb009eb4dbbc3 Mon Sep 17 00:00:00 2001 +From 272329421a229c079947265c0240a315944b6239 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 25 Jul 2016 17:06:50 +0100 -Subject: [PATCH 079/133] iqaudio-dac: Compile fix - untested +Subject: [PATCH 078/147] iqaudio-dac: Compile fix - untested --- sound/soc/bcm/iqaudio-dac.c | 6 +++++- @@ -127742,10 +127668,10 @@ index 4e8e6dec14bcf4a1ff286c43742d4097249d6777..aa15bc4b49ca95edec905fddd8fd0a6d if (dapm->dev != codec_dai->dev) return 0; -From 27aca523108059e07b28bd73e49a455d1ad07afe Mon Sep 17 00:00:00 2001 +From 4102ff718c700e8e7f2b33334a30e1f325af05f1 Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Mon, 4 Aug 2014 10:06:56 +0200 -Subject: [PATCH 080/133] Added support for HiFiBerry DAC+ +Subject: [PATCH 079/147] 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. @@ -128374,10 +128300,10 @@ index 047c48953a20cd4075000ac294a17fe59baedcde..090fe0ee08e8765f9edbb62777413bb6 dev_err(dev, "No LRCLK?\n"); return -EINVAL; -From c5a5fb9ed76afba271fde65059904fca4d90bfb2 Mon Sep 17 00:00:00 2001 +From 37e7ddff6e4a2d5f7c0a600705214f45d8aa1c34 Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Mon, 4 Aug 2014 11:09:58 +0200 -Subject: [PATCH 081/133] Added driver for HiFiBerry Amp amplifier add-on board +Subject: [PATCH 080/147] 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. @@ -129209,10 +129135,10 @@ index 0000000000000000000000000000000000000000..8f019e04898754d2f87e9630137be9e8 + +#endif /* _TAS5713_H */ -From f60a9818aba0457dc2b18a9577f9435371a1cdc6 Mon Sep 17 00:00:00 2001 +From bbf443ac198557ce97083a2eec5d379dcb0b9846 Mon Sep 17 00:00:00 2001 From: "Daniel Matuschek (HiFiBerry)" Date: Tue, 26 Jul 2016 19:16:25 +0200 -Subject: [PATCH 082/133] Added HiFiBerry Digi+ Pro driver +Subject: [PATCH 081/147] Added HiFiBerry Digi+ Pro driver Signed-off-by: Daniel Matuschek --- @@ -129320,10 +129246,10 @@ index 9840e15d3e2be6396bc3ce6e74749408cc28c333..52ab9dea2e724c4238986ca53c59c849 ret = snd_soc_register_card(&snd_rpi_hifiberry_digi); -From 5986266b254bf71871c77cbeb734e79c9fc64198 Mon Sep 17 00:00:00 2001 +From cefc2e41425094bc18530f8c5911c6cae87d614c Mon Sep 17 00:00:00 2001 From: Ryan Coe Date: Sat, 31 Jan 2015 18:25:49 -0700 -Subject: [PATCH 083/133] Update ds1307 driver for device-tree support +Subject: [PATCH 082/147] Update ds1307 driver for device-tree support Signed-off-by: Ryan Coe --- @@ -129350,10 +129276,10 @@ index 8e1c5cb6ece6f60619e5cafcea4271e056d96778..f9536679b270a39a4d9639fdbd3420fe .driver = { .name = "rtc-ds1307", -From bb714661d70519e8712d8cc66661093656f58358 Mon Sep 17 00:00:00 2001 +From 0e0b3d3128d115eac8bd7ac736c22ae0fc738d20 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Wed, 25 Mar 2015 09:26:17 +0100 -Subject: [PATCH 084/133] Add driver for rpi-proto +Subject: [PATCH 083/147] 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 @@ -129569,10 +129495,10 @@ index 0000000000000000000000000000000000000000..9db678e885efd63d84d60a098a84ed67 +MODULE_DESCRIPTION("ASoC Driver for Raspberry Pi connected to PROTO board (WM8731)"); +MODULE_LICENSE("GPL"); -From 63319d985ede2f7ef61282f4d747808d93a92b7d Mon Sep 17 00:00:00 2001 +From ddcd9417f7a403c52ea358c52779fe605110b599 Mon Sep 17 00:00:00 2001 From: Jan Grulich Date: Mon, 24 Aug 2015 16:03:47 +0100 -Subject: [PATCH 085/133] RaspiDAC3 support +Subject: [PATCH 084/147] RaspiDAC3 support Signed-off-by: Jan Grulich @@ -129815,10 +129741,10 @@ index 0000000000000000000000000000000000000000..dd9eeea2af0382307f437e6db09d1546 +MODULE_DESCRIPTION("ASoC Driver for RaspiDAC Rev.3x"); +MODULE_LICENSE("GPL v2"); -From 3a182dafc91ca024aee3c64b9bf443cdb516fc71 Mon Sep 17 00:00:00 2001 +From 70c9d6420872f69ec7d5ab2f152e9cbbb7f19d81 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 9 Aug 2016 14:49:23 +0100 -Subject: [PATCH 086/133] tpa6130a2: Add headphone switch control +Subject: [PATCH 085/147] tpa6130a2: Add headphone switch control Signed-off-by: Jan Grulich --- @@ -129927,10 +129853,10 @@ index f1ea052a822e1f584eb55cbc876b8e079e813ccd..3bf0163956c5665683d7950798df527f { struct tpa6130a2_data *data = snd_soc_component_get_drvdata(component); -From d43316c3ff8ea4822df2496be31400e91438fc3e Mon Sep 17 00:00:00 2001 +From bdc944205e23a4a113e49dbf570de4f0101bafd1 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 9 Aug 2016 14:49:29 +0100 -Subject: [PATCH 087/133] Revert "tpa6130a2: Add headphone switch control" +Subject: [PATCH 086/147] Revert "tpa6130a2: Add headphone switch control" This reverts commit 860574af506a7a28782ca373feb880e7846943f9. --- @@ -130039,10 +129965,10 @@ index 3bf0163956c5665683d7950798df527fa1b57b59..f1ea052a822e1f584eb55cbc876b8e07 { struct tpa6130a2_data *data = snd_soc_component_get_drvdata(component); -From cb97e9c6a0b9aaf7ebb6b9c9a11974a6759e5a33 Mon Sep 17 00:00:00 2001 +From 1696716f31b53ba9a9cf0e521ef792f20165d107 Mon Sep 17 00:00:00 2001 From: Aaron Shaw Date: Thu, 7 Apr 2016 21:26:21 +0100 -Subject: [PATCH 088/133] Add Support for JustBoom Audio boards +Subject: [PATCH 087/147] Add Support for JustBoom Audio boards justboom-dac: Adjust for ALSA API change @@ -130496,10 +130422,10 @@ index 0000000000000000000000000000000000000000..91acb666380faa3c0deb2230f8a0f8bb +MODULE_DESCRIPTION("ASoC Driver for JustBoom PI Digi HAT Sound Card"); +MODULE_LICENSE("GPL v2"); -From 552f2030ac9a8a6714494e0cfbb5b6db3ac16913 Mon Sep 17 00:00:00 2001 +From de0659bfb838856c751502e97e13affe2a85b7a3 Mon Sep 17 00:00:00 2001 From: Andrey Grodzovsky Date: Tue, 3 May 2016 22:10:59 -0400 -Subject: [PATCH 089/133] ARM: adau1977-adc: Add basic machine driver for +Subject: [PATCH 088/147] ARM: adau1977-adc: Add basic machine driver for adau1977 codec driver. This commit adds basic support for the codec usage including: Device tree overlay, @@ -130681,10 +130607,10 @@ index 0000000000000000000000000000000000000000..6e2ee027926ee63c89222f75ceb89e3d +MODULE_DESCRIPTION("ASoC Driver for ADAU1977 ADC"); +MODULE_LICENSE("GPL v2"); -From dbdab3a61d86bb349e8303007338c9e9068120e2 Mon Sep 17 00:00:00 2001 +From 3644ed3253d6670362751df22e99b874d68a87bb Mon Sep 17 00:00:00 2001 From: Matt Flax Date: Mon, 16 May 2016 21:36:31 +1000 -Subject: [PATCH 090/133] New AudioInjector.net Pi soundcard with low jitter +Subject: [PATCH 089/147] New AudioInjector.net Pi soundcard with low jitter audio in and out. Contains the sound/soc/bcm ALSA machine driver and necessary alterations to the Kconfig and Makefile. @@ -130933,10 +130859,10 @@ index 0000000000000000000000000000000000000000..5ff0985e07efb96b95634a65995f09f7 +MODULE_ALIAS("platform:audioinjector-pi-soundcard"); + -From 917a96d289cab81fea006276c07deef0bc594c3f Mon Sep 17 00:00:00 2001 +From a4e6032dba3a007474c3e20280d494c876140a3d Mon Sep 17 00:00:00 2001 From: DigitalDreamtime Date: Thu, 30 Jun 2016 18:38:42 +0100 -Subject: [PATCH 091/133] Add IQAudIO Digi WM8804 board support +Subject: [PATCH 090/147] Add IQAudIO Digi WM8804 board support Support IQAudIO Digi board with iqaudio_digi machine driver and iqaudio-digi-wm8804-audio overlay. @@ -131236,10 +131162,10 @@ index 0000000000000000000000000000000000000000..9b6e829bcb5b1762a853775e78163196 +MODULE_DESCRIPTION("ASoC Driver for IQAudIO WM8804 Digi"); +MODULE_LICENSE("GPL v2"); -From 6c9818de78faa595e8dec34921db0f5a3c24dbdd Mon Sep 17 00:00:00 2001 +From 300fa7e3486eaacfb0e21252b22ac240d9bdf4f1 Mon Sep 17 00:00:00 2001 From: escalator2015 Date: Tue, 24 May 2016 16:20:09 +0100 -Subject: [PATCH 092/133] New driver for RRA DigiDAC1 soundcard using WM8741 + +Subject: [PATCH 091/147] New driver for RRA DigiDAC1 soundcard using WM8741 + WM8804 --- @@ -131712,10 +131638,10 @@ index 0000000000000000000000000000000000000000..446796e7e4c14a7d95b2f2a01211d9a0 +MODULE_DESCRIPTION("ASoC Driver for RRA DigiDAC1"); +MODULE_LICENSE("GPL v2"); -From f36e6ef700f5d416745ac40a848d620de89b0fc0 Mon Sep 17 00:00:00 2001 +From 84ad27aa1028b7812b2f74c1a8b23a4f0c4f5cdb Mon Sep 17 00:00:00 2001 From: DigitalDreamtime Date: Sat, 2 Jul 2016 16:26:19 +0100 -Subject: [PATCH 093/133] Add support for Dion Audio LOCO DAC-AMP HAT +Subject: [PATCH 092/147] Add support for Dion Audio LOCO DAC-AMP HAT Using dedicated machine driver and pcm5102a codec driver. @@ -131888,10 +131814,10 @@ index 0000000000000000000000000000000000000000..89e65317512bc774453ac8d0d5b0ff98 +MODULE_DESCRIPTION("ASoC Driver for DionAudio LOCO"); +MODULE_LICENSE("GPL v2"); -From 80b1d272eaf5373aa4aaef1025180e17173724bc Mon Sep 17 00:00:00 2001 +From 3a9b5642c0f49f89fdb4f83c995cd242d6496d8c Mon Sep 17 00:00:00 2001 From: Clive Messer Date: Mon, 19 Sep 2016 14:01:04 +0100 -Subject: [PATCH 094/133] Allo Piano DAC boards: Initial 2 channel (stereo) +Subject: [PATCH 093/147] Allo Piano DAC boards: Initial 2 channel (stereo) support (#1645) Add initial 2 channel (stereo) support for Allo Piano DAC (2.0/2.1) boards, @@ -132098,10 +132024,10 @@ index 0000000000000000000000000000000000000000..8e8e62e5a36a279b425ed4655cfbac99 +MODULE_DESCRIPTION("ALSA ASoC Machine Driver for Allo Piano DAC"); +MODULE_LICENSE("GPL v2"); -From 95f53ad904af8e3b9be9e62f0f84e52b43edd219 Mon Sep 17 00:00:00 2001 +From 0fe0e233834a7947164cb6d01a96994d75880969 Mon Sep 17 00:00:00 2001 From: P33M Date: Wed, 21 Oct 2015 14:55:21 +0100 -Subject: [PATCH 095/133] rpi_display: add backlight driver and overlay +Subject: [PATCH 094/147] 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 @@ -132270,10 +132196,10 @@ index 0000000000000000000000000000000000000000..14a0d9b037395497c1fdae2961feccd5 +MODULE_DESCRIPTION("Raspberry Pi mailbox based Backlight Driver"); +MODULE_LICENSE("GPL"); -From bd6634fc3b4c6b05819371848921eeb7517cf902 Mon Sep 17 00:00:00 2001 +From 4865ed3c59b45b63289b98ff732aa96cc377e4ad Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 23 Feb 2016 19:56:04 +0000 -Subject: [PATCH 096/133] bcm2835-virtgpio: Virtual GPIO driver +Subject: [PATCH 095/147] bcm2835-virtgpio: Virtual GPIO driver Add a virtual GPIO driver that uses the firmware mailbox interface to request that the VPU toggles LEDs. @@ -132499,10 +132425,10 @@ index 0000000000000000000000000000000000000000..f3e0f1620b979e4fa3c7e556eb785ac2 +MODULE_DESCRIPTION("brcmvirt GPIO driver"); +MODULE_ALIAS("platform:brcmvirt-gpio"); -From dd4fa828f6f545fc6dadd4ef4b5d5c82ec117690 Mon Sep 17 00:00:00 2001 +From 3b62ce62c3a8eeef7d50e3cbf457680627719693 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 4 Mar 2016 12:49:09 +0000 -Subject: [PATCH 097/133] DRM_VC4: Allow to be built for ARCH_BCM270x +Subject: [PATCH 096/147] DRM_VC4: Allow to be built for ARCH_BCM270x --- drivers/gpu/drm/vc4/Kconfig | 2 +- @@ -132521,10 +132447,10 @@ index e53df59cb139f25f8e6ae916bca93abf0c49e063..f6e938208b73512f20eab46a383ca91b select DRM_KMS_HELPER select DRM_KMS_CMA_HELPER -From 8044f69ae2b56ea458a20b513f1f2d56e5910d11 Mon Sep 17 00:00:00 2001 +From 20a14552028b3dac925f53afebcfbe5b259a9f69 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 23 Feb 2016 17:26:48 +0000 -Subject: [PATCH 098/133] amba_pl011: Don't use DT aliases for numbering +Subject: [PATCH 097/147] 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 @@ -132553,10 +132479,10 @@ index 8a9e213387a79fcc335caad27520a68edf03f446..4a5a1c5cf9b345e255f4d79714a7ae46 uap->old_cr = 0; uap->port.dev = dev; -From 48e96cdb3fbd584ac2e6b5412ac45318c867fb9a Mon Sep 17 00:00:00 2001 +From 7f7a084613bc66c4d06326fab4e1cbdb67349a23 Mon Sep 17 00:00:00 2001 From: Pantelis Antoniou Date: Wed, 3 Dec 2014 13:23:28 +0200 -Subject: [PATCH 099/133] OF: DT-Overlay configfs interface +Subject: [PATCH 098/147] 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. @@ -132988,10 +132914,10 @@ index 0000000000000000000000000000000000000000..0037e6868a6cda8706c88194c6a4454b +} +late_initcall(of_cfs_init); -From 3e09710fca5b0bd7ae65c8fb8ca8f471d496fcef Mon Sep 17 00:00:00 2001 +From c4a12c0f368ac62c71f241e2a007fef50a0e4a31 Mon Sep 17 00:00:00 2001 From: Cheong2K Date: Fri, 26 Feb 2016 18:20:10 +0800 -Subject: [PATCH 100/133] brcm: adds support for BCM43341 wifi +Subject: [PATCH 099/147] brcm: adds support for BCM43341 wifi --- drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c | 2 ++ @@ -133031,10 +132957,10 @@ index 3cc42bef6245529c37320f0ec6ab5e7b77f1d2f6..2ae9d0c9dbaaab6bc16610ac012039cd #define BRCM_CC_4335_CHIP_ID 0x4335 #define BRCM_CC_4339_CHIP_ID 0x4339 -From 78357f179e557462830725efebc2ffd8b8711d97 Mon Sep 17 00:00:00 2001 +From 5390e78a93ce43d5e73c234fe811d3a7900b259d Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 9 Mar 2016 17:25:59 +0000 -Subject: [PATCH 101/133] brcmfmac: Disable power management +Subject: [PATCH 100/147] 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 @@ -133059,10 +132985,10 @@ index abaf003a5b396f94e891c6569217ffbb595987e1..f6221c20ff8e2c07a9ddb329204cc59c if (!check_vif_up(ifp->vif)) { -From 4504b967e9be672f59852b3ca985b3b667472ffa Mon Sep 17 00:00:00 2001 +From dd1ce01c2721bd6400d9c4ae6c7691ca6d5ea5e8 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 28 Apr 2016 17:13:47 +0100 -Subject: [PATCH 102/133] brcmfmac: Use original country code as a fallback +Subject: [PATCH 101/147] brcmfmac: Use original country code as a fallback Commit 73345fd212980d2e28a5c6d83801c903bd773680: @@ -133121,10 +133047,10 @@ index f6221c20ff8e2c07a9ddb329204cc59ce574117b..12bffe239e9d28ce8f73db48b3f5759f ccreq->country_abbrev[1] = alpha2[1]; ccreq->country_abbrev[2] = 0; -From f4effcdad3727c800a85771a121a7c81cb662bad Mon Sep 17 00:00:00 2001 +From e69aabda86715cce55c8b8cddda7e4d5cfc879e7 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 13 Sep 2016 16:32:37 +0100 -Subject: [PATCH 103/133] brcmfmac: do not use internal roaming engine by +Subject: [PATCH 102/147] brcmfmac: do not use internal roaming engine by default Some evidence of curing disconnects with this disabled, so make it a default. @@ -133148,10 +133074,10 @@ index 3e15d64c64813513bc22202dd9e468588699abb0..4051780f64f44a5ce522babe6c371a1b MODULE_PARM_DESC(roamoff, "Do not use internal roaming engine"); -From 26a7afe4bdd277a8ed282fe6d924ae59b83384c6 Mon Sep 17 00:00:00 2001 +From f517714e4bf668d741543df203c4e4535a93d270 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 31 Aug 2016 17:10:09 +0100 -Subject: [PATCH 104/133] brcmfmac: Change stop_ap sequence +Subject: [PATCH 103/147] brcmfmac: Change stop_ap sequence Patch from Broadcom/Cypress to resolve a customer error @@ -133184,10 +133110,10 @@ index 12bffe239e9d28ce8f73db48b3f5759ffe550162..0c3cecb22763db2db5ccbc1789f50b2b brcmf_fil_iovar_int_set(ifp, "mbss", 0); err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_REGULATORY, -From 2e77cd765f85994a46ca1f64b1c2d638f4eba866 Mon Sep 17 00:00:00 2001 +From d83d64c25aaa6922c6409d7072519ae7b3a661b1 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 17 Dec 2015 13:37:07 +0000 -Subject: [PATCH 105/133] hci_h5: Don't send conf_req when ACTIVE +Subject: [PATCH 104/147] 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. @@ -133210,10 +133136,10 @@ index 0879d64b1caf58afb6e5d494c07d9ab7e7cdf983..5161ab30fd533d50f516bb93d5b9f402 if (H5_HDR_LEN(hdr) > 2) h5->tx_win = (data[2] & 0x07); -From d0bacd8ae2b478be18e0463d630bc46d0a540a22 Mon Sep 17 00:00:00 2001 +From 0bcd78b36798f8e47e741009724395bd89d2fd99 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Fri, 22 Jan 2016 13:06:39 -0800 -Subject: [PATCH 106/133] drm/vc4: Add a debugfs node for tracking execution +Subject: [PATCH 105/147] drm/vc4: Add a debugfs node for tracking execution state. Signed-off-by: Eric Anholt @@ -133236,10 +133162,10 @@ index 245115d49c46a1244ef3e460a03fde397f763de8..94f2154c3685255e2e67d225f77dea37 {"hvs_regs", vc4_hvs_debugfs_regs, 0}, {"crtc0_regs", vc4_crtc_debugfs_regs, 0, (void *)(uintptr_t)0}, diff --git a/drivers/gpu/drm/vc4/vc4_drv.h b/drivers/gpu/drm/vc4/vc4_drv.h -index 428e24919ef11919a027b67225f7145173430d98..3874b838102886dd4111830ce12254ae6c798f4c 100644 +index f696b752886b153c4654c0b8acca3fe46c9136cb..dbe2190f30757d4ec7fa56d03de6e261e7401eb7 100644 --- a/drivers/gpu/drm/vc4/vc4_drv.h +++ b/drivers/gpu/drm/vc4/vc4_drv.h -@@ -464,6 +464,7 @@ void vc4_job_handle_completed(struct vc4_dev *vc4); +@@ -481,6 +481,7 @@ void vc4_job_handle_completed(struct vc4_dev *vc4); int vc4_queue_seqno_cb(struct drm_device *dev, struct vc4_seqno_cb *cb, uint64_t seqno, void (*func)(struct vc4_seqno_cb *cb)); @@ -133248,7 +133174,7 @@ index 428e24919ef11919a027b67225f7145173430d98..3874b838102886dd4111830ce12254ae /* vc4_hdmi.c */ extern struct platform_driver vc4_hdmi_driver; diff --git a/drivers/gpu/drm/vc4/vc4_gem.c b/drivers/gpu/drm/vc4/vc4_gem.c -index b262c5c26f109702572ed613fa0965f06a993ef9..27f42023fa49c7e62e643dc007e9e121efa930f5 100644 +index ae1609e739ef424d99207f830cd2bac41ce71557..26dc4f5b491e2e7fcd1a28dcc8ef0cbe88461851 100644 --- a/drivers/gpu/drm/vc4/vc4_gem.c +++ b/drivers/gpu/drm/vc4/vc4_gem.c @@ -32,6 +32,20 @@ @@ -133273,10 +133199,10 @@ index b262c5c26f109702572ed613fa0965f06a993ef9..27f42023fa49c7e62e643dc007e9e121 vc4_queue_hangcheck(struct drm_device *dev) { -From f64994b0175ade91579e3b337804b4c4661924e8 Mon Sep 17 00:00:00 2001 +From 994c435395b96dd51459aae172fe9b8de0f0007c Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 25 Jan 2016 13:03:33 -0800 -Subject: [PATCH 107/133] drm/vc4: Include vc4_drm.h in uapi in downstream +Subject: [PATCH 106/147] drm/vc4: Include vc4_drm.h in uapi in downstream build. Signed-off-by: Eric Anholt @@ -133297,10 +133223,10 @@ index 9355dd8eff3ba39401dfe37e7fbf7737f0397f11..68828bf586f05a8d9b0a6ab409ee91a7 header-y += vmwgfx_drm.h header-y += msm_drm.h -From 35da78653fd3c928405841ca2e2f36c660d199de Mon Sep 17 00:00:00 2001 +From 3c8d3033afca8aab182da9869d319e14365606f4 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Wed, 14 Oct 2015 11:32:14 -0700 -Subject: [PATCH 108/133] drm/vc4: Force HDMI to connected. +Subject: [PATCH 107/147] drm/vc4: Force HDMI to connected. For some reason on the downstream tree, the HPD GPIO isn't working. @@ -133323,10 +133249,10 @@ index 4452f3631cacea37bbd5dc8a594367631e308adc..3a622f70a077c2ebe214830f5d700cd8 if (gpio_get_value_cansleep(vc4->hdmi->hpd_gpio) ^ vc4->hdmi->hpd_active_low) -From 90d38277d9d9974217927887e330cd6db24479b3 Mon Sep 17 00:00:00 2001 +From 75d03980407e81b671f70db64d5c2eb8701742f9 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 13 Apr 2015 17:16:29 +0100 -Subject: [PATCH 109/133] config: Add default configs +Subject: [PATCH 108/147] config: Add default configs --- arch/arm/configs/bcm2709_defconfig | 1294 +++++++++++++++++++++++++++++++++++ @@ -135945,10 +135871,10 @@ index 0000000000000000000000000000000000000000..cfe21355f7d95326b292be1b018b988f +CONFIG_CRC_ITU_T=y +CONFIG_LIBCRC32C=y -From 8dc615f6120d3b2461fbfbaebb12b6836161e192 Mon Sep 17 00:00:00 2001 +From 0ede8332ea5e3b571cf37fad426991f8ac0fa603 Mon Sep 17 00:00:00 2001 From: Michael Zoran Date: Wed, 24 Aug 2016 03:35:56 -0700 -Subject: [PATCH 110/133] Add arm64 configuration and device tree differences. +Subject: [PATCH 109/147] Add arm64 configuration and device tree differences. Disable MMC_BCM2835_SDHOST and MMC_BCM2835 since these drivers are crashing at the moment. @@ -137351,10 +137277,10 @@ index 0000000000000000000000000000000000000000..1fcde8c1329bbfd329245a8bb1769199 +CONFIG_LIBCRC32C=y +CONFIG_BCM2708_VCHIQ=n -From 13c1b1bef46969e12fe3a56278c1cda9ebea1a57 Mon Sep 17 00:00:00 2001 +From 00a5965015003650f46ae16830020624f085f062 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 5 Oct 2016 16:10:59 +0100 -Subject: [PATCH 111/133] bcm2835-cpufreq: Only report a single frequency when +Subject: [PATCH 110/147] bcm2835-cpufreq: Only report a single frequency when max and min frequencies are the same 4.8 kernel gives EINV error when max and min frequencies are the same (e.g. from using force_turbo=1) @@ -137423,10 +137349,10 @@ index 3eb9e9326231b08e6ee95ad486485245c71cf868..414fbdc10dfbfc6e4bb47870a7af3fd5 /* the CPUFreq driver */ -From 3c603169e9eddab5d8b1c37235a3802ea257071b Mon Sep 17 00:00:00 2001 +From 4b96fd892f5d8beb28ece1053d13a448d9799100 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 7 Oct 2016 12:37:09 +0100 -Subject: [PATCH 112/133] scripts/mkknlimg: Change string for DDT detection +Subject: [PATCH 111/147] scripts/mkknlimg: Change string for DDT detection The old "of_overlay_apply" string does not appear in 4.8 kernel builds. "of_cfs_init" is both present and a more accurate indication of support @@ -137453,10 +137379,10 @@ index 78c5845d2f01deb04b477327d83fa60624f87f98..a21f7e31bc904233e980e66ae3e6337e my $res = try_extract($kernel_file, $tmpfile1); -From 3cd83195169e2473da3f1b0b463525b15b099821 Mon Sep 17 00:00:00 2001 +From cf4eeae824ca15077545b040d3de0f8f64234dc4 Mon Sep 17 00:00:00 2001 From: Herve Jourdain Date: Fri, 20 May 2016 16:02:23 +0800 -Subject: [PATCH 113/133] build: support for .dtbo files for dtb overlays +Subject: [PATCH 112/147] build: support for .dtbo files for dtb overlays Kernel 4.4.6+ on RaspberryPi support .dtbo files for overlays, instead of .dtb. Patch the kernel, which has faulty rules to generate .dtbo the way yocto does @@ -137498,10 +137424,10 @@ index 1d949b7410600dd3b04a3acde8c41cfead15bfa4..1967878a843461c3ff1f473b9a030eb0 -d $(depfile).dtc.tmp $(dtc-tmp) ; \ cat $(depfile).pre.tmp $(depfile).dtc.tmp > $(depfile) -From 22f0fb2b8542920ca9af3add8348d05803d8b276 Mon Sep 17 00:00:00 2001 +From 90575664c517a63fdf4da3875737ce4cf4fd912e Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Thu, 6 Oct 2016 19:42:55 -0700 -Subject: [PATCH 114/133] [media]bcm2835-camera: fix compilation warning/werror +Subject: [PATCH 113/147] [media]bcm2835-camera: fix compilation warning/werror | /a/builder/mnt/build/tmp-glibc/work-shared/raspberrypi3/kernel-source/drivers/media/platform/bcm2835/bcm2835-camera.c:656:17: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types ] @@ -137531,10 +137457,10 @@ index 70f4db2741037381e638d1dda5a95478809eb161..cb5bab642eaab2f60d641801dd0afdac struct bm2835_mmal_dev *dev = vb2_get_drv_priv(vq); unsigned long size; -From 616c5c4cd2030dd22981b5918bddb76a778e7c4a Mon Sep 17 00:00:00 2001 +From 22db6534fde59cad8c8c5be264815e6861672ffc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Sat, 8 Oct 2016 16:26:46 +0200 -Subject: [PATCH 115/133] bcm2709: Drop platform smp and timer init code +Subject: [PATCH 114/147] bcm2709: Drop platform smp and timer init code MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -137709,10 +137635,10 @@ index 90773a30b87abbfda1615326c6faf59b9db6d68e..d4c9d57d78a964fbbf799b534471462d .init_early = bcm2709_init_early, .reserve = board_reserve, -From 37a8cc3aa4b014988237b32c4488a57be94b8ca3 Mon Sep 17 00:00:00 2001 +From b4cbdcee1d87382e855e58fc59f3f04152220269 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Mon, 3 Oct 2016 17:53:15 +0200 -Subject: [PATCH 116/133] BCM270X_DT: Use bcm283x.dtsi, bcm2835.dtsi and +Subject: [PATCH 115/147] BCM270X_DT: Use bcm283x.dtsi, bcm2835.dtsi and bcm2836.dtsi MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -138841,10 +138767,10 @@ index 223bd9627b3dcaac5458909dc59c877eed751ce4..491594c918cf5da94fbb19a606edb0dd +}; +#endif -From 5a13c708c76934bc7483650a218f75dca70fb8c3 Mon Sep 17 00:00:00 2001 +From fa7774975833873689e6e7676e645e829cee79ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 7 Oct 2016 16:50:59 +0200 -Subject: [PATCH 117/133] watchdog: bcm2835: Support setting reboot partition +Subject: [PATCH 116/147] watchdog: bcm2835: Support setting reboot partition MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -138968,10 +138894,10 @@ index 4dddd8298a227d64862f2e92954a465f2e44b3f6..1f545e024422f59280932713e6a1b051 register_restart_handler(&wdt->restart_handler); if (pm_power_off == NULL) -From 9eba7f4bdc01e2d7efb6c1e12d55111e07a2738b Mon Sep 17 00:00:00 2001 +From 030afa45a903debfcccf2fc8dce1e25c3cab8ae4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 7 Oct 2016 17:07:46 +0200 -Subject: [PATCH 118/133] bcm270x: Use watchdog for reboot/poweroff +Subject: [PATCH 117/147] bcm270x: Use watchdog for reboot/poweroff MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -139230,10 +139156,10 @@ index d4c9d57d78a964fbbf799b534471462d3c3b88f1..ed5c5414f7a3ad7284cda881e9e55077 module_param(serial, uint, 0644); -module_param(reboot_part, uint, 0644); -From d3463d34f01707e97ac000c65c2abe276ff54028 Mon Sep 17 00:00:00 2001 +From 216d6b21f0820ad52f15c13d65c8d14e9a6756b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Mon, 10 Oct 2016 17:35:40 +0200 -Subject: [PATCH 119/133] bcm270x: Remove dead files +Subject: [PATCH 118/147] bcm270x: Remove dead files MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -139434,10 +139360,10 @@ index 6aa68260dd866c83527dffece8de483913231fb3..00000000000000000000000000000000 - */ -#define VMALLOC_END (0xff000000) -From 82da69473f3e27c89d26701e9bd2e6e81153a6c6 Mon Sep 17 00:00:00 2001 +From fe42494868c90a4abc3bfd5a3ab5e800d6bf689e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Mon, 10 Oct 2016 17:37:43 +0200 -Subject: [PATCH 120/133] bcm270x: Drop bcm2835-aux-uart hack +Subject: [PATCH 119/147] bcm270x: Drop bcm2835-aux-uart hack MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -139517,10 +139443,10 @@ index ed5c5414f7a3ad7284cda881e9e550777cd29282..9a1ad48d13172856e3ec748db015cb95 system_serial_low = serial; } -From d680b9c559d1cfc467f42695128254d1471cf00e Mon Sep 17 00:00:00 2001 +From 274b9d89a7951612b10f95f304a8bd900d45157a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Mon, 10 Oct 2016 17:39:30 +0200 -Subject: [PATCH 121/133] Revert "bcm2835: Add support for uart1" +Subject: [PATCH 120/147] Revert "bcm2835: Add support for uart1" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -139578,10 +139504,10 @@ index 0ef5cd3d1d6ec420360294acc98d40d698d38d8a..8f152266ba9b470df2eaaed9ebcf158e static const char * const bcm2835_compat[] = { -From 932b2d1bbff9515be1e6e3ec6901c024d40554d4 Mon Sep 17 00:00:00 2001 +From 310e634ea1703b48aac869ffbdcca05da91f7258 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Mon, 10 Oct 2016 17:41:26 +0200 -Subject: [PATCH 122/133] bcm270x: Remove unnecessary of_platform_populate +Subject: [PATCH 121/147] bcm270x: Remove unnecessary of_platform_populate MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -139656,10 +139582,10 @@ index 9a1ad48d13172856e3ec748db015cb95cd110b76..d2762f558f644ac87c56ba9402a638a3 system_serial_low = serial; } -From 8c2512c07ada399a412e22a60b4d568e734b6145 Mon Sep 17 00:00:00 2001 +From 82ba7cbc3452d3bda087321dbdf186b514514a53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Mon, 10 Oct 2016 17:46:27 +0200 -Subject: [PATCH 123/133] bcm270x: Remove 4MB dma coherent pool +Subject: [PATCH 122/147] bcm270x: Remove 4MB dma coherent pool MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -139740,10 +139666,10 @@ index d2762f558f644ac87c56ba9402a638a3c7a26397..d0e43619669e851350c5d9d7bb7e9dd1 .dt_compat = bcm2709_compat, MACHINE_END -From f1128ffff4dd59610e68a74f453ecd02faa72c19 Mon Sep 17 00:00:00 2001 +From 03b217a1f5d0f70ab498f9ce5af219488f7a7ec3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Mon, 10 Oct 2016 19:26:42 +0200 -Subject: [PATCH 124/133] bcm270x: Drop map_io device mapping +Subject: [PATCH 123/147] bcm270x: Drop map_io device mapping MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -140692,10 +140618,10 @@ index de7504bfc20ba24be8707861b8389783860adb77..00000000000000000000000000000000 - */ -#define arch_decomp_wdog() -From 2f9da3eb26ad9794e14751dafe317fcdf1f9f884 Mon Sep 17 00:00:00 2001 +From ec476714f27c47e086cae43736ce588611385e48 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Mon, 10 Oct 2016 19:37:06 +0200 -Subject: [PATCH 125/133] bcm270x: Use DT_MACHINE_START +Subject: [PATCH 124/147] bcm270x: Use DT_MACHINE_START MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -140777,10 +140703,10 @@ index b52d949ee91d96eb7672fbbb4969bfa1e7afc376..2ed1b8a922ed02b9e3545991873af77b ics_if_voip MACH_ICS_IF_VOIP ICS_IF_VOIP 3206 wlf_cragg_6410 MACH_WLF_CRAGG_6410 WLF_CRAGG_6410 3207 -From 73425c95121ff9235ca2221c490841c2441694fe Mon Sep 17 00:00:00 2001 +From 58e4131735311d401d9ae5e3ae9aea4e6c389897 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 11 Oct 2016 17:48:07 +0100 -Subject: [PATCH 126/133] Use DT rather than modules params for board rev and +Subject: [PATCH 125/147] Use DT rather than modules params for board rev and serial --- @@ -140874,10 +140800,10 @@ index 9cf36118e57b3c362de9adcf089425023d4a601d..9f113736627175bdcb362e0eda469e09 -module_param(boardrev, uint, 0644); -module_param(serial, uint, 0644); -From 58670873d8bbc78caa5fb27912b4cce51a7be225 Mon Sep 17 00:00:00 2001 +From 8bc7fdbf0d73e0797b5d0fae6f78be6735320a34 Mon Sep 17 00:00:00 2001 From: Martin Sperl Date: Fri, 2 Sep 2016 16:45:27 +0100 -Subject: [PATCH 127/133] Register the clocks early during the boot process, so +Subject: [PATCH 126/147] Register the clocks early during the boot process, so that special/critical clocks can get enabled early on in the boot process avoiding the risk of disabling a clock, pll_divider or pll when a claiming driver fails to install propperly - maybe it needs to defer. @@ -140923,10 +140849,10 @@ index fbf616021704178a9d007219a0ea2a9f1704f0a6..cbbc8d4ddcffc797268c0ecb6477005f MODULE_AUTHOR("Eric Anholt "); MODULE_DESCRIPTION("BCM2835 clock driver"); -From dce21deb558be888b6a3744ed14c8f096416aa7e Mon Sep 17 00:00:00 2001 +From 2a908551f7bb1c6c0172f639dd9fad7b89b14298 Mon Sep 17 00:00:00 2001 From: Scott Ellis Date: Tue, 27 Sep 2016 04:29:00 -0400 -Subject: [PATCH 128/133] Add Adafruit pitft35 touchscreen support (#1657) +Subject: [PATCH 127/147] Add Adafruit pitft35 touchscreen support (#1657) The dts comes from the Adafruit repository @@ -141131,10 +141057,10 @@ index 952104ab6c4cd0e9d8f7bd5f2fba7a72da75424e..26fa6c2b6b6d745178e666465ba226af CONFIG_FB_TFT_ILI9320=m CONFIG_FB_TFT_ILI9325=m -From 48dbca68f2cb7bb5d72721415c39f2206fd6495c Mon Sep 17 00:00:00 2001 +From 6f7afe8710ea9fc3bf4ef6cd57b717203292d471 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 10 Oct 2016 15:06:20 +0100 -Subject: [PATCH 129/133] BCM270X_DT: Update CM3 to use sdhost interface +Subject: [PATCH 128/147] BCM270X_DT: Update CM3 to use sdhost interface --- arch/arm/boot/dts/bcm2710-rpi-cm3.dts | 9 ++++----- @@ -141170,10 +141096,10 @@ index b5a5ae7747455438f8eabd28e8c11c6aeb0c1ecc..d13e3d4dac4e198c8cac451e3f64ef68 bus-width = <4>; status = "okay"; -From 7ece1f81bf9766f552742e7ec4019cbc10c92535 Mon Sep 17 00:00:00 2001 +From 2c3945297209db3678231d5c64109261c7ff4611 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 11 Oct 2016 18:10:17 +0100 -Subject: [PATCH 130/133] Revert "Register the clocks early during the boot +Subject: [PATCH 129/147] Revert "Register the clocks early during the boot process," This reverts commit bcc804ce3dfd5eb4800c9dd77370da7e7913f77d. @@ -141217,10 +141143,10 @@ index cbbc8d4ddcffc797268c0ecb6477005fa14e228b..fbf616021704178a9d007219a0ea2a9f MODULE_AUTHOR("Eric Anholt "); MODULE_DESCRIPTION("BCM2835 clock driver"); -From 5c9bf74f1c69d59342147bded52718452eda6fa9 Mon Sep 17 00:00:00 2001 +From 3ae99df780c07ea947d98fd330b9d9df2a2aec13 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 12 Oct 2016 15:10:14 +0100 -Subject: [PATCH 131/133] mmc: info (not err) msg on clock probe deferral +Subject: [PATCH 130/147] mmc: info (not err) msg on clock probe deferral --- drivers/mmc/host/bcm2835-mmc.c | 5 ++++- @@ -141262,10 +141188,10 @@ index 23dea422182534e248435aeaee3ecb5da69c0d33..9e55d5ac08b5809c40fe391ae6e685fd } -From 2844dad796a4f9c9dc2157aa7b6011b55a58ce25 Mon Sep 17 00:00:00 2001 +From 6331f4e0b369bb212fc7a4f309b5bd2eb6751cd5 Mon Sep 17 00:00:00 2001 From: Electron752 Date: Sat, 15 Oct 2016 11:49:52 -0700 -Subject: [PATCH 132/133] ARM64: Modify default config to get raspbian to boot +Subject: [PATCH 131/147] ARM64: Modify default config to get raspbian to boot (#1686) 1. Enable emulation of deprecated instructions. @@ -141330,10 +141256,10 @@ index 1fcde8c1329bbfd329245a8bb17691999882ccfc..d7406f5a4620151044b8f716b4d10bb8 CONFIG_MFD_STMPE=y CONFIG_STMPE_SPI=y -From 3c08504053c3b87477b33dde65ede3527f45b32d Mon Sep 17 00:00:00 2001 +From 20e71d135210be9e2c45a44985402f930be5ca3a Mon Sep 17 00:00:00 2001 From: gtrainavicius Date: Sun, 23 Oct 2016 12:06:53 +0300 -Subject: [PATCH 133/133] Support for Blokas Labs pisound board +Subject: [PATCH 132/147] Support for Blokas Labs pisound board --- .../devicetree/bindings/vendor-prefixes.txt | 1 + @@ -142558,3 +142484,2441 @@ index 0000000000000000000000000000000000000000..b156e5793e4c482385dedafd85bbf190 +MODULE_AUTHOR("Giedrius Trainavicius "); +MODULE_DESCRIPTION("ASoC Driver for pisound, http://blokas.io/pisound"); +MODULE_LICENSE("GPL v2"); + +From d1b99c2fe198693ac8a966fd65582abaf2d5d733 Mon Sep 17 00:00:00 2001 +From: Giedrius Trainavicius +Date: Tue, 25 Oct 2016 01:47:20 +0300 +Subject: [PATCH 133/147] FIXUP: pisound: Fix a warning in DEBUG builds + +Also change a macro that enables debug level printing from DEBUG to +PISOUND_DEBUG. +--- + sound/soc/bcm/pisound.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/sound/soc/bcm/pisound.c b/sound/soc/bcm/pisound.c +index b156e5793e4c482385dedafd85bbf190acc8162b..a3cd089a01447bdb6741ed6bba3b21d40061d7df 100644 +--- a/sound/soc/bcm/pisound.c ++++ b/sound/soc/bcm/pisound.c +@@ -55,7 +55,7 @@ static void pisnd_midi_uninit(void); + + #define PISOUND_LOG_PREFIX "pisound: " + +-#ifdef DEBUG ++#ifdef PISOUND_DEBUG + # define printd(...) pr_alert(PISOUND_LOG_PREFIX __VA_ARGS__) + #else + # define printd(...) do {} while (0) +@@ -119,7 +119,7 @@ static void pisnd_midi_recv_callback(void *substream) + while ((n = pisnd_spi_recv(data, sizeof(data)))) { + int res = snd_rawmidi_receive(substream, data, n); + (void)res; +- printd("midi recv 0x%02x, res = %d\n", data, res); ++ printd("midi recv %u bytes, res = %d\n", n, res); + } + } + + +From 019c773638b6525c4099311eb5f0591d2702a177 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= +Date: Wed, 19 Oct 2016 16:25:41 +0200 +Subject: [PATCH 134/147] bcm270x: Remove bcm2708_reboot_mode parameter +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This isn't used anymore now that the watchdog driver does restart/poweroff. + +Signed-off-by: Noralf Trønnes +--- + arch/arm/kernel/process.c | 10 ---------- + 1 file changed, 10 deletions(-) + +diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c +index 0a0332cb13a7475ee0c4d75a97685b7de6475c95..612eb530f33fcd19bc4539facb26fc30a2583979 100644 +--- a/arch/arm/kernel/process.c ++++ b/arch/arm/kernel/process.c +@@ -91,16 +91,6 @@ void arch_cpu_idle_exit(void) + ledtrig_cpu(CPU_LED_IDLE_END); + } + +-char bcm2708_reboot_mode = 'h'; +- +-int __init reboot_setup(char *str) +-{ +- bcm2708_reboot_mode = str[0]; +- return 1; +-} +- +-__setup("reboot=", reboot_setup); +- + void __show_regs(struct pt_regs *regs) + { + unsigned long flags; + +From 3bbebce33cd4df7af988ec21b9d4a2f23fb24388 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= +Date: Wed, 19 Oct 2016 15:54:41 +0200 +Subject: [PATCH 135/147] bcm270x: Remove NEED_MACH_IO_H +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +NEED_MACH_IO_H isn't necessary since we don't have +PC card/PCI/ISA IO space. +The __io macro is only used in the {in,out}[bwl] macros. + +arch/arm/include/asm/io.h will give these defaults now: + +define __io(a) __typesafe_io((a) & IO_SPACE_LIMIT) +define IO_SPACE_LIMIT ((resource_size_t)0) + +This is the same as ARCH_BCM2835. + +Signed-off-by: Noralf Trønnes +--- + arch/arm/Kconfig | 1 - + arch/arm/mach-bcm2708/Kconfig | 1 - + arch/arm/mach-bcm2708/include/mach/io.h | 27 --------------------------- + arch/arm/mach-bcm2709/include/mach/io.h | 27 --------------------------- + 4 files changed, 56 deletions(-) + delete mode 100644 arch/arm/mach-bcm2708/include/mach/io.h + delete mode 100644 arch/arm/mach-bcm2709/include/mach/io.h + +diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig +index 018ee76322d9e013598887c50ebea9628ecb9ee3..962d632c2af85c752b848c3ba7a8f3f3ba32c222 100644 +--- a/arch/arm/Kconfig ++++ b/arch/arm/Kconfig +@@ -355,7 +355,6 @@ config ARCH_BCM2709 + select MIGHT_HAVE_CACHE_L2X0 + select HAVE_SCHED_CLOCK + select NEED_MACH_MEMORY_H +- select NEED_MACH_IO_H + select COMMON_CLK + select ARCH_HAS_CPUFREQ + select GENERIC_CLOCKEVENTS +diff --git a/arch/arm/mach-bcm2708/Kconfig b/arch/arm/mach-bcm2708/Kconfig +index 6eabe844767f7fa9bdc09a897bab83e5149fc0dd..e93df839ab8c6cddb8d784d0af3b827276ba9120 100644 +--- a/arch/arm/mach-bcm2708/Kconfig ++++ b/arch/arm/mach-bcm2708/Kconfig +@@ -4,7 +4,6 @@ menu "Broadcom BCM2708 Implementations" + config MACH_BCM2708 + bool "Broadcom BCM2708 Development Platform" + select NEED_MACH_MEMORY_H +- select NEED_MACH_IO_H + select CPU_V6 + select USE_OF + select ARCH_REQUIRE_GPIOLIB +diff --git a/arch/arm/mach-bcm2708/include/mach/io.h b/arch/arm/mach-bcm2708/include/mach/io.h +deleted file mode 100644 +index e6eb84d71006db417dbd0afc4d08d3b19b09a619..0000000000000000000000000000000000000000 +--- a/arch/arm/mach-bcm2708/include/mach/io.h ++++ /dev/null +@@ -1,27 +0,0 @@ +-/* +- * arch/arm/mach-bcm2708/include/mach/io.h +- * +- * Copyright (C) 2003 ARM Limited +- * +- * This program is free software; you can redistribute it and/or modify +- * it under the terms of the GNU General Public License as published by +- * the Free Software Foundation; either version 2 of the License, or +- * (at your option) any later version. +- * +- * This program is distributed in the hope that it will be useful, +- * but WITHOUT ANY WARRANTY; without even the implied warranty of +- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- * GNU General Public License for more details. +- * +- * You should have received a copy of the GNU General Public License +- * along with this program; if not, write to the Free Software +- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +- */ +-#ifndef __ASM_ARM_ARCH_IO_H +-#define __ASM_ARM_ARCH_IO_H +- +-#define IO_SPACE_LIMIT 0xffffffff +- +-#define __io(a) __typesafe_io(a) +- +-#endif +diff --git a/arch/arm/mach-bcm2709/include/mach/io.h b/arch/arm/mach-bcm2709/include/mach/io.h +deleted file mode 100644 +index e6eb84d71006db417dbd0afc4d08d3b19b09a619..0000000000000000000000000000000000000000 +--- a/arch/arm/mach-bcm2709/include/mach/io.h ++++ /dev/null +@@ -1,27 +0,0 @@ +-/* +- * arch/arm/mach-bcm2708/include/mach/io.h +- * +- * Copyright (C) 2003 ARM Limited +- * +- * This program is free software; you can redistribute it and/or modify +- * it under the terms of the GNU General Public License as published by +- * the Free Software Foundation; either version 2 of the License, or +- * (at your option) any later version. +- * +- * This program is distributed in the hope that it will be useful, +- * but WITHOUT ANY WARRANTY; without even the implied warranty of +- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- * GNU General Public License for more details. +- * +- * You should have received a copy of the GNU General Public License +- * along with this program; if not, write to the Free Software +- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +- */ +-#ifndef __ASM_ARM_ARCH_IO_H +-#define __ASM_ARM_ARCH_IO_H +- +-#define IO_SPACE_LIMIT 0xffffffff +- +-#define __io(a) __typesafe_io(a) +- +-#endif + +From 3adb8088c33a26d20135bb88ecbfda177dc5010a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= +Date: Wed, 19 Oct 2016 16:01:01 +0200 +Subject: [PATCH 136/147] dwc_otg: Pass struct device to dma_alloc*() +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This makes it possible to get the bus address from Device Tree. + +Signed-off-by: Noralf Trønnes +--- + .../usb/host/dwc_common_port/dwc_common_linux.c | 19 +---- + drivers/usb/host/dwc_common_port/dwc_os.h | 18 ++--- + drivers/usb/host/dwc_otg/dwc_otg_hcd.c | 13 ++-- + drivers/usb/host/dwc_otg/dwc_otg_hcd.h | 6 ++ + drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c | 23 ++++-- + drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c | 2 +- + drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c | 3 +- + drivers/usb/host/dwc_otg/dwc_otg_pcd.c | 87 +++++++++++++--------- + drivers/usb/host/dwc_otg/dwc_otg_pcd.h | 7 ++ + drivers/usb/host/dwc_otg/dwc_otg_pcd_if.h | 3 +- + drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c | 3 +- + drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c | 2 +- + 12 files changed, 105 insertions(+), 81 deletions(-) + +diff --git a/drivers/usb/host/dwc_common_port/dwc_common_linux.c b/drivers/usb/host/dwc_common_port/dwc_common_linux.c +index 46646841dda96fb2bed01152de552ccac5f0e5e4..0d641e6da24beeb07109e23847d1d6e81dc7d4ea 100644 +--- a/drivers/usb/host/dwc_common_port/dwc_common_linux.c ++++ b/drivers/usb/host/dwc_common_port/dwc_common_linux.c +@@ -337,27 +337,12 @@ void DWC_DMA_POOL_FREE(dwc_pool_t *pool, void *vaddr, void *daddr) + + void *__DWC_DMA_ALLOC(void *dma_ctx, uint32_t size, dwc_dma_t *dma_addr) + { +-#ifdef xxCOSIM /* Only works for 32-bit cosim */ +- void *buf = dma_alloc_coherent(dma_ctx, (size_t)size, dma_addr, GFP_KERNEL); +-#else +- void *buf = dma_alloc_coherent(dma_ctx, (size_t)size, dma_addr, GFP_KERNEL | GFP_DMA32); +-#endif +- if (!buf) { +- return NULL; +- } +- +- memset(buf, 0, (size_t)size); +- return buf; ++ return dma_zalloc_coherent(dma_ctx, size, dma_addr, GFP_KERNEL | GFP_DMA32); + } + + void *__DWC_DMA_ALLOC_ATOMIC(void *dma_ctx, uint32_t size, dwc_dma_t *dma_addr) + { +- void *buf = dma_alloc_coherent(NULL, (size_t)size, dma_addr, GFP_ATOMIC); +- if (!buf) { +- return NULL; +- } +- memset(buf, 0, (size_t)size); +- return buf; ++ return dma_zalloc_coherent(dma_ctx, size, dma_addr, GFP_ATOMIC); + } + + void __DWC_DMA_FREE(void *dma_ctx, uint32_t size, void *virt_addr, dwc_dma_t dma_addr) +diff --git a/drivers/usb/host/dwc_common_port/dwc_os.h b/drivers/usb/host/dwc_common_port/dwc_os.h +index a2bbe232ffc3b58001d026864c3019792cdf5efa..9a86d299403bd1dfdcdb6532fad702b2b65138d7 100644 +--- a/drivers/usb/host/dwc_common_port/dwc_os.h ++++ b/drivers/usb/host/dwc_common_port/dwc_os.h +@@ -675,9 +675,9 @@ extern void __DWC_FREE(void *mem_ctx, void *addr); + #define DWC_FREE(_addr_) __DWC_FREE(NULL, _addr_) + + # ifdef DWC_LINUX +-#define DWC_DMA_ALLOC(_size_,_dma_) __DWC_DMA_ALLOC(NULL, _size_, _dma_) +-#define DWC_DMA_ALLOC_ATOMIC(_size_,_dma_) __DWC_DMA_ALLOC_ATOMIC(NULL, _size_,_dma_) +-#define DWC_DMA_FREE(_size_,_virt_,_dma_) __DWC_DMA_FREE(NULL, _size_, _virt_, _dma_) ++#define DWC_DMA_ALLOC(_dev, _size_, _dma_) __DWC_DMA_ALLOC(_dev, _size_, _dma_) ++#define DWC_DMA_ALLOC_ATOMIC(_dev, _size_, _dma_) __DWC_DMA_ALLOC_ATOMIC(_dev, _size_, _dma_) ++#define DWC_DMA_FREE(_dev, _size_,_virt_, _dma_) __DWC_DMA_FREE(_dev, _size_, _virt_, _dma_) + # endif + + # if defined(DWC_FREEBSD) || defined(DWC_NETBSD) +@@ -708,12 +708,12 @@ extern void dwc_memory_debug_report(void); + #define DWC_FREE(_addr_) dwc_free_debug(NULL, _addr_, __func__, __LINE__) + + # ifdef DWC_LINUX +-#define DWC_DMA_ALLOC(_size_,_dma_) dwc_dma_alloc_debug(NULL, _size_, \ +- _dma_, __func__, __LINE__) +-#define DWC_DMA_ALLOC_ATOMIC(_size_,_dma_) dwc_dma_alloc_atomic_debug(NULL, _size_, \ +- _dma_, __func__, __LINE__) +-#define DWC_DMA_FREE(_size_,_virt_,_dma_) dwc_dma_free_debug(NULL, _size_, \ +- _virt_, _dma_, __func__, __LINE__) ++#define DWC_DMA_ALLOC(_dev, _size_, _dma_) \ ++ dwc_dma_alloc_debug(_dev, _size_, _dma_, __func__, __LINE__) ++#define DWC_DMA_ALLOC_ATOMIC(_dev, _size_, _dma_) \ ++ dwc_dma_alloc_atomic_debug(_dev, _size_, _dma_, __func__, __LINE__) ++#define DWC_DMA_FREE(_dev, _size_, _virt_, _dma_) \ ++ dwc_dma_free_debug(_dev, _size_, _virt_, _dma_, __func__, __LINE__) + # endif + + # if defined(DWC_FREEBSD) || defined(DWC_NETBSD) +diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c +index 135b611abe08e141c937612ab7baada6b13113fc..027414bb2bf9fc3f3652407724187f3c6dc5ff68 100644 +--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd.c ++++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c +@@ -884,6 +884,7 @@ void dwc_otg_cleanup_fiq_channel(dwc_otg_hcd_t *hcd, uint32_t num) + */ + static void dwc_otg_hcd_free(dwc_otg_hcd_t * dwc_otg_hcd) + { ++ struct device *dev = dwc_otg_hcd_to_dev(dwc_otg_hcd); + int i; + + DWC_DEBUGPL(DBG_HCD, "DWC OTG HCD FREE\n"); +@@ -916,7 +917,7 @@ static void dwc_otg_hcd_free(dwc_otg_hcd_t * dwc_otg_hcd) + + if (dwc_otg_hcd->core_if->dma_enable) { + if (dwc_otg_hcd->status_buf_dma) { +- DWC_DMA_FREE(DWC_OTG_HCD_STATUS_BUF_SIZE, ++ DWC_DMA_FREE(dev, DWC_OTG_HCD_STATUS_BUF_SIZE, + dwc_otg_hcd->status_buf, + dwc_otg_hcd->status_buf_dma); + } +@@ -946,6 +947,7 @@ int init_hcd_usecs(dwc_otg_hcd_t *_hcd); + + int dwc_otg_hcd_init(dwc_otg_hcd_t * hcd, dwc_otg_core_if_t * core_if) + { ++ struct device *dev = dwc_otg_hcd_to_dev(hcd); + int retval = 0; + int num_channels; + int i; +@@ -1041,7 +1043,7 @@ int dwc_otg_hcd_init(dwc_otg_hcd_t * hcd, dwc_otg_core_if_t * core_if) + * for use as transaction bounce buffers in a 2-D array. Our access into this chunk is done by some + * moderately readable array casts. + */ +- hcd->fiq_dmab = DWC_DMA_ALLOC((sizeof(struct fiq_dma_channel) * num_channels), &hcd->fiq_state->dma_base); ++ hcd->fiq_dmab = DWC_DMA_ALLOC(dev, (sizeof(struct fiq_dma_channel) * num_channels), &hcd->fiq_state->dma_base); + DWC_WARN("FIQ DMA bounce buffers: virt = 0x%08x dma = 0x%08x len=%d", + (unsigned int)hcd->fiq_dmab, (unsigned int)hcd->fiq_state->dma_base, + sizeof(struct fiq_dma_channel) * num_channels); +@@ -1092,7 +1094,7 @@ int dwc_otg_hcd_init(dwc_otg_hcd_t * hcd, dwc_otg_core_if_t * core_if) + */ + if (hcd->core_if->dma_enable) { + hcd->status_buf = +- DWC_DMA_ALLOC(DWC_OTG_HCD_STATUS_BUF_SIZE, ++ DWC_DMA_ALLOC(dev, DWC_OTG_HCD_STATUS_BUF_SIZE, + &hcd->status_buf_dma); + } else { + hcd->status_buf = DWC_ALLOC(DWC_OTG_HCD_STATUS_BUF_SIZE); +@@ -1187,6 +1189,7 @@ static void assign_and_init_hc(dwc_otg_hcd_t * hcd, dwc_otg_qh_t * qh) + uint32_t intr_enable; + unsigned long flags; + gintmsk_data_t gintmsk = { .d32 = 0, }; ++ struct device *dev = dwc_otg_hcd_to_dev(hcd); + + qtd = DWC_CIRCLEQ_FIRST(&qh->qtd_list); + +@@ -1381,7 +1384,7 @@ static void assign_and_init_hc(dwc_otg_hcd_t * hcd, dwc_otg_qh_t * qh) + buf_size = 4096; + } + if (!qh->dw_align_buf) { +- qh->dw_align_buf = DWC_DMA_ALLOC_ATOMIC(buf_size, ++ qh->dw_align_buf = DWC_DMA_ALLOC_ATOMIC(dev, buf_size, + &qh->dw_align_buf_dma); + if (!qh->dw_align_buf) { + DWC_ERROR +@@ -1432,7 +1435,7 @@ static void assign_and_init_hc(dwc_otg_hcd_t * hcd, dwc_otg_qh_t * qh) + fiq_fsm_spin_unlock(&hcd->fiq_state->lock); + local_fiq_enable(); + } +- ++ + local_irq_restore(flags); + hc->qh = qh; + } +diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd.h b/drivers/usb/host/dwc_otg/dwc_otg_hcd.h +index 43dbed9fddbf5491bab33cc6e551b99ca8dce7dc..4539cd7b802d3e49ac9a6cb3f1d88b475a1ace16 100644 +--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd.h ++++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd.h +@@ -41,6 +41,7 @@ + #include "dwc_list.h" + #include "dwc_otg_cil.h" + #include "dwc_otg_fiq_fsm.h" ++#include "dwc_otg_driver.h" + + + /** +@@ -613,6 +614,11 @@ struct dwc_otg_hcd { + #endif + }; + ++static inline struct device *dwc_otg_hcd_to_dev(struct dwc_otg_hcd *hcd) ++{ ++ return &hcd->otg_dev->os_dep.platformdev->dev; ++} ++ + /** @name Transaction Execution Functions */ + /** @{ */ + extern dwc_otg_transaction_type_e dwc_otg_hcd_select_transactions(dwc_otg_hcd_t +diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c +index ee920c4d8f4a2980e4406cb878b81d809fec4e70..126e99ab2fc43f11d89a08ff0476181ead84029f 100644 +--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c ++++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c +@@ -75,12 +75,12 @@ static inline uint16_t frame_incr_val(dwc_otg_qh_t * qh) + : qh->interval); + } + +-static int desc_list_alloc(dwc_otg_qh_t * qh) ++static int desc_list_alloc(struct device *dev, dwc_otg_qh_t * qh) + { + int retval = 0; + + qh->desc_list = (dwc_otg_host_dma_desc_t *) +- DWC_DMA_ALLOC(sizeof(dwc_otg_host_dma_desc_t) * max_desc_num(qh), ++ DWC_DMA_ALLOC(dev, sizeof(dwc_otg_host_dma_desc_t) * max_desc_num(qh), + &qh->desc_list_dma); + + if (!qh->desc_list) { +@@ -106,10 +106,10 @@ static int desc_list_alloc(dwc_otg_qh_t * qh) + + } + +-static void desc_list_free(dwc_otg_qh_t * qh) ++static void desc_list_free(struct device *dev, dwc_otg_qh_t * qh) + { + if (qh->desc_list) { +- DWC_DMA_FREE(max_desc_num(qh), qh->desc_list, ++ DWC_DMA_FREE(dev, max_desc_num(qh), qh->desc_list, + qh->desc_list_dma); + qh->desc_list = NULL; + } +@@ -122,11 +122,13 @@ static void desc_list_free(dwc_otg_qh_t * qh) + + static int frame_list_alloc(dwc_otg_hcd_t * hcd) + { ++ struct device *dev = dwc_otg_hcd_to_dev(hcd); + int retval = 0; ++ + if (hcd->frame_list) + return 0; + +- hcd->frame_list = DWC_DMA_ALLOC(4 * MAX_FRLIST_EN_NUM, ++ hcd->frame_list = DWC_DMA_ALLOC(dev, 4 * MAX_FRLIST_EN_NUM, + &hcd->frame_list_dma); + if (!hcd->frame_list) { + retval = -DWC_E_NO_MEMORY; +@@ -140,10 +142,12 @@ static int frame_list_alloc(dwc_otg_hcd_t * hcd) + + static void frame_list_free(dwc_otg_hcd_t * hcd) + { ++ struct device *dev = dwc_otg_hcd_to_dev(hcd); ++ + if (!hcd->frame_list) + return; + +- DWC_DMA_FREE(4 * MAX_FRLIST_EN_NUM, hcd->frame_list, hcd->frame_list_dma); ++ DWC_DMA_FREE(dev, 4 * MAX_FRLIST_EN_NUM, hcd->frame_list, hcd->frame_list_dma); + hcd->frame_list = NULL; + } + +@@ -321,6 +325,7 @@ static void release_channel_ddma(dwc_otg_hcd_t * hcd, dwc_otg_qh_t * qh) + */ + int dwc_otg_hcd_qh_init_ddma(dwc_otg_hcd_t * hcd, dwc_otg_qh_t * qh) + { ++ struct device *dev = dwc_otg_hcd_to_dev(hcd); + int retval = 0; + + if (qh->do_split) { +@@ -328,7 +333,7 @@ int dwc_otg_hcd_qh_init_ddma(dwc_otg_hcd_t * hcd, dwc_otg_qh_t * qh) + return -1; + } + +- retval = desc_list_alloc(qh); ++ retval = desc_list_alloc(dev, qh); + + if ((retval == 0) + && (qh->ep_type == UE_ISOCHRONOUS || qh->ep_type == UE_INTERRUPT)) { +@@ -355,7 +360,9 @@ int dwc_otg_hcd_qh_init_ddma(dwc_otg_hcd_t * hcd, dwc_otg_qh_t * qh) + */ + void dwc_otg_hcd_qh_free_ddma(dwc_otg_hcd_t * hcd, dwc_otg_qh_t * qh) + { +- desc_list_free(qh); ++ struct device *dev = dwc_otg_hcd_to_dev(hcd); ++ ++ desc_list_free(dev, qh); + + /* + * Channel still assigned due to some reasons. +diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c +index 2ceed4212980f04ad082e78851c6a7e83aee1443..74cd5fa54aed5241b61371477ef67d706477fd30 100644 +--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c ++++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c +@@ -517,6 +517,7 @@ int hcd_init(dwc_bus_dev_t *_dev) + ((struct wrapper_priv_data *)(hcd->hcd_priv))->dwc_otg_hcd = + dwc_otg_hcd; + otg_dev->hcd = dwc_otg_hcd; ++ otg_dev->hcd->otg_dev = otg_dev; + + if (dwc_otg_hcd_init(dwc_otg_hcd, otg_dev->core_if)) { + goto error2; +@@ -531,7 +532,6 @@ int hcd_init(dwc_bus_dev_t *_dev) + } + } + +- otg_dev->hcd->otg_dev = otg_dev; + hcd->self.otg_port = dwc_otg_hcd_otg_port(dwc_otg_hcd); + #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33) //don't support for LM(with 2.6.20.1 kernel) + #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,35) //version field absent later +diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c +index 3b2a60763b92fb2e9261a8ade3d4b33e3896cd62..c2dff94e8e6edd22e4427aaa1eac7aad972cb6bd 100644 +--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c ++++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c +@@ -59,6 +59,7 @@ void dwc_otg_hcd_qh_free(dwc_otg_hcd_t * hcd, dwc_otg_qh_t * qh) + uint32_t buf_size = 0; + uint8_t *align_buf_virt = NULL; + dwc_dma_t align_buf_dma; ++ struct device *dev = dwc_otg_hcd_to_dev(hcd); + + /* Free each QTD in the QTD list */ + DWC_SPINLOCK_IRQSAVE(hcd->lock, &flags); +@@ -82,7 +83,7 @@ void dwc_otg_hcd_qh_free(dwc_otg_hcd_t * hcd, dwc_otg_qh_t * qh) + DWC_FREE(qh); + DWC_SPINUNLOCK_IRQRESTORE(hcd->lock, flags); + if (align_buf_virt) +- DWC_DMA_FREE(buf_size, align_buf_virt, align_buf_dma); ++ DWC_DMA_FREE(dev, buf_size, align_buf_virt, align_buf_dma); + return; + } + +diff --git a/drivers/usb/host/dwc_otg/dwc_otg_pcd.c b/drivers/usb/host/dwc_otg/dwc_otg_pcd.c +index ae0c72d02d007d5e7ce0f2dfb79b35d3d7ef86b8..9dabbe5c9791c5296d1cc7b663afa6ec462173cb 100644 +--- a/drivers/usb/host/dwc_otg/dwc_otg_pcd.c ++++ b/drivers/usb/host/dwc_otg/dwc_otg_pcd.c +@@ -237,20 +237,22 @@ static dwc_otg_cil_callbacks_t pcd_callbacks = { + * This function allocates a DMA Descriptor chain for the Endpoint + * buffer to be used for a transfer to/from the specified endpoint. + */ +-dwc_otg_dev_dma_desc_t *dwc_otg_ep_alloc_desc_chain(dwc_dma_t * dma_desc_addr, ++dwc_otg_dev_dma_desc_t *dwc_otg_ep_alloc_desc_chain(struct device *dev, ++ dwc_dma_t * dma_desc_addr, + uint32_t count) + { +- return DWC_DMA_ALLOC_ATOMIC(count * sizeof(dwc_otg_dev_dma_desc_t), ++ return DWC_DMA_ALLOC_ATOMIC(dev, count * sizeof(dwc_otg_dev_dma_desc_t), + dma_desc_addr); + } + + /** + * This function frees a DMA Descriptor chain that was allocated by ep_alloc_desc. + */ +-void dwc_otg_ep_free_desc_chain(dwc_otg_dev_dma_desc_t * desc_addr, ++void dwc_otg_ep_free_desc_chain(struct device *dev, ++ dwc_otg_dev_dma_desc_t * desc_addr, + uint32_t dma_desc_addr, uint32_t count) + { +- DWC_DMA_FREE(count * sizeof(dwc_otg_dev_dma_desc_t), desc_addr, ++ DWC_DMA_FREE(dev, count * sizeof(dwc_otg_dev_dma_desc_t), desc_addr, + dma_desc_addr); + } + +@@ -1105,8 +1107,10 @@ static void start_xfer_tasklet_func(void *data) + * This function initialized the PCD portion of the driver. + * + */ +-dwc_otg_pcd_t *dwc_otg_pcd_init(dwc_otg_core_if_t * core_if) ++dwc_otg_pcd_t *dwc_otg_pcd_init(dwc_otg_device_t *otg_dev) + { ++ struct device *dev = &otg_dev->os_dep.platformdev->dev; ++ dwc_otg_core_if_t *core_if = otg_dev->core_if; + dwc_otg_pcd_t *pcd = NULL; + dwc_otg_dev_if_t *dev_if; + int i; +@@ -1163,7 +1167,7 @@ dwc_otg_pcd_t *dwc_otg_pcd_init(dwc_otg_core_if_t * core_if) + */ + if (GET_CORE_IF(pcd)->dma_enable) { + pcd->setup_pkt = +- DWC_DMA_ALLOC(sizeof(*pcd->setup_pkt) * 5, ++ DWC_DMA_ALLOC(dev, sizeof(*pcd->setup_pkt) * 5, + &pcd->setup_pkt_dma_handle); + if (pcd->setup_pkt == NULL) { + DWC_FREE(pcd); +@@ -1171,10 +1175,10 @@ dwc_otg_pcd_t *dwc_otg_pcd_init(dwc_otg_core_if_t * core_if) + } + + pcd->status_buf = +- DWC_DMA_ALLOC(sizeof(uint16_t), ++ DWC_DMA_ALLOC(dev, sizeof(uint16_t), + &pcd->status_buf_dma_handle); + if (pcd->status_buf == NULL) { +- DWC_DMA_FREE(sizeof(*pcd->setup_pkt) * 5, ++ DWC_DMA_FREE(dev, sizeof(*pcd->setup_pkt) * 5, + pcd->setup_pkt, pcd->setup_pkt_dma_handle); + DWC_FREE(pcd); + return NULL; +@@ -1182,17 +1186,17 @@ dwc_otg_pcd_t *dwc_otg_pcd_init(dwc_otg_core_if_t * core_if) + + if (GET_CORE_IF(pcd)->dma_desc_enable) { + dev_if->setup_desc_addr[0] = +- dwc_otg_ep_alloc_desc_chain +- (&dev_if->dma_setup_desc_addr[0], 1); ++ dwc_otg_ep_alloc_desc_chain(dev, ++ &dev_if->dma_setup_desc_addr[0], 1); + dev_if->setup_desc_addr[1] = +- dwc_otg_ep_alloc_desc_chain +- (&dev_if->dma_setup_desc_addr[1], 1); ++ dwc_otg_ep_alloc_desc_chain(dev, ++ &dev_if->dma_setup_desc_addr[1], 1); + dev_if->in_desc_addr = +- dwc_otg_ep_alloc_desc_chain +- (&dev_if->dma_in_desc_addr, 1); ++ dwc_otg_ep_alloc_desc_chain(dev, ++ &dev_if->dma_in_desc_addr, 1); + dev_if->out_desc_addr = +- dwc_otg_ep_alloc_desc_chain +- (&dev_if->dma_out_desc_addr, 1); ++ dwc_otg_ep_alloc_desc_chain(dev, ++ &dev_if->dma_out_desc_addr, 1); + pcd->data_terminated = 0; + + if (dev_if->setup_desc_addr[0] == 0 +@@ -1201,26 +1205,26 @@ dwc_otg_pcd_t *dwc_otg_pcd_init(dwc_otg_core_if_t * core_if) + || dev_if->out_desc_addr == 0) { + + if (dev_if->out_desc_addr) +- dwc_otg_ep_free_desc_chain +- (dev_if->out_desc_addr, ++ dwc_otg_ep_free_desc_chain(dev, ++ dev_if->out_desc_addr, + dev_if->dma_out_desc_addr, 1); + if (dev_if->in_desc_addr) +- dwc_otg_ep_free_desc_chain +- (dev_if->in_desc_addr, ++ dwc_otg_ep_free_desc_chain(dev, ++ dev_if->in_desc_addr, + dev_if->dma_in_desc_addr, 1); + if (dev_if->setup_desc_addr[1]) +- dwc_otg_ep_free_desc_chain +- (dev_if->setup_desc_addr[1], ++ dwc_otg_ep_free_desc_chain(dev, ++ dev_if->setup_desc_addr[1], + dev_if->dma_setup_desc_addr[1], 1); + if (dev_if->setup_desc_addr[0]) +- dwc_otg_ep_free_desc_chain +- (dev_if->setup_desc_addr[0], ++ dwc_otg_ep_free_desc_chain(dev, ++ dev_if->setup_desc_addr[0], + dev_if->dma_setup_desc_addr[0], 1); + +- DWC_DMA_FREE(sizeof(*pcd->setup_pkt) * 5, ++ DWC_DMA_FREE(dev, sizeof(*pcd->setup_pkt) * 5, + pcd->setup_pkt, + pcd->setup_pkt_dma_handle); +- DWC_DMA_FREE(sizeof(*pcd->status_buf), ++ DWC_DMA_FREE(dev, sizeof(*pcd->status_buf), + pcd->status_buf, + pcd->status_buf_dma_handle); + +@@ -1302,7 +1306,9 @@ fail: + void dwc_otg_pcd_remove(dwc_otg_pcd_t * pcd) + { + dwc_otg_dev_if_t *dev_if = GET_CORE_IF(pcd)->dev_if; ++ struct device *dev = dwc_otg_pcd_to_dev(pcd); + int i; ++ + if (pcd->core_if->core_params->dev_out_nak) { + for (i = 0; i < MAX_EPS_CHANNELS; i++) { + DWC_TIMER_CANCEL(pcd->core_if->ep_xfer_timer[i]); +@@ -1311,20 +1317,24 @@ void dwc_otg_pcd_remove(dwc_otg_pcd_t * pcd) + } + + if (GET_CORE_IF(pcd)->dma_enable) { +- DWC_DMA_FREE(sizeof(*pcd->setup_pkt) * 5, pcd->setup_pkt, ++ DWC_DMA_FREE(dev, sizeof(*pcd->setup_pkt) * 5, pcd->setup_pkt, + pcd->setup_pkt_dma_handle); +- DWC_DMA_FREE(sizeof(uint16_t), pcd->status_buf, ++ DWC_DMA_FREE(dev, sizeof(uint16_t), pcd->status_buf, + pcd->status_buf_dma_handle); + if (GET_CORE_IF(pcd)->dma_desc_enable) { +- dwc_otg_ep_free_desc_chain(dev_if->setup_desc_addr[0], ++ dwc_otg_ep_free_desc_chain(dev, ++ dev_if->setup_desc_addr[0], + dev_if->dma_setup_desc_addr + [0], 1); +- dwc_otg_ep_free_desc_chain(dev_if->setup_desc_addr[1], ++ dwc_otg_ep_free_desc_chain(dev, ++ dev_if->setup_desc_addr[1], + dev_if->dma_setup_desc_addr + [1], 1); +- dwc_otg_ep_free_desc_chain(dev_if->in_desc_addr, ++ dwc_otg_ep_free_desc_chain(dev, ++ dev_if->in_desc_addr, + dev_if->dma_in_desc_addr, 1); +- dwc_otg_ep_free_desc_chain(dev_if->out_desc_addr, ++ dwc_otg_ep_free_desc_chain(dev, ++ dev_if->out_desc_addr, + dev_if->dma_out_desc_addr, + 1); + } +@@ -1463,6 +1473,7 @@ int dwc_otg_pcd_ep_enable(dwc_otg_pcd_t * pcd, + gdfifocfg_data_t gdfifocfgbase = {.d32 = 0 }; + int retval = 0; + int i, epcount; ++ struct device *dev = dwc_otg_pcd_to_dev(pcd); + + desc = (const usb_endpoint_descriptor_t *)ep_desc; + +@@ -1571,9 +1582,9 @@ int dwc_otg_pcd_ep_enable(dwc_otg_pcd_t * pcd, + if (ep->dwc_ep.type != UE_ISOCHRONOUS) { + #endif + ep->dwc_ep.desc_addr = +- dwc_otg_ep_alloc_desc_chain(&ep-> +- dwc_ep.dma_desc_addr, +- MAX_DMA_DESC_CNT); ++ dwc_otg_ep_alloc_desc_chain(dev, ++ &ep->dwc_ep.dma_desc_addr, ++ MAX_DMA_DESC_CNT); + if (!ep->dwc_ep.desc_addr) { + DWC_WARN("%s, can't allocate DMA descriptor\n", + __func__); +@@ -1624,6 +1635,7 @@ int dwc_otg_pcd_ep_disable(dwc_otg_pcd_t * pcd, void *ep_handle) + gdfifocfg_data_t gdfifocfgbase = {.d32 = 0 }; + gdfifocfg_data_t gdfifocfg = {.d32 = 0 }; + fifosize_data_t dptxfsiz = {.d32 = 0 }; ++ struct device *dev = dwc_otg_pcd_to_dev(pcd); + + ep = get_ep_from_handle(pcd, ep_handle); + +@@ -1678,7 +1690,7 @@ int dwc_otg_pcd_ep_disable(dwc_otg_pcd_t * pcd, void *ep_handle) + + /* Cannot call dma_free_coherent() with IRQs disabled */ + DWC_SPINUNLOCK_IRQRESTORE(pcd->lock, flags); +- dwc_otg_ep_free_desc_chain(desc_addr, dma_desc_addr, ++ dwc_otg_ep_free_desc_chain(dev, desc_addr, dma_desc_addr, + MAX_DMA_DESC_CNT); + + goto out_unlocked; +@@ -2079,6 +2091,7 @@ int dwc_otg_pcd_ep_queue(dwc_otg_pcd_t * pcd, void *ep_handle, + uint8_t * buf, dwc_dma_t dma_buf, uint32_t buflen, + int zero, void *req_handle, int atomic_alloc) + { ++ struct device *dev = dwc_otg_pcd_to_dev(pcd); + dwc_irqflags_t flags; + dwc_otg_pcd_request_t *req; + dwc_otg_pcd_ep_t *ep; +@@ -2115,7 +2128,7 @@ int dwc_otg_pcd_ep_queue(dwc_otg_pcd_t * pcd, void *ep_handle, + req->dw_align_buf = NULL; + if ((dma_buf & 0x3) && GET_CORE_IF(pcd)->dma_enable + && !GET_CORE_IF(pcd)->dma_desc_enable) +- req->dw_align_buf = DWC_DMA_ALLOC(buflen, ++ req->dw_align_buf = DWC_DMA_ALLOC(dev, buflen, + &req->dw_align_buf_dma); + DWC_SPINLOCK_IRQSAVE(pcd->lock, &flags); + +diff --git a/drivers/usb/host/dwc_otg/dwc_otg_pcd.h b/drivers/usb/host/dwc_otg/dwc_otg_pcd.h +index 8ef7ba648ad92b9b7e141f22db2a0c2837ddcfa8..a70ebd049d2cca3bf988a1f809832eebede14f96 100644 +--- a/drivers/usb/host/dwc_otg/dwc_otg_pcd.h ++++ b/drivers/usb/host/dwc_otg/dwc_otg_pcd.h +@@ -38,6 +38,8 @@ + #include "usb.h" + #include "dwc_otg_cil.h" + #include "dwc_otg_pcd_if.h" ++#include "dwc_otg_driver.h" ++ + struct cfiobject; + + /** +@@ -253,6 +255,11 @@ struct dwc_otg_pcd { + + }; + ++static inline struct device *dwc_otg_pcd_to_dev(struct dwc_otg_pcd *pcd) ++{ ++ return &pcd->otg_dev->os_dep.platformdev->dev; ++} ++ + //FIXME this functions should be static, and this prototypes should be removed + extern void dwc_otg_request_nuke(dwc_otg_pcd_ep_t * ep); + extern void dwc_otg_request_done(dwc_otg_pcd_ep_t * ep, +diff --git a/drivers/usb/host/dwc_otg/dwc_otg_pcd_if.h b/drivers/usb/host/dwc_otg/dwc_otg_pcd_if.h +index c8d2e0e0c99486558a4964a8c82de80c64b496b4..4c1d591fbc098b2f4a745669e4f243e068735b20 100644 +--- a/drivers/usb/host/dwc_otg/dwc_otg_pcd_if.h ++++ b/drivers/usb/host/dwc_otg/dwc_otg_pcd_if.h +@@ -37,6 +37,7 @@ + + //#include "dwc_os.h" + #include "dwc_otg_core_if.h" ++#include "dwc_otg_driver.h" + + /** @file + * This file defines DWC_OTG PCD Core API. +@@ -139,7 +140,7 @@ struct dwc_otg_pcd_function_ops { + * + * @param core_if The DWC_OTG Core + */ +-extern dwc_otg_pcd_t *dwc_otg_pcd_init(dwc_otg_core_if_t * core_if); ++extern dwc_otg_pcd_t *dwc_otg_pcd_init(dwc_otg_device_t *otg_dev); + + /** Frees PCD allocated by dwc_otg_pcd_init + * +diff --git a/drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c b/drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c +index c8590b527110753b8064d35fab4c34226d094f84..e55ea9c74be46167a41dc14a2d88a1228878b1bb 100644 +--- a/drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c ++++ b/drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c +@@ -2144,6 +2144,7 @@ static inline int cfi_calc_desc_residue(dwc_otg_pcd_ep_t * ep) + static void complete_ep(dwc_otg_pcd_ep_t * ep) + { + dwc_otg_core_if_t *core_if = GET_CORE_IF(ep->pcd); ++ struct device *dev = dwc_otg_pcd_to_dev(ep->pcd); + dwc_otg_dev_if_t *dev_if = core_if->dev_if; + dwc_otg_dev_in_ep_regs_t *in_ep_regs = + dev_if->in_ep_regs[ep->dwc_ep.num]; +@@ -2484,7 +2485,7 @@ static void complete_ep(dwc_otg_pcd_ep_t * ep) + if (!ep->dwc_ep.is_in) { + dwc_memcpy(req->buf, req->dw_align_buf, req->length); + } +- DWC_DMA_FREE(req->length, req->dw_align_buf, ++ DWC_DMA_FREE(dev, req->length, req->dw_align_buf, + req->dw_align_buf_dma); + } + +diff --git a/drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c b/drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c +index 5624f32c9ea9117599df451af29fca2e3bca36de..50aaeacdd12fff93d7a9cf1c54612367406c6bee 100644 +--- a/drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c ++++ b/drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c +@@ -1206,7 +1206,7 @@ int pcd_init(dwc_bus_dev_t *_dev) + + DWC_DEBUGPL(DBG_PCDV, "%s(%p) otg_dev=%p\n", __func__, _dev, otg_dev); + +- otg_dev->pcd = dwc_otg_pcd_init(otg_dev->core_if); ++ otg_dev->pcd = dwc_otg_pcd_init(otg_dev); + + if (!otg_dev->pcd) { + DWC_ERROR("dwc_otg_pcd_init failed\n"); + +From 5a39905808aeae97c328dd15e092528d8bfbc466 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= +Date: Wed, 19 Oct 2016 16:05:36 +0200 +Subject: [PATCH 137/147] mmc: bcm2835-sdhost: Pass struct device to + dma_alloc*() +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This makes it possible to get the bus address from Device Tree. +At the same time move the call to log_init() after getting the clock +to avoid allocating twice due to deferred probing. + +Signed-off-by: Noralf Trønnes +--- + drivers/mmc/host/bcm2835-sdhost.c | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git a/drivers/mmc/host/bcm2835-sdhost.c b/drivers/mmc/host/bcm2835-sdhost.c +index 9e55d5ac08b5809c40fe391ae6e685fdb4d62df7..a9bc79bfdbb71807819dfe2d8f1651445997f92a 100644 +--- a/drivers/mmc/host/bcm2835-sdhost.c ++++ b/drivers/mmc/host/bcm2835-sdhost.c +@@ -235,10 +235,10 @@ static void __iomem *timer_base; + #define LOG_ENTRIES (256*1) + #define LOG_SIZE (sizeof(LOG_ENTRY_T)*LOG_ENTRIES) + +-static void log_init(u32 bus_to_phys) ++static void log_init(struct device *dev, u32 bus_to_phys) + { + spin_lock_init(&log_lock); +- sdhost_log_buf = dma_zalloc_coherent(NULL, LOG_SIZE, &sdhost_log_addr, ++ sdhost_log_buf = dma_zalloc_coherent(dev, LOG_SIZE, &sdhost_log_addr, + GFP_KERNEL); + if (sdhost_log_buf) { + pr_info("sdhost: log_buf @ %p (%x)\n", +@@ -2037,7 +2037,6 @@ static int bcm2835_sdhost_probe(struct platform_device *pdev) + return -ENODEV; + } + host->bus_addr = be32_to_cpup(addr); +- log_init(iomem->start - host->bus_addr); + pr_debug(" - ioaddr %lx, iomem->start %lx, bus_addr %lx\n", + (unsigned long)host->ioaddr, + (unsigned long)iomem->start, +@@ -2110,6 +2109,8 @@ static int bcm2835_sdhost_probe(struct platform_device *pdev) + (unsigned long)host->max_clk, + (int)host->irq); + ++ log_init(dev, iomem->start - host->bus_addr); ++ + if (node) + mmc_of_parse(mmc); + else + +From b53162d15a72031e04b19d8a9bdd838ae0afdd59 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= +Date: Wed, 19 Oct 2016 16:16:48 +0200 +Subject: [PATCH 138/147] bcm270x: Drop NEED_MACH_MEMORY_H and use DT + dma-ranges +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Drop NEED_MACH_MEMORY_H and use dma-ranges from the Device Tree to +get the bus address, like ARCH_BCM2835 does. + +This means that we go from this: + +arch/arm/mach-bcm270x/include/mach/memory.h: + +define __virt_to_bus(x) ((x) + (BUS_OFFSET - PAGE_OFFSET)) +define __bus_to_virt(x) ((x) - (BUS_OFFSET - PAGE_OFFSET)) +define __pfn_to_bus(x) (__pfn_to_phys(x) + BUS_OFFSET) +define __bus_to_pfn(x) __phys_to_pfn((x) - BUS_OFFSET + +To this: + +arch/arm/include/asm/memory.h: + +define __virt_to_bus __virt_to_phys +define __bus_to_virt __phys_to_virt +define __pfn_to_bus(x) __pfn_to_phys(x) +define __bus_to_pfn(x) __phys_to_pfn(x) + +Drivers now have to use the DMA API to get to the bus address. + +Signed-off-by: Noralf Trønnes +--- + arch/arm/Kconfig | 2 - + arch/arm/boot/dts/bcm2708.dtsi | 3 -- + arch/arm/boot/dts/bcm2709.dtsi | 1 - + arch/arm/mach-bcm2708/Kconfig | 8 ---- + arch/arm/mach-bcm2708/include/mach/memory.h | 57 ----------------------------- + arch/arm/mach-bcm2709/Kconfig | 7 ---- + arch/arm/mach-bcm2709/include/mach/memory.h | 57 ----------------------------- + 7 files changed, 135 deletions(-) + delete mode 100644 arch/arm/mach-bcm2708/include/mach/memory.h + delete mode 100644 arch/arm/mach-bcm2709/include/mach/memory.h + +diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig +index 962d632c2af85c752b848c3ba7a8f3f3ba32c222..82cbd045d7894e1b75460021a862f8b56f5ec645 100644 +--- a/arch/arm/Kconfig ++++ b/arch/arm/Kconfig +@@ -334,7 +334,6 @@ config ARCH_BCM2708 + select CLKSRC_OF if OF + select HAVE_SCHED_CLOCK + select NEED_MACH_GPIO_H +- select NEED_MACH_MEMORY_H + select COMMON_CLK + select ARCH_HAS_CPUFREQ + select GENERIC_CLOCKEVENTS +@@ -354,7 +353,6 @@ config ARCH_BCM2709 + select ARM_AMBA + select MIGHT_HAVE_CACHE_L2X0 + select HAVE_SCHED_CLOCK +- select NEED_MACH_MEMORY_H + select COMMON_CLK + select ARCH_HAS_CPUFREQ + select GENERIC_CLOCKEVENTS +diff --git a/arch/arm/boot/dts/bcm2708.dtsi b/arch/arm/boot/dts/bcm2708.dtsi +index 1bd2a707ef5c0d92f233296e6312916f5a550bd2..663843965027da5dbaefbec1285e275c56746367 100644 +--- a/arch/arm/boot/dts/bcm2708.dtsi ++++ b/arch/arm/boot/dts/bcm2708.dtsi +@@ -7,9 +7,6 @@ + model = "BCM2708"; + + soc { +- ranges = <0x7e000000 0x20000000 0x01000000>; +- /delete-property/ dma-ranges; +- + timer@7e003000 { + compatible = "brcm,bcm2835-system-timer"; + reg = <0x7e003000 0x1000>; +diff --git a/arch/arm/boot/dts/bcm2709.dtsi b/arch/arm/boot/dts/bcm2709.dtsi +index 757d0053c1c07452babc63ca6ecd0a8f047b25dd..b1d82f9026d02e8b5371cbb4d8a144e67207a276 100644 +--- a/arch/arm/boot/dts/bcm2709.dtsi ++++ b/arch/arm/boot/dts/bcm2709.dtsi +@@ -9,7 +9,6 @@ + soc { + ranges = <0x7e000000 0x3f000000 0x01000000>, + <0x40000000 0x40000000 0x00040000>; +- /delete-property/ dma-ranges; + + syscon@40000000 { + compatible = "brcm,bcm2836-arm-local", "syscon"; +diff --git a/arch/arm/mach-bcm2708/Kconfig b/arch/arm/mach-bcm2708/Kconfig +index e93df839ab8c6cddb8d784d0af3b827276ba9120..265c3fb90f3debfc439491a89346e4863edec427 100644 +--- a/arch/arm/mach-bcm2708/Kconfig ++++ b/arch/arm/mach-bcm2708/Kconfig +@@ -3,7 +3,6 @@ menu "Broadcom BCM2708 Implementations" + + config MACH_BCM2708 + bool "Broadcom BCM2708 Development Platform" +- select NEED_MACH_MEMORY_H + select CPU_V6 + select USE_OF + select ARCH_REQUIRE_GPIOLIB +@@ -12,11 +11,4 @@ config MACH_BCM2708 + help + Include support for the Broadcom(R) BCM2708 platform. + +-config BCM2708_NOL2CACHE +- bool "Videocore L2 cache disable" +- depends on MACH_BCM2708 +- default n +- help +- Do not allow ARM to use GPU's L2 cache. Requires disable_l2cache in config.txt. +- + endmenu +diff --git a/arch/arm/mach-bcm2708/include/mach/memory.h b/arch/arm/mach-bcm2708/include/mach/memory.h +deleted file mode 100644 +index 7548a52dcf84affa4d1b0667e5e2f89f591891b8..0000000000000000000000000000000000000000 +--- a/arch/arm/mach-bcm2708/include/mach/memory.h ++++ /dev/null +@@ -1,57 +0,0 @@ +-/* +- * arch/arm/mach-bcm2708/include/mach/memory.h +- * +- * Copyright (C) 2010 Broadcom +- * +- * This program is free software; you can redistribute it and/or modify +- * it under the terms of the GNU General Public License as published by +- * the Free Software Foundation; either version 2 of the License, or +- * (at your option) any later version. +- * +- * This program is distributed in the hope that it will be useful, +- * but WITHOUT ANY WARRANTY; without even the implied warranty of +- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- * GNU General Public License for more details. +- * +- * You should have received a copy of the GNU General Public License +- * along with this program; if not, write to the Free Software +- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +- */ +-#ifndef __ASM_ARCH_MEMORY_H +-#define __ASM_ARCH_MEMORY_H +- +-/* Memory overview: +- +- [ARMcore] <--virtual addr--> +- [ARMmmu] <--physical addr--> +- [GERTmap] <--bus add--> +- [VCperiph] +- +-*/ +- +-/* +- * Physical DRAM offset. +- */ +-#define BCM_PLAT_PHYS_OFFSET UL(0x00000000) +-#define VC_ARMMEM_OFFSET UL(0x00000000) /* offset in VC of ARM memory */ +- +-#ifdef CONFIG_BCM2708_NOL2CACHE +- #define _REAL_BUS_OFFSET UL(0xC0000000) /* don't use L1 or L2 caches */ +-#else +- #define _REAL_BUS_OFFSET UL(0x40000000) /* use L2 cache */ +-#endif +- +-/* We're using the memory at 64M in the VideoCore for Linux - this adjustment +- * will provide the offset into this area as well as setting the bits that +- * stop the L1 and L2 cache from being used +- * +- * WARNING: this only works because the ARM is given memory at a fixed location +- * (ARMMEM_OFFSET) +- */ +-#define BUS_OFFSET (VC_ARMMEM_OFFSET + _REAL_BUS_OFFSET) +-#define __virt_to_bus(x) ((x) + (BUS_OFFSET - PAGE_OFFSET)) +-#define __bus_to_virt(x) ((x) - (BUS_OFFSET - PAGE_OFFSET)) +-#define __pfn_to_bus(x) (__pfn_to_phys(x) + (BUS_OFFSET - BCM_PLAT_PHYS_OFFSET)) +-#define __bus_to_pfn(x) __phys_to_pfn((x) - (BUS_OFFSET - BCM_PLAT_PHYS_OFFSET)) +- +-#endif +diff --git a/arch/arm/mach-bcm2709/Kconfig b/arch/arm/mach-bcm2709/Kconfig +index 643b4b984512a5f2ae33cee9beffa70a53e005ff..41f407ac1db3a86e87941153c1832b9fce1ead5d 100644 +--- a/arch/arm/mach-bcm2709/Kconfig ++++ b/arch/arm/mach-bcm2709/Kconfig +@@ -6,11 +6,4 @@ config MACH_BCM2709 + help + Include support for the Broadcom(R) BCM2709 platform. + +-config BCM2708_NOL2CACHE +- bool "Videocore L2 cache disable" +- depends on MACH_BCM2709 +- default y +- help +- Do not allow ARM to use GPU's L2 cache. Requires disable_l2cache in config.txt. +- + endmenu +diff --git a/arch/arm/mach-bcm2709/include/mach/memory.h b/arch/arm/mach-bcm2709/include/mach/memory.h +deleted file mode 100644 +index 7548a52dcf84affa4d1b0667e5e2f89f591891b8..0000000000000000000000000000000000000000 +--- a/arch/arm/mach-bcm2709/include/mach/memory.h ++++ /dev/null +@@ -1,57 +0,0 @@ +-/* +- * arch/arm/mach-bcm2708/include/mach/memory.h +- * +- * Copyright (C) 2010 Broadcom +- * +- * This program is free software; you can redistribute it and/or modify +- * it under the terms of the GNU General Public License as published by +- * the Free Software Foundation; either version 2 of the License, or +- * (at your option) any later version. +- * +- * This program is distributed in the hope that it will be useful, +- * but WITHOUT ANY WARRANTY; without even the implied warranty of +- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- * GNU General Public License for more details. +- * +- * You should have received a copy of the GNU General Public License +- * along with this program; if not, write to the Free Software +- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +- */ +-#ifndef __ASM_ARCH_MEMORY_H +-#define __ASM_ARCH_MEMORY_H +- +-/* Memory overview: +- +- [ARMcore] <--virtual addr--> +- [ARMmmu] <--physical addr--> +- [GERTmap] <--bus add--> +- [VCperiph] +- +-*/ +- +-/* +- * Physical DRAM offset. +- */ +-#define BCM_PLAT_PHYS_OFFSET UL(0x00000000) +-#define VC_ARMMEM_OFFSET UL(0x00000000) /* offset in VC of ARM memory */ +- +-#ifdef CONFIG_BCM2708_NOL2CACHE +- #define _REAL_BUS_OFFSET UL(0xC0000000) /* don't use L1 or L2 caches */ +-#else +- #define _REAL_BUS_OFFSET UL(0x40000000) /* use L2 cache */ +-#endif +- +-/* We're using the memory at 64M in the VideoCore for Linux - this adjustment +- * will provide the offset into this area as well as setting the bits that +- * stop the L1 and L2 cache from being used +- * +- * WARNING: this only works because the ARM is given memory at a fixed location +- * (ARMMEM_OFFSET) +- */ +-#define BUS_OFFSET (VC_ARMMEM_OFFSET + _REAL_BUS_OFFSET) +-#define __virt_to_bus(x) ((x) + (BUS_OFFSET - PAGE_OFFSET)) +-#define __bus_to_virt(x) ((x) - (BUS_OFFSET - PAGE_OFFSET)) +-#define __pfn_to_bus(x) (__pfn_to_phys(x) + (BUS_OFFSET - BCM_PLAT_PHYS_OFFSET)) +-#define __bus_to_pfn(x) __phys_to_pfn((x) - (BUS_OFFSET - BCM_PLAT_PHYS_OFFSET)) +- +-#endif + +From 8c31b39c5c492e9da9e4a4b0a746cfdc5856040a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= +Date: Tue, 25 Oct 2016 15:55:09 +0200 +Subject: [PATCH 139/147] dts: Remove bcm2835-rpi-cm.dts +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This file doesn't build anymore and isn't used so remove it. +It was added as part of my ARCH_BCM2835 work last year, but the future +didn't pan out as expected. + +Signed-off-by: Noralf Trønnes +--- + arch/arm/boot/dts/Makefile | 1 - + arch/arm/boot/dts/bcm2835-rpi-cm.dts | 93 ----------------------------------- + arch/arm/boot/dts/bcm2835-rpi-cm.dtsi | 30 ----------- + 3 files changed, 124 deletions(-) + delete mode 100644 arch/arm/boot/dts/bcm2835-rpi-cm.dts + delete mode 100644 arch/arm/boot/dts/bcm2835-rpi-cm.dtsi + +diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile +index 71f794ecc710ac533731854bd95961a6a4175b64..0cb86b7a5ab212fee36a34b3672856d27c446593 100644 +--- a/arch/arm/boot/dts/Makefile ++++ b/arch/arm/boot/dts/Makefile +@@ -3,7 +3,6 @@ ifeq ($(CONFIG_OF),y) + dtb-$(CONFIG_ARCH_BCM2708) += bcm2708-rpi-b.dtb + dtb-$(CONFIG_ARCH_BCM2708) += bcm2708-rpi-b-plus.dtb + dtb-$(CONFIG_ARCH_BCM2708) += bcm2708-rpi-cm.dtb +-dtb-$(CONFIG_ARCH_BCM2835) += bcm2835-rpi-cm.dtb + dtb-$(CONFIG_ARCH_BCM2709) += bcm2709-rpi-2-b.dtb + dtb-$(CONFIG_ARCH_BCM2709) += bcm2710-rpi-3-b.dtb + dtb-$(CONFIG_ARCH_BCM2709) += bcm2710-rpi-cm3.dtb +diff --git a/arch/arm/boot/dts/bcm2835-rpi-cm.dts b/arch/arm/boot/dts/bcm2835-rpi-cm.dts +deleted file mode 100644 +index c6e6860a6d4356a613f4f7ab41c6befc76740a15..0000000000000000000000000000000000000000 +--- a/arch/arm/boot/dts/bcm2835-rpi-cm.dts ++++ /dev/null +@@ -1,93 +0,0 @@ +-/dts-v1/; +- +-#include "bcm2835-rpi-cm.dtsi" +- +-/ { +- model = "Raspberry Pi Compute Module"; +-}; +- +-&uart0 { +- status = "okay"; +-}; +- +-&gpio { +- spi0_pins: spi0_pins { +- brcm,pins = <7 8 9 10 11>; +- brcm,function = <4>; /* alt0 */ +- }; +- +- i2c0_pins: i2c0 { +- brcm,pins = <0 1>; +- brcm,function = <4>; +- }; +- +- i2c1_pins: i2c1 { +- brcm,pins = <2 3>; +- brcm,function = <4>; +- }; +- +- i2s_pins: i2s { +- brcm,pins = <18 19 20 21>; +- brcm,function = <4>; /* alt0 */ +- }; +-}; +- +-&spi0 { +- pinctrl-names = "default"; +- pinctrl-0 = <&spi0_pins>; +- +- spidev@0{ +- compatible = "spidev"; +- reg = <0>; /* CE0 */ +- #address-cells = <1>; +- #size-cells = <0>; +- spi-max-frequency = <500000>; +- }; +- +- spidev@1{ +- compatible = "spidev"; +- reg = <1>; /* CE1 */ +- #address-cells = <1>; +- #size-cells = <0>; +- spi-max-frequency = <500000>; +- }; +-}; +- +-&i2c0 { +- pinctrl-names = "default"; +- pinctrl-0 = <&i2c0_pins>; +- clock-frequency = <100000>; +-}; +- +-&i2c1 { +- pinctrl-names = "default"; +- pinctrl-0 = <&i2c1_pins>; +- clock-frequency = <100000>; +-}; +- +-&i2c2 { +- clock-frequency = <100000>; +-}; +- +-&i2s { +- #sound-dai-cells = <0>; +- pinctrl-names = "default"; +- pinctrl-0 = <&i2s_pins>; +-}; +- +-/ { +- __overrides__ { +- uart0 = <&uart0>,"status"; +- uart0_clkrate = <&clk_uart0>,"clock-frequency:0"; +- uart1_clkrate = <&uart1>,"clock-frequency:0"; +- i2s = <&i2s>,"status"; +- spi = <&spi0>,"status"; +- i2c0 = <&i2c0>,"status"; +- i2c1 = <&i2c1>,"status"; +- i2c2_iknowwhatimdoing = <&i2c2>,"status"; +- i2c0_baudrate = <&i2c0>,"clock-frequency:0"; +- i2c1_baudrate = <&i2c1>,"clock-frequency:0"; +- i2c2_baudrate = <&i2c2>,"clock-frequency:0"; +- core_freq = <&clk_core>,"clock-frequency:0"; +- }; +-}; +diff --git a/arch/arm/boot/dts/bcm2835-rpi-cm.dtsi b/arch/arm/boot/dts/bcm2835-rpi-cm.dtsi +deleted file mode 100644 +index 9c4000fc686a9882b9ddde24fdcf937d52b0f86f..0000000000000000000000000000000000000000 +--- a/arch/arm/boot/dts/bcm2835-rpi-cm.dtsi ++++ /dev/null +@@ -1,30 +0,0 @@ +-#include "bcm2835.dtsi" +- +-&leds { +- act_led: act { +- label = "led0"; +- linux,default-trigger = "mmc0"; +- gpios = <&gpio 47 0>; +- }; +-}; +- +-&mmc { +- status = "okay"; +- bus-width = <4>; +-}; +- +-&fb { +- status = "okay"; +-}; +- +-/ { +- __overrides__ { +- act_led_gpio = <&act_led>,"gpios:4"; +- act_led_activelow = <&act_led>,"gpios:8"; +- act_led_trigger = <&act_led>,"linux,default-trigger"; +- +- audio = <&audio>,"status"; +- watchdog = <&watchdog>,"status"; +- random = <&random>,"status"; +- }; +-}; + +From 3fa49a0c237888a5ec69480409441fe4b8f76dc8 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= +Date: Tue, 25 Oct 2016 16:00:07 +0200 +Subject: [PATCH 140/147] bcm2708: Convert to ARCH_MULTIPLATFORM +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Convert to multi platform and base it on ARCH_BCM2835. + +Signed-off-by: Noralf Trønnes +--- + arch/arm/Kconfig | 21 -------------- + arch/arm/Makefile | 1 - + arch/arm/configs/bcmrpi_defconfig | 6 ++-- + arch/arm/mach-bcm/Kconfig | 14 +++++++++ + arch/arm/mach-bcm/board_bcm2835.c | 21 ++++++++++++++ + arch/arm/mach-bcm2708/Kconfig | 14 --------- + arch/arm/mach-bcm2708/Makefile | 5 ---- + arch/arm/mach-bcm2708/Makefile.boot | 3 -- + arch/arm/mach-bcm2708/bcm2708.c | 57 ------------------------------------- + drivers/clk/bcm/Makefile | 4 +-- + drivers/clocksource/Makefile | 2 +- + drivers/irqchip/Makefile | 1 - + 12 files changed, 42 insertions(+), 107 deletions(-) + delete mode 100644 arch/arm/mach-bcm2708/Kconfig + delete mode 100644 arch/arm/mach-bcm2708/Makefile + delete mode 100644 arch/arm/mach-bcm2708/Makefile.boot + delete mode 100644 arch/arm/mach-bcm2708/bcm2708.c + +diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig +index 82cbd045d7894e1b75460021a862f8b56f5ec645..4578b06fda58702f040477cabd0a828afa7eccf4 100644 +--- a/arch/arm/Kconfig ++++ b/arch/arm/Kconfig +@@ -326,26 +326,6 @@ choice + default ARM_SINGLE_ARMV7M if !MMU + default ARCH_MULTIPLATFORM if MMU + +-config ARCH_BCM2708 +- bool "Broadcom BCM2708 family" +- select CPU_V6 +- select ARM_AMBA +- select CLKSRC_MMIO +- select CLKSRC_OF if OF +- select HAVE_SCHED_CLOCK +- select NEED_MACH_GPIO_H +- select COMMON_CLK +- select ARCH_HAS_CPUFREQ +- select GENERIC_CLOCKEVENTS +- select ARM_ERRATA_411920 +- select MACH_BCM2708 +- select MULTI_IRQ_HANDLER +- select SPARSE_IRQ +- select VC4 +- select FIQ +- help +- This enables support for Broadcom BCM2708 boards. +- + config ARCH_BCM2709 + bool "Broadcom BCM2709 family" + select CPU_V7 +@@ -754,7 +734,6 @@ config ARCH_VIRT + # Kconfigs may be included either alphabetically (according to the + # plat- suffix) or along side the corresponding mach-* source. + # +-source "arch/arm/mach-bcm2708/Kconfig" + source "arch/arm/mach-bcm2709/Kconfig" + + source "arch/arm/mach-mvebu/Kconfig" +diff --git a/arch/arm/Makefile b/arch/arm/Makefile +index 275c53561cd7c3b1f52a60c95b5fb287fb3ccb62..ca1877e0c75d53091c8eee3373e8b8eb210022a2 100644 +--- a/arch/arm/Makefile ++++ b/arch/arm/Makefile +@@ -152,7 +152,6 @@ textofs-$(CONFIG_ARCH_AXXIA) := 0x00308000 + + # Machine directory name. This list is sorted alphanumerically + # by CONFIG_* macro name. +-machine-$(CONFIG_ARCH_BCM2708) += bcm2708 + machine-$(CONFIG_ARCH_BCM2709) += bcm2709 + machine-$(CONFIG_ARCH_ALPINE) += alpine + machine-$(CONFIG_ARCH_ARTPEC) += artpec +diff --git a/arch/arm/configs/bcmrpi_defconfig b/arch/arm/configs/bcmrpi_defconfig +index 46b91678fef473334b9417409fd1c529c0415977..27c61471a12a38feda62447af8010530bc89c141 100644 +--- a/arch/arm/configs/bcmrpi_defconfig ++++ b/arch/arm/configs/bcmrpi_defconfig +@@ -1,5 +1,3 @@ +-# CONFIG_ARM_PATCH_PHYS_VIRT is not set +-CONFIG_PHYS_OFFSET=0 + # CONFIG_LOCALVERSION_AUTO is not set + CONFIG_SYSVIPC=y + CONFIG_POSIX_MQUEUE=y +@@ -38,7 +36,11 @@ CONFIG_BLK_DEV_THROTTLING=y + CONFIG_PARTITION_ADVANCED=y + CONFIG_MAC_PARTITION=y + CONFIG_CFQ_GROUP_IOSCHED=y ++CONFIG_ARCH_MULTI_V6=y ++# CONFIG_ARCH_MULTI_V7 is not set ++CONFIG_ARCH_BCM=y + CONFIG_ARCH_BCM2708=y ++# CONFIG_CACHE_L2X0 is not set + CONFIG_PREEMPT_VOLUNTARY=y + CONFIG_AEABI=y + CONFIG_OABI_COMPAT=y +diff --git a/arch/arm/mach-bcm/Kconfig b/arch/arm/mach-bcm/Kconfig +index 5f6ab16792a93b2dd2e3f9e647f8ac4062d4fa6d..9461147888e20c10eba7eeca9d8601bff7d849c0 100644 +--- a/arch/arm/mach-bcm/Kconfig ++++ b/arch/arm/mach-bcm/Kconfig +@@ -160,6 +160,20 @@ config ARCH_BCM2835 + This enables support for the Broadcom BCM2835 and BCM2836 SoCs. + This SoC is used in the Raspberry Pi and Roku 2 devices. + ++config MACH_BCM2708 ++ bool "Enable optimized __copy_to_user and __copy_from_user" ++ depends on ARCH_BCM2708 ++ default y ++ help ++ Optimized versions of __copy_to_user and __copy_from_user for Pi1. ++ ++config ARCH_BCM2708 ++ bool "Broadcom BCM2708 family" ++ depends on ARCH_MULTI_V6 ++ select ARCH_BCM2835 ++ help ++ This enables support for Broadcom BCM2708 boards. ++ + config ARCH_BCM_63XX + bool "Broadcom BCM63xx DSL SoC" + depends on ARCH_MULTI_V7 +diff --git a/arch/arm/mach-bcm/board_bcm2835.c b/arch/arm/mach-bcm/board_bcm2835.c +index 8f152266ba9b470df2eaaed9ebcf158ed2079834..309a336df05191450aa162c91687592a7107a1b0 100644 +--- a/arch/arm/mach-bcm/board_bcm2835.c ++++ b/arch/arm/mach-bcm/board_bcm2835.c +@@ -16,6 +16,7 @@ + #include + #include + #include ++#include + #include + + #include +@@ -27,6 +28,7 @@ static void __init bcm2835_init(void) + u32 val; + u64 val64; + ++ vc_cma_early_init(); + bcm2835_init_clocks(); + + if (!of_property_read_u32(np, "linux,revision", &val)) +@@ -35,6 +37,11 @@ static void __init bcm2835_init(void) + system_serial_low = val64; + } + ++static void __init bcm2835_board_reserve(void) ++{ ++ vc_cma_reserve(); ++} ++ + static const char * const bcm2835_compat[] = { + #ifdef CONFIG_ARCH_MULTI_V6 + "brcm,bcm2835", +@@ -47,5 +54,19 @@ static const char * const bcm2835_compat[] = { + + DT_MACHINE_START(BCM2835, "BCM2835") + .init_machine = bcm2835_init, ++ .reserve = bcm2835_board_reserve, + .dt_compat = bcm2835_compat + MACHINE_END ++ ++#ifdef CONFIG_ARCH_BCM2708 ++static const char * const bcm2708_compat[] = { ++ "brcm,bcm2708", ++ NULL ++}; ++ ++DT_MACHINE_START(BCM2708, "BCM2708") ++ .init_machine = bcm2835_init, ++ .reserve = bcm2835_board_reserve, ++ .dt_compat = bcm2708_compat, ++MACHINE_END ++#endif +diff --git a/arch/arm/mach-bcm2708/Kconfig b/arch/arm/mach-bcm2708/Kconfig +deleted file mode 100644 +index 265c3fb90f3debfc439491a89346e4863edec427..0000000000000000000000000000000000000000 +--- a/arch/arm/mach-bcm2708/Kconfig ++++ /dev/null +@@ -1,14 +0,0 @@ +-menu "Broadcom BCM2708 Implementations" +- depends on ARCH_BCM2708 +- +-config MACH_BCM2708 +- bool "Broadcom BCM2708 Development Platform" +- select CPU_V6 +- select USE_OF +- select ARCH_REQUIRE_GPIOLIB +- select PINCTRL +- select PINCTRL_BCM2835 +- help +- Include support for the Broadcom(R) BCM2708 platform. +- +-endmenu +diff --git a/arch/arm/mach-bcm2708/Makefile b/arch/arm/mach-bcm2708/Makefile +deleted file mode 100644 +index 3da1a1b4ea1fb04ae0b535b2915ea9f386f5701c..0000000000000000000000000000000000000000 +--- a/arch/arm/mach-bcm2708/Makefile ++++ /dev/null +@@ -1,5 +0,0 @@ +-# +-# Makefile for the linux kernel. +-# +- +-obj-$(CONFIG_MACH_BCM2708) += bcm2708.o +diff --git a/arch/arm/mach-bcm2708/Makefile.boot b/arch/arm/mach-bcm2708/Makefile.boot +deleted file mode 100644 +index 67039c3e0c48fa6b94f1147b3316f74afcecba9e..0000000000000000000000000000000000000000 +--- a/arch/arm/mach-bcm2708/Makefile.boot ++++ /dev/null +@@ -1,3 +0,0 @@ +- zreladdr-y := 0x00008000 +-params_phys-y := 0x00000100 +-initrd_phys-y := 0x00800000 +diff --git a/arch/arm/mach-bcm2708/bcm2708.c b/arch/arm/mach-bcm2708/bcm2708.c +deleted file mode 100644 +index 06b078569006a6d821d3d049f1a0fa5783c1c1b3..0000000000000000000000000000000000000000 +--- a/arch/arm/mach-bcm2708/bcm2708.c ++++ /dev/null +@@ -1,57 +0,0 @@ +-/* +- * linux/arch/arm/mach-bcm2708/bcm2708.c +- * +- * Copyright (C) 2010 Broadcom +- * +- * This program is free software; you can redistribute it and/or modify +- * it under the terms of the GNU General Public License as published by +- * the Free Software Foundation; either version 2 of the License, or +- * (at your option) any later version. +- * +- * This program is distributed in the hope that it will be useful, +- * but WITHOUT ANY WARRANTY; without even the implied warranty of +- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- * GNU General Public License for more details. +- * +- * You should have received a copy of the GNU General Public License +- * along with this program; if not, write to the Free Software +- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +- */ +- +-#include +-#include +- +-#include +-#include +- +-static void __init bcm2708_init(void) +-{ +- struct device_node *np = of_find_node_by_path("/system"); +- u32 val; +- u64 val64; +- +- vc_cma_early_init(); +- +- if (!of_property_read_u32(np, "linux,revision", &val)) +- system_rev = val; +- if (!of_property_read_u64(np, "linux,serial", &val64)) +- system_serial_low = val64; +-} +- +-static void __init board_reserve(void) +-{ +- vc_cma_reserve(); +-} +- +-static const char * const bcm2708_compat[] = { +- "brcm,bcm2708", +- NULL +-}; +- +-DT_MACHINE_START(BCM2708, "BCM2708") +- /* Maintainer: Broadcom Europe Ltd. */ +- .init_machine = bcm2708_init, +- .reserve = board_reserve, +- .dt_compat = bcm2708_compat, +-MACHINE_END +- +diff --git a/drivers/clk/bcm/Makefile b/drivers/clk/bcm/Makefile +index fcf1bb5d792111a31226c33dec6b1da309a36e0d..84dc055849c0cea70aad86898a0cac757a93cc9e 100644 +--- a/drivers/clk/bcm/Makefile ++++ b/drivers/clk/bcm/Makefile +@@ -4,8 +4,8 @@ obj-$(CONFIG_CLK_BCM_KONA) += clk-kona-setup.o + obj-$(CONFIG_CLK_BCM_KONA) += clk-bcm281xx.o + obj-$(CONFIG_CLK_BCM_KONA) += clk-bcm21664.o + obj-$(CONFIG_COMMON_CLK_IPROC) += clk-iproc-armpll.o clk-iproc-pll.o clk-iproc-asiu.o +-obj-$(CONFIG_ARCH_BCM2835)$(CONFIG_ARCH_BCM2708)$(CONFIG_ARCH_BCM2709) += clk-bcm2835.o +-obj-$(CONFIG_ARCH_BCM2835)$(CONFIG_ARCH_BCM2708)$(CONFIG_ARCH_BCM2709) += clk-bcm2835-aux.o ++obj-$(CONFIG_ARCH_BCM2835)$(CONFIG_ARCH_BCM2709) += clk-bcm2835.o ++obj-$(CONFIG_ARCH_BCM2835)$(CONFIG_ARCH_BCM2709) += clk-bcm2835-aux.o + obj-$(CONFIG_COMMON_CLK_IPROC) += clk-ns2.o + obj-$(CONFIG_ARCH_BCM_CYGNUS) += clk-cygnus.o + obj-$(CONFIG_ARCH_BCM_NSP) += clk-nsp.o +diff --git a/drivers/clocksource/Makefile b/drivers/clocksource/Makefile +index a60aa840b28f0fa73c496a2e0d5c816eed6f771a..fd9d6df0bbc0993c3b7862a08f89dc3a9725be9d 100644 +--- a/drivers/clocksource/Makefile ++++ b/drivers/clocksource/Makefile +@@ -19,7 +19,7 @@ obj-$(CONFIG_CLKSRC_NOMADIK_MTU) += nomadik-mtu.o + obj-$(CONFIG_CLKSRC_DBX500_PRCMU) += clksrc-dbx500-prcmu.o + obj-$(CONFIG_ARMADA_370_XP_TIMER) += time-armada-370-xp.o + obj-$(CONFIG_ORION_TIMER) += time-orion.o +-obj-$(CONFIG_BCM2835_TIMER)$(CONFIG_ARCH_BCM2708) += bcm2835_timer.o ++obj-$(CONFIG_BCM2835_TIMER) += bcm2835_timer.o + obj-$(CONFIG_CLPS711X_TIMER) += clps711x-timer.o + obj-$(CONFIG_ATLAS7_TIMER) += timer-atlas7.o + obj-$(CONFIG_MOXART_TIMER) += moxart_timer.o +diff --git a/drivers/irqchip/Makefile b/drivers/irqchip/Makefile +index 75da978fac0e06819d8a9740b95ee3d7035c1059..662790c8fa9c972bbf3ac7f41b9f5eace912b69c 100644 +--- a/drivers/irqchip/Makefile ++++ b/drivers/irqchip/Makefile +@@ -5,7 +5,6 @@ obj-$(CONFIG_ATH79) += irq-ath79-cpu.o + obj-$(CONFIG_ATH79) += irq-ath79-misc.o + obj-$(CONFIG_ARCH_BCM2835) += irq-bcm2835.o + obj-$(CONFIG_ARCH_BCM2835) += irq-bcm2836.o +-obj-$(CONFIG_ARCH_BCM2708) += irq-bcm2835.o + obj-$(CONFIG_ARCH_BCM2709) += irq-bcm2835.o + obj-$(CONFIG_ARCH_BCM2709) += irq-bcm2836.o + obj-$(CONFIG_ARCH_EXYNOS) += exynos-combiner.o + +From b1b1bc303a19b07b8d5307250e5f746b99b2dd1c Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= +Date: Tue, 25 Oct 2016 16:02:39 +0200 +Subject: [PATCH 141/147] bcm2709: Convert to ARCH_MULTIPLATFORM +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Convert to multi platform and base it on ARCH_BCM2835. + +Signed-off-by: Noralf Trønnes +--- + arch/arm/Kconfig | 25 ----------------- + arch/arm/Makefile | 1 - + arch/arm/configs/bcm2709_defconfig | 4 +-- + arch/arm/mach-bcm/Kconfig | 9 ++++++ + arch/arm/mach-bcm/board_bcm2835.c | 13 +++++++++ + arch/arm/mach-bcm2709/Kconfig | 9 ------ + arch/arm/mach-bcm2709/Makefile | 5 ---- + arch/arm/mach-bcm2709/Makefile.boot | 3 -- + arch/arm/mach-bcm2709/bcm2709.c | 56 ------------------------------------- + drivers/clk/bcm/Makefile | 4 +-- + drivers/irqchip/Makefile | 2 -- + 11 files changed, 25 insertions(+), 106 deletions(-) + delete mode 100644 arch/arm/mach-bcm2709/Kconfig + delete mode 100644 arch/arm/mach-bcm2709/Makefile + delete mode 100644 arch/arm/mach-bcm2709/Makefile.boot + delete mode 100644 arch/arm/mach-bcm2709/bcm2709.c + +diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig +index 4578b06fda58702f040477cabd0a828afa7eccf4..a9c4e48bb7ec997bec394066914d26f337a2fec4 100644 +--- a/arch/arm/Kconfig ++++ b/arch/arm/Kconfig +@@ -326,29 +326,6 @@ choice + default ARM_SINGLE_ARMV7M if !MMU + default ARCH_MULTIPLATFORM if MMU + +-config ARCH_BCM2709 +- bool "Broadcom BCM2709 family" +- select CPU_V7 +- select HAVE_SMP +- select ARM_AMBA +- select MIGHT_HAVE_CACHE_L2X0 +- select HAVE_SCHED_CLOCK +- select COMMON_CLK +- select ARCH_HAS_CPUFREQ +- select GENERIC_CLOCKEVENTS +- select MACH_BCM2709 +- select MULTI_IRQ_HANDLER +- select SPARSE_IRQ +- select MFD_SYSCON +- select VC4 +- select FIQ +- select USE_OF +- select ARCH_REQUIRE_GPIOLIB +- select PINCTRL +- select PINCTRL_BCM2835 +- help +- This enables support for Broadcom BCM2709 boards. +- + config ARCH_MULTIPLATFORM + bool "Allow multiple platforms to be selected" + depends on MMU +@@ -734,8 +711,6 @@ config ARCH_VIRT + # Kconfigs may be included either alphabetically (according to the + # plat- suffix) or along side the corresponding mach-* source. + # +-source "arch/arm/mach-bcm2709/Kconfig" +- + source "arch/arm/mach-mvebu/Kconfig" + + source "arch/arm/mach-alpine/Kconfig" +diff --git a/arch/arm/Makefile b/arch/arm/Makefile +index ca1877e0c75d53091c8eee3373e8b8eb210022a2..5eb5aef84c1953d12cce666b8a587e0f1f7dd10a 100644 +--- a/arch/arm/Makefile ++++ b/arch/arm/Makefile +@@ -152,7 +152,6 @@ textofs-$(CONFIG_ARCH_AXXIA) := 0x00308000 + + # Machine directory name. This list is sorted alphanumerically + # by CONFIG_* macro name. +-machine-$(CONFIG_ARCH_BCM2709) += bcm2709 + machine-$(CONFIG_ARCH_ALPINE) += alpine + machine-$(CONFIG_ARCH_ARTPEC) += artpec + machine-$(CONFIG_ARCH_AT91) += at91 +diff --git a/arch/arm/configs/bcm2709_defconfig b/arch/arm/configs/bcm2709_defconfig +index 40841d8421e44f8863cb23c53802388b502e61a3..d246dd91b12d40a2d59d5e6758548471f1b195a0 100644 +--- a/arch/arm/configs/bcm2709_defconfig ++++ b/arch/arm/configs/bcm2709_defconfig +@@ -1,5 +1,3 @@ +-# CONFIG_ARM_PATCH_PHYS_VIRT is not set +-CONFIG_PHYS_OFFSET=0 + CONFIG_LOCALVERSION="-v7" + # CONFIG_LOCALVERSION_AUTO is not set + CONFIG_SYSVIPC=y +@@ -39,10 +37,10 @@ CONFIG_BLK_DEV_THROTTLING=y + CONFIG_PARTITION_ADVANCED=y + CONFIG_MAC_PARTITION=y + CONFIG_CFQ_GROUP_IOSCHED=y ++CONFIG_ARCH_BCM=y + CONFIG_ARCH_BCM2709=y + # CONFIG_CACHE_L2X0 is not set + CONFIG_SMP=y +-CONFIG_HAVE_ARM_ARCH_TIMER=y + CONFIG_VMSPLIT_2G=y + CONFIG_PREEMPT_VOLUNTARY=y + CONFIG_AEABI=y +diff --git a/arch/arm/mach-bcm/Kconfig b/arch/arm/mach-bcm/Kconfig +index 9461147888e20c10eba7eeca9d8601bff7d849c0..929a5fa241fa94134993c61a137d1f79b514d64b 100644 +--- a/arch/arm/mach-bcm/Kconfig ++++ b/arch/arm/mach-bcm/Kconfig +@@ -174,6 +174,15 @@ config ARCH_BCM2708 + help + This enables support for Broadcom BCM2708 boards. + ++config ARCH_BCM2709 ++ bool "Broadcom BCM2709 family" ++ depends on ARCH_MULTI_V7 ++ select ARCH_BCM2835 ++ select HAVE_SMP ++ select MFD_SYSCON ++ help ++ This enables support for Broadcom BCM2709 boards. ++ + config ARCH_BCM_63XX + bool "Broadcom BCM63xx DSL SoC" + depends on ARCH_MULTI_V7 +diff --git a/arch/arm/mach-bcm/board_bcm2835.c b/arch/arm/mach-bcm/board_bcm2835.c +index 309a336df05191450aa162c91687592a7107a1b0..6ce49dea7856b243b38f180231afd25b57dee729 100644 +--- a/arch/arm/mach-bcm/board_bcm2835.c ++++ b/arch/arm/mach-bcm/board_bcm2835.c +@@ -70,3 +70,16 @@ DT_MACHINE_START(BCM2708, "BCM2708") + .dt_compat = bcm2708_compat, + MACHINE_END + #endif ++ ++#ifdef CONFIG_ARCH_BCM2709 ++static const char * const bcm2709_compat[] = { ++ "brcm,bcm2709", ++ NULL ++}; ++ ++DT_MACHINE_START(BCM2709, "BCM2709") ++ .init_machine = bcm2835_init, ++ .reserve = bcm2835_board_reserve, ++ .dt_compat = bcm2709_compat, ++MACHINE_END ++#endif +diff --git a/arch/arm/mach-bcm2709/Kconfig b/arch/arm/mach-bcm2709/Kconfig +deleted file mode 100644 +index 41f407ac1db3a86e87941153c1832b9fce1ead5d..0000000000000000000000000000000000000000 +--- a/arch/arm/mach-bcm2709/Kconfig ++++ /dev/null +@@ -1,9 +0,0 @@ +-menu "Broadcom BCM2709 Implementations" +- depends on ARCH_BCM2709 +- +-config MACH_BCM2709 +- bool "Broadcom BCM2709 Development Platform" +- help +- Include support for the Broadcom(R) BCM2709 platform. +- +-endmenu +diff --git a/arch/arm/mach-bcm2709/Makefile b/arch/arm/mach-bcm2709/Makefile +deleted file mode 100644 +index 26cd67d3dc343dbd250fa97855a82c28bbd95af0..0000000000000000000000000000000000000000 +--- a/arch/arm/mach-bcm2709/Makefile ++++ /dev/null +@@ -1,5 +0,0 @@ +-# +-# Makefile for the linux kernel. +-# +- +-obj-$(CONFIG_MACH_BCM2709) += bcm2709.o +diff --git a/arch/arm/mach-bcm2709/Makefile.boot b/arch/arm/mach-bcm2709/Makefile.boot +deleted file mode 100644 +index 67039c3e0c48fa6b94f1147b3316f74afcecba9e..0000000000000000000000000000000000000000 +--- a/arch/arm/mach-bcm2709/Makefile.boot ++++ /dev/null +@@ -1,3 +0,0 @@ +- zreladdr-y := 0x00008000 +-params_phys-y := 0x00000100 +-initrd_phys-y := 0x00800000 +diff --git a/arch/arm/mach-bcm2709/bcm2709.c b/arch/arm/mach-bcm2709/bcm2709.c +deleted file mode 100644 +index 9f113736627175bdcb362e0eda469e09e3d5f2e0..0000000000000000000000000000000000000000 +--- a/arch/arm/mach-bcm2709/bcm2709.c ++++ /dev/null +@@ -1,56 +0,0 @@ +-/* +- * linux/arch/arm/mach-bcm2709/bcm2709.c +- * +- * Copyright (C) 2010 Broadcom +- * +- * This program is free software; you can redistribute it and/or modify +- * it under the terms of the GNU General Public License as published by +- * the Free Software Foundation; either version 2 of the License, or +- * (at your option) any later version. +- * +- * This program is distributed in the hope that it will be useful, +- * but WITHOUT ANY WARRANTY; without even the implied warranty of +- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- * GNU General Public License for more details. +- * +- * You should have received a copy of the GNU General Public License +- * along with this program; if not, write to the Free Software +- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +- */ +- +-#include +-#include +- +-#include +-#include +- +-static void __init bcm2709_init(void) +-{ +- struct device_node *np = of_find_node_by_path("/system"); +- u32 val; +- u64 val64; +- +- vc_cma_early_init(); +- +- if (!of_property_read_u32(np, "linux,revision", &val)) +- system_rev = val; +- if (!of_property_read_u64(np, "linux,serial", &val64)) +- system_serial_low = val64; +-} +- +-static void __init board_reserve(void) +-{ +- vc_cma_reserve(); +-} +- +-static const char * const bcm2709_compat[] = { +- "brcm,bcm2709", +- NULL +-}; +- +-DT_MACHINE_START(BCM2709, "BCM2709") +- /* Maintainer: Broadcom Europe Ltd. */ +- .init_machine = bcm2709_init, +- .reserve = board_reserve, +- .dt_compat = bcm2709_compat, +-MACHINE_END +diff --git a/drivers/clk/bcm/Makefile b/drivers/clk/bcm/Makefile +index 84dc055849c0cea70aad86898a0cac757a93cc9e..1d79bd2c36f004669d1dcf78fa681025c3f074e2 100644 +--- a/drivers/clk/bcm/Makefile ++++ b/drivers/clk/bcm/Makefile +@@ -4,8 +4,8 @@ obj-$(CONFIG_CLK_BCM_KONA) += clk-kona-setup.o + obj-$(CONFIG_CLK_BCM_KONA) += clk-bcm281xx.o + obj-$(CONFIG_CLK_BCM_KONA) += clk-bcm21664.o + obj-$(CONFIG_COMMON_CLK_IPROC) += clk-iproc-armpll.o clk-iproc-pll.o clk-iproc-asiu.o +-obj-$(CONFIG_ARCH_BCM2835)$(CONFIG_ARCH_BCM2709) += clk-bcm2835.o +-obj-$(CONFIG_ARCH_BCM2835)$(CONFIG_ARCH_BCM2709) += clk-bcm2835-aux.o ++obj-$(CONFIG_ARCH_BCM2835) += clk-bcm2835.o ++obj-$(CONFIG_ARCH_BCM2835) += clk-bcm2835-aux.o + obj-$(CONFIG_COMMON_CLK_IPROC) += clk-ns2.o + obj-$(CONFIG_ARCH_BCM_CYGNUS) += clk-cygnus.o + obj-$(CONFIG_ARCH_BCM_NSP) += clk-nsp.o +diff --git a/drivers/irqchip/Makefile b/drivers/irqchip/Makefile +index 662790c8fa9c972bbf3ac7f41b9f5eace912b69c..4c203b6b816357dce8d7a768ac81feaba91d431b 100644 +--- a/drivers/irqchip/Makefile ++++ b/drivers/irqchip/Makefile +@@ -5,8 +5,6 @@ obj-$(CONFIG_ATH79) += irq-ath79-cpu.o + obj-$(CONFIG_ATH79) += irq-ath79-misc.o + obj-$(CONFIG_ARCH_BCM2835) += irq-bcm2835.o + obj-$(CONFIG_ARCH_BCM2835) += irq-bcm2836.o +-obj-$(CONFIG_ARCH_BCM2709) += irq-bcm2835.o +-obj-$(CONFIG_ARCH_BCM2709) += irq-bcm2836.o + obj-$(CONFIG_ARCH_EXYNOS) += exynos-combiner.o + obj-$(CONFIG_ARCH_HIP04) += irq-hip04.o + obj-$(CONFIG_ARCH_LPC32XX) += irq-lpc32xx.o + +From 6e7c8eabcb8f4c0adc617e6b6e529823971234e1 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= +Date: Tue, 25 Oct 2016 17:32:02 +0200 +Subject: [PATCH 142/147] kconfig: Just use ARCH_BCM2835 for depends on +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +ARCH_BCM2708 and ARCH_BCM2709 selects ARCH_BCM2835 now, so the +dependencies can be simplified. + +Signed-off-by: Noralf Trønnes +--- + arch/arm/Kconfig.debug | 10 ++++------ + drivers/char/broadcom/Kconfig | 2 +- + drivers/char/hw_random/Kconfig | 2 +- + drivers/dma/Kconfig | 2 +- + drivers/gpio/Kconfig | 2 +- + drivers/gpu/drm/vc4/Kconfig | 2 +- + drivers/i2c/busses/Kconfig | 4 ++-- + drivers/mailbox/Kconfig | 2 +- + drivers/media/platform/bcm2835/Kconfig | 2 +- + drivers/misc/Kconfig | 2 +- + drivers/mmc/host/Kconfig | 4 ++-- + drivers/mtd/nand/Kconfig | 2 +- + drivers/pwm/Kconfig | 2 +- + drivers/soc/bcm/Kconfig | 2 +- + drivers/spi/Kconfig | 4 ++-- + drivers/tty/serial/8250/Kconfig | 2 +- + drivers/watchdog/Kconfig | 2 +- + sound/arm/Kconfig | 3 +-- + sound/soc/bcm/Kconfig | 2 +- + 19 files changed, 25 insertions(+), 28 deletions(-) + +diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug +index 11aa81fcaaa8e476ded9b9f41e30ddefa11c1cae..a9693b6987a6e41c69702f1003d0d8bd2279530e 100644 +--- a/arch/arm/Kconfig.debug ++++ b/arch/arm/Kconfig.debug +@@ -147,12 +147,12 @@ choice + + config DEBUG_BCM2835 + bool "Kernel low-level debugging on BCM2835 PL011 UART" +- depends on (ARCH_BCM2835 && ARCH_MULTI_V6) || ARCH_BCM2708 ++ depends on ARCH_BCM2835 && ARCH_MULTI_V6 + select DEBUG_UART_PL01X + + config DEBUG_BCM2836 + bool "Kernel low-level debugging on BCM2836 PL011 UART" +- depends on (ARCH_BCM2835 && ARCH_MULTI_V7) || ARCH_BCM2709 ++ depends on ARCH_BCM2835 && ARCH_MULTI_V7 + select DEBUG_UART_PL01X + + config DEBUG_BCM_5301X +@@ -1695,8 +1695,7 @@ config DEBUG_UART_8250_FLOW_CONTROL + + config DEBUG_UNCOMPRESS + bool +- depends on ARCH_MULTIPLATFORM || PLAT_SAMSUNG || ARM_SINGLE_ARMV7M || \ +- ARCH_BCM2708 || ARCH_BCM2709 ++ depends on ARCH_MULTIPLATFORM || PLAT_SAMSUNG || ARM_SINGLE_ARMV7M + default y if DEBUG_LL && !DEBUG_OMAP2PLUS_UART && \ + (!DEBUG_TEGRA_UART || !ZBOOT_ROM) + help +@@ -1713,8 +1712,7 @@ config DEBUG_UNCOMPRESS + config UNCOMPRESS_INCLUDE + string + default "debug/uncompress.h" if ARCH_MULTIPLATFORM || ARCH_MSM || \ +- PLAT_SAMSUNG || ARM_SINGLE_ARMV7M || \ +- ARCH_BCM2708 || ARCH_BCM2709 ++ PLAT_SAMSUNG || ARM_SINGLE_ARMV7M + default "mach/uncompress.h" + + config EARLY_PRINTK +diff --git a/drivers/char/broadcom/Kconfig b/drivers/char/broadcom/Kconfig +index 5489f19f05c620a30541e1a222d77b6ee4356d97..032164919350db25c586c36f0e05d3e4891fb835 100644 +--- a/drivers/char/broadcom/Kconfig ++++ b/drivers/char/broadcom/Kconfig +@@ -49,7 +49,7 @@ config BCM2835_DEVGPIOMEM + + config BCM2835_SMI_DEV + tristate "Character device driver for BCM2835 Secondary Memory Interface" +- depends on (MACH_BCM2708 || MACH_BCM2709 || ARCH_BCM2835) && BCM2835_SMI ++ depends on BCM2835_SMI + default m + help + This driver provides a character device interface (ioctl + read/write) to +diff --git a/drivers/char/hw_random/Kconfig b/drivers/char/hw_random/Kconfig +index 205b6b34d32c660d34c885e8391032d682c8870e..8c0770bf8881351c1d956d310c5d670684090770 100644 +--- a/drivers/char/hw_random/Kconfig ++++ b/drivers/char/hw_random/Kconfig +@@ -90,7 +90,7 @@ config HW_RANDOM_BCM63XX + + config HW_RANDOM_BCM2835 + tristate "Broadcom BCM2835 Random Number Generator support" +- depends on ARCH_BCM2835 || ARCH_BCM2708 || ARCH_BCM2709 || ARCH_BCM_NSP || ARCH_BCM_5301X ++ depends on ARCH_BCM2835 || ARCH_BCM_NSP || ARCH_BCM_5301X + default HW_RANDOM + ---help--- + This driver provides kernel-side support for the Random Number +diff --git a/drivers/dma/Kconfig b/drivers/dma/Kconfig +index 2a2108062687ff33ff540c987f6367fa3b8aad9d..61c3318e8c88e1cd88e4ccc20875321bb238d936 100644 +--- a/drivers/dma/Kconfig ++++ b/drivers/dma/Kconfig +@@ -108,7 +108,7 @@ config COH901318 + + config DMA_BCM2835 + tristate "BCM2835 DMA engine support" +- depends on ARCH_BCM2835 || ARCH_BCM2708 || ARCH_BCM2709 ++ depends on ARCH_BCM2835 + select DMA_ENGINE + select DMA_VIRTUAL_CHANNELS + +diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig +index 343adff44f82b78d0a09d41518a2890c602fc83d..71d7754587afbb4d6446ebd5448ef7e7c110c47e 100644 +--- a/drivers/gpio/Kconfig ++++ b/drivers/gpio/Kconfig +@@ -146,7 +146,7 @@ config GPIO_BCM_KONA + + config GPIO_BCM_VIRT + bool "Broadcom Virt GPIO" +- depends on OF_GPIO && RASPBERRYPI_FIRMWARE && (ARCH_BCM2835 || ARCH_BCM2708 || ARCH_BCM2709 || COMPILE_TEST) ++ depends on OF_GPIO && RASPBERRYPI_FIRMWARE && (ARCH_BCM2835 || COMPILE_TEST) + help + Turn on virtual GPIO support for Broadcom BCM283X chips. + +diff --git a/drivers/gpu/drm/vc4/Kconfig b/drivers/gpu/drm/vc4/Kconfig +index f6e938208b73512f20eab46a383ca91bf675a845..e53df59cb139f25f8e6ae916bca93abf0c49e063 100644 +--- a/drivers/gpu/drm/vc4/Kconfig ++++ b/drivers/gpu/drm/vc4/Kconfig +@@ -1,6 +1,6 @@ + config DRM_VC4 + tristate "Broadcom VC4 Graphics" +- depends on ARCH_BCM2835 || ARCH_BCM2708 || ARCH_BCM2709 || COMPILE_TEST ++ depends on ARCH_BCM2835 || COMPILE_TEST + depends on DRM + select DRM_KMS_HELPER + select DRM_KMS_CMA_HELPER +diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig +index 37f463232d6db91940763345600b095dbd8b5c58..9cd5735259276cfc823e6e51907a74db611a2ebc 100644 +--- a/drivers/i2c/busses/Kconfig ++++ b/drivers/i2c/busses/Kconfig +@@ -10,7 +10,7 @@ comment "PC SMBus host controller drivers" + + config I2C_BCM2708 + tristate "BCM2708 BSC" +- depends on MACH_BCM2708 || MACH_BCM2709 || ARCH_BCM2835 ++ depends on ARCH_BCM2835 + help + Enabling this option will add BSC (Broadcom Serial Controller) + support for the BCM2708. BSC is a Broadcom proprietary bus compatible +@@ -385,7 +385,7 @@ config I2C_AXXIA + + config I2C_BCM2835 + tristate "Broadcom BCM2835 I2C controller" +- depends on ARCH_BCM2835 || ARCH_BCM2708 || ARCH_BCM2709 ++ depends on ARCH_BCM2835 + help + If you say yes to this option, support will be included for the + BCM2835 I2C controller. +diff --git a/drivers/mailbox/Kconfig b/drivers/mailbox/Kconfig +index dc46b41705af8ea405dc961d9230058c7086db7d..7817d40d81e74ad282b1760b1dc50d090d10670d 100644 +--- a/drivers/mailbox/Kconfig ++++ b/drivers/mailbox/Kconfig +@@ -74,7 +74,7 @@ config ALTERA_MBOX + + config BCM2835_MBOX + tristate "BCM2835 Mailbox" +- depends on ARCH_BCM2835 || ARCH_BCM2708 || ARCH_BCM2709 ++ depends on ARCH_BCM2835 + help + An implementation of the BCM2385 Mailbox. It is used to invoke + the services of the Videocore. Say Y here if you want to use the +diff --git a/drivers/media/platform/bcm2835/Kconfig b/drivers/media/platform/bcm2835/Kconfig +index 99a5cbccf0f3fa66ad5190ec0942b0c232c3e824..58d5f9600d726cb20e6d04c54c58c53ac3a586d2 100644 +--- a/drivers/media/platform/bcm2835/Kconfig ++++ b/drivers/media/platform/bcm2835/Kconfig +@@ -2,7 +2,7 @@ + + config VIDEO_BCM2835 + bool "Broadcom BCM2835 camera interface driver" +- depends on VIDEO_V4L2 && (ARCH_BCM2708 || ARCH_BCM2709 || ARCH_BCM2835) ++ depends on VIDEO_V4L2 && ARCH_BCM2835 + ---help--- + Say Y here to enable camera host interface devices for + Broadcom BCM2835 SoC. This operates over the VCHIQ interface +diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig +index cff8c3df50c4b13d40fd1143eb86a66756bc097c..f34254bc14de8a33bb5922a680331b74f2fae4cb 100644 +--- a/drivers/misc/Kconfig ++++ b/drivers/misc/Kconfig +@@ -12,7 +12,7 @@ config SENSORS_LIS3LV02D + + config BCM2835_SMI + tristate "Broadcom 283x Secondary Memory Interface driver" +- depends on MACH_BCM2708 || MACH_BCM2709 || ARCH_BCM2835 ++ depends on ARCH_BCM2835 + default m + help + Driver for enabling and using Broadcom's Secondary/Slow Memory Interface. +diff --git a/drivers/mmc/host/Kconfig b/drivers/mmc/host/Kconfig +index 205d836b52e3bbcf8956fec98072c6ee7804a403..87d251e93913b216359383812cae196e91bf6cfb 100644 +--- a/drivers/mmc/host/Kconfig ++++ b/drivers/mmc/host/Kconfig +@@ -6,7 +6,7 @@ comment "MMC/SD/SDIO Host Controller Drivers" + + config MMC_BCM2835 + tristate "MMC support on BCM2835" +- depends on MACH_BCM2708 || MACH_BCM2709 || ARCH_BCM2835 ++ depends on ARCH_BCM2835 + help + This selects the MMC Interface on BCM2835. + +@@ -35,7 +35,7 @@ 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 ARCH_BCM2835 + help + This selects the SDHost controller on BCM2835/6. + +diff --git a/drivers/mtd/nand/Kconfig b/drivers/mtd/nand/Kconfig +index b6a0529b2c15f37983169e3429b67bedb71fb14e..7825a51f7a4fee6468d16debab661fa3d210daee 100644 +--- a/drivers/mtd/nand/Kconfig ++++ b/drivers/mtd/nand/Kconfig +@@ -43,7 +43,7 @@ config MTD_SM_COMMON + + config MTD_NAND_BCM2835_SMI + tristate "Use Broadcom's Secondary Memory Interface as a NAND controller (BCM283x)" +- depends on (MACH_BCM2708 || MACH_BCM2709 || ARCH_BCM2835) && BCM2835_SMI && MTD_NAND ++ depends on BCM2835_SMI + default m + help + Uses the BCM2835's SMI peripheral as a NAND controller. +diff --git a/drivers/pwm/Kconfig b/drivers/pwm/Kconfig +index 549cf7a786e27e19863ec0ad53a8b2836afd0c2a..80a566a00d0437dcc8fca7715c1109e7c2d35f67 100644 +--- a/drivers/pwm/Kconfig ++++ b/drivers/pwm/Kconfig +@@ -95,7 +95,7 @@ config PWM_BCM_KONA + + config PWM_BCM2835 + tristate "BCM2835 PWM support" +- depends on ARCH_BCM2835 || ARCH_BCM2708 || ARCH_BCM2709 ++ depends on ARCH_BCM2835 + help + PWM framework driver for BCM2835 controller (Raspberry Pi) + +diff --git a/drivers/soc/bcm/Kconfig b/drivers/soc/bcm/Kconfig +index 7d11a44f36d2e6f8697773cd49a72e53bca3a5a0..a39b0d58ddd0fdf0ac1cc7295f8aafb12546e226 100644 +--- a/drivers/soc/bcm/Kconfig ++++ b/drivers/soc/bcm/Kconfig +@@ -2,7 +2,7 @@ menu "Broadcom SoC drivers" + + config RASPBERRYPI_POWER + bool "Raspberry Pi power domain driver" +- depends on ARCH_BCM2835 || ARCH_BCM2708 || ARCH_BCM2709 || (COMPILE_TEST && OF) ++ depends on ARCH_BCM2835 || (COMPILE_TEST && OF) + depends on RASPBERRYPI_FIRMWARE=y + select PM_GENERIC_DOMAINS if PM + help +diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig +index 4b09be74af155c2a6e0590a6380242db40e6f914..d6fb8d4b778672fd006446c0eab710d35f6e6e3a 100644 +--- a/drivers/spi/Kconfig ++++ b/drivers/spi/Kconfig +@@ -94,7 +94,7 @@ config SPI_AXI_SPI_ENGINE + config SPI_BCM2835 + tristate "BCM2835 SPI controller" + depends on GPIOLIB +- depends on ARCH_BCM2835 || ARCH_BCM2708 || ARCH_BCM2709 || COMPILE_TEST ++ depends on ARCH_BCM2835 || COMPILE_TEST + help + This selects a driver for the Broadcom BCM2835 SPI master. + +@@ -105,7 +105,7 @@ config SPI_BCM2835 + + config SPI_BCM2835AUX + tristate "BCM2835 SPI auxiliary controller" +- depends on ((ARCH_BCM2835 || ARCH_BCM2708 || ARCH_BCM2709) && GPIOLIB) || COMPILE_TEST ++ depends on (ARCH_BCM2835 && GPIOLIB) || COMPILE_TEST + help + This selects a driver for the Broadcom BCM2835 SPI aux master. + +diff --git a/drivers/tty/serial/8250/Kconfig b/drivers/tty/serial/8250/Kconfig +index 748098f900d3474b5d535b24da76ad06e9690335..7c6f7afca5ddeed7b25fa6272246fc539bf31b04 100644 +--- a/drivers/tty/serial/8250/Kconfig ++++ b/drivers/tty/serial/8250/Kconfig +@@ -291,7 +291,7 @@ config SERIAL_8250_ACORN + + config SERIAL_8250_BCM2835AUX + tristate "BCM2835 auxiliar mini UART support" +- depends on ARCH_BCM2708 || ARCH_BCM2709 || ARCH_BCM2835 || COMPILE_TEST ++ depends on ARCH_BCM2835 || COMPILE_TEST + depends on SERIAL_8250 && SERIAL_8250_SHARE_IRQ + help + Support for the BCM2835 auxiliar mini UART. +diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig +index 9a28f1fdf93a79104049c03ed51abc31d34165d5..1bffe006ca9a843e2e71bc1a461a2d67e97480c0 100644 +--- a/drivers/watchdog/Kconfig ++++ b/drivers/watchdog/Kconfig +@@ -1440,7 +1440,7 @@ config BCM63XX_WDT + + config BCM2835_WDT + tristate "Broadcom BCM2835 hardware watchdog" +- depends on ARCH_BCM2835 || ARCH_BCM2708 || ARCH_BCM2709 ++ depends on ARCH_BCM2835 + select WATCHDOG_CORE + help + Watchdog driver for the built in watchdog hardware in Broadcom +diff --git a/sound/arm/Kconfig b/sound/arm/Kconfig +index 8883c2f3a3269742e2bf6fc995643fb282f3509a..02b6d263035ca18c9ce53229369dfb00915c260b 100644 +--- a/sound/arm/Kconfig ++++ b/sound/arm/Kconfig +@@ -34,8 +34,7 @@ config SND_PXA2XX_AC97 + + config SND_BCM2835 + tristate "BCM2835 ALSA driver" +- depends on (ARCH_BCM2708 || ARCH_BCM2709 || ARCH_BCM2835) \ +- && BCM2708_VCHIQ && SND ++ depends on ARCH_BCM2835 && BCM2708_VCHIQ && SND + select SND_PCM + help + Say Y or M if you want to support BCM2835 Alsa pcm card driver +diff --git a/sound/soc/bcm/Kconfig b/sound/soc/bcm/Kconfig +index aed7b47d8736ea3fb1810b0c77916855082f3b2d..d024377e8450fb5402dcb5ea27161f774b04a8ec 100644 +--- a/sound/soc/bcm/Kconfig ++++ b/sound/soc/bcm/Kconfig +@@ -1,6 +1,6 @@ + config SND_BCM2835_SOC_I2S + tristate "SoC Audio support for the Broadcom BCM2835 I2S module" +- depends on ARCH_BCM2835 || MACH_BCM2708 || MACH_BCM2709 || COMPILE_TEST ++ depends on ARCH_BCM2835 || COMPILE_TEST + select SND_SOC_GENERIC_DMAENGINE_PCM + select REGMAP_MMIO + help + +From 9a41750326ecc5a1089d52a5ca16a57b03b1eded Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Fri, 28 Oct 2016 13:55:36 +0100 +Subject: [PATCH 143/147] bcm270x: Use dma-ranges unconditionally on bcm2710 + +See: https://github.com/raspberrypi/linux/pull/1699 + +Signed-off-by: Phil Elwell +--- + arch/arm/boot/dts/bcm2710.dtsi | 4 ---- + 1 file changed, 4 deletions(-) + +diff --git a/arch/arm/boot/dts/bcm2710.dtsi b/arch/arm/boot/dts/bcm2710.dtsi +index 491594c918cf5da94fbb19a606edb0dd9a28c3a9..df1a4ce1cd4e570876b7785b357d6c31f66191a4 100644 +--- a/arch/arm/boot/dts/bcm2710.dtsi ++++ b/arch/arm/boot/dts/bcm2710.dtsi +@@ -9,9 +9,7 @@ + soc { + ranges = <0x7e000000 0x3f000000 0x01000000>, + <0x40000000 0x40000000 0x00040000>; +-#ifdef RPI364 + dma-ranges = <0xc0000000 0x00000000 0x3f000000>; +-#endif + + local_intc: local_intc { + compatible = "brcm,bcm2836-l1-intc"; +@@ -143,9 +141,7 @@ + + &intc { + compatible = "brcm,bcm2836-armctrl-ic"; +-#ifdef RPI364 + reg = <0x7e00b200 0x200>; +-#endif + interrupt-parent = <&local_intc>; + interrupts = <8>; + }; + +From ccf8a90ff33fcc6da99dce23ba08886e742be6ce Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= +Date: Thu, 27 Oct 2016 21:57:56 +0200 +Subject: [PATCH 144/147] BCM270X_DT: Use raspberrypi-power to turn on USB + power +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Use the raspberrypi-power driver to turn on USB power. + +Signed-off-by: Noralf Trønnes +--- + arch/arm/boot/dts/bcm2708-rpi.dtsi | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/arch/arm/boot/dts/bcm2708-rpi.dtsi b/arch/arm/boot/dts/bcm2708-rpi.dtsi +index d85c05901c8f55f822b89c32d198f15559a2b4b0..46cf8602c3b96e477b05b57dbfe5e349930c9d9a 100644 +--- a/arch/arm/boot/dts/bcm2708-rpi.dtsi ++++ b/arch/arm/boot/dts/bcm2708-rpi.dtsi +@@ -103,3 +103,7 @@ + &hdmi { + power-domains = <&power RPI_POWER_DOMAIN_HDMI>; + }; ++ ++&usb { ++ power-domains = <&power RPI_POWER_DOMAIN_USB>; ++}; + +From 1ae1228d385033e1476e2145cfdb274216394cd8 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= +Date: Thu, 27 Oct 2016 21:58:09 +0200 +Subject: [PATCH 145/147] firmware: bcm2835: Don't turn on USB power +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The raspberrypi-power driver is now used to turn on USB power. + +This partly reverts commit: +firmware: bcm2835: Support ARCH_BCM270x + +Signed-off-by: Noralf Trønnes +--- + drivers/firmware/raspberrypi.c | 22 ---------------------- + 1 file changed, 22 deletions(-) + +diff --git a/drivers/firmware/raspberrypi.c b/drivers/firmware/raspberrypi.c +index b980d531b35b9981a88356ef1c8a7b868a85f2b5..3f070bd38a91511c986e3fb114b15bd4ac32634c 100644 +--- a/drivers/firmware/raspberrypi.c ++++ b/drivers/firmware/raspberrypi.c +@@ -185,25 +185,6 @@ rpi_firmware_print_firmware_revision(struct rpi_firmware *fw) + } + } + +-static int raspberrypi_firmware_set_power(struct rpi_firmware *fw, +- u32 domain, bool on) +-{ +- struct { +- u32 domain; +- u32 on; +- } packet; +- int ret; +- +- packet.domain = domain; +- packet.on = on; +- ret = rpi_firmware_property(fw, RPI_FIRMWARE_SET_POWER_STATE, +- &packet, sizeof(packet)); +- if (!ret && packet.on != on) +- ret = -EINVAL; +- +- return ret; +-} +- + static int rpi_firmware_probe(struct platform_device *pdev) + { + struct device *dev = &pdev->dev; +@@ -232,9 +213,6 @@ static int rpi_firmware_probe(struct platform_device *pdev) + + rpi_firmware_print_firmware_revision(fw); + +- if (raspberrypi_firmware_set_power(fw, 3, true)) +- dev_err(dev, "failed to turn on USB power\n"); +- + return 0; + } + + +From e7924c4cfb4a8dcc76539698914e748e4312dc19 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Mon, 31 Oct 2016 17:35:31 +0000 +Subject: [PATCH 146/147] bcm2835: Increase coherent allocation to 1M for + dwc_otg bounce buffers + +--- + arch/arm/mach-bcm/board_bcm2835.c | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +diff --git a/arch/arm/mach-bcm/board_bcm2835.c b/arch/arm/mach-bcm/board_bcm2835.c +index 6ce49dea7856b243b38f180231afd25b57dee729..efbd18020479c1cab40ce680446a4259c62c83cb 100644 +--- a/arch/arm/mach-bcm/board_bcm2835.c ++++ b/arch/arm/mach-bcm/board_bcm2835.c +@@ -22,6 +22,8 @@ + #include + #include + ++#include ++ + static void __init bcm2835_init(void) + { + struct device_node *np = of_find_node_by_path("/system"); +@@ -37,6 +39,12 @@ static void __init bcm2835_init(void) + system_serial_low = val64; + } + ++static void __init bcm2835_init_early(void) ++{ ++ /* dwc_otg needs this for bounce buffers on non-aligned transfers */ ++ init_dma_coherent_pool_size(SZ_1M); ++} ++ + static void __init bcm2835_board_reserve(void) + { + vc_cma_reserve(); +@@ -55,6 +63,7 @@ static const char * const bcm2835_compat[] = { + DT_MACHINE_START(BCM2835, "BCM2835") + .init_machine = bcm2835_init, + .reserve = bcm2835_board_reserve, ++ .init_early = bcm2835_init_early, + .dt_compat = bcm2835_compat + MACHINE_END + +@@ -67,6 +76,7 @@ static const char * const bcm2708_compat[] = { + DT_MACHINE_START(BCM2708, "BCM2708") + .init_machine = bcm2835_init, + .reserve = bcm2835_board_reserve, ++ .init_early = bcm2835_init_early, + .dt_compat = bcm2708_compat, + MACHINE_END + #endif +@@ -80,6 +90,7 @@ static const char * const bcm2709_compat[] = { + DT_MACHINE_START(BCM2709, "BCM2709") + .init_machine = bcm2835_init, + .reserve = bcm2835_board_reserve, ++ .init_early = bcm2835_init_early, + .dt_compat = bcm2709_compat, + MACHINE_END + #endif + +From 0d455ab582c43e749bddf333de9ed04c5893f590 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Mon, 31 Oct 2016 17:35:57 +0000 +Subject: [PATCH 147/147] dwc_otg: Warn if dma_alloc_coherent fails + +--- + drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c b/drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c +index 50aaeacdd12fff93d7a9cf1c54612367406c6bee..e799f15f294706ad7ac328dcb9ce68fbd0e71d38 100644 +--- a/drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c ++++ b/drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c +@@ -270,6 +270,7 @@ static void *dwc_otg_pcd_alloc_buffer(struct usb_ep *usb_ep, unsigned bytes, + } + + buf = dma_alloc_coherent(NULL, bytes, dma, gfp_flags); ++ WARN_ON(!buf); + + /* Check dword alignment */ + if (((int)buf & 0x3UL) != 0) {