diff mbox series

[1/2] iwlwifi: pcie: add support for AX101NGW

Message ID 20230102024021.2900-1-aiden.leong@aibsd.com (mailing list archive)
State New
Delegated to: Miri Korenblit
Headers show
Series [1/2] iwlwifi: pcie: add support for AX101NGW | expand

Commit Message

Aiden Leong Jan. 2, 2023, 2:40 a.m. UTC
AX101NGW(0x4DF0, 0x0244) should have tx_with_siso_diversity unset.

Signed-off-by: Aiden Leong <aiden.leong@aibsd.com>
---
Ref Commit: 9352ed0165ff4313ab340c979446c3d64c531f7a
Tested on my own device.
---
 drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 5 +++++
 1 file changed, 5 insertions(+)

Comments

Greenman, Gregory Jan. 2, 2023, 1:32 p.m. UTC | #1
On Mon, 2023-01-02 at 10:40 +0800, Aiden Leong wrote:
> AX101NGW(0x4DF0, 0x0244) should have tx_with_siso_diversity unset.

Why it should be unset? Which kernel do you have?
Commit 3f910a25839b13436bf0a22186f1698b23eafb91 added AX101 device.

> 
> Signed-off-by: Aiden Leong <aiden.leong@aibsd.com>
> ---
> Ref Commit: 9352ed0165ff4313ab340c979446c3d64c531f7a
> Tested on my own device.
> ---
>  drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c
> index 99768d6a6032..a46df1320372 100644
> --- a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c
> +++ b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c
> @@ -986,6 +986,11 @@ static const struct iwl_dev_info iwl_dev_info_table[] = {
>                       iwl_qu_c0_hr_b0, iwl_ax201_name),
>  
>         /* QuZ */
> +       _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,
> +                     IWL_CFG_MAC_TYPE_QUZ, SILICON_B_STEP,
> +                     IWL_CFG_RF_TYPE_HR1, IWL_CFG_RF_ID_HR1,
> +                     IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_NO_JACKET,
> +                     iwl_cfg_quz_a0_hr_b0, iwl_ax101_name),
>         _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,
>                       IWL_CFG_MAC_TYPE_QUZ, IWL_CFG_ANY,
>                       IWL_CFG_RF_TYPE_HR1, IWL_CFG_ANY,
Aiden Leong Jan. 2, 2023, 2:32 p.m. UTC | #2
1. I know nothing about what `tx_with_siso_diversity` is. It's just a 
hardware flag to me. Main line.

2. I have the real device. Tested. Two photos was sent to Luca Coelho as 
well.

3. /drivers/net/wireless/intel/iwlwifi/pcie/drv.c#L623

 > IWL_DEV_INFO(0x4DF0, 0x1651, killer1650s_2ax_cfg_qu_b0_hr_b0, NULL),

The device I have is 0x4DF0, 0x0244. They share the same device ID.

4. I have narrowed down my code with _mac_step, _rf_type, _rf_id, 
_no_160 and _cores, so it should be safe to other devices.

Happy New Year

Aiden

