linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* linux-next: manual merge of the staging tree with the v4l-dvb tree
@ 2011-03-04  5:39 Stephen Rothwell
  2011-03-04 17:13 ` Greg KH
  0 siblings, 1 reply; 13+ messages in thread
From: Stephen Rothwell @ 2011-03-04  5:39 UTC (permalink / raw)
  To: Greg KH
  Cc: linux-next, linux-kernel, Alan Cox, Igor M. Liplianin,
	Mauro Carvalho Chehab

Hi Greg,

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.
-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

diff --cc drivers/staging/Kconfig
index 1ae0c1b,5295d85..0000000
--- a/drivers/staging/Kconfig
+++ b/drivers/staging/Kconfig
@@@ -179,7 -177,7 +177,9 @@@ source "drivers/staging/cptm1217/Kconfi
  
  source "drivers/staging/ste_rmi4/Kconfig"
  
 +source "drivers/staging/altera-stapl/Kconfig"
 +
+ source "drivers/staging/gma500/Kconfig"
+ 
  endif # !STAGING_EXCLUDE_BUILD
  endif # STAGING

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: linux-next: manual merge of the staging tree with the v4l-dvb tree
  2011-03-04  5:39 linux-next: manual merge of the staging tree with the v4l-dvb tree Stephen Rothwell
@ 2011-03-04 17:13 ` Greg KH
  2011-03-04 17:54   ` Mauro Carvalho Chehab
  0 siblings, 1 reply; 13+ messages in thread
From: Greg KH @ 2011-03-04 17:13 UTC (permalink / raw)
  To: Stephen Rothwell
  Cc: linux-next, linux-kernel, Alan Cox, Igor M. Liplianin,
	Mauro Carvalho Chehab

On Fri, Mar 04, 2011 at 04:39:05PM +1100, Stephen Rothwell wrote:
> Hi Greg,
> 
> 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?

curious,

greg k-h

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: linux-next: manual merge of the staging tree with the v4l-dvb tree
  2011-03-04 17:13 ` Greg KH
@ 2011-03-04 17:54   ` Mauro Carvalho Chehab
  2011-03-04 21:23     ` Greg KH
  2011-03-07 14:07     ` Kernelspace firmware loaders (was: linux-next: manual merge of the staging tree with the v4l-dvb tree) Laurent Pinchart
  0 siblings, 2 replies; 13+ messages in thread
From: Mauro Carvalho Chehab @ 2011-03-04 17:54 UTC (permalink / raw)
  To: Greg KH
  Cc: Stephen Rothwell, linux-next, linux-kernel, Alan Cox,
	Igor M. Liplianin, Laurent Pinchart, Ben Gamari

Hi Greg,

Em 04-03-2011 14:13, Greg KH escreveu:
> On Fri, Mar 04, 2011 at 04:39:05PM +1100, Stephen Rothwell wrote:
>> Hi Greg,
>>
>> 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.

Cheers,
Mauro

[1] http://www.mail-archive.com/linux-media@vger.kernel.org/msg26422.html

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: linux-next: manual merge of the staging tree with the v4l-dvb tree
  2011-03-04 17:54   ` Mauro Carvalho Chehab
@ 2011-03-04 21:23     ` Greg KH
  2011-03-04 22:17       ` Mauro Carvalho Chehab
  2011-03-07 14:07     ` Kernelspace firmware loaders (was: linux-next: manual merge of the staging tree with the v4l-dvb tree) Laurent Pinchart
  1 sibling, 1 reply; 13+ messages in thread
From: Greg KH @ 2011-03-04 21:23 UTC (permalink / raw)
  To: Mauro Carvalho Chehab
  Cc: Stephen Rothwell, linux-next, linux-kernel, Alan Cox,
	Igor M. Liplianin, Laurent Pinchart, Ben Gamari

On Fri, Mar 04, 2011 at 02:54:24PM -0300, Mauro Carvalho Chehab wrote:
> Hi Greg,
> 
> Em 04-03-2011 14:13, Greg KH escreveu:
> > On Fri, Mar 04, 2011 at 04:39:05PM +1100, Stephen Rothwell wrote:
> >> Hi Greg,
> >>
> >> 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.

Ok, thanks, I'll defer any patches for this code to you.

greg k-h

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: linux-next: manual merge of the staging tree with the v4l-dvb tree
  2011-03-04 21:23     ` Greg KH
