iwlwifi: pcie: restore support for Killer Qu C0 NICs
diff mbox series

Message ID 20191224051639.6904-1-jan.steffens@gmail.com
State Changes Requested
Delegated to: Kalle Valo
Headers show
Series
  • iwlwifi: pcie: restore support for Killer Qu C0 NICs
Related show

Commit Message

Jan Alexander Steffens (heftig) Dec. 24, 2019, 5:16 a.m. UTC
Commit 809805a820c6 ("iwlwifi: pcie: move some cfg mangling from
trans_pcie_alloc to probe") refactored the cfg mangling. Unfortunately,
in this process the lines which picked the right cfg for Killer Qu C0
NICs after C0 detection were lost. These lines were added by commit
b9500577d361 ("iwlwifi: pcie: handle switching killer Qu B0 NICs to
C0").

I suspect this is more of the "merge damage" which commit 7cded5658329
("iwlwifi: pcie: fix merge damage on making QnJ exclusive") talks about.

Restore the missing lines so the driver loads the right firmware for
these NICs.

Fixes: 809805a820c6 ("iwlwifi: pcie: move some cfg mangling from trans_pcie_alloc to probe")
Signed-off-by: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
---
 drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Leho Kraav Feb. 21, 2020, 12:11 p.m. UTC | #1
On Tue, Dec 24, 2019 at 06:16:39AM +0100, Jan Alexander Steffens (heftig) wrote:
> Commit 809805a820c6 ("iwlwifi: pcie: move some cfg mangling from
> trans_pcie_alloc to probe") refactored the cfg mangling. Unfortunately,
> in this process the lines which picked the right cfg for Killer Qu C0
> NICs after C0 detection were lost. These lines were added by commit
> b9500577d361 ("iwlwifi: pcie: handle switching killer Qu B0 NICs to
> C0").
> 
> I suspect this is more of the "merge damage" which commit 7cded5658329
> ("iwlwifi: pcie: fix merge damage on making QnJ exclusive") talks about.
> 
> Restore the missing lines so the driver loads the right firmware for
> these NICs.

This seems real, as upgrading 5.5.0 -> 5.5.5 just broke my iwlwifi on XPS 7390.
How come?
Kalle Valo March 3, 2020, 5:40 a.m. UTC | #2
Leho Kraav <leho@kraav.com> writes:

> On Tue, Dec 24, 2019 at 06:16:39AM +0100, Jan Alexander Steffens (heftig) wrote:
>> Commit 809805a820c6 ("iwlwifi: pcie: move some cfg mangling from
>> trans_pcie_alloc to probe") refactored the cfg mangling. Unfortunately,
>> in this process the lines which picked the right cfg for Killer Qu C0
>> NICs after C0 detection were lost. These lines were added by commit
>> b9500577d361 ("iwlwifi: pcie: handle switching killer Qu B0 NICs to
>> C0").
>> 
>> I suspect this is more of the "merge damage" which commit 7cded5658329
>> ("iwlwifi: pcie: fix merge damage on making QnJ exclusive") talks about.
>> 
>> Restore the missing lines so the driver loads the right firmware for
>> these NICs.
>
> This seems real, as upgrading 5.5.0 -> 5.5.5 just broke my iwlwifi on XPS 7390.
> How come?

Luca, should I apply this to wireless-drivers?

https://patchwork.kernel.org/patch/11309095/
Luca Coelho March 3, 2020, 8:17 a.m. UTC | #3
On Tue, 2020-03-03 at 07:40 +0200, Kalle Valo wrote:
> Leho Kraav <leho@kraav.com> writes:
> 
> > On Tue, Dec 24, 2019 at 06:16:39AM +0100, Jan Alexander Steffens (heftig) wrote:
> > > Commit 809805a820c6 ("iwlwifi: pcie: move some cfg mangling from
> > > trans_pcie_alloc to probe") refactored the cfg mangling. Unfortunately,
> > > in this process the lines which picked the right cfg for Killer Qu C0
> > > NICs after C0 detection were lost. These lines were added by commit
> > > b9500577d361 ("iwlwifi: pcie: handle switching killer Qu B0 NICs to
> > > C0").
> > > 
> > > I suspect this is more of the "merge damage" which commit 7cded5658329
> > > ("iwlwifi: pcie: fix merge damage on making QnJ exclusive") talks about.
> > > 
> > > Restore the missing lines so the driver loads the right firmware for
> > > these NICs.
> > 
> > This seems real, as upgrading 5.5.0 -> 5.5.5 just broke my iwlwifi on XPS 7390.
> > How come?
> 
> Luca, should I apply this to wireless-drivers?
> 
> https://patchwork.kernel.org/patch/11309095/

Yes, please take it to wireless-drivers.  I've reassigned it to you.

But please note that this will conflict with another patch that is
already in v5.6-rc* that introduced this code again in a different way:

https://patchwork.kernel.org/patch/11318849/

--
Cheers,
Luca.
Kalle Valo March 3, 2020, 3:29 p.m. UTC | #4
"Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com> wrote:

> Commit 809805a820c6 ("iwlwifi: pcie: move some cfg mangling from
> trans_pcie_alloc to probe") refactored the cfg mangling. Unfortunately,
> in this process the lines which picked the right cfg for Killer Qu C0
> NICs after C0 detection were lost. These lines were added by commit
> b9500577d361 ("iwlwifi: pcie: handle switching killer Qu B0 NICs to
> C0").
> 
> I suspect this is more of the "merge damage" which commit 7cded5658329
> ("iwlwifi: pcie: fix merge damage on making QnJ exclusive") talks about.
> 
> Restore the missing lines so the driver loads the right firmware for
> these NICs.
> 
> Fixes: 809805a820c6 ("iwlwifi: pcie: move some cfg mangling from trans_pcie_alloc to probe")
> Signed-off-by: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>

As Luca said, this fails to apply to wireless-drivers. Please rebase and
resend as v2.

Recorded preimage for 'drivers/net/wireless/intel/iwlwifi/pcie/drv.c'
error: Failed to merge in the changes.
Applying: iwlwifi: pcie: restore support for Killer Qu C0 NICs
Using index info to reconstruct a base tree...
M	drivers/net/wireless/intel/iwlwifi/pcie/drv.c
Falling back to patching base and 3-way merge...
Auto-merging drivers/net/wireless/intel/iwlwifi/pcie/drv.c
CONFLICT (content): Merge conflict in drivers/net/wireless/intel/iwlwifi/pcie/drv.c
Patch failed at 0001 iwlwifi: pcie: restore support for Killer Qu C0 NICs
The copy of the patch that failed is found in: .git/rebase-apply/patch

Patch set to Changes Requested.
Luciano Coelho March 4, 2020, 7:10 a.m. UTC | #5
On Tue, 2020-03-03 at 15:29 +0000, Kalle Valo wrote:
> "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com> wrote:
> 
> > Commit 809805a820c6 ("iwlwifi: pcie: move some cfg mangling from
> > trans_pcie_alloc to probe") refactored the cfg mangling. Unfortunately,
> > in this process the lines which picked the right cfg for Killer Qu C0
> > NICs after C0 detection were lost. These lines were added by commit
> > b9500577d361 ("iwlwifi: pcie: handle switching killer Qu B0 NICs to
> > C0").
> > 
> > I suspect this is more of the "merge damage" which commit 7cded5658329
> > ("iwlwifi: pcie: fix merge damage on making QnJ exclusive") talks about.
> > 
> > Restore the missing lines so the driver loads the right firmware for
> > these NICs.
> > 
> > Fixes: 809805a820c6 ("iwlwifi: pcie: move some cfg mangling from trans_pcie_alloc to probe")
> > Signed-off-by: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
> 
> As Luca said, this fails to apply to wireless-drivers. Please rebase and
> resend as v2.

Hmmm, sorry, I confused things a bit.  I missed the fact that wireless-
drivers is already at v5.6.

This patch is not needed in v5.6-rc* because another patch has done a
similar change.  There was some refactoring in this area, so the patch
that is in v5.6 doesn't apply in v5.5, so Jan's patch has to be sent to
stable v5.5 and not be applied in wireless-drivers.

Jan, if you want this to be fixed in v5.5, can you please send it to 
stable@vger.kernel.org with an explanation of why it has to be there
even though it's not in the mainline? Or just send it and CC me, so
I'll reply with an explanation of the issue.

--
Cheers,
Luca.

Patch
diff mbox series

diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c
index b0b7eca1754e..de62a6dc4e73 100644
--- a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c
+++ b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c
@@ -1107,6 +1107,10 @@  static int iwl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 			cfg = &iwl9560_2ac_cfg_qu_c0_jf_b0;
 		else if (cfg == &iwl9560_2ac_160_cfg_qu_b0_jf_b0)
 			cfg = &iwl9560_2ac_160_cfg_qu_c0_jf_b0;
+		else if (cfg == &killer1650s_2ax_cfg_qu_b0_hr_b0)
+			cfg = &killer1650s_2ax_cfg_qu_c0_hr_b0;
+		else if (cfg == &killer1650i_2ax_cfg_qu_b0_hr_b0)
+			cfg = &killer1650i_2ax_cfg_qu_c0_hr_b0;
 	}
 
 	/* same thing for QuZ... */