mac80211: backport "brcmfmac: cleanup and some rework" from 4.17
[oweals/openwrt.git] / package / kernel / mac80211 / patches / 325-v4.17-0005-brcmfmac-move-brcmf_attach-function-in-core.c.patch
1 From 0542503c4c164c65cd1567b0f2b3f887af6c81eb Mon Sep 17 00:00:00 2001
2 From: Arend Van Spriel <arend.vanspriel@broadcom.com>
3 Date: Tue, 20 Feb 2018 00:14:22 +0100
4 Subject: [PATCH] brcmfmac: move brcmf_attach() function in core.c
5
6 Moving the function in preparation of subsequent patch.
7
8 Reviewed-by: Hante Meuleman <hante.meuleman@broadcom.com>
9 Reviewed-by: Pieter-Paul Giesberts <pieter-paul.giesberts@broadcom.com>
10 Reviewed-by: Franky Lin <franky.lin@broadcom.com>
11 Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com>
12 Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
13 ---
14  .../wireless/broadcom/brcm80211/brcmfmac/core.c    | 98 +++++++++++-----------
15  1 file changed, 49 insertions(+), 49 deletions(-)
16
17 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
18 +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
19 @@ -992,55 +992,6 @@ static int brcmf_inet6addr_changed(struc
20  }
21  #endif
22  
23 -int brcmf_attach(struct device *dev, struct brcmf_mp_device *settings)
24 -{
25 -       struct brcmf_pub *drvr = NULL;
26 -       int ret = 0;
27 -       int i;
28 -
29 -       brcmf_dbg(TRACE, "Enter\n");
30 -
31 -       /* Allocate primary brcmf_info */
32 -       drvr = kzalloc(sizeof(struct brcmf_pub), GFP_ATOMIC);
33 -       if (!drvr)
34 -               return -ENOMEM;
35 -
36 -       for (i = 0; i < ARRAY_SIZE(drvr->if2bss); i++)
37 -               drvr->if2bss[i] = BRCMF_BSSIDX_INVALID;
38 -
39 -       mutex_init(&drvr->proto_block);
40 -
41 -       /* Link to bus module */
42 -       drvr->hdrlen = 0;
43 -       drvr->bus_if = dev_get_drvdata(dev);
44 -       drvr->bus_if->drvr = drvr;
45 -       drvr->settings = settings;
46 -
47 -       /* attach debug facilities */
48 -       brcmf_debug_attach(drvr);
49 -
50 -       /* Attach and link in the protocol */
51 -       ret = brcmf_proto_attach(drvr);
52 -       if (ret != 0) {
53 -               brcmf_err("brcmf_prot_attach failed\n");
54 -               goto fail;
55 -       }
56 -
57 -       /* Attach to events important for core code */
58 -       brcmf_fweh_register(drvr, BRCMF_E_PSM_WATCHDOG,
59 -                           brcmf_psm_watchdog_notify);
60 -
61 -       /* attach firmware event handler */
62 -       brcmf_fweh_attach(drvr);
63 -
64 -       return ret;
65 -
66 -fail:
67 -       brcmf_detach(dev);
68 -
69 -       return ret;
70 -}
71 -
72  static int brcmf_revinfo_read(struct seq_file *s, void *data)
73  {
74         struct brcmf_bus *bus_if = dev_get_drvdata(s->private);
75 @@ -1170,6 +1121,55 @@ fail:
76  
77         return ret;
78  }
79 +
80 +int brcmf_attach(struct device *dev, struct brcmf_mp_device *settings)
81 +{
82 +       struct brcmf_pub *drvr = NULL;
83 +       int ret = 0;
84 +       int i;
85 +
86 +       brcmf_dbg(TRACE, "Enter\n");
87 +
88 +       /* Allocate primary brcmf_info */
89 +       drvr = kzalloc(sizeof(*drvr), GFP_ATOMIC);
90 +       if (!drvr)
91 +               return -ENOMEM;
92 +
93 +       for (i = 0; i < ARRAY_SIZE(drvr->if2bss); i++)
94 +               drvr->if2bss[i] = BRCMF_BSSIDX_INVALID;
95 +
96 +       mutex_init(&drvr->proto_block);
97 +
98 +       /* Link to bus module */
99 +       drvr->hdrlen = 0;
100 +       drvr->bus_if = dev_get_drvdata(dev);
101 +       drvr->bus_if->drvr = drvr;
102 +       drvr->settings = settings;
103 +
104 +       /* attach debug facilities */
105 +       brcmf_debug_attach(drvr);
106 +
107 +       /* Attach and link in the protocol */
108 +       ret = brcmf_proto_attach(drvr);
109 +       if (ret != 0) {
110 +               brcmf_err("brcmf_prot_attach failed\n");
111 +               goto fail;
112 +       }
113 +
114 +       /* Attach to events important for core code */
115 +       brcmf_fweh_register(drvr, BRCMF_E_PSM_WATCHDOG,
116 +                           brcmf_psm_watchdog_notify);
117 +
118 +       /* attach firmware event handler */
119 +       brcmf_fweh_attach(drvr);
120 +
121 +       return ret;
122 +
123 +fail:
124 +       brcmf_detach(dev);
125 +
126 +       return ret;
127 +}
128  
129  void brcmf_bus_add_txhdrlen(struct device *dev, uint len)
130  {