From: Todor Tomov <ttomov@mm-sol.com>
To: Todor Tomov <todor.tomov@linaro.org>,
Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: mchehab@kernel.org, laurent.pinchart+renesas@ideasonboard.com,
hans.verkuil@cisco.com, javier@osg.samsung.com,
s.nawrocki@samsung.com, linux-media@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 08/10] media: camss: Add files which handle the video device nodes
Date: Thu, 18 May 2017 13:39:31 +0300 [thread overview]
Message-ID: <591D79E3.9060501@mm-sol.com> (raw)
In-Reply-To: <58809839.8050301@linaro.org>
Hi Laurent,
On 01/19/2017 12:43 PM, Todor Tomov wrote:
> Hi Laurent,
>
> Thank you for the detailed review.
>
> On 12/05/2016 05:22 PM, Laurent Pinchart wrote:
>> Hi Todor,
>>
>> Thank you for the patch.
>>
>> On Friday 25 Nov 2016 16:57:20 Todor Tomov wrote:
>>> These files handle the video device nodes of the camss driver.
>>
>> camss is a quite generic, I'm a bit concerned about claiming that acronym in
>> the global kernel namespace. Would it be too long if we prefixed symbols with
>> msm_camss instead ?
>
> Ok. Are you concerned about camss_enable_clocks() and camss_disable_clocks() or
> you have something else in mind too?
Could you please add more details about this?
>
>>
>>> Signed-off-by: Todor Tomov <todor.tomov@linaro.org>
>>> ---
>>> drivers/media/platform/qcom/camss-8x16/video.c | 597 ++++++++++++++++++++++
>>> drivers/media/platform/qcom/camss-8x16/video.h | 67 +++
>>> 2 files changed, 664 insertions(+)
>>> create mode 100644 drivers/media/platform/qcom/camss-8x16/video.c
>>> create mode 100644 drivers/media/platform/qcom/camss-8x16/video.h
>>>
>>> diff --git a/drivers/media/platform/qcom/camss-8x16/video.c
>>> b/drivers/media/platform/qcom/camss-8x16/video.c new file mode 100644
>>> index 0000000..0bf8ea9
>>> --- /dev/null
>>> +++ b/drivers/media/platform/qcom/camss-8x16/video.c
<snip>
>>> +/* ------------------------------------------------------------------------
>>> + * V4L2 file operations
>>> + */
>>> +
>>> +/*
>>> + * video_init_format - Helper function to initialize format
>>> + *
>>> + * Initialize all pad formats with default values.
>>> + */
>>> +static int video_init_format(struct file *file, void *fh)
>>> +{
>>> + struct v4l2_format format;
>>> +
>>> + memset(&format, 0, sizeof(format));
>>> + format.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
>>> +
>>> + return video_s_fmt(file, fh, &format);
>>
>> This will set the active format every time you open the device node, I don't
>> think that's what you want.
>
> Well, actually this is what I wanted. I wanted to keep in sync the pixel format
> on the video node and the media bus format on the subdev node (i.e. the pixel
> format will be always correct for the current media bus format). For the current
> version there is a direct correspondence between the pixel format and the media
> format so this will work I think. For the future there might be multiple pixel
> formats for one media bus format and a second open of the video node could reset
> the pixel format to unwanted value so this will need a change. I'm wondering about
> (and still not able to find) a good moment/event when to perform the initialization
> of the format on the video node. As it gets the current format from the subdev
> node, the moment of the registration will be too early as the media link is still
> not created. But after that I couldn't find a suitable callback/event where to do
> it. If you can share any idea about this, please do :)
I still haven't found a better solution for this. If you have something in mind,
please share.
>
>>
>>> +}
>>> +
>>> +static int video_open(struct file *file)
>>> +{
>>> + struct video_device *vdev = video_devdata(file);
>>> + struct camss_video *video = video_drvdata(file);
>>> + struct camss_video_fh *handle;
>>> + int ret;
>>> +
>>> + handle = kzalloc(sizeof(*handle), GFP_KERNEL);
>>> + if (handle == NULL)
>>> + return -ENOMEM;
>>> +
>>> + v4l2_fh_init(&handle->vfh, video->vdev);
>>> + v4l2_fh_add(&handle->vfh);
>>> +
>>> + handle->video = video;
>>> + file->private_data = &handle->vfh;
>>> +
>>> + ret = v4l2_pipeline_pm_use(&vdev->entity, 1);
>>> + if (ret < 0) {
>>> + dev_err(video->camss->dev, "Failed to power up pipeline\n");
>>> + goto error_pm_use;
>>> + }
>>> +
>>> + ret = video_init_format(file, &handle->vfh);
>>> + if (ret < 0) {
>>> + dev_err(video->camss->dev, "Failed to init format\n");
>>> + goto error_init_format;
>>> + }
>>> +
>>> + return 0;
>>> +
>>> +error_init_format:
>>> + v4l2_pipeline_pm_use(&vdev->entity, 0);
>>> +
>>> +error_pm_use:
>>> + v4l2_fh_del(&handle->vfh);
>>> + kfree(handle);
>>> +
>>> + return ret;
>>> +}
--
Best regards,
Todor Tomov
next prev parent reply other threads:[~2017-05-18 10:46 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-11-25 14:57 [PATCH 02/10] MAINTAINERS: Add Qualcomm Camera subsystem driver Todor Tomov
2016-11-25 14:57 ` [PATCH 03/10] doc: media/v4l-drivers: Add Qualcomm Camera Subsystem driver document Todor Tomov
2016-11-25 14:57 ` [PATCH 04/10] media: camss: Add CSIPHY files Todor Tomov
2016-11-25 14:57 ` [PATCH 05/10] media: camss: Add CSID files Todor Tomov
2016-11-25 14:57 ` [PATCH 06/10] media: camss: Add ISPIF files Todor Tomov
2016-11-25 14:57 ` [PATCH 07/10] media: camss: Add VFE files Todor Tomov
2016-11-25 14:57 ` [PATCH 08/10] media: camss: Add files which handle the video device nodes Todor Tomov
2016-12-05 13:44 ` Hans Verkuil
2016-12-05 14:42 ` Laurent Pinchart
2016-12-05 14:45 ` Laurent Pinchart
2016-12-05 15:02 ` Hans Verkuil
2016-12-05 15:25 ` Laurent Pinchart
2017-01-10 11:32 ` Todor Tomov
2017-01-10 11:24 ` Todor Tomov
2016-12-05 15:22 ` Laurent Pinchart
2017-01-19 10:43 ` Todor Tomov
2017-05-18 10:39 ` Todor Tomov [this message]
2016-11-25 14:57 ` [PATCH 09/10] media: camms: Add core files Todor Tomov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=591D79E3.9060501@mm-sol.com \
--to=ttomov@mm-sol.com \
--cc=hans.verkuil@cisco.com \
--cc=javier@osg.samsung.com \
--cc=laurent.pinchart+renesas@ideasonboard.com \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=mchehab@kernel.org \
--cc=s.nawrocki@samsung.com \
--cc=todor.tomov@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome