Message ID | 1363603503-2378-1-git-send-email-dh.herrmann@gmail.com |
---|---|
State | Not Applicable, archived |
Delegated to: | David Miller |
Headers | show |
On 03/18/13 11:45, David Herrmann wrote: > This reverts commit b6fc28a158076ca2764edc9a6d1e1402f56e1c0c. It breaks > wireless AP reconnection on: (14e4:4727) > Broadcom Corporation BCM4313 802.11b/g/n Wireless LAN Controller > > Any attempt to reconnect to an AP results in timeouts no matter how near to the > AP I am: > 00:10:40 $nb kernel: wlan0: authenticate with 00:18:39:0a:8e:23 > 00:10:40 $nb kernel: wlan0: direct probe to 00:18:39:0a:8e:23 (try 1/3) > 00:10:40 $nb kernel: wlan0: direct probe to 00:18:39:0a:8e:23 (try 2/3) > 00:10:41 $nb kernel: wlan0: direct probe to 00:18:39:0a:8e:23 (try 3/3) > 00:10:41 $nb kernel: wlan0: authentication with 00:18:39:0a:8e:23 timed out > --- > Hi > > I tried coming up with a fix instead of reverting this commit, but the commit is > way to big for me to understand what's going on. Sorry. > > With linux-3.8 connecting to an AP broke on my machine. I could connect to an AP > one time, but any further attempt resulted in: > 00:10:40 $nb kernel: wlan0: authenticate with 00:18:39:0a:8e:23 > 00:10:40 $nb kernel: wlan0: direct probe to 00:18:39:0a:8e:23 (try 1/3) > 00:10:40 $nb kernel: wlan0: direct probe to 00:18:39:0a:8e:23 (try 2/3) > 00:10:41 $nb kernel: wlan0: direct probe to 00:18:39:0a:8e:23 (try 3/3) > 00:10:41 $nb kernel: wlan0: authentication with 00:18:39:0a:8e:23 timed out > > Even sitting right next to the AP didn't help so I started bisecting and it > turned out to be: > "brcmsmac: support 4313iPA" b6fc28a158076ca2764edc9a6d1e1402f56e1c0c > Please revert it. > > Thanks > David > Hi, unfortunately this is not a first report of this patch breaking 4313 for some users. I'm pretty confident that it is hardware revision related as we have 4313ePA and iPA boards running successfully in our test setup. Could you aid us in effort of finding the problem by supplying the contents of this debugfs file: <debugfs_mount>/brcmsmac/bcma0:0/hardware Piotr -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Hi Piotr On Mon, Mar 18, 2013 at 2:49 PM, Piotr Haber <phaber@broadcom.com> wrote: > On 03/18/13 11:45, David Herrmann wrote: >> This reverts commit b6fc28a158076ca2764edc9a6d1e1402f56e1c0c. It breaks >> wireless AP reconnection on: (14e4:4727) >> Broadcom Corporation BCM4313 802.11b/g/n Wireless LAN Controller >> >> Any attempt to reconnect to an AP results in timeouts no matter how near to the >> AP I am: >> 00:10:40 $nb kernel: wlan0: authenticate with 00:18:39:0a:8e:23 >> 00:10:40 $nb kernel: wlan0: direct probe to 00:18:39:0a:8e:23 (try 1/3) >> 00:10:40 $nb kernel: wlan0: direct probe to 00:18:39:0a:8e:23 (try 2/3) >> 00:10:41 $nb kernel: wlan0: direct probe to 00:18:39:0a:8e:23 (try 3/3) >> 00:10:41 $nb kernel: wlan0: authentication with 00:18:39:0a:8e:23 timed out >> --- >> Hi >> >> I tried coming up with a fix instead of reverting this commit, but the commit is >> way to big for me to understand what's going on. Sorry. >> >> With linux-3.8 connecting to an AP broke on my machine. I could connect to an AP >> one time, but any further attempt resulted in: >> 00:10:40 $nb kernel: wlan0: authenticate with 00:18:39:0a:8e:23 >> 00:10:40 $nb kernel: wlan0: direct probe to 00:18:39:0a:8e:23 (try 1/3) >> 00:10:40 $nb kernel: wlan0: direct probe to 00:18:39:0a:8e:23 (try 2/3) >> 00:10:41 $nb kernel: wlan0: direct probe to 00:18:39:0a:8e:23 (try 3/3) >> 00:10:41 $nb kernel: wlan0: authentication with 00:18:39:0a:8e:23 timed out >> >> Even sitting right next to the AP didn't help so I started bisecting and it >> turned out to be: >> "brcmsmac: support 4313iPA" b6fc28a158076ca2764edc9a6d1e1402f56e1c0c >> Please revert it. >> >> Thanks >> David >> > Hi, > unfortunately this is not a first report of this patch breaking 4313 for some users. > I'm pretty confident that it is hardware revision related as we have 4313ePA and iPA boards running > successfully in our test setup. > Could you aid us in effort of finding the problem by supplying the contents of this debugfs file: > <debugfs_mount>/brcmsmac/bcma0:0/hardware Hi $ cat /sys/kernel/debug/brcmsmac/bcma0\:0/hardware board vendor: 185f board type: 51a board revision: 1408 board flags: 8402a01 board flags2: 880 firmware revision: 262032b I can also try partial reverts of that commit, but I really don't know which parts might be important. Thanks David -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Mon, Mar 18, 2013 at 02:58:08PM +0100, David Herrmann wrote: > Hi Piotr > > On Mon, Mar 18, 2013 at 2:49 PM, Piotr Haber <phaber@broadcom.com> wrote: > > On 03/18/13 11:45, David Herrmann wrote: > >> This reverts commit b6fc28a158076ca2764edc9a6d1e1402f56e1c0c. It breaks > >> wireless AP reconnection on: (14e4:4727) > >> Broadcom Corporation BCM4313 802.11b/g/n Wireless LAN Controller > >> > >> Any attempt to reconnect to an AP results in timeouts no matter how near to the > >> AP I am: > >> 00:10:40 $nb kernel: wlan0: authenticate with 00:18:39:0a:8e:23 > >> 00:10:40 $nb kernel: wlan0: direct probe to 00:18:39:0a:8e:23 (try 1/3) > >> 00:10:40 $nb kernel: wlan0: direct probe to 00:18:39:0a:8e:23 (try 2/3) > >> 00:10:41 $nb kernel: wlan0: direct probe to 00:18:39:0a:8e:23 (try 3/3) > >> 00:10:41 $nb kernel: wlan0: authentication with 00:18:39:0a:8e:23 timed out > >> --- > >> Hi > >> > >> I tried coming up with a fix instead of reverting this commit, but the commit is > >> way to big for me to understand what's going on. Sorry. > >> > >> With linux-3.8 connecting to an AP broke on my machine. I could connect to an AP > >> one time, but any further attempt resulted in: > >> 00:10:40 $nb kernel: wlan0: authenticate with 00:18:39:0a:8e:23 > >> 00:10:40 $nb kernel: wlan0: direct probe to 00:18:39:0a:8e:23 (try 1/3) > >> 00:10:40 $nb kernel: wlan0: direct probe to 00:18:39:0a:8e:23 (try 2/3) > >> 00:10:41 $nb kernel: wlan0: direct probe to 00:18:39:0a:8e:23 (try 3/3) > >> 00:10:41 $nb kernel: wlan0: authentication with 00:18:39:0a:8e:23 timed out > >> > >> Even sitting right next to the AP didn't help so I started bisecting and it > >> turned out to be: > >> "brcmsmac: support 4313iPA" b6fc28a158076ca2764edc9a6d1e1402f56e1c0c > >> Please revert it. > >> > >> Thanks > >> David > >> > > Hi, > > unfortunately this is not a first report of this patch breaking 4313 for some users. > > I'm pretty confident that it is hardware revision related as we have 4313ePA and iPA boards running > > successfully in our test setup. > > Could you aid us in effort of finding the problem by supplying the contents of this debugfs file: > > <debugfs_mount>/brcmsmac/bcma0:0/hardware > > Hi > > $ cat /sys/kernel/debug/brcmsmac/bcma0\:0/hardware > board vendor: 185f > board type: 51a > board revision: 1408 > board flags: 8402a01 > board flags2: 880 > firmware revision: 262032b > > I can also try partial reverts of that commit, but I really don't know > which parts might be important. Are we going to see a fix for this (very) soon? Or should I just go ahead and revert this patch?
On 03/25/13 19:58, John W. Linville wrote: > On Mon, Mar 18, 2013 at 02:58:08PM +0100, David Herrmann wrote: >> Hi Piotr >> >> On Mon, Mar 18, 2013 at 2:49 PM, Piotr Haber <phaber@broadcom.com> wrote: >>> On 03/18/13 11:45, David Herrmann wrote: >>>> This reverts commit b6fc28a158076ca2764edc9a6d1e1402f56e1c0c. It breaks >>>> wireless AP reconnection on: (14e4:4727) >>>> Broadcom Corporation BCM4313 802.11b/g/n Wireless LAN Controller >>>> >>>> Any attempt to reconnect to an AP results in timeouts no matter how near to the >>>> AP I am: >>>> 00:10:40 $nb kernel: wlan0: authenticate with 00:18:39:0a:8e:23 >>>> 00:10:40 $nb kernel: wlan0: direct probe to 00:18:39:0a:8e:23 (try 1/3) >>>> 00:10:40 $nb kernel: wlan0: direct probe to 00:18:39:0a:8e:23 (try 2/3) >>>> 00:10:41 $nb kernel: wlan0: direct probe to 00:18:39:0a:8e:23 (try 3/3) >>>> 00:10:41 $nb kernel: wlan0: authentication with 00:18:39:0a:8e:23 timed out >>>> --- >>>> Hi >>>> >>>> I tried coming up with a fix instead of reverting this commit, but the commit is >>>> way to big for me to understand what's going on. Sorry. >>>> >>>> With linux-3.8 connecting to an AP broke on my machine. I could connect to an AP >>>> one time, but any further attempt resulted in: >>>> 00:10:40 $nb kernel: wlan0: authenticate with 00:18:39:0a:8e:23 >>>> 00:10:40 $nb kernel: wlan0: direct probe to 00:18:39:0a:8e:23 (try 1/3) >>>> 00:10:40 $nb kernel: wlan0: direct probe to 00:18:39:0a:8e:23 (try 2/3) >>>> 00:10:41 $nb kernel: wlan0: direct probe to 00:18:39:0a:8e:23 (try 3/3) >>>> 00:10:41 $nb kernel: wlan0: authentication with 00:18:39:0a:8e:23 timed out >>>> >>>> Even sitting right next to the AP didn't help so I started bisecting and it >>>> turned out to be: >>>> "brcmsmac: support 4313iPA" b6fc28a158076ca2764edc9a6d1e1402f56e1c0c >>>> Please revert it. >>>> >>>> Thanks >>>> David >>>> >>> Hi, >>> unfortunately this is not a first report of this patch breaking 4313 for some users. >>> I'm pretty confident that it is hardware revision related as we have 4313ePA and iPA boards running >>> successfully in our test setup. >>> Could you aid us in effort of finding the problem by supplying the contents of this debugfs file: >>> <debugfs_mount>/brcmsmac/bcma0:0/hardware >> >> Hi >> >> $ cat /sys/kernel/debug/brcmsmac/bcma0\:0/hardware >> board vendor: 185f >> board type: 51a >> board revision: 1408 >> board flags: 8402a01 >> board flags2: 880 >> firmware revision: 262032b >> >> I can also try partial reverts of that commit, but I really don't know >> which parts might be important. > > Are we going to see a fix for this (very) soon? Or should I just go > ahead and revert this patch? > I cannot reproduce the issue on a set of devices we have here (3 different 4313 ePA models). Some of the devices that are reported to be broken are being shipped to us. So I would say we need around 2 weeks at least to resolve this (if we reproduce the problem and find a fix). Not sure this is soon enough. If not please go ahead an revert the patch. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Tue, Mar 26, 2013 at 10:31:00AM +0100, Piotr Haber wrote: > On 03/25/13 19:58, John W. Linville wrote: > > On Mon, Mar 18, 2013 at 02:58:08PM +0100, David Herrmann wrote: > >> Hi Piotr > >> > >> On Mon, Mar 18, 2013 at 2:49 PM, Piotr Haber <phaber@broadcom.com> wrote: > >>> On 03/18/13 11:45, David Herrmann wrote: > >>>> This reverts commit b6fc28a158076ca2764edc9a6d1e1402f56e1c0c. It breaks > >>>> wireless AP reconnection on: (14e4:4727) > >>>> Broadcom Corporation BCM4313 802.11b/g/n Wireless LAN Controller > >>>> > >>>> Any attempt to reconnect to an AP results in timeouts no matter how near to the > >>>> AP I am: > >>>> 00:10:40 $nb kernel: wlan0: authenticate with 00:18:39:0a:8e:23 > >>>> 00:10:40 $nb kernel: wlan0: direct probe to 00:18:39:0a:8e:23 (try 1/3) > >>>> 00:10:40 $nb kernel: wlan0: direct probe to 00:18:39:0a:8e:23 (try 2/3) > >>>> 00:10:41 $nb kernel: wlan0: direct probe to 00:18:39:0a:8e:23 (try 3/3) > >>>> 00:10:41 $nb kernel: wlan0: authentication with 00:18:39:0a:8e:23 timed out > >>>> --- > >>>> Hi > >>>> > >>>> I tried coming up with a fix instead of reverting this commit, but the commit is > >>>> way to big for me to understand what's going on. Sorry. > >>>> > >>>> With linux-3.8 connecting to an AP broke on my machine. I could connect to an AP > >>>> one time, but any further attempt resulted in: > >>>> 00:10:40 $nb kernel: wlan0: authenticate with 00:18:39:0a:8e:23 > >>>> 00:10:40 $nb kernel: wlan0: direct probe to 00:18:39:0a:8e:23 (try 1/3) > >>>> 00:10:40 $nb kernel: wlan0: direct probe to 00:18:39:0a:8e:23 (try 2/3) > >>>> 00:10:41 $nb kernel: wlan0: direct probe to 00:18:39:0a:8e:23 (try 3/3) > >>>> 00:10:41 $nb kernel: wlan0: authentication with 00:18:39:0a:8e:23 timed out > >>>> > >>>> Even sitting right next to the AP didn't help so I started bisecting and it > >>>> turned out to be: > >>>> "brcmsmac: support 4313iPA" b6fc28a158076ca2764edc9a6d1e1402f56e1c0c > >>>> Please revert it. > >>>> > >>>> Thanks > >>>> David > >>>> > >>> Hi, > >>> unfortunately this is not a first report of this patch breaking 4313 for some users. > >>> I'm pretty confident that it is hardware revision related as we have 4313ePA and iPA boards running > >>> successfully in our test setup. > >>> Could you aid us in effort of finding the problem by supplying the contents of this debugfs file: > >>> <debugfs_mount>/brcmsmac/bcma0:0/hardware > >> > >> Hi > >> > >> $ cat /sys/kernel/debug/brcmsmac/bcma0\:0/hardware > >> board vendor: 185f > >> board type: 51a > >> board revision: 1408 > >> board flags: 8402a01 > >> board flags2: 880 > >> firmware revision: 262032b > >> > >> I can also try partial reverts of that commit, but I really don't know > >> which parts might be important. > > > > Are we going to see a fix for this (very) soon? Or should I just go > > ahead and revert this patch? > > > I cannot reproduce the issue on a set of devices we have here (3 different 4313 ePA models). > Some of the devices that are reported to be broken are being shipped to us. > So I would say we need around 2 weeks at least to resolve this (if we reproduce the problem and find > a fix). > Not sure this is soon enough. > If not please go ahead an revert the patch. I am reverting the patch.
Hi John On Wed, Mar 27, 2013 at 3:56 PM, John W. Linville <linville@tuxdriver.com> wrote: > On Tue, Mar 26, 2013 at 10:31:00AM +0100, Piotr Haber wrote: >> On 03/25/13 19:58, John W. Linville wrote: >> > On Mon, Mar 18, 2013 at 02:58:08PM +0100, David Herrmann wrote: >> >> Hi Piotr >> >> >> >> On Mon, Mar 18, 2013 at 2:49 PM, Piotr Haber <phaber@broadcom.com> wrote: >> >>> On 03/18/13 11:45, David Herrmann wrote: >> >>>> This reverts commit b6fc28a158076ca2764edc9a6d1e1402f56e1c0c. It breaks >> >>>> wireless AP reconnection on: (14e4:4727) >> >>>> Broadcom Corporation BCM4313 802.11b/g/n Wireless LAN Controller >> >>>> >> >>>> Any attempt to reconnect to an AP results in timeouts no matter how near to the >> >>>> AP I am: >> >>>> 00:10:40 $nb kernel: wlan0: authenticate with 00:18:39:0a:8e:23 >> >>>> 00:10:40 $nb kernel: wlan0: direct probe to 00:18:39:0a:8e:23 (try 1/3) >> >>>> 00:10:40 $nb kernel: wlan0: direct probe to 00:18:39:0a:8e:23 (try 2/3) >> >>>> 00:10:41 $nb kernel: wlan0: direct probe to 00:18:39:0a:8e:23 (try 3/3) >> >>>> 00:10:41 $nb kernel: wlan0: authentication with 00:18:39:0a:8e:23 timed out >> >>>> --- >> >>>> Hi >> >>>> >> >>>> I tried coming up with a fix instead of reverting this commit, but the commit is >> >>>> way to big for me to understand what's going on. Sorry. >> >>>> >> >>>> With linux-3.8 connecting to an AP broke on my machine. I could connect to an AP >> >>>> one time, but any further attempt resulted in: >> >>>> 00:10:40 $nb kernel: wlan0: authenticate with 00:18:39:0a:8e:23 >> >>>> 00:10:40 $nb kernel: wlan0: direct probe to 00:18:39:0a:8e:23 (try 1/3) >> >>>> 00:10:40 $nb kernel: wlan0: direct probe to 00:18:39:0a:8e:23 (try 2/3) >> >>>> 00:10:41 $nb kernel: wlan0: direct probe to 00:18:39:0a:8e:23 (try 3/3) >> >>>> 00:10:41 $nb kernel: wlan0: authentication with 00:18:39:0a:8e:23 timed out >> >>>> >> >>>> Even sitting right next to the AP didn't help so I started bisecting and it >> >>>> turned out to be: >> >>>> "brcmsmac: support 4313iPA" b6fc28a158076ca2764edc9a6d1e1402f56e1c0c >> >>>> Please revert it. >> >>>> >> >>>> Thanks >> >>>> David >> >>>> >> >>> Hi, >> >>> unfortunately this is not a first report of this patch breaking 4313 for some users. >> >>> I'm pretty confident that it is hardware revision related as we have 4313ePA and iPA boards running >> >>> successfully in our test setup. >> >>> Could you aid us in effort of finding the problem by supplying the contents of this debugfs file: >> >>> <debugfs_mount>/brcmsmac/bcma0:0/hardware >> >> >> >> Hi >> >> >> >> $ cat /sys/kernel/debug/brcmsmac/bcma0\:0/hardware >> >> board vendor: 185f >> >> board type: 51a >> >> board revision: 1408 >> >> board flags: 8402a01 >> >> board flags2: 880 >> >> firmware revision: 262032b >> >> >> >> I can also try partial reverts of that commit, but I really don't know >> >> which parts might be important. >> > >> > Are we going to see a fix for this (very) soon? Or should I just go >> > ahead and revert this patch? >> > >> I cannot reproduce the issue on a set of devices we have here (3 different 4313 ePA models). >> Some of the devices that are reported to be broken are being shipped to us. >> So I would say we need around 2 weeks at least to resolve this (if we reproduce the problem and find >> a fix). >> Not sure this is soon enough. >> If not please go ahead an revert the patch. > > I am reverting the patch. Can you CC stable? Otherwise I will try to sent it to them after you applied it. Thanks David -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Wed, Mar 27, 2013 at 04:32:28PM +0100, David Herrmann wrote: > Hi John > > On Wed, Mar 27, 2013 at 3:56 PM, John W. Linville > <linville@tuxdriver.com> wrote: > > On Tue, Mar 26, 2013 at 10:31:00AM +0100, Piotr Haber wrote: > >> On 03/25/13 19:58, John W. Linville wrote: > >> > On Mon, Mar 18, 2013 at 02:58:08PM +0100, David Herrmann wrote: > >> >> Hi Piotr > >> >> > >> >> On Mon, Mar 18, 2013 at 2:49 PM, Piotr Haber <phaber@broadcom.com> wrote: > >> >>> On 03/18/13 11:45, David Herrmann wrote: > >> >>>> This reverts commit b6fc28a158076ca2764edc9a6d1e1402f56e1c0c. It breaks > >> >>>> wireless AP reconnection on: (14e4:4727) > >> >>>> Broadcom Corporation BCM4313 802.11b/g/n Wireless LAN Controller > >> >>>> > >> >>>> Any attempt to reconnect to an AP results in timeouts no matter how near to the > >> >>>> AP I am: > >> >>>> 00:10:40 $nb kernel: wlan0: authenticate with 00:18:39:0a:8e:23 > >> >>>> 00:10:40 $nb kernel: wlan0: direct probe to 00:18:39:0a:8e:23 (try 1/3) > >> >>>> 00:10:40 $nb kernel: wlan0: direct probe to 00:18:39:0a:8e:23 (try 2/3) > >> >>>> 00:10:41 $nb kernel: wlan0: direct probe to 00:18:39:0a:8e:23 (try 3/3) > >> >>>> 00:10:41 $nb kernel: wlan0: authentication with 00:18:39:0a:8e:23 timed out > >> >>>> --- > >> >>>> Hi > >> >>>> > >> >>>> I tried coming up with a fix instead of reverting this commit, but the commit is > >> >>>> way to big for me to understand what's going on. Sorry. > >> >>>> > >> >>>> With linux-3.8 connecting to an AP broke on my machine. I could connect to an AP > >> >>>> one time, but any further attempt resulted in: > >> >>>> 00:10:40 $nb kernel: wlan0: authenticate with 00:18:39:0a:8e:23 > >> >>>> 00:10:40 $nb kernel: wlan0: direct probe to 00:18:39:0a:8e:23 (try 1/3) > >> >>>> 00:10:40 $nb kernel: wlan0: direct probe to 00:18:39:0a:8e:23 (try 2/3) > >> >>>> 00:10:41 $nb kernel: wlan0: direct probe to 00:18:39:0a:8e:23 (try 3/3) > >> >>>> 00:10:41 $nb kernel: wlan0: authentication with 00:18:39:0a:8e:23 timed out > >> >>>> > >> >>>> Even sitting right next to the AP didn't help so I started bisecting and it > >> >>>> turned out to be: > >> >>>> "brcmsmac: support 4313iPA" b6fc28a158076ca2764edc9a6d1e1402f56e1c0c > >> >>>> Please revert it. > >> >>>> > >> >>>> Thanks > >> >>>> David > >> >>>> > >> >>> Hi, > >> >>> unfortunately this is not a first report of this patch breaking 4313 for some users. > >> >>> I'm pretty confident that it is hardware revision related as we have 4313ePA and iPA boards running > >> >>> successfully in our test setup. > >> >>> Could you aid us in effort of finding the problem by supplying the contents of this debugfs file: > >> >>> <debugfs_mount>/brcmsmac/bcma0:0/hardware > >> >> > >> >> Hi > >> >> > >> >> $ cat /sys/kernel/debug/brcmsmac/bcma0\:0/hardware > >> >> board vendor: 185f > >> >> board type: 51a > >> >> board revision: 1408 > >> >> board flags: 8402a01 > >> >> board flags2: 880 > >> >> firmware revision: 262032b > >> >> > >> >> I can also try partial reverts of that commit, but I really don't know > >> >> which parts might be important. > >> > > >> > Are we going to see a fix for this (very) soon? Or should I just go > >> > ahead and revert this patch? > >> > > >> I cannot reproduce the issue on a set of devices we have here (3 different 4313 ePA models). > >> Some of the devices that are reported to be broken are being shipped to us. > >> So I would say we need around 2 weeks at least to resolve this (if we reproduce the problem and find > >> a fix). > >> Not sure this is soon enough. > >> If not please go ahead an revert the patch. > > > > I am reverting the patch. > > Can you CC stable? Otherwise I will try to sent it to them after you applied it. Sorry, I already pushed it out to kernel.org. I would prefer not to modify my repository now.
diff --git a/drivers/net/wireless/brcm80211/brcmsmac/phy/phy_lcn.c b/drivers/net/wireless/brcm80211/brcmsmac/phy/phy_lcn.c index 21a8242..18d3764 100644 --- a/drivers/net/wireless/brcm80211/brcmsmac/phy/phy_lcn.c +++ b/drivers/net/wireless/brcm80211/brcmsmac/phy/phy_lcn.c @@ -1137,9 +1137,8 @@ wlc_lcnphy_set_rx_gain_by_distribution(struct brcms_phy *pi, gain0_15 = ((biq1 & 0xf) << 12) | ((tia & 0xf) << 8) | ((lna2 & 0x3) << 6) | - ((lna2 & 0x3) << 4) | - ((lna1 & 0x3) << 2) | - ((lna1 & 0x3) << 0); + ((lna2 & + 0x3) << 4) | ((lna1 & 0x3) << 2) | ((lna1 & 0x3) << 0); mod_phy_reg(pi, 0x4b6, (0xffff << 0), gain0_15 << 0); mod_phy_reg(pi, 0x4b7, (0xf << 0), gain16_19 << 0); @@ -1157,8 +1156,6 @@ wlc_lcnphy_set_rx_gain_by_distribution(struct brcms_phy *pi, } mod_phy_reg(pi, 0x44d, (0x1 << 0), (!trsw) << 0); - mod_phy_reg(pi, 0x4b1, (0x3 << 11), lna1 << 11); - mod_phy_reg(pi, 0x4e6, (0x3 << 3), lna1 << 3); } @@ -1331,43 +1328,6 @@ static u32 wlc_lcnphy_measure_digital_power(struct brcms_phy *pi, u16 nsamples) return (iq_est.i_pwr + iq_est.q_pwr) / nsamples; } -static bool wlc_lcnphy_rx_iq_cal_gain(struct brcms_phy *pi, u16 biq1_gain, - u16 tia_gain, u16 lna2_gain) -{ - u32 i_thresh_l, q_thresh_l; - u32 i_thresh_h, q_thresh_h; - struct lcnphy_iq_est iq_est_h, iq_est_l; - - wlc_lcnphy_set_rx_gain_by_distribution(pi, 0, 0, 0, biq1_gain, tia_gain, - lna2_gain, 0); - - wlc_lcnphy_rx_gain_override_enable(pi, true); - wlc_lcnphy_start_tx_tone(pi, 2000, (40 >> 1), 0); - udelay(500); - write_radio_reg(pi, RADIO_2064_REG112, 0); - if (!wlc_lcnphy_rx_iq_est(pi, 1024, 32, &iq_est_l)) - return false; - - wlc_lcnphy_start_tx_tone(pi, 2000, 40, 0); - udelay(500); - write_radio_reg(pi, RADIO_2064_REG112, 0); - if (!wlc_lcnphy_rx_iq_est(pi, 1024, 32, &iq_est_h)) - return false; - - i_thresh_l = (iq_est_l.i_pwr << 1); - i_thresh_h = (iq_est_l.i_pwr << 2) + iq_est_l.i_pwr; - - q_thresh_l = (iq_est_l.q_pwr << 1); - q_thresh_h = (iq_est_l.q_pwr << 2) + iq_est_l.q_pwr; - if ((iq_est_h.i_pwr > i_thresh_l) && - (iq_est_h.i_pwr < i_thresh_h) && - (iq_est_h.q_pwr > q_thresh_l) && - (iq_est_h.q_pwr < q_thresh_h)) - return true; - - return false; -} - static bool wlc_lcnphy_rx_iq_cal(struct brcms_phy *pi, const struct lcnphy_rx_iqcomp *iqcomp, @@ -1382,8 +1342,8 @@ wlc_lcnphy_rx_iq_cal(struct brcms_phy *pi, RFOverrideVal0_old, rfoverride2_old, rfoverride2val_old, rfoverride3_old, rfoverride3val_old, rfoverride4_old, rfoverride4val_old, afectrlovr_old, afectrlovrval_old; - int tia_gain, lna2_gain, biq1_gain; - bool set_gain; + int tia_gain; + u32 received_power, rx_pwr_threshold; u16 old_sslpnCalibClkEnCtrl, old_sslpnRxFeClkEnCtrl; u16 values_to_save[11]; s16 *ptr; @@ -1408,134 +1368,126 @@ wlc_lcnphy_rx_iq_cal(struct brcms_phy *pi, goto cal_done; } - WARN_ON(module != 1); - tx_pwr_ctrl = wlc_lcnphy_get_tx_pwr_ctrl(pi); - wlc_lcnphy_set_tx_pwr_ctrl(pi, LCNPHY_TX_PWR_CTRL_OFF); - - for (i = 0; i < 11; i++) - values_to_save[i] = - read_radio_reg(pi, rxiq_cal_rf_reg[i]); - Core1TxControl_old = read_phy_reg(pi, 0x631); - - or_phy_reg(pi, 0x631, 0x0015); - - RFOverride0_old = read_phy_reg(pi, 0x44c); - RFOverrideVal0_old = read_phy_reg(pi, 0x44d); - rfoverride2_old = read_phy_reg(pi, 0x4b0); - rfoverride2val_old = read_phy_reg(pi, 0x4b1); - rfoverride3_old = read_phy_reg(pi, 0x4f9); - rfoverride3val_old = read_phy_reg(pi, 0x4fa); - rfoverride4_old = read_phy_reg(pi, 0x938); - rfoverride4val_old = read_phy_reg(pi, 0x939); - afectrlovr_old = read_phy_reg(pi, 0x43b); - afectrlovrval_old = read_phy_reg(pi, 0x43c); - old_sslpnCalibClkEnCtrl = read_phy_reg(pi, 0x6da); - old_sslpnRxFeClkEnCtrl = read_phy_reg(pi, 0x6db); - - tx_gain_override_old = wlc_lcnphy_tx_gain_override_enabled(pi); - if (tx_gain_override_old) { - wlc_lcnphy_get_tx_gain(pi, &old_gains); - tx_gain_index_old = pi_lcn->lcnphy_current_index; - } - - wlc_lcnphy_set_tx_pwr_by_index(pi, tx_gain_idx); + if (module == 1) { - mod_phy_reg(pi, 0x4f9, (0x1 << 0), 1 << 0); - mod_phy_reg(pi, 0x4fa, (0x1 << 0), 0 << 0); + tx_pwr_ctrl = wlc_lcnphy_get_tx_pwr_ctrl(pi); + wlc_lcnphy_set_tx_pwr_ctrl(pi, LCNPHY_TX_PWR_CTRL_OFF); - mod_phy_reg(pi, 0x43b, (0x1 << 1), 1 << 1); - mod_phy_reg(pi, 0x43c, (0x1 << 1), 0 << 1); + for (i = 0; i < 11; i++) + values_to_save[i] = + read_radio_reg(pi, rxiq_cal_rf_reg[i]); + Core1TxControl_old = read_phy_reg(pi, 0x631); + + or_phy_reg(pi, 0x631, 0x0015); + + RFOverride0_old = read_phy_reg(pi, 0x44c); + RFOverrideVal0_old = read_phy_reg(pi, 0x44d); + rfoverride2_old = read_phy_reg(pi, 0x4b0); + rfoverride2val_old = read_phy_reg(pi, 0x4b1); + rfoverride3_old = read_phy_reg(pi, 0x4f9); + rfoverride3val_old = read_phy_reg(pi, 0x4fa); + rfoverride4_old = read_phy_reg(pi, 0x938); + rfoverride4val_old = read_phy_reg(pi, 0x939); + afectrlovr_old = read_phy_reg(pi, 0x43b); + afectrlovrval_old = read_phy_reg(pi, 0x43c); + old_sslpnCalibClkEnCtrl = read_phy_reg(pi, 0x6da); + old_sslpnRxFeClkEnCtrl = read_phy_reg(pi, 0x6db); + + tx_gain_override_old = wlc_lcnphy_tx_gain_override_enabled(pi); + if (tx_gain_override_old) { + wlc_lcnphy_get_tx_gain(pi, &old_gains); + tx_gain_index_old = pi_lcn->lcnphy_current_index; + } - write_radio_reg(pi, RADIO_2064_REG116, 0x06); - write_radio_reg(pi, RADIO_2064_REG12C, 0x07); - write_radio_reg(pi, RADIO_2064_REG06A, 0xd3); - write_radio_reg(pi, RADIO_2064_REG098, 0x03); - write_radio_reg(pi, RADIO_2064_REG00B, 0x7); - mod_radio_reg(pi, RADIO_2064_REG113, 1 << 4, 1 << 4); - write_radio_reg(pi, RADIO_2064_REG01D, 0x01); - write_radio_reg(pi, RADIO_2064_REG114, 0x01); - write_radio_reg(pi, RADIO_2064_REG02E, 0x10); - write_radio_reg(pi, RADIO_2064_REG12A, 0x08); - - mod_phy_reg(pi, 0x938, (0x1 << 0), 1 << 0); - mod_phy_reg(pi, 0x939, (0x1 << 0), 0 << 0); - mod_phy_reg(pi, 0x938, (0x1 << 1), 1 << 1); - mod_phy_reg(pi, 0x939, (0x1 << 1), 1 << 1); - mod_phy_reg(pi, 0x938, (0x1 << 2), 1 << 2); - mod_phy_reg(pi, 0x939, (0x1 << 2), 1 << 2); - mod_phy_reg(pi, 0x938, (0x1 << 3), 1 << 3); - mod_phy_reg(pi, 0x939, (0x1 << 3), 1 << 3); - mod_phy_reg(pi, 0x938, (0x1 << 5), 1 << 5); - mod_phy_reg(pi, 0x939, (0x1 << 5), 0 << 5); + wlc_lcnphy_set_tx_pwr_by_index(pi, tx_gain_idx); - mod_phy_reg(pi, 0x43b, (0x1 << 0), 1 << 0); - mod_phy_reg(pi, 0x43c, (0x1 << 0), 0 << 0); + mod_phy_reg(pi, 0x4f9, (0x1 << 0), 1 << 0); + mod_phy_reg(pi, 0x4fa, (0x1 << 0), 0 << 0); - write_phy_reg(pi, 0x6da, 0xffff); - or_phy_reg(pi, 0x6db, 0x3); + mod_phy_reg(pi, 0x43b, (0x1 << 1), 1 << 1); + mod_phy_reg(pi, 0x43c, (0x1 << 1), 0 << 1); - wlc_lcnphy_set_trsw_override(pi, tx_switch, rx_switch); - set_gain = false; - - lna2_gain = 3; - while ((lna2_gain >= 0) && !set_gain) { - tia_gain = 4; - - while ((tia_gain >= 0) && !set_gain) { - biq1_gain = 6; - - while ((biq1_gain >= 0) && !set_gain) { - set_gain = wlc_lcnphy_rx_iq_cal_gain(pi, - (u16) - biq1_gain, - (u16) - tia_gain, - (u16) - lna2_gain); - biq1_gain -= 1; - } + write_radio_reg(pi, RADIO_2064_REG116, 0x06); + write_radio_reg(pi, RADIO_2064_REG12C, 0x07); + write_radio_reg(pi, RADIO_2064_REG06A, 0xd3); + write_radio_reg(pi, RADIO_2064_REG098, 0x03); + write_radio_reg(pi, RADIO_2064_REG00B, 0x7); + mod_radio_reg(pi, RADIO_2064_REG113, 1 << 4, 1 << 4); + write_radio_reg(pi, RADIO_2064_REG01D, 0x01); + write_radio_reg(pi, RADIO_2064_REG114, 0x01); + write_radio_reg(pi, RADIO_2064_REG02E, 0x10); + write_radio_reg(pi, RADIO_2064_REG12A, 0x08); + + mod_phy_reg(pi, 0x938, (0x1 << 0), 1 << 0); + mod_phy_reg(pi, 0x939, (0x1 << 0), 0 << 0); + mod_phy_reg(pi, 0x938, (0x1 << 1), 1 << 1); + mod_phy_reg(pi, 0x939, (0x1 << 1), 1 << 1); + mod_phy_reg(pi, 0x938, (0x1 << 2), 1 << 2); + mod_phy_reg(pi, 0x939, (0x1 << 2), 1 << 2); + mod_phy_reg(pi, 0x938, (0x1 << 3), 1 << 3); + mod_phy_reg(pi, 0x939, (0x1 << 3), 1 << 3); + mod_phy_reg(pi, 0x938, (0x1 << 5), 1 << 5); + mod_phy_reg(pi, 0x939, (0x1 << 5), 0 << 5); + + mod_phy_reg(pi, 0x43b, (0x1 << 0), 1 << 0); + mod_phy_reg(pi, 0x43c, (0x1 << 0), 0 << 0); + + wlc_lcnphy_start_tx_tone(pi, 2000, 120, 0); + write_phy_reg(pi, 0x6da, 0xffff); + or_phy_reg(pi, 0x6db, 0x3); + wlc_lcnphy_set_trsw_override(pi, tx_switch, rx_switch); + wlc_lcnphy_rx_gain_override_enable(pi, true); + + tia_gain = 8; + rx_pwr_threshold = 950; + while (tia_gain > 0) { tia_gain -= 1; + wlc_lcnphy_set_rx_gain_by_distribution(pi, + 0, 0, 2, 2, + (u16) + tia_gain, 1, 0); + udelay(500); + + received_power = + wlc_lcnphy_measure_digital_power(pi, 2000); + if (received_power < rx_pwr_threshold) + break; } - lna2_gain -= 1; - } + result = wlc_lcnphy_calc_rx_iq_comp(pi, 0xffff); - if (set_gain) - result = wlc_lcnphy_calc_rx_iq_comp(pi, 1024); - else - result = false; + wlc_lcnphy_stop_tx_tone(pi); - wlc_lcnphy_stop_tx_tone(pi); + write_phy_reg(pi, 0x631, Core1TxControl_old); - write_phy_reg(pi, 0x631, Core1TxControl_old); - - write_phy_reg(pi, 0x44c, RFOverrideVal0_old); - write_phy_reg(pi, 0x44d, RFOverrideVal0_old); - write_phy_reg(pi, 0x4b0, rfoverride2_old); - write_phy_reg(pi, 0x4b1, rfoverride2val_old); - write_phy_reg(pi, 0x4f9, rfoverride3_old); - write_phy_reg(pi, 0x4fa, rfoverride3val_old); - write_phy_reg(pi, 0x938, rfoverride4_old); - write_phy_reg(pi, 0x939, rfoverride4val_old); - write_phy_reg(pi, 0x43b, afectrlovr_old); - write_phy_reg(pi, 0x43c, afectrlovrval_old); - write_phy_reg(pi, 0x6da, old_sslpnCalibClkEnCtrl); - write_phy_reg(pi, 0x6db, old_sslpnRxFeClkEnCtrl); + write_phy_reg(pi, 0x44c, RFOverrideVal0_old); + write_phy_reg(pi, 0x44d, RFOverrideVal0_old); + write_phy_reg(pi, 0x4b0, rfoverride2_old); + write_phy_reg(pi, 0x4b1, rfoverride2val_old); + write_phy_reg(pi, 0x4f9, rfoverride3_old); + write_phy_reg(pi, 0x4fa, rfoverride3val_old); + write_phy_reg(pi, 0x938, rfoverride4_old); + write_phy_reg(pi, 0x939, rfoverride4val_old); + write_phy_reg(pi, 0x43b, afectrlovr_old); + write_phy_reg(pi, 0x43c, afectrlovrval_old); + write_phy_reg(pi, 0x6da, old_sslpnCalibClkEnCtrl); + write_phy_reg(pi, 0x6db, old_sslpnRxFeClkEnCtrl); - wlc_lcnphy_clear_trsw_override(pi); + wlc_lcnphy_clear_trsw_override(pi); - mod_phy_reg(pi, 0x44c, (0x1 << 2), 0 << 2); + mod_phy_reg(pi, 0x44c, (0x1 << 2), 0 << 2); - for (i = 0; i < 11; i++) - write_radio_reg(pi, rxiq_cal_rf_reg[i], - values_to_save[i]); + for (i = 0; i < 11; i++) + write_radio_reg(pi, rxiq_cal_rf_reg[i], + values_to_save[i]); - if (tx_gain_override_old) - wlc_lcnphy_set_tx_pwr_by_index(pi, tx_gain_index_old); - else - wlc_lcnphy_disable_tx_gain_override(pi); + if (tx_gain_override_old) + wlc_lcnphy_set_tx_pwr_by_index(pi, tx_gain_index_old); + else + wlc_lcnphy_disable_tx_gain_override(pi); - wlc_lcnphy_set_tx_pwr_ctrl(pi, tx_pwr_ctrl); - wlc_lcnphy_rx_gain_override_enable(pi, false); + wlc_lcnphy_set_tx_pwr_ctrl(pi, tx_pwr_ctrl); + wlc_lcnphy_rx_gain_override_enable(pi, false); + } cal_done: kfree(ptr); @@ -1829,17 +1781,6 @@ wlc_lcnphy_radio_2064_channel_tune_4313(struct brcms_phy *pi, u8 channel) write_radio_reg(pi, RADIO_2064_REG038, 3); write_radio_reg(pi, RADIO_2064_REG091, 7); } - - if (!(pi->sh->boardflags & BFL_FEM)) { - u8 reg038[14] = {0xd, 0xe, 0xd, 0xd, 0xd, 0xc, - 0xa, 0xb, 0xb, 0x3, 0x3, 0x2, 0x0, 0x0}; - - write_radio_reg(pi, RADIO_2064_REG02A, 0xf); - write_radio_reg(pi, RADIO_2064_REG091, 0x3); - write_radio_reg(pi, RADIO_2064_REG038, 0x3); - - write_radio_reg(pi, RADIO_2064_REG038, reg038[channel - 1]); - } } static int @@ -2034,16 +1975,6 @@ wlc_lcnphy_set_tssi_mux(struct brcms_phy *pi, enum lcnphy_tssi_mode pos) } else { mod_radio_reg(pi, RADIO_2064_REG03A, 1, 0x1); mod_radio_reg(pi, RADIO_2064_REG11A, 0x8, 0x8); - mod_radio_reg(pi, RADIO_2064_REG028, 0x1, 0x0); - mod_radio_reg(pi, RADIO_2064_REG11A, 0x4, 1<<2); - mod_radio_reg(pi, RADIO_2064_REG036, 0x10, 0x0); - mod_radio_reg(pi, RADIO_2064_REG11A, 0x10, 1<<4); - mod_radio_reg(pi, RADIO_2064_REG036, 0x3, 0x0); - mod_radio_reg(pi, RADIO_2064_REG035, 0xff, 0x77); - mod_radio_reg(pi, RADIO_2064_REG028, 0x1e, 0xe<<1); - mod_radio_reg(pi, RADIO_2064_REG112, 0x80, 1<<7); - mod_radio_reg(pi, RADIO_2064_REG005, 0x7, 1<<1); - mod_radio_reg(pi, RADIO_2064_REG029, 0xf0, 0<<4); } } else { mod_phy_reg(pi, 0x4d9, (0x1 << 2), (0x1) << 2); @@ -2130,14 +2061,12 @@ static void wlc_lcnphy_pwrctrl_rssiparams(struct brcms_phy *pi) (auxpga_vmid_temp << 0) | (auxpga_gain_temp << 12)); mod_radio_reg(pi, RADIO_2064_REG082, (1 << 5), (1 << 5)); - mod_radio_reg(pi, RADIO_2064_REG07C, (1 << 0), (1 << 0)); } static void wlc_lcnphy_tssi_setup(struct brcms_phy *pi) { struct phytbl_info tab; u32 rfseq, ind; - u8 tssi_sel; tab.tbl_id = LCNPHY_TBL_ID_TXPWRCTL; tab.tbl_width = 32; @@ -2159,13 +2088,7 @@ static void wlc_lcnphy_tssi_setup(struct brcms_phy *pi) mod_phy_reg(pi, 0x503, (0x1 << 4), (1) << 4); - if (pi->sh->boardflags & BFL_FEM) { - tssi_sel = 0x1; - wlc_lcnphy_set_tssi_mux(pi, LCNPHY_TSSI_EXT); - } else { - tssi_sel = 0xe; - wlc_lcnphy_set_tssi_mux(pi, LCNPHY_TSSI_POST_PA); - } + wlc_lcnphy_set_tssi_mux(pi, LCNPHY_TSSI_EXT); mod_phy_reg(pi, 0x4a4, (0x1 << 14), (0) << 14); mod_phy_reg(pi, 0x4a4, (0x1 << 15), (1) << 15); @@ -2201,10 +2124,9 @@ static void wlc_lcnphy_tssi_setup(struct brcms_phy *pi) mod_phy_reg(pi, 0x49a, (0x1ff << 0), (0xff) << 0); if (LCNREV_IS(pi->pubpi.phy_rev, 2)) { - mod_radio_reg(pi, RADIO_2064_REG028, 0xf, tssi_sel); + mod_radio_reg(pi, RADIO_2064_REG028, 0xf, 0xe); mod_radio_reg(pi, RADIO_2064_REG086, 0x4, 0x4); } else { - mod_radio_reg(pi, RADIO_2064_REG028, 0x1e, tssi_sel << 1); mod_radio_reg(pi, RADIO_2064_REG03A, 0x1, 1); mod_radio_reg(pi, RADIO_2064_REG11A, 0x8, 1 << 3); } @@ -2251,10 +2173,6 @@ static void wlc_lcnphy_tssi_setup(struct brcms_phy *pi) mod_phy_reg(pi, 0x4d7, (0xf << 8), (0) << 8); - mod_radio_reg(pi, RADIO_2064_REG035, 0xff, 0x0); - mod_radio_reg(pi, RADIO_2064_REG036, 0x3, 0x0); - mod_radio_reg(pi, RADIO_2064_REG11A, 0x8, 0x8); - wlc_lcnphy_pwrctrl_rssiparams(pi); } @@ -2873,8 +2791,6 @@ static void wlc_lcnphy_idle_tssi_est(struct brcms_phy_pub *ppi) read_radio_reg(pi, RADIO_2064_REG007) & 1; u16 SAVE_jtag_auxpga = read_radio_reg(pi, RADIO_2064_REG0FF) & 0x10; u16 SAVE_iqadc_aux_en = read_radio_reg(pi, RADIO_2064_REG11F) & 4; - u8 SAVE_bbmult = wlc_lcnphy_get_bbmult(pi); - idleTssi = read_phy_reg(pi, 0x4ab); suspend = (0 == (bcma_read32(pi->d11core, D11REGOFFS(maccontrol)) & MCTL_EN_MAC)); @@ -2892,12 +2808,6 @@ static void wlc_lcnphy_idle_tssi_est(struct brcms_phy_pub *ppi) mod_radio_reg(pi, RADIO_2064_REG0FF, 0x10, 1 << 4); mod_radio_reg(pi, RADIO_2064_REG11F, 0x4, 1 << 2); wlc_lcnphy_tssi_setup(pi); - - mod_phy_reg(pi, 0x4d7, (0x1 << 0), (1 << 0)); - mod_phy_reg(pi, 0x4d7, (0x1 << 6), (1 << 6)); - - wlc_lcnphy_set_bbmult(pi, 0x0); - wlc_phy_do_dummy_tx(pi, true, OFF); idleTssi = ((read_phy_reg(pi, 0x4ab) & (0x1ff << 0)) >> 0); @@ -2919,7 +2829,6 @@ static void wlc_lcnphy_idle_tssi_est(struct brcms_phy_pub *ppi) mod_phy_reg(pi, 0x44c, (0x1 << 12), (0) << 12); - wlc_lcnphy_set_bbmult(pi, SAVE_bbmult); wlc_lcnphy_set_tx_gain_override(pi, tx_gain_override_old); wlc_lcnphy_set_tx_gain(pi, &old_gains); wlc_lcnphy_set_tx_pwr_ctrl(pi, SAVE_txpwrctrl); @@ -3133,11 +3042,6 @@ static void wlc_lcnphy_tx_pwr_ctrl_init(struct brcms_phy_pub *ppi) wlc_lcnphy_write_table(pi, &tab); tab.tbl_offset++; } - mod_phy_reg(pi, 0x4d0, (0x1 << 0), (0) << 0); - mod_phy_reg(pi, 0x4d3, (0xff << 0), (0) << 0); - mod_phy_reg(pi, 0x4d3, (0xff << 8), (0) << 8); - mod_phy_reg(pi, 0x4d0, (0x1 << 4), (0) << 4); - mod_phy_reg(pi, 0x4d0, (0x1 << 2), (0) << 2); mod_phy_reg(pi, 0x410, (0x1 << 7), (0) << 7); @@ -3939,6 +3843,7 @@ static void wlc_lcnphy_txpwrtbl_iqlo_cal(struct brcms_phy *pi) target_gains.pad_gain = 21; target_gains.dac_gain = 0; wlc_lcnphy_set_tx_gain(pi, &target_gains); + wlc_lcnphy_set_tx_pwr_by_index(pi, 16); if (LCNREV_IS(pi->pubpi.phy_rev, 1) || pi_lcn->lcnphy_hw_iqcal_en) { @@ -3949,7 +3854,6 @@ static void wlc_lcnphy_txpwrtbl_iqlo_cal(struct brcms_phy *pi) lcnphy_recal ? LCNPHY_CAL_RECAL : LCNPHY_CAL_FULL), false); } else { - wlc_lcnphy_set_tx_pwr_by_index(pi, 16); wlc_lcnphy_tx_iqlo_soft_cal_full(pi); } @@ -4374,22 +4278,17 @@ wlc_lcnphy_load_tx_gain_table(struct brcms_phy *pi, if (CHSPEC_IS5G(pi->radio_chanspec)) pa_gain = 0x70; else - pa_gain = 0x60; + pa_gain = 0x70; if (pi->sh->boardflags & BFL_FEM) pa_gain = 0x10; - tab.tbl_id = LCNPHY_TBL_ID_TXPWRCTL; tab.tbl_width = 32; tab.tbl_len = 1; tab.tbl_ptr = &val; for (j = 0; j < 128; j++) { - if (pi->sh->boardflags & BFL_FEM) - gm_gain = gain_table[j].gm; - else - gm_gain = 15; - + gm_gain = gain_table[j].gm; val = (((u32) pa_gain << 24) | (gain_table[j].pad << 16) | (gain_table[j].pga << 8) | gm_gain); @@ -4600,10 +4499,7 @@ static void wlc_radio_2064_init(struct brcms_phy *pi) write_phy_reg(pi, 0x4ea, 0x4688); - if (pi->sh->boardflags & BFL_FEM) - mod_phy_reg(pi, 0x4eb, (0x7 << 0), 2 << 0); - else - mod_phy_reg(pi, 0x4eb, (0x7 << 0), 3 << 0); + mod_phy_reg(pi, 0x4eb, (0x7 << 0), 2 << 0); mod_phy_reg(pi, 0x4eb, (0x7 << 6), 0 << 6); @@ -4614,13 +4510,6 @@ static void wlc_radio_2064_init(struct brcms_phy *pi) wlc_lcnphy_rcal(pi); wlc_lcnphy_rc_cal(pi); - - if (!(pi->sh->boardflags & BFL_FEM)) { - write_radio_reg(pi, RADIO_2064_REG032, 0x6f); - write_radio_reg(pi, RADIO_2064_REG033, 0x19); - write_radio_reg(pi, RADIO_2064_REG039, 0xe); - } - } static void wlc_lcnphy_radio_init(struct brcms_phy *pi) @@ -4650,20 +4539,22 @@ static void wlc_lcnphy_tbl_init(struct brcms_phy *pi) wlc_lcnphy_write_table(pi, &tab); } - if (!(pi->sh->boardflags & BFL_FEM)) { - tab.tbl_id = LCNPHY_TBL_ID_RFSEQ; - tab.tbl_width = 16; - tab.tbl_ptr = &val; - tab.tbl_len = 1; + tab.tbl_id = LCNPHY_TBL_ID_RFSEQ; + tab.tbl_width = 16; + tab.tbl_ptr = &val; + tab.tbl_len = 1; - val = 150; - tab.tbl_offset = 0; - wlc_lcnphy_write_table(pi, &tab); + val = 114; + tab.tbl_offset = 0; + wlc_lcnphy_write_table(pi, &tab); - val = 220; - tab.tbl_offset = 1; - wlc_lcnphy_write_table(pi, &tab); - } + val = 130; + tab.tbl_offset = 1; + wlc_lcnphy_write_table(pi, &tab); + + val = 6; + tab.tbl_offset = 8; + wlc_lcnphy_write_table(pi, &tab); if (CHSPEC_IS2G(pi->radio_chanspec)) { if (pi->sh->boardflags & BFL_FEM) @@ -5055,7 +4946,6 @@ void wlc_phy_chanspec_set_lcnphy(struct brcms_phy *pi, u16 chanspec) wlc_lcnphy_load_tx_iir_filter(pi, true, 3); mod_phy_reg(pi, 0x4eb, (0x7 << 3), (1) << 3); - wlc_lcnphy_tssi_setup(pi); } void wlc_phy_detach_lcnphy(struct brcms_phy *pi) @@ -5094,7 +4984,8 @@ bool wlc_phy_attach_lcnphy(struct brcms_phy *pi) if (!wlc_phy_txpwr_srom_read_lcnphy(pi)) return false; - if (LCNREV_IS(pi->pubpi.phy_rev, 1)) { + if ((pi->sh->boardflags & BFL_FEM) && + (LCNREV_IS(pi->pubpi.phy_rev, 1))) { if (pi_lcn->lcnphy_tempsense_option == 3) { pi->hwpwrctrl = true; pi->hwpwrctrl_capable = true; diff --git a/drivers/net/wireless/brcm80211/brcmsmac/phy/phytbl_lcn.c b/drivers/net/wireless/brcm80211/brcmsmac/phy/phytbl_lcn.c index b7e95ac..622c01c 100644 --- a/drivers/net/wireless/brcm80211/brcmsmac/phy/phytbl_lcn.c +++ b/drivers/net/wireless/brcm80211/brcmsmac/phy/phytbl_lcn.c @@ -1992,70 +1992,70 @@ static const u16 dot11lcn_sw_ctrl_tbl_4313_epa_rev0[] = { }; static const u16 dot11lcn_sw_ctrl_tbl_4313_rev0[] = { - 0x0009, 0x000a, - 0x0005, - 0x0006, 0x0009, - 0x000a, - 0x0005, 0x0006, - 0x0009, - 0x000a, 0x0005, - 0x0006, - 0x0009, 0x000a, - 0x0005, - 0x0006, 0x0009, - 0x000a, - 0x0005, 0x0006, - 0x0009, - 0x000a, 0x0005, - 0x0006, - 0x0009, 0x000a, - 0x0005, - 0x0006, 0x0009, - 0x000a, - 0x0005, 0x0006, - 0x0009, - 0x000a, 0x0005, - 0x0006, - 0x0009, 0x000a, - 0x0005, - 0x0006, 0x0009, - 0x000a, - 0x0005, 0x0006, - 0x0009, - 0x000a, 0x0005, - 0x0006, + 0x000a, 0x0009, + 0x0006, + 0x0005, 0x000a, + 0x0009, + 0x0006, 0x0005, + 0x000a, + 0x0009, 0x0006, + 0x0005, + 0x000a, 0x0009, + 0x0006, + 0x0005, 0x000a, + 0x0009, + 0x0006, 0x0005, + 0x000a, + 0x0009, 0x0006, + 0x0005, + 0x000a, 0x0009, + 0x0006, + 0x0005, 0x000a, + 0x0009, + 0x0006, 0x0005, + 0x000a, + 0x0009, 0x0006, + 0x0005, + 0x000a, 0x0009, + 0x0006, + 0x0005, 0x000a, + 0x0009, + 0x0006, 0x0005, + 0x000a, + 0x0009, 0x0006, + 0x0005, }; static const u16 dot11lcn_sw_ctrl_tbl_rev0[] = {