kernel: reset asix88179 twice like in older kernels

Message ID 20240604120853.2327-1-arne_f@ipfire.org
State Accepted
Commit f3d6e2a0fbb21b78e3a5247049bc7b21595f2153
Headers
Series kernel: reset asix88179 twice like in older kernels |

Commit Message

Arne Fitzenreiter June 4, 2024, 12:08 p.m. UTC
  the kernel developers has removed a reset at bring the
device fist up to save time. At my test's this result in
not detecting the link correct. This readd the reset and at
my tests the device has worked.

fixes #13692

Signed-off-by: Arne Fitzenreiter <arne_f@ipfire.org>
---
 lfs/linux                                       |  3 +++
 .../linux/linux-6.6.32-asix88179_reset.patch    | 17 +++++++++++++++++
 2 files changed, 20 insertions(+)
 create mode 100644 src/patches/linux/linux-6.6.32-asix88179_reset.patch
  

Comments

Michael Tremer June 4, 2024, 12:43 p.m. UTC | #1
Could you please make sure to report this upstream so that this fix gets included in mainline?

Best,
-Michael

> On 4 Jun 2024, at 13:08, Arne Fitzenreiter <arne_f@ipfire.org> wrote:
> 
> the kernel developers has removed a reset at bring the
> device fist up to save time. At my test's this result in
> not detecting the link correct. This readd the reset and at
> my tests the device has worked.
> 
> fixes #13692
> 
> Signed-off-by: Arne Fitzenreiter <arne_f@ipfire.org>
> ---
> lfs/linux                                       |  3 +++
> .../linux/linux-6.6.32-asix88179_reset.patch    | 17 +++++++++++++++++
> 2 files changed, 20 insertions(+)
> create mode 100644 src/patches/linux/linux-6.6.32-asix88179_reset.patch
> 
> diff --git a/lfs/linux b/lfs/linux
> index ca3b05119..3f5e60838 100644
> --- a/lfs/linux
> +++ b/lfs/linux
> @@ -133,6 +133,9 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
> # https://bugzilla.ipfire.org/show_bug.cgi?id=12760
> cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux/linux-5.15-NFQUEUE-Hold-RCU-read-lock-while-calling-nf_reinject.patch
> 
> + # reset ax88179 twice like in older kernels
> + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux/linux-6.6.32-asix88179_reset.patch
> +
> # Fix external module compile
> cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux/linux-6.0-fix_external_module_build.patch
> 
> diff --git a/src/patches/linux/linux-6.6.32-asix88179_reset.patch b/src/patches/linux/linux-6.6.32-asix88179_reset.patch
> new file mode 100644
> index 000000000..f0e7d09f1
> --- /dev/null
> +++ b/src/patches/linux/linux-6.6.32-asix88179_reset.patch
> @@ -0,0 +1,17 @@
> +diff -Naur linux-6.6.32.org/drivers/net/usb/ax88179_178a.c linux-6.6.32/drivers/net/usb/ax88179_178a.c
> +--- linux-6.6.32.org/drivers/net/usb/ax88179_178a.c 2024-05-25 16:22:56.000000000 +0200
> ++++ linux-6.6.32/drivers/net/usb/ax88179_178a.c 2024-06-04 10:45:18.113453100 +0200
> +@@ -1678,10 +1678,10 @@
> + {
> + struct ax88179_data *ax179_data = dev->driver_priv;
> + 
> +- if (ax179_data->initialized)
> ++// if (ax179_data->initialized)
> + ax88179_reset(dev);
> +- else
> +- ax179_data->initialized = 1;
> ++// else
> ++// ax179_data->initialized = 1;
> + 
> + return 0;
> + }
> -- 
> 2.39.2
>
  

Patch

diff --git a/lfs/linux b/lfs/linux
index ca3b05119..3f5e60838 100644
--- a/lfs/linux
+++ b/lfs/linux
@@ -133,6 +133,9 @@  $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
 	# https://bugzilla.ipfire.org/show_bug.cgi?id=12760
 	cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux/linux-5.15-NFQUEUE-Hold-RCU-read-lock-while-calling-nf_reinject.patch
 
+	# reset ax88179 twice like in older kernels
+	cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux/linux-6.6.32-asix88179_reset.patch
+
 	# Fix external module compile
 	cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux/linux-6.0-fix_external_module_build.patch
 
diff --git a/src/patches/linux/linux-6.6.32-asix88179_reset.patch b/src/patches/linux/linux-6.6.32-asix88179_reset.patch
new file mode 100644
index 000000000..f0e7d09f1
--- /dev/null
+++ b/src/patches/linux/linux-6.6.32-asix88179_reset.patch
@@ -0,0 +1,17 @@ 
+diff -Naur linux-6.6.32.org/drivers/net/usb/ax88179_178a.c linux-6.6.32/drivers/net/usb/ax88179_178a.c
+--- linux-6.6.32.org/drivers/net/usb/ax88179_178a.c	2024-05-25 16:22:56.000000000 +0200
++++ linux-6.6.32/drivers/net/usb/ax88179_178a.c	2024-06-04 10:45:18.113453100 +0200
+@@ -1678,10 +1678,10 @@
+ {
+ 	struct ax88179_data *ax179_data = dev->driver_priv;
+ 
+-	if (ax179_data->initialized)
++//	if (ax179_data->initialized)
+ 		ax88179_reset(dev);
+-	else
+-		ax179_data->initialized = 1;
++//	else
++//		ax179_data->initialized = 1;
+ 
+ 	return 0;
+ }