[PATCH V3] b43: be more user friendly with PHY info

Oleksij Rempel bug-track at fisher-privat.net
Thu Jul 26 03:32:20 EDT 2012


Am 26.07.2012 08:50, schrieb Rafał Miłecki:
> 2012/7/26 Oleksij Rempel <bug-track at fisher-privat.net>:
>> Am 26.07.2012 08:10, schrieb Rafał Miłecki:
>>> 2012/7/26 Gábor Stefanik <netrolller.3d at gmail.com>:
>>>> On Thu, Jul 26, 2012 at 8:16 AM, Rafał Miłecki <zajec5 at gmail.com> wrote:
>>>>> First of all, use PHY names instead of magic numbers. It should make
>>>>> configuring kernel easier in case of not enabled PHY type support.
>>>>> Secondly, always print info about PHY. This is really basic info about
>>>>> hardware and quite important for the support level.
>>>>>
>>>>> Signed-off-by: Rafał Miłecki <zajec5 at gmail.com>
>>>>> ---
>>>>> V2: add new PHYTYPEs
>>>>> V3: don't printk error in b43_phy_name, just return "UNKNOWN". We still
>>>>>     can know PHY type thanks to change in caller, which prints both:
>>>>>     %d and %s. Thanks Joe!
>>>>> ---
>>>>>  drivers/net/wireless/b43/b43.h  |    2 ++
>>>>>  drivers/net/wireless/b43/main.c |   39 ++++++++++++++++++++++++++++++++++-----
>>>>>  2 files changed, 36 insertions(+), 5 deletions(-)
>>>>>
>>>>> diff --git a/drivers/net/wireless/b43/b43.h b/drivers/net/wireless/b43/b43.h
>>>>> index 7c899fc..b0c7f47 100644
>>>>> --- a/drivers/net/wireless/b43/b43.h
>>>>> +++ b/drivers/net/wireless/b43/b43.h
>>>>> @@ -415,6 +415,8 @@ enum {
>>>>>  #define B43_PHYTYPE_HT                 0x07
>>>>>  #define B43_PHYTYPE_LCN                        0x08
>>>>>  #define B43_PHYTYPE_LCNXN              0x09
>>>>> +#define B43_PHYTYPE_LCN40              0x0a
>>>>> +#define B43_PHYTYPE_AC                 0x0b
>>>>>
>>>>>  /* PHYRegisters */
>>>>>  #define B43_PHY_ILT_A_CTRL             0x0072
>>>>> diff --git a/drivers/net/wireless/b43/main.c b/drivers/net/wireless/b43/main.c
>>>>> index b80352b..a8f812b 100644
>>>>> --- a/drivers/net/wireless/b43/main.c
>>>>> +++ b/drivers/net/wireless/b43/main.c
>>>>> @@ -4277,6 +4277,35 @@ out:
>>>>>         return err;
>>>>>  }
>>>>>
>>>>> +static char *b43_phy_name(struct b43_wldev *dev, u8 phy_type)
>>>>> +{
>>>>> +       switch (phy_type) {
>>>>> +       case B43_PHYTYPE_A:
>>>>> +               return "A";
>>>>> +       case B43_PHYTYPE_B:
>>>>> +               return "B";
>>>>> +       case B43_PHYTYPE_G:
>>>>> +               return "G";
>>>>> +       case B43_PHYTYPE_N:
>>>>> +               return "N";
>>>>> +       case B43_PHYTYPE_LP:
>>>>> +               return "LP";
>>>>> +       case B43_PHYTYPE_SSLPN:
>>>>> +               return "SSLPN";
>>>>> +       case B43_PHYTYPE_HT:
>>>>> +               return "HT";
>>>>> +       case B43_PHYTYPE_LCN:
>>>>> +               return "LCN";
>>>>> +       case B43_PHYTYPE_LCNXN:
>>>>> +               return "LCNXN";
>>>>> +       case B43_PHYTYPE_LCN40:
>>>>> +               return "LCN40";
>>>>> +       case B43_PHYTYPE_AC:
>>>>> +               return "AC";
>>>>> +       }
>>>>> +       return "UNKNOWN";
>>>>
>>>> How about putting the PHY type ID into the string in the Unknown case?
>>>> Or will it be printed somewhere else?
>>>
>>> Hm, maybe I don't see something obvious. How would you do that? Using
>>> which function?
>>>
>>
>> No need to, it is done here:
>> b43info(dev->wl, "Found PHY: Analog %u, Type %d (%s), Revision %u\n",
>>         analog_type, phy_type, b43_phy_name(dev, phy_type), phy_rev);
> 
> Still, at least for my curiosity, is there a way to achieve what Gabor
> suggested? Can we return dynamically-filled string in a function?
> 

int sprintf(char *str, const char *format, ...);
int snprintf(char *str, size_t size, const char *format, ...);

-- 
Regards,
Oleksij



More information about the b43-dev mailing list