All of lore.kernel.org
 help / color / mirror / Atom feed
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Mauro Carvalho Chehab <mchehab@redhat.com>
Cc: Prabhakar Lad <prabhakar.csengg@gmail.com>,
	LMML <linux-media@vger.kernel.org>,
	LKML <linux-kernel@vger.kernel.org>,
	DLOS <davinci-linux-open-source@linux.davincidsp.com>,
	Manjunath Hadli <manjunath.hadli@ti.com>,
	Prabhakar Lad <prabhakar.lad@ti.com>,
	devel@driverdev.osuosl.org,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Sakari Ailus <sakari.ailus@iki.fi>,
	Hans Verkuil <hans.verkuil@cisco.com>
Subject: Re: [PATCH v3 9/9] davinci: vpfe: Add documentation and TODO
Date: Wed, 28 Nov 2012 14:00:14 +0100	[thread overview]
Message-ID: <1555450.K4uAzFNhY7@avalon> (raw)
In-Reply-To: <20121128092213.4bd0870f@redhat.com>

Hi Mauro,

Please see below.

On Wednesday 28 November 2012 09:22:13 Mauro Carvalho Chehab wrote:
> Hi Prabhakar,
> 
> Em Wed, 28 Nov 2012 16:12:09 +0530
> 
> Prabhakar Lad <prabhakar.csengg@gmail.com> escreveu:
> > +Introduction
> > +============
> > +
> > + This file documents the Texas Instruments Davinci Video processing Front
> > + End (VPFE) driver located under drivers/media/platform/davinci. The
> > + original driver exists for Davinci VPFE, which is now being changed to
> > + Media Controller Framework.
> 
> Hmm... please correct me if I'm wrong, but are you wanting to replace an
> existing driver at drivers/media/platform/davinci, by another one at
> staging that has lots of known issues, as pointed at your TODO????
> 
> If so, please don't do that. Replacing a driver by some other one is
> generally a very bad idea, especially in this case, where the new driver
> has clearly several issues, the main one being to define its own proprietary
> and undocumented API:
>
> > +As of now since the interface will undergo few changes all the include
> > +files are present in staging itself, to build for dm365 follow below
> > +steps,
> > +
> > +- copy vpfe.h from drivers/staging/media/davinci_vpfe/ to
> > +  include/media/davinci/ folder for building the uImage.
> > +- copy davinci_vpfe_user.h from drivers/staging/media/davinci_vpfe/ to
> > +  include/uapi/linux/davinci_vpfe.h, and add a entry in Kbuild (required
> > +  for building application).
> > +- copy dm365_ipipeif_user.h from drivers/staging/media/davinci_vpfe/ to
> > +  include/uapi/linux/dm365_ipipeif.h and a entry in Kbuild (required
> > +  for building application).
> 
> Among other things, with those ugly and very likely mandatory API calls:
>
> >+/*
> >+ * Private IOCTL
> >+ * VIDIOC_VPFE_IPIPEIF_S_CONFIG: Set IPIEIF configuration
> >+ * VIDIOC_VPFE_IPIPEIF_G_CONFIG: Get IPIEIF configuration
> >+ */
> >+#define VIDIOC_VPFE_IPIPEIF_S_CONFIG \
> >+	_IOWR('I', BASE_VIDIOC_PRIVATE + 1, struct ipipeif_params)
> >+#define VIDIOC_VPFE_IPIPEIF_G_CONFIG \
> >+	_IOWR('I', BASE_VIDIOC_PRIVATE + 2, struct ipipeif_params)
> >+
> >+#endif
> 
> I remember we rejected already drivers like that with obscure "S_CONFIG"
> private ioctl that were suspect to send a big initialization undocumented
> blob to the driver, as only the vendor's application would be able to use
> such driver.

That's correct, and that's why the driver is going to staging. From there it 
will be incrementally fixed and then moved to drivers/media/, or dropped if 
not maintained.

> So, instead, of submitting it to staging, you should be sending incremental
> patches for the existing driver, adding newer functionality there, and
> using the proper V4L2 API, with makes life easier for reviewers and
> application developers.

I agree that it would be the best thing to do, but I don't think it's going to 
happen. We need to decide between two options.

