Message ID | 1540484313-9354-1-git-send-email-sgruszka@redhat.com (mailing list archive) |
---|---|
State | Accepted |
Delegated to: | Kalle Valo |
Headers | show |
Series | mt76x0: use band parameter for LC calibration | expand |
Stanislaw Gruszka <sgruszka@redhat.com> writes: > We use always 1 as band parameter for MCU_CAL_LC, this break 2GHz, > we should use 0 for this band instead. > > Patch fixes problems happened sometimes when try to associate with 2GHz > AP and manifest by errors like below: > > [14680.920823] wlan0: authenticate with 18:31:bf:c0:51:b0 > [14681.109506] wlan0: send auth to 18:31:bf:c0:51:b0 (try 1/3) > [14681.310454] wlan0: send auth to 18:31:bf:c0:51:b0 (try 2/3) > [14681.518469] wlan0: send auth to 18:31:bf:c0:51:b0 (try 3/3) > [14681.726499] wlan0: authentication with 18:31:bf:c0:51:b0 timed out > > Fixes: 9aec146d0f6b ("mt76x0: pci: introduce mt76x0_phy_calirate routine") > Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com> > --- > This is for 4.20. This describes the symptoms better than the other 4.20 patch, thanks for that. And at least to me looks ok for 4.20.
> diff --git a/drivers/net/wireless/mediatek/mt76/mt76x0/phy.c b/drivers/net/wireless/mediatek/mt76/mt76x0/phy.c > index c734987a344c..ca24b5716b58 100644 > --- a/drivers/net/wireless/mediatek/mt76/mt76x0/phy.c > +++ b/drivers/net/wireless/mediatek/mt76/mt76x0/phy.c > @@ -522,6 +522,7 @@ void mt76x0_phy_set_txpower(struct mt76x02_dev *dev) > void mt76x0_phy_calibrate(struct mt76x02_dev *dev, bool power_on) > { > struct ieee80211_channel *chan = dev->mt76.chandef.chan; > + int is_5ghz = (chan->band == NL80211_BAND_5GHZ) ? 1 : 0; > u32 val, tx_alc, reg_val; > > if (is_mt7630(dev)) > @@ -542,7 +543,7 @@ void mt76x0_phy_calibrate(struct mt76x02_dev *dev, bool power_on) > reg_val = mt76_rr(dev, MT_BBP(IBI, 9)); > mt76_wr(dev, MT_BBP(IBI, 9), 0xffffff7e); > > - if (chan->band == NL80211_BAND_5GHZ) { > + if (is_5ghz) { > if (chan->hw_value < 100) > val = 0x701; > else if (chan->hw_value < 140) > @@ -555,7 +556,7 @@ void mt76x0_phy_calibrate(struct mt76x02_dev *dev, bool power_on) > > mt76x02_mcu_calibrate(dev, MCU_CAL_FULL, val, false); > msleep(350); > - mt76x02_mcu_calibrate(dev, MCU_CAL_LC, 1, false); > + mt76x02_mcu_calibrate(dev, MCU_CAL_LC, is_5ghz, false); > usleep_range(15000, 20000); > > mt76_wr(dev, MT_BBP(IBI, 9), reg_val); > -- > 2.7.5 > Tested-by: Lorenzo Bianconi <lorenzo.bianconi@redhat.com> Regards, Lorenzo
On Thu, Oct 25, 2018 at 06:18:33PM +0200, Stanislaw Gruszka wrote: > We use always 1 as band parameter for MCU_CAL_LC, this break 2GHz, > we should use 0 for this band instead. > > Patch fixes problems happened sometimes when try to associate with 2GHz > AP and manifest by errors like below: > > [14680.920823] wlan0: authenticate with 18:31:bf:c0:51:b0 > [14681.109506] wlan0: send auth to 18:31:bf:c0:51:b0 (try 1/3) > [14681.310454] wlan0: send auth to 18:31:bf:c0:51:b0 (try 2/3) > [14681.518469] wlan0: send auth to 18:31:bf:c0:51:b0 (try 3/3) > [14681.726499] wlan0: authentication with 18:31:bf:c0:51:b0 timed out > > Fixes: 9aec146d0f6b ("mt76x0: pci: introduce mt76x0_phy_calirate routine") > Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com> > --- > This is for 4.20. Actually it is not needed for 4.20, bacause the new calibrate code is not use for USB in 4.20. It start to be used since: commit e868a944c55b1f42303ab2941dc1aaada9a3570c Author: Lorenzo Bianconi <lorenzo.bianconi@redhat.com> Date: Mon Oct 15 14:18:05 2018 +0200 mt76x0: phy: unify calibration between mt76x0u and mt76x0e Regards Stanislaw
Stanislaw Gruszka <sgruszka@redhat.com> writes: > On Thu, Oct 25, 2018 at 06:18:33PM +0200, Stanislaw Gruszka wrote: >> We use always 1 as band parameter for MCU_CAL_LC, this break 2GHz, >> we should use 0 for this band instead. >> >> Patch fixes problems happened sometimes when try to associate with 2GHz >> AP and manifest by errors like below: >> >> [14680.920823] wlan0: authenticate with 18:31:bf:c0:51:b0 >> [14681.109506] wlan0: send auth to 18:31:bf:c0:51:b0 (try 1/3) >> [14681.310454] wlan0: send auth to 18:31:bf:c0:51:b0 (try 2/3) >> [14681.518469] wlan0: send auth to 18:31:bf:c0:51:b0 (try 3/3) >> [14681.726499] wlan0: authentication with 18:31:bf:c0:51:b0 timed out >> >> Fixes: 9aec146d0f6b ("mt76x0: pci: introduce mt76x0_phy_calirate routine") >> Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com> >> --- >> This is for 4.20. > > Actually it is not needed for 4.20, bacause the new calibrate code is > not use for USB in 4.20. It start to be used since: > > commit e868a944c55b1f42303ab2941dc1aaada9a3570c > Author: Lorenzo Bianconi <lorenzo.bianconi@redhat.com> > Date: Mon Oct 15 14:18:05 2018 +0200 > > mt76x0: phy: unify calibration between mt76x0u and mt76x0e So what should happen to this patch? Will Felix take it?
On 2018-11-05 15:58, Kalle Valo wrote: > Stanislaw Gruszka <sgruszka@redhat.com> writes: > >> On Thu, Oct 25, 2018 at 06:18:33PM +0200, Stanislaw Gruszka wrote: >>> We use always 1 as band parameter for MCU_CAL_LC, this break 2GHz, >>> we should use 0 for this band instead. >>> >>> Patch fixes problems happened sometimes when try to associate with 2GHz >>> AP and manifest by errors like below: >>> >>> [14680.920823] wlan0: authenticate with 18:31:bf:c0:51:b0 >>> [14681.109506] wlan0: send auth to 18:31:bf:c0:51:b0 (try 1/3) >>> [14681.310454] wlan0: send auth to 18:31:bf:c0:51:b0 (try 2/3) >>> [14681.518469] wlan0: send auth to 18:31:bf:c0:51:b0 (try 3/3) >>> [14681.726499] wlan0: authentication with 18:31:bf:c0:51:b0 timed out >>> >>> Fixes: 9aec146d0f6b ("mt76x0: pci: introduce mt76x0_phy_calirate routine") >>> Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com> >>> --- >>> This is for 4.20. >> >> Actually it is not needed for 4.20, bacause the new calibrate code is >> not use for USB in 4.20. It start to be used since: >> >> commit e868a944c55b1f42303ab2941dc1aaada9a3570c >> Author: Lorenzo Bianconi <lorenzo.bianconi@redhat.com> >> Date: Mon Oct 15 14:18:05 2018 +0200 >> >> mt76x0: phy: unify calibration between mt76x0u and mt76x0e > > So what should happen to this patch? Will Felix take it? Yes, I will take it. - Felix
On 2018-10-25 18:18, Stanislaw Gruszka wrote: > We use always 1 as band parameter for MCU_CAL_LC, this break 2GHz, > we should use 0 for this band instead. > > Patch fixes problems happened sometimes when try to associate with 2GHz > AP and manifest by errors like below: > > [14680.920823] wlan0: authenticate with 18:31:bf:c0:51:b0 > [14681.109506] wlan0: send auth to 18:31:bf:c0:51:b0 (try 1/3) > [14681.310454] wlan0: send auth to 18:31:bf:c0:51:b0 (try 2/3) > [14681.518469] wlan0: send auth to 18:31:bf:c0:51:b0 (try 3/3) > [14681.726499] wlan0: authentication with 18:31:bf:c0:51:b0 timed out > > Fixes: 9aec146d0f6b ("mt76x0: pci: introduce mt76x0_phy_calirate routine") > Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com> Applied, thanks. - Felix
diff --git a/drivers/net/wireless/mediatek/mt76/mt76x0/phy.c b/drivers/net/wireless/mediatek/mt76/mt76x0/phy.c index c734987a344c..ca24b5716b58 100644 --- a/drivers/net/wireless/mediatek/mt76/mt76x0/phy.c +++ b/drivers/net/wireless/mediatek/mt76/mt76x0/phy.c @@ -522,6 +522,7 @@ void mt76x0_phy_set_txpower(struct mt76x02_dev *dev) void mt76x0_phy_calibrate(struct mt76x02_dev *dev, bool power_on) { struct ieee80211_channel *chan = dev->mt76.chandef.chan; + int is_5ghz = (chan->band == NL80211_BAND_5GHZ) ? 1 : 0; u32 val, tx_alc, reg_val; if (is_mt7630(dev)) @@ -542,7 +543,7 @@ void mt76x0_phy_calibrate(struct mt76x02_dev *dev, bool power_on) reg_val = mt76_rr(dev, MT_BBP(IBI, 9)); mt76_wr(dev, MT_BBP(IBI, 9), 0xffffff7e); - if (chan->band == NL80211_BAND_5GHZ) { + if (is_5ghz) { if (chan->hw_value < 100) val = 0x701; else if (chan->hw_value < 140) @@ -555,7 +556,7 @@ void mt76x0_phy_calibrate(struct mt76x02_dev *dev, bool power_on) mt76x02_mcu_calibrate(dev, MCU_CAL_FULL, val, false); msleep(350); - mt76x02_mcu_calibrate(dev, MCU_CAL_LC, 1, false); + mt76x02_mcu_calibrate(dev, MCU_CAL_LC, is_5ghz, false); usleep_range(15000, 20000); mt76_wr(dev, MT_BBP(IBI, 9), reg_val);
We use always 1 as band parameter for MCU_CAL_LC, this break 2GHz, we should use 0 for this band instead. Patch fixes problems happened sometimes when try to associate with 2GHz AP and manifest by errors like below: [14680.920823] wlan0: authenticate with 18:31:bf:c0:51:b0 [14681.109506] wlan0: send auth to 18:31:bf:c0:51:b0 (try 1/3) [14681.310454] wlan0: send auth to 18:31:bf:c0:51:b0 (try 2/3) [14681.518469] wlan0: send auth to 18:31:bf:c0:51:b0 (try 3/3) [14681.726499] wlan0: authentication with 18:31:bf:c0:51:b0 timed out Fixes: 9aec146d0f6b ("mt76x0: pci: introduce mt76x0_phy_calirate routine") Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com> --- This is for 4.20. drivers/net/wireless/mediatek/mt76/mt76x0/phy.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)