On 13/10/2021 23:17, Andy Shevchenko wrote: > The last user of this struct gone couple of releases ago. > Remove the dead code for good and encourage people to use > MMC core functionality for that. > > The removal is dependent on the previous removal of the > struct sdhci_pci_data. > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> Acked-by: Adrian Hunter <adrian.hunter@xxxxxxxxx> > --- > drivers/mmc/host/sdhci-pci-core.c | 76 +------------------------------ > drivers/mmc/host/sdhci-pci.h | 2 - > 2 files changed, 1 insertion(+), 77 deletions(-) > > diff --git a/drivers/mmc/host/sdhci-pci-core.c b/drivers/mmc/host/sdhci-pci-core.c > index 8938c63b1e77..e2b6f60e9f01 100644 > --- a/drivers/mmc/host/sdhci-pci-core.c > +++ b/drivers/mmc/host/sdhci-pci-core.c > @@ -345,73 +345,6 @@ static int pch_hc_probe_slot(struct sdhci_pci_slot *slot) > return 0; > } > > -#ifdef CONFIG_PM > - > -static irqreturn_t sdhci_pci_sd_cd(int irq, void *dev_id) > -{ > - struct sdhci_pci_slot *slot = dev_id; > - struct sdhci_host *host = slot->host; > - > - mmc_detect_change(host->mmc, msecs_to_jiffies(200)); > - return IRQ_HANDLED; > -} > - > -static void sdhci_pci_add_own_cd(struct sdhci_pci_slot *slot) > -{ > - int err, irq, gpio = slot->cd_gpio; > - > - slot->cd_gpio = -EINVAL; > - slot->cd_irq = -EINVAL; > - > - if (!gpio_is_valid(gpio)) > - return; > - > - err = devm_gpio_request(&slot->chip->pdev->dev, gpio, "sd_cd"); > - if (err < 0) > - goto out; > - > - err = gpio_direction_input(gpio); > - if (err < 0) > - goto out_free; > - > - irq = gpio_to_irq(gpio); > - if (irq < 0) > - goto out_free; > - > - err = request_irq(irq, sdhci_pci_sd_cd, IRQF_TRIGGER_RISING | > - IRQF_TRIGGER_FALLING, "sd_cd", slot); > - if (err) > - goto out_free; > - > - slot->cd_gpio = gpio; > - slot->cd_irq = irq; > - > - return; > - > -out_free: > - devm_gpio_free(&slot->chip->pdev->dev, gpio); > -out: > - dev_warn(&slot->chip->pdev->dev, "failed to setup card detect wake up\n"); > -} > - > -static void sdhci_pci_remove_own_cd(struct sdhci_pci_slot *slot) > -{ > - if (slot->cd_irq >= 0) > - free_irq(slot->cd_irq, slot); > -} > - > -#else > - > -static inline void sdhci_pci_add_own_cd(struct sdhci_pci_slot *slot) > -{ > -} > - > -static inline void sdhci_pci_remove_own_cd(struct sdhci_pci_slot *slot) > -{ > -} > - > -#endif > - > static int mfd_emmc_probe_slot(struct sdhci_pci_slot *slot) > { > slot->host->mmc->caps |= MMC_CAP_8_BIT_DATA | MMC_CAP_NONREMOVABLE; > @@ -2128,7 +2061,6 @@ static struct sdhci_pci_slot *sdhci_pci_probe_slot( > slot->chip = chip; > slot->host = host; > slot->rst_n_gpio = -EINVAL; > - slot->cd_gpio = -EINVAL; > slot->cd_idx = -1; > > host->hw_name = "PCI"; > @@ -2199,15 +2131,11 @@ static struct sdhci_pci_slot *sdhci_pci_probe_slot( > if (ret) > goto remove; > > - sdhci_pci_add_own_cd(slot); > - > /* > * Check if the chip needs a separate GPIO for card detect to wake up > * from runtime suspend. If it is not there, don't allow runtime PM. > - * Note sdhci_pci_add_own_cd() sets slot->cd_gpio to -EINVAL on failure. > */ > - if (chip->fixes && chip->fixes->own_cd_for_runtime_pm && > - !gpio_is_valid(slot->cd_gpio) && slot->cd_idx < 0) > + if (chip->fixes && chip->fixes->own_cd_for_runtime_pm && slot->cd_idx < 0) > chip->allow_runtime_pm = false; > > return slot; > @@ -2227,8 +2155,6 @@ static void sdhci_pci_remove_slot(struct sdhci_pci_slot *slot) > int dead; > u32 scratch; > > - sdhci_pci_remove_own_cd(slot); > - > dead = 0; > scratch = readl(slot->host->ioaddr + SDHCI_INT_STATUS); > if (scratch == (u32)-1) > diff --git a/drivers/mmc/host/sdhci-pci.h b/drivers/mmc/host/sdhci-pci.h > index 15b36cd47860..8bb3b9c78589 100644 > --- a/drivers/mmc/host/sdhci-pci.h > +++ b/drivers/mmc/host/sdhci-pci.h > @@ -158,8 +158,6 @@ struct sdhci_pci_slot { > struct sdhci_host *host; > > int rst_n_gpio; > - int cd_gpio; > - int cd_irq; > > int cd_idx; > bool cd_override_level; >