On 2023/1/2 21:32, Greenman, Gregory wrote:
> On Mon, 2023-01-02 at 10:40 +0800, Aiden Leong wrote:
>> AX101NGW(0x4DF0, 0x0244) should have tx_with_siso_diversity unset.
> Why it should be unset? Which kernel do you have?
> Commit 3f910a25839b13436bf0a22186f1698b23eafb91 added AX101 device.
>
>> Signed-off-by: Aiden Leong <aiden.leong@aibsd.com>
>> ---
>> Ref Commit: 9352ed0165ff4313ab340c979446c3d64c531f7a
>> Tested on my own device.
>> ---
>>   drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 5 +++++
>>   1 file changed, 5 insertions(+)
>>
>> diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c
>> index 99768d6a6032..a46df1320372 100644
>> --- a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c
>> +++ b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c
>> @@ -986,6 +986,11 @@ static const struct iwl_dev_info iwl_dev_info_table[] = {
>>                        iwl_qu_c0_hr_b0, iwl_ax201_name),
>>   
>>          /* QuZ */
>> +       _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,
>> +                     IWL_CFG_MAC_TYPE_QUZ, SILICON_B_STEP,
>> +                     IWL_CFG_RF_TYPE_HR1, IWL_CFG_RF_ID_HR1,
>> +                     IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_NO_JACKET,
>> +                     iwl_cfg_quz_a0_hr_b0, iwl_ax101_name),
>>          _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,
>>                        IWL_CFG_MAC_TYPE_QUZ, IWL_CFG_ANY,
>>                        IWL_CFG_RF_TYPE_HR1, IWL_CFG_ANY,
Greenman, Gregory Jan. 5, 2023, 6:39 a.m. UTC | #3
On Mon, 2023-01-02 at 22:32 +0800, Aiden Leong wrote:
> 1. I know nothing about what `tx_with_siso_diversity` is. It's just a 
> hardware flag to me. Main line.
> 
> 2. I have the real device. Tested. Two photos was sent to Luca Coelho as 
> well.
> 
> 3. /drivers/net/wireless/intel/iwlwifi/pcie/drv.c#L623
> 
>  > IWL_DEV_INFO(0x4DF0, 0x1651, killer1650s_2ax_cfg_qu_b0_hr_b0, NULL),
> 
> The device I have is 0x4DF0, 0x0244. They share the same device ID.
> 
> 4. I have narrowed down my code with _mac_step, _rf_type, _rf_id, 
> _no_160 and _cores, so it should be safe to other devices.
> 
> Happy New Year
> 
> Aiden
> 
> On 2023/1/2 21:32, Greenman, Gregory wrote:
> > On Mon, 2023-01-02 at 10:40 +0800, Aiden Leong wrote:
> > > AX101NGW(0x4DF0, 0x0244) should have tx_with_siso_diversity unset.
> > Why it should be unset? Which kernel do you have?
> > Commit 3f910a25839b13436bf0a22186f1698b23eafb91 added AX101 device.
> > 
> > > Signed-off-by: Aiden Leong <aiden.leong@aibsd.com>
> > > ---
> > > Ref Commit: 9352ed0165ff4313ab340c979446c3d64c531f7a
> > > Tested on my own device.
> > > ---
> > >   drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 5 +++++
> > >   1 file changed, 5 insertions(+)
> > > 
> > > diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c
> > > index 99768d6a6032..a46df1320372 100644
> > > --- a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c
> > > +++ b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c
> > > @@ -986,6 +986,11 @@ static const struct iwl_dev_info iwl_dev_info_table[] = {
> > >                        iwl_qu_c0_hr_b0, iwl_ax201_name),
> > >   
> > >          /* QuZ */
> > > +       _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,
> > > +                     IWL_CFG_MAC_TYPE_QUZ, SILICON_B_STEP,
> > > +                     IWL_CFG_RF_TYPE_HR1, IWL_CFG_RF_ID_HR1,
> > > +                     IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_NO_JACKET,
> > > +                     iwl_cfg_quz_a0_hr_b0, iwl_ax101_name),
> > >          _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,
> > >                        IWL_CFG_MAC_TYPE_QUZ, IWL_CFG_ANY,
> > >                        IWL_CFG_RF_TYPE_HR1, IWL_CFG_ANY,

So, still the only thing that this patch does is to *disable* tx_with_siso_diversity flag. 
The configuration one line below it (looking at Linux 6.2-rc2) is essentially the same
(but with wildcards instead), the only thing different is using iwl_quz_a0_hr1_b0 instead
of iwl_cfg_quz_a0_hr_b0. These two configurations differ only in setting tx_with_siso_diversity.
Thus the question, what is the reason for the change? Did you experienced FW crashes,
throughput degardataion?
Aiden Leong Jan. 5, 2023, 8:41 a.m. UTC | #4
On 2023年1月5日星期四 CST 下午2:39:52 Greenman, Gregory wrote:
> On Mon, 2023-01-02 at 22:32 +0800, Aiden Leong wrote:
> 
> > 1. I know nothing about what `tx_with_siso_diversity` is. It's just a 
> > hardware flag to me. Main line.
> > 
> > 2. I have the real device. Tested. Two photos was sent to Luca Coelho as 
> > well.
> > 
> > 3. /drivers/net/wireless/intel/iwlwifi/pcie/drv.c#L623
> > 
> >  > IWL_DEV_INFO(0x4DF0, 0x1651, killer1650s_2ax_cfg_qu_b0_hr_b0, NULL),
> > 
> > The device I have is 0x4DF0, 0x0244. They share the same device ID.
> > 
> > 4. I have narrowed down my code with _mac_step, _rf_type, _rf_id, 
> > _no_160 and _cores, so it should be safe to other devices.
> > 
> > Happy New Year
> > 
> > Aiden
> > 
> > On 2023/1/2 21:32, Greenman, Gregory wrote:
> > 
> > > On Mon, 2023-01-02 at 10:40 +0800, Aiden Leong wrote:
> > > 
> > > > AX101NGW(0x4DF0, 0x0244) should have tx_with_siso_diversity unset.
> > > 
> > > Why it should be unset? Which kernel do you have?
> > > Commit 3f910a25839b13436bf0a22186f1698b23eafb91 added AX101 device.
> > > 
> > > 
> > > > Signed-off-by: Aiden Leong <aiden.leong@aibsd.com>
> > > > ---
> > > > Ref Commit: 9352ed0165ff4313ab340c979446c3d64c531f7a
> > > > Tested on my own device.
> > > > ---
> > > >   drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 5 +++++
> > > >   1 file changed, 5 insertions(+)
> > > > 
> > > > diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c
> > > > b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c
 index