@ 2011-03-04 22:17       ` Mauro Carvalho Chehab
  0 siblings, 0 replies; 13+ messages in thread
From: Mauro Carvalho Chehab @ 2011-03-04 22:17 UTC (permalink / raw)
  To: Greg KH
  Cc: Stephen Rothwell, linux-next, linux-kernel, Alan Cox,
	Igor M. Liplianin, Laurent Pinchart, Ben Gamari

Em 04-03-2011 18:23, Greg KH escreveu:
> On Fri, Mar 04, 2011 at 02:54:24PM -0300, Mauro Carvalho Chehab wrote:
>> Hi Greg,
>>
>> Em 04-03-2011 14:13, Greg KH escreveu:
>>> On Fri, Mar 04, 2011 at 04:39:05PM +1100, Stephen Rothwell wrote:
>>>> Hi Greg,
>>>>
>>>> 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.
> 
> Ok, thanks, I'll defer any patches for this code to you.

Ok, thanks!
Mauro.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Kernelspace firmware loaders (was: linux-next: manual merge of the staging tree with the v4l-dvb tree)
  2011-03-04 17:54   ` Mauro Carvalho Chehab
  2011-03-04 21:23     ` Greg KH
@ 2011-03-07 14:07     ` Laurent Pinchart
  2011-03-07 16:16       ` Greg KH
  1 sibling, 1 reply; 13+ messages in thread
From: Laurent Pinchart @ 2011-03-07 14:07 UTC (permalink / raw)
  To: Mauro Carvalho Chehab
  Cc: Greg KH, Stephen Rothwell, linux-next, linux-kernel, Alan Cox,
	Igor M. Liplianin, Ben Gamari

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/linux-media@vger.kernel.org/msg26422.html

-- 
Regards,

Laurent Pinchart

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Kernelspace firmware loaders (was: linux-next: manual merge of the staging tree with the v4l-dvb tree)
  2011-03-07 14:07     ` Kernelspace firmware loaders (was: linux-next: manual merge of the staging tree with the v4l-dvb tree) Laurent Pinchart
@ 2011-03-07 16:16       ` Greg KH
  2011-03-07 16:39         ` Linus Torvalds
  2011-03-07 16:51         ` Laurent Pinchart
  0 siblings, 2 replies; 13+ messages in thread
From: Greg KH @ 2011-03-07 16:16 UTC (permalink / raw)
  To: Laurent Pinchart
  Cc: Mauro Carvalho Chehab, Stephen Rothwell, linux-next, linux-kernel,
	Alan Cox, Igor M. Liplianin, Ben Gamari

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/linux-media@vger.kernel.org/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

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Kernelspace firmware loaders (was: linux-next: manual merge of the staging tree with the v4l-dvb tree)
  2011-03-07 16:16       ` Greg KH
@ 2011-03-07 16:39         ` Linus Torvalds
  2011-03-09 22:30           ` Laurent Pinchart
  2011-03-07 16:51         ` Laurent Pinchart
  1 sibling, 1 reply; 13+ messages in thread
From: Linus Torvalds @ 2011-03-07 16:39 UTC (permalink / raw)
  To: Greg KH
  Cc: Laurent Pinchart, Mauro Carvalho Chehab, Stephen Rothwell,
	linux-next, linux-kernel, Alan Cox, Igor M. Liplianin, Ben Gamari

On Mon, Mar 7, 2011 at 8:16 AM, Greg KH <greg@kroah.com> wrote:
>
> 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.

.. or even if it doesn't "need to be", and you _could_ do it in user space.

We've had tons of problems with user space breakage and version skew
etc. It's often been a total pain to have user space-vs-kernel
components that support one version but not the other, making it hard
to upgrade the kernel independently of other things. The whole
experience with X-vs-drm has been very painful.

There are two cases where user-space drivers work fine:

 (a) if there is no kernel component to them at all. Think "this
driver would work on not just Linux, but on FreeBSD and UnixWare".
Examples of this would be the original X approach.

 (b) if there's a kernel driver which exports an interface that is
specified by the hardware (NOT specified by some "abstraction" layer),
and where the kernel just exports an interface and doesn't expect
anything back (ie the kernel is _strictly_ the lower-level driver,
there is no two-way "user space helps kernel" crap)

     A reasonable example of this would be the USB user space drivers:
the kernel interface is clearly _below_ (so the kernel does not depend
on user space), and the defined not by some crazy software interface,
but by the USB hardware standard.

But any other kind of mixing is just a big pain. Having a user-space
thing to set things up for a kernel driver is crazy crap. It
inevitably leads to "one or the other is broken, and people working on
one piece aren't the same people working on the other". Just don't do
it. Every time it's done, it leads to problems. You need special
programs to set things up etc. It's just f*cked up.

(An example of why it's crazy crap: it inevitably means that the
kernel can not "resume" a device. Because it now needs user space help
to get the device going again. Crazy. Don't do it. It's shit).

                               Linus

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Kernelspace firmware loaders (was: linux-next: manual merge of the staging tree with the v4l-dvb tree)
  2011-03-07 16:16       ` Greg KH
  2011-03-07 16:39         ` Linus Torvalds
@ 2011-03-07 16:51         ` Laurent Pinchart
  2011-03-07 17:40           ` Igor M. Liplianin
  1 sibling, 1 reply; 13+ messages in thread
From: Laurent Pinchart @ 2011-03-07 16:51 UTC (permalink / raw)
  To: Greg KH
  Cc: Mauro Carvalho Chehab, Stephen Rothwell, linux-next, linux-kernel,
	Alan Cox, Igor M. Liplianin, Ben Gamari

Hi Greg,

On Monday 07 March 2011 17:16:58 Greg KH wrote:
> 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/linux-media@vger.kernel.org/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.

The code implements a JTAG TAP state machine with a bit-banging algorithm, 
including direct parallel port (LPT) access, and a bitcode interpreter for the 
files generated by the Altera FPGA proprietary development tools.

-- 
Regards,

Laurent Pinchart

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Kernelspace firmware loaders (was: linux-next: manual merge of the staging tree with the v4l-dvb tree)
  2011-03-07 16:51         ` Laurent Pinchart
