X-Git-Url: http://git.openwrt.org/?a=blobdiff_plain;f=package%2Fkernel%2Fmac80211%2Fpatches%2F339-v5.1-0009-brcmfmac-use-bphy_err-in-all-wiphy-related-code.patch;fp=package%2Fkernel%2Fmac80211%2Fpatches%2F339-v5.1-0009-brcmfmac-use-bphy_err-in-all-wiphy-related-code.patch;h=81b987a59de9daec0d65e85f78f4595a048eed36;hb=7da50e5f62a65671b51a42d93259bd1f7e3381a1;hp=066ad99e91435fdab5ee1d2d107563c7ec90d06d;hpb=a63907b3bbb07724d6526b20ae18ad90f351e954;p=openwrt%2Fopenwrt.git diff --git a/package/kernel/mac80211/patches/339-v5.1-0009-brcmfmac-use-bphy_err-in-all-wiphy-related-code.patch b/package/kernel/mac80211/patches/339-v5.1-0009-brcmfmac-use-bphy_err-in-all-wiphy-related-code.patch index 066ad99e91..81b987a59d 100644 --- a/package/kernel/mac80211/patches/339-v5.1-0009-brcmfmac-use-bphy_err-in-all-wiphy-related-code.patch +++ b/package/kernel/mac80211/patches/339-v5.1-0009-brcmfmac-use-bphy_err-in-all-wiphy-related-code.patch @@ -29,7 +29,7 @@ Signed-off-by: Kalle Valo --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcdc.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcdc.c -@@ -169,8 +169,8 @@ brcmf_proto_bcdc_query_dcmd(struct brcmf +@@ -177,8 +177,8 @@ brcmf_proto_bcdc_query_dcmd(struct brcmf ret = brcmf_proto_bcdc_msg(drvr, ifidx, cmd, buf, len, false); if (ret < 0) { @@ -40,7 +40,7 @@ Signed-off-by: Kalle Valo goto done; } -@@ -186,9 +186,9 @@ retry: +@@ -194,9 +194,9 @@ retry: if ((id < bcdc->reqid) && (++retries < RETRIES)) goto retry; if (id != bcdc->reqid) { @@ -53,7 +53,7 @@ Signed-off-by: Kalle Valo ret = -EINVAL; goto done; } -@@ -234,9 +234,9 @@ brcmf_proto_bcdc_set_dcmd(struct brcmf_p +@@ -242,9 +242,9 @@ brcmf_proto_bcdc_set_dcmd(struct brcmf_p id = (flags & BCDC_DCMD_ID_MASK) >> BCDC_DCMD_ID_SHIFT; if (id != bcdc->reqid) { @@ -66,7 +66,7 @@ Signed-off-by: Kalle Valo ret = -EINVAL; goto done; } -@@ -299,8 +299,8 @@ brcmf_proto_bcdc_hdrpull(struct brcmf_pu +@@ -307,8 +307,8 @@ brcmf_proto_bcdc_hdrpull(struct brcmf_pu } if (((h->flags & BCDC_FLAG_VER_MASK) >> BCDC_FLAG_VER_SHIFT) != BCDC_PROTO_VER) { @@ -77,7 +77,7 @@ Signed-off-by: Kalle Valo return -EBADE; } -@@ -379,7 +379,7 @@ int brcmf_proto_bcdc_attach(struct brcmf +@@ -450,7 +450,7 @@ int brcmf_proto_bcdc_attach(struct brcmf /* ensure that the msg buf directly follows the cdc msg struct */ if ((unsigned long)(&bcdc->msg + 1) != (unsigned long)bcdc->buf) { @@ -189,7 +189,7 @@ Signed-off-by: Kalle Valo --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c -@@ -90,7 +90,7 @@ struct brcmf_if *brcmf_get_ifp(struct br +@@ -89,7 +89,7 @@ struct brcmf_if *brcmf_get_ifp(struct br s32 bsscfgidx; if (ifidx < 0 || ifidx >= BRCMF_MAX_IFS) { @@ -198,7 +198,7 @@ Signed-off-by: Kalle Valo return NULL; } -@@ -104,7 +104,9 @@ struct brcmf_if *brcmf_get_ifp(struct br +@@ -103,7 +103,9 @@ struct brcmf_if *brcmf_get_ifp(struct br static void _brcmf_set_multicast_list(struct work_struct *work) { @@ -209,7 +209,7 @@ Signed-off-by: Kalle Valo struct net_device *ndev; struct netdev_hw_addr *ha; u32 cmd_value, cnt; -@@ -113,8 +115,6 @@ static void _brcmf_set_multicast_list(st +@@ -112,8 +114,6 @@ static void _brcmf_set_multicast_list(st u32 buflen; s32 err; @@ -218,7 +218,7 @@ Signed-off-by: Kalle Valo brcmf_dbg(TRACE, "Enter, bsscfgidx=%d\n", ifp->bsscfgidx); ndev = ifp->ndev; -@@ -144,7 +144,7 @@ static void _brcmf_set_multicast_list(st +@@ -143,7 +143,7 @@ static void _brcmf_set_multicast_list(st err = brcmf_fil_iovar_data_set(ifp, "mcast_list", buf, buflen); if (err < 0) { @@ -227,7 +227,7 @@ Signed-off-by: Kalle Valo cmd_value = cnt ? true : cmd_value; } -@@ -157,24 +157,24 @@ static void _brcmf_set_multicast_list(st +@@ -156,24 +156,24 @@ static void _brcmf_set_multicast_list(st */ err = brcmf_fil_iovar_int_set(ifp, "allmulti", cmd_value); if (err < 0) @@ -258,7 +258,7 @@ Signed-off-by: Kalle Valo /* clear the table in firmware */ ret = brcmf_fil_iovar_data_set(ifp, "nd_hostip_clear", NULL, 0); if (ret) { -@@ -187,7 +187,7 @@ static void _brcmf_update_ndtable(struct +@@ -186,7 +186,7 @@ static void _brcmf_update_ndtable(struct &ifp->ipv6_addr_tbl[i], sizeof(struct in6_addr)); if (ret) @@ -267,7 +267,7 @@ Signed-off-by: Kalle Valo } } #else -@@ -200,6 +200,7 @@ static int brcmf_netdev_set_mac_address( +@@ -199,6 +199,7 @@ static int brcmf_netdev_set_mac_address( { struct brcmf_if *ifp = netdev_priv(ndev); struct sockaddr *sa = (struct sockaddr *)addr; @@ -275,7 +275,7 @@ Signed-off-by: Kalle Valo int err; brcmf_dbg(TRACE, "Enter, bsscfgidx=%d\n", ifp->bsscfgidx); -@@ -207,7 +208,7 @@ static int brcmf_netdev_set_mac_address( +@@ -206,7 +207,7 @@ static int brcmf_netdev_set_mac_address( err = brcmf_fil_iovar_data_set(ifp, "cur_etheraddr", sa->sa_data, ETH_ALEN); if (err < 0) { @@ -284,7 +284,7 @@ Signed-off-by: Kalle Valo } else { brcmf_dbg(TRACE, "updated to %pM\n", sa->sa_data); memcpy(ifp->mac_addr, sa->sa_data, ETH_ALEN); -@@ -266,7 +267,7 @@ static netdev_tx_t brcmf_netdev_start_xm +@@ -265,7 +266,7 @@ static netdev_tx_t brcmf_netdev_start_xm /* Can the device send data? */ if (drvr->bus_if->state != BRCMF_BUS_UP) { @@ -293,7 +293,7 @@ Signed-off-by: Kalle Valo netif_stop_queue(ndev); dev_kfree_skb(skb); ret = -ENODEV; -@@ -604,7 +605,7 @@ static int brcmf_netdev_open(struct net_ +@@ -575,7 +576,7 @@ static int brcmf_netdev_open(struct net_ /* If bus is not ready, can't continue */ if (bus_if->state != BRCMF_BUS_UP) { @@ -302,7 +302,7 @@ Signed-off-by: Kalle Valo return -EAGAIN; } -@@ -618,7 +619,7 @@ static int brcmf_netdev_open(struct net_ +@@ -589,7 +590,7 @@ static int brcmf_netdev_open(struct net_ ndev->features &= ~NETIF_F_IP_CSUM; if (brcmf_cfg80211_up(ndev)) { @@ -311,7 +311,7 @@ Signed-off-by: Kalle Valo return -EIO; } -@@ -663,7 +664,7 @@ int brcmf_net_attach(struct brcmf_if *if +@@ -635,7 +636,7 @@ int brcmf_net_attach(struct brcmf_if *if else err = register_netdev(ndev); if (err != 0) { @@ -320,7 +320,7 @@ Signed-off-by: Kalle Valo goto fail; } -@@ -739,6 +740,7 @@ static const struct net_device_ops brcmf +@@ -711,6 +712,7 @@ static const struct net_device_ops brcmf static int brcmf_net_p2p_attach(struct brcmf_if *ifp) { @@ -328,7 +328,7 @@ Signed-off-by: Kalle Valo struct net_device *ndev; brcmf_dbg(TRACE, "Enter, bsscfgidx=%d mac=%pM\n", ifp->bsscfgidx, -@@ -751,7 +753,7 @@ static int brcmf_net_p2p_attach(struct b +@@ -723,7 +725,7 @@ static int brcmf_net_p2p_attach(struct b memcpy(ndev->dev_addr, ifp->mac_addr, ETH_ALEN); if (register_netdev(ndev) != 0) { @@ -337,7 +337,7 @@ Signed-off-by: Kalle Valo goto fail; } -@@ -781,8 +783,8 @@ struct brcmf_if *brcmf_add_if(struct brc +@@ -753,8 +755,8 @@ struct brcmf_if *brcmf_add_if(struct brc */ if (ifp) { if (ifidx) { @@ -348,7 +348,7 @@ Signed-off-by: Kalle Valo netif_stop_queue(ifp->ndev); brcmf_net_detach(ifp->ndev, false); drvr->iflist[bsscfgidx] = NULL; -@@ -840,7 +842,7 @@ static void brcmf_del_if(struct brcmf_pu +@@ -812,7 +814,7 @@ static void brcmf_del_if(struct brcmf_pu ifp = drvr->iflist[bsscfgidx]; drvr->iflist[bsscfgidx] = NULL; if (!ifp) { @@ -357,7 +357,7 @@ Signed-off-by: Kalle Valo return; } brcmf_dbg(TRACE, "Enter, bsscfgidx=%d, ifidx=%d\n", bsscfgidx, -@@ -890,16 +892,17 @@ static int brcmf_psm_watchdog_notify(str +@@ -862,16 +864,17 @@ static int brcmf_psm_watchdog_notify(str const struct brcmf_event_msg *evtmsg, void *data) { @@ -377,7 +377,7 @@ Signed-off-by: Kalle Valo return err; } -@@ -943,7 +946,7 @@ static int brcmf_inetaddr_changed(struct +@@ -915,7 +918,7 @@ static int brcmf_inetaddr_changed(struct ret = brcmf_fil_iovar_data_get(ifp, "arp_hostip", addr_table, sizeof(addr_table)); if (ret) { @@ -386,7 +386,7 @@ Signed-off-by: Kalle Valo return NOTIFY_OK; } -@@ -960,7 +963,7 @@ static int brcmf_inetaddr_changed(struct +@@ -932,7 +935,7 @@ static int brcmf_inetaddr_changed(struct ret = brcmf_fil_iovar_data_set(ifp, "arp_hostip", &ifa->ifa_address, sizeof(ifa->ifa_address)); if (ret) @@ -395,7 +395,7 @@ Signed-off-by: Kalle Valo } break; case NETDEV_DOWN: -@@ -972,8 +975,8 @@ static int brcmf_inetaddr_changed(struct +@@ -944,8 +947,8 @@ static int brcmf_inetaddr_changed(struct ret = brcmf_fil_iovar_data_set(ifp, "arp_hostip_clear", NULL, 0); if (ret) { @@ -406,7 +406,7 @@ Signed-off-by: Kalle Valo return NOTIFY_OK; } for (i = 0; i < ARPOL_MAX_ENTRIES; i++) { -@@ -983,8 +986,8 @@ static int brcmf_inetaddr_changed(struct +@@ -955,8 +958,8 @@ static int brcmf_inetaddr_changed(struct &addr_table[i], sizeof(addr_table[i])); if (ret) @@ -417,7 +417,7 @@ Signed-off-by: Kalle Valo } } break; -@@ -1161,7 +1164,7 @@ int brcmf_bus_started(struct device *dev +@@ -1133,7 +1136,7 @@ int brcmf_bus_started(struct device *dev return 0; fail: @@ -426,7 +426,7 @@ Signed-off-by: Kalle Valo if (drvr->config) { brcmf_cfg80211_detach(drvr->config); drvr->config = NULL; -@@ -1220,7 +1223,7 @@ int brcmf_attach(struct device *dev, str +@@ -1188,7 +1191,7 @@ int brcmf_attach(struct device *dev, str /* Attach and link in the protocol */ ret = brcmf_proto_attach(drvr); if (ret != 0) { @@ -435,7 +435,7 @@ Signed-off-by: Kalle Valo goto fail; } -@@ -1330,6 +1333,7 @@ static int brcmf_get_pend_8021x_cnt(stru +@@ -1296,6 +1299,7 @@ static int brcmf_get_pend_8021x_cnt(stru int brcmf_netdev_wait_pend8021x(struct brcmf_if *ifp) { @@ -443,7 +443,7 @@ Signed-off-by: Kalle Valo int err; err = wait_event_timeout(ifp->pend_8021x_wait, -@@ -1337,7 +1341,7 @@ int brcmf_netdev_wait_pend8021x(struct b +@@ -1303,7 +1307,7 @@ int brcmf_netdev_wait_pend8021x(struct b MAX_WAIT_FOR_8021X_TX); if (!err) @@ -523,7 +523,7 @@ Signed-off-by: Kalle Valo @@ -181,7 +182,8 @@ static void brcmf_fweh_handle_if_event(s if (ifp && ifevent->action == BRCMF_E_IF_CHANGE) - brcmf_fws_reset_interface(ifp); + brcmf_proto_reset_if(drvr, ifp); - err = brcmf_fweh_call_event_handler(ifp, emsg->event_code, emsg, data); + err = brcmf_fweh_call_event_handler(drvr, ifp, emsg->event_code, emsg, @@ -622,7 +622,7 @@ Signed-off-by: Kalle Valo ifp->bsscfgidx, name, len); --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c -@@ -1250,6 +1250,7 @@ static int brcmf_fws_enq(struct brcmf_fw +@@ -1251,6 +1251,7 @@ static int brcmf_fws_enq(struct brcmf_fw enum brcmf_fws_skb_state state, int fifo, struct sk_buff *p) { @@ -630,7 +630,7 @@ Signed-off-by: Kalle Valo int prec = 2 * fifo; u32 *qfull_stat = &fws->stats.delayq_full_error; struct brcmf_fws_mac_descriptor *entry; -@@ -1262,7 +1263,7 @@ static int brcmf_fws_enq(struct brcmf_fw +@@ -1263,7 +1264,7 @@ static int brcmf_fws_enq(struct brcmf_fw entry = brcmf_skbcb(p)->mac; if (entry == NULL) { @@ -639,7 +639,7 @@ Signed-off-by: Kalle Valo return -ENOENT; } -@@ -1452,6 +1453,7 @@ static int +@@ -1453,6 +1454,7 @@ static int brcmf_fws_txs_process(struct brcmf_fws_info *fws, u8 flags, u32 hslot, u32 genbit, u16 seq) { @@ -647,7 +647,7 @@ Signed-off-by: Kalle Valo u32 fifo; int ret; bool remove_from_hanger = true; -@@ -1475,12 +1477,12 @@ brcmf_fws_txs_process(struct brcmf_fws_i +@@ -1476,12 +1478,12 @@ brcmf_fws_txs_process(struct brcmf_fws_i else if (flags == BRCMF_FWS_TXSTATUS_HOST_TOSSED) fws->stats.txs_host_tossed++; else @@ -662,13 +662,13 @@ Signed-off-by: Kalle Valo return ret; } -@@ -1586,12 +1588,13 @@ static int brcmf_fws_notify_credit_map(s +@@ -1587,12 +1589,13 @@ static int brcmf_fws_notify_credit_map(s const struct brcmf_event_msg *e, void *data) { -- struct brcmf_fws_info *fws = ifp->drvr->fws; +- struct brcmf_fws_info *fws = drvr_to_fws(ifp->drvr); + struct brcmf_pub *drvr = ifp->drvr; -+ struct brcmf_fws_info *fws = drvr->fws; ++ struct brcmf_fws_info *fws = drvr_to_fws(drvr); int i; u8 *credits = data; @@ -678,7 +678,7 @@ Signed-off-by: Kalle Valo return -EINVAL; } if (fws->creditmap_received) -@@ -1653,6 +1656,7 @@ static void brcmf_rxreorder_get_skb_list +@@ -1654,6 +1657,7 @@ static void brcmf_rxreorder_get_skb_list void brcmf_fws_rxreorder(struct brcmf_if *ifp, struct sk_buff *pkt) { @@ -686,7 +686,7 @@ Signed-off-by: Kalle Valo u8 *reorder_data; u8 flow_id, max_idx, cur_idx, exp_idx, end_idx; struct brcmf_ampdu_rx_reorder *rfi; -@@ -1667,7 +1671,7 @@ void brcmf_fws_rxreorder(struct brcmf_if +@@ -1668,7 +1672,7 @@ void brcmf_fws_rxreorder(struct brcmf_if /* validate flags and flow id */ if (flags == 0xFF) { @@ -695,7 +695,7 @@ Signed-off-by: Kalle Valo brcmf_netif_rx(ifp, pkt); return; } -@@ -1704,7 +1708,7 @@ void brcmf_fws_rxreorder(struct brcmf_if +@@ -1705,7 +1709,7 @@ void brcmf_fws_rxreorder(struct brcmf_if flow_id, max_idx); rfi = kzalloc(buf_size, GFP_ATOMIC); if (rfi == NULL) { @@ -704,7 +704,7 @@ Signed-off-by: Kalle Valo brcmf_netif_rx(ifp, pkt); return; } -@@ -1969,6 +1973,7 @@ static u8 brcmf_fws_precommit_skb(struct +@@ -1970,6 +1974,7 @@ static u8 brcmf_fws_precommit_skb(struct static void brcmf_fws_rollback_toq(struct brcmf_fws_info *fws, struct sk_buff *skb, int fifo) { @@ -712,7 +712,7 @@ Signed-off-by: Kalle Valo struct brcmf_fws_mac_descriptor *entry; struct sk_buff *pktout; int qidx, hslot; -@@ -1982,11 +1987,11 @@ static void brcmf_fws_rollback_toq(struc +@@ -1983,11 +1988,11 @@ static void brcmf_fws_rollback_toq(struc pktout = brcmu_pktq_penq_head(&entry->psq, qidx, skb); if (pktout == NULL) { @@ -726,7 +726,17 @@ Signed-off-by: Kalle Valo rc = -ENOENT; } -@@ -2120,7 +2125,7 @@ int brcmf_fws_process_skb(struct brcmf_i +@@ -2092,7 +2097,8 @@ static int brcmf_fws_assign_htod(struct + + int brcmf_fws_process_skb(struct brcmf_if *ifp, struct sk_buff *skb) + { +- struct brcmf_fws_info *fws = drvr_to_fws(ifp->drvr); ++ struct brcmf_pub *drvr = ifp->drvr; ++ struct brcmf_fws_info *fws = drvr_to_fws(drvr); + struct brcmf_skbuff_cb *skcb = brcmf_skbcb(skb); + struct ethhdr *eh = (struct ethhdr *)(skb->data); + int fifo = BRCMF_FWS_FIFO_BCMC; +@@ -2120,7 +2126,7 @@ int brcmf_fws_process_skb(struct brcmf_i brcmf_fws_enq(fws, BRCMF_FWS_SKBSTATE_DELAYED, fifo, skb); brcmf_fws_schedule_deq(fws); } else { @@ -735,7 +745,7 @@ Signed-off-by: Kalle Valo brcmf_txfinalize(ifp, skb, false); rc = -ENOMEM; } -@@ -2339,7 +2344,7 @@ int brcmf_fws_init(struct brcmf_pub *drv +@@ -2338,7 +2344,7 @@ struct brcmf_fws_info *brcmf_fws_attach( fws->fws_wq = create_singlethread_workqueue("brcmf_fws_wq"); if (fws->fws_wq == NULL) { @@ -744,7 +754,7 @@ Signed-off-by: Kalle Valo rc = -EBADF; goto fail; } -@@ -2355,13 +2360,13 @@ int brcmf_fws_init(struct brcmf_pub *drv +@@ -2354,13 +2360,13 @@ struct brcmf_fws_info *brcmf_fws_attach( rc = brcmf_fweh_register(drvr, BRCMF_E_FIFO_CREDIT_MAP, brcmf_fws_notify_credit_map); if (rc < 0) { @@ -760,7 +770,7 @@ Signed-off-by: Kalle Valo brcmf_fweh_unregister(drvr, BRCMF_E_FIFO_CREDIT_MAP); goto fail; } -@@ -2373,7 +2378,7 @@ int brcmf_fws_init(struct brcmf_pub *drv +@@ -2372,7 +2378,7 @@ struct brcmf_fws_info *brcmf_fws_attach( fws->fw_signals = true; ifp = brcmf_get_ifp(drvr, 0); if (brcmf_fil_iovar_int_set(ifp, "tlv", tlv)) { @@ -1549,10 +1559,10 @@ Signed-off-by: Kalle Valo struct cfg80211_sched_scan_request *req) { + struct brcmf_pub *drvr = ifp->drvr; - struct brcmu_d11inf *d11inf; struct brcmf_pno_config_le pno_cfg; struct cfg80211_ssid *ssid; -@@ -191,7 +195,7 @@ int brcmf_pno_start_sched_scan(struct br + u16 chan; +@@ -190,7 +194,7 @@ int brcmf_pno_start_sched_scan(struct br /* clean up everything */ ret = brcmf_pno_clean(ifp); if (ret < 0) {