hc
2023-12-11 d2ccde1c8e90d38cee87a1b0309ad2827f3fd30d
kernel/drivers/mmc/host/via-sdmmc.c
....@@ -1,11 +1,7 @@
1
+// SPDX-License-Identifier: GPL-2.0-or-later
12 /*
23 * drivers/mmc/host/via-sdmmc.c - VIA SD/MMC Card Reader driver
34 * Copyright (c) 2008, VIA Technologies Inc. All Rights Reserved.
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, or (at
8
- * your option) any later version.
95 */
106
117 #include <linux/pci.h>
....@@ -691,7 +687,6 @@
691687 via_sdc_send_command(host, mrq->cmd);
692688 }
693689
694
- mmiowb();
695690 spin_unlock_irqrestore(&host->lock, flags);
696691 }
697692
....@@ -716,7 +711,6 @@
716711 gatt &= ~VIA_CRDR_PCICLKGATT_PAD_PWRON;
717712 writeb(gatt, host->pcictrl_mmiobase + VIA_CRDR_PCICLKGATT);
718713
719
- mmiowb();
720714 spin_unlock_irqrestore(&host->lock, flags);
721715
722716 via_pwron_sleep(host);
....@@ -775,7 +769,6 @@
775769 if (readb(addrbase + VIA_CRDR_PCISDCCLK) != clock)
776770 writeb(clock, addrbase + VIA_CRDR_PCISDCCLK);
777771
778
- mmiowb();
779772 spin_unlock_irqrestore(&host->lock, flags);
780773
781774 if (ios->power_mode != MMC_POWER_OFF)
....@@ -835,7 +828,6 @@
835828 via_restore_pcictrlreg(host);
836829 via_restore_sdcreg(host);
837830
838
- mmiowb();
839831 spin_unlock_irqrestore(&host->lock, flags);
840832 }
841833
....@@ -933,7 +925,6 @@
933925
934926 result = IRQ_HANDLED;
935927
936
- mmiowb();
937928 out:
938929 spin_unlock(&sdhost->lock);
939930
....@@ -968,7 +959,6 @@
968959 }
969960 }
970961
971
- mmiowb();
972962 spin_unlock_irqrestore(&sdhost->lock, flags);
973963 }
974964
....@@ -1020,7 +1010,6 @@
10201010 tasklet_schedule(&host->finish_tasklet);
10211011 }
10221012
1023
- mmiowb();
10241013 spin_unlock_irqrestore(&host->lock, flags);
10251014
10261015 via_reset_pcictrl(host);
....@@ -1028,7 +1017,6 @@
10281017 spin_lock_irqsave(&host->lock, flags);
10291018 }
10301019
1031
- mmiowb();
10321020 spin_unlock_irqrestore(&host->lock, flags);
10331021
10341022 via_print_pcictrl(host);
....@@ -1126,7 +1114,7 @@
11261114
11271115 len = pci_resource_len(pcidev, 0);
11281116 base = pci_resource_start(pcidev, 0);
1129
- sdhost->mmiobase = ioremap_nocache(base, len);
1117
+ sdhost->mmiobase = ioremap(base, len);
11301118 if (!sdhost->mmiobase) {
11311119 ret = -ENOMEM;
11321120 goto free_mmc_host;
....@@ -1196,7 +1184,6 @@
11961184
11971185 /* Disable generating further interrupts */
11981186 writeb(0x0, sdhost->pcictrl_mmiobase + VIA_CRDR_PCIINTCTRL);
1199
- mmiowb();
12001187
12011188 if (sdhost->mrq) {
12021189 pr_err("%s: Controller removed during "
....@@ -1205,7 +1192,6 @@
12051192 /* make sure all DMA is stopped */
12061193 writel(VIA_CRDR_DMACTRL_SFTRST,
12071194 sdhost->ddma_mmiobase + VIA_CRDR_DMACTRL);
1208
- mmiowb();
12091195 sdhost->mrq->cmd->error = -ENOMEDIUM;
12101196 if (sdhost->mrq->stop)
12111197 sdhost->mrq->stop->error = -ENOMEDIUM;
....@@ -1237,9 +1223,7 @@
12371223 pci_name(pcidev), (int)pcidev->vendor, (int)pcidev->device);
12381224 }
12391225
1240
-#ifdef CONFIG_PM
1241
-
1242
-static void via_init_sdc_pm(struct via_crdr_mmc_host *host)
1226
+static void __maybe_unused via_init_sdc_pm(struct via_crdr_mmc_host *host)
12431227 {
12441228 struct sdhcreg *pm_sdhcreg;
12451229 void __iomem *addrbase;
....@@ -1273,33 +1257,30 @@
12731257 via_print_sdchc(host);
12741258 }
12751259
1276
-static int via_sd_suspend(struct pci_dev *pcidev, pm_message_t state)
1260
+static int __maybe_unused via_sd_suspend(struct device *dev)
12771261 {
12781262 struct via_crdr_mmc_host *host;
12791263 unsigned long flags;
12801264
1281
- host = pci_get_drvdata(pcidev);
1265
+ host = dev_get_drvdata(dev);
12821266
12831267 spin_lock_irqsave(&host->lock, flags);
12841268 via_save_pcictrlreg(host);
12851269 via_save_sdcreg(host);
12861270 spin_unlock_irqrestore(&host->lock, flags);
12871271
1288
- pci_save_state(pcidev);
1289
- pci_enable_wake(pcidev, pci_choose_state(pcidev, state), 0);
1290
- pci_disable_device(pcidev);
1291
- pci_set_power_state(pcidev, pci_choose_state(pcidev, state));
1272
+ device_wakeup_enable(dev);
12921273
12931274 return 0;
12941275 }
12951276
1296
-static int via_sd_resume(struct pci_dev *pcidev)
1277
+static int __maybe_unused via_sd_resume(struct device *dev)
12971278 {
12981279 struct via_crdr_mmc_host *sdhost;
12991280 int ret = 0;
13001281 u8 gatt;
13011282
1302
- sdhost = pci_get_drvdata(pcidev);
1283
+ sdhost = dev_get_drvdata(dev);
13031284
13041285 gatt = VIA_CRDR_PCICLKGATT_PAD_PWRON;
13051286 if (sdhost->power == MMC_VDD_165_195)
....@@ -1314,32 +1295,20 @@
13141295
13151296 msleep(100);
13161297
1317
- pci_set_power_state(pcidev, PCI_D0);
1318
- pci_restore_state(pcidev);
1319
- ret = pci_enable_device(pcidev);
1320
- if (ret)
1321
- return ret;
1322
-
13231298 via_restore_pcictrlreg(sdhost);
13241299 via_init_sdc_pm(sdhost);
13251300
13261301 return ret;
13271302 }
13281303
1329
-#else /* CONFIG_PM */
1330
-
1331
-#define via_sd_suspend NULL
1332
-#define via_sd_resume NULL
1333
-
1334
-#endif /* CONFIG_PM */
1304
+static SIMPLE_DEV_PM_OPS(via_sd_pm_ops, via_sd_suspend, via_sd_resume);
13351305
13361306 static struct pci_driver via_sd_driver = {
13371307 .name = DRV_NAME,
13381308 .id_table = via_ids,
13391309 .probe = via_sd_probe,
13401310 .remove = via_sd_remove,
1341
- .suspend = via_sd_suspend,
1342
- .resume = via_sd_resume,
1311
+ .driver.pm = &via_sd_pm_ops,
13431312 };
13441313
13451314 module_pci_driver(via_sd_driver);