@ 2011-03-07 17:40           ` Igor M. Liplianin
  2011-03-09 22:11             ` Laurent Pinchart
  0 siblings, 1 reply; 13+ messages in thread
From: Igor M. Liplianin @ 2011-03-07 17:40 UTC (permalink / raw)
  To: Laurent Pinchart
  Cc: Greg KH, Mauro Carvalho Chehab, Stephen Rothwell, linux-next,
	linux-kernel, Alan Cox, Ben Gamari

В сообщении от 7 марта 2011 18:51:27 автор Laurent Pinchart написал:
> Hi Greg,
> 
> On Monday 07 March 2011 17:16:58 Greg KH wrote:
> > 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/linux-media@vger.kernel.org/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.
> 
> The code implements a JTAG TAP state machine with a bit-banging algorithm,
> including direct parallel port (LPT) access, and a bitcode interpreter for
LPT access procedure included for historical reason, on early development stages it was used for 
program FPGA, then we swithed to cx23885 GPIO's. Developer can choose(develop) his own procedure 
for JTAG pins access.

> the files generated by the Altera FPGA proprietary development tools.
So, we used this tools. And the code is from widely opened sources.

-- 
Igor M. Liplianin
Microsoft Windows Free Zone - Linux used for all Computing Tasks

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Kernelspace firmware loaders (was: linux-next: manual merge of the staging tree with the v4l-dvb tree)
  2011-03-07 17:40           ` Igor M. Liplianin
@ 2011-03-09 22:11             ` Laurent Pinchart
  0 siblings, 0 replies; 13+ messages in thread
From: Laurent Pinchart @ 2011-03-09 22:11 UTC (permalink / raw)
  To: Igor M. Liplianin
  Cc: Greg KH, Mauro Carvalho Chehab, Stephen Rothwell, linux-next,
	linux-kernel, Alan Cox, Ben Gamari

Hi Igor,

On Monday 07 March 2011 18:40:28 Igor M. Liplianin wrote:
> В сообщении от 7 марта 2011 18:51:27 автор Laurent Pinchart написал:
> > On Monday 07 March 2011 17:16:58 Greg KH wrote:
> > > 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/linux-media@vger.kernel.org/msg26422.ht
> > > > > ml
> > > 
> > > 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.
> > 
> > The code implements a JTAG TAP state machine with a bit-banging
> > algorithm, including direct parallel port (LPT) access, and a bitcode
> > interpreter for
> 
> LPT access procedure included for historical reason, on early development
> stages it was used for program FPGA, then we swithed to cx23885 GPIO's.
> Developer can choose(develop) his own procedure for JTAG pins access.

Shouldn't LPT support be removed then ?

> > the files generated by the Altera FPGA proprietary development tools.
> 
> So, we used this tools. And the code is from widely opened sources.

Are we going to add support for all proprietary (and standard ?) FPGA file 
formats, with FPGA programming algorithms from multiple vendors, and TAP 
access support at various levels (not all JTAG interfaces can be controlled at 
the bit-banging level, some use higher level commands) to the kernel ? That 
would be a big amount of complex code, for very little benefit.

You could simplify this by going for a single file format across multiple 
devices from multiple vendors, such as XSVF, but I'm not sure it's a good 
solution either.

-- 
Regards,

