ASoC: fsi: don't use platform info pointer on probe()
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Fri, 28 Dec 2012 03:15:08 +0000 (19:15 -0800)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Thu, 3 Jan 2013 12:49:54 +0000 (12:49 +0000)
Current FSI driver is using platform info pointer,
but it is not good design for DT support.
This patch made it not to use platform info pointer.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
sound/soc/sh/fsi.c

index f14c611b38c642e004741d2cd6ff031abc832ef6..ef34ef8e92ed08ea6fc32db7380bb876af4b24e9 100644 (file)
@@ -1918,16 +1918,15 @@ static int fsi_probe(struct platform_device *pdev)
 {
        struct fsi_master *master;
        const struct platform_device_id *id_entry;
-       struct sh_fsi_platform_info *info = pdev->dev.platform_data;
-       struct sh_fsi_port_info nul_info, *pinfo;
+       struct sh_fsi_platform_info info;
        struct fsi_priv *fsi;
        struct resource *res;
        unsigned int irq;
        int ret;
 
-       nul_info.flags  = 0;
-       nul_info.tx_id  = 0;
-       nul_info.rx_id  = 0;
+       memset(&info, 0, sizeof(info));
+       if (pdev->dev.platform_data)
+               memcpy(&info, pdev->dev.platform_data, sizeof(info));
 
        id_entry = pdev->id_entry;
        if (!id_entry) {
@@ -1961,12 +1960,11 @@ static int fsi_probe(struct platform_device *pdev)
        spin_lock_init(&master->lock);
 
        /* FSI A setting */
-       pinfo           = (info) ? &info->port_a : &nul_info;
        fsi             = &master->fsia;
        fsi->base       = master->base;
        fsi->master     = master;
-       fsi_port_info_init(fsi, pinfo);
-       fsi_handler_init(fsi, pinfo);
+       fsi_port_info_init(fsi, &info.port_a);
+       fsi_handler_init(fsi, &info.port_a);
        ret = fsi_stream_probe(fsi, &pdev->dev);
        if (ret < 0) {
                dev_err(&pdev->dev, "FSIA stream probe failed\n");
@@ -1974,12 +1972,11 @@ static int fsi_probe(struct platform_device *pdev)
        }
 
        /* FSI B setting */
-       pinfo           = (info) ? &info->port_b : &nul_info;
        fsi             = &master->fsib;
        fsi->base       = master->base + 0x40;
        fsi->master     = master;
-       fsi_port_info_init(fsi, pinfo);
-       fsi_handler_init(fsi, pinfo);
+       fsi_port_info_init(fsi, &info.port_b);
+       fsi_handler_init(fsi, &info.port_b);
        ret = fsi_stream_probe(fsi, &pdev->dev);
        if (ret < 0) {
                dev_err(&pdev->dev, "FSIB stream probe failed\n");
This page took 0.026247 seconds and 5 git commands to generate.