Re: [PULL] http://www.linuxtv.org/hg/~hverkuil/v4l-dvb-staging

2009-11-23 Thread Mauro Carvalho Chehab
Hans Verkuil wrote:
 On Friday 20 November 2009 22:06:02 Devin Heitmueller wrote:
 On Fri, Nov 20, 2009 at 3:38 PM, Hans Verkuil hverk...@xs4all.nl wrote:
 Hi Mauro,

 Please pull from http://www.linuxtv.org/hg/~hverkuil/v4l-dvb-staging
 for the following:

 - Enable staging drivers by default when building v4l-dvb
 - go7007: Add struct v4l2_device.
 - s2250: Change module structure
 - s2250: subdev conversion
 - go7007: subdev conversion
 I have to admit that I am not sure that enabling staging drivers by
 default is a good idea.  Staging drivers can be highly unstable, and
 can potentially damage hardware.  I can totally imagine less
 experienced users with one of these devices building the current code
 and then being confused why their hardware is detected but is totally
 broken, or worse becomes damaged.
 
 If there are drivers in the staging tree that are so unreliable that they 
 can break the hardware, then those should be explicitly disabled, rather 
 than disabling all drivers in the staging tree. Or perhaps do not belong 
 there at all, or belong under the CONFIG_STAGING_BROKEN option.
 
 A driver like the go7007 is under active development, and it does work. It 
 only needs more cleanup before it can be moved to drivers/media/video, so 
 there was no reason that it should be disabled.
 
 Mauro, what are the risks of always compiling the tm6000 and cx25821 
 drivers? Let me know if you think that either one or both should be 
 disabled for now and I'll make a patch for it.

Even on upstream, drivers in staging are not compiled by default. To enable
them, you need to answer yes to two questions.

If the driver is OK, it shouldn't be in staging. The drivers that are in
staging have issues that may be just coding style, can be the usage of wrong
API's, or can be something serious.

Also, since the criteria for a driver to be in staging are weak, they may not
be prepared to be used widely, since they is likely doing some evil things,
like duplicating existing code or creating non-accepted API's.

In the go7007 case, among other things, the driver duplicates existing code at
the saa7115 driver still uses the already deprecated DECODER ioctl's, and
creates its own API (see go7007.h).

So, I'm against of enabling any staging drivers to be compiled by default.

Of course, in the case of auto-compilation tests tools like what you have, it is
valuable if you add a patch there that enables their compilations inside the
tool, but such patch shouldn't be committed at the development tree, simply
because staging drivers aren't ready yet.

The developers and testers of the staging drivers should manually enable it,
after being warned about the risks of using them.

 By not compiling you run the very high risk of bit rot: code getting 
 seriously out-of-sync with the rest of the tree. Possibly requiring a lot 
 of work later.

If the driver is being maintained, this risk is low, since the driver maintainer
will take care of it. It helps if your automatic build scripts could point that
the driver compilation broke for some kernels, but, as the driver is being 
prepared
for upstream submission, the developer should already being using the latest 
-rc kernel
for its development.

If they aren't maintained, they'll be removed from staging tree on a few kernel
cycles, so patches fixing the compilation for those unmaintained drivers just 
means that someone lost his time fixing a dead driver.

Cheers,
Mauro
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PULL] http://www.linuxtv.org/hg/~hverkuil/v4l-dvb-staging

