netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [patch 08/10] bcm43xx: sysfs code cleanup
@ 2006-04-19  4:04 akpm
  2006-04-19 21:50 ` Francois Romieu
  0 siblings, 1 reply; 6+ messages in thread
From: akpm @ 2006-04-19  4:04 UTC (permalink / raw)
  To: jeff; +Cc: linville, netdev, akpm, mb, greg


From: Michael Buesch <mb@bu3sch.de>

This cleans up the bcm43xx sysfs code and makes it compliant with the
unwritten sysfs rules (at least I hope so).

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Cc: Jeff Garzik <jeff@garzik.org>
Cc: Greg KH <greg@kroah.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 drivers/net/wireless/bcm43xx/bcm43xx.h       |   17 ++
 drivers/net/wireless/bcm43xx/bcm43xx_main.c  |    1 
 drivers/net/wireless/bcm43xx/bcm43xx_sysfs.c |  115 +++++++++--------
 drivers/net/wireless/bcm43xx/bcm43xx_sysfs.h |   16 --
 4 files changed, 82 insertions(+), 67 deletions(-)

diff -puN drivers/net/wireless/bcm43xx/bcm43xx.h~bcm43xx-sysfs-code-cleanup drivers/net/wireless/bcm43xx/bcm43xx.h
--- devel/drivers/net/wireless/bcm43xx/bcm43xx.h~bcm43xx-sysfs-code-cleanup	2006-04-12 18:11:12.000000000 -0700
+++ devel-akpm/drivers/net/wireless/bcm43xx/bcm43xx.h	2006-04-12 18:11:12.000000000 -0700
@@ -15,7 +15,6 @@
 
 #include "bcm43xx_debugfs.h"
 #include "bcm43xx_leds.h"
-#include "bcm43xx_sysfs.h"
 
 
 #define PFX				KBUILD_MODNAME ": "
@@ -638,8 +637,6 @@ struct bcm43xx_key {
 };
 
 struct bcm43xx_private {
-	struct bcm43xx_sysfs sysfs;
-
 	struct ieee80211_device *ieee;
 	struct ieee80211softmac_device *softmac;
 
@@ -772,6 +769,20 @@ struct bcm43xx_private * bcm43xx_priv(st
 	return ieee80211softmac_priv(dev);
 }
 
+struct device;
+
+static inline
+struct bcm43xx_private * dev_to_bcm(struct device *dev)
+{
+	struct net_device *net_dev;
+	struct bcm43xx_private *bcm;
+
+	net_dev = dev_get_drvdata(dev);
+	bcm = bcm43xx_priv(net_dev);
+
+	return bcm;
+}
+
 
 /* Helper function, which returns a boolean.
  * TRUE, if PIO is used; FALSE, if DMA is used.
diff -puN drivers/net/wireless/bcm43xx/bcm43xx_main.c~bcm43xx-sysfs-code-cleanup drivers/net/wireless/bcm43xx/bcm43xx_main.c
--- devel/drivers/net/wireless/bcm43xx/bcm43xx_main.c~bcm43xx-sysfs-code-cleanup	2006-04-12 18:11:12.000000000 -0700
+++ devel-akpm/drivers/net/wireless/bcm43xx/bcm43xx_main.c	2006-04-12 18:11:12.000000000 -0700
@@ -52,6 +52,7 @@
 #include "bcm43xx_wx.h"
 #include "bcm43xx_ethtool.h"
 #include "bcm43xx_xmit.h"
+#include "bcm43xx_sysfs.h"
 
 
 MODULE_DESCRIPTION("Broadcom BCM43xx wireless driver");
diff -puN drivers/net/wireless/bcm43xx/bcm43xx_sysfs.c~bcm43xx-sysfs-code-cleanup drivers/net/wireless/bcm43xx/bcm43xx_sysfs.c
--- devel/drivers/net/wireless/bcm43xx/bcm43xx_sysfs.c~bcm43xx-sysfs-code-cleanup	2006-04-12 18:11:12.000000000 -0700
+++ devel-akpm/drivers/net/wireless/bcm43xx/bcm43xx_sysfs.c	2006-04-12 18:11:12.000000000 -0700
@@ -71,14 +71,46 @@ static int get_boolean(const char *buf, 
 	return -EINVAL;
 }
 
+static int sprom2hex(const u16 *sprom, char *buf, size_t buf_len)
+{
+	int i, pos = 0;
+
+	for (i = 0; i < BCM43xx_SPROM_SIZE; i++) {
+		pos += snprintf(buf + pos, buf_len - pos - 1,
+				"%04X", swab16(sprom[i]) & 0xFFFF);
+	}
+	pos += snprintf(buf + pos, buf_len - pos - 1, "\n");
+
+	return pos + 1;
+}
+
+static int hex2sprom(u16 *sprom, const char *dump, size_t len)
+{
+	char tmp[5] = { 0 };
+	int cnt = 0;
+	unsigned long parsed;
+
+	if (len < BCM43xx_SPROM_SIZE * sizeof(u16) * 2)
+		return -EINVAL;
+
+	while (cnt < BCM43xx_SPROM_SIZE) {
+		memcpy(tmp, dump, 4);
+		dump += 4;
+		parsed = simple_strtoul(tmp, NULL, 16);
+		sprom[cnt++] = swab16((u16)parsed);
+	}
+
+	return 0;
+}
+
 static ssize_t bcm43xx_attr_sprom_show(struct device *dev,
 				       struct device_attribute *attr,
 				       char *buf)
 {
-	struct bcm43xx_private *bcm = devattr_to_bcm(attr, attr_sprom);
+	struct bcm43xx_private *bcm = dev_to_bcm(dev);
 	u16 *sprom;
 	unsigned long flags;
-	int i, err;
+	int err;
 
 	if (!capable(CAP_NET_ADMIN))
 		return -EPERM;
@@ -91,55 +123,53 @@ static ssize_t bcm43xx_attr_sprom_show(s
 	bcm43xx_lock_mmio(bcm, flags);
 	assert(bcm->initialized);
 	err = bcm43xx_sprom_read(bcm, sprom);
-	if (!err) {
-		for (i = 0; i < BCM43xx_SPROM_SIZE; i++) {
-			buf[i * 2] = sprom[i] & 0x00FF;
-			buf[i * 2 + 1] = (sprom[i] & 0xFF00) >> 8;
-		}
-	}
+	if (!err)
+		err = sprom2hex(sprom, buf, PAGE_SIZE);
 	bcm43xx_unlock_mmio(bcm, flags);
 	kfree(sprom);
 
-	return err ? err : BCM43xx_SPROM_SIZE * sizeof(u16);
+	return err;
 }
 
 static ssize_t bcm43xx_attr_sprom_store(struct device *dev,
 					struct device_attribute *attr,
 					const char *buf, size_t count)
 {
-	struct bcm43xx_private *bcm = devattr_to_bcm(attr, attr_sprom);
+	struct bcm43xx_private *bcm = dev_to_bcm(dev);
 	u16 *sprom;
 	unsigned long flags;
-	int i, err;
+	int err;
 
 	if (!capable(CAP_NET_ADMIN))
 		return -EPERM;
 
-	if (count != BCM43xx_SPROM_SIZE * sizeof(u16))
-		return -EINVAL;
 	sprom = kmalloc(BCM43xx_SPROM_SIZE * sizeof(*sprom),
 			GFP_KERNEL);
 	if (!sprom)
 		return -ENOMEM;
-	for (i = 0; i < BCM43xx_SPROM_SIZE; i++) {
-		sprom[i] = buf[i * 2] & 0xFF;
-		sprom[i] |= ((u16)(buf[i * 2 + 1] & 0xFF)) << 8;
-	}
+	err = hex2sprom(sprom, buf, count);
+	if (err)
+		goto out_kfree;
 	bcm43xx_lock_mmio(bcm, flags);
 	assert(bcm->initialized);
 	err = bcm43xx_sprom_write(bcm, sprom);
 	bcm43xx_unlock_mmio(bcm, flags);
+out_kfree:
 	kfree(sprom);
 
 	return err ? err : count;
 
 }
 
+static DEVICE_ATTR(sprom, 0600,
+		   bcm43xx_attr_sprom_show,
+		   bcm43xx_attr_sprom_store);
+
 static ssize_t bcm43xx_attr_interfmode_show(struct device *dev,
 					    struct device_attribute *attr,
 					    char *buf)
 {
-	struct bcm43xx_private *bcm = devattr_to_bcm(attr, attr_interfmode);
+	struct bcm43xx_private *bcm = dev_to_bcm(dev);
 	unsigned long flags;
 	int err;
 	ssize_t count = 0;
@@ -175,7 +205,7 @@ static ssize_t bcm43xx_attr_interfmode_s
 					     struct device_attribute *attr,
 					     const char *buf, size_t count)
 {
-	struct bcm43xx_private *bcm = devattr_to_bcm(attr, attr_interfmode);
+	struct bcm43xx_private *bcm = dev_to_bcm(dev);
 	unsigned long flags;
 	int err;
 	int mode;
@@ -215,11 +245,15 @@ static ssize_t bcm43xx_attr_interfmode_s
 	return err ? err : count;
 }
 
+static DEVICE_ATTR(interference, 0644,
+		   bcm43xx_attr_interfmode_show,
+		   bcm43xx_attr_interfmode_store);
+
 static ssize_t bcm43xx_attr_preamble_show(struct device *dev,
 					  struct device_attribute *attr,
 					  char *buf)
 {
-	struct bcm43xx_private *bcm = devattr_to_bcm(attr, attr_preamble);
+	struct bcm43xx_private *bcm = dev_to_bcm(dev);
 	unsigned long flags;
 	int err;
 	ssize_t count;
@@ -245,7 +279,7 @@ static ssize_t bcm43xx_attr_preamble_sto
 					   struct device_attribute *attr,
 					   const char *buf, size_t count)
 {
-	struct bcm43xx_private *bcm = devattr_to_bcm(attr, attr_preamble);
+	struct bcm43xx_private *bcm = dev_to_bcm(dev);
 	unsigned long flags;
 	int err;
 	int value;
@@ -267,56 +301,41 @@ static ssize_t bcm43xx_attr_preamble_sto
 	return err ? err : count;
 }
 
+static DEVICE_ATTR(shortpreamble, 0644,
+		   bcm43xx_attr_preamble_show,
+		   bcm43xx_attr_preamble_store);
+
 int bcm43xx_sysfs_register(struct bcm43xx_private *bcm)
 {
 	struct device *dev = &bcm->pci_dev->dev;
-	struct bcm43xx_sysfs *sysfs = &bcm->sysfs;
 	int err;
 
 	assert(bcm->initialized);
 
-	sysfs->attr_sprom.attr.name = "sprom";
-	sysfs->attr_sprom.attr.owner = THIS_MODULE;
-	sysfs->attr_sprom.attr.mode = 0600;
-	sysfs->attr_sprom.show = bcm43xx_attr_sprom_show;
-	sysfs->attr_sprom.store = bcm43xx_attr_sprom_store;
-	err = device_create_file(dev, &sysfs->attr_sprom);
+	err = device_create_file(dev, &dev_attr_sprom);
 	if (err)
 		goto out;
-
-	sysfs->attr_interfmode.attr.name = "interference";
-	sysfs->attr_interfmode.attr.owner = THIS_MODULE;
-	sysfs->attr_interfmode.attr.mode = 0600;
-	sysfs->attr_interfmode.show = bcm43xx_attr_interfmode_show;
-	sysfs->attr_interfmode.store = bcm43xx_attr_interfmode_store;
-	err = device_create_file(dev, &sysfs->attr_interfmode);
+	err = device_create_file(dev, &dev_attr_interference);
 	if (err)
 		goto err_remove_sprom;
-
-	sysfs->attr_preamble.attr.name = "shortpreamble";
-	sysfs->attr_preamble.attr.owner = THIS_MODULE;
-	sysfs->attr_preamble.attr.mode = 0600;
-	sysfs->attr_preamble.show = bcm43xx_attr_preamble_show;
-	sysfs->attr_preamble.store = bcm43xx_attr_preamble_store;
-	err = device_create_file(dev, &sysfs->attr_preamble);
+	err = device_create_file(dev, &dev_attr_shortpreamble);
 	if (err)
 		goto err_remove_interfmode;
 
 out:
 	return err;
 err_remove_interfmode:
-	device_remove_file(dev, &sysfs->attr_interfmode);
+	device_remove_file(dev, &dev_attr_interference);
 err_remove_sprom:
-	device_remove_file(dev, &sysfs->attr_sprom);
+	device_remove_file(dev, &dev_attr_sprom);
 	goto out;
 }
 
 void bcm43xx_sysfs_unregister(struct bcm43xx_private *bcm)
 {
 	struct device *dev = &bcm->pci_dev->dev;
-	struct bcm43xx_sysfs *sysfs = &bcm->sysfs;
 
-	device_remove_file(dev, &sysfs->attr_preamble);
-	device_remove_file(dev, &sysfs->attr_interfmode);
-	device_remove_file(dev, &sysfs->attr_sprom);
+	device_remove_file(dev, &dev_attr_shortpreamble);
+	device_remove_file(dev, &dev_attr_interference);
+	device_remove_file(dev, &dev_attr_sprom);
 }
diff -puN drivers/net/wireless/bcm43xx/bcm43xx_sysfs.h~bcm43xx-sysfs-code-cleanup drivers/net/wireless/bcm43xx/bcm43xx_sysfs.h
--- devel/drivers/net/wireless/bcm43xx/bcm43xx_sysfs.h~bcm43xx-sysfs-code-cleanup	2006-04-12 18:11:12.000000000 -0700
+++ devel-akpm/drivers/net/wireless/bcm43xx/bcm43xx_sysfs.h	2006-04-12 18:11:12.000000000 -0700
@@ -1,22 +1,6 @@
 #ifndef BCM43xx_SYSFS_H_
 #define BCM43xx_SYSFS_H_
 
-#include <linux/device.h>
-
-
-struct bcm43xx_sysfs {
-	struct device_attribute attr_sprom;
-	struct device_attribute attr_interfmode;
-	struct device_attribute attr_preamble;
-};
-
-#define devattr_to_bcm(attr, attr_name)	({				\
-	struct bcm43xx_sysfs *__s; struct bcm43xx_private *__p;		\
-	__s = container_of((attr), struct bcm43xx_sysfs, attr_name);	\
-	__p = container_of(__s, struct bcm43xx_private, sysfs);		\
-	__p;								\
-					})
-
 struct bcm43xx_private;
 
 int bcm43xx_sysfs_register(struct bcm43xx_private *bcm);
_

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

* Re: [patch 08/10] bcm43xx: sysfs code cleanup
  2006-04-19  4:04 [patch 08/10] bcm43xx: sysfs code cleanup akpm
@ 2006-04-19 21:50 ` Francois Romieu
  2006-04-19 22:05   ` Michael Buesch
  0 siblings, 1 reply; 6+ messages in thread
From: Francois Romieu @ 2006-04-19 21:50 UTC (permalink / raw)
  To: akpm; +Cc: jeff, linville, netdev, mb, greg

akpm@osdl.org <akpm@osdl.org> :
> 
> From: Michael Buesch <mb@bu3sch.de>
> 
> This cleans up the bcm43xx sysfs code and makes it compliant with the
> unwritten sysfs rules (at least I hope so).
> 
> Signed-off-by: Michael Buesch <mb@bu3sch.de>
> Cc: Jeff Garzik <jeff@garzik.org>
> Cc: Greg KH <greg@kroah.com>
> Signed-off-by: Andrew Morton <akpm@osdl.org>
[...]
> diff -puN drivers/net/wireless/bcm43xx/bcm43xx.h~bcm43xx-sysfs-code-cleanup drivers/net/wireless/bcm43xx/bcm43xx.h
> --- devel/drivers/net/wireless/bcm43xx/bcm43xx.h~bcm43xx-sysfs-code-cleanup	2006-04-12 18:11:12.000000000 -0700
> +++ devel-akpm/drivers/net/wireless/bcm43xx/bcm43xx.h	2006-04-12 18:11:12.000000000 -0700
[...]
> @@ -772,6 +769,20 @@ struct bcm43xx_private * bcm43xx_priv(st
>  	return ieee80211softmac_priv(dev);
>  }
>  
> +struct device;
> +
> +static inline
> +struct bcm43xx_private * dev_to_bcm(struct device *dev)
> +{
> +	struct net_device *net_dev;
> +	struct bcm43xx_private *bcm;
> +
> +	net_dev = dev_get_drvdata(dev);
> +	bcm = bcm43xx_priv(net_dev);
> +
> +	return bcm;
> +}
> +

It's used only in bcm43xx_sysfs.c. It could go there and avoid
an extra forward declaration.

[...]
> diff -puN drivers/net/wireless/bcm43xx/bcm43xx_sysfs.c~bcm43xx-sysfs-code-cleanup drivers/net/wireless/bcm43xx/bcm43xx_sysfs.c
> --- devel/drivers/net/wireless/bcm43xx/bcm43xx_sysfs.c~bcm43xx-sysfs-code-cleanup	2006-04-12 18:11:12.000000000 -0700
> +++ devel-akpm/drivers/net/wireless/bcm43xx/bcm43xx_sysfs.c	2006-04-12 18:11:12.000000000 -0700
> @@ -71,14 +71,46 @@ static int get_boolean(const char *buf, 
>  	return -EINVAL;
>  }
>  
> +static int sprom2hex(const u16 *sprom, char *buf, size_t buf_len)
> +{
> +	int i, pos = 0;
> +
> +	for (i = 0; i < BCM43xx_SPROM_SIZE; i++) {
> +		pos += snprintf(buf + pos, buf_len - pos - 1,
> +				"%04X", swab16(sprom[i]) & 0xFFFF);
> +	}
> +	pos += snprintf(buf + pos, buf_len - pos - 1, "\n");
> +
> +	return pos + 1;
> +}
> +
> +static int hex2sprom(u16 *sprom, const char *dump, size_t len)
> +{
> +	char tmp[5] = { 0 };
> +	int cnt = 0;
> +	unsigned long parsed;
> +
> +	if (len < BCM43xx_SPROM_SIZE * sizeof(u16) * 2)
> +		return -EINVAL;
> +
> +	while (cnt < BCM43xx_SPROM_SIZE) {
> +		memcpy(tmp, dump, 4);
> +		dump += 4;
> +		parsed = simple_strtoul(tmp, NULL, 16);
> +		sprom[cnt++] = swab16((u16)parsed);
> +	}
> +
> +	return 0;
> +}

"4" suggests that the code walks dump -> dump + 4*BCM43xx_SPROM_SIZE

>  static ssize_t bcm43xx_attr_sprom_store(struct device *dev,
>  					const char *buf, size_t count)
[...]
> -	for (i = 0; i < BCM43xx_SPROM_SIZE; i++) {
> -		sprom[i] = buf[i * 2] & 0xFF;
> -		sprom[i] |= ((u16)(buf[i * 2 + 1] & 0xFF)) << 8;
> -	}
> +	err = hex2sprom(sprom, buf, count);

... whereas here it only parses buf -> buf + 2*BCM43xx_SPROM_SIZE

-- 
Ueimor


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

* Re: [patch 08/10] bcm43xx: sysfs code cleanup
  2006-04-19 21:50 ` Francois Romieu
