public inbox for b43-dev@lists.infradead.org
 help / color / mirror / Atom feed
* [PATCH V2] b43: be more user friendly with PHY info
  2012-07-25 14:47 [PATCH V2] b43: be more user friendly with PHY info Rafał Miłecki
@ 2012-07-25 14:10 ` Joe Perches
  2012-07-25 14:22   ` Rafał Miłecki
  0 siblings, 1 reply; 5+ messages in thread
From: Joe Perches @ 2012-07-25 14:10 UTC (permalink / raw)
  To: Rafał Miłecki; +Cc: linux-wireless, John W. Linville, b43-dev

On Wed, 2012-07-25 at 16:47 +0200, Rafa? Mi?ecki wrote:
> use PHY names instead of magic numbers.
[]
> diff --git a/drivers/net/wireless/b43/main.c b/drivers/net/wireless/b43/main.c
[]
> @@ -4277,6 +4277,37 @@ out:
[]
> +static char *b43_phy_name(struct b43_wldev *dev, u8 phy_type)
> +{
> +	switch (phy_type) {
> +	case B43_PHYTYPE_A:
> +		return "A";
[]
> +	}
> +
> +	b43err(dev->wl, "Unknown PHY Type: %d\n", phy_type);
> +	return "UNKNOWN";

In general, it's a bad idea to emit error messages
in a generic call like this.

> @@ -4337,13 +4368,12 @@ 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 %s, Revision %u)\n",
> +		       analog_type, b43_phy_name(dev, phy_type), phy_rev);

The extra message doesn't add much useful info
and can also cause errors in continued messages.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH V2] b43: be more user friendly with PHY info
  2012-07-25 14:10 ` Joe Perches
@ 2012-07-25 14:22   ` Rafał Miłecki
  2012-07-25 15:48     ` Joe Perches
  0 siblings, 1 reply; 5+ messages in thread
From: Rafał Miłecki @ 2012-07-25 14:22 UTC (permalink / raw)
  To: Joe Perches; +Cc: linux-wireless, John W. Linville, b43-dev

2012/7/25 Joe Perches <joe@perches.com>:
> On Wed, 2012-07-25 at 16:47 +0200, Rafa? Mi?ecki wrote:
>> use PHY names instead of magic numbers.
> []
>> diff --git a/drivers/net/wireless/b43/main.c b/drivers/net/wireless/b43/main.c
> []
>> @@ -4277,6 +4277,37 @@ out:
> []
>> +static char *b43_phy_name(struct b43_wldev *dev, u8 phy_type)
>> +{
>> +     switch (phy_type) {
>> +     case B43_PHYTYPE_A:
>> +             return "A";
> []
>> +     }
>> +
>> +     b43err(dev->wl, "Unknown PHY Type: %d\n", phy_type);
>> +     return "UNKNOWN";
>
> In general, it's a bad idea to emit error messages
> in a generic call like this.

This function is not supposed to be called anywhere else, it's only
for a single user-friendly message.


>> @@ -4337,13 +4368,12 @@ 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 %s, Revision %u)\n",
>> +                    analog_type, b43_phy_name(dev, phy_type), phy_rev);
>
> The extra message doesn't add much useful info
> and can also cause errors in continued messages.

By "extra message" do you mean the one from b43_phy_name? I wanted to
print PHY type as digit somewhere (in case it is not recognized). I
can't use simple
return ("UNKNOWN %d", phy_type);
, such a solution would require allocating memory for string and
freeing it. It would complicate the function.

Do you have any suggestion for better handling this?

-- 
Rafa?

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH V2] b43: be more user friendly with PHY info
@ 2012-07-25 14:47 Rafał Miłecki
  2012-07-25 14:10 ` Joe Perches
  0 siblings, 1 reply; 5+ messages in thread
From: Rafał Miłecki @ 2012-07-25 14:47 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
---
 drivers/net/wireless/b43/b43.h  |    2 +
 drivers/net/wireless/b43/main.c |   40 ++++++++++++++++++++++++++++++++++----
 2 files changed, 37 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..5655c9c 100644
--- a/drivers/net/wireless/b43/main.c
+++ b/drivers/net/wireless/b43/main.c
@@ -4277,6 +4277,37 @@ 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";
+	}
+
+	b43err(dev->wl, "Unknown PHY Type: %d\n", phy_type);
+	return "UNKNOWN";
+}
+
 /* Get PHY and RADIO versioning numbers */
 static int b43_phy_versioning(struct b43_wldev *dev)
 {
@@ -4337,13 +4368,12 @@ 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 %s, Revision %u)\n",
+		       analog_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 %s, Revision %u\n",
+		analog_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] 5+ messages in thread

