public inbox for linux-media@vger.kernel.org
 help / color / mirror / Atom feed
From: Sylwester Nawrocki <s.nawrocki@samsung.com>
To: Scott Jiang <scott.jiang.linux@gmail.com>
Cc: Sylwester Nawrocki <snjw23@gmail.com>,
	Mauro Carvalho Chehab <mchehab@infradead.org>,
	Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
	Hans Verkuil <hverkuil@xs4all.nl>,
	Guennadi Liakhovetski <g.liakhovetski@gmx.de>,
	linux-media@vger.kernel.org,
	uclinux-dist-devel@blackfin.uclinux.org
Subject: Re: [PATCH 4/4] v4l2: add blackfin capture bridge driver
Date: Wed, 14 Sep 2011 16:30:47 +0200	[thread overview]
Message-ID: <4E70BA97.1090904@samsung.com> (raw)
In-Reply-To: <CAHG8p1C5F_HKX_GPHv_RdCRRNw9s3+ybK4giCjUXxgSUAUDRVw@mail.gmail.com>

On 09/14/2011 09:10 AM, Scott Jiang wrote:
>>> +static int bcap_qbuf(struct file *file, void *priv,
>>> +                     struct v4l2_buffer *buf)
>>> +{
>>> +     struct bcap_device *bcap_dev = video_drvdata(file);
>>> +     struct v4l2_fh *fh = file->private_data;
>>> +     struct bcap_fh *bcap_fh = container_of(fh, struct bcap_fh, fh);
>>> +
>>> +     if (!bcap_fh->io_allowed)
>>> +             return -EACCES;
>>
>> I suppose -EBUSY would be more appropriate here.
>>
> no, io_allowed is to control which file instance has the right to do I/O.

Looks like you are doing here what the v4l2 priority mechanism is meant for.
Have you considered the access priority (VIDIOC_G_PRIORITY/VIDIOC_S_PRIORITY
and friends)? Does it have any shortcomings?

> 
>>> +                     fmt =&bcap_formats[i];
>>> +                     if (mbus_code)
>>> +                             *mbus_code = fmt->mbus_code;
>>> +                     if (bpp)
>>> +                             *bpp = fmt->bpp;
>>> +                     v4l2_fill_mbus_format(&mbus_fmt, pixfmt,
>>> +                                             fmt->mbus_code);
>>> +                     ret = v4l2_subdev_call(bcap->sd, video,
>>> +                                             try_mbus_fmt,&mbus_fmt);
>>> +                     if (ret<  0)
>>> +                             return ret;
>>> +                     v4l2_fill_pix_format(pixfmt,&mbus_fmt);
>>> +                     pixfmt->bytesperline = pixfmt->width * fmt->bpp;
>>> +                     pixfmt->sizeimage = pixfmt->bytesperline
>>> +                                             * pixfmt->height;
>>
>> Still pixfmt->pixelformat isn't filled.
>>
> no here pixfmt->pixelformat is passed in
> 
>>> +                     return 0;
>>> +             }
>>> +     }
>>> +     return -EINVAL;
>>
>> I think you should return some default format, rather than giving up
>> when the fourcc doesn't match. However I'm not 100% sure this is
>> the specification requirement.
>>
> no, there is no default format for bridge driver because it knows
> nothing about this.
> all the format info bridge needs ask subdevice.

It's the bridge driver that exports a device node and is responsible for
setting the default format. It should be possible to start streaming right
after opening the device, without VIDIOC_S_FMT, with some reasonable defaults.

If, as you say, the bridge knows nothing about formats what the bcap_formats[]
array is here for ?

