From: Greg Kroah-Hartman Date: Thu, 15 Jul 2021 12:38:24 +0000 (+0200) Subject: 4.4-stable patches X-Git-Tag: v5.4.133~44 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=025ded7a480febd2cd6806559449c7753d283aee;p=thirdparty%2Fkernel%2Fstable-queue.git 4.4-stable patches added patches: ata-ahci_sunxi-disable-dipm.patch drm-radeon-add-the-missed-drm_gem_object_put-in-radeon_user_framebuffer_create.patch mmc-sdhci-fix-warning-message-when-accessing-rpmb-in-hs400-mode.patch --- diff --git a/queue-4.4/ata-ahci_sunxi-disable-dipm.patch b/queue-4.4/ata-ahci_sunxi-disable-dipm.patch new file mode 100644 index 00000000000..6e522c56949 --- /dev/null +++ b/queue-4.4/ata-ahci_sunxi-disable-dipm.patch @@ -0,0 +1,43 @@ +From f6bca4d91b2ea052e917cca3f9d866b5cc1d500a Mon Sep 17 00:00:00 2001 +From: Timo Sigurdsson +Date: Mon, 14 Jun 2021 09:25:39 +0200 +Subject: ata: ahci_sunxi: Disable DIPM + +From: Timo Sigurdsson + +commit f6bca4d91b2ea052e917cca3f9d866b5cc1d500a upstream. + +DIPM is unsupported or broken on sunxi. Trying to enable the power +management policy med_power_with_dipm on an Allwinner A20 SoC based board +leads to immediate I/O errors and the attached SATA disk disappears from +the /dev filesystem. A reset (power cycle) is required to make the SATA +controller or disk work again. The A10 and A20 SoC data sheets and manuals +don't mention DIPM at all [1], so it's fair to assume that it's simply not +supported. But even if it was, it should be considered broken and best be +disabled in the ahci_sunxi driver. + +[1] https://github.com/allwinner-zh/documents/tree/master/ + +Fixes: c5754b5220f0 ("ARM: sunxi: Add support for Allwinner SUNXi SoCs sata to ahci_platform") +Cc: stable@vger.kernel.org +Signed-off-by: Timo Sigurdsson +Tested-by: Timo Sigurdsson +Link: https://lore.kernel.org/r/20210614072539.3307-1-public_timo.s@silentcreek.de +Signed-off-by: Jens Axboe +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/ata/ahci_sunxi.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/ata/ahci_sunxi.c ++++ b/drivers/ata/ahci_sunxi.c +@@ -165,7 +165,7 @@ static void ahci_sunxi_start_engine(stru + } + + static const struct ata_port_info ahci_sunxi_port_info = { +- .flags = AHCI_FLAG_COMMON | ATA_FLAG_NCQ, ++ .flags = AHCI_FLAG_COMMON | ATA_FLAG_NCQ | ATA_FLAG_NO_DIPM, + .pio_mask = ATA_PIO4, + .udma_mask = ATA_UDMA6, + .port_ops = &ahci_platform_ops, diff --git a/queue-4.4/drm-radeon-add-the-missed-drm_gem_object_put-in-radeon_user_framebuffer_create.patch b/queue-4.4/drm-radeon-add-the-missed-drm_gem_object_put-in-radeon_user_framebuffer_create.patch new file mode 100644 index 00000000000..704b8255d4f --- /dev/null +++ b/queue-4.4/drm-radeon-add-the-missed-drm_gem_object_put-in-radeon_user_framebuffer_create.patch @@ -0,0 +1,35 @@ +From 9ba85914c36c8fed9bf3e8b69c0782908c1247b7 Mon Sep 17 00:00:00 2001 +From: Jing Xiangfeng +Date: Tue, 29 Jun 2021 19:44:55 +0800 +Subject: drm/radeon: Add the missed drm_gem_object_put() in radeon_user_framebuffer_create() +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: Jing Xiangfeng + +commit 9ba85914c36c8fed9bf3e8b69c0782908c1247b7 upstream. + +radeon_user_framebuffer_create() misses to call drm_gem_object_put() in +an error path. Add the missed function call to fix it. + +Reviewed-by: Christian König +Signed-off-by: Jing Xiangfeng +Signed-off-by: Alex Deucher +Cc: stable@vger.kernel.org +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/gpu/drm/radeon/radeon_display.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/drivers/gpu/drm/radeon/radeon_display.c ++++ b/drivers/gpu/drm/radeon/radeon_display.c +@@ -1381,6 +1381,7 @@ radeon_user_framebuffer_create(struct dr + /* Handle is imported dma-buf, so cannot be migrated to VRAM for scanout */ + if (obj->import_attach) { + DRM_DEBUG_KMS("Cannot create framebuffer from imported dma_buf\n"); ++ drm_gem_object_put(obj); + return ERR_PTR(-EINVAL); + } + diff --git a/queue-4.4/mmc-sdhci-fix-warning-message-when-accessing-rpmb-in-hs400-mode.patch b/queue-4.4/mmc-sdhci-fix-warning-message-when-accessing-rpmb-in-hs400-mode.patch new file mode 100644 index 00000000000..2363d405443 --- /dev/null +++ b/queue-4.4/mmc-sdhci-fix-warning-message-when-accessing-rpmb-in-hs400-mode.patch @@ -0,0 +1,61 @@ +From d0244847f9fc5e20df8b7483c8a4717fe0432d38 Mon Sep 17 00:00:00 2001 +From: Al Cooper +Date: Thu, 24 Jun 2021 12:30:45 -0400 +Subject: mmc: sdhci: Fix warning message when accessing RPMB in HS400 mode + +From: Al Cooper + +commit d0244847f9fc5e20df8b7483c8a4717fe0432d38 upstream. + +When an eMMC device is being run in HS400 mode, any access to the +RPMB device will cause the error message "mmc1: Invalid UHS-I mode +selected". This happens as a result of tuning being disabled before +RPMB access and then re-enabled after the RPMB access is complete. +When tuning is re-enabled, the system has to switch from HS400 +to HS200 to do the tuning and then back to HS400. As part of +sequence to switch from HS400 to HS200 the system is temporarily +put into HS mode. When switching to HS mode, sdhci_get_preset_value() +is called and does not have support for HS mode and prints the warning +message and returns the preset for SDR12. The fix is to add support +for MMC and SD HS modes to sdhci_get_preset_value(). + +This can be reproduced on any system running eMMC in HS400 mode +(not HS400ES) by using the "mmc" utility to run the following +command: "mmc rpmb read-counter /dev/mmcblk0rpmb". + +Signed-off-by: Al Cooper +Acked-by: Adrian Hunter +Fixes: 52983382c74f ("mmc: sdhci: enhance preset value function") +Cc: stable@vger.kernel.org +Link: https://lore.kernel.org/r/20210624163045.33651-1-alcooperx@gmail.com +Signed-off-by: Ulf Hansson +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/mmc/host/sdhci.c | 4 ++++ + drivers/mmc/host/sdhci.h | 1 + + 2 files changed, 5 insertions(+) + +--- a/drivers/mmc/host/sdhci.c ++++ b/drivers/mmc/host/sdhci.c +@@ -1134,6 +1134,10 @@ static u16 sdhci_get_preset_value(struct + u16 preset = 0; + + switch (host->timing) { ++ case MMC_TIMING_MMC_HS: ++ case MMC_TIMING_SD_HS: ++ preset = sdhci_readw(host, SDHCI_PRESET_FOR_HIGH_SPEED); ++ break; + case MMC_TIMING_UHS_SDR12: + preset = sdhci_readw(host, SDHCI_PRESET_FOR_SDR12); + break; +--- a/drivers/mmc/host/sdhci.h ++++ b/drivers/mmc/host/sdhci.h +@@ -232,6 +232,7 @@ + + /* 60-FB reserved */ + ++#define SDHCI_PRESET_FOR_HIGH_SPEED 0x64 + #define SDHCI_PRESET_FOR_SDR12 0x66 + #define SDHCI_PRESET_FOR_SDR25 0x68 + #define SDHCI_PRESET_FOR_SDR50 0x6A diff --git a/queue-4.4/series b/queue-4.4/series index 29c55a2bba8..f3c5725da3f 100644 --- a/queue-4.4/series +++ b/queue-4.4/series @@ -126,3 +126,6 @@ can-gw-synchronize-rcu-operations-before-removing-gw-job-entry.patch can-bcm-delay-release-of-struct-bcm_op-after-synchronize_rcu.patch mac80211-fix-memory-corruption-in-eapol-handling.patch powerpc-barrier-avoid-collision-with-clang-s-__lwsync-macro.patch +drm-radeon-add-the-missed-drm_gem_object_put-in-radeon_user_framebuffer_create.patch +mmc-sdhci-fix-warning-message-when-accessing-rpmb-in-hs400-mode.patch +ata-ahci_sunxi-disable-dipm.patch