From: Greg Kroah-Hartman Date: Mon, 4 Apr 2022 13:37:48 +0000 (+0200) Subject: 5.15-stable patches X-Git-Tag: v5.17.2~44 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8a75c5899b186119ea1ac9c37e8af066af03b3d8;p=thirdparty%2Fkernel%2Fstable-queue.git 5.15-stable patches added patches: mmc-rtsx-fix-build-errors-warnings-for-unused-variable.patch mmc-rtsx-let-mmc-core-handle-runtime-pm.patch --- 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 index 00000000000..377c00c78fc --- /dev/null +++ b/queue-5.15/mmc-rtsx-fix-build-errors-warnings-for-unused-variable.patch @@ -0,0 +1,72 @@ +From 3dd9a926ec2308e49445f22abef149fc64e9332e Mon Sep 17 00:00:00 2001 +From: Ulf Hansson +Date: Tue, 1 Mar 2022 12:53:00 +0100 +Subject: mmc: rtsx: Fix build errors/warnings for unused variable + +From: Ulf Hansson + +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 +Reported-by: kernel test robot +Signed-off-by: Ulf Hansson +Link: https://lore.kernel.org/r/20220301115300.64332-1-ulf.hansson@linaro.org +Signed-off-by: Greg Kroah-Hartman +--- + 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 index 00000000000..8a83bdac19e --- /dev/null +++ b/queue-5.15/mmc-rtsx-let-mmc-core-handle-runtime-pm.patch @@ -0,0 +1,128 @@ +From 7570fb41e450ba37bf9335fe3751fa9f502c30fa Mon Sep 17 00:00:00 2001 +From: Kai-Heng Feng +Date: Wed, 16 Feb 2022 13:54:31 +0800 +Subject: mmc: rtsx: Let MMC core handle runtime PM + +From: Kai-Heng Feng + +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 +Signed-off-by: Kai-Heng Feng +Link: https://lore.kernel.org/r/20220216055435.2335297-1-kai.heng.feng@canonical.com +Signed-off-by: Greg Kroah-Hartman +--- + 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; diff --git a/queue-5.15/series b/queue-5.15/series index 9a63657a92b..446fe9779de 100644 --- a/queue-5.15/series +++ b/queue-5.15/series @@ -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