> > > > 99768d6a6032..a46df1320372 100644
> > > > --- a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c
> > > > +++ b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c
> > > > @@ -986,6 +986,11 @@ static const struct iwl_dev_info
> > > > iwl_dev_info_table[] = {
 iwl_qu_c0_hr_b0, iwl_ax201_name),
> > > >   
> > > >          /* QuZ */
> > > > +       _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,
> > > > +                     IWL_CFG_MAC_TYPE_QUZ, SILICON_B_STEP,
> > > > +                     IWL_CFG_RF_TYPE_HR1, IWL_CFG_RF_ID_HR1,
> > > > +                     IWL_CFG_NO_160, IWL_CFG_CORES_BT,
> > > > IWL_CFG_NO_CDB, IWL_CFG_NO_JACKET,
 +                    
> > > > iwl_cfg_quz_a0_hr_b0, iwl_ax101_name),
> > > >          _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,
> > > >                        IWL_CFG_MAC_TYPE_QUZ, IWL_CFG_ANY,
> > > >                        IWL_CFG_RF_TYPE_HR1, IWL_CFG_ANY,
> 
> 
> So, still the only thing that this patch does is to *disable*
> tx_with_siso_diversity flag. 
 The configuration one line below it (looking
> at Linux 6.2-rc2) is essentially the same (but with wildcards instead), the
> only thing different is using iwl_quz_a0_hr1_b0 instead of
> iwl_cfg_quz_a0_hr_b0. These two configurations differ only in setting
> tx_with_siso_diversity. Thus the question, what is the reason for the
> change? Did you experienced FW crashes, throughput degardataion?

Correct.

1. The FW crashes with "NMI_INTERRUPT_UNKNOW". Not interface shows up 
via `ip a`.

2. With iwl_cfg_quz_a0_hr_b0, it works. However, I get 
"NMI_INTERRUPT_UMAC_FATAL " in dmesg. Throughput degardataion not tested.

Please let me know if I should send you more info for further debugging.

