kmod-sched-cake: bump to 20180827
[openwrt/staging/wigyori.git] / package / kernel / mac80211 / patches / 325-v4.17-0006-brcmfmac-remove-brcmf_bus_started-from-bus-api.patch
1 From de2a3027f6f15e2f6558dc4d178282ccc1f054db Mon Sep 17 00:00:00 2001
2 From: Arend Van Spriel <arend.vanspriel@broadcom.com>
3 Date: Tue, 20 Feb 2018 00:14:23 +0100
4 Subject: [PATCH] brcmfmac: remove brcmf_bus_started() from bus api
5
6 No longer needed to call this in bus layer so make it static and call
7 it in the last phase of brcmf_attach() instead.
8
9 Reviewed-by: Hante Meuleman <hante.meuleman@broadcom.com>
10 Reviewed-by: Pieter-Paul Giesberts <pieter-paul.giesberts@broadcom.com>
11 Reviewed-by: Franky Lin <franky.lin@broadcom.com>
12 Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com>
13 Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
14 ---
15 .../net/wireless/broadcom/brcm80211/brcmfmac/bus.h | 1 -
16 .../wireless/broadcom/brcm80211/brcmfmac/core.c | 14 +++++++----
17 .../wireless/broadcom/brcm80211/brcmfmac/pcie.c | 20 +---------------
18 .../wireless/broadcom/brcm80211/brcmfmac/sdio.c | 10 ++------
19 .../net/wireless/broadcom/brcm80211/brcmfmac/usb.c | 28 ++++------------------
20 5 files changed, 16 insertions(+), 57 deletions(-)
21
22 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bus.h
23 +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bus.h
24 @@ -253,7 +253,6 @@ void brcmf_dev_reset(struct device *dev)
25 /* Configure the "global" bus state used by upper layers */
26 void brcmf_bus_change_state(struct brcmf_bus *bus, enum brcmf_bus_state state);
27
28 -int brcmf_bus_started(struct device *dev);
29 s32 brcmf_iovar_data_set(struct device *dev, char *name, void *data, u32 len);
30 void brcmf_bus_add_txhdrlen(struct device *dev, uint len);
31
32 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
33 +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
34 @@ -1022,11 +1022,10 @@ static int brcmf_revinfo_read(struct seq
35 return 0;
36 }
37
38 -int brcmf_bus_started(struct device *dev)
39 +static int brcmf_bus_started(struct brcmf_pub *drvr)
40 {
41 int ret = -1;
42 - struct brcmf_bus *bus_if = dev_get_drvdata(dev);
43 - struct brcmf_pub *drvr = bus_if->drvr;
44 + struct brcmf_bus *bus_if = drvr->bus_if;
45 struct brcmf_if *ifp;
46 struct brcmf_if *p2p_ifp;
47
48 @@ -1043,7 +1042,7 @@ int brcmf_bus_started(struct device *dev
49 brcmf_bus_change_state(bus_if, BRCMF_BUS_UP);
50
51 /* do bus specific preinit here */
52 - ret = brcmf_bus_preinit(ifp->drvr->bus_if);
53 + ret = brcmf_bus_preinit(bus_if);
54 if (ret < 0)
55 goto fail;
56
57 @@ -1163,7 +1162,12 @@ int brcmf_attach(struct device *dev, str
58 /* attach firmware event handler */
59 brcmf_fweh_attach(drvr);
60
61 - return ret;
62 + ret = brcmf_bus_started(drvr);
63 + if (ret != 0) {
64 + brcmf_err("dongle is not responding: err=%d\n", ret);
65 + goto fail;
66 + }
67 + return 0;
68
69 fail:
70 brcmf_detach(dev);
71 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c
72 +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c
73 @@ -1581,24 +1581,6 @@ static void brcmf_pcie_release_resource(
74 }
75
76
77 -static int brcmf_pcie_attach_bus(struct brcmf_pciedev_info *devinfo)
78 -{
79 - int ret;
80 -
81 - /* Attach to the common driver interface */
82 - ret = brcmf_attach(&devinfo->pdev->dev, devinfo->settings);
83 - if (ret) {
84 - brcmf_err("brcmf_attach failed\n");
85 - } else {
86 - ret = brcmf_bus_started(&devinfo->pdev->dev);
87 - if (ret)
88 - brcmf_err("dongle is not responding\n");
89 - }
90 -
91 - return ret;
92 -}
93 -
94 -
95 static u32 brcmf_pcie_buscore_prep_addr(const struct pci_dev *pdev, u32 addr)
96 {
97 u32 ret_addr;
98 @@ -1735,7 +1717,7 @@ static void brcmf_pcie_setup(struct devi
99 init_waitqueue_head(&devinfo->mbdata_resp_wait);
100
101 brcmf_pcie_intr_enable(devinfo);
102 - if (brcmf_pcie_attach_bus(devinfo) == 0)
103 + if (brcmf_attach(&devinfo->pdev->dev, devinfo->settings) == 0)
104 return;
105
106 brcmf_pcie_bus_console_read(devinfo);
107 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
108 +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
109 @@ -3422,6 +3422,8 @@ static int brcmf_sdio_bus_preinit(struct
110 if (bus->rxbuf)
111 bus->rxblen = value;
112
113 + brcmf_sdio_debugfs_create(bus);
114 +
115 /* the commands below use the terms tx and rx from
116 * a device perspective, ie. bus:txglom affects the
117 * bus transfers from device to host.
118 @@ -4136,14 +4138,6 @@ static void brcmf_sdio_firmware_callback
119 goto fail;
120 }
121
122 - brcmf_sdio_debugfs_create(bus);
123 -
124 - err = brcmf_bus_started(dev);
125 - if (err != 0) {
126 - brcmf_err("dongle is not responding\n");
127 - goto fail;
128 - }
129 -
130 /* ready */
131 return;
132
133 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/usb.c
134 +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/usb.c
135 @@ -1155,27 +1155,6 @@ static const struct brcmf_bus_ops brcmf_
136 .get_fwname = brcmf_usb_get_fwname,
137 };
138
139 -static int brcmf_usb_bus_setup(struct brcmf_usbdev_info *devinfo)
140 -{
141 - int ret;
142 -
143 - /* Attach to the common driver interface */
144 - ret = brcmf_attach(devinfo->dev, devinfo->settings);
145 - if (ret) {
146 - brcmf_err("brcmf_attach failed\n");
147 - return ret;
148 - }
149 -
150 - ret = brcmf_bus_started(devinfo->dev);
151 - if (ret)
152 - goto fail;
153 -
154 - return 0;
155 -fail:
156 - brcmf_detach(devinfo->dev);
157 - return ret;
158 -}
159 -
160 static void brcmf_usb_probe_phase2(struct device *dev, int ret,
161 const struct firmware *fw,
162 void *nvram, u32 nvlen)
163 @@ -1203,7 +1182,8 @@ static void brcmf_usb_probe_phase2(struc
164 if (ret)
165 goto error;
166
167 - ret = brcmf_usb_bus_setup(devinfo);
168 + /* Attach to the common driver interface */
169 + ret = brcmf_attach(devinfo->dev, devinfo->settings);
170 if (ret)
171 goto error;
172
173 @@ -1253,7 +1233,7 @@ static int brcmf_usb_probe_cb(struct brc
174 }
175
176 if (!brcmf_usb_dlneeded(devinfo)) {
177 - ret = brcmf_usb_bus_setup(devinfo);
178 + ret = brcmf_attach(devinfo->dev, devinfo->settings);
179 if (ret)
180 goto fail;
181 /* we are done */
182 @@ -1456,7 +1436,7 @@ static int brcmf_usb_resume(struct usb_i
183
184 brcmf_dbg(USB, "Enter\n");
185 if (!devinfo->wowl_enabled)
186 - return brcmf_usb_bus_setup(devinfo);
187 + return brcmf_attach(devinfo->dev, devinfo->settings);
188
189 devinfo->bus_pub.state = BRCMFMAC_USB_STATE_UP;
190 brcmf_usb_rx_fill_all(devinfo);