forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-05-13 9d77db3c730780c8ef5ccd4b66403ff5675cfe4e
kernel/drivers/net/wireless/intersil/prism54/islpci_hotplug.c
....@@ -1,19 +1,7 @@
1
+// SPDX-License-Identifier: GPL-2.0-only
12 /*
23 * Copyright (C) 2002 Intersil Americas Inc.
34 * Copyright (C) 2003 Herbert Valerio Riedel <hvr@gnu.org>
4
- *
5
- * This program is free software; you can redistribute it and/or modify
6
- * it under the terms of the GNU General Public License as published by
7
- * the Free Software Foundation; either version 2 of the License
8
- *
9
- * This program is distributed in the hope that it will be useful,
10
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- * GNU General Public License for more details.
13
- *
14
- * You should have received a copy of the GNU General Public License
15
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
16
- *
175 */
186
197 #include <linux/interrupt.h>
....@@ -38,7 +26,8 @@
3826 /* In this order: vendor, device, subvendor, subdevice, class, class_mask,
3927 * driver_data
4028 * If you have an update for this please contact prism54-devel@prism54.org
41
- * The latest list can be found at http://wireless.kernel.org/en/users/Drivers/p54 */
29
+ * The latest list can be found at http://wireless.wiki.kernel.org/en/users/Drivers/p54
30
+ */
4231 static const struct pci_device_id prism54_id_tbl[] = {
4332 /* Intersil PRISM Duette/Prism GT Wireless LAN adapter */
4433 {
....@@ -75,16 +64,17 @@
7564
7665 static int prism54_probe(struct pci_dev *, const struct pci_device_id *);
7766 static void prism54_remove(struct pci_dev *);
78
-static int prism54_suspend(struct pci_dev *, pm_message_t state);
79
-static int prism54_resume(struct pci_dev *);
67
+static int __maybe_unused prism54_suspend(struct device *);
68
+static int __maybe_unused prism54_resume(struct device *);
69
+
70
+static SIMPLE_DEV_PM_OPS(prism54_pm_ops, prism54_suspend, prism54_resume);
8071
8172 static struct pci_driver prism54_driver = {
8273 .name = DRV_NAME,
8374 .id_table = prism54_id_tbl,
8475 .probe = prism54_probe,
8576 .remove = prism54_remove,
86
- .suspend = prism54_suspend,
87
- .resume = prism54_resume,
77
+ .driver.pm = &prism54_pm_ops,
8878 };
8979
9080 /******************************************************************************
....@@ -118,7 +108,7 @@
118108 }
119109
120110 /* enable PCI DMA */
121
- if (pci_set_dma_mask(pdev, DMA_BIT_MASK(32))) {
111
+ if (dma_set_mask(&pdev->dev, DMA_BIT_MASK(32))) {
122112 printk(KERN_ERR "%s: 32-bit PCI DMA not supported", DRV_NAME);
123113 goto do_pci_disable_device;
124114 }
....@@ -255,15 +245,12 @@
255245 pci_disable_device(pdev);
256246 }
257247
258
-static int
259
-prism54_suspend(struct pci_dev *pdev, pm_message_t state)
248
+static int __maybe_unused
249
+prism54_suspend(struct device *dev)
260250 {
261
- struct net_device *ndev = pci_get_drvdata(pdev);
251
+ struct net_device *ndev = dev_get_drvdata(dev);
262252 islpci_private *priv = ndev ? netdev_priv(ndev) : NULL;
263253 BUG_ON(!priv);
264
-
265
-
266
- pci_save_state(pdev);
267254
268255 /* tell the device not to trigger interrupts for now... */
269256 isl38xx_disable_interrupts(priv->device_base);
....@@ -278,25 +265,15 @@
278265 return 0;
279266 }
280267
281
-static int
282
-prism54_resume(struct pci_dev *pdev)
268
+static int __maybe_unused
269
+prism54_resume(struct device *dev)
283270 {
284
- struct net_device *ndev = pci_get_drvdata(pdev);
271
+ struct net_device *ndev = dev_get_drvdata(dev);
285272 islpci_private *priv = ndev ? netdev_priv(ndev) : NULL;
286
- int err;
287273
288274 BUG_ON(!priv);
289275
290276 printk(KERN_NOTICE "%s: got resume request\n", ndev->name);
291
-
292
- err = pci_enable_device(pdev);
293
- if (err) {
294
- printk(KERN_ERR "%s: pci_enable_device failed on resume\n",
295
- ndev->name);
296
- return err;
297
- }
298
-
299
- pci_restore_state(pdev);
300277
301278 /* alright let's go into the PREBOOT state */
302279 islpci_reset(priv, 1);