Patch "ASoC: mediatek: mt8173: Enable IRQ when pdata is ready" has been added to the 5.4-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    ASoC: mediatek: mt8173: Enable IRQ when pdata is ready

to the 5.4-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     asoc-mediatek-mt8173-enable-irq-when-pdata-is-ready.patch
and it can be found in the queue-5.4 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 2e6104ca9028a9fd8815147c3e7a30c430257186
Author: Ricardo Ribalda <ribalda@xxxxxxxxxxxx>
Date:   Mon Nov 28 11:49:16 2022 +0100

    ASoC: mediatek: mt8173: Enable IRQ when pdata is ready
    
    [ Upstream commit 4cbb264d4e9136acab2c8fd39e39ab1b1402b84b ]
    
    If the device does not come straight from reset, we might receive an IRQ
    before we are ready to handle it.
    
    Fixes:
    
    [    2.334737] Unable to handle kernel read from unreadable memory at virtual address 00000000000001e4
    [    2.522601] Call trace:
    [    2.525040]  regmap_read+0x1c/0x80
    [    2.528434]  mt8173_afe_irq_handler+0x40/0xf0
    ...
    [    2.598921]  start_kernel+0x338/0x42c
    
    Signed-off-by: Ricardo Ribalda <ribalda@xxxxxxxxxxxx>
    Fixes: ee0bcaff109f ("ASoC: mediatek: Add AFE platform driver")
    Link: https://lore.kernel.org/r/20221128-mt8173-afe-v1-0-70728221628f@xxxxxxxxxxxx
    Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/sound/soc/mediatek/mt8173/mt8173-afe-pcm.c b/sound/soc/mediatek/mt8173/mt8173-afe-pcm.c
index 0ee29255e731..f3dbd8164b86 100644
--- a/sound/soc/mediatek/mt8173/mt8173-afe-pcm.c
+++ b/sound/soc/mediatek/mt8173/mt8173-afe-pcm.c
@@ -1073,16 +1073,6 @@ static int mt8173_afe_pcm_dev_probe(struct platform_device *pdev)
 
 	afe->dev = &pdev->dev;
 
-	irq_id = platform_get_irq(pdev, 0);
-	if (irq_id <= 0)
-		return irq_id < 0 ? irq_id : -ENXIO;
-	ret = devm_request_irq(afe->dev, irq_id, mt8173_afe_irq_handler,
-			       0, "Afe_ISR_Handle", (void *)afe);
-	if (ret) {
-		dev_err(afe->dev, "could not request_irq\n");
-		return ret;
-	}
-
 	afe->base_addr = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(afe->base_addr))
 		return PTR_ERR(afe->base_addr);
@@ -1158,6 +1148,16 @@ static int mt8173_afe_pcm_dev_probe(struct platform_device *pdev)
 	if (ret)
 		goto err_pm_disable;
 
+	irq_id = platform_get_irq(pdev, 0);
+	if (irq_id <= 0)
+		return irq_id < 0 ? irq_id : -ENXIO;
+	ret = devm_request_irq(afe->dev, irq_id, mt8173_afe_irq_handler,
+			       0, "Afe_ISR_Handle", (void *)afe);
+	if (ret) {
+		dev_err(afe->dev, "could not request_irq\n");
+		goto err_pm_disable;
+	}
+
 	dev_info(&pdev->dev, "MT8173 AFE driver initialized.\n");
 	return 0;
 



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux