* [PATCH V3] b43: be more user friendly with PHY info
@ 2012-07-26 6:16 Rafał Miłecki
2012-07-26 6:01 ` Gábor Stefanik
0 siblings, 1 reply; 8+ messages in thread
From: Rafał Miłecki @ 2012-07-26 6:16 UTC (permalink / raw)
To: linux-wireless, John W. Linville; +Cc: b43-dev, Rafał Miłecki
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@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";
+}
+
/* Get PHY and RADIO versioning numbers */
static int b43_phy_versioning(struct b43_wldev *dev)
{
@@ -4337,13 +4366,13 @@ static int b43_phy_versioning(struct b43_wldev *dev)
unsupported = 1;
}
if (unsupported) {
- b43err(dev->wl, "FOUND UNSUPPORTED PHY "
- "(Analog %u, Type %u, Revision %u)\n",
- analog_type, phy_type, phy_rev);
+ b43err(dev->wl, "FOUND UNSUPPORTED PHY (Analog %u, Type %d (%s), Revision %u)\n",
+ analog_type, phy_type, b43_phy_name(dev, phy_type),
+ phy_rev);
return -EOPNOTSUPP;
}
- b43dbg(dev->wl, "Found PHY: Analog %u, Type %u, Revision %u\n",
- analog_type, phy_type, phy_rev);
+ 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);
/* Get RADIO versioning */
if (dev->dev->core_rev >= 24) {
--
1.7.7
^ permalink raw reply related [flat|nested] 8+ messages in thread* [PATCH V3] b43: be more user friendly with PHY info
2012-07-26 6:16 [PATCH V3] b43: be more user friendly with PHY info Rafał Miłecki
@ 2012-07-26 6:01 ` Gábor Stefanik
2012-07-26 6:10 ` Rafał Miłecki
0 siblings, 1 reply; 8+ messages in thread
From: Gábor Stefanik @ 2012-07-26 6:01 UTC (permalink / raw)
To: Rafał Miłecki; +Cc: linux-wireless, John W. Linville, b43-dev
On Thu, Jul 26, 2012 at 8:16 AM, Rafa? Mi?ecki <zajec5@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@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?
> +}
> +
> /* Get PHY and RADIO versioning numbers */
> static int b43_phy_versioning(struct b43_wldev *dev)
> {
> @@ -4337,13 +4366,13 @@ static int b43_phy_versioning(struct b43_wldev *dev)
> unsupported = 1;
> }
> if (unsupported) {
> - b43err(dev->wl, "FOUND UNSUPPORTED PHY "
> - "(Analog %u, Type %u, Revision %u)\n",
> - analog_type, phy_type, phy_rev);
> + b43err(dev->wl, "FOUND UNSUPPORTED PHY (Analog %u, Type %d (%s), Revision %u)\n",
> + analog_type, phy_type, b43_phy_name(dev, phy_type),
> + phy_rev);
> return -EOPNOTSUPP;
> }
> - b43dbg(dev->wl, "Found PHY: Analog %u, Type %u, Revision %u\n",
> - analog_type, phy_type, phy_rev);
> + 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);
>
> /* Get RADIO versioning */
> if (dev->dev->core_rev >= 24) {
> --
> 1.7.7
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
--
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
^ permalink raw reply [flat|nested] 8+ messages in thread* [PATCH V3] b43: be more user friendly with PHY info
2012-07-26 6:01 ` Gábor Stefanik
@ 2012-07-26 6:10 ` Rafał Miłecki
2012-07-26 6:22 ` Oleksij Rempel
0 siblings, 1 reply; 8+ messages in thread
From: Rafał Miłecki @ 2012-07-26 6:10 UTC (permalink / raw)
To: Gábor Stefanik; +Cc: linux-wireless, John W. Linville, b43-dev
2012/7/26 G?bor Stefanik <netrolller.3d@gmail.com>:
> On Thu, Jul 26, 2012 at 8:16 AM, Rafa? Mi?ecki <zajec5@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@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?
--
Rafa?
^ permalink raw reply [flat|nested] 8+ messages in thread* [PATCH V3] b43: be more user friendly with PHY info
2012-07-26 6:10 ` Rafał Miłecki
@ 2012-07-26 6:22 ` Oleksij Rempel
2012-07-26 6:50 ` Rafał Miłecki
0 siblings, 1 reply; 8+ messages in thread
From: Oleksij Rempel @ 2012-07-26 6:22 UTC (permalink / raw)
To: b43-dev
Am 26.07.2012 08:10, schrieb Rafa? Mi?ecki:
> 2012/7/26 G?bor Stefanik <netrolller.3d@gmail.com>:
>> On Thu, Jul 26, 2012 at 8:16 AM, Rafa? Mi?ecki <zajec5@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@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);
--
Regards,
Oleksij
^ permalink raw reply [flat|nested] 8+ messages in thread* [PATCH V3] b43: be more user friendly with PHY info
2012-07-26 6:22 ` Oleksij Rempel
@ 2012-07-26 6:50 ` Rafał Miłecki
2012-07-26 7:32 ` Oleksij Rempel
0 siblings, 1 reply; 8+ messages in thread
From: Rafał Miłecki @ 2012-07-26 6:50 UTC (permalink / raw)
To: b43-dev
2012/7/26 Oleksij Rempel <bug-track@fisher-privat.net>:
> Am 26.07.2012 08:10, schrieb Rafa? Mi?ecki:
>> 2012/7/26 G?bor Stefanik <netrolller.3d@gmail.com>:
>>> On Thu, Jul 26, 2012 at 8:16 AM, Rafa? Mi?ecki <zajec5@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@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?
--
Rafa?
^ permalink raw reply [flat|nested] 8+ messages in thread* [PATCH V3] b43: be more user friendly with PHY info
2012-07-26 6:50 ` Rafał Miłecki
@ 2012-07-26 7:32 ` Oleksij Rempel
2012-07-26 7:37 ` Rafał Miłecki
0 siblings, 1 reply; 8+ messages in thread
From: Oleksij Rempel @ 2012-07-26 7:32 UTC (permalink / raw)
To: b43-dev
Am 26.07.2012 08:50, schrieb Rafa? Mi?ecki:
> 2012/7/26 Oleksij Rempel <bug-track@fisher-privat.net>:
>> Am 26.07.2012 08:10, schrieb Rafa? Mi?ecki:
>>> 2012/7/26 G?bor Stefanik <netrolller.3d@gmail.com>:
>>>> On Thu, Jul 26, 2012 at 8:16 AM, Rafa? Mi?ecki <zajec5@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@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
^ permalink raw reply [flat|nested] 8+ messages in thread* [PATCH V3] b43: be more user friendly with PHY info
2012-07-26 7:32 ` Oleksij Rempel
@ 2012-07-26 7:37 ` Rafał Miłecki
2012-07-26 7:37 ` Rafał Miłecki
0 siblings, 1 reply; 8+ messages in thread
From: Rafał Miłecki @ 2012-07-26 7:37 UTC (permalink / raw)
To: b43-dev
2012/7/26 Oleksij Rempel <bug-track@fisher-privat.net>:
> Am 26.07.2012 08:50, schrieb Rafa? Mi?ecki:
>> 2012/7/26 Oleksij Rempel <bug-track@fisher-privat.net>:
>>> Am 26.07.2012 08:10, schrieb Rafa? Mi?ecki:
>>>> 2012/7/26 G?bor Stefanik <netrolller.3d@gmail.com>:
>>>>> On Thu, Jul 26, 2012 at 8:16 AM, Rafa? Mi?ecki <zajec5@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@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, ...);
Yeah, but I can't use sprintf on locally-declared (inside function)
char array. Well, I can, but I can't result such an array.
So the solution is to declare char array in called, and pass that
array (and it's size) to the b43_phy_name.
Well, I really prefer Joe's solution implemented in V3 :)
--
Rafa?
^ permalink raw reply [flat|nested] 8+ messages in thread* [PATCH V3] b43: be more user friendly with PHY info
2012-07-26 7:37 ` Rafał Miłecki
@ 2012-07-26 7:37 ` Rafał Miłecki
0 siblings, 0 replies; 8+ messages in thread
From: Rafał Miłecki @ 2012-07-26 7:37 UTC (permalink / raw)
To: b43-dev
2012/7/26 Rafa? Mi?ecki <zajec5@gmail.com>:
> Yeah, but I can't use sprintf on locally-declared (inside function)
> char array. Well, I can, but I can't result such an array.
s/result/return/
> So the solution is to declare char array in called, and pass that
> array (and it's size) to the b43_phy_name.
s/called/caller/
--
Rafa?
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2012-07-26 7:37 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-07-26 6:16 [PATCH V3] b43: be more user friendly with PHY info Rafał Miłecki
2012-07-26 6:01 ` Gábor Stefanik
2012-07-26 6:10 ` Rafał Miłecki
2012-07-26 6:22 ` Oleksij Rempel
2012-07-26 6:50 ` Rafał Miłecki
2012-07-26 7:32 ` Oleksij Rempel
2012-07-26 7:37 ` Rafał Miłecki
2012-07-26 7:37 ` Rafał Miłecki
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox