Patch "ASoC: tegra: Fix CBB error during probe()" has been added to the 6.1-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: tegra: Fix CBB error during probe()

to the 6.1-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-tegra-fix-cbb-error-during-probe.patch
and it can be found in the queue-6.1 subdirectory.

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



commit 131e71a062286e080a06ce9520baeb40874369b8
Author: Mohan Kumar <mkumard@xxxxxxxxxx>
Date:   Fri Aug 23 14:43:42 2024 +0000

    ASoC: tegra: Fix CBB error during probe()
    
    [ Upstream commit 6781b962d97bc52715a8db8cc17278cc3c23ebe8 ]
    
    When Tegra audio drivers are built as part of the kernel image,
    TIMEOUT_ERR is observed from cbb-fabric. Following is seen on
    Jetson AGX Orin during boot:
    
    [    8.012482] **************************************
    [    8.017423] CPU:0, Error:cbb-fabric, Errmon:2
    [    8.021922]    Error Code            : TIMEOUT_ERR
    [    8.025966]    Overflow              : Multiple TIMEOUT_ERR
    [    8.030644]
    [    8.032175]    Error Code            : TIMEOUT_ERR
    [    8.036217]    MASTER_ID             : CCPLEX
    [    8.039722]    Address               : 0x290a0a8
    [    8.043318]    Cache                 : 0x1 -- Bufferable
    [    8.047630]    Protection            : 0x2 -- Unprivileged, Non-Secure, Data Access
    [    8.054628]    Access_Type           : Write
    
    [    8.106130] WARNING: CPU: 0 PID: 124 at drivers/soc/tegra/cbb/tegra234-cbb.c:604 tegra234_cbb_isr+0x134/0x178
    
    [    8.240602] Call trace:
    [    8.243126]  tegra234_cbb_isr+0x134/0x178
    [    8.247261]  __handle_irq_event_percpu+0x60/0x238
    [    8.252132]  handle_irq_event+0x54/0xb8
    
    These errors happen when MVC device, which is a child of AHUB
    device, tries to access its device registers. This happens as
    part of call tegra210_mvc_reset_vol_settings() in MVC device
    probe().
    
    The root cause of this problem is, the child MVC device gets
    probed before the AHUB clock gets enabled. The AHUB clock is
    enabled in runtime PM resume of parent AHUB device and due to
    the wrong sequence of pm_runtime_enable() in AHUB driver,
    runtime PM resume doesn't happen for AHUB device when MVC makes
    register access.
    
    Fix this by calling pm_runtime_enable() for parent AHUB device
    before of_platform_populate() in AHUB driver. This ensures that
    clock becomes available when MVC makes register access.
    
    Fixes: 16e1bcc2caf4 ("ASoC: tegra: Add Tegra210 based AHUB driver")
    Signed-off-by: Mohan Kumar <mkumard@xxxxxxxxxx>
    Signed-off-by: Ritu Chaudhary <rituc@xxxxxxxxxx>
    Signed-off-by: Sameer Pujar <spujar@xxxxxxxxxx>
    Link: https://patch.msgid.link/20240823144342.4123814-3-spujar@xxxxxxxxxx
    Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/sound/soc/tegra/tegra210_ahub.c b/sound/soc/tegra/tegra210_ahub.c
index b38d205b69cc..dfdcb4580cd7 100644
--- a/sound/soc/tegra/tegra210_ahub.c
+++ b/sound/soc/tegra/tegra210_ahub.c
@@ -2,7 +2,7 @@
 //
 // tegra210_ahub.c - Tegra210 AHUB driver
 //
-// Copyright (c) 2020-2022, NVIDIA CORPORATION.  All rights reserved.
+// Copyright (c) 2020-2024, NVIDIA CORPORATION.  All rights reserved.
 
 #include <linux/clk.h>
 #include <linux/device.h>
@@ -1401,11 +1401,13 @@ static int tegra_ahub_probe(struct platform_device *pdev)
 		return err;
 	}
 
+	pm_runtime_enable(&pdev->dev);
+
 	err = of_platform_populate(pdev->dev.of_node, NULL, NULL, &pdev->dev);
-	if (err)
+	if (err) {
+		pm_runtime_disable(&pdev->dev);
 		return err;
-
-	pm_runtime_enable(&pdev->dev);
+	}
 
 	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