@ 2006-04-19 22:05   ` Michael Buesch
  2006-04-19 22:17     ` Francois Romieu
  0 siblings, 1 reply; 6+ messages in thread
From: Michael Buesch @ 2006-04-19 22:05 UTC (permalink / raw)
  To: Francois Romieu; +Cc: jeff, linville, netdev, mb, greg, akpm

[-- Attachment #1: Type: text/plain, Size: 3427 bytes --]

On Wednesday 19 April 2006 23:50, you wrote:
> akpm@osdl.org <akpm@osdl.org> :
> > 
> > From: Michael Buesch <mb@bu3sch.de>
> > 
> > This cleans up the bcm43xx sysfs code and makes it compliant with the
> > unwritten sysfs rules (at least I hope so).
> > 
> > Signed-off-by: Michael Buesch <mb@bu3sch.de>
> > Cc: Jeff Garzik <jeff@garzik.org>
> > Cc: Greg KH <greg@kroah.com>
> > Signed-off-by: Andrew Morton <akpm@osdl.org>
> [...]
> > diff -puN drivers/net/wireless/bcm43xx/bcm43xx.h~bcm43xx-sysfs-code-cleanup drivers/net/wireless/bcm43xx/bcm43xx.h
> > --- devel/drivers/net/wireless/bcm43xx/bcm43xx.h~bcm43xx-sysfs-code-cleanup	2006-04-12 18:11:12.000000000 -0700
> > +++ devel-akpm/drivers/net/wireless/bcm43xx/bcm43xx.h	2006-04-12 18:11:12.000000000 -0700
> [...]
> > @@ -772,6 +769,20 @@ struct bcm43xx_private * bcm43xx_priv(st
> >  	return ieee80211softmac_priv(dev);
> >  }
> >  
> > +struct device;
> > +
> > +static inline
> > +struct bcm43xx_private * dev_to_bcm(struct device *dev)
> > +{
> > +	struct net_device *net_dev;
> > +	struct bcm43xx_private *bcm;
> > +
> > +	net_dev = dev_get_drvdata(dev);
> > +	bcm = bcm43xx_priv(net_dev);
> > +
> > +	return bcm;
> > +}
> > +
> 
> It's used only in bcm43xx_sysfs.c. It could go there and avoid
> an extra forward declaration.

But it is a very generic helper, that does not have anything to do
with sysfs. It converts a struct device to struct bcm43xx_private.
bcm43xx_sysfs.h does only contain sysfs specific stuff for bcm.

> [...]
> > diff -puN drivers/net/wireless/bcm43xx/bcm43xx_sysfs.c~bcm43xx-sysfs-code-cleanup drivers/net/wireless/bcm43xx/bcm43xx_sysfs.c
> > --- devel/drivers/net/wireless/bcm43xx/bcm43xx_sysfs.c~bcm43xx-sysfs-code-cleanup	2006-04-12 18:11:12.000000000 -0700
> > +++ devel-akpm/drivers/net/wireless/bcm43xx/bcm43xx_sysfs.c	2006-04-12 18:11:12.000000000 -0700
> > @@ -71,14 +71,46 @@ static int get_boolean(const char *buf, 
> >  	return -EINVAL;
> >  }
> >  
> > +static int sprom2hex(const u16 *sprom, char *buf, size_t buf_len)
> > +{
> > +	int i, pos = 0;
> > +
> > +	for (i = 0; i < BCM43xx_SPROM_SIZE; i++) {
> > +		pos += snprintf(buf + pos, buf_len - pos - 1,
> > +				"%04X", swab16(sprom[i]) & 0xFFFF);
> > +	}
> > +	pos += snprintf(buf + pos, buf_len - pos - 1, "\n");
> > +
> > +	return pos + 1;
> > +}
> > +
> > +static int hex2sprom(u16 *sprom, const char *dump, size_t len)
> > +{
> > +	char tmp[5] = { 0 };
> > +	int cnt = 0;
> > +	unsigned long parsed;
> > +
> > +	if (len < BCM43xx_SPROM_SIZE * sizeof(u16) * 2)
> > +		return -EINVAL;
> > +
> > +	while (cnt < BCM43xx_SPROM_SIZE) {
> > +		memcpy(tmp, dump, 4);
> > +		dump += 4;
> > +		parsed = simple_strtoul(tmp, NULL, 16);
> > +		sprom[cnt++] = swab16((u16)parsed);
> > +	}
> > +
> > +	return 0;
> > +}
> 
> "4" suggests that the code walks dump -> dump + 4*BCM43xx_SPROM_SIZE
> 
> >  static ssize_t bcm43xx_attr_sprom_store(struct device *dev,
> >  					const char *buf, size_t count)
> [...]
> > -	for (i = 0; i < BCM43xx_SPROM_SIZE; i++) {
> > -		sprom[i] = buf[i * 2] & 0xFF;
> > -		sprom[i] |= ((u16)(buf[i * 2 + 1] & 0xFF)) << 8;
> > -	}
> > +	err = hex2sprom(sprom, buf, count);
> 
> ... whereas here it only parses buf -> buf + 2*BCM43xx_SPROM_SIZE

the deleted code parses binary input. The
new code parses human readable hex input.

-- 
Greetings Michael.

[-- Attachment #2: Type: application/pgp-signature, Size: 191 bytes --]

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

* Re: [patch 08/10] bcm43xx: sysfs code cleanup
  2006-04-19 22:05   ` Michael Buesch
@ 2006-04-19 22:17     ` Francois Romieu
  2006-04-19 22:30       ` Michael Buesch
  0 siblings, 1 reply; 6+ messages in thread
From: Francois Romieu @ 2006-04-19 22:17 UTC (permalink / raw)
  To: Michael Buesch; +Cc: jeff, linville, netdev, greg, akpm

Michael Buesch <mb@bu3sch.de> :
[...]
> the deleted code parses binary input. The
> new code parses human readable hex input.

No offence intended but it was not clear from the description of
the patch.

<pavlov>
Does it imply an user space visible API change ?
</pavlov>

-- 
Ueimor

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

* Re: [patch 08/10] bcm43xx: sysfs code cleanup
  2006-04-19 22:17     ` Francois Romieu
@ 2006-04-19 22:30       ` Michael Buesch
  2006-04-19 22:33         ` Francois Romieu
  0 siblings, 1 reply; 6+ messages in thread
From: Michael Buesch @ 2006-04-19 22:30 UTC (permalink / raw)
  To: Francois Romieu; +Cc: jeff, linville, netdev, greg, akpm

[-- Attachment #1: Type: text/plain, Size: 619 bytes --]

On Thursday 20 April 2006 00:17, you wrote:
> Michael Buesch <mb@bu3sch.de> :
> [...]
> > the deleted code parses binary input. The
> > new code parses human readable hex input.
> 
> No offence intended but it was not clear from the description of
> the patch.
> 
> <pavlov>
> Does it imply an user space visible API change ?
> </pavlov>

Yes it does, but:
* We did not release a stable kernel with it in the meantime.
* There is no software using it at the moment.
  (Well, the bcm43xx-sprom tool is kind of using it,
   but it can handle both binary and hex input anyway)

-- 
Greetings Michael.

[-- Attachment #2: Type: application/pgp-signature, Size: 191 bytes --]

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

* Re: [patch 08/10] bcm43xx: sysfs code cleanup
  2006-04-19 22:30       ` Michael Buesch
@ 2006-04-19 22:33         ` Francois Romieu
  0 siblings, 0 replies; 6+ messages in thread
From: Francois Romieu @ 2006-04-19 22:33 UTC (permalink / raw)
  To: Michael Buesch; +Cc: jeff, linville, netdev, greg, akpm

Michael Buesch <mb@bu3sch.de> :
[...]
> Yes it does, but:
> * We did not release a stable kernel with it in the meantime.
> * There is no software using it at the moment.
>   (Well, the bcm43xx-sprom tool is kind of using it,
>    but it can handle both binary and hex input anyway)

Ok. Thanks for the explanation.

-- 
Ueimor

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

end of thread, other threads:[~2006-04-19 22:35 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-04-19  4:04 [patch 08/10] bcm43xx: sysfs code cleanup akpm
2006-04-19 21:50 ` Francois Romieu
2006-04-19 22:05   ` Michael Buesch
2006-04-19 22:17     ` Francois Romieu
2006-04-19 22:30       ` Michael Buesch
2006-04-19 22:33         ` Francois Romieu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).