* [PATCH V2] b43: be more user friendly with PHY info
  2012-07-25 14:22   ` Rafał Miłecki
@ 2012-07-25 15:48     ` Joe Perches
  2012-07-25 15:55       ` Rafał Miłecki
  0 siblings, 1 reply; 5+ messages in thread
From: Joe Perches @ 2012-07-25 15:48 UTC (permalink / raw)
  To: Rafał Miłecki; +Cc: linux-wireless, John W. Linville, b43-dev

On Wed, 2012-07-25 at 16:22 +0200, Rafa? Mi?ecki wrote:
> 2012/7/25 Joe Perches <joe@perches.com>:
> > On Wed, 2012-07-25 at 16:47 +0200, Rafa? Mi?ecki wrote:
> >> use PHY names instead of magic numbers.
> > []
> >> diff --git a/drivers/net/wireless/b43/main.c b/drivers/net/wireless/b43/main.c
> > []
> >> @@ -4277,6 +4277,37 @@ out:
> > []
> >> +static char *b43_phy_name(struct b43_wldev *dev, u8 phy_type)
> >> +{
> >> +     switch (phy_type) {
> >> +     case B43_PHYTYPE_A:
> >> +             return "A";
> > []
> >> +     }
> >> +
> >> +     b43err(dev->wl, "Unknown PHY Type: %d\n", phy_type);
> >> +     return "UNKNOWN";
> >
> > In general, it's a bad idea to emit error messages
> > in a generic call like this.
> 
> This function is not supposed to be called anywhere else, it's only
> for a single user-friendly message.
> 
> 
> >> @@ -4337,13 +4368,12 @@ 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 %s, Revision %u)\n",
> >> +                    analog_type, b43_phy_name(dev, phy_type), phy_rev);
> >
> > The extra message doesn't add much useful info
> > and can also cause errors in continued messages.
> 
> By "extra message" do you mean the one from b43_phy_name? I wanted to
> print PHY type as digit somewhere (in case it is not recognized). I
> can't use simple
> return ("UNKNOWN %d", phy_type);
> , such a solution would require allocating memory for string and
> freeing it. It would complicate the function.
> 
> Do you have any suggestion for better handling this?
> 

Change the UNSUPPORTED PHY message to

	"...Type: %d:(%s)...",
	..., phy_type, b43_phy_name(dev, phy_type), ...

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH V2] b43: be more user friendly with PHY info
  2012-07-25 15:48     ` Joe Perches
@ 2012-07-25 15:55       ` Rafał Miłecki
  0 siblings, 0 replies; 5+ messages in thread
From: Rafał Miłecki @ 2012-07-25 15:55 UTC (permalink / raw)
  To: Joe Perches; +Cc: linux-wireless, John W. Linville, b43-dev

2012/7/25 Joe Perches <joe@perches.com>:
> On Wed, 2012-07-25 at 16:22 +0200, Rafa? Mi?ecki wrote:
>> 2012/7/25 Joe Perches <joe@perches.com>:
>> > On Wed, 2012-07-25 at 16:47 +0200, Rafa? Mi?ecki wrote:
>> >> use PHY names instead of magic numbers.
>> > []
>> >> diff --git a/drivers/net/wireless/b43/main.c b/drivers/net/wireless/b43/main.c
>> > []
>> >> @@ -4277,6 +4277,37 @@ out:
>> > []
>> >> +static char *b43_phy_name(struct b43_wldev *dev, u8 phy_type)
>> >> +{
>> >> +     switch (phy_type) {
>> >> +     case B43_PHYTYPE_A:
>> >> +             return "A";
>> > []
>> >> +     }
>> >> +
>> >> +     b43err(dev->wl, "Unknown PHY Type: %d\n", phy_type);
>> >> +     return "UNKNOWN";
>> >
>> > In general, it's a bad idea to emit error messages
>> > in a generic call like this.
>>
>> This function is not supposed to be called anywhere else, it's only
>> for a single user-friendly message.
>>
>>
>> >> @@ -4337,13 +4368,12 @@ 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 %s, Revision %u)\n",
>> >> +                    analog_type, b43_phy_name(dev, phy_type), phy_rev);
>> >
>> > The extra message doesn't add much useful info
>> > and can also cause errors in continued messages.
>>
>> By "extra message" do you mean the one from b43_phy_name? I wanted to
>> print PHY type as digit somewhere (in case it is not recognized). I
>> can't use simple
>> return ("UNKNOWN %d", phy_type);
>> , such a solution would require allocating memory for string and
>> freeing it. It would complicate the function.
>>
>> Do you have any suggestion for better handling this?
>>
>
> Change the UNSUPPORTED PHY message to
>
>         "...Type: %d:(%s)...",
>         ..., phy_type, b43_phy_name(dev, phy_type), ...

I think it should be fine :)

-- 
Rafa?

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2012-07-25 15:55 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-07-25 14:47 [PATCH V2] b43: be more user friendly with PHY info Rafał Miłecki
2012-07-25 14:10 ` Joe Perches
2012-07-25 14:22   ` Rafał Miłecki
2012-07-25 15:48     ` Joe Perches
2012-07-25 15:55       ` 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