[OpenWrt-Devel] [PATCH 1/7] sunxi: Remove unneeded patches

Hauke Mehrtens hauke at hauke-m.de
Thu Dec 27 06:08:36 EST 2018


In the device tree file the higher offsets of the reset controller are
not used, so this patch supporting higher bits is not needed.
The sunxi architecture switched to the simple reset controller with
kernel 4.19 and then this patch does not apply any more.
The sunxi target in OpenWrt is very close to mainline, so if the device
tree files from the mainline Linux kernel need this the mainline kernel
will get support for this.

Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 .../115-musb-ignore-vbus-errors.patch         | 26 ------
 .../131-reset-add-h3-resets.patch             | 92 -------------------
 2 files changed, 118 deletions(-)
 delete mode 100644 target/linux/sunxi/patches-4.14/115-musb-ignore-vbus-errors.patch
 delete mode 100644 target/linux/sunxi/patches-4.14/131-reset-add-h3-resets.patch

diff --git a/target/linux/sunxi/patches-4.14/115-musb-ignore-vbus-errors.patch b/target/linux/sunxi/patches-4.14/115-musb-ignore-vbus-errors.patch
deleted file mode 100644
index ea9187e375..0000000000
--- a/target/linux/sunxi/patches-4.14/115-musb-ignore-vbus-errors.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From fce20ac5d8c98f1a8ea5298051d9fa669e455f04 Mon Sep 17 00:00:00 2001
-From: Hans de Goede <hdegoede at redhat.com>
-Date: Tue, 4 Aug 2015 23:22:45 +0200
-Subject: [PATCH] musb: sunxi: Ignore VBus errors in host-only mode
-
-For some unclear reason sometimes we get VBus errors in host-only mode,
-even though we do not have any vbus-detection then. Ignore these.
-
-Signed-off-by: Hans de Goede <hdegoede at redhat.com>
----
- drivers/usb/musb/sunxi.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
---- a/drivers/usb/musb/sunxi.c
-+++ b/drivers/usb/musb/sunxi.c
-@@ -192,6 +192,10 @@ static irqreturn_t sunxi_musb_interrupt(
- 		musb_writeb(musb->mregs, MUSB_FADDR, 0);
- 	}
- 
-+	/*  Ignore Vbus errors when in host only mode */
-+	if (musb->port_mode == MUSB_PORT_MODE_HOST)
-+		musb->int_usb &= ~MUSB_INTR_VBUSERROR;
-+
- 	musb->int_tx = readw(musb->mregs + SUNXI_MUSB_INTRTX);
- 	if (musb->int_tx)
- 		writew(musb->int_tx, musb->mregs + SUNXI_MUSB_INTRTX);
diff --git a/target/linux/sunxi/patches-4.14/131-reset-add-h3-resets.patch b/target/linux/sunxi/patches-4.14/131-reset-add-h3-resets.patch
deleted file mode 100644
index 8e8fdafca5..0000000000
--- a/target/linux/sunxi/patches-4.14/131-reset-add-h3-resets.patch
+++ /dev/null
@@ -1,92 +0,0 @@
-From 5f0bb9d0bc545ef53a83f7bd176fdc0736eed8e5 Mon Sep 17 00:00:00 2001
-From: Jens Kuske <jenskuske at gmail.com>
-Date: Tue, 27 Oct 2015 17:50:24 +0100
-Subject: [PATCH] reset: sunxi: Add Allwinner H3 bus resets
-
-The H3 bus resets have some holes between the registers, so we add
-an of_xlate() function to skip them according to the datasheet.
-
-Signed-off-by: Jens Kuske <jenskuske at gmail.com>
----
- .../bindings/reset/allwinner,sunxi-clock-reset.txt |  1 +
- drivers/reset/reset-sunxi.c                        | 30 +++++++++++++++++++---
- 2 files changed, 28 insertions(+), 3 deletions(-)
-
---- a/Documentation/devicetree/bindings/reset/allwinner,sunxi-clock-reset.txt
-+++ b/Documentation/devicetree/bindings/reset/allwinner,sunxi-clock-reset.txt
-@@ -8,6 +8,7 @@ Required properties:
- - compatible: Should be one of the following:
-   "allwinner,sun6i-a31-ahb1-reset"
-   "allwinner,sun6i-a31-clock-reset"
-+  "allwinner,sun8i-h3-bus-reset"
- - reg: should be register base and length as documented in the
-   datasheet
- - #reset-cells: 1, see below
---- a/drivers/reset/reset-sunxi.c
-+++ b/drivers/reset/reset-sunxi.c
-@@ -77,7 +77,9 @@ static const struct reset_control_ops su
- 	.deassert	= sunxi_reset_deassert,
- };
- 
--static int sunxi_reset_init(struct device_node *np)
-+static int sunxi_reset_init(struct device_node *np,
-+			    int (*of_xlate)(struct reset_controller_dev *rcdev,
-+				    const struct of_phandle_args *reset_spec))
- {
- 	struct sunxi_reset_data *data;
- 	struct resource res;
-@@ -110,6 +112,7 @@ static int sunxi_reset_init(struct devic
- 	data->rcdev.nr_resets = size * 8;
- 	data->rcdev.ops = &sunxi_reset_ops;
- 	data->rcdev.of_node = np;
-+	data->rcdev.of_xlate = of_xlate;
- 
- 	return reset_controller_register(&data->rcdev);
- 
-@@ -118,6 +121,21 @@ err_alloc:
- 	return ret;
- };
- 
-+static int sun8i_h3_bus_reset_xlate(struct reset_controller_dev *rcdev,
-+				    const struct of_phandle_args *reset_spec)
-+{
-+	unsigned int index = reset_spec->args[0];
-+
-+	if (index < 96)
-+		return index;
-+	else if (index < 128)
-+		return index + 32;
-+	else if (index < 160)
-+		return index + 64;
-+	else
-+		return -EINVAL;
-+}
-+
- /*
-  * These are the reset controller we need to initialize early on in
-  * our system, before we can even think of using a regular device
-@@ -125,15 +143,21 @@ err_alloc:
-  */
- static const struct of_device_id sunxi_early_reset_dt_ids[] __initconst = {
- 	{ .compatible = "allwinner,sun6i-a31-ahb1-reset", },
-+	{ .compatible = "allwinner,sun8i-h3-bus-reset", .data = sun8i_h3_bus_reset_xlate, },
- 	{ /* sentinel */ },
- };
- 
- void __init sun6i_reset_init(void)
- {
- 	struct device_node *np;
--
--	for_each_matching_node(np, sunxi_early_reset_dt_ids)
--		sunxi_reset_init(np);
-+	const struct of_device_id *match;
-+	int (*of_xlate)(struct reset_controller_dev *rcdev,
-+			const struct of_phandle_args *reset_spec);
-+
-+	for_each_matching_node_and_match(np, sunxi_early_reset_dt_ids, &match) {
-+		of_xlate = match->data;
-+		sunxi_reset_init(np, of_xlate);
-+	}
- }
- 
- /*
-- 
2.19.2


_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel



More information about the openwrt-devel mailing list