Commit 75d907d3 authored by Arend van Spriel's avatar Arend van Spriel Committed by John W. Linville

brcmfmac: add chip information to the bus interface

Extend the bus interface with chip identifier and revision. This
will be used when certain devices need special handling in the
driver.
Reviewed-by: default avatarHante Meuleman <meuleman@broadcom.com>
Reviewed-by: default avatarPieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: default avatarPiotr Haber <phaber@broadcom.com>
Signed-off-by: default avatarArend van Spriel <arend@broadcom.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 1701261d
...@@ -64,6 +64,8 @@ struct brcmf_bus_ops { ...@@ -64,6 +64,8 @@ struct brcmf_bus_ops {
* @dstats: dongle-based statistical data. * @dstats: dongle-based statistical data.
* @align: alignment requirement for the bus. * @align: alignment requirement for the bus.
* @dcmd_list: bus/device specific dongle initialization commands. * @dcmd_list: bus/device specific dongle initialization commands.
* @chip: device identifier of the dongle chip.
* @chiprev: revision of the dongle chip.
*/ */
struct brcmf_bus { struct brcmf_bus {
union { union {
...@@ -76,6 +78,8 @@ struct brcmf_bus { ...@@ -76,6 +78,8 @@ struct brcmf_bus {
uint maxctl; uint maxctl;
unsigned long tx_realloc; unsigned long tx_realloc;
u8 align; u8 align;
u32 chip;
u32 chiprev;
struct list_head dcmd_list; struct list_head dcmd_list;
struct brcmf_bus_ops *ops; struct brcmf_bus_ops *ops;
......
...@@ -3927,6 +3927,8 @@ void *brcmf_sdbrcm_probe(u32 regsva, struct brcmf_sdio_dev *sdiodev) ...@@ -3927,6 +3927,8 @@ void *brcmf_sdbrcm_probe(u32 regsva, struct brcmf_sdio_dev *sdiodev)
/* Assign bus interface call back */ /* Assign bus interface call back */
bus->sdiodev->bus_if->dev = bus->sdiodev->dev; bus->sdiodev->bus_if->dev = bus->sdiodev->dev;
bus->sdiodev->bus_if->ops = &brcmf_sdio_bus_ops; bus->sdiodev->bus_if->ops = &brcmf_sdio_bus_ops;
bus->sdiodev->bus_if->chip = bus->ci->chip;
bus->sdiodev->bus_if->chiprev = bus->ci->chiprev;
/* Attach to the brcmf/OS/network interface */ /* Attach to the brcmf/OS/network interface */
ret = brcmf_attach(SDPCM_RESERVE, bus->sdiodev->dev); ret = brcmf_attach(SDPCM_RESERVE, bus->sdiodev->dev);
......
...@@ -1250,6 +1250,8 @@ static int brcmf_usb_probe_cb(struct brcmf_usbdev_info *devinfo) ...@@ -1250,6 +1250,8 @@ static int brcmf_usb_probe_cb(struct brcmf_usbdev_info *devinfo)
bus->bus_priv.usb = bus_pub; bus->bus_priv.usb = bus_pub;
dev_set_drvdata(dev, bus); dev_set_drvdata(dev, bus);
bus->ops = &brcmf_usb_bus_ops; bus->ops = &brcmf_usb_bus_ops;
bus->chip = bus_pub->devid;
bus->chiprev = bus_pub->chiprev;
/* Attach to the common driver interface */ /* Attach to the common driver interface */
ret = brcmf_attach(0, dev); ret = brcmf_attach(0, dev);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment