ASoC: apple: mca: Trigger, not deassert, the peripheral reset
authorMartin Povišer <povik+lin@cutebit.org>
Tue, 27 Sep 2022 11:34:24 +0000 (13:34 +0200)
committerMark Brown <broonie@kernel.org>
Tue, 27 Sep 2022 12:59:57 +0000 (13:59 +0100)
Replace the deassertion of the peripheral's shared reset with the
triggering of a pulse on it. This is what we should have been using all
along as the platform's custom is not leaving the reset asserted on
unused peripherals.

Fixes: 3df5d0d97289 ("ASoC: apple: mca: Start new platform driver")
Signed-off-by: Martin Povišer <povik+lin@cutebit.org>
Link: https://lore.kernel.org/r/20220927113426.49724-1-povik+lin@cutebit.org
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/apple/mca.c

index 6964352..75925bf 100644 (file)
@@ -995,7 +995,7 @@ static void apple_mca_release(struct mca_data *mca)
        if (!IS_ERR_OR_NULL(mca->pd_dev))
                dev_pm_domain_detach(mca->pd_dev, true);
 
-       reset_control_assert(mca->rstc);
+       reset_control_rearm(mca->rstc);
 }
 
 static int apple_mca_probe(struct platform_device *pdev)
@@ -1049,12 +1049,12 @@ static int apple_mca_probe(struct platform_device *pdev)
                                               DL_FLAG_RPM_ACTIVE);
        if (!mca->pd_link) {
                ret = -EINVAL;
-               /* Prevent an unbalanced reset assert */
+               /* Prevent an unbalanced reset rearm */
                mca->rstc = NULL;
                goto err_release;
        }
 
-       reset_control_deassert(mca->rstc);
+       reset_control_reset(mca->rstc);
 
        for (i = 0; i < nclusters; i++) {
                struct mca_cluster *cl = &clusters[i];