From: Michael Buesch <mb-fseUSCV1ubazQB+pC5nmwQ@public.gmane.org>
To: Larry Finger <Larry.Finger-tQ5ms3gMjBLk1uMJSBkQmQ@public.gmane.org>
Cc: netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Martin Langer <martin-langer-Mmb7MZpHnFY@public.gmane.org>,
bcm43xx-dev-0fE9KPoRgkgATYTw5x5z8w@public.gmane.org,
John Linville <linville-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org>
Subject: Re: [PATCH] ucode debug status via sysfs for wireless-2.6
Date: Thu, 7 Sep 2006 10:33:51 +0200 [thread overview]
Message-ID: <200609071033.52258.mb@bu3sch.de> (raw)
In-Reply-To: <44FF772A.5000301-tQ5ms3gMjBLk1uMJSBkQmQ@public.gmane.org>
On Thursday 07 September 2006 03:34, Larry Finger wrote:
> John,
>
> Please apply this patch by Martin Langer to wireless-2.6. It must follow the patch to "Add firmware
> version printout to wireless-2.6 (bcm43xx-softmac)". As originally submitted, the patch was
> appropriate for an obsolete version of bcm43xx-softmac, but I have updated and tested.
>
> Thanks,
>
> Larry
>
> This patch prints out the ucode debug status to sysfs. So, users can
> watch the microcode status of their hardware.
>
> Signed-off-by: Martin Langer <martin-langer-Mmb7MZpHnFY@public.gmane.org>
> Signed-off-by: Larry Finger <Larry.Finger-tQ5ms3gMjBLk1uMJSBkQmQ@public.gmane.org>
>
> =========================================
>
> diff --git a/drivers/net/wireless/bcm43xx/bcm43xx.h b/drivers/net/wireless/bcm43xx/bcm43xx.h
> index 62fd7e2..7c2163e 100644
> Index: wireless-2.6/drivers/net/wireless/bcm43xx/bcm43xx.h
> ===================================================================
> --- wireless-2.6.orig/drivers/net/wireless/bcm43xx/bcm43xx.h
> +++ wireless-2.6/drivers/net/wireless/bcm43xx/bcm43xx.h
> @@ -311,6 +311,7 @@
> #define BCM43xx_UCODE_PATCHLEVEL 0x0002
> #define BCM43xx_UCODE_DATE 0x0004
> #define BCM43xx_UCODE_TIME 0x0006
> +#define BCM43xx_UCODE_STATUS 0x0040
>
> /* MicrocodeFlagsBitfield (addr + lo-word values?)*/
> #define BCM43xx_UCODEFLAGS_OFFSET 0x005E
> Index: wireless-2.6/drivers/net/wireless/bcm43xx/bcm43xx_sysfs.c
> ===================================================================
> --- wireless-2.6.orig/drivers/net/wireless/bcm43xx/bcm43xx_sysfs.c
> +++ wireless-2.6/drivers/net/wireless/bcm43xx/bcm43xx_sysfs.c
> @@ -373,6 +373,56 @@ static DEVICE_ATTR(phymode, 0644,
> bcm43xx_attr_phymode_show,
> bcm43xx_attr_phymode_store);
>
> +static ssize_t bcm43xx_attr_microcode_show(struct device *dev,
> + struct device_attribute *attr,
> + char *buf)
> +{
> + struct bcm43xx_private *bcm = dev_to_bcm(dev);
> + ssize_t count = 0;
> + u16 status;
> +
> + if (!capable(CAP_NET_ADMIN))
> + return -EPERM;
> +
you want to take the spinlock lock here, too.
> + mutex_lock(&(bcm)->mutex);
> + status = bcm43xx_shm_read16(bcm, BCM43xx_SHM_SHARED,
> + BCM43xx_UCODE_STATUS);
can unlock both here.
> + switch (status) {
> + case 0x0000:
> + count = snprintf(buf, PAGE_SIZE, "0x%.4x (invalid)\n",
> + status);
> + break;
> + case 0x0001:
> + count = snprintf(buf, PAGE_SIZE, "0x%.4x (init)\n",
> + status);
> + break;
> + case 0x0002:
> + count = snprintf(buf, PAGE_SIZE, "0x%.4x (active)\n",
> + status);
> + break;
> + case 0x0003:
> + count = snprintf(buf, PAGE_SIZE, "0x%.4x (suspended)\n",
> + status);
> + break;
> + case 0x0004:
> + count = snprintf(buf, PAGE_SIZE, "0x%.4x (asleep)\n",
> + status);
> + break;
> + default:
> + count = snprintf(buf, PAGE_SIZE, "0x%.4x (unknown)\n",
> + status);
> + break;
> + }
> + mutex_unlock(&(bcm)->mutex);
> +
> + return count;
> +}
> +
> +static DEVICE_ATTR(microcodestatus, 0444,
> + bcm43xx_attr_microcode_show,
> + NULL);
> +
> int bcm43xx_sysfs_register(struct bcm43xx_private *bcm)
> {
> struct device *dev = &bcm->pci_dev->dev;
> @@ -392,9 +442,14 @@ int bcm43xx_sysfs_register(struct bcm43x
> err = device_create_file(dev, &dev_attr_phymode);
> if (err)
> goto err_remove_shortpreamble;
> + err = device_create_file(dev, &dev_attr_microcodestatus);
> + if (err)
> + goto err_remove_phymode;
>
> out:
> return err;
> +err_remove_phymode:
> + device_remove_file(dev, &dev_attr_phymode);
> err_remove_shortpreamble:
> device_remove_file(dev, &dev_attr_shortpreamble);
> err_remove_interfmode:
> @@ -408,6 +463,7 @@ void bcm43xx_sysfs_unregister(struct bcm
> {
> struct device *dev = &bcm->pci_dev->dev;
>
> + device_remove_file(dev, &dev_attr_microcodestatus);
> device_remove_file(dev, &dev_attr_phymode);
> device_remove_file(dev, &dev_attr_shortpreamble);
> device_remove_file(dev, &dev_attr_interference);
>
>
>
> ===========
>
--
Greetings Michael.
next prev parent reply other threads:[~2006-09-07 8:33 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20060904205340.GB3726@tuba>
[not found] ` <200609042256.54629.mb@bu3sch.de>
[not found] ` <20060905181232.GA4733@tuba>
2006-09-07 1:34 ` [PATCH] ucode debug status via sysfs for wireless-2.6 Larry Finger
[not found] ` <44FF772A.5000301-tQ5ms3gMjBLk1uMJSBkQmQ@public.gmane.org>
2006-09-07 8:33 ` Michael Buesch [this message]
[not found] ` <200609071033.52258.mb-fseUSCV1ubazQB+pC5nmwQ@public.gmane.org>
2006-09-07 13:21 ` Larry Finger
[not found] ` <45001CCA.1000304-tQ5ms3gMjBLk1uMJSBkQmQ@public.gmane.org>
2006-09-07 20:48 ` Michael Buesch
2006-09-07 21:05 ` Larry Finger
2006-09-07 15:12 ` [PATCH] Try 2: " Larry Finger
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200609071033.52258.mb@bu3sch.de \
--to=mb-fseuscv1ubazqb+pc5nmwq@public.gmane.org \
--cc=Larry.Finger-tQ5ms3gMjBLk1uMJSBkQmQ@public.gmane.org \
--cc=bcm43xx-dev-0fE9KPoRgkgATYTw5x5z8w@public.gmane.org \
--cc=linville-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org \
--cc=martin-langer-Mmb7MZpHnFY@public.gmane.org \
--cc=netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).