Subject: Re: Kernelspace firmware loaders (was: linux-next: manual merge of the staging tree with the v4l-dvb tree)

From: Greg KH <[email-masked]>
Date: Mon, 7 Mar 2011 08:16:58 -0800

On Mon, Mar 07, 2011 at 03:07:36PM +0100, Laurent Pinchart wrote:
> On Friday 04 March 2011 18:54:24 Mauro Carvalho Chehab wrote:
> > Em 04-03-2011 14:13, Greg KH escreveu:
> > > On Fri, Mar 04, 2011 at 04:39:05PM +1100, Stephen Rothwell wrote:
> > >> Today's linux-next merge of the staging tree got a conflict in
> > >> drivers/staging/Kconfig between commit
> > >> a1256092a1e87511c977a3d0ef96151cda77e5c9 ("[media] Altera FPGA firmware
> > >> download module") from the v4l-dvb tree and commit
> > >> 0867b42113ec4eb8646eb361b15cbcfb741ddf5b ("staging: gma500: Intel GMA500
> > >> staging driver") from the staging tree.
> > >> 
> > >> I fixed it up (see below) and can carry the fix as necessary.
> > > 
> > > That looks correct.
> > > 
> > > Mauro, what is this driver and why is it added to the staging tree?
> > 
> > This driver implements the FPGA programming logic for a firmware required
> > by a DVB driver, and was proposed initially for 2.6.37 inclusion. During
> > the 2.6.38 development cycle, it suffered several revisions, based on our
> > input at the media and lkml mailing lists, where Igor fixed all
> > CodingStyle issues.
> > 
> > In the last minute, during 2.6.38 merge window, two developers (Laurent and
> > Ben) [1] complained against adding a driver for loading FPGA firmware
> > as-is. So, I decided to add it, for now, at staging, to avoid needing to
> > postpone a long series of patches again just because of that, especially
> > since a series of DVB-C devices are without support on Linux without this
> > patch series, and there are very few DVB-C devices currently supported.
> > 
> > The Altera driver is compliant with CodingStyle, and, from my side, it is
> > ok to move it to drivers/others, but it doesn't hurt to give some time for
> > Ben and Laurent to propose alternative way of implementing the firmware
> > request logic.
> > 
> > If nothing happens until 2.6.40 merge window, I think we should go forward
> > and move it to the proper place.
> 
> What's the policy regarding firmware loaders in kernelspace vs. userspace ? 
> JTAG is a quite complex protocol, and we already have lots of JTAG libraries 
> in userspace (http://urjtag.org/ seems to be the most popular one). We also 
> have userspace firmware loaders (such as fxload for the Cypress EZ USB 
> microcontrollers). Do we need a kernelspace JTAG implementation ?
> 
> > [1] http://www.mail-archive.com/[email-masked]/msg26422.html

If the code is just a "pass-through" to the hardware, I have no
objection to the driver being in the kernel, if it needs to be in order
to control the hardware properly.

thanks,

greg k-h