Signed-off-by: Rafał Miłecki <[email protected]>
---
This makes my N-PHY radio at least running (no scanning results so far). The
same register is used by wl on this device.
---
drivers/net/wireless/b43/rfkill.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/net/wireless/b43/rfkill.c b/drivers/net/wireless/b43/rfkill.c
index 78016ae..d2734c9 100644
--- a/drivers/net/wireless/b43/rfkill.c
+++ b/drivers/net/wireless/b43/rfkill.c
@@ -28,7 +28,7 @@
/* Returns TRUE, if the radio is enabled in hardware. */
bool b43_is_hw_radio_enabled(struct b43_wldev *dev)
{
- if (dev->phy.rev >= 3 || dev->phy.type == B43_PHYTYPE_LP) {
+ if (dev->dev->id.revision >= 3) {
if (!(b43_read32(dev, B43_MMIO_RADIO_HWENABLED_HI)
& B43_MMIO_RADIO_HWENABLED_HI_MASK))
return 1;
--
1.7.1
W dniu 22 października 2010 22:24 użytkownik Rafał Miłecki
<[email protected]> napisał:
> Signed-off-by: Rafał Miłecki <[email protected]>
> ---
> This makes my N-PHY radio at least running (no scanning results so far). The
> same register is used by wl on this device.
John, if you care you can move left opening brace in subject to look
as following:
(not PHY's)
--
Rafał
On 10/22/2010 04:57 PM, Rafał Miłecki wrote:
> W dniu 22 października 2010 23:38 użytkownik Larry Finger
> <[email protected]> napisał:
>> On 10/22/2010 03:24 PM, Rafał Miłecki wrote:
>>
>> As that register is present only when the core revision >= 3, this change should
>> not cause a regression. Perhaps this was an error in the RE from the start and
>> testing the phy.rev has always been wrong.
>
> Do not blame RE team ;) It was described correctly since "ever", you
> can check it in history of:
> http://bcm-specs.sipsolutions.net/MMIO
>
> I actually suspect this may be source of self-switching-on-off-radio
> issue described in:
> "b43legacy-phy3: Radio hardware status changed to XXX" thread.
>
> I already mailed reporter to ask if he still has access to problematic card.
I have two cards that use b43legacy, but their physical format (PCI and Cardbus)
do not include an RFKILL switch, thus I have never tested this code with b43legacy.
Larry
On 10/22/2010 03:24 PM, Rafał Miłecki wrote:
> Signed-off-by: Rafał Miłecki <[email protected]>
> ---
> This makes my N-PHY radio at least running (no scanning results so far). The
> same register is used by wl on this device.
> ---
> drivers/net/wireless/b43/rfkill.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/net/wireless/b43/rfkill.c b/drivers/net/wireless/b43/rfkill.c
> index 78016ae..d2734c9 100644
> --- a/drivers/net/wireless/b43/rfkill.c
> +++ b/drivers/net/wireless/b43/rfkill.c
> @@ -28,7 +28,7 @@
> /* Returns TRUE, if the radio is enabled in hardware. */
> bool b43_is_hw_radio_enabled(struct b43_wldev *dev)
> {
> - if (dev->phy.rev >= 3 || dev->phy.type == B43_PHYTYPE_LP) {
> + if (dev->dev->id.revision >= 3) {
> if (!(b43_read32(dev, B43_MMIO_RADIO_HWENABLED_HI)
> & B43_MMIO_RADIO_HWENABLED_HI_MASK))
> return
As that register is present only when the core revision >= 3, this change should
not cause a regression. Perhaps this was an error in the RE from the start and
testing the phy.rev has always been wrong.
John: Just in case my analysis is wrong, keep this change out of 2.6.37. I'll
give it some testing with G PHYs before 2.6.38 merge time.
Larry
W dniu 22 października 2010 23:38 użytkownik Larry Finger
<[email protected]> napisał:
> On 10/22/2010 03:24 PM, Rafał Miłecki wrote:
>> Signed-off-by: Rafał Miłecki <[email protected]>
>> ---
>> This makes my N-PHY radio at least running (no scanning results so far). The
>> same register is used by wl on this device.
>> ---
>> drivers/net/wireless/b43/rfkill.c | 2 +-
>> 1 files changed, 1 insertions(+), 1 deletions(-)
>>
>> diff --git a/drivers/net/wireless/b43/rfkill.c b/drivers/net/wireless/b43/rfkill.c
>> index 78016ae..d2734c9 100644
>> --- a/drivers/net/wireless/b43/rfkill.c
>> +++ b/drivers/net/wireless/b43/rfkill.c
>> @@ -28,7 +28,7 @@
>> /* Returns TRUE, if the radio is enabled in hardware. */
>> bool b43_is_hw_radio_enabled(struct b43_wldev *dev)
>> {
>> - if (dev->phy.rev >= 3 || dev->phy.type == B43_PHYTYPE_LP) {
>> + if (dev->dev->id.revision >= 3) {
>> if (!(b43_read32(dev, B43_MMIO_RADIO_HWENABLED_HI)
>> & B43_MMIO_RADIO_HWENABLED_HI_MASK))
>> return
>
> As that register is present only when the core revision >= 3, this change should
> not cause a regression. Perhaps this was an error in the RE from the start and
> testing the phy.rev has always been wrong.
Do not blame RE team ;) It was described correctly since "ever", you
can check it in history of:
http://bcm-specs.sipsolutions.net/MMIO
I actually suspect this may be source of self-switching-on-off-radio
issue described in:
"b43legacy-phy3: Radio hardware status changed to XXX" thread.
I already mailed reporter to ask if he still has access to problematic card.
--
Rafał
On 10/22/2010 03:24 PM, Rafał Miłecki wrote:
> Signed-off-by: Rafał Miłecki <[email protected]>
> ---
> This makes my N-PHY radio at least running (no scanning results so far). The
> same register is used by wl on this device.
> ---
> drivers/net/wireless/b43/rfkill.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/net/wireless/b43/rfkill.c b/drivers/net/wireless/b43/rfkill.c
> index 78016ae..d2734c9 100644
> --- a/drivers/net/wireless/b43/rfkill.c
> +++ b/drivers/net/wireless/b43/rfkill.c
> @@ -28,7 +28,7 @@
> /* Returns TRUE, if the radio is enabled in hardware. */
> bool b43_is_hw_radio_enabled(struct b43_wldev *dev)
> {
> - if (dev->phy.rev >= 3 || dev->phy.type == B43_PHYTYPE_LP) {
> + if (dev->dev->id.revision >= 3) {
> if (!(b43_read32(dev, B43_MMIO_RADIO_HWENABLED_HI)
> & B43_MMIO_RADIO_HWENABLED_HI_MASK))
> return 1;
Over the weekend, I was able to test this patch using all my b43 hardware. There
were no problems.
Despite having no problems, I still NACK the patch for the reason that b43 only
applies to devices with id.revision >= 5, thus the revised "if" will always be
true. The patch should be rewritten as only b43legacy needs to test the 802.11
core revision.
Larry