Re: [PATCH 2.6.39] soc_camera: OMAP1: fix missing bytesperline and sizeimage initialization

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Yes, thank you very much!

2011/4/12 Guennadi Liakhovetski <g.liakhovetski@xxxxxx>:
> On Tue, 12 Apr 2011, Kassey Lee wrote:
>
>> 2011/4/12 Kassey Lee <kassey1216@xxxxxxxxx>:
>> > Hi, Guennadi;
>> >           for sizeimage , I agree with you. that we can overwrite it
>> > after a frame is done.
>> >
>> >    for byteperline: on Marvell soc.
>> >    it needs to know the bytesperline before receive frame from sensor.
>> >    what we did now is hardcode  in host driver for bytesperline.
>> >
>> >    since different sensors have different timing for JPEG, and
>> > bytesperline is different.
>> >    while  soc_mbus_bytes_per_line does not support JPEG.
>> >
>> >    So, we want that host driver can get byteperline from sensor
>> > driver (sub dev) before transfer a frame for JPEG format.
>> >    a way to do this:
>> >    soc_mbus_bytes_per_line return 0 for JPEG, and host driver will
>> > try another API to get bytesperline for JPEG from sensor driver.
>> >     the effort is new API or reused other API.
>> >
>> >    Is that reasonable ?
>
> If you mean this your patch
>
> http://article.gmane.org/gmane.linux.drivers.video-input-infrastructure/31323/match=
>
> then I've queued it for 2.6.40.
>
> Thanks
> Guennadi
>
>> >
>> >
>> >
>> > 2011/4/12 Guennadi Liakhovetski <g.liakhovetski@xxxxxx>:
>> >> Hi
>> >>
>> >> On Tue, 12 Apr 2011, Kassey Lee wrote:
>> >>
>> >>> hi, Guennadi:
>> >>>     a lot of sensors support JPEG output.
>> >>>     1) bytesperline is defined by sensor timing.
>> >>>     2) and sizeimage is unknow for jpeg.
>> >>>
>> >>>   how about for JPEG
>> >>>    1) host driver gets bytesperline from sensor driver.
>> >>>    2) sizeimage refilled by host driver after dma transfer done( a
>> >>> frame is received)
>> >>>   thanks.
>> >>
>> >> How is this done currently on other V4L2 drivers? To transfer a frame you
>> >> usually first do at least one of S_FMT and G_FMT, at which time you
>> >> already have to report sizeimage to the user - before any transfer has
>> >> taken place. Currently with soc-camera it is already possible to override
>> >> sizeimage and bytesperline from the host driver. Just set them to whatever
>> >> you need in your try_fmt and they will be kept. Not sure how you want to
>> >> do that, if you need to first read in a frame - do you want to perform
>> >> some dummy frame transfer? You might not even have any buffers queued yet,
>> >> so, it has to be a read without writing to RAM. Don't such compressed
>> >> formats just put a value in sizeimage, that is a calculated maximum size?
>> >>
>> >> Thanks
>> >> Guennadi
>> >>
>> >>> 2011/4/11 Guennadi Liakhovetski <g.liakhovetski@xxxxxx>:
>> >>> > Hi Janusz
>> >>> >
>> >>> > On Sat, 9 Apr 2011, Janusz Krzysztofik wrote:
>> >>> >
>> >>> >> Since commit 0e4c180d3e2cc11e248f29d4c604b6194739d05a, bytesperline and
>> >>> >> sizeimage memebers of v4l2_pix_format structure have no longer been
>> >>> >> calculated inside soc_camera_g_fmt_vid_cap(), but rather passed via
>> >>> >> soc_camera_device structure from a host driver callback invoked by
>> >>> >> soc_camera_set_fmt().
>> >>> >>
>> >>> >> OMAP1 camera host driver has never been providing these parameters, so
>> >>> >> it no longer works correctly. Fix it by adding suitable assignments to
>> >>> >> omap1_cam_set_fmt().
>> >>> >
>> >>> > Thanks for the patch, but now it looks like many soc-camera host drivers
>> >>> > are re-implementing this very same calculation in different parts of their
>> >>> > code - in try_fmt, set_fmt, get_fmt. Why don't we unify them all,
>> >>> > implement this centrally in soc_camera.c and remove all those
>> >>> > calculations? Could you cook up a patch or maybe several patches - for
>> >>> > soc_camera.c and all drivers?
>> >>> >
>> >>> > Thanks
>> >>> > Guennadi
>> >>> >
>> >>> >>
>> >>> >> Signed-off-by: Janusz Krzysztofik <jkrzyszt@xxxxxxxxxxxx>
>> >>> >> ---
>> >>> >>  drivers/media/video/omap1_camera.c |    6 ++++++
>> >>> >>  1 file changed, 6 insertions(+)
>> >>> >>
>> >>> >> --- linux-2.6.39-rc2/drivers/media/video/omap1_camera.c.orig  2011-04-06 14:30:37.000000000 +0200
>> >>> >> +++ linux-2.6.39-rc2/drivers/media/video/omap1_camera.c       2011-04-09 00:16:36.000000000 +0200
>> >>> >> @@ -1292,6 +1292,12 @@ static int omap1_cam_set_fmt(struct soc_
>> >>> >>       pix->colorspace  = mf.colorspace;
>> >>> >>       icd->current_fmt = xlate;
>> >>> >>
>> >>> >> +     pix->bytesperline = soc_mbus_bytes_per_line(pix->width,
>> >>> >> +                                                 xlate->host_fmt);
>> >>> >> +     if (pix->bytesperline < 0)
>> >>> >> +             return pix->bytesperline;
>> >>> >> +     pix->sizeimage = pix->height * pix->bytesperline;
>> >>> >> +
>> >>> >>       return 0;
>> >>> >>  }
>> >>> >>
>> >>> >>
>> >>> >
>> >>> > ---
>> >>> > Guennadi Liakhovetski, Ph.D.
>> >>> > Freelance Open-Source Software Developer
>> >>> > http://www.open-technology.de/
>> >>> > --
>> >>> > To unsubscribe from this list: send the line "unsubscribe linux-media" in
>> >>> > the body of a message to majordomo@xxxxxxxxxxxxxxx
>> >>> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
>> >>> >
>> >>>
>> >>
>> >> ---
>> >> Guennadi Liakhovetski, Ph.D.
>> >> Freelance Open-Source Software Developer
>> >> http://www.open-technology.de/
>> >> --
>> >> To unsubscribe from this list: send the line "unsubscribe linux-media" in
>> >> the body of a message to majordomo@xxxxxxxxxxxxxxx
>> >> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>> >>
>> >
>>
>
> ---
> Guennadi Liakhovetski, Ph.D.
> Freelance Open-Source Software Developer
> http://www.open-technology.de/
>
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux