We no longer have a means to differentiate between MSP devices at probe
time, mainly because we don't really have to. So rather than have an over-
sized static data structure in place, where the only difference between
devices is the ID and name (which are unused), we'll just create one
succinct, statically assigned and shared one instead.

Cc: alsa-de...@alsa-project.org
Signed-off-by: Lee Jones <lee.jo...@linaro.org>
---
 sound/soc/ux500/ux500_msp_dai.c | 96 ++++++-----------------------------------
 1 file changed, 14 insertions(+), 82 deletions(-)

diff --git a/sound/soc/ux500/ux500_msp_dai.c b/sound/soc/ux500/ux500_msp_dai.c
index 8d1b01f..8a7ae45 100644
--- a/sound/soc/ux500/ux500_msp_dai.c
+++ b/sound/soc/ux500/ux500_msp_dai.c
@@ -718,87 +718,19 @@ static struct snd_soc_dai_ops ux500_msp_dai_ops[] = {
        }
 };
 
-static struct snd_soc_dai_driver ux500_msp_dai_drv[UX500_NBR_OF_DAI] = {
-       {
-               .name = "ux500-msp-i2s.0",
-               .probe = ux500_msp_dai_probe,
-               .id = 0,
-               .suspend = NULL,
-               .resume = NULL,
-               .playback = {
-                       .channels_min = UX500_MSP_MIN_CHANNELS,
-                       .channels_max = UX500_MSP_MAX_CHANNELS,
-                       .rates = UX500_I2S_RATES,
-                       .formats = UX500_I2S_FORMATS,
-               },
-               .capture = {
-                       .channels_min = UX500_MSP_MIN_CHANNELS,
-                       .channels_max = UX500_MSP_MAX_CHANNELS,
-                       .rates = UX500_I2S_RATES,
-                       .formats = UX500_I2S_FORMATS,
-               },
-               .ops = ux500_msp_dai_ops,
-       },
-       {
-               .name = "ux500-msp-i2s.1",
-               .probe = ux500_msp_dai_probe,
-               .id = 1,
-               .suspend = NULL,
-               .resume = NULL,
-               .playback = {
-                       .channels_min = UX500_MSP_MIN_CHANNELS,
-                       .channels_max = UX500_MSP_MAX_CHANNELS,
-                       .rates = UX500_I2S_RATES,
-                       .formats = UX500_I2S_FORMATS,
-               },
-               .capture = {
-                       .channels_min = UX500_MSP_MIN_CHANNELS,
-                       .channels_max = UX500_MSP_MAX_CHANNELS,
-                       .rates = UX500_I2S_RATES,
-                       .formats = UX500_I2S_FORMATS,
-               },
-               .ops = ux500_msp_dai_ops,
-       },
-       {
-               .name = "ux500-msp-i2s.2",
-               .id = 2,
-               .probe = ux500_msp_dai_probe,
-               .suspend = NULL,
-               .resume = NULL,
-               .playback = {
-                       .channels_min = UX500_MSP_MIN_CHANNELS,
-                       .channels_max = UX500_MSP_MAX_CHANNELS,
-                       .rates = UX500_I2S_RATES,
-                       .formats = UX500_I2S_FORMATS,
-               },
-               .capture = {
-                       .channels_min = UX500_MSP_MIN_CHANNELS,
-                       .channels_max = UX500_MSP_MAX_CHANNELS,
-                       .rates = UX500_I2S_RATES,
-                       .formats = UX500_I2S_FORMATS,
-               },
-               .ops = ux500_msp_dai_ops,
-       },
-       {
-               .name = "ux500-msp-i2s.3",
-               .probe = ux500_msp_dai_probe,
-               .id = 3,
-               .suspend = NULL,
-               .resume = NULL,
-               .playback = {
-                       .channels_min = UX500_MSP_MIN_CHANNELS,
-                       .channels_max = UX500_MSP_MAX_CHANNELS,
-                       .rates = UX500_I2S_RATES,
-                       .formats = UX500_I2S_FORMATS,
-               },
-               .capture = {
-                       .channels_min = UX500_MSP_MIN_CHANNELS,
-                       .channels_max = UX500_MSP_MAX_CHANNELS,
-                       .rates = UX500_I2S_RATES,
-                       .formats = UX500_I2S_FORMATS,
-               },
-               .ops = ux500_msp_dai_ops,
-       },
+static struct snd_soc_dai_driver ux500_msp_dai_drv = {
+       .probe                 = ux500_msp_dai_probe,
+       .suspend               = NULL,
+       .resume                = NULL,
+       .playback.channels_min = UX500_MSP_MIN_CHANNELS,
+       .playback.channels_max = UX500_MSP_MAX_CHANNELS,
+       .playback.rates        = UX500_I2S_RATES,
+       .playback.formats      = UX500_I2S_FORMATS,
+       .capture.channels_min  = UX500_MSP_MIN_CHANNELS,
+       .capture.channels_max  = UX500_MSP_MAX_CHANNELS,
+       .capture.rates         = UX500_I2S_RATES,
+       .capture.formats       = UX500_I2S_FORMATS,
+       .ops                   = ux500_msp_dai_ops,
 };
 
 static const struct snd_soc_component_driver ux500_msp_component = {
@@ -864,7 +796,7 @@ static int ux500_msp_drv_probe(struct platform_device *pdev)
        dev_set_drvdata(&pdev->dev, drvdata);
 
        ret = snd_soc_register_component(&pdev->dev, &ux500_msp_component,
-                                        &ux500_msp_dai_drv[drvdata->msp->id], 
1);
+                                        &ux500_msp_dai_drv, 1);
        if (ret < 0) {
                dev_err(&pdev->dev, "Error: %s: Failed to register MSP%d!\n",
                        __func__, drvdata->msp->id);
-- 
1.8.3.2

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to