Skip to content

Commit 6776ecc

Browse files
TE-N-ShengjiuWangbroonie
authored andcommitted
ASoC: fsl_xcvr: get channel status data with firmware exists
For the XCVR module on i.MX95, even though it only supports SPDIF, the channel status needs to be obtained from RAM space, which is processed by firmware. Firmware is necessary to trigger the FSL_XCVR_IRQ_NEW_CS interrupt. This change also applies for the SPDIF & ARC function on i.MX8MP which has the firmware. Fixes: e6a9750 ("ASoC: fsl_xcvr: Add suspend and resume support") Signed-off-by: Shengjiu Wang <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Mark Brown <[email protected]>
1 parent ca592e2 commit 6776ecc

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

sound/soc/fsl/fsl_xcvr.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1395,7 +1395,7 @@ static irqreturn_t irq0_isr(int irq, void *devid)
13951395
if (isr & FSL_XCVR_IRQ_NEW_CS) {
13961396
dev_dbg(dev, "Received new CS block\n");
13971397
isr_clr |= FSL_XCVR_IRQ_NEW_CS;
1398-
if (!xcvr->soc_data->spdif_only) {
1398+
if (xcvr->soc_data->fw_name) {
13991399
/* Data RAM is 4KiB, last two pages: 8 and 9. Select page 8. */
14001400
regmap_update_bits(xcvr->regmap, FSL_XCVR_EXT_CTRL,
14011401
FSL_XCVR_EXT_CTRL_PAGE_MASK,
@@ -1517,6 +1517,7 @@ static const struct fsl_xcvr_soc_data fsl_xcvr_imx93_data = {
15171517
};
15181518

15191519
static const struct fsl_xcvr_soc_data fsl_xcvr_imx95_data = {
1520+
.fw_name = "imx/xcvr/xcvr-imx95.bin",
15201521
.spdif_only = true,
15211522
.use_phy = true,
15221523
.use_edma = true,
@@ -1806,7 +1807,7 @@ static int fsl_xcvr_runtime_resume(struct device *dev)
18061807
}
18071808
}
18081809

1809-
if (xcvr->mode == FSL_XCVR_MODE_EARC) {
1810+
if (xcvr->soc_data->fw_name) {
18101811
ret = fsl_xcvr_load_firmware(xcvr);
18111812
if (ret) {
18121813
dev_err(dev, "failed to load firmware.\n");

0 commit comments

Comments
 (0)