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: linux-media@vger.kernel.org, Arnd Bergmann <arnd@arndb.de>
Subject: Re: [GIT PATCH FOR 2.6.40] uvcvideo patches
Date: Thu, 26 May 2011 01:43:35 +0200	[thread overview]
Message-ID: <201105260143.35396.laurent.pinchart@ideasonboard.com> (raw)
In-Reply-To: <4DDD91F2.5070801@redhat.com>

Hi Mauro,

On Thursday 26 May 2011 01:34:10 Mauro Carvalho Chehab wrote:
> Em 25-05-2011 20:20, Laurent Pinchart escreveu:
> > Hi Mauro,
> > 
> > Thanks for applying the patches. For the record, the compromise was to
> > implement XU controls filtering to make sure that userspace applications
> > won't have access to potentially dangerous controls, and to push vendors
> > to properly document their XUs.
> 
> Ok, thanks!
> 
> >>> Some XU controls are variable-size binary chunks of data. We can't
> >>> expose that as V4L2 controls, which is why I expose them using a
> >>> documented UVC API.
> >> 
> >> The V4L2 API allows string controls.
> > 
> > Hans was very much against using string controls to pass raw binary data.
> 
> Pass raw binary data is bad when we know nothing about what's passing
> there. A "firmware update" control-type however, is a different thing, as
> we really don't care about what's there. Yet, I agree that this may not be
> the best way of doing it.
> 
> >>> Why would there be no applications using it ? The UVC H.264 XUs are
> >>> documented in the above spec, so application can use them.
> >> 
> >> The Linux kernel were designed to abstract hardware differences. We
> >> should not move this task to userspace.
> > 
> > I agree in principle, but we will have to rethink this at some point in
> > the future. I don't think it will always be possible to handle all
> > hardware abstractions in the kernel. Some hardware require floating
> > point operations in their drivers for instance.
> 
> I talked with Linus some years ago about float point ops in Kernel. He said
> he was not against that, but there are some issues, as float point
> processors are arch-dependent, and kernel doesn't save FP registers. So,
> if a driver really needs to use it, extra care should be taken. That's
> said, some drivers use fixed point operations for some specific usages.

Issues arise when devices have floating point registers. And yes, that 
happens, I've learnt today about an I2C sensor with floating point registers 
(in this specific case it should probably be put in the broken design 
category, but it exists :-)).

> > There's an industry trend there, and we need to think about solutions now
> > otherwise we will be left without any way forward when too many devices
> > will be impossible to support from kernelspace (OMAP4 is a good example
> > there, some device drivers require communication with other cores, and
> > the communication API is implemented in userspace).
> 
> Needing to go to userspace to allow inter-core communication seems very
> bad. I seriously doubt that this is a trend. It seems more like a
> broken-by-design type of architecture.

I'm inclined to agree with you, but we should address these issues now, while 
we have relatively few devices impacted by them. I fear that ignoring the 
problem and hoping it will go away by itself will bring us to a difficult 
position in the future. We should show the industry in which direction we 
would like it to go.

-- 
Regards,

Laurent Pinchart

  reply	other threads:[~2011-05-25 23:43 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-05-15  7:48 [GIT PATCH FOR 2.6.40] uvcvideo patches Laurent Pinchart
2011-05-20 15:32 ` Mauro Carvalho Chehab
2011-05-20 15:49   ` Laurent Pinchart
2011-05-20 19:16     ` Mauro Carvalho Chehab
2011-05-20 19:47       ` Laurent Pinchart
2011-05-20 21:01         ` Mauro Carvalho Chehab
2011-05-20 21:29           ` Laurent Pinchart
2011-05-20 21:50             ` Mauro Carvalho Chehab
2011-05-23 22:27           ` Laurent Pinchart
2011-05-24 14:13             ` Mauro Carvalho Chehab
2011-05-24 20:25               ` Sakari Ailus
2011-05-25 23:20               ` Laurent Pinchart
2011-05-25 23:34                 ` Mauro Carvalho Chehab
2011-05-25 23:43                   ` Laurent Pinchart [this message]
2011-05-25 23:50                     ` Mauro Carvalho Chehab
2011-05-26  8:54                       ` Laurent Pinchart
2011-05-26  9:20                         ` Arnd Bergmann
2011-05-26  9:46                           ` Mauro Carvalho Chehab
2011-05-26 14:45                           ` Sakari Ailus
2011-05-27  7:26                             ` Arnd Bergmann
2011-05-24 12:29           ` Sakari Ailus
2011-05-20 15:55   ` Rémi Denis-Courmont
2011-05-20 16:04     ` Laurent Pinchart
2011-05-20 18:48     ` Mauro Carvalho Chehab
2011-05-22 16:35       ` Mauro Carvalho Chehab
  -- strict thread matches above, loose matches on Subject: below --
2011-05-12 15:30 Laurent Pinchart
2011-05-12 15:48 ` Laurent Pinchart

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=201105260143.35396.laurent.pinchart@ideasonboard.com \
    --to=laurent.pinchart@ideasonboard.com \
    --cc=arnd@arndb.de \
    --cc=linux-media@vger.kernel.org \
    --cc=mchehab@redhat.com \
    /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.