[PATCH 9/9] drm: bridge/dw_hdmi-i2s-audio: add audio driver
Yakir Yang
ykk at rock-chips.com
Mon Aug 10 09:26:21 PDT 2015
Hi Russell,
在 2015/8/10 23:48, Russell King - ARM Linux 写道:
> On Sat, Aug 08, 2015 at 05:10:47PM +0100, Russell King wrote:
>> From: Yakir Yang <ykk at rock-chips.com>
>>
>> Add ALSA based HDMI I2S audio driver for dw_hdmi. Sound card
>> driver could connect to this codec through the codec dai name
>> "dw-hdmi-i2s-audio".
>>
>> [Fixed IRQ name, MODULE_DESCRIPTION, MODULE_ALIAS in
>> dw-hdmi-i2s-audio.c, and platform device name in dw-hdmi.c --rmk]
>>
>> Signed-off-by: Yakir Yang <ykk at rock-chips.com>
>> Signed-off-by: Russell King <rmk+kernel at arm.linux.org.uk>
> I'm dropping this patch after all as it no longer builds against modern
> kernels due to the reference to the removed snd_soc_jack_new(). Its
> replacement is at card level, and I don't think it's a simple case of
> replacing it here.
Hmm... I would rather to fix it in my side, and then I could rebase on
your series, is it okay ?
- Yakir
>> +static int snd_dw_hdmi_audio_probe(struct snd_soc_codec *codec)
>> +{
>> + struct snd_dw_hdmi *dw = snd_soc_codec_get_drvdata(codec);
>> + int ret;
>> +
>> + ret = snd_soc_jack_new(codec, "dw Jack", SND_JACK_LINEOUT,
>> + &dw->jack);
> ...
>> +static const struct snd_soc_codec_driver dw_hdmi_audio = {
>> + .probe = snd_dw_hdmi_audio_probe,
>> + .dapm_widgets = snd_dw_hdmi_audio_widgets,
>> + .num_dapm_widgets = ARRAY_SIZE(snd_dw_hdmi_audio_widgets),
>> + .dapm_routes = snd_dw_hdmi_audio_routes,
>> + .num_dapm_routes = ARRAY_SIZE(snd_dw_hdmi_audio_routes),
>> +};
>> +
>> +static int dw_hdmi_audio_probe(struct platform_device *pdev)
>> +{
>> + struct dw_hdmi_audio_data *data = pdev->dev.platform_data;
>> + struct snd_dw_hdmi *dw;
>> + int ret;
>> +
>> + dw = devm_kzalloc(&pdev->dev, sizeof(*dw), GFP_KERNEL);
>> + if (!dw)
>> + return -ENOMEM;
>> +
>> + dw->data = *data;
>> + dw->dev = &pdev->dev;
>> + dw->is_jack_ready = false;
>> + platform_set_drvdata(pdev, dw);
>> +
>> + ret = request_irq(dw->data.irq, snd_dw_hdmi_irq, IRQF_SHARED,
>> + DRIVER_NAME, dw);
>> + if (ret) {
>> + dev_err(&pdev->dev, "request irq failed (%d)\n", ret);
>> + return -EINVAL;
>> + }
>> +
>> + ret = snd_soc_register_codec(&pdev->dev, &dw_hdmi_audio,
>> + &dw_hdmi_audio_dai, 1);
More information about the Linux-rockchip
mailing list