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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.