bcm27xx: refresh patches

Refresh patches

Signed-off-by: Joshua Covington <joshuacov@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23703
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
This commit is contained in:
Joshua Covington authored and Jonas Jelonek committed 2026-07-07 08:48:38 +02:00
1 parent 348fe4f652
commit 41ab1ae610
779 files changed
+2655 -9839

No files matched your search

@@ -9,11 +9,9 @@ This reverts commit 83b2a8fe43bda0c11981ad6afa5dd0104d78be28.
drivers/spi/spidev.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/spi/spidev.c b/drivers/spi/spidev.c
index 4d53c394101a..461d3a0009a8 100644
--- a/drivers/spi/spidev.c
+++ b/drivers/spi/spidev.c
@@ -415,7 +415,7 @@ spidev_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
@@ -415,7 +415,7 @@ spidev_ioctl(struct file *filp, unsigned
}
if (ctlr->use_gpio_descriptors && spi_get_csgpiod(spi, 0))
@@ -22,6 +20,3 @@ index 4d53c394101a..461d3a0009a8 100644
tmp |= spi->mode & ~SPI_MODE_MASK;
spi->mode = tmp & SPI_MODE_USER_MASK;
--
2.54.0
@@ -8,11 +8,9 @@ This reverts commit 522c35e08b53f157ad3e51848caa861b258001e4.
arch/arm/boot/dts/broadcom/bcm2711.dtsi | 15 ---------------
1 file changed, 15 deletions(-)
diff --git a/arch/arm/boot/dts/broadcom/bcm2711.dtsi b/arch/arm/boot/dts/broadcom/bcm2711.dtsi
index c06d9f5e53c8..561851182672 100644
--- a/arch/arm/boot/dts/broadcom/bcm2711.dtsi
+++ b/arch/arm/boot/dts/broadcom/bcm2711.dtsi
@@ -602,21 +602,6 @@ genet_mdio: mdio@e14 {
@@ -602,21 +602,6 @@
};
};
@@ -34,6 +32,3 @@ index c06d9f5e53c8..561851182672 100644
v3d: gpu@7ec00000 {
compatible = "brcm,2711-v3d";
reg = <0x0 0x7ec00000 0x4000>,
--
2.54.0
@@ -8,11 +8,9 @@ This reverts commit 03e607cbb2931374db1825f371e9c7f28526d3f4.
drivers/usb/phy/phy-generic.c | 7 -------
1 file changed, 7 deletions(-)
diff --git a/drivers/usb/phy/phy-generic.c b/drivers/usb/phy/phy-generic.c
index 8423be59ec0f..c31ac36dcfa9 100644
--- a/drivers/usb/phy/phy-generic.c
+++ b/drivers/usb/phy/phy-generic.c
@@ -256,13 +256,6 @@ int usb_phy_gen_create_phy(struct device *dev, struct usb_phy_generic *nop)
@@ -256,13 +256,6 @@ int usb_phy_gen_create_phy(struct device
return dev_err_probe(dev, PTR_ERR(nop->vcc),
"could not get vcc regulator\n");
@@ -26,6 +24,3 @@ index 8423be59ec0f..c31ac36dcfa9 100644
nop->dev = dev;
nop->phy.dev = nop->dev;
nop->phy.label = "nop-xceiv";
--
2.54.0
@@ -10,11 +10,9 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
drivers/pci/probe.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
index 23833fd7265e..c12dadaba357 100644
--- a/drivers/pci/probe.c
+++ b/drivers/pci/probe.c
@@ -1057,9 +1057,6 @@ static int pci_register_host_bridge(struct pci_host_bridge *bridge)
@@ -1057,9 +1057,6 @@ static int pci_register_host_bridge(stru
else
pr_info("PCI host bridge to bus %s\n", name);
@@ -24,6 +22,3 @@ index 23833fd7265e..c12dadaba357 100644
/* Check if the boot configuration by FW needs to be preserved */
bridge->preserve_config = pci_preserve_config(bridge);
--
2.54.0
@@ -24,11 +24,9 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
drivers/of/overlay.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/of/overlay.c b/drivers/of/overlay.c
index 255e8362f600..d57bff53551e 100644
--- a/drivers/of/overlay.c
+++ b/drivers/of/overlay.c
@@ -247,6 +247,8 @@ static struct property *dup_and_fixup_symbol_prop(
@@ -247,6 +247,8 @@ static struct property *dup_and_fixup_sy
if (!target_path)
return NULL;
target_path_len = strlen(target_path);
@@ -37,6 +35,3 @@ index 255e8362f600..d57bff53551e 100644
new_prop = kzalloc(sizeof(*new_prop), GFP_KERNEL);
if (!new_prop)
--
2.54.0
@@ -12,11 +12,9 @@ Define these members unconditionally, so that there is no ABI change.
include/linux/module.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/linux/module.h b/include/linux/module.h
index 4decae2b1675..53def2266388 100644
--- a/include/linux/module.h
+++ b/include/linux/module.h
@@ -507,7 +507,7 @@ struct module {
@@ -509,7 +509,7 @@ struct module {
unsigned int num_bpf_raw_events;
struct bpf_raw_event_map *bpf_raw_events;
#endif
@@ -25,6 +23,3 @@ index 4decae2b1675..53def2266388 100644
unsigned int btf_data_size;
unsigned int btf_base_data_size;
void *btf_data;
--
2.54.0
@@ -17,11 +17,9 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
kernel/dma/direct.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/kernel/dma/direct.h b/kernel/dma/direct.h
index 62f0d9d0ba02..06594cc8966e 100644
--- a/kernel/dma/direct.h
+++ b/kernel/dma/direct.h
@@ -94,7 +94,7 @@ static inline dma_addr_t dma_direct_map_phys(struct device *dev,
@@ -94,7 +94,7 @@ static inline dma_addr_t dma_direct_map_
}
if (attrs & DMA_ATTR_MMIO) {
@@ -30,6 +28,3 @@ index 62f0d9d0ba02..06594cc8966e 100644
if (unlikely(!dma_capable(dev, dma_addr, size, false)))
goto err_overflow;
} else {
--
2.54.0
@@ -8,11 +8,9 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
include/soc/bcm2835/raspberrypi-firmware.h | 30 +++++++++++++++++++++-
1 file changed, 29 insertions(+), 1 deletion(-)
diff --git a/include/soc/bcm2835/raspberrypi-firmware.h b/include/soc/bcm2835/raspberrypi-firmware.h
index e1f87fbfe554..3e71d45477a4 100644
--- a/include/soc/bcm2835/raspberrypi-firmware.h
+++ b/include/soc/bcm2835/raspberrypi-firmware.h
@@ -36,6 +36,8 @@ struct rpi_firmware_property_tag_header {
@@ -36,6 +36,8 @@ struct rpi_firmware_property_tag_header
enum rpi_firmware_property_tag {
RPI_FIRMWARE_PROPERTY_END = 0,
RPI_FIRMWARE_GET_FIRMWARE_REVISION = 0x00000001,
@@ -105,6 +103,3 @@ index e1f87fbfe554..3e71d45477a4 100644
/**
* struct rpi_firmware_clk_rate_request - Firmware Request for a rate
* @id: ID of the clock being queried
--
2.54.0
@@ -8,11 +8,9 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
drivers/gpu/drm/drm_atomic_helper.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
index bbec1c184f65..241e560357ec 100644
--- a/drivers/gpu/drm/drm_atomic_helper.c
+++ b/drivers/gpu/drm/drm_atomic_helper.c
@@ -445,6 +445,11 @@ mode_fixup(struct drm_atomic_state *state)
@@ -445,6 +445,11 @@ mode_fixup(struct drm_atomic_state *stat
new_crtc_state =
drm_atomic_get_new_crtc_state(state, new_conn_state->crtc);
@@ -24,6 +22,3 @@ index bbec1c184f65..241e560357ec 100644
/*
* Each encoder has at most one connector (since we always steal
* it away), so we won't call ->mode_fixup twice.
--
2.54.0
@@ -14,11 +14,9 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
drivers/gpu/drm/drm_color_mgmt.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/drm_color_mgmt.c b/drivers/gpu/drm/drm_color_mgmt.c
index 131c1c9ae92f..988d4b6781ad 100644
--- a/drivers/gpu/drm/drm_color_mgmt.c
+++ b/drivers/gpu/drm/drm_color_mgmt.c
@@ -332,7 +332,9 @@ static int drm_crtc_legacy_gamma_set(struct drm_crtc *crtc,
@@ -332,7 +332,9 @@ static int drm_crtc_legacy_gamma_set(str
replaced = drm_property_replace_blob(&crtc_state->degamma_lut,
use_gamma_lut ? NULL : blob);
replaced |= drm_property_replace_blob(&crtc_state->ctm, NULL);
@@ -29,6 +27,3 @@ index 131c1c9ae92f..988d4b6781ad 100644
use_gamma_lut ? blob : NULL);
crtc_state->color_mgmt_changed |= replaced;
--
2.54.0
@@ -16,11 +16,9 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
include/drm/drm_mipi_dsi.h | 36 +++++++++++++++++++++++++-----------
1 file changed, 25 insertions(+), 11 deletions(-)
diff --git a/include/drm/drm_mipi_dsi.h b/include/drm/drm_mipi_dsi.h
index 3aba7b380c8d..d7588f189a59 100644
--- a/include/drm/drm_mipi_dsi.h
+++ b/include/drm/drm_mipi_dsi.h
@@ -114,27 +114,41 @@ struct mipi_dsi_host *of_find_mipi_dsi_host_by_node(struct device_node *node);
@@ -114,27 +114,41 @@ struct mipi_dsi_host *of_find_mipi_dsi_h
/* DSI mode flags */
@@ -73,6 +71,3 @@ index 3aba7b380c8d..d7588f189a59 100644
#define MIPI_DSI_MODE_LPM BIT(11)
/* transmit data ending at the same time for all lanes within one hsync */
#define MIPI_DSI_HS_PKT_END_ALIGNED BIT(12)
--
2.54.0
@@ -11,11 +11,9 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
drivers/gpu/drm/bridge/tc358762.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/bridge/tc358762.c b/drivers/gpu/drm/bridge/tc358762.c
index 98df3e667d4a..68eec9718595 100644
--- a/drivers/gpu/drm/bridge/tc358762.c
+++ b/drivers/gpu/drm/bridge/tc358762.c
@@ -298,7 +298,7 @@ static int tc358762_probe(struct mipi_dsi_device *dsi)
@@ -298,7 +298,7 @@ static int tc358762_probe(struct mipi_ds
ret = mipi_dsi_attach(dsi);
if (ret < 0) {
drm_bridge_remove(&ctx->bridge);
@@ -24,6 +22,3 @@ index 98df3e667d4a..68eec9718595 100644
}
return ret;
--
2.54.0
@@ -12,11 +12,9 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
include/drm/drm_plane.h | 36 +++++++++++++++++++++++
5 files changed, 97 insertions(+)
diff --git a/drivers/gpu/drm/drm_atomic_state_helper.c b/drivers/gpu/drm/drm_atomic_state_helper.c
index 7142e163e618..a6414a2c488e 100644
--- a/drivers/gpu/drm/drm_atomic_state_helper.c
+++ b/drivers/gpu/drm/drm_atomic_state_helper.c
@@ -268,6 +268,20 @@ void __drm_atomic_helper_plane_state_reset(struct drm_plane_state *plane_state,
@@ -268,6 +268,20 @@ void __drm_atomic_helper_plane_state_res
plane_state->color_range = val;
}
@@ -37,11 +35,9 @@ index 7142e163e618..a6414a2c488e 100644
if (plane->zpos_property) {
if (!drm_object_property_get_default_value(&plane->base,
plane->zpos_property,
diff --git a/drivers/gpu/drm/drm_atomic_uapi.c b/drivers/gpu/drm/drm_atomic_uapi.c
index 85dbdaa4a2e2..8111efb2974b 100644
--- a/drivers/gpu/drm/drm_atomic_uapi.c
+++ b/drivers/gpu/drm/drm_atomic_uapi.c
@@ -540,6 +540,10 @@ static int drm_atomic_plane_set_property(struct drm_plane *plane,
@@ -540,6 +540,10 @@ static int drm_atomic_plane_set_property
state->color_encoding = val;
} else if (property == plane->color_range_property) {
state->color_range = val;
@@ -52,7 +48,7 @@ index 85dbdaa4a2e2..8111efb2974b 100644
} else if (property == config->prop_fb_damage_clips) {
ret = drm_property_replace_blob_from_id(dev,
&state->fb_damage_clips,
@@ -622,6 +626,10 @@ drm_atomic_plane_get_property(struct drm_plane *plane,
@@ -622,6 +626,10 @@ drm_atomic_plane_get_property(struct drm
*val = state->color_encoding;
} else if (property == plane->color_range_property) {
*val = state->color_range;
@@ -63,15 +59,12 @@ index 85dbdaa4a2e2..8111efb2974b 100644
} else if (property == config->prop_fb_damage_clips) {
*val = (state->fb_damage_clips) ?
state->fb_damage_clips->base.id : 0;
diff --git a/drivers/gpu/drm/drm_color_mgmt.c b/drivers/gpu/drm/drm_color_mgmt.c
index 988d4b6781ad..acfce7963bdd 100644
--- a/drivers/gpu/drm/drm_color_mgmt.c
+++ b/drivers/gpu/drm/drm_color_mgmt.c
@@ -594,6 +594,42 @@ int drm_plane_create_color_properties(struct drm_plane *plane,
}
@@ -595,6 +595,42 @@ int drm_plane_create_color_properties(st
EXPORT_SYMBOL(drm_plane_create_color_properties);
+/**
/**
+ * drm_plane_create_chroma_siting_properties - chroma siting related plane properties
+ * @plane: plane object
+ *
@@ -107,14 +100,13 @@ index 988d4b6781ad..acfce7963bdd 100644
+}
+EXPORT_SYMBOL(drm_plane_create_chroma_siting_properties);
+
/**
+/**
* drm_color_lut_check - check validity of lookup table
* @lut: property blob containing LUT to check
diff --git a/include/drm/drm_color_mgmt.h b/include/drm/drm_color_mgmt.h
index eccb71ab335a..2d9a96c22801 100644
* @tests: bitmask of tests to run
--- a/include/drm/drm_color_mgmt.h
+++ b/include/drm/drm_color_mgmt.h
@@ -91,6 +91,9 @@ int drm_plane_create_color_properties(struct drm_plane *plane,
@@ -91,6 +91,9 @@ int drm_plane_create_color_properties(st
enum drm_color_encoding default_encoding,
enum drm_color_range default_range);
@@ -124,15 +116,12 @@ index eccb71ab335a..2d9a96c22801 100644
/**
* enum drm_color_lut_tests - hw-specific LUT tests to perform
*
diff --git a/include/drm/drm_plane.h b/include/drm/drm_plane.h
index 01479dd94e76..744d6b7bfe9b 100644
--- a/include/drm/drm_plane.h
+++ b/include/drm/drm_plane.h
@@ -183,6 +183,24 @@ struct drm_plane_state {
*/
@@ -184,6 +184,24 @@ struct drm_plane_state {
enum drm_color_range color_range;
+ /**
/**
+ * @chroma_siting_h:
+ *
+ * Location of chroma samples horizontally compared to luma
@@ -150,9 +139,10 @@ index 01479dd94e76..744d6b7bfe9b 100644
+ */
+ int32_t chroma_siting_v;
+
/**
+ /**
* @fb_damage_clips:
*
* Blob representing damage (area in plane framebuffer that changed
@@ -803,6 +821,24 @@ struct drm_plane {
* @kmsg_panic: Used to register a panic notifier for this plane
*/
@@ -178,6 +168,3 @@ index 01479dd94e76..744d6b7bfe9b 100644
};
#define obj_to_plane(x) container_of(x, struct drm_plane, base)
--
2.54.0
@@ -57,11 +57,9 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
drivers/gpu/drm/msm/msm_atomic.c | 2 ++
3 files changed, 15 insertions(+), 13 deletions(-)
diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
index 241e560357ec..46a3c24561c2 100644
--- a/drivers/gpu/drm/drm_atomic_helper.c
+++ b/drivers/gpu/drm/drm_atomic_helper.c
@@ -1892,13 +1892,6 @@ drm_atomic_helper_wait_for_vblanks(struct drm_device *dev,
@@ -1892,13 +1892,6 @@ drm_atomic_helper_wait_for_vblanks(struc
int i, ret;
unsigned int crtc_mask = 0;
@@ -75,24 +73,22 @@ index 241e560357ec..46a3c24561c2 100644
for_each_oldnew_crtc_in_state(state, crtc, old_crtc_state, new_crtc_state, i) {
if (!new_crtc_state->active)
continue;
@@ -2548,12 +2541,6 @@ int drm_atomic_helper_setup_commit(struct drm_atomic_state *state,
@@ -2547,12 +2540,6 @@ int drm_atomic_helper_setup_commit(struc
complete_all(&commit->flip_done);
continue;
}
-
- /* Legacy cursor updates are fully unsynced. */
- if (state->legacy_cursor_update) {
- complete_all(&commit->flip_done);
- continue;
- }
-
if (!new_crtc_state->event) {
commit->event = kzalloc(sizeof(*commit->event),
GFP_KERNEL);
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index 3f40028e79cf..fac9f65a6948 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -7653,6 +7653,19 @@ int intel_atomic_commit(struct drm_device *dev, struct drm_atomic_state *_state,
@@ -7653,6 +7653,19 @@ int intel_atomic_commit(struct drm_devic
state->base.legacy_cursor_update = false;
}
@@ -112,11 +108,9 @@ index 3f40028e79cf..fac9f65a6948 100644
ret = intel_atomic_prepare_commit(state);
if (ret) {
drm_dbg_atomic(display->drm,
diff --git a/drivers/gpu/drm/msm/msm_atomic.c b/drivers/gpu/drm/msm/msm_atomic.c
index 87a91148a731..26841fd080b1 100644
--- a/drivers/gpu/drm/msm/msm_atomic.c
+++ b/drivers/gpu/drm/msm/msm_atomic.c
@@ -255,6 +255,8 @@ void msm_atomic_commit_tail(struct drm_atomic_state *state)
@@ -255,6 +255,8 @@ void msm_atomic_commit_tail(struct drm_a
/* async updates are limited to single-crtc updates: */
WARN_ON(crtc_mask != drm_crtc_mask(async_crtc));
@@ -125,6 +119,3 @@ index 87a91148a731..26841fd080b1 100644
/*
* Start timer if we don't already have an update pending
* on this crtc:
--
2.54.0
@@ -17,11 +17,9 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
drivers/gpu/drm/drm_atomic_uapi.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/drivers/gpu/drm/drm_atomic_uapi.c b/drivers/gpu/drm/drm_atomic_uapi.c
index 8111efb2974b..67b330dbf628 100644
--- a/drivers/gpu/drm/drm_atomic_uapi.c
+++ b/drivers/gpu/drm/drm_atomic_uapi.c
@@ -681,6 +681,7 @@ static int drm_atomic_connector_set_property(struct drm_connector *connector,
@@ -681,6 +681,7 @@ static int drm_atomic_connector_set_prop
{
struct drm_device *dev = connector->dev;
struct drm_mode_config *config = &dev->mode_config;
@@ -29,7 +27,7 @@ index 8111efb2974b..67b330dbf628 100644
bool replaced = false;
int ret;
@@ -709,12 +710,16 @@ static int drm_atomic_connector_set_property(struct drm_connector *connector,
@@ -709,12 +710,16 @@ static int drm_atomic_connector_set_prop
state->tv.subconnector = val;
} else if (property == config->tv_left_margin_property) {
state->tv.margins.left = val;
@@ -46,7 +44,7 @@ index 8111efb2974b..67b330dbf628 100644
} else if (property == config->legacy_tv_mode_property) {
state->tv.legacy_mode = val;
} else if (property == config->tv_mode_property) {
@@ -799,6 +804,12 @@ static int drm_atomic_connector_set_property(struct drm_connector *connector,
@@ -799,6 +804,12 @@ static int drm_atomic_connector_set_prop
return -EINVAL;
}
@@ -59,6 +57,3 @@ index 8111efb2974b..67b330dbf628 100644
return 0;
}
--
2.54.0
@@ -8,11 +8,9 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
arch/arm64/kernel/setup.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/arm64/kernel/setup.c b/arch/arm64/kernel/setup.c
index 23c05dc7a8f2..25644f0c0fe5 100644
--- a/arch/arm64/kernel/setup.c
+++ b/arch/arm64/kernel/setup.c
@@ -215,9 +215,9 @@ static void __init request_standard_resources(void)
@@ -215,9 +215,9 @@ static void __init request_standard_reso
size_t res_size;
kernel_code.start = __pa_symbol(_text);
@@ -24,6 +22,3 @@ index 23c05dc7a8f2..25644f0c0fe5 100644
insert_resource(&iomem_resource, &kernel_code);
insert_resource(&iomem_resource, &kernel_data);
--
2.54.0
File diff suppressed because it is too large. Load diff
@@ -45,11 +45,9 @@ Signed-off-by: Alberto Solavagione <albertosolavagione30@gmail.com>
drivers/clk/bcm/clk-bcm2835.c | 19 +++++++++++++++++--
1 file changed, 17 insertions(+), 2 deletions(-)
diff --git a/drivers/clk/bcm/clk-bcm2835.c b/drivers/clk/bcm/clk-bcm2835.c
index 02215ea79403..3e1568938681 100644
--- a/drivers/clk/bcm/clk-bcm2835.c
+++ b/drivers/clk/bcm/clk-bcm2835.c
@@ -2324,8 +2324,15 @@ static int bcm2835_clk_probe(struct platform_device *pdev)
@@ -2324,8 +2324,15 @@ static int bcm2835_clk_probe(struct plat
if (ret)
return ret;
@@ -66,7 +64,7 @@ index 02215ea79403..3e1568938681 100644
}
static const struct cprman_plat_data cprman_bcm2835_plat_data = {
@@ -2351,7 +2358,15 @@ static struct platform_driver bcm2835_clk_driver = {
@@ -2351,7 +2358,15 @@ static struct platform_driver bcm2835_cl
.probe = bcm2835_clk_probe,
};
@@ -83,6 +81,3 @@ index 02215ea79403..3e1568938681 100644
MODULE_AUTHOR("Eric Anholt <eric@anholt.net>");
MODULE_DESCRIPTION("BCM2835 clock driver");
--
2.54.0
@@ -12,11 +12,9 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
drivers/clk/bcm/clk-bcm2835.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/drivers/clk/bcm/clk-bcm2835.c b/drivers/clk/bcm/clk-bcm2835.c
index 3e1568938681..3a28bb531c78 100644
--- a/drivers/clk/bcm/clk-bcm2835.c
+++ b/drivers/clk/bcm/clk-bcm2835.c
@@ -1412,6 +1412,11 @@ bcm2835_register_pll_divider(struct bcm2835_cprman *cprman,
@@ -1412,6 +1412,11 @@ bcm2835_register_pll_divider(struct bcm2
divider->div.hw.init = &init;
divider->div.table = NULL;
@@ -28,6 +26,3 @@ index 3e1568938681..3a28bb531c78 100644
divider->cprman = cprman;
divider->data = divider_data;
--
2.54.0
@@ -15,11 +15,9 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
drivers/clk/bcm/clk-bcm2835.c | 43 +++++++++++++++++++++++++++++++++--
1 file changed, 41 insertions(+), 2 deletions(-)
diff --git a/drivers/clk/bcm/clk-bcm2835.c b/drivers/clk/bcm/clk-bcm2835.c
index 3a28bb531c78..785df427de58 100644
--- a/drivers/clk/bcm/clk-bcm2835.c
+++ b/drivers/clk/bcm/clk-bcm2835.c
@@ -1340,6 +1340,8 @@ static const struct clk_ops bcm2835_vpu_clock_clk_ops = {
@@ -1340,6 +1340,8 @@ static const struct clk_ops bcm2835_vpu_
.debug_init = bcm2835_clock_debug_init,
};
@@ -28,7 +26,7 @@ index 3a28bb531c78..785df427de58 100644
static struct clk_hw *bcm2835_register_pll(struct bcm2835_cprman *cprman,
const void *data)
{
@@ -1357,6 +1359,9 @@ static struct clk_hw *bcm2835_register_pll(struct bcm2835_cprman *cprman,
@@ -1357,6 +1359,9 @@ static struct clk_hw *bcm2835_register_p
init.ops = &bcm2835_pll_clk_ops;
init.flags = pll_data->flags | CLK_IGNORE_UNUSED;
@@ -38,7 +36,7 @@ index 3a28bb531c78..785df427de58 100644
pll = kzalloc(sizeof(*pll), GFP_KERNEL);
if (!pll)
return NULL;
@@ -1413,8 +1418,10 @@ bcm2835_register_pll_divider(struct bcm2835_cprman *cprman,
@@ -1413,8 +1418,10 @@ bcm2835_register_pll_divider(struct bcm2
divider->div.table = NULL;
if (!(cprman_read(cprman, divider_data->cm_reg) & divider_data->hold_mask)) {
@@ -51,11 +49,10 @@ index 3a28bb531c78..785df427de58 100644
}
divider->cprman = cprman;
@@ -1470,6 +1477,15 @@ static struct clk_hw *bcm2835_register_clock(struct bcm2835_cprman *cprman,
init.name = clock_data->name;
@@ -1471,6 +1478,15 @@ static struct clk_hw *bcm2835_register_c
init.flags = clock_data->flags | CLK_IGNORE_UNUSED;
+ /*
/*
+ * Some GPIO clocks for ethernet/wifi PLLs are marked as
+ * critical (since some platforms use them), but if the
+ * firmware didn't have them turned on then they clearly
@@ -64,10 +61,11 @@ index 3a28bb531c78..785df427de58 100644
+ if ((cprman_read(cprman, clock_data->ctl_reg) & CM_ENABLE) == 0)
+ init.flags &= ~CLK_IS_CRITICAL;
+
/*
+ /*
* Pass the CLK_SET_RATE_PARENT flag if we are allowed to propagate
* rate changes on at least of the parents.
@@ -2250,6 +2266,8 @@ static const struct bcm2835_clk_desc clk_desc_array[] = {
*/
@@ -2250,6 +2266,8 @@ static const struct bcm2835_clk_desc clk
.ctl_reg = CM_PERIICTL),
};
@@ -76,7 +74,7 @@ index 3a28bb531c78..785df427de58 100644
/*
* Permanently take a reference on the parent of the SDRAM clock.
*
@@ -2269,6 +2287,19 @@ static int bcm2835_mark_sdc_parent_critical(struct clk *sdc)
@@ -2269,6 +2287,19 @@ static int bcm2835_mark_sdc_parent_criti
return clk_prepare_enable(parent);
}
@@ -96,7 +94,7 @@ index 3a28bb531c78..785df427de58 100644
static int bcm2835_clk_probe(struct platform_device *pdev)
{
struct device *dev = &pdev->dev;
@@ -2278,6 +2309,7 @@ static int bcm2835_clk_probe(struct platform_device *pdev)
@@ -2278,6 +2309,7 @@ static int bcm2835_clk_probe(struct plat
const size_t asize = ARRAY_SIZE(clk_desc_array);
const struct cprman_plat_data *pdata;
size_t i;
@@ -104,7 +102,7 @@ index 3a28bb531c78..785df427de58 100644
int ret;
pdata = of_device_get_match_data(&pdev->dev);
@@ -2296,6 +2328,13 @@ static int bcm2835_clk_probe(struct platform_device *pdev)
@@ -2296,6 +2328,13 @@ static int bcm2835_clk_probe(struct plat
if (IS_ERR(cprman->regs))
return PTR_ERR(cprman->regs);
@@ -118,6 +116,3 @@ index 3a28bb531c78..785df427de58 100644
memcpy(cprman->real_parent_names, cprman_parent_names,
sizeof(cprman_parent_names));
of_clk_parent_fill(dev->of_node, cprman->real_parent_names,
--
2.54.0
@@ -30,8 +30,6 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
drivers/clk/bcm/clk-bcm2835.c | 39 ++++++++++++++++++++++++++++++++++-
1 file changed, 38 insertions(+), 1 deletion(-)
diff --git a/drivers/clk/bcm/clk-bcm2835.c b/drivers/clk/bcm/clk-bcm2835.c
index 785df427de58..504fcae4114c 100644
--- a/drivers/clk/bcm/clk-bcm2835.c
+++ b/drivers/clk/bcm/clk-bcm2835.c
@@ -36,6 +36,7 @@
@@ -51,7 +49,7 @@ index 785df427de58..504fcae4114c 100644
/*
* Names of clocks used within the driver that need to be replaced
* with an external parent's name. This array is in the order that
@@ -314,6 +317,7 @@ static const char *const cprman_parent_names[] = {
@@ -314,6 +317,7 @@ static const char *const cprman_parent_n
struct bcm2835_cprman {
struct device *dev;
void __iomem *regs;
@@ -59,7 +57,7 @@ index 785df427de58..504fcae4114c 100644
spinlock_t regs_lock; /* spinlock for all clocks */
unsigned int soc;
@@ -1044,6 +1048,30 @@ static unsigned long bcm2835_clock_get_rate(struct clk_hw *hw,
@@ -1044,6 +1048,30 @@ static unsigned long bcm2835_clock_get_r
return rate;
}
@@ -90,7 +88,7 @@ index 785df427de58..504fcae4114c 100644
static void bcm2835_clock_wait_busy(struct bcm2835_clock *clock)
{
struct bcm2835_cprman *cprman = clock->cprman;
@@ -1332,7 +1360,7 @@ static int bcm2835_vpu_clock_is_on(struct clk_hw *hw)
@@ -1332,7 +1360,7 @@ static int bcm2835_vpu_clock_is_on(struc
*/
static const struct clk_ops bcm2835_vpu_clock_clk_ops = {
.is_prepared = bcm2835_vpu_clock_is_on,
@@ -99,7 +97,7 @@ index 785df427de58..504fcae4114c 100644
.set_rate = bcm2835_clock_set_rate,
.determine_rate = bcm2835_clock_determine_rate,
.set_parent = bcm2835_clock_set_parent,
@@ -2308,6 +2336,7 @@ static int bcm2835_clk_probe(struct platform_device *pdev)
@@ -2308,6 +2336,7 @@ static int bcm2835_clk_probe(struct plat
const struct bcm2835_clk_desc *desc;
const size_t asize = ARRAY_SIZE(clk_desc_array);
const struct cprman_plat_data *pdata;
@@ -107,7 +105,7 @@ index 785df427de58..504fcae4114c 100644
size_t i;
u32 clk_id;
int ret;
@@ -2328,6 +2357,14 @@ static int bcm2835_clk_probe(struct platform_device *pdev)
@@ -2328,6 +2357,14 @@ static int bcm2835_clk_probe(struct plat
if (IS_ERR(cprman->regs))
return PTR_ERR(cprman->regs);
@@ -122,6 +120,3 @@ index 785df427de58..504fcae4114c 100644
memset(bcm2835_clk_claimed, 0, sizeof(bcm2835_clk_claimed));
for (i = 0;
!of_property_read_u32_index(pdev->dev.of_node, "claim-clocks",
--
2.54.0
@@ -8,11 +8,9 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
drivers/clk/bcm/clk-bcm2835.c | 18 ++++++++++--------
1 file changed, 10 insertions(+), 8 deletions(-)
diff --git a/drivers/clk/bcm/clk-bcm2835.c b/drivers/clk/bcm/clk-bcm2835.c
index 504fcae4114c..aa729951d22b 100644
--- a/drivers/clk/bcm/clk-bcm2835.c
+++ b/drivers/clk/bcm/clk-bcm2835.c
@@ -652,15 +652,17 @@ static int bcm2835_pll_on(struct clk_hw *hw)
@@ -652,15 +652,17 @@ static int bcm2835_pll_on(struct clk_hw
spin_unlock(&cprman->regs_lock);
/* Wait for the PLL to lock. */
@@ -22,6 +20,7 @@ index 504fcae4114c..aa729951d22b 100644
- dev_err(cprman->dev, "%s: couldn't lock PLL\n",
- clk_hw_get_name(hw));
- return -ETIMEDOUT;
- }
+ if (strcmp(data->name, "pllh")) {
+ timeout = ktime_add_ns(ktime_get(), LOCK_TIMEOUT_NS);
+ while (!(cprman_read(cprman, CM_LOCK) & data->lock_mask)) {
@@ -30,14 +29,10 @@ index 504fcae4114c..aa729951d22b 100644
+ clk_hw_get_name(hw));
+ return -ETIMEDOUT;
+ }
+
+ cpu_relax();
}
-
- cpu_relax();
+ cpu_relax();
+ }
}
cprman_write(cprman, data->a2w_ctrl_reg,
--
2.54.0
@@ -12,11 +12,9 @@ Signed-off-by: Eric Anholt <eric@anholt.net>
drivers/clk/bcm/clk-bcm2835.c | 22 +++++++++++++---------
1 file changed, 13 insertions(+), 9 deletions(-)
diff --git a/drivers/clk/bcm/clk-bcm2835.c b/drivers/clk/bcm/clk-bcm2835.c
index aa729951d22b..dd76a43dcd05 100644
--- a/drivers/clk/bcm/clk-bcm2835.c
+++ b/drivers/clk/bcm/clk-bcm2835.c
@@ -1143,15 +1143,19 @@ static int bcm2835_clock_set_rate(struct clk_hw *hw,
@@ -1143,15 +1143,19 @@ static int bcm2835_clock_set_rate(struct
spin_lock(&cprman->regs_lock);
@@ -44,7 +42,7 @@ index aa729951d22b..dd76a43dcd05 100644
ctl |= (div & CM_DIV_FRAC_MASK) ? CM_FRAC : 0;
cprman_write(cprman, data->ctl_reg, ctl);
@@ -1527,7 +1531,7 @@ static struct clk_hw *bcm2835_register_clock(struct bcm2835_cprman *cprman,
@@ -1527,7 +1531,7 @@ static struct clk_hw *bcm2835_register_c
init.ops = &bcm2835_vpu_clock_clk_ops;
} else {
init.ops = &bcm2835_clock_clk_ops;
@@ -53,6 +51,3 @@ index aa729951d22b..dd76a43dcd05 100644
/* If the clock wasn't actually enabled at boot, it's not
* critical.
--
2.54.0
@@ -13,11 +13,9 @@ Signed-off-by: Eric Anholt <eric@anholt.net>
drivers/clk/bcm/clk-bcm2835.c | 19 ++++++++++++++++---
1 file changed, 16 insertions(+), 3 deletions(-)
diff --git a/drivers/clk/bcm/clk-bcm2835.c b/drivers/clk/bcm/clk-bcm2835.c
index dd76a43dcd05..915edad0f3b3 100644
--- a/drivers/clk/bcm/clk-bcm2835.c
+++ b/drivers/clk/bcm/clk-bcm2835.c
@@ -1132,8 +1132,10 @@ static int bcm2835_clock_on(struct clk_hw *hw)
@@ -1132,8 +1132,10 @@ static int bcm2835_clock_on(struct clk_h
return 0;
}
@@ -30,7 +28,7 @@ index dd76a43dcd05..915edad0f3b3 100644
{
struct bcm2835_clock *clock = bcm2835_clock_from_hw(hw);
struct bcm2835_cprman *cprman = clock->cprman;
@@ -1155,6 +1157,11 @@ static int bcm2835_clock_set_rate(struct clk_hw *hw,
@@ -1155,6 +1157,11 @@ static int bcm2835_clock_set_rate(struct
bcm2835_clock_wait_busy(clock);
}
@@ -42,7 +40,7 @@ index dd76a43dcd05..915edad0f3b3 100644
ctl &= ~CM_FRAC;
ctl |= (div & CM_DIV_FRAC_MASK) ? CM_FRAC : 0;
cprman_write(cprman, data->ctl_reg, ctl);
@@ -1166,6 +1173,12 @@ static int bcm2835_clock_set_rate(struct clk_hw *hw,
@@ -1166,6 +1173,12 @@ static int bcm2835_clock_set_rate(struct
return 0;
}
@@ -55,7 +53,7 @@ index dd76a43dcd05..915edad0f3b3 100644
static bool
bcm2835_clk_is_pllc(struct clk_hw *hw)
{
@@ -1349,6 +1362,7 @@ static const struct clk_ops bcm2835_clock_clk_ops = {
@@ -1349,6 +1362,7 @@ static const struct clk_ops bcm2835_cloc
.unprepare = bcm2835_clock_off,
.recalc_rate = bcm2835_clock_get_rate,
.set_rate = bcm2835_clock_set_rate,
@@ -63,7 +61,7 @@ index dd76a43dcd05..915edad0f3b3 100644
.determine_rate = bcm2835_clock_determine_rate,
.set_parent = bcm2835_clock_set_parent,
.get_parent = bcm2835_clock_get_parent,
@@ -1531,7 +1545,6 @@ static struct clk_hw *bcm2835_register_clock(struct bcm2835_cprman *cprman,
@@ -1531,7 +1545,6 @@ static struct clk_hw *bcm2835_register_c
init.ops = &bcm2835_vpu_clock_clk_ops;
} else {
init.ops = &bcm2835_clock_clk_ops;
@@ -71,6 +69,3 @@ index dd76a43dcd05..915edad0f3b3 100644
/* If the clock wasn't actually enabled at boot, it's not
* critical.
--
2.54.0
@@ -10,11 +10,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
drivers/clk/bcm/clk-bcm2835.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/drivers/clk/bcm/clk-bcm2835.c b/drivers/clk/bcm/clk-bcm2835.c
index 915edad0f3b3..4478288bc586 100644
--- a/drivers/clk/bcm/clk-bcm2835.c
+++ b/drivers/clk/bcm/clk-bcm2835.c
@@ -2339,9 +2339,11 @@ static bool bcm2835_clk_is_claimed(const char *name)
@@ -2339,9 +2339,11 @@ static bool bcm2835_clk_is_claimed(const
int i;
for (i = 0; i < ARRAY_SIZE(clk_desc_array); i++) {
@@ -29,6 +27,3 @@ index 915edad0f3b3..4478288bc586 100644
}
return false;
--
2.54.0
@@ -14,11 +14,9 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
drivers/clk/bcm/clk-bcm2835.c | 45 ++++++++++-------------------------
1 file changed, 12 insertions(+), 33 deletions(-)
diff --git a/drivers/clk/bcm/clk-bcm2835.c b/drivers/clk/bcm/clk-bcm2835.c
index 4478288bc586..56fb1e5db2f9 100644
--- a/drivers/clk/bcm/clk-bcm2835.c
+++ b/drivers/clk/bcm/clk-bcm2835.c
@@ -1769,16 +1769,12 @@ static const struct bcm2835_clk_desc clk_desc_array[] = {
@@ -1769,16 +1769,12 @@ static const struct bcm2835_clk_desc clk
.hold_mask = CM_PLLA_HOLDCORE,
.fixed_divider = 1,
.flags = CLK_SET_RATE_PARENT),
@@ -41,7 +39,7 @@ index 4478288bc586..56fb1e5db2f9 100644
[BCM2835_PLLA_DSI0] = REGISTER_PLL_DIV(
SOC_ALL,
.name = "plla_dsi0",
@@ -2079,14 +2075,12 @@ static const struct bcm2835_clk_desc clk_desc_array[] = {
@@ -2079,14 +2075,12 @@ static const struct bcm2835_clk_desc clk
.int_bits = 6,
.frac_bits = 0,
.tcnt_mux = 3),
@@ -62,7 +60,7 @@ index 4478288bc586..56fb1e5db2f9 100644
/*
* VPU clock. This doesn't have an enable bit, since it drives
* the bus for everything else, and is special so it doesn't need
@@ -2249,21 +2243,6 @@ static const struct bcm2835_clk_desc clk_desc_array[] = {
@@ -2249,21 +2243,6 @@ static const struct bcm2835_clk_desc clk
.tcnt_mux = 28,
.round_up = true),
@@ -84,6 +82,3 @@ index 4478288bc586..56fb1e5db2f9 100644
/* dsi clocks */
[BCM2835_CLOCK_DSI0E] = REGISTER_PER_CLK(
SOC_ALL,
--
2.54.0
@@ -13,8 +13,6 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
drivers/clk/bcm/clk-bcm2835.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/clk/bcm/clk-bcm2835.c b/drivers/clk/bcm/clk-bcm2835.c
index 56fb1e5db2f9..9ba61a9d9890 100644
--- a/drivers/clk/bcm/clk-bcm2835.c
+++ b/drivers/clk/bcm/clk-bcm2835.c
@@ -107,6 +107,7 @@
@@ -25,7 +23,7 @@ index 56fb1e5db2f9..9ba61a9d9890 100644
#define CM_PULSECTL 0x190
#define CM_PULSEDIV 0x194
#define CM_SDCCTL 0x1a8
@@ -2357,6 +2358,9 @@ static int bcm2835_clk_probe(struct platform_device *pdev)
@@ -2357,6 +2358,9 @@ static int bcm2835_clk_probe(struct plat
if (IS_ERR(cprman->regs))
return PTR_ERR(cprman->regs);
@@ -35,6 +33,3 @@ index 56fb1e5db2f9..9ba61a9d9890 100644
fw_node = of_parse_phandle(dev->of_node, "firmware", 0);
if (fw_node) {
struct rpi_firmware *fw = rpi_firmware_get(fw_node);
--
2.54.0
@@ -9,8 +9,6 @@ See: http://forum.kodi.tv/showthread.php?tid=285288
drivers/net/usb/smsc95xx.c | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/drivers/net/usb/smsc95xx.c b/drivers/net/usb/smsc95xx.c
index de733e0488bf..14eb4b6b41e3 100644
--- a/drivers/net/usb/smsc95xx.c
+++ b/drivers/net/usb/smsc95xx.c
@@ -82,6 +82,10 @@ static bool turbo_mode = true;
@@ -24,7 +22,7 @@ index de733e0488bf..14eb4b6b41e3 100644
static int __must_check smsc95xx_read_reg(struct usbnet *dev, u32 index,
u32 *data)
{
@@ -993,13 +997,13 @@ static int smsc95xx_reset(struct usbnet *dev)
@@ -993,13 +997,13 @@ static int smsc95xx_reset(struct usbnet
if (!turbo_mode) {
burst_cap = 0;
@@ -43,6 +41,3 @@ index de733e0488bf..14eb4b6b41e3 100644
}
netif_dbg(dev, ifup, dev->net, "rx_urb_size=%ld\n",
--
2.54.0
@@ -20,8 +20,6 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
drivers/net/usb/smsc95xx.c | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)
diff --git a/drivers/net/usb/smsc95xx.c b/drivers/net/usb/smsc95xx.c
index 14eb4b6b41e3..b83a9840e3c6 100644
--- a/drivers/net/usb/smsc95xx.c
+++ b/drivers/net/usb/smsc95xx.c
@@ -86,6 +86,10 @@ static int packetsize = 2560;
@@ -35,7 +33,7 @@ index 14eb4b6b41e3..b83a9840e3c6 100644
static int __must_check smsc95xx_read_reg(struct usbnet *dev, u32 index,
u32 *data)
{
@@ -866,6 +870,21 @@ static int smsc95xx_ioctl(struct net_device *netdev, struct ifreq *rq, int cmd)
@@ -866,6 +870,21 @@ static int smsc95xx_ioctl(struct net_dev
return phy_mii_ioctl(netdev->phydev, rq, cmd);
}
@@ -57,10 +55,11 @@ index 14eb4b6b41e3..b83a9840e3c6 100644
static void smsc95xx_init_mac_address(struct usbnet *dev)
{
u8 addr[ETH_ALEN];
@@ -889,6 +908,14 @@ static void smsc95xx_init_mac_address(struct usbnet *dev)
@@ -888,6 +907,14 @@ static void smsc95xx_init_mac_address(st
return;
}
}
+
+ /* Check module parameters */
+ if (smsc95xx_macaddr_param(dev, dev->net) == 0) {
+ if (is_valid_ether_addr(dev->net->dev_addr)) {
@@ -68,10 +67,6 @@ index 14eb4b6b41e3..b83a9840e3c6 100644
+ return;
+ }
+ }
+
/* no useful static MAC address found. generate a random one */
eth_hw_addr_random(dev->net);
netif_dbg(dev, ifup, dev->net, "MAC address set to eth_random_addr\n");
--
2.54.0
@@ -10,11 +10,9 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
kernel/resource.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/kernel/resource.c b/kernel/resource.c
index e4e9bac12e6e..edbe8ef7e8ef 100644
--- a/kernel/resource.c
+++ b/kernel/resource.c
@@ -210,6 +210,12 @@ static int __release_resource(struct resource *old, bool release_child)
@@ -210,6 +210,12 @@ static int __release_resource(struct res
{
struct resource *tmp, **p, *chd;
@@ -27,6 +25,3 @@ index e4e9bac12e6e..edbe8ef7e8ef 100644
p = &old->parent->child;
for (;;) {
tmp = *p;
--
2.54.0
@@ -11,11 +11,9 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
drivers/irqchip/irq-bcm2836.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/irqchip/irq-bcm2836.c b/drivers/irqchip/irq-bcm2836.c
index fafd1f71348e..067027467113 100644
--- a/drivers/irqchip/irq-bcm2836.c
+++ b/drivers/irqchip/irq-bcm2836.c
@@ -131,7 +131,7 @@ static int bcm2836_map(struct irq_domain *d, unsigned int irq,
@@ -131,7 +131,7 @@ static int bcm2836_map(struct irq_domain
irq_set_percpu_devid(irq);
irq_domain_set_info(d, irq, hw, chip, d->host_data,
handle_percpu_devid_irq, NULL, NULL);
@@ -24,6 +22,3 @@ index fafd1f71348e..067027467113 100644
return 0;
}
--
2.54.0
@@ -18,8 +18,6 @@ Acked-by: Stephen Warren <swarren@wwwdotorg.org>
drivers/irqchip/irq-bcm2835.c | 49 ++++++++++++++++++++++++++++++++---
2 files changed, 46 insertions(+), 4 deletions(-)
diff --git a/arch/arm/mach-bcm/Kconfig b/arch/arm/mach-bcm/Kconfig
index 24bc6e18d806..882a8dc508f2 100644
--- a/arch/arm/mach-bcm/Kconfig
+++ b/arch/arm/mach-bcm/Kconfig
@@ -158,6 +158,7 @@ config ARCH_BCM2835
@@ -30,8 +28,6 @@ index 24bc6e18d806..882a8dc508f2 100644
select PINCTRL
select PINCTRL_BCM2835
select MFD_CORE
diff --git a/drivers/irqchip/irq-bcm2835.c b/drivers/irqchip/irq-bcm2835.c
index 1e384c870350..34003a61702c 100644
--- a/drivers/irqchip/irq-bcm2835.c
+++ b/drivers/irqchip/irq-bcm2835.c
@@ -45,7 +45,7 @@
@@ -57,7 +53,7 @@ index 1e384c870350..34003a61702c 100644
static const int reg_pending[] __initconst = { 0x00, 0x04, 0x08 };
static const int reg_enable[] __initconst = { 0x18, 0x10, 0x14 };
@@ -89,14 +93,38 @@ static void __exception_irq_entry bcm2835_handle_irq(
@@ -89,14 +93,38 @@ static void __exception_irq_entry bcm283
struct pt_regs *regs);
static void bcm2836_chained_handle_irq(struct irq_desc *desc);
@@ -98,7 +94,7 @@ index 1e384c870350..34003a61702c 100644
}
static struct irq_chip armctrl_chip = {
@@ -144,7 +172,8 @@ static int __init armctrl_of_init(struct device_node *node,
@@ -144,7 +172,8 @@ static int __init armctrl_of_init(struct
if (!base)
panic("%pOF: unable to map IC registers\n", node);
@@ -108,7 +104,7 @@ index 1e384c870350..34003a61702c 100644
&armctrl_ops, NULL);
if (!intc.domain)
panic("%pOF: unable to create IRQ domain\n", node);
@@ -188,6 +217,18 @@ static int __init armctrl_of_init(struct device_node *node,
@@ -188,6 +217,18 @@ static int __init armctrl_of_init(struct
set_handle_irq(bcm2835_handle_irq);
}
@@ -127,6 +123,3 @@ index 1e384c870350..34003a61702c 100644
return 0;
}
--
2.54.0
@@ -11,8 +11,6 @@ Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
drivers/irqchip/irq-bcm2835.c | 43 +++++++++++++++++++++++++++++++++--
1 file changed, 41 insertions(+), 2 deletions(-)
diff --git a/drivers/irqchip/irq-bcm2835.c b/drivers/irqchip/irq-bcm2835.c
index 34003a61702c..3bfb4a5b23c2 100644
--- a/drivers/irqchip/irq-bcm2835.c
+++ b/drivers/irqchip/irq-bcm2835.c
@@ -41,8 +41,11 @@
@@ -45,7 +43,7 @@ index 34003a61702c..3bfb4a5b23c2 100644
};
static struct armctrl_ic intc __read_mostly;
@@ -119,12 +126,35 @@ static void armctrl_mask_irq(struct irq_data *d)
@@ -119,12 +126,35 @@ static void armctrl_mask_irq(struct irq_
static void armctrl_unmask_irq(struct irq_data *d)
{
@@ -83,7 +81,7 @@ index 34003a61702c..3bfb4a5b23c2 100644
}
static struct irq_chip armctrl_chip = {
@@ -217,6 +247,15 @@ static int __init armctrl_of_init(struct device_node *node,
@@ -217,6 +247,15 @@ static int __init armctrl_of_init(struct
set_handle_irq(bcm2835_handle_irq);
}
@@ -99,6 +97,3 @@ index 34003a61702c..3bfb4a5b23c2 100644
/* Make a duplicate irq range which is used to enable FIQ */
for (b = 0; b < NR_BANKS; b++) {
for (i = 0; i < bank_irqs[b]; i++) {
--
2.54.0
@@ -11,11 +11,9 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
drivers/spi/spidev.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/spi/spidev.c b/drivers/spi/spidev.c
index 461d3a0009a8..3b9045e656ce 100644
--- a/drivers/spi/spidev.c
+++ b/drivers/spi/spidev.c
@@ -710,7 +710,7 @@ MODULE_DEVICE_TABLE(spi, spidev_spi_ids);
@@ -710,7 +710,7 @@ MODULE_DEVICE_TABLE(spi, spidev_spi_ids)
*/
static int spidev_of_check(struct device *dev)
{
@@ -24,6 +22,3 @@ index 461d3a0009a8..3b9045e656ce 100644
return 0;
dev_err(dev, "spidev listed directly in DT is not supported\n");
--
2.54.0
@@ -168,8 +168,6 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
drivers/dma/bcm2835-dma.c | 668 +++++++++++++++++++++++++++++++-------
2 files changed, 556 insertions(+), 114 deletions(-)
diff --git a/drivers/dma/Kconfig b/drivers/dma/Kconfig
index b8a74b1798ba..cab445e9b9a0 100644
--- a/drivers/dma/Kconfig
+++ b/drivers/dma/Kconfig
@@ -143,7 +143,7 @@ config BCM_SBA_RAID
@@ -181,8 +179,6 @@ index b8a74b1798ba..cab445e9b9a0 100644
select DMA_ENGINE
select DMA_VIRTUAL_CHANNELS
diff --git a/drivers/dma/bcm2835-dma.c b/drivers/dma/bcm2835-dma.c
index 0117bb2e8591..dcc77ed986bb 100644
--- a/drivers/dma/bcm2835-dma.c
+++ b/drivers/dma/bcm2835-dma.c
@@ -25,6 +25,7 @@
@@ -406,7 +402,7 @@ index 0117bb2e8591..dcc77ed986bb 100644
static inline size_t bcm2835_dma_max_frame_length(struct bcm2835_chan *c)
{
/* lite and normal channels have different max frame length */
@@ -201,6 +359,36 @@ static inline struct bcm2835_desc *to_bcm2835_dma_desc(
@@ -201,6 +359,36 @@ static inline struct bcm2835_desc *to_bc
return container_of(t, struct bcm2835_desc, vd.tx);
}
@@ -443,7 +439,7 @@ index 0117bb2e8591..dcc77ed986bb 100644
static void bcm2835_dma_free_cb_chain(struct bcm2835_desc *desc)
{
size_t i;
@@ -219,45 +407,53 @@ static void bcm2835_dma_desc_free(struct virt_dma_desc *vd)
@@ -219,45 +407,53 @@ static void bcm2835_dma_desc_free(struct
}
static void bcm2835_dma_create_cb_set_length(
@@ -502,15 +498,16 @@ index 0117bb2e8591..dcc77ed986bb 100644
- /* calculate the length that remains to reach period_length */
- control_block->length = period_len - *total_len;
+ if (c->is_40bit_channel) {
+ struct bcm2711_dma40_scb *scb =
+ (struct bcm2711_dma40_scb *)control_block;
-
- /* reset total_length for next period */
- *total_len = 0;
-
- /* add extrainfo bits in info */
- control_block->info |= finalextrainfo;
+ if (c->is_40bit_channel) {
+ struct bcm2711_dma40_scb *scb =
+ (struct bcm2711_dma40_scb *)control_block;
+
+ scb->len = cb_len;
+ /* add extrainfo bits to ti */
+ scb->ti |= to_bcm2711_ti(finalextrainfo);
@@ -522,7 +519,7 @@ index 0117bb2e8591..dcc77ed986bb 100644
}
static inline size_t bcm2835_dma_count_frames_for_sg(
@@ -280,7 +476,7 @@ static inline size_t bcm2835_dma_count_frames_for_sg(
@@ -280,7 +476,7 @@ static inline size_t bcm2835_dma_count_f
/**
* bcm2835_dma_create_cb_chain - create a control block and fills data in
*
@@ -531,7 +528,7 @@ index 0117bb2e8591..dcc77ed986bb 100644
* @direction: the direction in which we transfer
* @cyclic: it is a cyclic transfer
* @info: the default info bits to apply per controlblock
@@ -298,12 +494,11 @@ static inline size_t bcm2835_dma_count_frames_for_sg(
@@ -298,12 +494,11 @@ static inline size_t bcm2835_dma_count_f
* @gfp: the GFP flag to use for allocation
*/
static struct bcm2835_desc *bcm2835_dma_create_cb_chain(
@@ -545,7 +542,7 @@ index 0117bb2e8591..dcc77ed986bb 100644
size_t len = buf_len, total_len;
size_t frame;
struct bcm2835_desc *d;
@@ -335,11 +530,23 @@ static struct bcm2835_desc *bcm2835_dma_create_cb_chain(
@@ -335,11 +530,23 @@ static struct bcm2835_desc *bcm2835_dma_
/* fill in the control block */
control_block = cb_entry->cb;
@@ -574,7 +571,7 @@ index 0117bb2e8591..dcc77ed986bb 100644
/* set up length in control_block if requested */
if (buf_len) {
/* calculate length honoring period_length */
@@ -349,25 +556,51 @@ static struct bcm2835_desc *bcm2835_dma_create_cb_chain(
@@ -349,25 +556,51 @@ static struct bcm2835_desc *bcm2835_dma_
cyclic ? finalextrainfo : 0);
/* calculate new remaining length */
@@ -634,7 +631,7 @@ index 0117bb2e8591..dcc77ed986bb 100644
/* detect a size mismatch */
if (buf_len && (d->size != buf_len))
@@ -381,13 +614,12 @@ static struct bcm2835_desc *bcm2835_dma_create_cb_chain(
@@ -381,13 +614,12 @@ error_cb:
}
static void bcm2835_dma_fill_cb_chain_with_sg(
@@ -649,7 +646,7 @@ index 0117bb2e8591..dcc77ed986bb 100644
size_t len, max_len;
unsigned int i;
dma_addr_t addr;
@@ -395,14 +627,35 @@ static void bcm2835_dma_fill_cb_chain_with_sg(
@@ -395,14 +627,35 @@ static void bcm2835_dma_fill_cb_chain_wi
max_len = bcm2835_dma_max_frame_length(c);
for_each_sg(sgl, sgent, sg_len, i) {
@@ -693,7 +690,7 @@ index 0117bb2e8591..dcc77ed986bb 100644
}
}
}
@@ -410,29 +663,74 @@ static void bcm2835_dma_fill_cb_chain_with_sg(
@@ -410,29 +663,74 @@ static void bcm2835_dma_fill_cb_chain_wi
static void bcm2835_dma_abort(struct bcm2835_chan *c)
{
void __iomem *chan_base = c->chan_base;
@@ -713,7 +710,9 @@ index 0117bb2e8591..dcc77ed986bb 100644
+ */
+ if (!readl(chan_base + BCM2711_DMA40_CB))
+ return;
+
- /* Write 0 to the active bit - Pause the DMA */
- writel(0, chan_base + BCM2835_DMA_CS);
+ /* Pause the current DMA */
+ writel(readl(chan_base + BCM2711_DMA40_CS) & ~BCM2711_DMA40_ACTIVE,
+ chan_base + BCM2711_DMA40_CS);
@@ -742,33 +741,32 @@ index 0117bb2e8591..dcc77ed986bb 100644
+ */
+ if (!readl(chan_base + BCM2835_DMA_ADDR))
+ return;
+
+ /* We need to clear the next DMA block pending */
+ writel(0, chan_base + BCM2835_DMA_NEXTCB);
- /* Write 0 to the active bit - Pause the DMA */
- writel(0, chan_base + BCM2835_DMA_CS);
+ /* Abort the DMA, which needs to be enabled to complete */
+ writel(readl(chan_base + BCM2835_DMA_CS) | BCM2835_DMA_ABORT | BCM2835_DMA_ACTIVE,
+ chan_base + BCM2835_DMA_CS);
- /* Wait for any current AXI transfer to complete */
- while ((readl(chan_base + BCM2835_DMA_CS) &
- BCM2835_DMA_WAITING_FOR_WRITES) && --timeout)
- cpu_relax();
+ /* wait for DMA to be aborted */
+ while ((readl(chan_base + BCM2835_DMA_CS) & BCM2835_DMA_ABORT) && --timeout)
+ cpu_relax();
-
- /* Peripheral might be stuck and fail to signal AXI write responses */
- if (!timeout)
- dev_err(c->vc.chan.device->dev,
- "failed to complete outstanding writes\n");
+ /* We need to clear the next DMA block pending */
+ writel(0, chan_base + BCM2835_DMA_NEXTCB);
- writel(BCM2835_DMA_RESET, chan_base + BCM2835_DMA_CS);
+ /* Abort the DMA, which needs to be enabled to complete */
+ writel(readl(chan_base + BCM2835_DMA_CS) | BCM2835_DMA_ABORT | BCM2835_DMA_ACTIVE,
+ chan_base + BCM2835_DMA_CS);
+
+ /* wait for DMA to be aborted */
+ while ((readl(chan_base + BCM2835_DMA_CS) & BCM2835_DMA_ABORT) && --timeout)
+ cpu_relax();
+
+ /* Write 0 to the active bit - Pause the DMA */
+ writel(readl(chan_base + BCM2835_DMA_CS) & ~BCM2835_DMA_ACTIVE,
+ chan_base + BCM2835_DMA_CS);
- writel(BCM2835_DMA_RESET, chan_base + BCM2835_DMA_CS);
+
+ /*
+ * Peripheral might be stuck and fail to complete
+ * This is expected when dreqs are enabled but not asserted
@@ -786,7 +784,7 @@ index 0117bb2e8591..dcc77ed986bb 100644
}
static void bcm2835_dma_start_desc(struct bcm2835_chan *c)
@@ -449,8 +747,16 @@ static void bcm2835_dma_start_desc(struct bcm2835_chan *c)
@@ -449,8 +747,16 @@ static void bcm2835_dma_start_desc(struc
c->desc = d = to_bcm2835_dma_desc(&vd->tx);
@@ -805,7 +803,7 @@ index 0117bb2e8591..dcc77ed986bb 100644
}
static irqreturn_t bcm2835_dma_callback(int irq, void *data)
@@ -477,8 +783,13 @@ static irqreturn_t bcm2835_dma_callback(int irq, void *data)
@@ -477,8 +783,13 @@ static irqreturn_t bcm2835_dma_callback(
* if this IRQ handler is threaded.) If the channel is finished, it
* will remain idle despite the ACTIVE flag being set.
*/
@@ -821,7 +819,7 @@ index 0117bb2e8591..dcc77ed986bb 100644
d = c->desc;
@@ -540,20 +851,39 @@ static size_t bcm2835_dma_desc_size_pos(struct bcm2835_desc *d, dma_addr_t addr)
@@ -540,20 +851,39 @@ static size_t bcm2835_dma_desc_size_pos(
unsigned int i;
size_t size;
@@ -844,7 +842,11 @@ index 0117bb2e8591..dcc77ed986bb 100644
+ dma = control_block->dst;
+ else
+ dma = control_block->src;
+
- if (size)
- size += this_size;
- else if (addr >= dma && addr < dma + this_size)
- size += dma + this_size - addr;
+ if (size)
+ size += this_size;
+ else if (addr >= dma && addr < dma + this_size)
@@ -855,11 +857,7 @@ index 0117bb2e8591..dcc77ed986bb 100644
+ struct bcm2835_dma_cb *control_block = d->cb_list[i].cb;
+ size_t this_size = control_block->length;
+ dma_addr_t dma;
- if (size)
- size += this_size;
- else if (addr >= dma && addr < dma + this_size)
- size += dma + this_size - addr;
+
+ if (d->dir == DMA_DEV_TO_MEM)
+ dma = control_block->dst;
+ else
@@ -873,7 +871,7 @@ index 0117bb2e8591..dcc77ed986bb 100644
}
return size;
@@ -580,12 +910,25 @@ static enum dma_status bcm2835_dma_tx_status(struct dma_chan *chan,
@@ -580,12 +910,25 @@ static enum dma_status bcm2835_dma_tx_st
struct bcm2835_desc *d = c->desc;
dma_addr_t pos;
@@ -902,7 +900,7 @@ index 0117bb2e8591..dcc77ed986bb 100644
txstate->residue = bcm2835_dma_desc_size_pos(d, pos);
} else {
@@ -615,8 +958,10 @@ static struct dma_async_tx_descriptor *bcm2835_dma_prep_dma_memcpy(
@@ -615,8 +958,10 @@ static struct dma_async_tx_descriptor *b
{
struct bcm2835_chan *c = to_bcm2835_dma_chan(chan);
struct bcm2835_desc *d;
@@ -915,7 +913,7 @@ index 0117bb2e8591..dcc77ed986bb 100644
size_t max_len = bcm2835_dma_max_frame_length(c);
size_t frames;
@@ -628,7 +973,7 @@ static struct dma_async_tx_descriptor *bcm2835_dma_prep_dma_memcpy(
@@ -628,7 +973,7 @@ static struct dma_async_tx_descriptor *b
frames = bcm2835_dma_frames_for_length(len, max_len);
/* allocate the CB chain - this also fills in the pointers */
@@ -924,7 +922,7 @@ index 0117bb2e8591..dcc77ed986bb 100644
info, extra, frames,
src, dst, len, 0, GFP_KERNEL);
if (!d)
@@ -646,7 +991,8 @@ static struct dma_async_tx_descriptor *bcm2835_dma_prep_slave_sg(
@@ -646,7 +991,8 @@ static struct dma_async_tx_descriptor *b
struct bcm2835_chan *c = to_bcm2835_dma_chan(chan);
struct bcm2835_desc *d;
dma_addr_t src = 0, dst = 0;
@@ -934,7 +932,7 @@ index 0117bb2e8591..dcc77ed986bb 100644
u32 extra = BCM2835_DMA_INT_EN;
size_t frames;
@@ -662,12 +1008,14 @@ static struct dma_async_tx_descriptor *bcm2835_dma_prep_slave_sg(
@@ -662,12 +1008,14 @@ static struct dma_async_tx_descriptor *b
if (direction == DMA_DEV_TO_MEM) {
if (c->cfg.src_addr_width != DMA_SLAVE_BUSWIDTH_4_BYTES)
return NULL;
@@ -951,7 +949,7 @@ index 0117bb2e8591..dcc77ed986bb 100644
info |= BCM2835_DMA_D_DREQ | BCM2835_DMA_S_INC;
}
@@ -675,7 +1023,7 @@ static struct dma_async_tx_descriptor *bcm2835_dma_prep_slave_sg(
@@ -675,7 +1023,7 @@ static struct dma_async_tx_descriptor *b
frames = bcm2835_dma_count_frames_for_sg(c, sgl, sg_len);
/* allocate the CB chain */
@@ -960,7 +958,7 @@ index 0117bb2e8591..dcc77ed986bb 100644
info, extra,
frames, src, dst, 0, 0,
GFP_NOWAIT);
@@ -683,7 +1031,7 @@ static struct dma_async_tx_descriptor *bcm2835_dma_prep_slave_sg(
@@ -683,7 +1031,7 @@ static struct dma_async_tx_descriptor *b
return NULL;
/* fill in frames with scatterlist pointers */
@@ -969,7 +967,7 @@ index 0117bb2e8591..dcc77ed986bb 100644
sgl, sg_len);
return vchan_tx_prep(&c->vc, &d->vd, flags);
@@ -698,7 +1046,8 @@ static struct dma_async_tx_descriptor *bcm2835_dma_prep_dma_cyclic(
@@ -698,7 +1046,8 @@ static struct dma_async_tx_descriptor *b
struct bcm2835_chan *c = to_bcm2835_dma_chan(chan);
struct bcm2835_desc *d;
dma_addr_t src, dst;
@@ -979,7 +977,7 @@ index 0117bb2e8591..dcc77ed986bb 100644
u32 extra = 0;
size_t max_len = bcm2835_dma_max_frame_length(c);
size_t frames;
@@ -736,13 +1085,15 @@ static struct dma_async_tx_descriptor *bcm2835_dma_prep_dma_cyclic(
@@ -736,13 +1085,15 @@ static struct dma_async_tx_descriptor *b
if (direction == DMA_DEV_TO_MEM) {
if (c->cfg.src_addr_width != DMA_SLAVE_BUSWIDTH_4_BYTES)
return NULL;
@@ -997,7 +995,7 @@ index 0117bb2e8591..dcc77ed986bb 100644
src = buf_addr;
info |= BCM2835_DMA_D_DREQ | BCM2835_DMA_S_INC;
@@ -762,7 +1113,7 @@ static struct dma_async_tx_descriptor *bcm2835_dma_prep_dma_cyclic(
@@ -762,7 +1113,7 @@ static struct dma_async_tx_descriptor *b
* note that we need to use GFP_NOWAIT, as the ALSA i2s dmaengine
* implementation calls prep_dma_cyclic with interrupts disabled.
*/
@@ -1006,7 +1004,7 @@ index 0117bb2e8591..dcc77ed986bb 100644
info, extra,
frames, src, dst, buf_len,
period_len, GFP_NOWAIT);
@@ -770,7 +1121,12 @@ static struct dma_async_tx_descriptor *bcm2835_dma_prep_dma_cyclic(
@@ -770,7 +1121,12 @@ static struct dma_async_tx_descriptor *b
return NULL;
/* wrap around into a loop */
@@ -1020,7 +1018,7 @@ index 0117bb2e8591..dcc77ed986bb 100644
return vchan_tx_prep(&c->vc, &d->vd, flags);
}
@@ -831,9 +1187,11 @@ static int bcm2835_dma_chan_init(struct bcm2835_dmadev *d, int chan_id,
@@ -831,9 +1187,11 @@ static int bcm2835_dma_chan_init(struct
c->irq_number = irq;
c->irq_flags = irq_flags;
@@ -1035,7 +1033,7 @@ index 0117bb2e8591..dcc77ed986bb 100644
c->is_lite_channel = true;
return 0;
@@ -854,7 +1212,8 @@ static void bcm2835_dma_free(struct bcm2835_dmadev *od)
@@ -854,7 +1212,8 @@ static void bcm2835_dma_free(struct bcm2
}
static const struct of_device_id bcm2835_dma_of_match[] = {
@@ -1045,7 +1043,7 @@ index 0117bb2e8591..dcc77ed986bb 100644
{},
};
MODULE_DEVICE_TABLE(of, bcm2835_dma_of_match);
@@ -898,7 +1257,10 @@ static const struct dev_pm_ops bcm2835_dma_pm_ops = {
@@ -898,7 +1257,10 @@ static const struct dev_pm_ops bcm2835_d
static int bcm2835_dma_probe(struct platform_device *pdev)
{
@@ -1056,7 +1054,7 @@ index 0117bb2e8591..dcc77ed986bb 100644
void __iomem *base;
int rc;
int i, j;
@@ -906,11 +1268,20 @@ static int bcm2835_dma_probe(struct platform_device *pdev)
@@ -906,11 +1268,20 @@ static int bcm2835_dma_probe(struct plat
int irq_flags;
uint32_t chans_available;
char chan_name[BCM2835_DMA_CHAN_NAME_SIZE];
@@ -1078,7 +1076,7 @@ index 0117bb2e8591..dcc77ed986bb 100644
if (rc) {
dev_err(&pdev->dev, "Unable to set DMA mask\n");
return rc;
@@ -922,10 +1293,17 @@ static int bcm2835_dma_probe(struct platform_device *pdev)
@@ -922,10 +1293,17 @@ static int bcm2835_dma_probe(struct plat
dma_set_max_seg_size(&pdev->dev, 0x3FFFFFFF);
@@ -1097,7 +1095,7 @@ index 0117bb2e8591..dcc77ed986bb 100644
od->base = base;
dma_cap_set(DMA_SLAVE, od->ddev.cap_mask);
@@ -961,6 +1339,14 @@ static int bcm2835_dma_probe(struct platform_device *pdev)
@@ -961,6 +1339,14 @@ static int bcm2835_dma_probe(struct plat
return -ENOMEM;
}
@@ -1112,7 +1110,7 @@ index 0117bb2e8591..dcc77ed986bb 100644
/* Request DMA channel mask from device tree */
if (of_property_read_u32(pdev->dev.of_node,
"brcm,dma-channel-mask",
@@ -970,8 +1356,36 @@ static int bcm2835_dma_probe(struct platform_device *pdev)
@@ -970,8 +1356,36 @@ static int bcm2835_dma_probe(struct plat
goto err_no_dma;
}
@@ -1150,7 +1148,7 @@ index 0117bb2e8591..dcc77ed986bb 100644
/* skip masked out channels */
if (!(chans_available & (1 << i))) {
irq[i] = -1;
@@ -994,13 +1408,17 @@ static int bcm2835_dma_probe(struct platform_device *pdev)
@@ -994,13 +1408,17 @@ static int bcm2835_dma_probe(struct plat
irq[i] = platform_get_irq(pdev, i < 11 ? i : 11);
}
@@ -1169,7 +1167,7 @@ index 0117bb2e8591..dcc77ed986bb 100644
irq_flags = 0;
for (j = 0; j <= BCM2835_DMA_MAX_DMA_CHAN_SUPPORTED; j++)
if ((i != j) && (irq[j] == irq[i])) {
@@ -1012,9 +1430,10 @@ static int bcm2835_dma_probe(struct platform_device *pdev)
@@ -1012,9 +1430,10 @@ static int bcm2835_dma_probe(struct plat
rc = bcm2835_dma_chan_init(od, i, irq[i], irq_flags);
if (rc)
goto err_no_dma;
@@ -1181,7 +1179,7 @@ index 0117bb2e8591..dcc77ed986bb 100644
/* Device-tree DMA controller registration */
rc = of_dma_controller_register(pdev->dev.of_node,
@@ -1044,7 +1463,15 @@ static void bcm2835_dma_remove(struct platform_device *pdev)
@@ -1044,7 +1463,15 @@ static void bcm2835_dma_remove(struct pl
{
struct bcm2835_dmadev *od = platform_get_drvdata(pdev);
@@ -1197,7 +1195,7 @@ index 0117bb2e8591..dcc77ed986bb 100644
bcm2835_dma_free(od);
}
@@ -1058,7 +1485,22 @@ static struct platform_driver bcm2835_dma_driver = {
@@ -1058,7 +1485,22 @@ static struct platform_driver bcm2835_dm
},
};
@@ -1221,6 +1219,3 @@ index 0117bb2e8591..dcc77ed986bb 100644
MODULE_ALIAS("platform:bcm2835-dma");
MODULE_DESCRIPTION("BCM2835 DMA engine driver");
--
2.54.0
@@ -11,8 +11,6 @@ See: https://github.com/raspberrypi/linux/pull/1510
drivers/rtc/rtc-pcf2123.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/rtc/rtc-pcf2123.c b/drivers/rtc/rtc-pcf2123.c
index e714661e61a9..89cda4dea7f8 100644
--- a/drivers/rtc/rtc-pcf2123.c
+++ b/drivers/rtc/rtc-pcf2123.c
@@ -479,3 +479,4 @@ module_spi_driver(pcf2123_driver);
@@ -20,6 +18,3 @@ index e714661e61a9..89cda4dea7f8 100644
MODULE_DESCRIPTION("NXP PCF2123 RTC driver");
MODULE_LICENSE("GPL");
+MODULE_ALIAS("spi:rtc-pcf2123");
--
2.54.0
@@ -19,8 +19,6 @@ Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
drivers/watchdog/bcm2835_wdt.c | 49 +++++++++++++++++++---------------
1 file changed, 27 insertions(+), 22 deletions(-)
diff --git a/drivers/watchdog/bcm2835_wdt.c b/drivers/watchdog/bcm2835_wdt.c
index 9fcfee63905b..b2960f67d8a8 100644
--- a/drivers/watchdog/bcm2835_wdt.c
+++ b/drivers/watchdog/bcm2835_wdt.c
@@ -32,13 +32,7 @@
@@ -38,7 +36,7 @@ index 9fcfee63905b..b2960f67d8a8 100644
#define SECS_TO_WDOG_TICKS(x) ((x) << 16)
#define WDOG_TICKS_TO_SECS(x) ((x) >> 16)
@@ -98,9 +92,24 @@ static unsigned int bcm2835_wdt_get_timeleft(struct watchdog_device *wdog)
@@ -98,9 +92,24 @@ static unsigned int bcm2835_wdt_get_time
return WDOG_TICKS_TO_SECS(ret & PM_WDOG_TIME_SET);
}
@@ -65,7 +63,7 @@ index 9fcfee63905b..b2960f67d8a8 100644
/* use a timeout of 10 ticks (~150us) */
writel_relaxed(10 | PM_PASSWORD, wdt->base + PM_WDOG);
@@ -118,7 +127,13 @@ static int bcm2835_restart(struct watchdog_device *wdog,
@@ -118,7 +127,13 @@ static int bcm2835_restart(struct watchd
{
struct bcm2835_wdt *wdt = watchdog_get_drvdata(wdog);
@@ -80,7 +78,7 @@ index 9fcfee63905b..b2960f67d8a8 100644
return 0;
}
@@ -153,19 +168,9 @@ static struct watchdog_device bcm2835_wdt_wdd = {
@@ -153,19 +168,9 @@ static struct watchdog_device bcm2835_wd
static void bcm2835_power_off(void)
{
struct bcm2835_wdt *wdt = bcm2835_power_off_wdt;
@@ -102,6 +100,3 @@ index 9fcfee63905b..b2960f67d8a8 100644
}
static int bcm2835_wdt_probe(struct platform_device *pdev)
--
2.54.0
@@ -21,8 +21,6 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
arch/arm64/kernel/process.c | 4 +---
2 files changed, 2 insertions(+), 6 deletions(-)
diff --git a/arch/arm/kernel/reboot.c b/arch/arm/kernel/reboot.c
index 3f0d5c3dae11..cfdbcc9826c0 100644
--- a/arch/arm/kernel/reboot.c
+++ b/arch/arm/kernel/reboot.c
@@ -102,9 +102,7 @@ void machine_shutdown(void)
@@ -36,11 +34,9 @@ index 3f0d5c3dae11..cfdbcc9826c0 100644
}
/*
diff --git a/arch/arm64/kernel/process.c b/arch/arm64/kernel/process.c
index 489554931231..811f9063ab19 100644
--- a/arch/arm64/kernel/process.c
+++ b/arch/arm64/kernel/process.c
@@ -98,9 +98,7 @@ void machine_shutdown(void)
@@ -99,9 +99,7 @@ void machine_shutdown(void)
*/
void machine_halt(void)
{
@@ -51,6 +47,3 @@ index 489554931231..811f9063ab19 100644
}
/*
--
2.54.0
@@ -8,11 +8,9 @@ Avoids the 0x40000 cycles of warmup again if firmware has already used it
drivers/char/hw_random/bcm2835-rng.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/char/hw_random/bcm2835-rng.c b/drivers/char/hw_random/bcm2835-rng.c
index aa2b135e3ee2..d74b2c593033 100644
--- a/drivers/char/hw_random/bcm2835-rng.c
+++ b/drivers/char/hw_random/bcm2835-rng.c
@@ -107,8 +107,10 @@ static int bcm2835_rng_init(struct hwrng *rng)
@@ -107,8 +107,10 @@ static int bcm2835_rng_init(struct hwrng
}
/* set warm-up count & enable */
@@ -25,6 +23,3 @@ index aa2b135e3ee2..d74b2c593033 100644
return ret;
}
--
2.54.0
@@ -59,11 +59,9 @@ Signed-off-by: Christopher Alexander Tobias Schulze <cat.schulze@alice-dsl.net>
arch/arm/vfp/vfpmodule.c | 25 +++++++++++++++++++------
1 file changed, 19 insertions(+), 6 deletions(-)
diff --git a/arch/arm/vfp/vfpmodule.c b/arch/arm/vfp/vfpmodule.c
index e559ad3cd148..4d26e72b009e 100644
--- a/arch/arm/vfp/vfpmodule.c
+++ b/arch/arm/vfp/vfpmodule.c
@@ -204,8 +204,11 @@ static int vfp_notifier(struct notifier_block *self, unsigned long cmd, void *v)
@@ -204,8 +204,11 @@ static int vfp_notifier(struct notifier_
* case the thread migrates to a different CPU. The
* restoring is done lazily.
*/
@@ -94,7 +92,7 @@ index e559ad3cd148..4d26e72b009e 100644
vfp_save_state(vfp_current_hw_state[ti->cpu], fpexc);
fmxr(FPEXC, fpexc);
#endif
@@ -554,7 +560,8 @@ void vfp_sync_hwstate(struct thread_info *thread)
@@ -554,7 +560,8 @@ void vfp_sync_hwstate(struct thread_info
/*
* Save the last VFP state on this CPU.
*/
@@ -104,7 +102,7 @@ index e559ad3cd148..4d26e72b009e 100644
vfp_save_state(&thread->vfpstate, fpexc | FPEXC_EN);
fmxr(FPEXC, fpexc);
}
@@ -620,6 +627,7 @@ int vfp_restore_user_hwstate(struct user_vfp *ufp, struct user_vfp_exc *ufp_exc)
@@ -620,6 +627,7 @@ int vfp_restore_user_hwstate(struct user
struct thread_info *thread = current_thread_info();
struct vfp_hard_struct *hwstate = &thread->vfpstate.hard;
unsigned long fpexc;
@@ -112,7 +110,7 @@ index e559ad3cd148..4d26e72b009e 100644
/* Disable VFP to avoid corrupting the new thread state. */
vfp_flush_hwstate(thread);
@@ -642,8 +650,12 @@ int vfp_restore_user_hwstate(struct user_vfp *ufp, struct user_vfp_exc *ufp_exc)
@@ -642,8 +650,12 @@ int vfp_restore_user_hwstate(struct user
/* Ensure the VFP is enabled. */
fpexc |= FPEXC_EN;
@@ -137,6 +135,3 @@ index e559ad3cd148..4d26e72b009e 100644
/*
* Save the userland NEON/VFP state. Under UP,
--
2.54.0
@@ -35,8 +35,6 @@ Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
drivers/i2c/busses/i2c-bcm2835.c | 99 +++++++++++++++++++++++++++++++-
1 file changed, 98 insertions(+), 1 deletion(-)
diff --git a/drivers/i2c/busses/i2c-bcm2835.c b/drivers/i2c/busses/i2c-bcm2835.c
index 8554e790f8e3..e56349228c14 100644
--- a/drivers/i2c/busses/i2c-bcm2835.c
+++ b/drivers/i2c/busses/i2c-bcm2835.c
@@ -56,6 +56,18 @@
@@ -137,7 +135,7 @@ index 8554e790f8e3..e56349228c14 100644
static inline void bcm2835_i2c_writel(struct bcm2835_i2c_dev *i2c_dev,
u32 reg, u32 val)
{
@@ -257,6 +339,7 @@ static void bcm2835_i2c_start_transfer(struct bcm2835_i2c_dev *i2c_dev)
@@ -257,6 +339,7 @@ static void bcm2835_i2c_start_transfer(s
bcm2835_i2c_writel(i2c_dev, BCM2835_I2C_A, msg->addr);
bcm2835_i2c_writel(i2c_dev, BCM2835_I2C_DLEN, msg->len);
bcm2835_i2c_writel(i2c_dev, BCM2835_I2C_C, c);
@@ -145,7 +143,7 @@ index 8554e790f8e3..e56349228c14 100644
}
static void bcm2835_i2c_finish_transfer(struct bcm2835_i2c_dev *i2c_dev)
@@ -283,6 +366,7 @@ static irqreturn_t bcm2835_i2c_isr(int this_irq, void *data)
@@ -283,6 +366,7 @@ static irqreturn_t bcm2835_i2c_isr(int t
u32 val, err;
val = bcm2835_i2c_readl(i2c_dev, BCM2835_I2C_S);
@@ -153,7 +151,7 @@ index 8554e790f8e3..e56349228c14 100644
err = val & (BCM2835_I2C_S_CLKT | BCM2835_I2C_S_ERR);
if (err) {
@@ -349,6 +433,13 @@ static int bcm2835_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[],
@@ -349,6 +433,13 @@ static int bcm2835_i2c_xfer(struct i2c_a
unsigned long time_left;
int i;
@@ -167,7 +165,7 @@ index 8554e790f8e3..e56349228c14 100644
for (i = 0; i < (num - 1); i++)
if (msgs[i].flags & I2C_M_RD) {
dev_warn_once(i2c_dev->dev,
@@ -367,6 +458,10 @@ static int bcm2835_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[],
@@ -367,6 +458,10 @@ static int bcm2835_i2c_xfer(struct i2c_a
bcm2835_i2c_finish_transfer(i2c_dev);
@@ -178,7 +176,7 @@ index 8554e790f8e3..e56349228c14 100644
if (!time_left) {
bcm2835_i2c_writel(i2c_dev, BCM2835_I2C_C,
BCM2835_I2C_C_CLEAR);
@@ -376,7 +471,9 @@ static int bcm2835_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[],
@@ -376,7 +471,9 @@ static int bcm2835_i2c_xfer(struct i2c_a
if (!i2c_dev->msg_err)
return num;
@@ -189,6 +187,3 @@ index 8554e790f8e3..e56349228c14 100644
if (i2c_dev->msg_err & BCM2835_I2C_S_ERR)
return -EREMOTEIO;
--
2.54.0
@@ -20,8 +20,6 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
drivers/irqchip/irq-bcm2836.c | 5 +++++
2 files changed, 17 insertions(+), 20 deletions(-)
diff --git a/drivers/irqchip/irq-bcm2835.c b/drivers/irqchip/irq-bcm2835.c
index 3bfb4a5b23c2..9b60e4223399 100644
--- a/drivers/irqchip/irq-bcm2835.c
+++ b/drivers/irqchip/irq-bcm2835.c
@@ -41,8 +41,6 @@
@@ -42,7 +40,7 @@ index 3bfb4a5b23c2..9b60e4223399 100644
};
static struct armctrl_ic intc __read_mostly;
@@ -129,24 +127,20 @@ static void armctrl_unmask_irq(struct irq_data *d)
@@ -129,24 +127,20 @@ static void armctrl_unmask_irq(struct ir
if (d->hwirq >= NUMBER_IRQS) {
if (num_online_cpus() > 1) {
unsigned int data;
@@ -74,7 +72,7 @@ index 3bfb4a5b23c2..9b60e4223399 100644
}
writel_relaxed(REG_FIQ_ENABLE | hwirq_to_fiq(d->hwirq),
@@ -248,12 +242,10 @@ static int __init armctrl_of_init(struct device_node *node,
@@ -248,12 +242,10 @@ static int __init armctrl_of_init(struct
}
if (is_2836) {
@@ -91,8 +89,6 @@ index 3bfb4a5b23c2..9b60e4223399 100644
}
/* Make a duplicate irq range which is used to enable FIQ */
diff --git a/drivers/irqchip/irq-bcm2836.c b/drivers/irqchip/irq-bcm2836.c
index 067027467113..22519f3f4f66 100644
--- a/drivers/irqchip/irq-bcm2836.c
+++ b/drivers/irqchip/irq-bcm2836.c
@@ -22,6 +22,9 @@ struct bcm2836_arm_irqchip_intc {
@@ -105,7 +101,7 @@ index 067027467113..22519f3f4f66 100644
static void bcm2836_arm_irqchip_mask_per_cpu_irq(unsigned int reg_offset,
unsigned int bit,
int cpu)
@@ -323,6 +326,8 @@ static int __init bcm2836_arm_irqchip_l1_intc_of_init(struct device_node *node,
@@ -323,6 +326,8 @@ static int __init bcm2836_arm_irqchip_l1
panic("%pOF: unable to map local interrupt registers\n", node);
}
@@ -114,6 +110,3 @@ index 067027467113..22519f3f4f66 100644
bcm2835_init_local_timer_frequency();
intc.domain = irq_domain_create_linear(of_fwnode_handle(node), LAST_IRQ + 1,
--
2.54.0
@@ -15,11 +15,9 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
drivers/tty/serial/amba-pl011.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl011.c
index 7f17d288c807..f9bbfe065ba9 100644
--- a/drivers/tty/serial/amba-pl011.c
+++ b/drivers/tty/serial/amba-pl011.c
@@ -1495,6 +1495,7 @@ static bool pl011_tx_char(struct uart_amba_port *uap, unsigned char c,
@@ -1495,6 +1495,7 @@ static bool pl011_tx_char(struct uart_am
return false; /* unable to transmit character */
pl011_write(c, uap, REG_DR);
@@ -27,6 +25,3 @@ index 7f17d288c807..f9bbfe065ba9 100644
uap->port.icount.tx++;
return true;
--
2.54.0
@@ -19,8 +19,6 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
drivers/tty/serial/amba-pl011.c | 5 +++++
2 files changed, 11 insertions(+)
diff --git a/Documentation/devicetree/bindings/serial/pl011.yaml b/Documentation/devicetree/bindings/serial/pl011.yaml
index 3fcf2d042372..e7472ef4e193 100644
--- a/Documentation/devicetree/bindings/serial/pl011.yaml
+++ b/Documentation/devicetree/bindings/serial/pl011.yaml
@@ -104,6 +104,12 @@ properties:
@@ -36,11 +34,9 @@ index 3fcf2d042372..e7472ef4e193 100644
required:
- compatible
- reg
diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl011.c
index f9bbfe065ba9..898504443644 100644
--- a/drivers/tty/serial/amba-pl011.c
+++ b/drivers/tty/serial/amba-pl011.c
@@ -2895,6 +2895,11 @@ static int pl011_probe(struct amba_device *dev, const struct amba_id *id)
@@ -2895,6 +2895,11 @@ static int pl011_probe(struct amba_devic
if (IS_ERR(uap->clk))
return PTR_ERR(uap->clk);
@@ -52,6 +48,3 @@ index f9bbfe065ba9..898504443644 100644
uap->reg_offset = vendor->reg_offset;
uap->vendor = vendor;
uap->fifosize = vendor->get_fifosize(dev);
--
2.54.0
@@ -27,11 +27,9 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
drivers/tty/serial/amba-pl011.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl011.c
index 898504443644..2273ffccd2c9 100644
--- a/drivers/tty/serial/amba-pl011.c
+++ b/drivers/tty/serial/amba-pl011.c
@@ -1528,6 +1528,10 @@ static bool pl011_tx_chars(struct uart_amba_port *uap, bool from_irq)
@@ -1528,6 +1528,10 @@ static bool pl011_tx_chars(struct uart_a
if (likely(from_irq) && count-- == 0)
break;
@@ -42,6 +40,3 @@ index 898504443644..2273ffccd2c9 100644
if (!kfifo_peek(&tport->xmit_fifo, &c))
break;
--
2.54.0
@@ -32,8 +32,6 @@ board_bcm2835: Remove coherent dma pool increase - API has gone
drivers/mailbox/bcm2835-mailbox.c | 18 ++++++++++++++++--
4 files changed, 35 insertions(+), 6 deletions(-)
diff --git a/arch/arm/mach-bcm/Kconfig b/arch/arm/mach-bcm/Kconfig
index 882a8dc508f2..653a909c5ecd 100644
--- a/arch/arm/mach-bcm/Kconfig
+++ b/arch/arm/mach-bcm/Kconfig
@@ -162,6 +162,7 @@ config ARCH_BCM2835
@@ -44,8 +42,6 @@ index 882a8dc508f2..653a909c5ecd 100644
help
This enables support for the Broadcom BCM2711 and BCM283x SoCs.
This SoC is used in the Raspberry Pi and Roku 2 devices.
diff --git a/arch/arm/mm/proc-v6.S b/arch/arm/mm/proc-v6.S
index 90a01f5950b9..3ff019fb1f43 100644
--- a/arch/arm/mm/proc-v6.S
+++ b/arch/arm/mm/proc-v6.S
@@ -75,10 +75,19 @@ SYM_FUNC_END(cpu_v6_reset)
@@ -71,8 +67,6 @@ index 90a01f5950b9..3ff019fb1f43 100644
ret lr
SYM_FUNC_END(cpu_v6_do_idle)
diff --git a/drivers/irqchip/irq-bcm2835.c b/drivers/irqchip/irq-bcm2835.c
index 9b60e4223399..527cc962d6fd 100644
--- a/drivers/irqchip/irq-bcm2835.c
+++ b/drivers/irqchip/irq-bcm2835.c
@@ -43,7 +43,9 @@
@@ -93,7 +87,7 @@ index 9b60e4223399..527cc962d6fd 100644
#define FIQ_START (NR_IRQS_BANK0 + MAKE_HWIRQ(NR_BANKS - 1, 0))
static const int reg_pending[] __initconst = { 0x00, 0x04, 0x08 };
@@ -255,10 +258,12 @@ static int __init armctrl_of_init(struct device_node *node,
@@ -255,10 +258,12 @@ static int __init armctrl_of_init(struct
MAKE_HWIRQ(b, i) + NUMBER_IRQS);
BUG_ON(irq <= 0);
irq_set_chip(irq, &armctrl_chip);
@@ -107,8 +101,6 @@ index 9b60e4223399..527cc962d6fd 100644
return 0;
}
diff --git a/drivers/mailbox/bcm2835-mailbox.c b/drivers/mailbox/bcm2835-mailbox.c
index ea12fb8d2401..8c54980b4b7e 100644
--- a/drivers/mailbox/bcm2835-mailbox.c
+++ b/drivers/mailbox/bcm2835-mailbox.c
@@ -45,12 +45,15 @@
@@ -127,7 +119,7 @@ index ea12fb8d2401..8c54980b4b7e 100644
struct bcm2835_mbox {
void __iomem *regs;
@@ -144,7 +147,7 @@ static int bcm2835_mbox_probe(struct platform_device *pdev)
@@ -144,7 +147,7 @@ static int bcm2835_mbox_probe(struct pla
return -ENOMEM;
spin_lock_init(&mbox->lock);
@@ -136,7 +128,7 @@ index ea12fb8d2401..8c54980b4b7e 100644
bcm2835_mbox_irq, IRQF_NO_SUSPEND, dev_name(dev),
mbox);
if (ret) {
@@ -193,7 +196,18 @@ static struct platform_driver bcm2835_mbox_driver = {
@@ -193,7 +196,18 @@ static struct platform_driver bcm2835_mb
},
.probe = bcm2835_mbox_probe,
};
@@ -156,6 +148,3 @@ index ea12fb8d2401..8c54980b4b7e 100644
MODULE_AUTHOR("Lubomir Rintel <lkundrak@v3.sk>");
MODULE_DESCRIPTION("BCM2835 mailbox IPC driver");
--
2.54.0
@@ -1222,11 +1222,9 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
create mode 100644 drivers/usb/host/dwc_otg/test/test_mod_param.pl
create mode 100644 drivers/usb/host/dwc_otg/test/test_sysfs.pl
diff --git a/arch/arm/include/asm/irqflags.h b/arch/arm/include/asm/irqflags.h
index aeec7f24eb75..a3b186608c60 100644
--- a/arch/arm/include/asm/irqflags.h
+++ b/arch/arm/include/asm/irqflags.h
@@ -163,13 +163,23 @@ static inline unsigned long arch_local_save_flags(void)
@@ -163,13 +163,23 @@ static inline unsigned long arch_local_s
}
/*
@@ -1253,8 +1251,6 @@ index aeec7f24eb75..a3b186608c60 100644
:
: "r" (flags)
: "memory", "cc");
diff --git a/arch/arm/kernel/fiqasm.S b/arch/arm/kernel/fiqasm.S
index 8dd26e1a9bd6..eef484756af2 100644
--- a/arch/arm/kernel/fiqasm.S
+++ b/arch/arm/kernel/fiqasm.S
@@ -47,3 +47,7 @@ ENTRY(__get_fiq_regs)
@@ -1265,8 +1261,6 @@ index 8dd26e1a9bd6..eef484756af2 100644
+ENTRY(__FIQ_Branch)
+ mov pc, r8
+ENDPROC(__FIQ_Branch)
diff --git a/drivers/usb/Makefile b/drivers/usb/Makefile
index 949eca0adebe..80af388baede 100644
--- a/drivers/usb/Makefile
+++ b/drivers/usb/Makefile
@@ -9,6 +9,7 @@ obj-$(CONFIG_USB_COMMON) += common/
@@ -1277,11 +1271,9 @@ index 949eca0adebe..80af388baede 100644
obj-$(CONFIG_USB_DWC3) += dwc3/
obj-$(CONFIG_USB_DWC2) += dwc2/
obj-$(CONFIG_USB_ISP1760) += isp1760/
diff --git a/drivers/usb/core/generic.c b/drivers/usb/core/generic.c
index a48994e11ef3..88723aea8488 100644
--- a/drivers/usb/core/generic.c
+++ b/drivers/usb/core/generic.c
@@ -202,6 +202,7 @@ int usb_choose_configuration(struct usb_device *udev)
@@ -202,6 +202,7 @@ int usb_choose_configuration(struct usb_
dev_warn(&udev->dev,
"no configuration chosen from %d choice%s\n",
num_configs, str_plural(num_configs));
@@ -1289,11 +1281,9 @@ index a48994e11ef3..88723aea8488 100644
}
return i;
}
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
index 256fe8c86828..49107595caa8 100644
--- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c
@@ -5788,7 +5788,7 @@ static void port_event(struct usb_hub *hub, int port1)
@@ -5788,7 +5788,7 @@ static void port_event(struct usb_hub *h
port_dev->over_current_count++;
port_over_current_notify(port_dev);
@@ -1302,11 +1292,9 @@ index 256fe8c86828..49107595caa8 100644
port_dev->over_current_count);
usb_clear_port_feature(hdev, port1,
USB_PORT_FEAT_C_OVER_CURRENT);
diff --git a/drivers/usb/core/message.c b/drivers/usb/core/message.c
index 43522f1d6b2b..d25022abdbdc 100644
--- a/drivers/usb/core/message.c
+++ b/drivers/usb/core/message.c
@@ -2238,6 +2238,85 @@ int usb_set_configuration(struct usb_device *dev, int configuration)
@@ -2238,6 +2238,85 @@ free_interfaces:
if (cp->string == NULL &&
!(dev->quirks & USB_QUIRK_CONFIG_INTF_STRINGS))
cp->string = usb_cache_string(dev, cp->desc.iConfiguration);
@@ -1392,8 +1380,6 @@ index 43522f1d6b2b..d25022abdbdc 100644
/* Now that the interfaces are installed, re-enable LPM. */
usb_unlocked_enable_lpm(dev);
diff --git a/drivers/usb/core/otg_productlist.h b/drivers/usb/core/otg_productlist.h
index db67df29fb2b..b16e528859a8 100644
--- a/drivers/usb/core/otg_productlist.h
+++ b/drivers/usb/core/otg_productlist.h
@@ -11,33 +11,82 @@
@@ -1485,7 +1471,7 @@ index db67df29fb2b..b16e528859a8 100644
static int is_targeted(struct usb_device *dev)
{
struct usb_device_id *id = productlist_table;
@@ -87,16 +136,57 @@ static int is_targeted(struct usb_device *dev)
@@ -87,16 +136,57 @@ static int is_targeted(struct usb_device
continue;
return 1;
@@ -1508,15 +1494,11 @@ index db67df29fb2b..b16e528859a8 100644
+ if ((id->match_flags & USB_DEVICE_ID_MATCH_VENDOR) &&
+ id->idVendor != le16_to_cpu(dev->descriptor.idVendor))
+ continue;
+
+ if ((id->match_flags & USB_DEVICE_ID_MATCH_PRODUCT) &&
+ id->idProduct != le16_to_cpu(dev->descriptor.idProduct))
+ continue;
- /* OTG MESSAGE: report errors here, customize to match your product */
- dev_err(&dev->dev, "device v%04x p%04x is not supported\n",
- le16_to_cpu(dev->descriptor.idVendor),
- le16_to_cpu(dev->descriptor.idProduct));
+
+ /* No need to test id->bcdDevice_lo != 0, since 0 is never
+ greater than any unsigned number. */
+ if ((id->match_flags & USB_DEVICE_ID_MATCH_DEV_LO) &&
@@ -1538,20 +1520,21 @@ index db67df29fb2b..b16e528859a8 100644
+ if ((id->match_flags & USB_DEVICE_ID_MATCH_DEV_PROTOCOL) &&
+ (id->bDeviceProtocol != dev->descriptor.bDeviceProtocol))
+ continue;
+
+ return 1;
+ }
+ }
+
- /* OTG MESSAGE: report errors here, customize to match your product */
- dev_err(&dev->dev, "device v%04x p%04x is not supported\n",
- le16_to_cpu(dev->descriptor.idVendor),
- le16_to_cpu(dev->descriptor.idProduct));
+ /* add other match criteria here ... */
+ report_errors(dev);
return 0;
}
diff --git a/drivers/usb/gadget/file_storage.c b/drivers/usb/gadget/file_storage.c
new file mode 100644
index 000000000000..a896d73f7a93
--- /dev/null
+++ b/drivers/usb/gadget/file_storage.c
@@ -0,0 +1,3676 @@
@@ -5231,8 +5214,6 @@ index 000000000000..a896d73f7a93
+ kref_put(&fsg->ref, fsg_release);
+}
+module_exit(fsg_cleanup);
diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig
index c4f17ce5c77b..08e80deee437 100644
--- a/drivers/usb/host/Kconfig
+++ b/drivers/usb/host/Kconfig
@@ -687,6 +687,16 @@ config USB_RENESAS_USBHS_HCD
@@ -5252,11 +5233,9 @@ index c4f17ce5c77b..08e80deee437 100644
config USB_HCD_BCMA
tristate "BCMA usb host driver"
depends on BCMA
diff --git a/drivers/usb/host/Makefile b/drivers/usb/host/Makefile
index 4df946c05ba0..ca260ef6df90 100644
--- a/drivers/usb/host/Makefile
+++ b/drivers/usb/host/Makefile
@@ -81,6 +81,7 @@ obj-$(CONFIG_USB_XHCI_TEGRA) += xhci-tegra.o
@@ -81,6 +81,7 @@ obj-$(CONFIG_USB_XHCI_TEGRA) += xhci-teg
obj-$(CONFIG_USB_SL811_HCD) += sl811-hcd.o
obj-$(CONFIG_USB_SL811_CS) += sl811_cs.o
obj-$(CONFIG_USB_R8A66597_HCD) += r8a66597-hcd.o
@@ -5264,9 +5243,6 @@ index 4df946c05ba0..ca260ef6df90 100644
obj-$(CONFIG_USB_FSL_USB2) += fsl-mph-dr-of.o
obj-$(CONFIG_USB_EHCI_FSL) += fsl-mph-dr-of.o
obj-$(CONFIG_USB_EHCI_FSL) += ehci-fsl.o
diff --git a/drivers/usb/host/dwc_common_port/Makefile b/drivers/usb/host/dwc_common_port/Makefile
new file mode 100644
index 000000000000..f10d466d1aea
--- /dev/null
+++ b/drivers/usb/host/dwc_common_port/Makefile
@@ -0,0 +1,58 @@
@@ -5328,9 +5304,6 @@ index 000000000000..f10d466d1aea
+
+clean:
+ rm -rf *.o *.ko .*.cmd *.mod.c .*.o.d .*.o.tmp modules.order Module.markers Module.symvers .tmp_versions/
diff --git a/drivers/usb/host/dwc_common_port/Makefile.fbsd b/drivers/usb/host/dwc_common_port/Makefile.fbsd
new file mode 100644
index 000000000000..45db9915b9d3
--- /dev/null
+++ b/drivers/usb/host/dwc_common_port/Makefile.fbsd
@@ -0,0 +1,17 @@
@@ -5351,9 +5324,6 @@ index 000000000000..45db9915b9d3
+ dwc_common_fbsd.c dwc_mem.c
+
+.include <bsd.kmod.mk>
diff --git a/drivers/usb/host/dwc_common_port/Makefile.linux b/drivers/usb/host/dwc_common_port/Makefile.linux
new file mode 100644
index 000000000000..0cef7b461bd5
--- /dev/null
+++ b/drivers/usb/host/dwc_common_port/Makefile.linux
@@ -0,0 +1,49 @@
@@ -5406,9 +5376,6 @@ index 000000000000..0cef7b461bd5
+
+clean:
+ rm -rf *.o *.ko .*.cmd *.mod.c .*.o.d .*.o.tmp modules.order Module.markers Module.symvers .tmp_versions/
diff --git a/drivers/usb/host/dwc_common_port/changes.txt b/drivers/usb/host/dwc_common_port/changes.txt
new file mode 100644
index 000000000000..f6839f92c276
--- /dev/null
+++ b/drivers/usb/host/dwc_common_port/changes.txt
@@ -0,0 +1,174 @@
@@ -5586,9 +5553,6 @@ index 000000000000..f6839f92c276
+A DWC_LIBMODULE #define has also been added. If this is not defined, then the
+module code in dwc_common_linux.c is not compiled in. This allows linking the
+library code directly into a driver module, instead of as a standalone module.
diff --git a/drivers/usb/host/dwc_common_port/doc/doxygen.cfg b/drivers/usb/host/dwc_common_port/doc/doxygen.cfg
new file mode 100644
index 000000000000..89aa887af29d
--- /dev/null
+++ b/drivers/usb/host/dwc_common_port/doc/doxygen.cfg
@@ -0,0 +1,270 @@
@@ -5862,9 +5826,6 @@ index 000000000000..89aa887af29d
+# Configuration::additions related to the search engine
+#---------------------------------------------------------------------------
+SEARCHENGINE = NO
diff --git a/drivers/usb/host/dwc_common_port/dwc_cc.c b/drivers/usb/host/dwc_common_port/dwc_cc.c
new file mode 100644
index 000000000000..5ec2ae28698c
--- /dev/null
+++ b/drivers/usb/host/dwc_common_port/dwc_cc.c
@@ -0,0 +1,532 @@
@@ -6400,9 +6361,6 @@ index 000000000000..5ec2ae28698c
+}
+
+#endif /* DWC_CCLIB */
diff --git a/drivers/usb/host/dwc_common_port/dwc_cc.h b/drivers/usb/host/dwc_common_port/dwc_cc.h
new file mode 100644
index 000000000000..f86e6f21792b
--- /dev/null
+++ b/drivers/usb/host/dwc_common_port/dwc_cc.h
@@ -0,0 +1,224 @@
@@ -6630,9 +6588,6 @@ index 000000000000..f86e6f21792b
+#endif
+
+#endif /* _DWC_CC_H_ */
diff --git a/drivers/usb/host/dwc_common_port/dwc_common_fbsd.c b/drivers/usb/host/dwc_common_port/dwc_common_fbsd.c
new file mode 100644
index 000000000000..6dd04b58f8f6
--- /dev/null
+++ b/drivers/usb/host/dwc_common_port/dwc_common_fbsd.c
@@ -0,0 +1,1308 @@
@@ -7944,9 +7899,6 @@ index 000000000000..6dd04b58f8f6
+{
+ return wq->pending;
+}
diff --git a/drivers/usb/host/dwc_common_port/dwc_common_linux.c b/drivers/usb/host/dwc_common_port/dwc_common_linux.c
new file mode 100644
index 000000000000..43a2c60c2b5f
--- /dev/null
+++ b/drivers/usb/host/dwc_common_port/dwc_common_linux.c
@@ -0,0 +1,1409 @@
@@ -9359,9 +9311,6 @@ index 000000000000..43a2c60c2b5f
+MODULE_LICENSE ("GPL");
+
+#endif /* DWC_LIBMODULE */
diff --git a/drivers/usb/host/dwc_common_port/dwc_common_nbsd.c b/drivers/usb/host/dwc_common_port/dwc_common_nbsd.c
new file mode 100644
index 000000000000..49b07e172264
--- /dev/null
+++ b/drivers/usb/host/dwc_common_port/dwc_common_nbsd.c
@@ -0,0 +1,1275 @@
@@ -10640,9 +10589,6 @@ index 000000000000..49b07e172264
+{
+ return wq->pending;
+}
diff --git a/drivers/usb/host/dwc_common_port/dwc_crypto.c b/drivers/usb/host/dwc_common_port/dwc_crypto.c
new file mode 100644
index 000000000000..3b0353296148
--- /dev/null
+++ b/drivers/usb/host/dwc_common_port/dwc_crypto.c
@@ -0,0 +1,308 @@
@@ -10954,9 +10900,6 @@ index 000000000000..3b0353296148
+}
+
+#endif /* DWC_CRYPTOLIB */
diff --git a/drivers/usb/host/dwc_common_port/dwc_crypto.h b/drivers/usb/host/dwc_common_port/dwc_crypto.h
new file mode 100644
index 000000000000..26fcddcfe9ba
--- /dev/null
+++ b/drivers/usb/host/dwc_common_port/dwc_crypto.h
@@ -0,0 +1,111 @@
@@ -11071,9 +11014,6 @@ index 000000000000..26fcddcfe9ba
+#endif
+
+#endif /* _DWC_CRYPTO_H_ */
diff --git a/drivers/usb/host/dwc_common_port/dwc_dh.c b/drivers/usb/host/dwc_common_port/dwc_dh.c
new file mode 100644
index 000000000000..2b429a32aaf0
--- /dev/null
+++ b/drivers/usb/host/dwc_common_port/dwc_dh.c
@@ -0,0 +1,291 @@
@@ -11368,9 +11308,6 @@ index 000000000000..2b429a32aaf0
+#endif /* !CONFIG_MACH_IPMATE */
+
+#endif /* DWC_CRYPTOLIB */
diff --git a/drivers/usb/host/dwc_common_port/dwc_dh.h b/drivers/usb/host/dwc_common_port/dwc_dh.h
new file mode 100644
index 000000000000..25c1cc0d588a
--- /dev/null
+++ b/drivers/usb/host/dwc_common_port/dwc_dh.h
@@ -0,0 +1,106 @@
@@ -11480,9 +11417,6 @@ index 000000000000..25c1cc0d588a
+#endif
+
+#endif /* _DWC_DH_H_ */
diff --git a/drivers/usb/host/dwc_common_port/dwc_list.h b/drivers/usb/host/dwc_common_port/dwc_list.h
new file mode 100644
index 000000000000..4ce560df0cae
--- /dev/null
+++ b/drivers/usb/host/dwc_common_port/dwc_list.h
@@ -0,0 +1,594 @@
@@ -12080,9 +12014,6 @@ index 000000000000..4ce560df0cae
+#endif
+
+#endif /* _DWC_LIST_H_ */
diff --git a/drivers/usb/host/dwc_common_port/dwc_mem.c b/drivers/usb/host/dwc_common_port/dwc_mem.c
new file mode 100644
index 000000000000..ad645ff1ba7e
--- /dev/null
+++ b/drivers/usb/host/dwc_common_port/dwc_mem.c
@@ -0,0 +1,245 @@
@@ -12331,9 +12262,6 @@ index 000000000000..ad645ff1ba7e
+}
+
+#endif /* DWC_DEBUG_MEMORY */
diff --git a/drivers/usb/host/dwc_common_port/dwc_modpow.c b/drivers/usb/host/dwc_common_port/dwc_modpow.c
new file mode 100644
index 000000000000..20045381208a
--- /dev/null
+++ b/drivers/usb/host/dwc_common_port/dwc_modpow.c
@@ -0,0 +1,636 @@
@@ -12973,9 +12901,6 @@ index 000000000000..20045381208a
+#endif /* CONFIG_MACH_IPMATE */
+
+#endif /*DWC_CRYPTOLIB */
diff --git a/drivers/usb/host/dwc_common_port/dwc_modpow.h b/drivers/usb/host/dwc_common_port/dwc_modpow.h
new file mode 100644
index 000000000000..64f00c276e71
--- /dev/null
+++ b/drivers/usb/host/dwc_common_port/dwc_modpow.h
@@ -0,0 +1,34 @@
@@ -13013,9 +12938,6 @@ index 000000000000..64f00c276e71
+#endif
+
+#endif /* _LINUX_BIGNUM_H */
diff --git a/drivers/usb/host/dwc_common_port/dwc_notifier.c b/drivers/usb/host/dwc_common_port/dwc_notifier.c
new file mode 100644
index 000000000000..8b3772afe11d
--- /dev/null
+++ b/drivers/usb/host/dwc_common_port/dwc_notifier.c
@@ -0,0 +1,319 @@
@@ -13338,9 +13260,6 @@ index 000000000000..8b3772afe11d
+}
+
+#endif /* DWC_NOTIFYLIB */
diff --git a/drivers/usb/host/dwc_common_port/dwc_notifier.h b/drivers/usb/host/dwc_common_port/dwc_notifier.h
new file mode 100644
index 000000000000..4a8cdfe565b1
--- /dev/null
+++ b/drivers/usb/host/dwc_common_port/dwc_notifier.h
@@ -0,0 +1,122 @@
@@ -13466,9 +13385,6 @@ index 000000000000..4a8cdfe565b1
+#endif
+
+#endif /* __DWC_NOTIFIER_H__ */
diff --git a/drivers/usb/host/dwc_common_port/dwc_os.h b/drivers/usb/host/dwc_common_port/dwc_os.h
new file mode 100644
index 000000000000..7a4052964e95
--- /dev/null
+++ b/drivers/usb/host/dwc_common_port/dwc_os.h
@@ -0,0 +1,1275 @@
@@ -14747,9 +14663,6 @@ index 000000000000..7a4052964e95
+#endif
+
+#endif /* _DWC_OS_H_ */
diff --git a/drivers/usb/host/dwc_common_port/usb.h b/drivers/usb/host/dwc_common_port/usb.h
new file mode 100644
index 000000000000..b1cedb1876b7
--- /dev/null
+++ b/drivers/usb/host/dwc_common_port/usb.h
@@ -0,0 +1,275 @@
@@ -15028,9 +14941,6 @@ index 000000000000..b1cedb1876b7
+#endif
+
+#endif /* _USB_H_ */
diff --git a/drivers/usb/host/dwc_otg/Makefile b/drivers/usb/host/dwc_otg/Makefile
new file mode 100644
index 000000000000..8cbe3e684f26
--- /dev/null
+++ b/drivers/usb/host/dwc_otg/Makefile
@@ -0,0 +1,86 @@
@@ -15120,9 +15030,6 @@ index 000000000000..8cbe3e684f26
+ rm -rf *.o *.ko .*cmd *.mod.c .tmp_versions Module.symvers
+
+endif
diff --git a/drivers/usb/host/dwc_otg/doc/doxygen.cfg b/drivers/usb/host/dwc_otg/doc/doxygen.cfg
new file mode 100644
index 000000000000..712b057ef7c2
--- /dev/null
+++ b/drivers/usb/host/dwc_otg/doc/doxygen.cfg
@@ -0,0 +1,224 @@
@@ -15350,9 +15257,6 @@ index 000000000000..712b057ef7c2
+# Configuration::additions related to the search engine
+#---------------------------------------------------------------------------
+SEARCHENGINE = NO
diff --git a/drivers/usb/host/dwc_otg/dummy_audio.c b/drivers/usb/host/dwc_otg/dummy_audio.c
new file mode 100644
index 000000000000..7cf69282abce
--- /dev/null
+++ b/drivers/usb/host/dwc_otg/dummy_audio.c
@@ -0,0 +1,1574 @@
@@ -16930,9 +16834,6 @@ index 000000000000..7cf69282abce
+ remove_proc_entry("isoc_test", NULL);
+}
+module_exit (cleanup);
diff --git a/drivers/usb/host/dwc_otg/dwc_cfi_common.h b/drivers/usb/host/dwc_otg/dwc_cfi_common.h
new file mode 100644
index 000000000000..7770e201ad3b
--- /dev/null
+++ b/drivers/usb/host/dwc_otg/dwc_cfi_common.h
@@ -0,0 +1,142 @@
@@ -17078,9 +16979,6 @@ index 000000000000..7770e201ad3b
+typedef struct cfi_string cfi_string_t;
+
+#endif
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_adp.c b/drivers/usb/host/dwc_otg/dwc_otg_adp.c
new file mode 100644
index 000000000000..cb49aedd51f6
--- /dev/null
+++ b/drivers/usb/host/dwc_otg/dwc_otg_adp.c
@@ -0,0 +1,842 @@
@@ -17926,9 +17824,6 @@ index 000000000000..cb49aedd51f6
+#endif
+ return 1;
+}
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_adp.h b/drivers/usb/host/dwc_otg/dwc_otg_adp.h
new file mode 100644
index 000000000000..4110b25d2002
--- /dev/null
+++ b/drivers/usb/host/dwc_otg/dwc_otg_adp.h
@@ -0,0 +1,80 @@
@@ -18012,9 +17907,6 @@ index 000000000000..4110b25d2002
+extern int32_t dwc_otg_adp_handle_srp_intr(dwc_otg_core_if_t * core_if);
+
+#endif //__DWC_OTG_ADP_H__
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_attr.c b/drivers/usb/host/dwc_otg/dwc_otg_attr.c
new file mode 100644
index 000000000000..2f8ea77c3892
--- /dev/null
+++ b/drivers/usb/host/dwc_otg/dwc_otg_attr.c
@@ -0,0 +1,1212 @@
@@ -19230,9 +19122,6 @@ index 000000000000..2f8ea77c3892
+ device_remove_file(&dev->dev, &dev_attr_sleep_status);
+#endif
+}
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_attr.h b/drivers/usb/host/dwc_otg/dwc_otg_attr.h
new file mode 100644
index 000000000000..e10b67f97c52
--- /dev/null
+++ b/drivers/usb/host/dwc_otg/dwc_otg_attr.h
@@ -0,0 +1,89 @@
@@ -19325,9 +19214,6 @@ index 000000000000..e10b67f97c52
+#endif
+ );
+#endif
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_cfi.c b/drivers/usb/host/dwc_otg/dwc_otg_cfi.c
new file mode 100644
index 000000000000..e73016ef863d
--- /dev/null
+++ b/drivers/usb/host/dwc_otg/dwc_otg_cfi.c
@@ -0,0 +1,1874 @@
@@ -21205,9 +21091,6 @@ index 000000000000..e73016ef863d
+}
+
+#endif //DWC_UTE_CFI
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_cfi.h b/drivers/usb/host/dwc_otg/dwc_otg_cfi.h
new file mode 100644
index 000000000000..55fd337a283c
--- /dev/null
+++ b/drivers/usb/host/dwc_otg/dwc_otg_cfi.h
@@ -0,0 +1,320 @@
@@ -21531,9 +21414,6 @@ index 000000000000..55fd337a283c
+int cfi_setup(struct dwc_otg_pcd *pcd, struct cfi_usb_ctrlrequest *ctrl);
+
+#endif /* (__DWC_OTG_CFI_H__) */
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_cil.c b/drivers/usb/host/dwc_otg/dwc_otg_cil.c
new file mode 100644
index 000000000000..b3dd2ad5237c
--- /dev/null
+++ b/drivers/usb/host/dwc_otg/dwc_otg_cil.c
@@ -0,0 +1,7121 @@
@@ -28658,9 +28538,6 @@ index 000000000000..b3dd2ad5237c
+ dwc_otg_pcd_start_srp_timer(core_if);
+ return;
+}
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_cil.h b/drivers/usb/host/dwc_otg/dwc_otg_cil.h
new file mode 100644
index 000000000000..79dbf8374f02
--- /dev/null
+++ b/drivers/usb/host/dwc_otg/dwc_otg_cil.h
@@ -0,0 +1,1464 @@
@@ -30128,9 +30005,6 @@ index 000000000000..79dbf8374f02
+//////////////////////////////////////////////////////////////////////
+
+#endif
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c b/drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c
new file mode 100644
index 000000000000..57a9fe4e5ee0
--- /dev/null
+++ b/drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c
@@ -0,0 +1,1578 @@
@@ -31712,9 +31586,6 @@ index 000000000000..57a9fe4e5ee0
+ DWC_SPINUNLOCK(core_if->lock);
+ return retval;
+}
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_core_if.h b/drivers/usb/host/dwc_otg/dwc_otg_core_if.h
new file mode 100644
index 000000000000..4138fd173337
--- /dev/null
+++ b/drivers/usb/host/dwc_otg/dwc_otg_core_if.h
@@ -0,0 +1,705 @@
@@ -32423,9 +32294,6 @@ index 000000000000..4138fd173337
+/** @} */
+
+#endif /* __DWC_CORE_IF_H__ */
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_dbg.h b/drivers/usb/host/dwc_otg/dwc_otg_dbg.h
new file mode 100644
index 000000000000..ccc24e010e44
--- /dev/null
+++ b/drivers/usb/host/dwc_otg/dwc_otg_dbg.h
@@ -0,0 +1,117 @@
@@ -32546,9 +32414,6 @@ index 000000000000..ccc24e010e44
+
+#endif /*DEBUG*/
+#endif
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_driver.c b/drivers/usb/host/dwc_otg/dwc_otg_driver.c
new file mode 100644
index 000000000000..b3e72bffafa1
--- /dev/null
+++ b/drivers/usb/host/dwc_otg/dwc_otg_driver.c
@@ -0,0 +1,1725 @@
@@ -34277,9 +34142,6 @@ index 000000000000..b3e72bffafa1
+ </td></tr>
+
+*/
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_driver.h b/drivers/usb/host/dwc_otg/dwc_otg_driver.h
new file mode 100644
index 000000000000..6a8be63a0ab2
--- /dev/null
+++ b/drivers/usb/host/dwc_otg/dwc_otg_driver.h
@@ -0,0 +1,86 @@
@@ -34369,9 +34231,6 @@ index 000000000000..6a8be63a0ab2
+#endif
+
+#endif
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.c b/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.c
new file mode 100644
index 000000000000..98e4563fee02
--- /dev/null
+++ b/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.c
@@ -0,0 +1,1370 @@
@@ -35745,9 +35604,6 @@ index 000000000000..98e4563fee02
+ mb();
+ fiq_fsm_spin_unlock(&state->lock);
+}
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.h b/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.h
new file mode 100644
index 000000000000..1399d579eb58
--- /dev/null
+++ b/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.h
@@ -0,0 +1,476 @@
@@ -36227,9 +36083,6 @@ index 000000000000..1399d579eb58
+extern void dwc_otg_fiq_nop(struct fiq_state *state);
+
+#endif /* DWC_OTG_FIQ_FSM_H_ */
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_fiq_stub.S b/drivers/usb/host/dwc_otg/dwc_otg_fiq_stub.S
new file mode 100644
index 000000000000..ffa8d21bc61e
--- /dev/null
+++ b/drivers/usb/host/dwc_otg/dwc_otg_fiq_stub.S
@@ -0,0 +1,80 @@
@@ -36313,9 +36166,6 @@ index 000000000000..ffa8d21bc61e
+ subs pc, lr, #4;
+_dwc_otg_fiq_stub_end:
+END(_dwc_otg_fiq_stub)
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
new file mode 100644
index 000000000000..9e05e075172b
--- /dev/null
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
@@ -0,0 +1,4362 @@
@@ -40681,9 +40531,6 @@ index 000000000000..9e05e075172b
+}
+
+#endif /* DWC_DEVICE_ONLY */
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd.h b/drivers/usb/host/dwc_otg/dwc_otg_hcd.h
new file mode 100644
index 000000000000..e0611c1592b1
--- /dev/null
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd.h
@@ -0,0 +1,870 @@
@@ -41557,9 +41404,6 @@ index 000000000000..e0611c1592b1
+#endif
+#endif
+#endif /* DWC_DEVICE_ONLY */
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c
new file mode 100644
index 000000000000..0cf505019090
--- /dev/null
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c
@@ -0,0 +1,1135 @@
@@ -42698,9 +42542,6 @@ index 000000000000..0cf505019090
+}
+
+#endif /* DWC_DEVICE_ONLY */
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd_if.h b/drivers/usb/host/dwc_otg/dwc_otg_hcd_if.h
new file mode 100644
index 000000000000..847c547d7ebb
--- /dev/null
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_if.h
@@ -0,0 +1,441 @@
@@ -43145,9 +42986,6 @@ index 000000000000..847c547d7ebb
+
+#endif /* __DWC_HCD_IF_H__ */
+#endif /* DWC_DEVICE_ONLY */
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
new file mode 100644
index 000000000000..2a1617b475fc
--- /dev/null
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
@@ -0,0 +1,2757 @@
@@ -45908,9 +45746,6 @@ index 000000000000..2a1617b475fc
+ return retval;
+}
+#endif /* DWC_DEVICE_ONLY */
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
new file mode 100644
index 000000000000..430a1a510295
--- /dev/null
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
@@ -0,0 +1,1081 @@
@@ -46995,9 +46830,6 @@ index 000000000000..430a1a510295
+}
+
+#endif /* DWC_DEVICE_ONLY */
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c
new file mode 100644
index 000000000000..d8a49a8568f2
--- /dev/null
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c
@@ -0,0 +1,974 @@
@@ -47975,9 +47807,6 @@ index 000000000000..d8a49a8568f2
+}
+
+#endif /* DWC_DEVICE_ONLY */
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_os_dep.h b/drivers/usb/host/dwc_otg/dwc_otg_os_dep.h
new file mode 100644
index 000000000000..0bfa98157169
--- /dev/null
+++ b/drivers/usb/host/dwc_otg/dwc_otg_os_dep.h
@@ -0,0 +1,200 @@
@@ -48181,9 +48010,6 @@ index 000000000000..0bfa98157169
+
+
+#endif /* _DWC_OS_DEP_H_ */
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_pcd.c b/drivers/usb/host/dwc_otg/dwc_otg_pcd.c
new file mode 100644
index 000000000000..ec2d45167a0f
--- /dev/null
+++ b/drivers/usb/host/dwc_otg/dwc_otg_pcd.c
@@ -0,0 +1,2723 @@
@@ -50910,9 +50736,6 @@ index 000000000000..ec2d45167a0f
+}
+
+#endif /* DWC_HOST_ONLY */
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_pcd.h b/drivers/usb/host/dwc_otg/dwc_otg_pcd.h
new file mode 100644
index 000000000000..fffc4c9d8bc6
--- /dev/null
+++ b/drivers/usb/host/dwc_otg/dwc_otg_pcd.h
@@ -0,0 +1,277 @@
@@ -51193,9 +51016,6 @@ index 000000000000..fffc4c9d8bc6
+extern void do_test_mode(void *data);
+#endif
+#endif /* DWC_HOST_ONLY */
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_pcd_if.h b/drivers/usb/host/dwc_otg/dwc_otg_pcd_if.h
new file mode 100644
index 000000000000..badc93a41c38
--- /dev/null
+++ b/drivers/usb/host/dwc_otg/dwc_otg_pcd_if.h
@@ -0,0 +1,381 @@
@@ -51580,9 +51400,6 @@ index 000000000000..badc93a41c38
+#endif /* __DWC_PCD_IF_H__ */
+
+#endif /* DWC_HOST_ONLY */
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c b/drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c
new file mode 100644
index 000000000000..9a255a96c209
--- /dev/null
+++ b/drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c
@@ -0,0 +1,5148 @@
@@ -56734,9 +56551,6 @@ index 000000000000..9a255a96c209
+}
+
+#endif /* DWC_HOST_ONLY */
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c b/drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c
new file mode 100644
index 000000000000..e214955d6914
--- /dev/null
+++ b/drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c
@@ -0,0 +1,1262 @@
@@ -58002,9 +57816,6 @@ index 000000000000..e214955d6914
+}
+
+#endif /* DWC_HOST_ONLY */
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_regs.h b/drivers/usb/host/dwc_otg/dwc_otg_regs.h
new file mode 100644
index 000000000000..8e0e7b569f1a
--- /dev/null
+++ b/drivers/usb/host/dwc_otg/dwc_otg_regs.h
@@ -0,0 +1,2550 @@
@@ -60558,9 +60369,6 @@ index 000000000000..8e0e7b569f1a
+} gpwrdn_data_t;
+
+#endif
diff --git a/drivers/usb/host/dwc_otg/test/Makefile b/drivers/usb/host/dwc_otg/test/Makefile
new file mode 100644
index 000000000000..fc453759dea3
--- /dev/null
+++ b/drivers/usb/host/dwc_otg/test/Makefile
@@ -0,0 +1,16 @@
@@ -60580,9 +60388,6 @@ index 000000000000..fc453759dea3
+ else echo "=======> $$test, FAILED" ; \
+ fi \
+ done
diff --git a/drivers/usb/host/dwc_otg/test/dwc_otg_test.pm b/drivers/usb/host/dwc_otg/test/dwc_otg_test.pm
new file mode 100644
index 000000000000..85e55fd6ddbc
--- /dev/null
+++ b/drivers/usb/host/dwc_otg/test/dwc_otg_test.pm
@@ -0,0 +1,337 @@
@@ -60923,9 +60728,6 @@ index 000000000000..85e55fd6ddbc
+);
+
+1;
diff --git a/drivers/usb/host/dwc_otg/test/test_mod_param.pl b/drivers/usb/host/dwc_otg/test/test_mod_param.pl
new file mode 100644
index 000000000000..dc3820df577b
--- /dev/null
+++ b/drivers/usb/host/dwc_otg/test/test_mod_param.pl
@@ -0,0 +1,133 @@
@@ -61062,9 +60864,6 @@ index 000000000000..dc3820df577b
+
+test_main();
+0;
diff --git a/drivers/usb/host/dwc_otg/test/test_sysfs.pl b/drivers/usb/host/dwc_otg/test/test_sysfs.pl
new file mode 100644
index 000000000000..cdc9963176e5
--- /dev/null
+++ b/drivers/usb/host/dwc_otg/test/test_sysfs.pl
@@ -0,0 +1,193 @@
@@ -61261,6 +61060,3 @@ index 000000000000..cdc9963176e5
+
+test_main();
+0;
--
2.54.0
@@ -164,8 +164,6 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
6 files changed, 2204 insertions(+), 1602 deletions(-)
create mode 100644 drivers/video/fbdev/bcm2708_fb.c
diff --git a/drivers/video/fbdev/Kconfig b/drivers/video/fbdev/Kconfig
index a257b739188d..9353d51f38d3 100644
--- a/drivers/video/fbdev/Kconfig
+++ b/drivers/video/fbdev/Kconfig
@@ -61,6 +61,19 @@ config FB_MACMODES
@@ -188,11 +186,9 @@ index a257b739188d..9353d51f38d3 100644
config FB_GRVGA
tristate "Aeroflex Gaisler framebuffer support"
depends on FB && SPARC
diff --git a/drivers/video/fbdev/Makefile b/drivers/video/fbdev/Makefile
index b3d12f977c06..ee9b2c3c7206 100644
--- a/drivers/video/fbdev/Makefile
+++ b/drivers/video/fbdev/Makefile
@@ -12,6 +12,7 @@ obj-$(CONFIG_FB_SBUS) += sbuslib.o
@@ -12,6 +12,7 @@ obj-$(CONFIG_FB_SBUS) += sbusli
obj-$(CONFIG_FB_WMT_GE_ROPS) += wmt_ge_rops.o
# Hardware specific drivers go first
@@ -200,9 +196,6 @@ index b3d12f977c06..ee9b2c3c7206 100644
obj-$(CONFIG_FB_AMIGA) += amifb.o c2p_planar.o
obj-$(CONFIG_FB_ARC) += arcfb.o
obj-$(CONFIG_FB_CLPS711X) += clps711x-fb.o
diff --git a/drivers/video/fbdev/bcm2708_fb.c b/drivers/video/fbdev/bcm2708_fb.c
new file mode 100644
index 000000000000..91f3e55538bf
--- /dev/null
+++ b/drivers/video/fbdev/bcm2708_fb.c
@@ -0,0 +1,1262 @@
@@ -1468,11 +1461,9 @@ index 000000000000..91f3e55538bf
+MODULE_PARM_DESC(fbheight, "Height of ARM Framebuffer");
+MODULE_PARM_DESC(fbdepth, "Bit depth of ARM Framebuffer");
+MODULE_PARM_DESC(fbswap, "Swap order of red and blue in 24 and 32 bit modes");
diff --git a/drivers/video/fbdev/core/fb_chrdev.c b/drivers/video/fbdev/core/fb_chrdev.c
index 4ebd16b7e3b8..e3dd94bb7ef5 100644
--- a/drivers/video/fbdev/core/fb_chrdev.c
+++ b/drivers/video/fbdev/core/fb_chrdev.c
@@ -59,6 +59,30 @@ static ssize_t fb_write(struct file *file, const char __user *buf, size_t count,
@@ -59,6 +59,30 @@ static ssize_t fb_write(struct file *fil
return info->fbops->fb_write(info, buf, count, ppos);
}
@@ -1503,7 +1494,7 @@ index 4ebd16b7e3b8..e3dd94bb7ef5 100644
static long do_fb_ioctl(struct fb_info *info, unsigned int cmd,
unsigned long arg)
{
@@ -67,6 +91,7 @@ static long do_fb_ioctl(struct fb_info *info, unsigned int cmd,
@@ -67,6 +91,7 @@ static long do_fb_ioctl(struct fb_info *
struct fb_fix_screeninfo fix;
struct fb_cmap cmap_from;
struct fb_cmap_user cmap;
@@ -1511,7 +1502,7 @@ index 4ebd16b7e3b8..e3dd94bb7ef5 100644
void __user *argp = (void __user *)arg;
long ret = 0;
@@ -148,6 +173,15 @@ static long do_fb_ioctl(struct fb_info *info, unsigned int cmd,
@@ -148,6 +173,15 @@ static long do_fb_ioctl(struct fb_info *
unlock_fb_info(info);
console_unlock();
break;
@@ -1527,7 +1518,7 @@ index 4ebd16b7e3b8..e3dd94bb7ef5 100644
default:
lock_fb_info(info);
fb = info->fbops;
@@ -287,6 +321,7 @@ static long fb_compat_ioctl(struct file *file, unsigned int cmd,
@@ -287,6 +321,7 @@ static long fb_compat_ioctl(struct file
case FBIOPAN_DISPLAY:
case FBIOGET_CON2FBMAP:
case FBIOPUT_CON2FBMAP:
@@ -1535,8 +1526,6 @@ index 4ebd16b7e3b8..e3dd94bb7ef5 100644
arg = (unsigned long) compat_ptr(arg);
fallthrough;
case FBIOBLANK:
diff --git a/drivers/video/logo/logo_linux_clut224.ppm b/drivers/video/logo/logo_linux_clut224.ppm
index 3c14e43b82fe..7626beb6a5bb 100644
--- a/drivers/video/logo/logo_linux_clut224.ppm
+++ b/drivers/video/logo/logo_linux_clut224.ppm
@@ -1,1604 +1,883 @@
@@ -4025,8 +4014,6 @@ index 3c14e43b82fe..7626beb6a5bb 100644
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0
diff --git a/include/uapi/linux/fb.h b/include/uapi/linux/fb.h
index 22acaaec7b1c..eab4c7f3d833 100644
--- a/include/uapi/linux/fb.h
+++ b/include/uapi/linux/fb.h
@@ -36,6 +36,12 @@
@@ -4055,6 +4042,3 @@ index 22acaaec7b1c..eab4c7f3d833 100644
struct fb_fillrect {
__u32 dx; /* screen-relative */
__u32 dy;
--
2.54.0
@@ -188,8 +188,6 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
create mode 100644 drivers/dma/bcm2708-dmaengine.c
create mode 100644 include/linux/platform_data/dma-bcm2708.h
diff --git a/drivers/dma/Kconfig b/drivers/dma/Kconfig
index cab445e9b9a0..4ddb58fb0959 100644
--- a/drivers/dma/Kconfig
+++ b/drivers/dma/Kconfig
@@ -143,7 +143,7 @@ config BCM_SBA_RAID
@@ -212,8 +210,6 @@ index cab445e9b9a0..4ddb58fb0959 100644
config XGENE_DMA
tristate "APM X-Gene DMA support"
depends on ARCH_XGENE || COMPILE_TEST
diff --git a/drivers/dma/Makefile b/drivers/dma/Makefile
index a54d7688392b..d45d964899b4 100644
--- a/drivers/dma/Makefile
+++ b/drivers/dma/Makefile
@@ -22,6 +22,7 @@ obj-$(CONFIG_AT_HDMAC) += at_hdmac.o
@@ -224,9 +220,6 @@ index a54d7688392b..d45d964899b4 100644
obj-$(CONFIG_DMA_BCM2835) += bcm2835-dma.o
obj-$(CONFIG_DMA_JZ4780) += dma-jz4780.o
obj-$(CONFIG_DMA_SA11X0) += sa11x0-dma.o
diff --git a/drivers/dma/bcm2708-dmaengine.c b/drivers/dma/bcm2708-dmaengine.c
new file mode 100644
index 000000000000..a9a7f92584c8
--- /dev/null
+++ b/drivers/dma/bcm2708-dmaengine.c
@@ -0,0 +1,281 @@
@@ -511,9 +504,6 @@ index 000000000000..a9a7f92584c8
+EXPORT_SYMBOL(bcm_dmaman_remove);
+
+MODULE_LICENSE("GPL");
diff --git a/include/linux/platform_data/dma-bcm2708.h b/include/linux/platform_data/dma-bcm2708.h
new file mode 100644
index 000000000000..6ca874d332a8
--- /dev/null
+++ b/include/linux/platform_data/dma-bcm2708.h
@@ -0,0 +1,143 @@
@@ -660,6 +650,3 @@ index 000000000000..6ca874d332a8
+#endif /* CONFIG_DMA_BCM2708 || CONFIG_DMA_BCM2708_MODULE */
+
+#endif /* _PLAT_BCM2708_DMA_H */
--
2.54.0
@@ -280,8 +280,6 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
9 files changed, 1641 insertions(+), 5 deletions(-)
create mode 100644 drivers/mmc/host/bcm2835-mmc.c
diff --git a/drivers/mmc/core/block.c b/drivers/mmc/core/block.c
index c0ffe0817fd4..b90bbd28acc8 100644
--- a/drivers/mmc/core/block.c
+++ b/drivers/mmc/core/block.c
@@ -180,6 +180,13 @@ static DEFINE_MUTEX(open_lock);
@@ -298,7 +296,7 @@ index c0ffe0817fd4..b90bbd28acc8 100644
static inline int mmc_blk_part_switch(struct mmc_card *card,
unsigned int part_type);
static void mmc_blk_rw_rq_prep(struct mmc_queue_req *mqrq,
@@ -3265,6 +3272,8 @@ static int mmc_blk_probe(struct mmc_card *card)
@@ -3278,6 +3285,8 @@ static int mmc_blk_probe(struct mmc_card
{
struct mmc_blk_data *md;
int ret = 0;
@@ -307,7 +305,7 @@ index c0ffe0817fd4..b90bbd28acc8 100644
/*
* Check that the card supports the command class(es) we need.
@@ -3272,7 +3281,16 @@ static int mmc_blk_probe(struct mmc_card *card)
@@ -3285,7 +3294,16 @@ static int mmc_blk_probe(struct mmc_card
if (!(card->csd.cmdclass & CCC_BLOCK_READ))
return -ENODEV;
@@ -325,7 +323,7 @@ index c0ffe0817fd4..b90bbd28acc8 100644
card->complete_wq = alloc_workqueue("mmc_complete",
WQ_MEM_RECLAIM | WQ_HIGHPRI, 0);
@@ -3287,6 +3305,17 @@ static int mmc_blk_probe(struct mmc_card *card)
@@ -3300,6 +3318,17 @@ static int mmc_blk_probe(struct mmc_card
goto out_free;
}
@@ -343,8 +341,6 @@ index c0ffe0817fd4..b90bbd28acc8 100644
ret = mmc_blk_alloc_parts(card, md);
if (ret)
goto out;
diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c
index 860378bea557..0c51f3df9537 100644
--- a/drivers/mmc/core/core.c
+++ b/drivers/mmc/core/core.c
@@ -1861,7 +1861,8 @@ EXPORT_SYMBOL(mmc_erase);
@@ -357,13 +353,11 @@ index 860378bea557..0c51f3df9537 100644
}
EXPORT_SYMBOL(mmc_card_can_erase);
diff --git a/drivers/mmc/core/quirks.h b/drivers/mmc/core/quirks.h
index c417ed34c057..832ddaffa9ef 100644
--- a/drivers/mmc/core/quirks.h
+++ b/drivers/mmc/core/quirks.h
@@ -153,6 +153,20 @@ static const struct mmc_fixup __maybe_unused mmc_blk_fixups[] = {
MMC_FIXUP("M62704", CID_MANFID_KINGSTON, 0x0100, add_quirk_mmc,
MMC_QUIRK_TRIM_BROKEN),
@@ -162,6 +162,20 @@ static const struct mmc_fixup __maybe_un
MMC_FIXUP("IB2932", CID_MANFID_KINGSTON, 0x0100, add_quirk_mmc,
MMC_QUIRK_FIXED_SECURE_ERASE_TRIM_TIME),
+ /*
+ * Some SD cards reports discard support while they don't
@@ -382,8 +376,6 @@ index c417ed34c057..832ddaffa9ef 100644
END_FIXUP
};
diff --git a/drivers/mmc/host/Kconfig b/drivers/mmc/host/Kconfig
index c94ae4794545..85e418954f20 100644
--- a/drivers/mmc/host/Kconfig
+++ b/drivers/mmc/host/Kconfig
@@ -5,6 +5,35 @@
@@ -422,11 +414,9 @@ index c94ae4794545..85e418954f20 100644
config MMC_DEBUG
bool "MMC host drivers debugging"
depends on MMC != n
diff --git a/drivers/mmc/host/Makefile b/drivers/mmc/host/Makefile
index 5057fea8afb6..f0cb916d248f 100644
--- a/drivers/mmc/host/Makefile
+++ b/drivers/mmc/host/Makefile
@@ -23,6 +23,7 @@ obj-$(CONFIG_MMC_SDHCI_F_SDH30) += sdhci_f_sdh30.o
@@ -23,6 +23,7 @@ obj-$(CONFIG_MMC_SDHCI_F_SDH30) += sdhci
obj-$(CONFIG_MMC_SDHCI_MILBEAUT) += sdhci-milbeaut.o
obj-$(CONFIG_MMC_SDHCI_SPEAR) += sdhci-spear.o
obj-$(CONFIG_MMC_SDHCI_AM654) += sdhci_am654.o
@@ -434,9 +424,6 @@ index 5057fea8afb6..f0cb916d248f 100644
obj-$(CONFIG_MMC_WBSD) += wbsd.o
obj-$(CONFIG_MMC_AU1X) += au1xmmc.o
obj-$(CONFIG_MMC_ALCOR) += alcor.o
diff --git a/drivers/mmc/host/bcm2835-mmc.c b/drivers/mmc/host/bcm2835-mmc.c
new file mode 100644
index 000000000000..c0d25994b166
--- /dev/null
+++ b/drivers/mmc/host/bcm2835-mmc.c
@@ -0,0 +1,1560 @@
@@ -2000,11 +1987,9 @@ index 000000000000..c0d25994b166
+MODULE_DESCRIPTION("BCM2835 SDHCI driver");
+MODULE_LICENSE("GPL v2");
+MODULE_AUTHOR("Gellert Weisz");
diff --git a/drivers/mmc/host/sdhci-iproc.c b/drivers/mmc/host/sdhci-iproc.c
index 35ef5c5f5146..a2c5e886bd35 100644
--- a/drivers/mmc/host/sdhci-iproc.c
+++ b/drivers/mmc/host/sdhci-iproc.c
@@ -198,6 +198,7 @@ static const struct sdhci_ops sdhci_iproc_32only_ops = {
@@ -198,6 +198,7 @@ static const struct sdhci_ops sdhci_ipro
.write_b = sdhci_iproc_writeb,
.set_clock = sdhci_set_clock,
.get_max_clock = sdhci_iproc_get_max_clock,
@@ -2012,8 +1997,6 @@ index 35ef5c5f5146..a2c5e886bd35 100644
.set_bus_width = sdhci_set_bus_width,
.reset = sdhci_reset,
.set_uhs_signaling = sdhci_set_uhs_signaling,
diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
index fec9329e1edb..6e6efe8d419b 100644
--- a/drivers/mmc/host/sdhci.c
+++ b/drivers/mmc/host/sdhci.c
@@ -40,7 +40,7 @@
@@ -2025,7 +2008,7 @@ index fec9329e1edb..6e6efe8d419b 100644
#define MAX_TUNING_LOOP 40
@@ -3245,7 +3245,7 @@ static void sdhci_timeout_timer(struct timer_list *t)
@@ -3245,7 +3245,7 @@ static void sdhci_timeout_timer(struct t
spin_lock_irqsave(&host->lock, flags);
if (host->cmd && !sdhci_data_line_cmd(host->cmd)) {
@@ -2034,7 +2017,7 @@ index fec9329e1edb..6e6efe8d419b 100644
mmc_hostname(host->mmc));
sdhci_err_stats_inc(host, REQ_TIMEOUT);
sdhci_dumpregs(host);
@@ -3268,7 +3268,7 @@ static void sdhci_timeout_data_timer(struct timer_list *t)
@@ -3268,7 +3268,7 @@ static void sdhci_timeout_data_timer(str
if (host->data || host->data_cmd ||
(host->cmd && sdhci_data_line_cmd(host->cmd))) {
@@ -2043,18 +2026,13 @@ index fec9329e1edb..6e6efe8d419b 100644
mmc_hostname(host->mmc));
sdhci_err_stats_inc(host, REQ_TIMEOUT);
sdhci_dumpregs(host);
diff --git a/include/linux/mmc/card.h b/include/linux/mmc/card.h
index ddcdf23d731c..b1ad2c63ca59 100644
--- a/include/linux/mmc/card.h
+++ b/include/linux/mmc/card.h
@@ -330,6 +330,7 @@ struct mmc_card {
#define MMC_QUIRK_BROKEN_CACHE_FLUSH (1<<16) /* Don't flush cache until the write has occurred */
#define MMC_QUIRK_BROKEN_SD_POWEROFF_NOTIFY (1<<17) /* Disable broken SD poweroff notify support */
@@ -332,6 +332,7 @@ struct mmc_card {
#define MMC_QUIRK_NO_UHS_DDR50_TUNING (1<<18) /* Disable DDR50 tuning */
#define MMC_QUIRK_BROKEN_MDT (1<<19) /* Wrong manufacturing year */
#define MMC_QUIRK_FIXED_SECURE_ERASE_TRIM_TIME (1<<20) /* Secure erase/trim time is fixed regardless of size */
+#define MMC_QUIRK_ERASE_BROKEN (1<<31) /* Skip erase */
bool written_flag; /* Indicates eMMC has been written since power on */
bool reenable_cmdq; /* Re-enable Command Queue */
--
2.54.0
@@ -20,11 +20,9 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
drivers/mmc/core/block.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/mmc/core/block.c b/drivers/mmc/core/block.c
index b90bbd28acc8..f6262101198a 100644
--- a/drivers/mmc/core/block.c
+++ b/drivers/mmc/core/block.c
@@ -1979,7 +1979,7 @@ static void mmc_blk_mq_rw_recovery(struct mmc_queue *mq, struct request *req)
@@ -1985,7 +1985,7 @@ static void mmc_blk_mq_rw_recovery(struc
return;
}
@@ -33,6 +31,3 @@ index b90bbd28acc8..f6262101198a 100644
queue_physical_block_size(mq->queue) >> 9) {
/* Read one (native) sector at a time */
mmc_blk_read_single(mq, req);
--
2.54.0
@@ -64,9 +64,6 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
create mode 100644 drivers/char/broadcom/vc_mem.c
create mode 100644 include/linux/broadcom/vc_mem.h
diff --git a/drivers/char/broadcom/Kconfig b/drivers/char/broadcom/Kconfig
new file mode 100644
index 000000000000..fc1315209dab
--- /dev/null
+++ b/drivers/char/broadcom/Kconfig
@@ -0,0 +1,18 @@
@@ -88,16 +85,10 @@ index 000000000000..fc1315209dab
+ Helper for videocore memory access and total size allocation.
+
+endif
diff --git a/drivers/char/broadcom/Makefile b/drivers/char/broadcom/Makefile
new file mode 100644
index 000000000000..06c5c8ad00e7
--- /dev/null
+++ b/drivers/char/broadcom/Makefile
@@ -0,0 +1 @@
+obj-$(CONFIG_BCM2708_VCMEM) += vc_mem.o
diff --git a/drivers/char/broadcom/vc_mem.c b/drivers/char/broadcom/vc_mem.c
new file mode 100644
index 000000000000..4b7faf084e0c
--- /dev/null
+++ b/drivers/char/broadcom/vc_mem.c
@@ -0,0 +1,635 @@
@@ -736,9 +727,6 @@ index 000000000000..4b7faf084e0c
+module_param(phys_addr, uint, 0644);
+module_param(mem_size, uint, 0644);
+module_param(mem_base, uint, 0644);
diff --git a/include/linux/broadcom/vc_mem.h b/include/linux/broadcom/vc_mem.h
new file mode 100644
index 000000000000..3c7079237496
--- /dev/null
+++ b/include/linux/broadcom/vc_mem.h
@@ -0,0 +1,39 @@
@@ -781,6 +769,3 @@ index 000000000000..3c7079237496
+#endif
+
+#endif /* _VC_MEM_H */
--
2.54.0
@@ -90,9 +90,6 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
create mode 100644 drivers/misc/bcm2835_smi.c
create mode 100644 include/linux/broadcom/bcm2835_smi.h
diff --git a/Documentation/devicetree/bindings/misc/brcm,bcm2835-smi-dev.txt b/Documentation/devicetree/bindings/misc/brcm,bcm2835-smi-dev.txt
new file mode 100644
index 000000000000..68cc8ebc3392
--- /dev/null
+++ b/Documentation/devicetree/bindings/misc/brcm,bcm2835-smi-dev.txt
@@ -0,0 +1,17 @@
@@ -113,9 +110,6 @@ index 000000000000..68cc8ebc3392
+- None.
+
+
diff --git a/Documentation/devicetree/bindings/misc/brcm,bcm2835-smi.txt b/Documentation/devicetree/bindings/misc/brcm,bcm2835-smi.txt
new file mode 100644
index 000000000000..b76dc694f1ac
--- /dev/null
+++ b/Documentation/devicetree/bindings/misc/brcm,bcm2835-smi.txt
@@ -0,0 +1,48 @@
@@ -167,8 +161,6 @@ index 000000000000..b76dc694f1ac
+ brcm,pull = <2 2 2 2 2 2 0 0 0 0 0 0 0 0>;
+};
+
diff --git a/drivers/char/broadcom/Kconfig b/drivers/char/broadcom/Kconfig
index fc1315209dab..875429161b9a 100644
--- a/drivers/char/broadcom/Kconfig
+++ b/drivers/char/broadcom/Kconfig
@@ -16,3 +16,12 @@ config BCM2708_VCMEM
@@ -184,16 +176,11 @@ index fc1315209dab..875429161b9a 100644
+ This driver provides a character device interface (ioctl + read/write) to
+ Broadcom's Secondary Memory interface. The low-level functionality is provided
+ by the SMI driver itself.
diff --git a/drivers/char/broadcom/Makefile b/drivers/char/broadcom/Makefile
index 06c5c8ad00e7..a1f3da49e5f1 100644
--- a/drivers/char/broadcom/Makefile
+++ b/drivers/char/broadcom/Makefile
@@ -1 +1,2 @@
obj-$(CONFIG_BCM2708_VCMEM) += vc_mem.o
+obj-$(CONFIG_BCM2835_SMI_DEV) += bcm2835_smi_dev.o
diff --git a/drivers/char/broadcom/bcm2835_smi_dev.c b/drivers/char/broadcom/bcm2835_smi_dev.c
new file mode 100644
index 000000000000..ae0c0d24fad9
--- /dev/null
+++ b/drivers/char/broadcom/bcm2835_smi_dev.c
@@ -0,0 +1,408 @@
@@ -605,8 +592,6 @@ index 000000000000..ae0c0d24fad9
+MODULE_DESCRIPTION(
+ "Character device driver for BCM2835's secondary memory interface");
+MODULE_AUTHOR("Luke Wren <luke@raspberrypi.org>");
diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig
index b9c11f67315f..c59f251c7aa4 100644
--- a/drivers/misc/Kconfig
+++ b/drivers/misc/Kconfig
@@ -9,6 +9,14 @@ config SENSORS_LIS3LV02D
@@ -624,11 +609,9 @@ index b9c11f67315f..c59f251c7aa4 100644
config AD525X_DPOT
tristate "Analog Devices Digital Potentiometers"
depends on (I2C || SPI) && SYSFS
diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile
index b32a2597d246..fcbf09dfee39 100644
--- a/drivers/misc/Makefile
+++ b/drivers/misc/Makefile
@@ -9,6 +9,7 @@ obj-$(CONFIG_AD525X_DPOT) += ad525x_dpot.o
@@ -9,6 +9,7 @@ obj-$(CONFIG_AD525X_DPOT) += ad525x_dpot
obj-$(CONFIG_AD525X_DPOT_I2C) += ad525x_dpot-i2c.o
obj-$(CONFIG_AD525X_DPOT_SPI) += ad525x_dpot-spi.o
obj-$(CONFIG_ATMEL_SSC) += atmel-ssc.o
@@ -636,9 +619,6 @@ index b32a2597d246..fcbf09dfee39 100644
obj-$(CONFIG_DUMMY_IRQ) += dummy-irq.o
obj-$(CONFIG_ICS932S401) += ics932s401.o
obj-$(CONFIG_LKDTM) += lkdtm/
diff --git a/drivers/misc/bcm2835_smi.c b/drivers/misc/bcm2835_smi.c
new file mode 100644
index 000000000000..09246d5ea7d0
--- /dev/null
+++ b/drivers/misc/bcm2835_smi.c
@@ -0,0 +1,952 @@
@@ -1594,9 +1574,6 @@ index 000000000000..09246d5ea7d0
+MODULE_LICENSE("GPL");
+MODULE_DESCRIPTION("Device driver for BCM2835's secondary memory interface");
+MODULE_AUTHOR("Luke Wren <luke@raspberrypi.org>");
diff --git a/include/linux/broadcom/bcm2835_smi.h b/include/linux/broadcom/bcm2835_smi.h
new file mode 100644
index 000000000000..ee3a75edfc03
--- /dev/null
+++ b/include/linux/broadcom/bcm2835_smi.h
@@ -0,0 +1,391 @@
@@ -1991,6 +1968,3 @@ index 000000000000..ee3a75edfc03
+#endif /* BCM2835_SMI_IMPLEMENTATION */
+
+#endif /* BCM2835_SMI_H */
--
2.54.0
@@ -104,8 +104,6 @@ both bcm2708_bsc_fifo_fill and ~drain are changed as well.
3 files changed, 531 insertions(+)
create mode 100644 drivers/i2c/busses/i2c-bcm2708.c
diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig
index 4515ded4338c..aa18e6bd7399 100644
--- a/drivers/i2c/busses/Kconfig
+++ b/drivers/i2c/busses/Kconfig
@@ -16,6 +16,25 @@ config I2C_CCGX_UCSI
@@ -134,8 +132,6 @@ index 4515ded4338c..aa18e6bd7399 100644
config I2C_ALI1535
tristate "ALI 1535"
depends on PCI && HAS_IOPORT
diff --git a/drivers/i2c/busses/Makefile b/drivers/i2c/busses/Makefile
index fb985769f5ff..86b29cbfc42d 100644
--- a/drivers/i2c/busses/Makefile
+++ b/drivers/i2c/busses/Makefile
@@ -3,6 +3,8 @@
@@ -147,9 +143,6 @@ index fb985769f5ff..86b29cbfc42d 100644
# ACPI drivers
obj-$(CONFIG_I2C_SCMI) += i2c-scmi.o
diff --git a/drivers/i2c/busses/i2c-bcm2708.c b/drivers/i2c/busses/i2c-bcm2708.c
new file mode 100644
index 000000000000..09907b5c2540
--- /dev/null
+++ b/drivers/i2c/busses/i2c-bcm2708.c
@@ -0,0 +1,510 @@
@@ -663,6 +656,3 @@ index 000000000000..09907b5c2540
+MODULE_AUTHOR("Chris Boot <bootc@bootc.net>");
+MODULE_LICENSE("GPL v2");
+MODULE_ALIAS("platform:" DRV_NAME);
--
2.54.0
@@ -10,8 +10,6 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
drivers/char/Makefile | 1 +
2 files changed, 3 insertions(+)
diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig
index d2cfc584e202..57442c5c8f63 100644
--- a/drivers/char/Kconfig
+++ b/drivers/char/Kconfig
@@ -5,6 +5,8 @@
@@ -23,8 +21,6 @@ index d2cfc584e202..57442c5c8f63 100644
source "drivers/tty/Kconfig"
config TTY_PRINTK
diff --git a/drivers/char/Makefile b/drivers/char/Makefile
index 1291369b9126..da45158c075e 100644
--- a/drivers/char/Makefile
+++ b/drivers/char/Makefile
@@ -44,3 +44,4 @@ obj-$(CONFIG_PS3_FLASH) += ps3flash.o
@@ -32,6 +28,3 @@ index 1291369b9126..da45158c075e 100644
obj-$(CONFIG_POWERNV_OP_PANEL) += powernv-op-panel.o
obj-$(CONFIG_ADI) += adi.o
+obj-$(CONFIG_BRCM_CHAR_DRIVERS) += broadcom/
--
2.54.0
@@ -60,8 +60,6 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
3 files changed, 194 insertions(+)
create mode 100644 drivers/char/broadcom/vcio.c
diff --git a/drivers/char/broadcom/Kconfig b/drivers/char/broadcom/Kconfig
index 875429161b9a..29d880d47282 100644
--- a/drivers/char/broadcom/Kconfig
+++ b/drivers/char/broadcom/Kconfig
@@ -15,6 +15,12 @@ config BCM2708_VCMEM
@@ -77,17 +75,12 @@ index 875429161b9a..29d880d47282 100644
endif
config BCM2835_SMI_DEV
diff --git a/drivers/char/broadcom/Makefile b/drivers/char/broadcom/Makefile
index a1f3da49e5f1..2ae3e9d411e9 100644
--- a/drivers/char/broadcom/Makefile
+++ b/drivers/char/broadcom/Makefile
@@ -1,2 +1,3 @@
obj-$(CONFIG_BCM2708_VCMEM) += vc_mem.o
+obj-$(CONFIG_BCM_VCIO) += vcio.o
obj-$(CONFIG_BCM2835_SMI_DEV) += bcm2835_smi_dev.o
diff --git a/drivers/char/broadcom/vcio.c b/drivers/char/broadcom/vcio.c
new file mode 100644
index 000000000000..9db2408c781a
--- /dev/null
+++ b/drivers/char/broadcom/vcio.c
@@ -0,0 +1,187 @@
@@ -278,6 +271,3 @@ index 000000000000..9db2408c781a
+MODULE_DESCRIPTION("Mailbox userspace access");
+MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:rpi-vcio");
--
2.54.0
@@ -25,8 +25,6 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
3 files changed, 284 insertions(+)
create mode 100644 drivers/char/raspberrypi-gpiomem.c
diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig
index 57442c5c8f63..ff87476d945a 100644
--- a/drivers/char/Kconfig
+++ b/drivers/char/Kconfig
@@ -425,4 +425,12 @@ config ADI
@@ -42,18 +40,13 @@ index 57442c5c8f63..ff87476d945a 100644
+ register page to the user's pointer.
+
endmenu
diff --git a/drivers/char/Makefile b/drivers/char/Makefile
index da45158c075e..2c5ea59dfec6 100644
--- a/drivers/char/Makefile
+++ b/drivers/char/Makefile
@@ -45,3 +45,4 @@ obj-$(CONFIG_XILLYBUS_CLASS) += xillybus/
@@ -45,3 +45,4 @@ obj-$(CONFIG_XILLYBUS_CLASS) += xillybus
obj-$(CONFIG_POWERNV_OP_PANEL) += powernv-op-panel.o
obj-$(CONFIG_ADI) += adi.o
obj-$(CONFIG_BRCM_CHAR_DRIVERS) += broadcom/
+obj-$(CONFIG_RASPBERRYPI_GPIOMEM) += raspberrypi-gpiomem.o
diff --git a/drivers/char/raspberrypi-gpiomem.c b/drivers/char/raspberrypi-gpiomem.c
new file mode 100644
index 000000000000..0f9b15bc14a8
--- /dev/null
+++ b/drivers/char/raspberrypi-gpiomem.c
@@ -0,0 +1,275 @@
@@ -332,6 +325,3 @@ index 000000000000..0f9b15bc14a8
+MODULE_LICENSE("Dual BSD/GPL");
+MODULE_DESCRIPTION("Driver for accessing GPIOs from userspace");
+MODULE_AUTHOR("Jonathan Bell <jonathan@raspberrypi.com>");
--
2.54.0
@@ -25,8 +25,6 @@ Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
drivers/firmware/raspberrypi.c | 17 ++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)
diff --git a/drivers/firmware/raspberrypi.c b/drivers/firmware/raspberrypi.c
index 7ecde6921a0a..3ce22dac1786 100644
--- a/drivers/firmware/raspberrypi.c
+++ b/drivers/firmware/raspberrypi.c
@@ -34,6 +34,8 @@ struct rpi_firmware {
@@ -38,7 +36,7 @@ index 7ecde6921a0a..3ce22dac1786 100644
static DEFINE_MUTEX(transaction_lock);
static void response_callback(struct mbox_client *cl, void *msg)
@@ -301,6 +303,7 @@ static int rpi_firmware_probe(struct platform_device *pdev)
@@ -301,6 +303,7 @@ static int rpi_firmware_probe(struct pla
kref_init(&fw->consumers);
platform_set_drvdata(pdev, fw);
@@ -46,7 +44,7 @@ index 7ecde6921a0a..3ce22dac1786 100644
rpi_firmware_print_firmware_revision(fw);
rpi_register_hwmon_driver(dev, fw);
@@ -329,6 +332,7 @@ static void rpi_firmware_remove(struct platform_device *pdev)
@@ -329,6 +332,7 @@ static void rpi_firmware_remove(struct p
rpi_clk = NULL;
rpi_firmware_put(fw);
@@ -54,7 +52,7 @@ index 7ecde6921a0a..3ce22dac1786 100644
}
static const struct of_device_id rpi_firmware_of_match[] = {
@@ -408,7 +412,18 @@ static struct platform_driver rpi_firmware_driver = {
@@ -408,7 +412,18 @@ static struct platform_driver rpi_firmwa
.shutdown = rpi_firmware_shutdown,
.remove = rpi_firmware_remove,
};
@@ -74,6 +72,3 @@ index 7ecde6921a0a..3ce22dac1786 100644
MODULE_AUTHOR("Eric Anholt <eric@anholt.net>");
MODULE_DESCRIPTION("Raspberry Pi firmware driver");
--
2.54.0
@@ -29,11 +29,9 @@ See: https://github.com/raspberrypi/linux/issues/1064
5 files changed, 82 insertions(+), 1 deletion(-)
create mode 100644 drivers/leds/trigger/ledtrig-input.c
diff --git a/drivers/leds/leds-gpio.c b/drivers/leds/leds-gpio.c
index a3428b22de3a..c4e0ceda70a7 100644
--- a/drivers/leds/leds-gpio.c
+++ b/drivers/leds/leds-gpio.c
@@ -50,8 +50,15 @@ static void gpio_led_set(struct led_classdev *led_cdev,
@@ -50,8 +50,15 @@ static void gpio_led_set(struct led_clas
led_dat->platform_gpio_blink_set(led_dat->gpiod, level,
NULL, NULL);
led_dat->blinking = 0;
@@ -50,7 +48,7 @@ index a3428b22de3a..c4e0ceda70a7 100644
gpiod_set_value_cansleep(led_dat->gpiod, level);
else
gpiod_set_value(led_dat->gpiod, level);
@@ -65,6 +72,13 @@ static int gpio_led_set_blocking(struct led_classdev *led_cdev,
@@ -65,6 +72,13 @@ static int gpio_led_set_blocking(struct
return 0;
}
@@ -64,7 +62,7 @@ index a3428b22de3a..c4e0ceda70a7 100644
static int gpio_blink_set(struct led_classdev *led_cdev,
unsigned long *delay_on, unsigned long *delay_off)
{
@@ -94,6 +108,7 @@ static int create_gpio_led(const struct gpio_led *template,
@@ -94,6 +108,7 @@ static int create_gpio_led(const struct
led_dat->platform_gpio_blink_set = blink_set;
led_dat->cdev.blink_set = gpio_blink_set;
}
@@ -72,8 +70,6 @@ index a3428b22de3a..c4e0ceda70a7 100644
if (template->default_state == LEDS_GPIO_DEFSTATE_KEEP) {
state = gpiod_get_value_cansleep(led_dat->gpiod);
if (state < 0)
diff --git a/drivers/leds/trigger/Kconfig b/drivers/leds/trigger/Kconfig
index c11282a74b5a..011b27ef30ec 100644
--- a/drivers/leds/trigger/Kconfig
+++ b/drivers/leds/trigger/Kconfig
@@ -113,6 +113,13 @@ config LEDS_TRIGGER_CAMERA
@@ -90,11 +86,9 @@ index c11282a74b5a..011b27ef30ec 100644
config LEDS_TRIGGER_PANIC
bool "LED Panic Trigger"
help
diff --git a/drivers/leds/trigger/Makefile b/drivers/leds/trigger/Makefile
index 3b3628889f68..5c4653d7f4de 100644
--- a/drivers/leds/trigger/Makefile
+++ b/drivers/leds/trigger/Makefile
@@ -11,6 +11,7 @@ obj-$(CONFIG_LEDS_TRIGGER_ACTIVITY) += ledtrig-activity.o
@@ -11,6 +11,7 @@ obj-$(CONFIG_LEDS_TRIGGER_ACTIVITY) += l
obj-$(CONFIG_LEDS_TRIGGER_DEFAULT_ON) += ledtrig-default-on.o
obj-$(CONFIG_LEDS_TRIGGER_TRANSIENT) += ledtrig-transient.o
obj-$(CONFIG_LEDS_TRIGGER_CAMERA) += ledtrig-camera.o
@@ -102,9 +96,6 @@ index 3b3628889f68..5c4653d7f4de 100644
obj-$(CONFIG_LEDS_TRIGGER_PANIC) += ledtrig-panic.o
obj-$(CONFIG_LEDS_TRIGGER_NETDEV) += ledtrig-netdev.o
obj-$(CONFIG_LEDS_TRIGGER_PATTERN) += ledtrig-pattern.o
diff --git a/drivers/leds/trigger/ledtrig-input.c b/drivers/leds/trigger/ledtrig-input.c
new file mode 100644
index 000000000000..8a974a355656
--- /dev/null
+++ b/drivers/leds/trigger/ledtrig-input.c
@@ -0,0 +1,55 @@
@@ -163,8 +154,6 @@ index 000000000000..8a974a355656
+MODULE_AUTHOR("Phil Elwell <phil@raspberrypi.org>");
+MODULE_DESCRIPTION("Set LED GPIO to Input \"trigger\"");
+MODULE_LICENSE("GPL");
diff --git a/include/linux/leds.h b/include/linux/leds.h
index b16b803cc1ac..4dff7add72ce 100644
--- a/include/linux/leds.h
+++ b/include/linux/leds.h
@@ -109,6 +109,9 @@ struct led_classdev {
@@ -177,6 +166,3 @@ index b16b803cc1ac..4dff7add72ce 100644
/* set_brightness_work / blink_timer flags, atomic, private. */
unsigned long work_flags;
--
2.54.0
@@ -7,11 +7,9 @@ Subject: [PATCH] Added Device IDs for August DVB-T 205
drivers/media/usb/dvb-usb-v2/rtl28xxu.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/media/usb/dvb-usb-v2/rtl28xxu.c b/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
index 487c6ab784ab..62dc688f0ac7 100644
--- a/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
+++ b/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
@@ -1964,6 +1964,10 @@ static const struct usb_device_id rtl28xxu_id_table[] = {
@@ -1964,6 +1964,10 @@ static const struct usb_device_id rtl28x
&rtl28xxu_props, "Compro VideoMate U650F", NULL) },
{ DVB_USB_DEVICE(USB_VID_KWORLD_2, 0xd394,
&rtl28xxu_props, "MaxMedia HU394-T", NULL) },
@@ -22,6 +20,3 @@ index 487c6ab784ab..62dc688f0ac7 100644
{ DVB_USB_DEVICE(USB_VID_LEADTEK, 0x6a03,
&rtl28xxu_props, "Leadtek WinFast DTV Dongle mini", NULL) },
{ DVB_USB_DEVICE(USB_VID_GTEK, USB_PID_CPYTO_REDI_PC50A,
--
2.54.0
@@ -84,11 +84,9 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
create mode 100644 arch/arm/lib/memmove_rpi.S
create mode 100644 arch/arm/lib/memset_rpi.S
diff --git a/arch/arm/include/asm/string.h b/arch/arm/include/asm/string.h
index 96fc6cf460ec..94f1abb48d49 100644
--- a/arch/arm/include/asm/string.h
+++ b/arch/arm/include/asm/string.h
@@ -72,4 +72,9 @@ static inline void *memset64(uint64_t *p, uint64_t v, __kernel_size_t n)
@@ -72,4 +72,9 @@ static inline void *memset64(uint64_t *p
#endif
@@ -98,8 +96,6 @@ index 96fc6cf460ec..94f1abb48d49 100644
+#endif
+
#endif
diff --git a/arch/arm/include/asm/uaccess.h b/arch/arm/include/asm/uaccess.h
index f90be312418e..4fe53e1a647c 100644
--- a/arch/arm/include/asm/uaccess.h
+++ b/arch/arm/include/asm/uaccess.h
@@ -533,6 +533,9 @@ do { \
@@ -112,8 +108,6 @@ index f90be312418e..4fe53e1a647c 100644
static inline unsigned long __must_check
raw_copy_from_user(void *to, const void __user *from, unsigned long n)
{
diff --git a/arch/arm/lib/Makefile b/arch/arm/lib/Makefile
index 0ca5aae1bcc3..c3a0c40550ee 100644
--- a/arch/arm/lib/Makefile
+++ b/arch/arm/lib/Makefile
@@ -7,8 +7,8 @@
@@ -144,9 +138,6 @@ index 0ca5aae1bcc3..c3a0c40550ee 100644
# using lib_ here won't override already available weak symbols
obj-$(CONFIG_UACCESS_WITH_MEMCPY) += uaccess_with_memcpy.o
diff --git a/arch/arm/lib/arm-mem.h b/arch/arm/lib/arm-mem.h
new file mode 100644
index 000000000000..5d4bda19ad20
--- /dev/null
+++ b/arch/arm/lib/arm-mem.h
@@ -0,0 +1,159 @@
@@ -309,8 +300,6 @@ index 000000000000..5d4bda19ad20
+ .endif
+92:
+.endm
diff --git a/arch/arm/lib/copy_from_user.S b/arch/arm/lib/copy_from_user.S
index 270de7debd0f..2eda93fc22e6 100644
--- a/arch/arm/lib/copy_from_user.S
+++ b/arch/arm/lib/copy_from_user.S
@@ -104,7 +104,8 @@ UNWIND( .save {r0, r2, r3, \regs} )
@@ -331,9 +320,6 @@ index 270de7debd0f..2eda93fc22e6 100644
.pushsection .text.fixup,"ax"
.align 0
diff --git a/arch/arm/lib/exports_rpi.c b/arch/arm/lib/exports_rpi.c
new file mode 100644
index 000000000000..1f826047db75
--- /dev/null
+++ b/arch/arm/lib/exports_rpi.c
@@ -0,0 +1,37 @@
@@ -374,9 +360,6 @@ index 000000000000..1f826047db75
+#include <linux/module.h>
+
+EXPORT_SYMBOL(memcmp);
diff --git a/arch/arm/lib/memcmp_rpi.S b/arch/arm/lib/memcmp_rpi.S
new file mode 100644
index 000000000000..bf6e4edfc9d3
--- /dev/null
+++ b/arch/arm/lib/memcmp_rpi.S
@@ -0,0 +1,285 @@
@@ -665,9 +648,6 @@ index 000000000000..bf6e4edfc9d3
+ .unreq DAT7
+ .unreq OFF
+ENDPROC(memcmp)
diff --git a/arch/arm/lib/memcpy_rpi.S b/arch/arm/lib/memcpy_rpi.S
new file mode 100644
index 000000000000..d246f9f3903a
--- /dev/null
+++ b/arch/arm/lib/memcpy_rpi.S
@@ -0,0 +1,65 @@
@@ -736,9 +716,6 @@ index 000000000000..d246f9f3903a
+ENDPROC(__memcpy)
+ENDPROC(memcpy)
+ENDPROC(mmiocpy)
diff --git a/arch/arm/lib/memcpymove.h b/arch/arm/lib/memcpymove.h
new file mode 100644
index 000000000000..65a6e065a7f2
--- /dev/null
+++ b/arch/arm/lib/memcpymove.h
@@ -0,0 +1,488 @@
@@ -1230,9 +1207,6 @@ index 000000000000..65a6e065a7f2
+ .unreq LAST
+ .unreq OFF
+.endm
diff --git a/arch/arm/lib/memmove_rpi.S b/arch/arm/lib/memmove_rpi.S
new file mode 100644
index 000000000000..5715dfd95859
--- /dev/null
+++ b/arch/arm/lib/memmove_rpi.S
@@ -0,0 +1,63 @@
@@ -1299,9 +1273,6 @@ index 000000000000..5715dfd95859
+ bpl memcpy /* pl works even over -1 - 0 and 0x7fffffff - 0x80000000 boundaries */
+ memcpy 1
+ENDPROC(memmove)
diff --git a/arch/arm/lib/memset_rpi.S b/arch/arm/lib/memset_rpi.S
new file mode 100644
index 000000000000..087d68ea5d18
--- /dev/null
+++ b/arch/arm/lib/memset_rpi.S
@@ -0,0 +1,132 @@
@@ -1437,8 +1408,6 @@ index 000000000000..087d68ea5d18
+ENDPROC(__memset)
+ENDPROC(memset)
+ENDPROC(mmioset)
diff --git a/arch/arm/lib/uaccess_with_memcpy.c b/arch/arm/lib/uaccess_with_memcpy.c
index c0ac7796d775..c416c7d3242f 100644
--- a/arch/arm/lib/uaccess_with_memcpy.c
+++ b/arch/arm/lib/uaccess_with_memcpy.c
@@ -19,6 +19,14 @@
@@ -1456,7 +1425,7 @@ index c0ac7796d775..c416c7d3242f 100644
static int
pin_page_for_write(const void __user *_addr, pte_t **ptep, spinlock_t **ptlp)
{
@@ -43,7 +51,7 @@ pin_page_for_write(const void __user *_addr, pte_t **ptep, spinlock_t **ptlp)
@@ -43,7 +51,7 @@ pin_page_for_write(const void __user *_a
return 0;
pmd = pmd_offset(pud, addr);
@@ -1465,7 +1434,7 @@ index c0ac7796d775..c416c7d3242f 100644
return 0;
/*
@@ -89,6 +97,47 @@ pin_page_for_write(const void __user *_addr, pte_t **ptep, spinlock_t **ptlp)
@@ -89,6 +97,47 @@ pin_page_for_write(const void __user *_a
return 1;
}
@@ -1513,7 +1482,7 @@ index c0ac7796d775..c416c7d3242f 100644
static unsigned long noinline
__copy_to_user_memcpy(void __user *to, const void *from, unsigned long n)
{
@@ -137,6 +186,54 @@ __copy_to_user_memcpy(void __user *to, const void *from, unsigned long n)
@@ -137,6 +186,54 @@ out:
return n;
}
@@ -1568,7 +1537,7 @@ index c0ac7796d775..c416c7d3242f 100644
unsigned long
arm_copy_to_user(void __user *to, const void *from, unsigned long n)
{
@@ -147,7 +244,7 @@ arm_copy_to_user(void __user *to, const void *from, unsigned long n)
@@ -147,7 +244,7 @@ arm_copy_to_user(void __user *to, const
* With frame pointer disabled, tail call optimization kicks in
* as well making this test almost invisible.
*/
@@ -1577,7 +1546,7 @@ index c0ac7796d775..c416c7d3242f 100644
unsigned long ua_flags = uaccess_save_and_enable();
n = __copy_to_user_std(to, from, n);
uaccess_restore(ua_flags);
@@ -157,6 +254,32 @@ arm_copy_to_user(void __user *to, const void *from, unsigned long n)
@@ -157,6 +254,32 @@ arm_copy_to_user(void __user *to, const
}
return n;
}
@@ -1610,8 +1579,6 @@ index c0ac7796d775..c416c7d3242f 100644
static unsigned long noinline
__clear_user_memset(void __user *addr, unsigned long n)
diff --git a/arch/arm/mach-bcm/Kconfig b/arch/arm/mach-bcm/Kconfig
index 653a909c5ecd..203be91af9eb 100644
--- a/arch/arm/mach-bcm/Kconfig
+++ b/arch/arm/mach-bcm/Kconfig
@@ -181,6 +181,13 @@ config ARCH_BCM_53573
@@ -1628,6 +1595,3 @@ index 653a909c5ecd..203be91af9eb 100644
config ARCH_BRCMSTB
bool "Broadcom BCM7XXX based boards"
depends on ARCH_MULTI_V7
--
2.54.0
@@ -38,8 +38,6 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
create mode 100644 drivers/video/fbdev/rpisense-fb.c
create mode 100644 include/linux/mfd/rpisense/framebuffer.h
diff --git a/drivers/video/fbdev/Kconfig b/drivers/video/fbdev/Kconfig
index 9353d51f38d3..062bf7338c54 100644
--- a/drivers/video/fbdev/Kconfig
+++ b/drivers/video/fbdev/Kconfig
@@ -1833,6 +1833,19 @@ config FB_SM712
@@ -62,11 +60,9 @@ index 9353d51f38d3..062bf7338c54 100644
source "drivers/video/fbdev/omap/Kconfig"
source "drivers/video/fbdev/omap2/Kconfig"
source "drivers/video/fbdev/mmp/Kconfig"
diff --git a/drivers/video/fbdev/Makefile b/drivers/video/fbdev/Makefile
index ee9b2c3c7206..ea305adc3f3c 100644
--- a/drivers/video/fbdev/Makefile
+++ b/drivers/video/fbdev/Makefile
@@ -124,6 +124,7 @@ obj-$(CONFIG_FB_VGA16) += vga16fb.o
@@ -124,6 +124,7 @@ obj-$(CONFIG_FB_VGA16) += vga
obj-$(CONFIG_FB_OF) += offb.o
obj-$(CONFIG_FB_SSD1307) += ssd1307fb.o
obj-$(CONFIG_FB_SIMPLE) += simplefb.o
@@ -74,9 +70,6 @@ index ee9b2c3c7206..ea305adc3f3c 100644
# the test framebuffer is last
obj-$(CONFIG_FB_VIRTUAL) += vfb.o
diff --git a/drivers/video/fbdev/rpisense-fb.c b/drivers/video/fbdev/rpisense-fb.c
new file mode 100644
index 000000000000..a2a63ddbe012
--- /dev/null
+++ b/drivers/video/fbdev/rpisense-fb.c
@@ -0,0 +1,295 @@
@@ -375,9 +368,6 @@ index 000000000000..a2a63ddbe012
+MODULE_AUTHOR("Serge Schneider <serge@raspberrypi.org>");
+MODULE_LICENSE("GPL");
+
diff --git a/include/linux/mfd/rpisense/framebuffer.h b/include/linux/mfd/rpisense/framebuffer.h
new file mode 100644
index 000000000000..621f24386bb0
--- /dev/null
+++ b/include/linux/mfd/rpisense/framebuffer.h
@@ -0,0 +1,35 @@
@@ -416,6 +406,3 @@ index 000000000000..621f24386bb0
+};
+
+#endif
--
2.54.0
@@ -17,11 +17,9 @@ Signed-off-by: Charles Mirabile <cmirabil@redhat.com>
drivers/mfd/simple-mfd-i2c.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/mfd/simple-mfd-i2c.c b/drivers/mfd/simple-mfd-i2c.c
index 9f911afafc25..28675b53cbc4 100644
--- a/drivers/mfd/simple-mfd-i2c.c
+++ b/drivers/mfd/simple-mfd-i2c.c
@@ -118,6 +118,7 @@ static const struct of_device_id simple_mfd_i2c_of_match[] = {
@@ -118,6 +118,7 @@ static const struct of_device_id simple_
{ .compatible = "maxim,max5970", .data = &maxim_max5970},
{ .compatible = "maxim,max5978", .data = &maxim_max5970},
{ .compatible = "maxim,max77705-battery", .data = &maxim_mon_max77705},
@@ -29,6 +27,3 @@ index 9f911afafc25..28675b53cbc4 100644
{ .compatible = "silergy,sy7636a", .data = &silergy_sy7636a},
{ .compatible = "spacemit,p1", .data = &spacemit_p1, },
{}
--
2.54.0
@@ -14,8 +14,6 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
drivers/input/joystick/sensehat-joystick.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/input/joystick/sensehat-joystick.c b/drivers/input/joystick/sensehat-joystick.c
index a84df39d3b2f..f24beb98e444 100644
--- a/drivers/input/joystick/sensehat-joystick.c
+++ b/drivers/input/joystick/sensehat-joystick.c
@@ -28,7 +28,7 @@ struct sensehat_joystick {
@@ -27,6 +25,3 @@ index a84df39d3b2f..f24beb98e444 100644
};
static irqreturn_t sensehat_joystick_report(int irq, void *cookie)
--
2.54.0
@@ -22,8 +22,6 @@ Signed-off-by: Alex Riesen <alexander.riesen@cetitec.com>
3 files changed, 126 insertions(+)
create mode 100644 drivers/video/backlight/rpi_backlight.c
diff --git a/drivers/video/backlight/Kconfig b/drivers/video/backlight/Kconfig
index d9374d208cee..7b836f9adf91 100644
--- a/drivers/video/backlight/Kconfig
+++ b/drivers/video/backlight/Kconfig
@@ -249,6 +249,13 @@ config BACKLIGHT_PWM
@@ -40,11 +38,9 @@ index d9374d208cee..7b836f9adf91 100644
config BACKLIGHT_DA903X
tristate "Backlight Driver for DA9030/DA9034 using WLED"
depends on PMIC_DA903X
diff --git a/drivers/video/backlight/Makefile b/drivers/video/backlight/Makefile
index dfbb169bf6ea..bcb568afe5d4 100644
--- a/drivers/video/backlight/Makefile
+++ b/drivers/video/backlight/Makefile
@@ -52,6 +52,7 @@ obj-$(CONFIG_BACKLIGHT_OMAP1) += omap1_bl.o
@@ -52,6 +52,7 @@ obj-$(CONFIG_BACKLIGHT_OMAP1) += omap1_
obj-$(CONFIG_BACKLIGHT_PANDORA) += pandora_bl.o
obj-$(CONFIG_BACKLIGHT_PWM) += pwm_bl.o
obj-$(CONFIG_BACKLIGHT_QCOM_WLED) += qcom-wled.o
@@ -52,9 +48,6 @@ index dfbb169bf6ea..bcb568afe5d4 100644
obj-$(CONFIG_BACKLIGHT_RT4831) += rt4831-backlight.o
obj-$(CONFIG_BACKLIGHT_SAHARA) += kb3886_bl.o
obj-$(CONFIG_BACKLIGHT_SKY81452) += sky81452-backlight.o
diff --git a/drivers/video/backlight/rpi_backlight.c b/drivers/video/backlight/rpi_backlight.c
new file mode 100644
index 000000000000..877f29f1d7b0
--- /dev/null
+++ b/drivers/video/backlight/rpi_backlight.c
@@ -0,0 +1,118 @@
@@ -176,6 +169,3 @@ index 000000000000..877f29f1d7b0
+MODULE_AUTHOR("Gordon Hollingworth <gordon@raspberrypi.org>");
+MODULE_DESCRIPTION("Raspberry Pi mailbox based Backlight Driver");
+MODULE_LICENSE("GPL");
--
2.54.0
@@ -33,8 +33,6 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
3 files changed, 220 insertions(+)
create mode 100644 drivers/gpio/gpio-bcm-virt.c
diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig
index 4d644dcecad9..8ce7a57de297 100644
--- a/drivers/gpio/Kconfig
+++ b/drivers/gpio/Kconfig
@@ -237,6 +237,12 @@ config GPIO_BLZP1600
@@ -50,11 +48,9 @@ index 4d644dcecad9..8ce7a57de297 100644
config GPIO_BRCMSTB
tristate "BRCMSTB GPIO support"
default y if (ARCH_BRCMSTB || BMIPS_GENERIC)
diff --git a/drivers/gpio/Makefile b/drivers/gpio/Makefile
index ec296fa14bfd..75dbe47f4a32 100644
--- a/drivers/gpio/Makefile
+++ b/drivers/gpio/Makefile
@@ -43,6 +43,7 @@ obj-$(CONFIG_GPIO_ASPEED_SGPIO) += gpio-aspeed-sgpio.o
@@ -43,6 +43,7 @@ obj-$(CONFIG_GPIO_ASPEED_SGPIO) += gpio
obj-$(CONFIG_GPIO_ATH79) += gpio-ath79.o
obj-$(CONFIG_GPIO_BCM_KONA) += gpio-bcm-kona.o
obj-$(CONFIG_GPIO_BCM_XGS_IPROC) += gpio-xgs-iproc.o
@@ -62,9 +58,6 @@ index ec296fa14bfd..75dbe47f4a32 100644
obj-$(CONFIG_GPIO_BD71815) += gpio-bd71815.o
obj-$(CONFIG_GPIO_BD71828) += gpio-bd71828.o
obj-$(CONFIG_GPIO_BD9571MWV) += gpio-bd9571mwv.o
diff --git a/drivers/gpio/gpio-bcm-virt.c b/drivers/gpio/gpio-bcm-virt.c
new file mode 100644
index 000000000000..037bd7a3f64e
--- /dev/null
+++ b/drivers/gpio/gpio-bcm-virt.c
@@ -0,0 +1,213 @@
@@ -281,6 +274,3 @@ index 000000000000..037bd7a3f64e
+MODULE_AUTHOR("Dom Cobley <popcornmix@gmail.com>");
+MODULE_DESCRIPTION("brcmvirt GPIO driver");
+MODULE_ALIAS("platform:brcmvirt-gpio");
--
2.54.0
@@ -64,9 +64,6 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
create mode 100644 Documentation/devicetree/configfs-overlays.txt
create mode 100644 drivers/of/configfs.c
diff --git a/Documentation/devicetree/configfs-overlays.txt b/Documentation/devicetree/configfs-overlays.txt
new file mode 100644
index 000000000000..5fa43e064307
--- /dev/null
+++ b/Documentation/devicetree/configfs-overlays.txt
@@ -0,0 +1,31 @@
@@ -101,8 +98,6 @@ index 000000000000..5fa43e064307
+better suited to different use patterns. The firmware interface is what's
+intended to be used by hardware managers in the kernel, while the copy interface
+make sense for developers (since it avoids problems with namespaces).
diff --git a/drivers/of/Kconfig b/drivers/of/Kconfig
index 50697cc3b07e..9c1af8445ec7 100644
--- a/drivers/of/Kconfig
+++ b/drivers/of/Kconfig
@@ -126,4 +126,15 @@ config OF_OVERLAY_KUNIT_TEST
@@ -121,8 +116,6 @@ index 50697cc3b07e..9c1af8445ec7 100644
+ Enable a simple user-space driven DT overlay interface.
+
endif # OF
diff --git a/drivers/of/Makefile b/drivers/of/Makefile
index 379a0afcbdc0..f294b36207f8 100644
--- a/drivers/of/Makefile
+++ b/drivers/of/Makefile
@@ -1,6 +1,7 @@
@@ -133,9 +126,6 @@ index 379a0afcbdc0..f294b36207f8 100644
obj-$(CONFIG_OF_DYNAMIC) += dynamic.o
obj-$(CONFIG_OF_FLATTREE) += fdt.o empty_root.dtb.o
obj-$(CONFIG_OF_EARLY_FLATTREE) += fdt_address.o
diff --git a/drivers/of/configfs.c b/drivers/of/configfs.c
new file mode 100644
index 000000000000..0e6bccb8ff2e
--- /dev/null
+++ b/drivers/of/configfs.c
@@ -0,0 +1,277 @@
@@ -416,6 +406,3 @@ index 000000000000..0e6bccb8ff2e
+ return ret;
+}
+late_initcall(of_cfs_init);
--
2.54.0
@@ -8,8 +8,6 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
index 4e6ed02c1591..b3c4ac025e91 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
@@ -609,6 +609,7 @@ BRCMF_FW_DEF(4329, "brcmfmac4329-sdio");
@@ -20,7 +18,7 @@ index 4e6ed02c1591..b3c4ac025e91 100644
BRCMF_FW_DEF(4335, "brcmfmac4335-sdio");
BRCMF_FW_DEF(43362, "brcmfmac43362-sdio");
BRCMF_FW_DEF(4339, "brcmfmac4339-sdio");
@@ -641,7 +642,7 @@ static const struct brcmf_firmware_mapping brcmf_sdio_fwnames[] = {
@@ -641,7 +642,7 @@ static const struct brcmf_firmware_mappi
BRCMF_FW_ENTRY(BRCM_CC_4330_CHIP_ID, 0xFFFFFFFF, 4330),
BRCMF_FW_ENTRY(BRCM_CC_4334_CHIP_ID, 0xFFFFFFFF, 4334),
BRCMF_FW_ENTRY(BRCM_CC_43340_CHIP_ID, 0xFFFFFFFF, 43340),
@@ -29,6 +27,3 @@ index 4e6ed02c1591..b3c4ac025e91 100644
BRCMF_FW_ENTRY(BRCM_CC_4335_CHIP_ID, 0xFFFFFFFF, 4335),
BRCMF_FW_ENTRY(BRCM_CC_43362_CHIP_ID, 0xFFFFFFFE, 43362),
BRCMF_FW_ENTRY(BRCM_CC_4339_CHIP_ID, 0xFFFFFFFF, 4339),
--
2.54.0
@@ -9,11 +9,9 @@ other with conf_req and conf_rsp messages, in a demented game of tag.
drivers/bluetooth/hci_h5.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/bluetooth/hci_h5.c b/drivers/bluetooth/hci_h5.c
index d0d4420c1a0f..c6bf30801b49 100644
--- a/drivers/bluetooth/hci_h5.c
+++ b/drivers/bluetooth/hci_h5.c
@@ -358,7 +358,8 @@ static void h5_handle_internal_rx(struct hci_uart *hu)
@@ -358,7 +358,8 @@ static void h5_handle_internal_rx(struct
h5_link_control(hu, conf_req, 3);
} else if (memcmp(data, conf_req, 2) == 0) {
h5_link_control(hu, conf_rsp, 2);
@@ -23,6 +21,3 @@ index d0d4420c1a0f..c6bf30801b49 100644
} else if (memcmp(data, conf_rsp, 2) == 0) {
if (H5_HDR_LEN(hdr) > 2)
h5->tx_win = (data[2] & 0x07);
--
2.54.0
@@ -53,8 +53,6 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
include/linux/irqchip/irq-bcm2836.h | 2 ++
3 files changed, 38 insertions(+), 1 deletion(-)
diff --git a/drivers/irqchip/irq-bcm2835.c b/drivers/irqchip/irq-bcm2835.c
index 527cc962d6fd..176c487505af 100644
--- a/drivers/irqchip/irq-bcm2835.c
+++ b/drivers/irqchip/irq-bcm2835.c
@@ -40,6 +40,7 @@
@@ -65,7 +63,7 @@ index 527cc962d6fd..176c487505af 100644
#include <linux/irqdomain.h>
#include <asm/exception.h>
@@ -154,12 +155,24 @@ static void armctrl_unmask_irq(struct irq_data *d)
@@ -154,12 +155,24 @@ static void armctrl_unmask_irq(struct ir
}
}
@@ -90,7 +88,7 @@ index 527cc962d6fd..176c487505af 100644
};
static int armctrl_xlate(struct irq_domain *d, struct device_node *ctrlr,
@@ -332,7 +345,8 @@ static void bcm2836_chained_handle_irq(struct irq_desc *desc)
@@ -332,7 +345,8 @@ static void bcm2836_chained_handle_irq(s
{
u32 hwirq;
@@ -100,11 +98,9 @@ index 527cc962d6fd..176c487505af 100644
generic_handle_domain_irq(intc.domain, hwirq);
}
diff --git a/drivers/irqchip/irq-bcm2836.c b/drivers/irqchip/irq-bcm2836.c
index 22519f3f4f66..85f16f308bcd 100644
--- a/drivers/irqchip/irq-bcm2836.c
+++ b/drivers/irqchip/irq-bcm2836.c
@@ -89,6 +89,27 @@ static void bcm2836_arm_irqchip_unmask_gpu_irq(struct irq_data *d)
@@ -89,6 +89,27 @@ static void bcm2836_arm_irqchip_unmask_g
{
}
@@ -132,8 +128,6 @@ index 22519f3f4f66..85f16f308bcd 100644
static struct irq_chip bcm2836_arm_irqchip_gpu = {
.name = "bcm2836-gpu",
.irq_mask = bcm2836_arm_irqchip_mask_gpu_irq,
diff --git a/include/linux/irqchip/irq-bcm2836.h b/include/linux/irqchip/irq-bcm2836.h
index ac5719d8f56b..6fe053486447 100644
--- a/include/linux/irqchip/irq-bcm2836.h
+++ b/include/linux/irqchip/irq-bcm2836.h
@@ -59,3 +59,5 @@
@@ -142,6 +136,3 @@ index ac5719d8f56b..6fe053486447 100644
#define LAST_IRQ LOCAL_IRQ_PMU_FAST
+
+void bcm2836_arm_irqchip_spin_gpu_irq(void);
--
2.54.0
@@ -7,11 +7,9 @@ Subject: [PATCH] ARM64: Force hardware emulation of deprecated instructions.
arch/arm64/kernel/armv8_deprecated.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/arch/arm64/kernel/armv8_deprecated.c b/arch/arm64/kernel/armv8_deprecated.c
index e737c6295ec7..abb590819ac0 100644
--- a/arch/arm64/kernel/armv8_deprecated.c
+++ b/arch/arm64/kernel/armv8_deprecated.c
@@ -540,9 +540,14 @@ static void __init register_insn_emulation(struct insn_emulation *insn)
@@ -540,9 +540,14 @@ static void __init register_insn_emulati
switch (insn->status) {
case INSN_DEPRECATED:
@@ -26,6 +24,3 @@ index e737c6295ec7..abb590819ac0 100644
insn->max = INSN_HW;
break;
case INSN_OBSOLETE:
--
2.54.0
@@ -32,8 +32,6 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
3 files changed, 835 insertions(+)
create mode 100644 drivers/perf/raspberrypi_axi_monitor.c
diff --git a/drivers/perf/Kconfig b/drivers/perf/Kconfig
index 638321fc9800..e882f75e7a7a 100644
--- a/drivers/perf/Kconfig
+++ b/drivers/perf/Kconfig
@@ -271,6 +271,14 @@ config ALIBABA_UNCORE_DRW_PMU
@@ -51,18 +49,13 @@ index 638321fc9800..e882f75e7a7a 100644
source "drivers/perf/hisilicon/Kconfig"
config MARVELL_CN10K_DDR_PMU
diff --git a/drivers/perf/Makefile b/drivers/perf/Makefile
index ea52711a87e3..1ab73aa986d4 100644
--- a/drivers/perf/Makefile
+++ b/drivers/perf/Makefile
@@ -35,3 +35,4 @@ obj-$(CONFIG_DWC_PCIE_PMU) += dwc_pcie_pmu.o
@@ -35,3 +35,4 @@ obj-$(CONFIG_DWC_PCIE_PMU) += dwc_pcie_p
obj-$(CONFIG_ARM_CORESIGHT_PMU_ARCH_SYSTEM_PMU) += arm_cspmu/
obj-$(CONFIG_MESON_DDR_PMU) += amlogic/
obj-$(CONFIG_CXL_PMU) += cxl_pmu.o
+obj-$(CONFIG_RPI_AXIPERF) += raspberrypi_axi_monitor.o
diff --git a/drivers/perf/raspberrypi_axi_monitor.c b/drivers/perf/raspberrypi_axi_monitor.c
new file mode 100644
index 000000000000..b5ad12a2a9ab
--- /dev/null
+++ b/drivers/perf/raspberrypi_axi_monitor.c
@@ -0,0 +1,826 @@
@@ -892,6 +885,3 @@ index 000000000000..b5ad12a2a9ab
+MODULE_DESCRIPTION("RPI AXI Performance monitor driver");
+MODULE_LICENSE("GPL");
+
--
2.54.0
@@ -25,8 +25,6 @@ Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
arch/arm/mach-bcm/board_bcm2835.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/arch/arm/mach-bcm/board_bcm2835.c b/arch/arm/mach-bcm/board_bcm2835.c
index bfc556f76720..73ec2427fbcf 100644
--- a/arch/arm/mach-bcm/board_bcm2835.c
+++ b/arch/arm/mach-bcm/board_bcm2835.c
@@ -6,12 +6,25 @@
@@ -55,7 +53,7 @@ index bfc556f76720..73ec2427fbcf 100644
static const char * const bcm2835_compat[] = {
#ifdef CONFIG_ARCH_MULTI_V6
"brcm,bcm2835",
@@ -24,6 +37,7 @@ static const char * const bcm2835_compat[] = {
@@ -24,6 +37,7 @@ static const char * const bcm2835_compat
};
DT_MACHINE_START(BCM2835, "BCM2835")
@@ -63,6 +61,3 @@ index bfc556f76720..73ec2427fbcf 100644
.dt_compat = bcm2835_compat,
.smp = smp_ops(bcm2836_smp_ops),
MACHINE_END
--
2.54.0
@@ -15,8 +15,6 @@ Signed-off-by: Floris Bos <bos@je-eigen-domein.nl>
arch/arm/mach-bcm/board_bcm2835.c | 69 +++++++++++++++++++++++++++++++
1 file changed, 69 insertions(+)
diff --git a/arch/arm/mach-bcm/board_bcm2835.c b/arch/arm/mach-bcm/board_bcm2835.c
index 73ec2427fbcf..9b6c921106b5 100644
--- a/arch/arm/mach-bcm/board_bcm2835.c
+++ b/arch/arm/mach-bcm/board_bcm2835.c
@@ -6,6 +6,7 @@
@@ -108,7 +106,7 @@ index 73ec2427fbcf..9b6c921106b5 100644
static const char * const bcm2835_compat[] = {
#ifdef CONFIG_ARCH_MULTI_V6
"brcm,bcm2835",
@@ -37,6 +105,7 @@ static const char * const bcm2835_compat[] = {
@@ -37,6 +105,7 @@ static const char * const bcm2835_compat
};
DT_MACHINE_START(BCM2835, "BCM2835")
@@ -116,6 +114,3 @@ index 73ec2427fbcf..9b6c921106b5 100644
.init_machine = bcm2835_init,
.dt_compat = bcm2835_compat,
.smp = smp_ops(bcm2836_smp_ops),
--
2.54.0
@@ -14,8 +14,6 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
arch/arm/kernel/fiq.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/arch/arm/kernel/fiq.c b/arch/arm/kernel/fiq.c
index d2c8e5313539..bb320f08ad2f 100644
--- a/arch/arm/kernel/fiq.c
+++ b/arch/arm/kernel/fiq.c
@@ -57,6 +57,8 @@
@@ -36,6 +34,3 @@ index d2c8e5313539..bb320f08ad2f 100644
enable_irq(fiq + fiq_start);
}
--
2.54.0
@@ -20,11 +20,9 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
drivers/i2c/busses/i2c-gpio.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/i2c/busses/i2c-gpio.c b/drivers/i2c/busses/i2c-gpio.c
index f4355b17bfbf..d83b19a37fd6 100644
--- a/drivers/i2c/busses/i2c-gpio.c
+++ b/drivers/i2c/busses/i2c-gpio.c
@@ -428,7 +428,9 @@ static int i2c_gpio_probe(struct platform_device *pdev)
@@ -428,7 +428,9 @@ static int i2c_gpio_probe(struct platfor
adap->dev.parent = dev;
device_set_node(&adap->dev, fwnode);
@@ -35,6 +33,3 @@ index f4355b17bfbf..d83b19a37fd6 100644
ret = i2c_bit_add_numbered_bus(adap);
if (ret)
return ret;
--
2.54.0
@@ -7,11 +7,9 @@ Subject: [PATCH] added capture_clear option to pps-gpio via dtoverlay (#2433)
drivers/pps/clients/pps-gpio.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/pps/clients/pps-gpio.c b/drivers/pps/clients/pps-gpio.c
index 935da68610c7..65d17781ddb7 100644
--- a/drivers/pps/clients/pps-gpio.c
+++ b/drivers/pps/clients/pps-gpio.c
@@ -117,6 +117,9 @@ static int pps_gpio_setup(struct device *dev)
@@ -117,6 +117,9 @@ static int pps_gpio_setup(struct device
data->assert_falling_edge =
device_property_read_bool(dev, "assert-falling-edge");
@@ -21,6 +19,3 @@ index 935da68610c7..65d17781ddb7 100644
data->echo_pin = devm_gpiod_get_optional(dev, "echo", GPIOD_OUT_LOW);
if (IS_ERR(data->echo_pin))
return dev_err_probe(dev, PTR_ERR(data->echo_pin),
--
2.54.0
@@ -14,8 +14,6 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
drivers/hid/usbhid/hid-core.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/drivers/hid/usbhid/hid-core.c b/drivers/hid/usbhid/hid-core.c
index 758eb21430cd..7e59ae6faf7f 100644
--- a/drivers/hid/usbhid/hid-core.c
+++ b/drivers/hid/usbhid/hid-core.c
@@ -47,7 +47,7 @@
@@ -27,7 +25,7 @@ index 758eb21430cd..7e59ae6faf7f 100644
module_param_named(mousepoll, hid_mousepoll_interval, uint, 0644);
MODULE_PARM_DESC(mousepoll, "Polling interval of mice");
@@ -1132,7 +1132,9 @@ static int usbhid_start(struct hid_device *hid)
@@ -1133,7 +1133,9 @@ static int usbhid_start(struct hid_devic
*/
switch (hid->collection->usage) {
case HID_GD_MOUSE:
@@ -38,7 +36,7 @@ index 758eb21430cd..7e59ae6faf7f 100644
interval = hid_mousepoll_interval;
break;
case HID_GD_JOYSTICK:
@@ -1144,6 +1146,7 @@ static int usbhid_start(struct hid_device *hid)
@@ -1145,6 +1147,7 @@ static int usbhid_start(struct hid_devic
interval = hid_kbpoll_interval;
break;
}
@@ -46,6 +44,3 @@ index 758eb21430cd..7e59ae6faf7f 100644
ret = -ENOMEM;
if (usb_endpoint_dir_in(endpoint)) {
--
2.54.0
@@ -11,8 +11,6 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
drivers/firmware/raspberrypi.c | 40 +++++++++++++++++++++++++++++++++-
1 file changed, 39 insertions(+), 1 deletion(-)
diff --git a/drivers/firmware/raspberrypi.c b/drivers/firmware/raspberrypi.c
index 3ce22dac1786..01e356de79eb 100644
--- a/drivers/firmware/raspberrypi.c
+++ b/drivers/firmware/raspberrypi.c
@@ -14,6 +14,7 @@
@@ -23,7 +21,7 @@ index 3ce22dac1786..01e356de79eb 100644
#include <linux/slab.h>
#include <soc/bcm2835/raspberrypi-firmware.h>
@@ -182,6 +183,26 @@ int rpi_firmware_property(struct rpi_firmware *fw,
@@ -182,6 +183,26 @@ int rpi_firmware_property(struct rpi_fir
}
EXPORT_SYMBOL_GPL(rpi_firmware_property);
@@ -50,7 +48,7 @@ index 3ce22dac1786..01e356de79eb 100644
static void
rpi_firmware_print_firmware_revision(struct rpi_firmware *fw)
{
@@ -413,15 +434,32 @@ static struct platform_driver rpi_firmware_driver = {
@@ -413,15 +434,32 @@ static struct platform_driver rpi_firmwa
.remove = rpi_firmware_remove,
};
@@ -84,6 +82,3 @@ index 3ce22dac1786..01e356de79eb 100644
}
module_exit(rpi_firmware_exit);
--
2.54.0
@@ -26,8 +26,6 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
drivers/irqchip/irq-bcm2835.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/irqchip/irq-bcm2835.c b/drivers/irqchip/irq-bcm2835.c
index 176c487505af..a9a4ec9cdc94 100644
--- a/drivers/irqchip/irq-bcm2835.c
+++ b/drivers/irqchip/irq-bcm2835.c
@@ -75,8 +75,6 @@
@@ -39,7 +37,7 @@ index 176c487505af..a9a4ec9cdc94 100644
static const int reg_pending[] __initconst = { 0x00, 0x04, 0x08 };
static const int reg_enable[] __initconst = { 0x18, 0x10, 0x14 };
@@ -205,7 +203,7 @@ static int __init armctrl_of_init(struct device_node *node,
@@ -205,7 +203,7 @@ static int __init armctrl_of_init(struct
bool is_2836)
{
void __iomem *base;
@@ -48,7 +46,7 @@ index 176c487505af..a9a4ec9cdc94 100644
u32 reg;
base = of_iomap(node, 0);
@@ -245,6 +243,8 @@ static int __init armctrl_of_init(struct device_node *node,
@@ -245,6 +243,8 @@ static int __init armctrl_of_init(struct
pr_err(FW_BUG "Bootloader left fiq enabled\n");
}
@@ -57,7 +55,7 @@ index 176c487505af..a9a4ec9cdc94 100644
if (is_2836) {
int parent_irq = irq_of_parse_and_map(node, 0);
@@ -275,7 +275,7 @@ static int __init armctrl_of_init(struct device_node *node,
@@ -275,7 +275,7 @@ static int __init armctrl_of_init(struct
}
}
#ifndef CONFIG_ARM64
@@ -66,6 +64,3 @@ index 176c487505af..a9a4ec9cdc94 100644
#endif
return 0;
--
2.54.0
@@ -8,8 +8,6 @@ Subject: [PATCH] cxd2880: CXD2880_SPI_DRV should select DVB_CXD2880 with
drivers/media/spi/Kconfig | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/media/spi/Kconfig b/drivers/media/spi/Kconfig
index 4656afae5bb4..328ea94d14f9 100644
--- a/drivers/media/spi/Kconfig
+++ b/drivers/media/spi/Kconfig
@@ -9,6 +9,7 @@ menu "Media SPI Adapters"
@@ -20,6 +18,3 @@ index 4656afae5bb4..328ea94d14f9 100644
default m if !MEDIA_SUBDRV_AUTOSELECT
help
Choose if you would like to have SPI interface support for Sony CXD2880.
--
2.54.0
@@ -23,11 +23,9 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
drivers/firmware/raspberrypi.c | 40 +++++++++++++++++++++++++++++++++-
1 file changed, 39 insertions(+), 1 deletion(-)
diff --git a/drivers/firmware/raspberrypi.c b/drivers/firmware/raspberrypi.c
index 01e356de79eb..be4d1d45a993 100644
--- a/drivers/firmware/raspberrypi.c
+++ b/drivers/firmware/raspberrypi.c
@@ -208,6 +208,15 @@ rpi_firmware_print_firmware_revision(struct rpi_firmware *fw)
@@ -208,6 +208,15 @@ rpi_firmware_print_firmware_revision(str
{
time64_t date_and_time;
u32 packet;
@@ -43,7 +41,7 @@ index 01e356de79eb..be4d1d45a993 100644
int ret = rpi_firmware_property(fw,
RPI_FIRMWARE_GET_FIRMWARE_REVISION,
&packet, sizeof(packet));
@@ -217,7 +226,35 @@ rpi_firmware_print_firmware_revision(struct rpi_firmware *fw)
@@ -217,7 +226,35 @@ rpi_firmware_print_firmware_revision(str
/* This is not compatible with y2038 */
date_and_time = packet;
@@ -80,7 +78,7 @@ index 01e356de79eb..be4d1d45a993 100644
}
static void
@@ -327,6 +364,7 @@ static int rpi_firmware_probe(struct platform_device *pdev)
@@ -327,6 +364,7 @@ static int rpi_firmware_probe(struct pla
g_pdev = pdev;
rpi_firmware_print_firmware_revision(fw);
@@ -88,6 +86,3 @@ index 01e356de79eb..be4d1d45a993 100644
rpi_register_hwmon_driver(dev, fw);
rpi_register_clk_driver(dev);
--
2.54.0
@@ -19,11 +19,9 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
drivers/net/usb/lan78xx.c | 19 +++++++++++++++++--
1 file changed, 17 insertions(+), 2 deletions(-)
diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c
index 858a442d6996..5c1d742cd718 100644
--- a/drivers/net/usb/lan78xx.c
+++ b/drivers/net/usb/lan78xx.c
@@ -596,6 +596,15 @@ static int lan78xx_alloc_tx_resources(struct lan78xx_net *dev)
@@ -596,6 +596,15 @@ static int lan78xx_alloc_tx_resources(st
dev->n_tx_urbs, dev->tx_urb_size, dev);
}
@@ -39,7 +37,7 @@ index 858a442d6996..5c1d742cd718 100644
static int lan78xx_read_reg(struct lan78xx_net *dev, u32 index, u32 *data)
{
u32 *buf;
@@ -3758,8 +3767,14 @@ static int lan78xx_bind(struct lan78xx_net *dev, struct usb_interface *intf)
@@ -3758,8 +3767,14 @@ static int lan78xx_bind(struct lan78xx_n
if (DEFAULT_RX_CSUM_ENABLE)
dev->net->features |= NETIF_F_RXCSUM;
@@ -56,6 +54,3 @@ index 858a442d6996..5c1d742cd718 100644
if (DEFAULT_VLAN_RX_OFFLOAD)
dev->net->features |= NETIF_F_HW_VLAN_CTAG_RX;
--
2.54.0
@@ -17,8 +17,6 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
include/linux/microchipphy.h | 8 ++++++
3 files changed, 38 insertions(+)
diff --git a/Documentation/devicetree/bindings/net/microchip,lan78xx.txt b/Documentation/devicetree/bindings/net/microchip,lan78xx.txt
index 11a679530ae6..104768b85bbc 100644
--- a/Documentation/devicetree/bindings/net/microchip,lan78xx.txt
+++ b/Documentation/devicetree/bindings/net/microchip,lan78xx.txt
@@ -14,6 +14,9 @@ Optional properties of the embedded PHY:
@@ -31,11 +29,9 @@ index 11a679530ae6..104768b85bbc 100644
Example:
diff --git a/drivers/net/phy/microchip.c b/drivers/net/phy/microchip.c
index dc8634e7bcbe..53f6f7c89237 100644
--- a/drivers/net/phy/microchip.c
+++ b/drivers/net/phy/microchip.c
@@ -198,6 +198,7 @@ static int lan88xx_probe(struct phy_device *phydev)
@@ -198,6 +198,7 @@ static int lan88xx_probe(struct phy_devi
struct device *dev = &phydev->mdio.dev;
struct lan88xx_priv *priv;
u32 led_modes[4];
@@ -43,7 +39,7 @@ index dc8634e7bcbe..53f6f7c89237 100644
int len;
priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
@@ -227,6 +228,32 @@ static int lan88xx_probe(struct phy_device *phydev)
@@ -227,6 +228,32 @@ static int lan88xx_probe(struct phy_devi
return -EINVAL;
}
@@ -76,8 +72,6 @@ index dc8634e7bcbe..53f6f7c89237 100644
/* these values can be used to identify internal PHY */
priv->chip_id = phy_read_mmd(phydev, 3, LAN88XX_MMD3_CHIP_ID);
priv->chip_rev = phy_read_mmd(phydev, 3, LAN88XX_MMD3_CHIP_REV);
diff --git a/include/linux/microchipphy.h b/include/linux/microchipphy.h
index 517288da19fd..626c450d71f4 100644
--- a/include/linux/microchipphy.h
+++ b/include/linux/microchipphy.h
@@ -61,6 +61,14 @@
@@ -95,6 +89,3 @@ index 517288da19fd..626c450d71f4 100644
/* DSP registers */
#define PHY_ARDENNES_MMD_DEV_3_PHY_CFG (0x806A)
#define PHY_ARDENNES_MMD_DEV_3_PHY_CFG_ZD_DLY_EN_ (0x2000)
--
2.54.0
@@ -14,8 +14,6 @@ See: https://github.com/raspberrypi/linux/issues/2447
drivers/net/usb/lan78xx.c | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c
index 5c1d742cd718..05f6e51d5027 100644
--- a/drivers/net/usb/lan78xx.c
+++ b/drivers/net/usb/lan78xx.c
@@ -605,6 +605,11 @@ static bool enable_tso;
@@ -30,7 +28,7 @@ index 5c1d742cd718..05f6e51d5027 100644
static int lan78xx_read_reg(struct lan78xx_net *dev, u32 index, u32 *data)
{
u32 *buf;
@@ -4737,7 +4742,13 @@ static int lan78xx_probe(struct usb_interface *intf,
@@ -4737,7 +4742,13 @@ static int lan78xx_probe(struct usb_inte
if (ret < 0)
goto out4;
@@ -45,6 +43,3 @@ index 5c1d742cd718..05f6e51d5027 100644
maxp = usb_maxpacket(dev->udev, dev->pipe_intr);
dev->urb_intr = usb_alloc_urb(0, GFP_KERNEL);
--
2.54.0
@@ -7,11 +7,9 @@ Subject: [PATCH] Patching lan78xx for SOF_TIMESTAMPING_TX_SOFTWARE support
drivers/net/usb/lan78xx.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c
index 05f6e51d5027..21b99bfc9725 100644
--- a/drivers/net/usb/lan78xx.c
+++ b/drivers/net/usb/lan78xx.c
@@ -1932,6 +1932,7 @@ static const struct ethtool_ops lan78xx_ethtool_ops = {
@@ -1932,6 +1932,7 @@ static const struct ethtool_ops lan78xx_
.set_link_ksettings = lan78xx_set_link_ksettings,
.get_regs_len = lan78xx_get_regs_len,
.get_regs = lan78xx_get_regs,
@@ -19,6 +17,3 @@ index 05f6e51d5027..21b99bfc9725 100644
};
static int lan78xx_init_mac_address(struct lan78xx_net *dev)
--
2.54.0
@@ -14,11 +14,9 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
drivers/media/i2c/adv7180.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/drivers/media/i2c/adv7180.c b/drivers/media/i2c/adv7180.c
index 5cbc973df684..6a6a676eb3d6 100644
--- a/drivers/media/i2c/adv7180.c
+++ b/drivers/media/i2c/adv7180.c
@@ -859,6 +859,9 @@ static int init_device(struct adv7180_state *state)
@@ -859,6 +859,9 @@ static int init_device(struct adv7180_st
return ret;
adv7180_set_field_mode(state);
@@ -28,7 +26,7 @@ index 5cbc973df684..6a6a676eb3d6 100644
__v4l2_ctrl_handler_setup(&state->ctrl_hdl);
@@ -1415,6 +1418,7 @@ static int adv7180_probe(struct i2c_client *client)
@@ -1415,6 +1418,7 @@ static int adv7180_probe(struct i2c_clie
struct device_node *np = client->dev.of_node;
struct adv7180_state *state;
struct v4l2_subdev *sd;
@@ -36,7 +34,7 @@ index 5cbc973df684..6a6a676eb3d6 100644
int ret;
/* Check if the adapter supports the needed features */
@@ -1470,6 +1474,14 @@ static int adv7180_probe(struct i2c_client *client)
@@ -1470,6 +1474,14 @@ static int adv7180_probe(struct i2c_clie
state->curr_norm = V4L2_STD_NTSC;
state->input = 0;
@@ -51,6 +49,3 @@ index 5cbc973df684..6a6a676eb3d6 100644
sd = &state->sd;
v4l2_i2c_subdev_init(sd, client, &adv7180_ops);
sd->internal_ops = &adv7180_internal_ops;
--
2.54.0
@@ -12,11 +12,9 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
drivers/media/i2c/adv7180.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/media/i2c/adv7180.c b/drivers/media/i2c/adv7180.c
index 6a6a676eb3d6..101ab60ed665 100644
--- a/drivers/media/i2c/adv7180.c
+++ b/drivers/media/i2c/adv7180.c
@@ -1405,6 +1405,7 @@ static const struct adv7180_chip_info adv7282_m_info = {
@@ -1405,6 +1405,7 @@ static const struct adv7180_chip_info ad
BIT(ADV7182_INPUT_SVIDEO_AIN1_AIN2) |
BIT(ADV7182_INPUT_SVIDEO_AIN3_AIN4) |
BIT(ADV7182_INPUT_SVIDEO_AIN7_AIN8) |
@@ -24,6 +22,3 @@ index 6a6a676eb3d6..101ab60ed665 100644
BIT(ADV7182_INPUT_DIFF_CVBS_AIN1_AIN2) |
BIT(ADV7182_INPUT_DIFF_CVBS_AIN3_AIN4) |
BIT(ADV7182_INPUT_DIFF_CVBS_AIN7_AIN8),
--
2.54.0
@@ -11,8 +11,6 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
include/uapi/linux/videodev2.h | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h
index becd08fdbddb..30f9ba7f4816 100644
--- a/include/uapi/linux/videodev2.h
+++ b/include/uapi/linux/videodev2.h
@@ -82,6 +82,11 @@
@@ -27,6 +25,3 @@ index becd08fdbddb..30f9ba7f4816 100644
/*
* E N U M S
*/
--
2.54.0
@@ -20,9 +20,6 @@ Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
1 file changed, 85 insertions(+)
create mode 100644 Documentation/devicetree/bindings/media/bcm2835-unicam.txt
diff --git a/Documentation/devicetree/bindings/media/bcm2835-unicam.txt b/Documentation/devicetree/bindings/media/bcm2835-unicam.txt
new file mode 100644
index 000000000000..164d0377dcd2
--- /dev/null
+++ b/Documentation/devicetree/bindings/media/bcm2835-unicam.txt
@@ -0,0 +1,85 @@
@@ -111,6 +108,3 @@ index 000000000000..164d0377dcd2
+ };
+ };
+ };
--
2.54.0
@@ -11,11 +11,9 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c b/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c
index c2b5a37915f2..0a62ba4a6189 100644
--- a/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c
+++ b/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c
@@ -1775,7 +1775,7 @@ int vchiq_mmal_component_enable(struct vchiq_mmal_instance *instance,
@@ -1775,7 +1775,7 @@ int vchiq_mmal_component_enable(struct v
ret = enable_component(instance, component);
if (ret == 0)
@@ -24,6 +22,3 @@ index c2b5a37915f2..0a62ba4a6189 100644
mutex_unlock(&instance->vchiq_mutex);
--
2.54.0
@@ -18,8 +18,6 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
.../vc04_services/vchiq-mmal/mmal-vchiq.h | 4 +
4 files changed, 196 insertions(+), 14 deletions(-)
diff --git a/drivers/staging/vc04_services/vchiq-mmal/mmal-common.h b/drivers/staging/vc04_services/vchiq-mmal/mmal-common.h
index b33129403a30..0443be8198ea 100644
--- a/drivers/staging/vc04_services/vchiq-mmal/mmal-common.h
+++ b/drivers/staging/vc04_services/vchiq-mmal/mmal-common.h
@@ -50,6 +50,7 @@ struct mmal_buffer {
@@ -30,11 +28,9 @@ index b33129403a30..0443be8198ea 100644
unsigned long length;
u32 mmal_flags;
s64 dts;
diff --git a/drivers/staging/vc04_services/vchiq-mmal/mmal-msg.h b/drivers/staging/vc04_services/vchiq-mmal/mmal-msg.h
index 1889494425eb..7cccd5ee9a9e 100644
--- a/drivers/staging/vc04_services/vchiq-mmal/mmal-msg.h
+++ b/drivers/staging/vc04_services/vchiq-mmal/mmal-msg.h
@@ -346,6 +346,41 @@ struct mmal_msg_port_parameter_get_reply {
@@ -346,6 +346,41 @@ struct mmal_msg_port_parameter_get_reply
/* event messages */
#define MMAL_WORKER_EVENT_SPACE 256
@@ -76,8 +72,6 @@ index 1889494425eb..7cccd5ee9a9e 100644
struct mmal_msg_event_to_host {
u32 client_component; /* component context */
diff --git a/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c b/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c
index 0a62ba4a6189..1b96dd21a3f3 100644
--- a/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c
+++ b/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c
@@ -144,6 +144,8 @@ struct mmal_msg_context {
@@ -89,7 +83,7 @@ index 0a62ba4a6189..1b96dd21a3f3 100644
int status; /* context status */
@@ -231,18 +233,6 @@ release_msg_context(struct mmal_msg_context *msg_context)
@@ -231,18 +233,6 @@ release_msg_context(struct mmal_msg_cont
kfree(msg_context);
}
@@ -108,7 +102,7 @@ index 0a62ba4a6189..1b96dd21a3f3 100644
/* workqueue scheduled callback
*
* we do this because it is important we do not call any other vchiq
@@ -264,13 +254,18 @@ static void buffer_work_cb(struct work_struct *work)
@@ -264,13 +254,18 @@ static void buffer_work_cb(struct work_s
buffer->mmal_flags = msg_context->u.bulk.mmal_flags;
buffer->dts = msg_context->u.bulk.dts;
buffer->pts = msg_context->u.bulk.pts;
@@ -128,7 +122,7 @@ index 0a62ba4a6189..1b96dd21a3f3 100644
}
/* workqueue scheduled callback to handle receiving buffers
@@ -348,6 +343,7 @@ static int bulk_receive(struct vchiq_mmal_instance *instance,
@@ -348,6 +343,7 @@ static int bulk_receive(struct vchiq_mma
msg_context->u.bulk.buffer_used = rd_len;
msg_context->u.bulk.dts = msg->u.buffer_from_host.buffer_header.dts;
msg_context->u.bulk.pts = msg->u.buffer_from_host.buffer_header.pts;
@@ -136,7 +130,7 @@ index 0a62ba4a6189..1b96dd21a3f3 100644
queue_work(msg_context->instance->bulk_wq,
&msg_context->u.bulk.buffer_to_host_work);
@@ -450,6 +446,103 @@ buffer_from_host(struct vchiq_mmal_instance *instance,
@@ -450,6 +446,103 @@ buffer_from_host(struct vchiq_mmal_insta
return ret;
}
@@ -240,7 +234,7 @@ index 0a62ba4a6189..1b96dd21a3f3 100644
/* deals with receipt of buffer to host message */
static void buffer_to_host_cb(struct vchiq_mmal_instance *instance,
struct mmal_msg *msg, u32 msg_len)
@@ -1332,6 +1425,7 @@ static int port_disable(struct vchiq_mmal_instance *instance,
@@ -1332,6 +1425,7 @@ static int port_disable(struct vchiq_mma
mmalbuf->mmal_flags = 0;
mmalbuf->dts = MMAL_TIME_UNKNOWN;
mmalbuf->pts = MMAL_TIME_UNKNOWN;
@@ -248,7 +242,7 @@ index 0a62ba4a6189..1b96dd21a3f3 100644
port->buffer_cb(instance,
port, 0, mmalbuf);
}
@@ -1633,6 +1727,43 @@ int mmal_vchi_buffer_cleanup(struct mmal_buffer *buf)
@@ -1633,6 +1727,43 @@ int mmal_vchi_buffer_cleanup(struct mmal
}
EXPORT_SYMBOL_GPL(mmal_vchi_buffer_cleanup);
@@ -292,7 +286,7 @@ index 0a62ba4a6189..1b96dd21a3f3 100644
/* Initialise a mmal component and its ports
*
*/
@@ -1682,6 +1813,7 @@ int vchiq_mmal_component_init(struct vchiq_mmal_instance *instance,
@@ -1682,6 +1813,7 @@ int vchiq_mmal_component_init(struct vch
ret = port_info_get(instance, &component->control);
if (ret < 0)
goto release_component;
@@ -300,7 +294,7 @@ index 0a62ba4a6189..1b96dd21a3f3 100644
for (idx = 0; idx < component->inputs; idx++) {
component->input[idx].type = MMAL_PORT_TYPE_INPUT;
@@ -1692,6 +1824,7 @@ int vchiq_mmal_component_init(struct vchiq_mmal_instance *instance,
@@ -1692,6 +1824,7 @@ int vchiq_mmal_component_init(struct vch
ret = port_info_get(instance, &component->input[idx]);
if (ret < 0)
goto release_component;
@@ -308,7 +302,7 @@ index 0a62ba4a6189..1b96dd21a3f3 100644
}
for (idx = 0; idx < component->outputs; idx++) {
@@ -1703,6 +1836,7 @@ int vchiq_mmal_component_init(struct vchiq_mmal_instance *instance,
@@ -1703,6 +1836,7 @@ int vchiq_mmal_component_init(struct vch
ret = port_info_get(instance, &component->output[idx]);
if (ret < 0)
goto release_component;
@@ -316,7 +310,7 @@ index 0a62ba4a6189..1b96dd21a3f3 100644
}
for (idx = 0; idx < component->clocks; idx++) {
@@ -1714,6 +1848,7 @@ int vchiq_mmal_component_init(struct vchiq_mmal_instance *instance,
@@ -1714,6 +1848,7 @@ int vchiq_mmal_component_init(struct vch
ret = port_info_get(instance, &component->clock[idx]);
if (ret < 0)
goto release_component;
@@ -324,7 +318,7 @@ index 0a62ba4a6189..1b96dd21a3f3 100644
}
*component_out = component;
@@ -1739,7 +1874,7 @@ EXPORT_SYMBOL_GPL(vchiq_mmal_component_init);
@@ -1739,7 +1874,7 @@ EXPORT_SYMBOL_GPL(vchiq_mmal_component_i
int vchiq_mmal_component_finalise(struct vchiq_mmal_instance *instance,
struct vchiq_mmal_component *component)
{
@@ -333,7 +327,7 @@ index 0a62ba4a6189..1b96dd21a3f3 100644
if (mutex_lock_interruptible(&instance->vchiq_mutex))
return -EINTR;
@@ -1751,6 +1886,13 @@ int vchiq_mmal_component_finalise(struct vchiq_mmal_instance *instance,
@@ -1751,6 +1886,13 @@ int vchiq_mmal_component_finalise(struct
component->in_use = false;
@@ -347,8 +341,6 @@ index 0a62ba4a6189..1b96dd21a3f3 100644
mutex_unlock(&instance->vchiq_mutex);
return ret;
diff --git a/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.h b/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.h
index 8c3959f6f97f..190a0f42bd6b 100644
--- a/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.h
+++ b/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.h
@@ -79,6 +79,10 @@ struct vchiq_mmal_port {
@@ -362,6 +354,3 @@ index 8c3959f6f97f..190a0f42bd6b 100644
};
struct vchiq_mmal_component {
--
2.54.0
@@ -12,11 +12,9 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
.../vc04_services/vchiq-mmal/mmal-vchiq.c | 18 +++++++++++++-----
1 file changed, 13 insertions(+), 5 deletions(-)
diff --git a/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c b/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c
index 1b96dd21a3f3..7bee3fb08f02 100644
--- a/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c
+++ b/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c
@@ -420,11 +420,19 @@ buffer_from_host(struct vchiq_mmal_instance *instance,
@@ -420,11 +420,19 @@ buffer_from_host(struct vchiq_mmal_insta
m.u.buffer_from_host.buffer_header.data =
(u32)(unsigned long)buf->buffer;
m.u.buffer_from_host.buffer_header.alloc_size = buf->buffer_size;
@@ -41,6 +39,3 @@ index 1b96dd21a3f3..7bee3fb08f02 100644
/* clear buffer type specific data */
memset(&m.u.buffer_from_host.buffer_header_type_specific, 0,
--
2.54.0
@@ -17,11 +17,9 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
include/media/videobuf2-core.h | 15 +++++++++++++
2 files changed, 33 insertions(+), 3 deletions(-)
diff --git a/drivers/media/common/videobuf2/videobuf2-core.c b/drivers/media/common/videobuf2/videobuf2-core.c
index 2df566f409b6..f316864d99fc 100644
--- a/drivers/media/common/videobuf2/videobuf2-core.c
+++ b/drivers/media/common/videobuf2/videobuf2-core.c
@@ -2431,11 +2431,11 @@ static int __find_plane_by_offset(struct vb2_queue *q, unsigned long offset,
@@ -2431,11 +2431,11 @@ static int __find_plane_by_offset(struct
return 0;
}
@@ -36,7 +34,7 @@ index 2df566f409b6..f316864d99fc 100644
struct dma_buf *dbuf;
if (q->memory != VB2_MEMORY_MMAP) {
@@ -2480,6 +2480,21 @@ int vb2_core_expbuf(struct vb2_queue *q, int *fd, unsigned int type,
@@ -2480,6 +2480,21 @@ int vb2_core_expbuf(struct vb2_queue *q,
return -EINVAL;
}
@@ -58,15 +56,12 @@ index 2df566f409b6..f316864d99fc 100644
ret = dma_buf_fd(dbuf, flags & ~O_ACCMODE);
if (ret < 0) {
dprintk(q, 3, "buffer %d, plane %d failed to export (%d)\n",
diff --git a/include/media/videobuf2-core.h b/include/media/videobuf2-core.h
index 9b02aeba4108..c75b4f14581a 100644
--- a/include/media/videobuf2-core.h
+++ b/include/media/videobuf2-core.h
@@ -967,6 +967,21 @@ int vb2_core_streamon(struct vb2_queue *q, unsigned int type);
*/
@@ -968,6 +968,21 @@ int vb2_core_streamon(struct vb2_queue *
int vb2_core_streamoff(struct vb2_queue *q, unsigned int type);
+/**
/**
+ * vb2_core_expbuf_dmabuf() - Export a buffer as a dma_buf structure
+ * @q: videobuf2 queue
+ * @type: buffer type
@@ -81,9 +76,7 @@ index 9b02aeba4108..c75b4f14581a 100644
+ struct vb2_buffer *vb, unsigned int plane,
+ unsigned int flags, struct dma_buf **dmabuf);
+
/**
+/**
* vb2_core_expbuf() - Export a buffer as a file descriptor.
* @q: pointer to &struct vb2_queue with videobuf2 queue.
--
2.54.0
* @fd: pointer to the file descriptor associated with DMABUF
@@ -18,11 +18,9 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c b/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c
index 7bee3fb08f02..e7b69260aea3 100644
--- a/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c
+++ b/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c
@@ -458,9 +458,9 @@ buffer_from_host(struct vchiq_mmal_instance *instance,
@@ -458,9 +458,9 @@ buffer_from_host(struct vchiq_mmal_insta
static void event_to_host_cb(struct vchiq_mmal_instance *instance,
struct mmal_msg *msg, u32 msg_len)
{
@@ -34,6 +32,3 @@ index 7bee3fb08f02..e7b69260aea3 100644
struct vchiq_mmal_port *port = NULL;
struct mmal_msg_context *msg_context;
u32 port_num = msg->u.event_to_host.port_num;
--
2.54.0
@@ -12,8 +12,6 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
.../vc04_services/vchiq-mmal/mmal-encodings.h | 27 +++++++++++++++++++
1 file changed, 27 insertions(+)
diff --git a/drivers/staging/vc04_services/vchiq-mmal/mmal-encodings.h b/drivers/staging/vc04_services/vchiq-mmal/mmal-encodings.h
index e15ae7b24f73..feca1c3d8878 100644
--- a/drivers/staging/vc04_services/vchiq-mmal/mmal-encodings.h
+++ b/drivers/staging/vc04_services/vchiq-mmal/mmal-encodings.h
@@ -69,6 +69,33 @@
@@ -50,6 +48,3 @@ index e15ae7b24f73..feca1c3d8878 100644
/** An EGL image handle
*/
#define MMAL_ENCODING_EGL_IMAGE MMAL_FOURCC('E', 'G', 'L', 'I')
--
2.54.0
@@ -13,8 +13,6 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
.../vchiq-mmal/mmal-parameters.h | 32 ++++++++++++++++++-
1 file changed, 31 insertions(+), 1 deletion(-)
diff --git a/drivers/staging/vc04_services/vchiq-mmal/mmal-parameters.h b/drivers/staging/vc04_services/vchiq-mmal/mmal-parameters.h
index a0cdd28101f2..33f4179d7712 100644
--- a/drivers/staging/vc04_services/vchiq-mmal/mmal-parameters.h
+++ b/drivers/staging/vc04_services/vchiq-mmal/mmal-parameters.h
@@ -577,7 +577,37 @@ enum mmal_parameter_video_type {
@@ -56,6 +54,3 @@ index a0cdd28101f2..33f4179d7712 100644
};
/** Valid mirror modes */
--
2.54.0
@@ -14,11 +14,9 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c b/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c
index e7b69260aea3..6ed493308746 100644
--- a/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c
+++ b/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c
@@ -1901,6 +1901,8 @@ int vchiq_mmal_component_finalise(struct vchiq_mmal_instance *instance,
@@ -1901,6 +1901,8 @@ int vchiq_mmal_component_finalise(struct
for (idx = 0; idx < component->clocks; idx++)
free_event_context(&component->clock[idx]);
@@ -27,6 +25,3 @@ index e7b69260aea3..6ed493308746 100644
mutex_unlock(&instance->vchiq_mutex);
return ret;
--
2.54.0
@@ -12,11 +12,9 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
.../vc04_services/vchiq-mmal/mmal-vchiq.c | 29 +++++++++++++------
1 file changed, 20 insertions(+), 9 deletions(-)
diff --git a/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c b/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c
index 6ed493308746..465b00b33cff 100644
--- a/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c
+++ b/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c
@@ -1767,9 +1767,26 @@ static void free_event_context(struct vchiq_mmal_port *port)
@@ -1767,9 +1767,26 @@ static void free_event_context(struct vc
{
struct mmal_msg_context *ctx = port->event_context;
@@ -43,7 +41,7 @@ index 6ed493308746..465b00b33cff 100644
}
/* Initialise a mmal component and its ports
@@ -1867,6 +1884,7 @@ int vchiq_mmal_component_init(struct vchiq_mmal_instance *instance,
@@ -1867,6 +1884,7 @@ int vchiq_mmal_component_init(struct vch
release_component:
destroy_component(instance, component);
@@ -51,7 +49,7 @@ index 6ed493308746..465b00b33cff 100644
unlock:
if (component)
component->in_use = false;
@@ -1882,7 +1900,7 @@ EXPORT_SYMBOL_GPL(vchiq_mmal_component_init);
@@ -1882,7 +1900,7 @@ EXPORT_SYMBOL_GPL(vchiq_mmal_component_i
int vchiq_mmal_component_finalise(struct vchiq_mmal_instance *instance,
struct vchiq_mmal_component *component)
{
@@ -60,7 +58,7 @@ index 6ed493308746..465b00b33cff 100644
if (mutex_lock_interruptible(&instance->vchiq_mutex))
return -EINTR;
@@ -1894,14 +1912,7 @@ int vchiq_mmal_component_finalise(struct vchiq_mmal_instance *instance,
@@ -1894,14 +1912,7 @@ int vchiq_mmal_component_finalise(struct
component->in_use = false;
@@ -76,6 +74,3 @@ index 6ed493308746..465b00b33cff 100644
mutex_unlock(&instance->vchiq_mutex);
--
2.54.0
Loaded 100 of 779 files, more files were not shown because too many files have changed in this diff. Show more