Next commits will replace WL_ERROR with dev_err and friends. Because these functions require a linux device object, device object pointers have been added to three data structures. Signed-off-by: Roland Vossen <rvossen@xxxxxxxxxxxx> Reviewed-by: Arend van Spriel <arend@xxxxxxxxxxxx> --- .../staging/brcm80211/brcmsmac/phy/wlc_phy_cmn.c | 4 +++- .../staging/brcm80211/brcmsmac/phy/wlc_phy_hal.h | 2 +- .../staging/brcm80211/brcmsmac/phy/wlc_phy_int.h | 1 + drivers/staging/brcm80211/brcmsmac/wl_mac80211.c | 4 +++- drivers/staging/brcm80211/brcmsmac/wl_mac80211.h | 1 + drivers/staging/brcm80211/brcmsmac/wlc_bmac.c | 3 ++- drivers/staging/brcm80211/brcmsmac/wlc_main.c | 4 +++- drivers/staging/brcm80211/brcmsmac/wlc_main.h | 1 + drivers/staging/brcm80211/brcmsmac/wlc_pub.h | 2 +- 9 files changed, 16 insertions(+), 6 deletions(-) diff --git a/drivers/staging/brcm80211/brcmsmac/phy/wlc_phy_cmn.c b/drivers/staging/brcm80211/brcmsmac/phy/wlc_phy_cmn.c index 2631382..b2aff08 100644 --- a/drivers/staging/brcm80211/brcmsmac/phy/wlc_phy_cmn.c +++ b/drivers/staging/brcm80211/brcmsmac/phy/wlc_phy_cmn.c @@ -586,7 +586,8 @@ void wlc_phy_shared_detach(shared_phy_t *phy_sh) } } -wlc_phy_t *wlc_phy_attach(shared_phy_t *sh, void *regs, int bandtype, char *vars) +wlc_phy_t *wlc_phy_attach(shared_phy_t *sh, void *regs, int bandtype, + char *vars, struct device *dev) { phy_info_t *pi; u32 sflags = 0; @@ -616,6 +617,7 @@ wlc_phy_t *wlc_phy_attach(shared_phy_t *sh, void *regs, int bandtype, char *vars if (pi == NULL) { return NULL; } + pi->dev = dev; pi->regs = (d11regs_t *) regs; pi->sh = sh; pi->phy_init_por = true; diff --git a/drivers/staging/brcm80211/brcmsmac/phy/wlc_phy_hal.h b/drivers/staging/brcm80211/brcmsmac/phy/wlc_phy_hal.h index 8882ab4..d839ca9 100644 --- a/drivers/staging/brcm80211/brcmsmac/phy/wlc_phy_hal.h +++ b/drivers/staging/brcm80211/brcmsmac/phy/wlc_phy_hal.h @@ -149,7 +149,7 @@ typedef struct shared_phy_params { extern shared_phy_t *wlc_phy_shared_attach(shared_phy_params_t *shp); extern void wlc_phy_shared_detach(shared_phy_t *phy_sh); extern wlc_phy_t *wlc_phy_attach(shared_phy_t *sh, void *regs, int bandtype, - char *vars); + char *vars, struct device *dev); extern void wlc_phy_detach(wlc_phy_t *ppi); extern bool wlc_phy_get_phyversion(wlc_phy_t *pih, u16 *phytype, diff --git a/drivers/staging/brcm80211/brcmsmac/phy/wlc_phy_int.h b/drivers/staging/brcm80211/brcmsmac/phy/wlc_phy_int.h index 6e12a95..479a9b0 100644 --- a/drivers/staging/brcm80211/brcmsmac/phy/wlc_phy_int.h +++ b/drivers/staging/brcm80211/brcmsmac/phy/wlc_phy_int.h @@ -936,6 +936,7 @@ struct phy_info { u8 phycal_tempdelta; u32 mcs20_po; u32 mcs40_po; + struct device *dev; }; typedef s32 fixed; diff --git a/drivers/staging/brcm80211/brcmsmac/wl_mac80211.c b/drivers/staging/brcm80211/brcmsmac/wl_mac80211.c index 723f280..bf18cfc 100644 --- a/drivers/staging/brcm80211/brcmsmac/wl_mac80211.c +++ b/drivers/staging/brcm80211/brcmsmac/wl_mac80211.c @@ -745,6 +745,7 @@ static struct wl_info *wl_attach(u16 vendor, u16 device, unsigned long regs, hw = pci_get_drvdata(btparam); /* btparam == pdev */ wl = hw->priv; ASSERT(wl); + wl->dev = &hw->wiphy->dev; atomic_set(&wl->callbacks, 0); @@ -784,7 +785,8 @@ static struct wl_info *wl_attach(u16 vendor, u16 device, unsigned long regs, /* common load-time initialization */ wl->wlc = wlc_attach((void *)wl, vendor, device, unit, wl->piomode, - wl->regsva, wl->bcm_bustype, btparam, &err); + wl->regsva, wl->bcm_bustype, btparam, &err, + &hw->wiphy->dev); wl_release_fw(wl); if (!wl->wlc) { WL_ERROR("%s: wlc_attach() failed with code %d\n", diff --git a/drivers/staging/brcm80211/brcmsmac/wl_mac80211.h b/drivers/staging/brcm80211/brcmsmac/wl_mac80211.h index f3198cc..6b0d4e0 100644 --- a/drivers/staging/brcm80211/brcmsmac/wl_mac80211.h +++ b/drivers/staging/brcm80211/brcmsmac/wl_mac80211.h @@ -72,6 +72,7 @@ struct wl_info { /* ping-pong stats counters updated by Linux watchdog */ struct net_device_stats stats_watchdog[2]; struct wl_firmware fw; + struct device *dev; /* linux device object */ }; #define WL_LOCK(wl) spin_lock_bh(&(wl)->lock) diff --git a/drivers/staging/brcm80211/brcmsmac/wlc_bmac.c b/drivers/staging/brcm80211/brcmsmac/wlc_bmac.c index eead5dc..46b81e9 100644 --- a/drivers/staging/brcm80211/brcmsmac/wlc_bmac.c +++ b/drivers/staging/brcm80211/brcmsmac/wlc_bmac.c @@ -857,7 +857,8 @@ int wlc_bmac_attach(struct wlc_info *wlc, u16 vendor, u16 device, uint unit, /* Get a phy for this band */ wlc_hw->band->pi = wlc_phy_attach(wlc_hw->phy_sh, - (void *)regs, wlc_bmac_bandtype(wlc_hw), vars); + (void *)regs, wlc_bmac_bandtype(wlc_hw), vars, + wlc->dev); if (wlc_hw->band->pi == NULL) { WL_ERROR("wl%d: wlc_bmac_attach: wlc_phy_attach failed\n", unit); diff --git a/drivers/staging/brcm80211/brcmsmac/wlc_main.c b/drivers/staging/brcm80211/brcmsmac/wlc_main.c index cf7b51a..b0f58f7 100644 --- a/drivers/staging/brcm80211/brcmsmac/wlc_main.c +++ b/drivers/staging/brcm80211/brcmsmac/wlc_main.c @@ -1676,7 +1676,8 @@ struct wlc_pub *wlc_pub(void *wlc) * The common driver entry routine. Error codes should be unique */ void *wlc_attach(void *wl, u16 vendor, u16 device, uint unit, bool piomode, - void *regsva, uint bustype, void *btparam, uint *perr) + void *regsva, uint bustype, void *btparam, uint *perr, + struct device *dev) { struct wlc_info *wlc; uint err = 0; @@ -1721,6 +1722,7 @@ void *wlc_attach(void *wl, u16 vendor, u16 device, uint unit, bool piomode, wlc = (struct wlc_info *) wlc_attach_malloc(unit, &err, device); if (wlc == NULL) goto fail; + wlc->dev = dev; pub = wlc->pub; #if defined(BCMDBG) diff --git a/drivers/staging/brcm80211/brcmsmac/wlc_main.h b/drivers/staging/brcm80211/brcmsmac/wlc_main.h index 94dec68..77a5f07 100644 --- a/drivers/staging/brcm80211/brcmsmac/wlc_main.h +++ b/drivers/staging/brcm80211/brcmsmac/wlc_main.h @@ -757,6 +757,7 @@ struct wlc_info { */ bool pr80838_war; uint hwrxoff; + struct device *dev; /* Linux device object */ }; /* antsel module specific state */ diff --git a/drivers/staging/brcm80211/brcmsmac/wlc_pub.h b/drivers/staging/brcm80211/brcmsmac/wlc_pub.h index 8812eca..0863c10 100644 --- a/drivers/staging/brcm80211/brcmsmac/wlc_pub.h +++ b/drivers/staging/brcm80211/brcmsmac/wlc_pub.h @@ -481,7 +481,7 @@ extern const u8 wme_fifo2ac[]; /* common functions for every port */ extern void *wlc_attach(void *wl, u16 vendor, u16 device, uint unit, bool piomode, void *regsva, uint bustype, void *btparam, - uint *perr); + uint *perr, struct device *dev); extern uint wlc_detach(struct wlc_info *wlc); extern int wlc_up(struct wlc_info *wlc); extern uint wlc_down(struct wlc_info *wlc); -- 1.7.1 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/devel