hc
2024-01-03 2f7c68cb55ecb7331f2381deb497c27155f32faf
kernel/drivers/net/wireless/atmel/at76c50x-usb.c
....@@ -1,3 +1,4 @@
1
+// SPDX-License-Identifier: GPL-2.0-or-later
12 /*
23 * at76c503/at76c505 USB driver
34 *
....@@ -9,11 +10,6 @@
910 * Copyright (c) 2007 Kalle Valo <kalle.valo@iki.fi>
1011 * Copyright (c) 2010 Sebastian Smolorz <sesmo@gmx.net>
1112 *
12
- * This program is free software; you can redistribute it and/or
13
- * modify it under the terms of the GNU General Public License as
14
- * published by the Free Software Foundation; either version 2 of
15
- * the License, or (at your option) any later version.
16
- *
1713 * This file is part of the Berlios driver for WLAN USB devices based on the
1814 * Atmel AT76C503A/505/505A.
1915 *
....@@ -21,8 +17,7 @@
2117 *
2218 * TODO list is at the wiki:
2319 *
24
- * http://wireless.kernel.org/en/users/Drivers/at76c50x-usb#TODO
25
- *
20
+ * https://wireless.wiki.kernel.org/en/users/Drivers/at76c50x-usb#TODO
2621 */
2722
2823 #include <linux/init.h>
....@@ -437,7 +432,7 @@
437432
438433 case STATE_DFU_DOWNLOAD_IDLE:
439434 at76_dbg(DBG_DFU, "DOWNLOAD...");
440
- /* fall through */
435
+ fallthrough;
441436 case STATE_DFU_IDLE:
442437 at76_dbg(DBG_DFU, "DFU IDLE");
443438
....@@ -1204,7 +1199,6 @@
12041199 {
12051200 struct at76_priv *priv = urb->context;
12061201
1207
- priv->rx_tasklet.data = (unsigned long)urb;
12081202 tasklet_schedule(&priv->rx_tasklet);
12091203 }
12101204
....@@ -1550,10 +1544,10 @@
15501544 return ieee80211_channel_to_frequency(channel, NL80211_BAND_2GHZ);
15511545 }
15521546
1553
-static void at76_rx_tasklet(unsigned long param)
1547
+static void at76_rx_tasklet(struct tasklet_struct *t)
15541548 {
1555
- struct urb *urb = (struct urb *)param;
1556
- struct at76_priv *priv = urb->context;
1549
+ struct at76_priv *priv = from_tasklet(priv, t, rx_tasklet);
1550
+ struct urb *urb = priv->rx_urb;
15571551 struct at76_rx_buffer *buf;
15581552 struct ieee80211_rx_status rx_status = { 0 };
15591553
....@@ -2220,7 +2214,7 @@
22202214 INIT_WORK(&priv->work_join_bssid, at76_work_join_bssid);
22212215 INIT_DELAYED_WORK(&priv->dwork_hw_scan, at76_dwork_hw_scan);
22222216
2223
- tasklet_init(&priv->rx_tasklet, at76_rx_tasklet, 0);
2217
+ tasklet_setup(&priv->rx_tasklet, at76_rx_tasklet);
22242218
22252219 priv->pm_mode = AT76_PM_OFF;
22262220 priv->pm_period = 0;
....@@ -2241,7 +2235,7 @@
22412235 at76_dbg(DBG_PROC_ENTRY, "%s: ENTER", __func__);
22422236
22432237 at76_dbg(DBG_URB, "%s: NumEndpoints %d ", __func__,
2244
- interface->altsetting[0].desc.bNumEndpoints);
2238
+ interface->cur_altsetting->desc.bNumEndpoints);
22452239
22462240 ep_in = NULL;
22472241 ep_out = NULL;