- Push back now and insist in incremental patches for the existing driver, and 
get nothing back as TI will very likely give up completely.
- Accept the driver in staging, get it fixed incrementally, and finally move 
it to drivers/media/

There's a political side to this issue, we need to decide whether we want to 
insist vendors getting everything right before any code reaches mainline, in 
which case I believe we will lose some of them in the process, including major 
vendors such as TI, or if we can make the mainline learning curve and 
experience a bit more smooth by accepting such code in staging.

I would vote for the second option, with a very clear rule that getting the 
driver in staging is only one step in the journey: if the development effort 
stops there, the driver *will* be removed.

-- 
Regards,

Laurent Pinchart


  reply	other threads:[~2012-11-28 12:59 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-11-28 10:42 [PATCH v3 0/9] Media Controller capture driver for DM365 Prabhakar Lad
2012-11-28 10:42 ` [PATCH v3 1/9] davinci: vpfe: add v4l2 capture driver with media interface Prabhakar Lad
2012-11-28 10:42 ` [PATCH v3 2/9] davinci: vpfe: add v4l2 video driver support Prabhakar Lad
2012-11-28 10:42 ` [PATCH v3 3/9] davinci: vpfe: dm365: add IPIPEIF driver based on media framework Prabhakar Lad
2012-11-28 10:42 ` [PATCH v3 4/9] davinci: vpfe: dm365: add ISIF " Prabhakar Lad
2012-11-28 10:42 ` [PATCH v3 5/9] davinci: vpfe: dm365: add IPIPE support for media controller driver Prabhakar Lad
2012-11-28 10:42 ` [PATCH v3 6/9] davinci: vpfe: dm365: add IPIPE hardware layer support Prabhakar Lad
2012-11-28 10:42 ` [PATCH v3 7/9] davinci: vpfe: dm365: resizer driver based on media framework Prabhakar Lad
2012-11-28 10:42 ` [PATCH v3 8/9] davinci: vpfe: dm365: add build infrastructure for capture driver Prabhakar Lad
2012-11-28 10:42 ` [PATCH v3 9/9] davinci: vpfe: Add documentation and TODO Prabhakar Lad
2012-11-28 11:22   ` Mauro Carvalho Chehab
2012-11-28 13:00     ` Laurent Pinchart [this message]
2012-11-28 19:35       ` Mauro Carvalho Chehab
2012-11-29  3:08         ` Prabhakar Lad
2012-11-28 20:00     ` Sakari Ailus
2012-11-28 11:45 ` [PATCH v3 0/9] Media Controller capture driver for DM365 Dan Carpenter
2012-11-28 11:56   ` Hans Verkuil
2012-11-28 12:18     ` Mauro Carvalho Chehab
2012-11-28 17:22       ` Greg Kroah-Hartman
2012-11-28 19:18         ` Hans Verkuil
2012-11-28 19:30           ` Greg Kroah-Hartman
2012-11-29  7:43             ` Hans Verkuil
2012-11-29 10:39               ` Mauro Carvalho Chehab
2012-11-29 12:45                 ` Manjunath Hadli
2012-11-29 16:38                   ` Mauro Carvalho Chehab
2012-11-28 21:04           ` Dan Carpenter
2012-11-28 12:22     ` Dan Carpenter
2012-11-28 19:30       ` Sylwester Nawrocki
2012-11-28 20:46         ` Greg Kroah-Hartman
2012-11-28 21:29         ` Dan Carpenter
2012-11-28 23:47           ` Sylwester Nawrocki
2012-11-29  7:40             ` Hans Verkuil
2012-11-28 20:04     ` Sakari Ailus
2012-11-29 10:12 ` Laurent Pinchart
2012-11-30  9:47 ` Sakari Ailus
2012-11-30  9:54   ` Hans Verkuil

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=1555450.K4uAzFNhY7@avalon \
    --to=laurent.pinchart@ideasonboard.com \
    --cc=davinci-linux-open-source@linux.davincidsp.com \
    --cc=devel@driverdev.osuosl.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=hans.verkuil@cisco.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=manjunath.hadli@ti.com \
    --cc=mchehab@redhat.com \
    --cc=prabhakar.csengg@gmail.com \
    --cc=prabhakar.lad@ti.com \
    --cc=sakari.ailus@iki.fi \
    /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.