Cheers,
Aiden Leong
Greenman, Gregory Jan. 19, 2023, 3:22 p.m. UTC | #5
On Thu, 2023-01-05 at 16:41 +0800, Aiden Leong wrote:
> On 2023年1月5日星期四 CST 下午2:39:52 Greenman, Gregory wrote:
> > On Mon, 2023-01-02 at 22:32 +0800, Aiden Leong wrote:
> > 
> > > 1. I know nothing about what `tx_with_siso_diversity` is. It's just a 
> > > hardware flag to me. Main line.
> > > 
> > > 2. I have the real device. Tested. Two photos was sent to Luca Coelho as 
> > > well.
> > > 
> > > 3. /drivers/net/wireless/intel/iwlwifi/pcie/drv.c#L623
> > > 
> > >  > IWL_DEV_INFO(0x4DF0, 0x1651, killer1650s_2ax_cfg_qu_b0_hr_b0, NULL),
> > > 
> > > The device I have is 0x4DF0, 0x0244. They share the same device ID.
> > > 
> > > 4. I have narrowed down my code with _mac_step, _rf_type, _rf_id, 
> > > _no_160 and _cores, so it should be safe to other devices.
> > > 
> > > Happy New Year
> > > 
> > > Aiden
> > > 
> > > On 2023/1/2 21:32, Greenman, Gregory wrote:
> > > 
> > > > On Mon, 2023-01-02 at 10:40 +0800, Aiden Leong wrote:
> > > > 
> > > > > AX101NGW(0x4DF0, 0x0244) should have tx_with_siso_diversity unset.
> > > > 
> > > > Why it should be unset? Which kernel do you have?
> > > > Commit 3f910a25839b13436bf0a22186f1698b23eafb91 added AX101 device.
> > > > 
> > > > 
> > > > > Signed-off-by: Aiden Leong <aiden.leong@aibsd.com>
> > > > > ---
> > > > > Ref Commit: 9352ed0165ff4313ab340c979446c3d64c531f7a
> > > > > Tested on my own device.
> > > > > ---
> > > > >   drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 5 +++++
> > > > >   1 file changed, 5 insertions(+)
> > > > > 
> > > > > diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c
> > > > > b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c
>  index
> > > > > 99768d6a6032..a46df1320372 100644
> > > > > --- a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c
> > > > > +++ b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c
> > > > > @@ -986,6 +986,11 @@ static const struct iwl_dev_info
> > > > > iwl_dev_info_table[] = {
>  iwl_qu_c0_hr_b0, iwl_ax201_name),
> > > > >   
> > > > >          /* QuZ */
> > > > > +       _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,
> > > > > +                     IWL_CFG_MAC_TYPE_QUZ, SILICON_B_STEP,
> > > > > +                     IWL_CFG_RF_TYPE_HR1, IWL_CFG_RF_ID_HR1,
> > > > > +                     IWL_CFG_NO_160, IWL_CFG_CORES_BT,
> > > > > IWL_CFG_NO_CDB, IWL_CFG_NO_JACKET,
>  +                    
> > > > > iwl_cfg_quz_a0_hr_b0, iwl_ax101_name),
> > > > >          _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,
> > > > >                        IWL_CFG_MAC_TYPE_QUZ, IWL_CFG_ANY,
> > > > >                        IWL_CFG_RF_TYPE_HR1, IWL_CFG_ANY,
> > 
> > 
> > So, still the only thing that this patch does is to *disable*
> > tx_with_siso_diversity flag. 
>  The configuration one line below it (looking
> > at Linux 6.2-rc2) is essentially the same (but with wildcards instead), the
> > only thing different is using iwl_quz_a0_hr1_b0 instead of
> > iwl_cfg_quz_a0_hr_b0. These two configurations differ only in setting
> > tx_with_siso_diversity. Thus the question, what is the reason for the
> > change? Did you experienced FW crashes, throughput degardataion?
> 
> Correct.
> 
> 1. The FW crashes with "NMI_INTERRUPT_UNKNOW". Not interface shows up 
> via `ip a`.
> 
> 2. With iwl_cfg_quz_a0_hr_b0, it works. However, I get 
> "NMI_INTERRUPT_UMAC_FATAL " in dmesg. Throughput degardataion not tested.
> 
> Please let me know if I should send you more info for further debugging.
> 
> Cheers,
> Aiden Leong

Sorry for the long delay, it's actually a bug in the definition that we have.
This device has only one antenna, so no diversity is possible. It means,
that no need to add a new entry, we need to fix the existing one (the one
below that you added) to have there iwl_cfg_quz_a0_hr_b0. Please tell me
if you wish to do it, or I can fix it.

Thanks for pointing out.
diff mbox series

Patch

diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c
index 99768d6a6032..a46df1320372 100644
--- a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c
+++ b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c
@@ -986,6 +986,11 @@  static const struct iwl_dev_info iwl_dev_info_table[] = {
 		      iwl_qu_c0_hr_b0, iwl_ax201_name),
 
 	/* QuZ */
+	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,
+		      IWL_CFG_MAC_TYPE_QUZ, SILICON_B_STEP,
+		      IWL_CFG_RF_TYPE_HR1, IWL_CFG_RF_ID_HR1,
+		      IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_NO_JACKET,
+		      iwl_cfg_quz_a0_hr_b0, iwl_ax101_name),
 	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,
 		      IWL_CFG_MAC_TYPE_QUZ, IWL_CFG_ANY,
 		      IWL_CFG_RF_TYPE_HR1, IWL_CFG_ANY,