2009-11-23 Thread Hans Verkuil

 Hans Verkuil wrote:
 On Friday 20 November 2009 22:06:02 Devin Heitmueller wrote:
 On Fri, Nov 20, 2009 at 3:38 PM, Hans Verkuil hverk...@xs4all.nl
 wrote:
 Hi Mauro,

 Please pull from http://www.linuxtv.org/hg/~hverkuil/v4l-dvb-staging
 for the following:

 - Enable staging drivers by default when building v4l-dvb
 - go7007: Add struct v4l2_device.
 - s2250: Change module structure
 - s2250: subdev conversion
 - go7007: subdev conversion
 I have to admit that I am not sure that enabling staging drivers by
 default is a good idea.  Staging drivers can be highly unstable, and
 can potentially damage hardware.  I can totally imagine less
 experienced users with one of these devices building the current code
 and then being confused why their hardware is detected but is totally
 broken, or worse becomes damaged.

 If there are drivers in the staging tree that are so unreliable that
 they
 can break the hardware, then those should be explicitly disabled, rather
 than disabling all drivers in the staging tree. Or perhaps do not belong
 there at all, or belong under the CONFIG_STAGING_BROKEN option.

 A driver like the go7007 is under active development, and it does work.
 It
 only needs more cleanup before it can be moved to drivers/media/video,
 so
 there was no reason that it should be disabled.

 Mauro, what are the risks of always compiling the tm6000 and cx25821
 drivers? Let me know if you think that either one or both should be
 disabled for now and I'll make a patch for it.

 Even on upstream, drivers in staging are not compiled by default. To
 enable
 them, you need to answer yes to two questions.

 If the driver is OK, it shouldn't be in staging. The drivers that are in
 staging have issues that may be just coding style, can be the usage of
 wrong
 API's, or can be something serious.

 Also, since the criteria for a driver to be in staging are weak, they may
 not
 be prepared to be used widely, since they is likely doing some evil
 things,
 like duplicating existing code or creating non-accepted API's.

 In the go7007 case, among other things, the driver duplicates existing
 code at
 the saa7115 driver still uses the already deprecated DECODER ioctl's, and
 creates its own API (see go7007.h).

 So, I'm against of enabling any staging drivers to be compiled by default.

 Of course, in the case of auto-compilation tests tools like what you have,
 it is
 valuable if you add a patch there that enables their compilations inside
 the
 tool, but such patch shouldn't be committed at the development tree,
 simply
 because staging drivers aren't ready yet.

 The developers and testers of the staging drivers should manually enable
 it,
 after being warned about the risks of using them.

 By not compiling you run the very high risk of bit rot: code getting
 seriously out-of-sync with the rest of the tree. Possibly requiring a
 lot
 of work later.

 If the driver is being maintained, this risk is low, since the driver
 maintainer
 will take care of it. It helps if your automatic build scripts could point
 that
 the driver compilation broke for some kernels, but, as the driver is being
 prepared
 for upstream submission, the developer should already being using the
 latest -rc kernel
 for its development.

 If they aren't maintained, they'll be removed from staging tree on a few
 kernel
 cycles, so patches fixing the compilation for those unmaintained drivers
 just
 means that someone lost his time fixing a dead driver.

I've reverted that patch and respun my v4l-dvb-staging tree.

Regards,

 Hans

-- 
Hans Verkuil - video4linux developer - sponsored by TANDBERG Telecom

--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PULL] http://www.linuxtv.org/hg/~hverkuil/v4l-dvb-staging

