]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
5.15-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 4 Apr 2022 13:37:48 +0000 (15:37 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 4 Apr 2022 13:37:48 +0000 (15:37 +0200)
added patches:
mmc-rtsx-fix-build-errors-warnings-for-unused-variable.patch
mmc-rtsx-let-mmc-core-handle-runtime-pm.patch

queue-5.15/mmc-rtsx-fix-build-errors-warnings-for-unused-variable.patch [new file with mode: 0644]
queue-5.15/mmc-rtsx-let-mmc-core-handle-runtime-pm.patch [new file with mode: 0644]
queue-5.15/series

diff --git a/queue-5.15/mmc-rtsx-fix-build-errors-warnings-for-unused-variable.patch b/queue-5.15/mmc-rtsx-fix-build-errors-warnings-for-unused-variable.patch
new file mode 100644 (file)
index 0000000..377c00c
--- /dev/null
@@ -0,0 +1,72 @@
+From 3dd9a926ec2308e49445f22abef149fc64e9332e Mon Sep 17 00:00:00 2001
+From: Ulf Hansson <ulf.hansson@linaro.org>
+Date: Tue, 1 Mar 2022 12:53:00 +0100
+Subject: mmc: rtsx: Fix build errors/warnings for unused variable
+
+From: Ulf Hansson <ulf.hansson@linaro.org>
+
+commit 3dd9a926ec2308e49445f22abef149fc64e9332e upstream.
+
+The struct device *dev, is no longer needed at various functions, let's
+therefore drop it to fix the build errors/warnings.
+
+Fixes: 7570fb41e450 ("mmc: rtsx: Let MMC core handle runtime PM")
+Cc: Kai-Heng Feng <kai.heng.feng@canonical.com>
+Reported-by: kernel test robot <lkp@intel.com>
+Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
+Link: https://lore.kernel.org/r/20220301115300.64332-1-ulf.hansson@linaro.org
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/mmc/host/rtsx_pci_sdmmc.c |    6 ------
+ 1 file changed, 6 deletions(-)
+
+--- a/drivers/mmc/host/rtsx_pci_sdmmc.c
++++ b/drivers/mmc/host/rtsx_pci_sdmmc.c
+@@ -806,7 +806,6 @@ static void sd_request(struct work_struc
+       struct mmc_request *mrq = host->mrq;
+       struct mmc_command *cmd = mrq->cmd;
+       struct mmc_data *data = mrq->data;
+-      struct device *dev = &host->pdev->dev;
+       unsigned int data_size = 0;
+       int err;
+@@ -1081,7 +1080,6 @@ static void sdmmc_set_ios(struct mmc_hos
+ {
+       struct realtek_pci_sdmmc *host = mmc_priv(mmc);
+       struct rtsx_pcr *pcr = host->pcr;
+-      struct device *dev = &host->pdev->dev;
+       if (host->eject)
+               return;
+@@ -1130,7 +1128,6 @@ static int sdmmc_get_ro(struct mmc_host
+ {
+       struct realtek_pci_sdmmc *host = mmc_priv(mmc);
+       struct rtsx_pcr *pcr = host->pcr;
+-      struct device *dev = &host->pdev->dev;
+       int ro = 0;
+       u32 val;
+@@ -1156,7 +1153,6 @@ static int sdmmc_get_cd(struct mmc_host
+ {
+       struct realtek_pci_sdmmc *host = mmc_priv(mmc);
+       struct rtsx_pcr *pcr = host->pcr;
+-      struct device *dev = &host->pdev->dev;
+       int cd = 0;
+       u32 val;
+@@ -1255,7 +1251,6 @@ static int sdmmc_switch_voltage(struct m
+ {
+       struct realtek_pci_sdmmc *host = mmc_priv(mmc);
+       struct rtsx_pcr *pcr = host->pcr;
+-      struct device *dev = &host->pdev->dev;
+       int err = 0;
+       u8 voltage;
+@@ -1308,7 +1303,6 @@ static int sdmmc_execute_tuning(struct m
+ {
+       struct realtek_pci_sdmmc *host = mmc_priv(mmc);
+       struct rtsx_pcr *pcr = host->pcr;
+-      struct device *dev = &host->pdev->dev;
+       int err = 0;
+       if (host->eject)
diff --git a/queue-5.15/mmc-rtsx-let-mmc-core-handle-runtime-pm.patch b/queue-5.15/mmc-rtsx-let-mmc-core-handle-runtime-pm.patch
new file mode 100644 (file)
index 0000000..8a83bda
--- /dev/null
@@ -0,0 +1,128 @@
+From 7570fb41e450ba37bf9335fe3751fa9f502c30fa Mon Sep 17 00:00:00 2001
+From: Kai-Heng Feng <kai.heng.feng@canonical.com>
+Date: Wed, 16 Feb 2022 13:54:31 +0800
+Subject: mmc: rtsx: Let MMC core handle runtime PM
+
+From: Kai-Heng Feng <kai.heng.feng@canonical.com>
+
+commit 7570fb41e450ba37bf9335fe3751fa9f502c30fa upstream.
+
+Since MMC core handles runtime PM reference counting, we can avoid doing
+redundant runtime PM work in the driver. That means the only thing
+commit 5b4258f6721f ("misc: rtsx: rts5249 support runtime PM") misses is
+to always enable runtime PM, to let its parent driver enable ASPM in the
+runtime idle routine.
+
+Fixes: 7499b529d97f ("mmc: rtsx: Use pm_runtime_{get,put}() to handle runtime PM")
+Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
+Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
+Link: https://lore.kernel.org/r/20220216055435.2335297-1-kai.heng.feng@canonical.com
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/mmc/host/rtsx_pci_sdmmc.c |   18 ------------------
+ 1 file changed, 18 deletions(-)
+
+--- a/drivers/mmc/host/rtsx_pci_sdmmc.c
++++ b/drivers/mmc/host/rtsx_pci_sdmmc.c
+@@ -823,7 +823,6 @@ static void sd_request(struct work_struc
+       }
+       mutex_lock(&pcr->pcr_mutex);
+-      pm_runtime_get_sync(dev);
+       rtsx_pci_start_run(pcr);
+@@ -860,8 +859,6 @@ static void sd_request(struct work_struc
+                       data->bytes_xfered = data->blocks * data->blksz;
+       }
+-      pm_runtime_mark_last_busy(dev);
+-      pm_runtime_put_autosuspend(dev);
+       mutex_unlock(&pcr->pcr_mutex);
+ finish:
+@@ -1093,7 +1090,6 @@ static void sdmmc_set_ios(struct mmc_hos
+               return;
+       mutex_lock(&pcr->pcr_mutex);
+-      pm_runtime_get_sync(dev);
+       rtsx_pci_start_run(pcr);
+@@ -1127,8 +1123,6 @@ static void sdmmc_set_ios(struct mmc_hos
+       rtsx_pci_switch_clock(pcr, ios->clock, host->ssc_depth,
+                       host->initial_mode, host->double_clk, host->vpclk);
+-      pm_runtime_mark_last_busy(dev);
+-      pm_runtime_put_autosuspend(dev);
+       mutex_unlock(&pcr->pcr_mutex);
+ }
+@@ -1144,7 +1138,6 @@ static int sdmmc_get_ro(struct mmc_host
+               return -ENOMEDIUM;
+       mutex_lock(&pcr->pcr_mutex);
+-      pm_runtime_get_sync(dev);
+       rtsx_pci_start_run(pcr);
+@@ -1154,8 +1147,6 @@ static int sdmmc_get_ro(struct mmc_host
+       if (val & SD_WRITE_PROTECT)
+               ro = 1;
+-      pm_runtime_mark_last_busy(dev);
+-      pm_runtime_put_autosuspend(dev);
+       mutex_unlock(&pcr->pcr_mutex);
+       return ro;
+@@ -1173,7 +1164,6 @@ static int sdmmc_get_cd(struct mmc_host
+               return cd;
+       mutex_lock(&pcr->pcr_mutex);
+-      pm_runtime_get_sync(dev);
+       rtsx_pci_start_run(pcr);
+@@ -1183,8 +1173,6 @@ static int sdmmc_get_cd(struct mmc_host
+       if (val & SD_EXIST)
+               cd = 1;
+-      pm_runtime_mark_last_busy(dev);
+-      pm_runtime_put_autosuspend(dev);
+       mutex_unlock(&pcr->pcr_mutex);
+       return cd;
+@@ -1282,7 +1270,6 @@ static int sdmmc_switch_voltage(struct m
+               return err;
+       mutex_lock(&pcr->pcr_mutex);
+-      pm_runtime_get_sync(dev);
+       rtsx_pci_start_run(pcr);
+@@ -1312,8 +1299,6 @@ out:
+       err = rtsx_pci_write_register(pcr, SD_BUS_STAT,
+                       SD_CLK_TOGGLE_EN | SD_CLK_FORCE_STOP, 0);
+-      pm_runtime_mark_last_busy(dev);
+-      pm_runtime_put_autosuspend(dev);
+       mutex_unlock(&pcr->pcr_mutex);
+       return err;
+@@ -1334,7 +1319,6 @@ static int sdmmc_execute_tuning(struct m
+               return err;
+       mutex_lock(&pcr->pcr_mutex);
+-      pm_runtime_get_sync(dev);
+       rtsx_pci_start_run(pcr);
+@@ -1367,8 +1351,6 @@ static int sdmmc_execute_tuning(struct m
+               err = sd_change_phase(host, DDR50_RX_PHASE(pcr), true);
+ out:
+-      pm_runtime_mark_last_busy(dev);
+-      pm_runtime_put_autosuspend(dev);
+       mutex_unlock(&pcr->pcr_mutex);
+       return err;
index 9a63657a92b8eafab4e9063110d87ee12efefc73..446fe9779de1c3cf9d35824877a2b8bba78d913c 100644 (file)
@@ -899,3 +899,5 @@ docs-sysctl-kernel-add-missing-bit-to-panic_print.patch
 openvswitch-fixed-nd-target-mask-field-in-the-flow-dump.patch
 torture-make-torture.sh-help-message-match-reality.patch
 n64cart-convert-bi_disk-to-bi_bdev-bd_disk-fix-build.patch
+mmc-rtsx-let-mmc-core-handle-runtime-pm.patch
+mmc-rtsx-fix-build-errors-warnings-for-unused-variable.patch