[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <56AA6487.5040300@osg.samsung.com>
Date: Thu, 28 Jan 2016 11:57:11 -0700
From: Shuah Khan <shuahkh@....samsung.com>
To: Mauro Carvalho Chehab <mchehab@....samsung.com>
Cc: tiwai@...e.com, clemens@...isch.de, hans.verkuil@...co.com,
laurent.pinchart@...asonboard.com, sakari.ailus@...ux.intel.com,
javier@....samsung.com, pawel@...iak.com, m.szyprowski@...sung.com,
kyungmin.park@...sung.com, perex@...ex.cz, arnd@...db.de,
dan.carpenter@...cle.com, tvboxspy@...il.com, crope@....fi,
ruchandani.tina@...il.com, corbet@....net, chehabrafael@...il.com,
k.kozlowski@...sung.com, stefanr@...6.in-berlin.de,
inki.dae@...sung.com, jh1009.sung@...sung.com,
elfring@...rs.sourceforge.net, prabhakar.csengg@...il.com,
sw0312.kim@...sung.com, p.zabel@...gutronix.de,
ricardo.ribalda@...il.com, labbott@...oraproject.org,
pierre-louis.bossart@...ux.intel.com, ricard.wanderlof@...s.com,
julian@...st.de, takamichiho@...il.com, dominic.sacre@....de,
misterpib@...il.com, daniel@...que.org, gtmkramer@...all.nl,
normalperson@...t.net, joe@...po.co.uk, linuxbugs@...tgam.net,
johan@...ud.se, linux-kernel@...r.kernel.org,
linux-media@...r.kernel.org, linux-api@...r.kernel.org,
alsa-devel@...a-project.org, Shuah Khan <shuahkh@....samsung.com>
Subject: Re: [PATCH 13/31] media: au0828 fix au0828_create_media_graph()
entity checks
On 01/28/2016 08:37 AM, Mauro Carvalho Chehab wrote:
> Em Wed, 6 Jan 2016 13:27:02 -0700
> Shuah Khan <shuahkh@....samsung.com> escreveu:
>
>> au0828_create_media_graph() doesn't do any checks to determine,
>> if vbi_dev, vdev, and input entities have been registered prior
>> to creating pad links. Checking graph_obj.mdev field works as
>> the graph_obj.mdev field gets initialized in the entity register
>> interface. Fix it to check graph_obj.mdev field before creating
>> pad links.
>
>>
>> Signed-off-by: Shuah Khan <shuahkh@....samsung.com>
>> ---
>> drivers/media/usb/au0828/au0828-core.c | 27 +++++++++++++++++----------
>> 1 file changed, 17 insertions(+), 10 deletions(-)
>>
>> diff --git a/drivers/media/usb/au0828/au0828-core.c b/drivers/media/usb/au0828/au0828-core.c
>> index f46fb43..8ef7c71 100644
>> --- a/drivers/media/usb/au0828/au0828-core.c
>> +++ b/drivers/media/usb/au0828/au0828-core.c
>> @@ -291,20 +291,27 @@ static int au0828_create_media_graph(struct au0828_dev *dev)
>> if (ret)
>> return ret;
>> }
>> - ret = media_create_pad_link(decoder, AU8522_PAD_VID_OUT,
>> - &dev->vdev.entity, 0,
>> - MEDIA_LNK_FL_ENABLED);
>> - if (ret)
>> - return ret;
>> - ret = media_create_pad_link(decoder, AU8522_PAD_VBI_OUT,
>> - &dev->vbi_dev.entity, 0,
>> - MEDIA_LNK_FL_ENABLED);
>> - if (ret)
>> - return ret;
>> + if (dev->vdev.entity.graph_obj.mdev) {
>> + ret = media_create_pad_link(decoder, AU8522_PAD_VID_OUT,
>> + &dev->vdev.entity, 0,
>> + MEDIA_LNK_FL_ENABLED);
>> + if (ret)
>> + return ret;
>> + }
>
> Those new if() doesn't look right. We can't continue if the entities
> weren't registered, as the graph would have troubles. The logic should
> ensure that the entities will always be created before running
> au0828_create_media_graph(). If this is not the case, some async
> logic is needed to ensure that.
There have been some changes in au0828 media init and
register sequence in 4.5-rc1. wau0828 does its graph
creation before it registers media_device.
I needed these checks before this above. It looks
like I might have simply rebased my patch over
without taking this change into account. I will
try without these checks.
Async method is already in place for snd-usb-audio
part of the graph. Please see patch 20 in the series.
thanks,
-- Shuah
>
>> + if (dev->vbi_dev.entity.graph_obj.mdev) {
>> + ret = media_create_pad_link(decoder, AU8522_PAD_VBI_OUT,
>> + &dev->vbi_dev.entity, 0,
>> + MEDIA_LNK_FL_ENABLED);
>> + if (ret)
>> + return ret;
>> + }
>>
>> for (i = 0; i < AU0828_MAX_INPUT; i++) {
>> struct media_entity *ent = &dev->input_ent[i];
>>
>> + if (!ent->graph_obj.mdev)
>> + continue;
>> +
>> if (AUVI_INPUT(i).type == AU0828_VMUX_UNDEFINED)
>> break;
>>
--
Shuah Khan
Sr. Linux Kernel Developer
Open Source Innovation Group
Samsung Research America (Silicon Valley)
shuahkh@....samsung.com | (970) 217-8978
Powered by blists - more mailing lists