ASoC: sh: rz-ssi: Make the data structures available before registering the handlers
authorLad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Mon, 10 Jan 2022 09:47:08 +0000 (09:47 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 8 Apr 2022 12:23:59 +0000 (14:23 +0200)
[ Upstream commit 0788785c78342d422f93b1c9831c2b2b7f137937 ]

Initialize the spinlock and make the data structures available before
registering the interrupt handlers.

Reported-by: Pavel Machek <pavel@denx.de>
Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Reviewed-by: Biju Das <biju.das.jz@bp.renesas.com>
Link: https://lore.kernel.org/r/20220110094711.8574-3-prabhakar.mahadev-lad.rj@bp.renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
sound/soc/sh/rz-ssi.c

index 37466f65c2b0f962570580de1eb7a207baab182d..16de2633a8736e151ccf6475fca8af4ea8654888 100644 (file)
@@ -977,6 +977,9 @@ static int rz_ssi_probe(struct platform_device *pdev)
        ssi->playback.priv = ssi;
        ssi->capture.priv = ssi;
 
+       spin_lock_init(&ssi->lock);
+       dev_set_drvdata(&pdev->dev, ssi);
+
        /* Error Interrupt */
        ssi->irq_int = platform_get_irq_byname(pdev, "int_req");
        if (ssi->irq_int < 0)
@@ -1024,8 +1027,6 @@ static int rz_ssi_probe(struct platform_device *pdev)
        pm_runtime_enable(&pdev->dev);
        pm_runtime_resume_and_get(&pdev->dev);
 
-       spin_lock_init(&ssi->lock);
-       dev_set_drvdata(&pdev->dev, ssi);
        ret = devm_snd_soc_register_component(&pdev->dev, &rz_ssi_soc_component,
                                              rz_ssi_soc_dai,
                                              ARRAY_SIZE(rz_ssi_soc_dai));