On Fri, May 22, 2015 at 04:54:07PM +0100, Srinivas Kandagatla wrote:

> +     if (cpu_dai->id == MI2S_QUATERNARY) {
> +             /* Configure the Quat MI2S to TLMM */
> +             writel(readl(pdata->mic_iomux) |
> +                     MIC_CTRL_QUA_WS_SLAVE_SEL_10 |
> +                     MIC_CTRL_TLMM_SCLK_EN,
> +                     pdata->mic_iomux);
> +
> +             return 0;
> +     } else if (cpu_dai->id == MI2S_PRIMARY) {

This looks like you're trying to write a switch statement.  It's also
somewhat unclear to me that this should be in a machine driver and not
in a CODEC/aux driver that gets pulled in by a machine driver, I can't
be entirely sure what this is controlling.

> +             if (of_property_read_bool(np, "external"))
> +                     name = "HDMI";
> +
> +             else
> +                     name = "Headset";

Coding style.  I'm also a bit concerned about the binding here -
headsets sound external too?

> +     card->dev = dev;
> +     data = apq8016_sbc_parse_of(card);

We parse the DT here and then...

> +     ret = snd_soc_of_parse_card_name(card, "qcom,model");
> +     if (ret) {
> +             dev_err(&pdev->dev, "Error parsing card name: %d\n", ret);
> +             return ret;
> +     }

...this other bit of DT here.

> +     ret = devm_snd_soc_register_card(&pdev->dev, card);
> +     if (ret == -EPROBE_DEFER) {
> +             card->dev = NULL;
> +             return ret;
> +     } else if (ret) {
> +             dev_err(&pdev->dev, "Error registering soundcard: %d\n", ret);
> +             return ret;
> +     }

If setting card->dev does anything there something is broken, and in
general it's just better form to not special case probe deferral.

Attachment: signature.asc
Description: Digital signature

Reply via email to