Laurent Pinchart

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Kernelspace firmware loaders (was: linux-next: manual merge of the staging tree with the v4l-dvb tree)
  2011-03-07 16:39         ` Linus Torvalds
@ 2011-03-09 22:30           ` Laurent Pinchart
  2011-03-10  8:14             ` Olivier Galibert
  0 siblings, 1 reply; 13+ messages in thread
From: Laurent Pinchart @ 2011-03-09 22:30 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Greg KH, Mauro Carvalho Chehab, Stephen Rothwell, linux-next,
	linux-kernel, Alan Cox, Igor M. Liplianin, Ben Gamari

Hi Linus,

On Monday 07 March 2011 17:39:43 Linus Torvalds wrote:
> On Mon, Mar 7, 2011 at 8:16 AM, Greg KH <greg@kroah.com> wrote:
> > 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.
> 
> .. or even if it doesn't "need to be", and you _could_ do it in user space.
> 
> We've had tons of problems with user space breakage and version skew
> etc. It's often been a total pain to have user space-vs-kernel
> components that support one version but not the other, making it hard
> to upgrade the kernel independently of other things. The whole
> experience with X-vs-drm has been very painful.
> 
> There are two cases where user-space drivers work fine:
> 
>  (a) if there is no kernel component to them at all. Think "this
> driver would work on not just Linux, but on FreeBSD and UnixWare".
> Examples of this would be the original X approach.
> 
>  (b) if there's a kernel driver which exports an interface that is
> specified by the hardware (NOT specified by some "abstraction" layer),
> and where the kernel just exports an interface and doesn't expect
> anything back (ie the kernel is _strictly_ the lower-level driver,
> there is no two-way "user space helps kernel" crap)
> 
>      A reasonable example of this would be the USB user space drivers:
> the kernel interface is clearly _below_ (so the kernel does not depend
> on user space), and the defined not by some crazy software interface,
> but by the USB hardware standard.
> 
> But any other kind of mixing is just a big pain. Having a user-space
> thing to set things up for a kernel driver is crazy crap. It
> inevitably leads to "one or the other is broken, and people working on
> one piece aren't the same people working on the other". Just don't do
> it. Every time it's done, it leads to problems. You need special
> programs to set things up etc. It's just f*cked up.
> 
> (An example of why it's crazy crap: it inevitably means that the
> kernel can not "resume" a device. Because it now needs user space help
> to get the device going again. Crazy. Don't do it. It's shit).

I agree with you on the pain introduced by mixing drivers with userspace 
helpers. However, I'm still concerned about having a full JTAG stack in the 
kernel.

The Altera JTAG driver is basically a firmware loader. There's nothing wrong 
with firmare loaders in the kernel per-se, we have plenty of them and they 
usually request firmware data from userspace (hopefully specially crafted for 
the Linux driver, or pre-processed when the firmware is extracted from a 
Windows driver) and more of less dump it to the device.

Now, if a vendor provided a firmware in the form of a Java bytecode file, 
requiring the kernel driver to implement a JVM to load the firmware into the 
device, would you accept it ? JTAG is not Java, but it still requires several 
non-trivial layers, from controller drivers (we need to support multiple APIs 
there, as controllers can range from simple bit-banging adapters to more 
complex and faster devices with a higher level interface) to binary firmware 
interpreters (and I'm really talking about intepreters here, not just parsers 
- the Altera firmware file requires a VM) with of course incompatible vendor-
specific formats.

-- 
Regards,

Laurent Pinchart

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Kernelspace firmware loaders (was: linux-next: manual merge of the staging tree with the v4l-dvb tree)
  2011-03-09 22:30           ` Laurent Pinchart
@ 2011-03-10  8:14             ` Olivier Galibert
  0 siblings, 0 replies; 13+ messages in thread
From: Olivier Galibert @ 2011-03-10  8:14 UTC (permalink / raw)
  To: Linus Torvalds, linux-next, linux-kernel, Alan Cox

On Wed, Mar 09, 2011 at 11:30:59PM +0100, Laurent Pinchart wrote:
> Now, if a vendor provided a firmware in the form of a Java bytecode file, 
> requiring the kernel driver to implement a JVM to load the firmware into the 
> device, would you accept it ?

You extract the data in userspace, turn it into something passive in a
format you define, and implement the actual loader in C in the kernel.
It would not be the first or last time the actual data is extracted
from a vendor-provided package.

  OG.

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2011-03-10  8:24 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-03-04  5:39 linux-next: manual merge of the staging tree with the v4l-dvb tree Stephen Rothwell
2011-03-04 17:13 ` Greg KH
2011-03-04 17:54   ` Mauro Carvalho Chehab
2011-03-04 21:23     ` Greg KH
2011-03-04 22:17       ` Mauro Carvalho Chehab
2011-03-07 14:07     ` Kernelspace firmware loaders (was: linux-next: manual merge of the staging tree with the v4l-dvb tree) Laurent Pinchart
2011-03-07 16:16       ` Greg KH
2011-03-07 16:39         ` Linus Torvalds
2011-03-09 22:30           ` Laurent Pinchart
2011-03-10  8:14             ` Olivier Galibert
2011-03-07 16:51         ` Laurent Pinchart
2011-03-07 17:40           ` Igor M. Liplianin
2011-03-09 22:11             ` Laurent Pinchart

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).