Re: [PATCH] drm/bridge: sii902x: add audio graph card support

From: Philippe CORNU
Date: Thu Jul 11 2019 - 05:28:02 EST


Hi Daniel,


On 7/10/19 5:27 PM, Daniel Vetter wrote:
> On Fri, Jul 05, 2019 at 12:41:03PM +0000, Philippe CORNU wrote:
>> Hi Olivier,
>> and many thanks for your patch.
>> Good to have the audio graph card support, looks ok.
>> Reviewed-by: Philippe Cornu <philippe.cornu@xxxxxx>
>
> Since you have drm-misc commit rights I'm assuming you're going to push
> this too. Correct?
> -Daniel

Regarding this patch in particular, there is still missing an acked-by
from a "bridge" maintainer. Also it could be nice to wait for the
reviewed-by from Jiry as it knows well this sii driver and sent recently
good patches on it (already merged).

With that, Benjamin or I (or a bridge maintainer) can push this patch +
the serie named "drm/bridge: sii902x: fix audio mclk management" as I
think it is better to push this serie *before* this patch.

Thanks,
Philippe :-)


>> Philippe :-)
>>
>> On 7/3/19 10:04 AM, Olivier Moysan wrote:
>>> Implement get_dai_id callback of audio HDMI codec
>>> to support ASoC audio graph card.
>>> HDMI audio output has to be connected to sii902x port 3.
>>> get_dai_id callback maps this port to ASoC DAI index 0.
>>>
>>> Signed-off-by: Olivier Moysan <olivier.moysan@xxxxxx>
>>> ---
>>> drivers/gpu/drm/bridge/sii902x.c | 23 +++++++++++++++++++++++
>>> 1 file changed, 23 insertions(+)
>>>
>>> diff --git a/drivers/gpu/drm/bridge/sii902x.c b/drivers/gpu/drm/bridge/sii902x.c
>>> index dd7aa466b280..daf9ef3cd817 100644
>>> --- a/drivers/gpu/drm/bridge/sii902x.c
>>> +++ b/drivers/gpu/drm/bridge/sii902x.c
>>> @@ -158,6 +158,8 @@
>>>
>>> #define SII902X_I2C_BUS_ACQUISITION_TIMEOUT_MS 500
>>>
>>> +#define SII902X_AUDIO_PORT_INDEX 3
>>> +
>>> struct sii902x {
>>> struct i2c_client *i2c;
>>> struct regmap *regmap;
>>> @@ -690,11 +692,32 @@ static int sii902x_audio_get_eld(struct device *dev, void *data,
>>> return 0;
>>> }
>>>
>>> +static int sii902x_audio_get_dai_id(struct snd_soc_component *component,
>>> + struct device_node *endpoint)
>>> +{
>>> + struct of_endpoint of_ep;
>>> + int ret;
>>> +
>>> + ret = of_graph_parse_endpoint(endpoint, &of_ep);
>>> + if (ret < 0)
>>> + return ret;
>>> +
>>> + /*
>>> + * HDMI sound should be located at reg = <3>
>>> + * Return expected DAI index 0.
>>> + */
>>> + if (of_ep.port == SII902X_AUDIO_PORT_INDEX)
>>> + return 0;
>>> +
>>> + return -EINVAL;
>>> +}
>>> +
>>> static const struct hdmi_codec_ops sii902x_audio_codec_ops = {
>>> .hw_params = sii902x_audio_hw_params,
>>> .audio_shutdown = sii902x_audio_shutdown,
>>> .digital_mute = sii902x_audio_digital_mute,
>>> .get_eld = sii902x_audio_get_eld,
>>> + .get_dai_id = sii902x_audio_get_dai_id,
>>> };
>>>
>>> static int sii902x_audio_codec_init(struct sii902x *sii902x,
>>>
>