123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
- index f7961b22e051..c3f51e123990 100644
- --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
- +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
- @@ -4431,6 +4431,55 @@ brcmf_sdio_prepare_fw_request(struct brcmf_sdio *bus)
- return fwreq;
- }
-
- +static char brcmf_fw_name[BRCMF_FW_NAME_LEN];
- +
- +#ifdef CONFIG_PROC_FS
- +#include <linux/proc_fs.h>
- +
- +static int brcmf_sdio_proc_show(struct seq_file *m, void *v)
- +{
- + seq_printf(m, "brcmf_sdio\n");
- + return 0;
- +}
- +
- +static int brcmf_sdio_proc_open(struct inode *inode, struct file *file)
- +{
- + return single_open(file, brcmf_sdio_proc_show, NULL);
- +}
- +
- +static ssize_t brcmf_sdio_proc_read(struct file * file, char __user * buf, size_t size, loff_t * loff)
- +{
- + int len;
- + len = strlen(brcmf_fw_name);
- + return simple_read_from_buffer(buf, size, loff, brcmf_fw_name, len);
- +}
- +
- +static ssize_t brcmf_sdio_proc_write(struct file * file, const char __user * buf, size_t size, loff_t * loff)
- +{
- + return size;
- +}
- +
- +static const struct proc_ops brcmf_sdio_proc_fops = {
- + .proc_open = brcmf_sdio_proc_open,
- + .proc_read = brcmf_sdio_proc_read,
- + .proc_write = brcmf_sdio_proc_write,
- + .proc_lseek = seq_lseek,
- + .proc_release = single_release,
- +};
- +
- +static int __init brcmf_sdio_proc_init(void)
- +{
- + struct proc_dir_entry *r;
- +
- + r = proc_create("driver/brcmf_fw", S_IRWXUGO, NULL, &brcmf_sdio_proc_fops);
- + if (!r)
- + return -ENOMEM;
- + return 0;
- +}
- +#else
- +static inline int brcmf_sdio_proc_init(void) { return 0; }
- +#endif /* CONFIG_PROC_FS */
- +
- struct brcmf_sdio *brcmf_sdio_probe(struct brcmf_sdio_dev *sdiodev)
- {
- int ret;
- @@ -4439,6 +4488,7 @@ struct brcmf_sdio *brcmf_sdio_probe(struct brcmf_sdio_dev *sdiodev)
- struct brcmf_fw_request *fwreq;
-
- brcmf_dbg(TRACE, "Enter\n");
- + msleep(1000);
-
- /* Allocate private bus interface state */
- bus = kzalloc(sizeof(struct brcmf_sdio), GFP_ATOMIC);
- @@ -4533,6 +4583,9 @@ struct brcmf_sdio *brcmf_sdio_probe(struct brcmf_sdio_dev *sdiodev)
- goto fail;
- }
-
- + sprintf(brcmf_fw_name, "%s\n", sdiodev->fw_name);
- + brcmf_sdio_proc_init();
- +
- return bus;
-
- fail:
|