> 
>>> +static const struct ppi_ops ppi_ops = {
>>> +     .attach_irq = ppi_attach_irq,
>>> +     .detach_irq = ppi_detach_irq,
>>> +     .start = ppi_start,
>>> +     .stop = ppi_stop,
>>> +     .set_params = ppi_set_params,
>>> +     .update_addr = ppi_update_addr,
>>> +};
>>
>> How about moving this struct to the bottom of the file and getting rid of
>> all the above forward declarations ?
>>
> I'd like to put global varible before function in a file.
> 
>>> +
>>> +void delete_ppi_instance(struct ppi_if *ppi)
>>> +{
>>> +     peripheral_free_list(ppi->info->pin_req);
>>> +     kfree(ppi);
>>> +}
>>
>> As a side note, I was not sure if this is just a resend of your original
>> patches or a second version. It would be good to indicate that in the message
>> subject. I think it's not a big deal and makes the reviewers' life easier.
> if I don't add a version number in subject, it means it is the first version.

Sorry, please ignore this. I got confused by the mailer and thought the same
patches appeared twice on the list.


Thanks,
-- 
Sylwester Nawrocki
Samsung Poland R&D Center

  reply	other threads:[~2011-09-14 14:30 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-09-13 18:34 [PATCH 1/4] v4l2: add vb2_get_unmapped_area in vb2 core Scott Jiang
2011-09-13  8:17 ` Guennadi Liakhovetski
2011-09-13  8:36   ` Scott Jiang
2011-09-13 18:34 ` [PATCH 2/4] v4l2: add adv7183 decoder driver Scott Jiang
2011-09-14  3:05   ` [uclinux-dist-devel] " Mike Frysinger
2011-09-13 18:34 ` [PATCH 3/4] v4l2: add vs6624 sensor driver Scott Jiang
2011-09-13  7:42   ` Guennadi Liakhovetski
2011-09-13  8:20     ` Scott Jiang
2011-09-13  8:22       ` Guennadi Liakhovetski
2011-09-14  3:28   ` [uclinux-dist-devel] " Mike Frysinger
2011-09-14  7:28     ` Scott Jiang
2011-09-18  2:52       ` Mike Frysinger
2011-09-13 18:34 ` [PATCH 4/4] v4l2: add blackfin capture bridge driver Scott Jiang
2011-09-13  8:11   ` Guennadi Liakhovetski
2011-09-13  9:56     ` Scott Jiang
2011-09-13 11:15       ` Guennadi Liakhovetski
2011-09-14  6:14         ` Scott Jiang
2011-09-16  8:11         ` Scott Jiang
2011-09-16  8:46           ` Guennadi Liakhovetski
2011-09-15  6:37     ` Scott Jiang
2011-09-15  8:49       ` Sylwester Nawrocki
2011-09-13 21:19   ` Sylwester Nawrocki
2011-09-14  7:10     ` Scott Jiang
2011-09-14 14:30       ` Sylwester Nawrocki [this message]
2011-09-15  2:40         ` Scott Jiang
2011-09-15  6:35           ` Guennadi Liakhovetski
2011-09-15  6:48             ` Scott Jiang
2011-09-15  7:14               ` Guennadi Liakhovetski
2011-09-15  7:26                 ` Scott Jiang
2011-09-15  7:32                   ` Guennadi Liakhovetski
2011-09-15 21:17           ` Sylwester Nawrocki
2011-09-16  2:34             ` Scott Jiang
2011-09-16  6:48               ` Guennadi Liakhovetski
2011-09-26 14:25         ` Hans Verkuil
2011-10-01 10:03           ` Sylwester Nawrocki
2011-09-14  3:19   ` [uclinux-dist-devel] " Mike Frysinger
2011-09-14  7:16     ` Scott Jiang
2011-09-14  7:22       ` Guennadi Liakhovetski
2011-09-17 20:54   ` Guennadi Liakhovetski

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=4E70BA97.1090904@samsung.com \
    --to=s.nawrocki@samsung.com \
    --cc=g.liakhovetski@gmx.de \
    --cc=hverkuil@xs4all.nl \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-media@vger.kernel.org \
    --cc=mchehab@infradead.org \
    --cc=scott.jiang.linux@gmail.com \
    --cc=snjw23@gmail.com \
    --cc=uclinux-dist-devel@blackfin.uclinux.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