2009-11-23 Thread Mauro Carvalho Chehab
Hans Verkuil wrote:
 Hans Verkuil wrote:
 On Friday 20 November 2009 22:06:02 Devin Heitmueller wrote:
 On Fri, Nov 20, 2009 at 3:38 PM, Hans Verkuil hverk...@xs4all.nl
 wrote:
 Hi Mauro,

 Please pull from http://www.linuxtv.org/hg/~hverkuil/v4l-dvb-staging
 for the following:

 - Enable staging drivers by default when building v4l-dvb
 - go7007: Add struct v4l2_device.
 - s2250: Change module structure
 - s2250: subdev conversion
 - go7007: subdev conversion
 I have to admit that I am not sure that enabling staging drivers by
 default is a good idea.  Staging drivers can be highly unstable, and
 can potentially damage hardware.  I can totally imagine less
 experienced users with one of these devices building the current code
 and then being confused why their hardware is detected but is totally
 broken, or worse becomes damaged.
 If there are drivers in the staging tree that are so unreliable that
 they
 can break the hardware, then those should be explicitly disabled, rather
 than disabling all drivers in the staging tree. Or perhaps do not belong
 there at all, or belong under the CONFIG_STAGING_BROKEN option.

 A driver like the go7007 is under active development, and it does work.
 It
 only needs more cleanup before it can be moved to drivers/media/video,
 so
 there was no reason that it should be disabled.

 Mauro, what are the risks of always compiling the tm6000 and cx25821
 drivers? Let me know if you think that either one or both should be
 disabled for now and I'll make a patch for it.
 Even on upstream, drivers in staging are not compiled by default. To
 enable
 them, you need to answer yes to two questions.

 If the driver is OK, it shouldn't be in staging. The drivers that are in
 staging have issues that may be just coding style, can be the usage of
 wrong
 API's, or can be something serious.

 Also, since the criteria for a driver to be in staging are weak, they may
 not
 be prepared to be used widely, since they is likely doing some evil
 things,
 like duplicating existing code or creating non-accepted API's.

 In the go7007 case, among other things, the driver duplicates existing
 code at
 the saa7115 driver still uses the already deprecated DECODER ioctl's, and
 creates its own API (see go7007.h).

 So, I'm against of enabling any staging drivers to be compiled by default.

 Of course, in the case of auto-compilation tests tools like what you have,
 it is
 valuable if you add a patch there that enables their compilations inside
 the
 tool, but such patch shouldn't be committed at the development tree,
 simply
 because staging drivers aren't ready yet.

 The developers and testers of the staging drivers should manually enable
 it,
 after being warned about the risks of using them.

 By not compiling you run the very high risk of bit rot: code getting
 seriously out-of-sync with the rest of the tree. Possibly requiring a
 lot
 of work later.
 If the driver is being maintained, this risk is low, since the driver
 maintainer
 will take care of it. It helps if your automatic build scripts could point
 that
 the driver compilation broke for some kernels, but, as the driver is being
 prepared
 for upstream submission, the developer should already being using the
 latest -rc kernel
 for its development.

 If they aren't maintained, they'll be removed from staging tree on a few
 kernel
 cycles, so patches fixing the compilation for those unmaintained drivers
 just
 means that someone lost his time fixing a dead driver.
 
 I've reverted that patch and respun my v4l-dvb-staging tree.

Thanks. 

I should be pulling from all pending requests today, after finishing the 
pending stuff at patchwork.

Cheers,
Mauro.
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PULL] http://www.linuxtv.org/hg/~hverkuil/v4l-dvb-staging

2009-11-20 Thread Devin Heitmueller
On Fri, Nov 20, 2009 at 4:45 PM, Hans Verkuil hverk...@xs4all.nl wrote:
 If there are drivers in the staging tree that are so unreliable that they
 can break the hardware, then those should be explicitly disabled, rather
 than disabling all drivers in the staging tree. Or perhaps do not belong
 there at all, or belong under the CONFIG_STAGING_BROKEN option.

 A driver like the go7007 is under active development, and it does work. It
 only needs more cleanup before it can be moved to drivers/media/video, so
 there was no reason that it should be disabled.

 Mauro, what are the risks of always compiling the tm6000 and cx25821
 drivers? Let me know if you think that either one or both should be
 disabled for now and I'll make a patch for it.

I'm certainly much more worried about the tm6000 stuff than the
cx25821, primarily because the cx25821 is pretty rare and the tm6000
is used by several fairly popular consumer products, but is completely
broken.

 I agree that we should be periodically ensuring the modules still
 compile, but I think that by default they should need to be explicitly
 enabled by a developer who knows what he/she is doing and understands
 the ramifications/risks.

 By not compiling you run the very high risk of bit rot: code getting
 seriously out-of-sync with the rest of the tree. Possibly requiring a lot
 of work later. Our tree is primarily for developers, not for end-users. So
 we need to see any code breakages as early as possible.

Sure, in a perfect world that would be true.  In reality though, I'm
confident that a *huge* percentage of people who compile the v4l-dvb
code have absolutely no idea what the hell they are doing.  They are
end-users who just want to see their device work because the changes
haven't made it into their distro yet.

I can certainly appreciate the concerns about the bit-rot issue.  I am
just worried that perhaps we set the bar too low in terms of what got
into staging if it's going to be compiled by default.

Devin

-- 
Devin J. Heitmueller - Kernel Labs
http://www.kernellabs.com
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html