Am 26.07.2012 08:50, schrieb Rafał Miłecki: > 2012/7/26 Oleksij Rempel <bug-tr...@fisher-privat.net>: >> Am 26.07.2012 08:10, schrieb Rafał Miłecki: >>> 2012/7/26 Gábor Stefanik <netrolller...@gmail.com>: >>>> On Thu, Jul 26, 2012 at 8:16 AM, Rafał Miłecki <zaj...@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 <zaj...@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 _______________________________________________ b43-dev mailing list b43-dev@lists.infradead.org http://lists.infradead.org/mailman/listinfo/b43-dev