Re: Re: [RFC/PATCHES] xc3028 hybrid tuner, em28xx/em2880-dvb, saa7134, cx88

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Markus Rechberger wrote:
> On 5/15/07, Oliver Endriss <o.endriss@xxxxxx> wrote:
> > Markus Rechberger wrote:
> > > to be more accurate where all the changes happened:
> > >  b/linux/drivers/media/tuners/Kconfig                    |   14
> > >  b/linux/drivers/media/tuners/Makefile                   |    7
> > >  b/linux/drivers/media/tuners/xc3028-tuner.c             |  601 ++++
> > >  b/linux/drivers/media/tuners/xc3028-tuner.h             |   20
> > >  b/linux/drivers/media/video/em28xx/em2880-dvb.c         |  748 ++++
> > >  b/linux/drivers/media/video/em28xx/em28xx-audio.c       |  439 ++
> > >  b/linux/drivers/media/video/em28xx/em28xx-webcam.c      |  365 ++
> > >  b/linux/include/media/v4l_dvb_tuner.h                   |  131
> > >  linux/Documentation/video4linux/CARDLIST.cx88           |    3
> > >  linux/Documentation/video4linux/CARDLIST.em28xx         |   69
> > >  linux/Documentation/video4linux/CARDLIST.tuner          |    1
> > >  linux/drivers/media/Kconfig                             |    2
> > >  linux/drivers/media/Makefile                            |    1
> > >  linux/drivers/media/common/ir-keymaps.c                 |  221 +
> > >  linux/drivers/media/dvb/b2c2/flexcop-fe-tuner.c         |   21
> > >  linux/drivers/media/dvb/bt8xx/dvb-bt8xx.c               |   34
> > >  linux/drivers/media/dvb/dvb-core/dmxdev.c               |    6
> > >  linux/drivers/media/dvb/dvb-core/dmxdev.h               |    1
> > >  linux/drivers/media/dvb/dvb-core/dvb_demux.c            |    3
> > >  linux/drivers/media/dvb/dvb-core/dvb_demux.h            |    3
> > >  linux/drivers/media/dvb/dvb-core/dvb_frontend.c         |   29
> > >  linux/drivers/media/dvb/dvb-core/dvb_frontend.h         |   64
> > >  linux/drivers/media/dvb/dvb-core/dvb_net.c              |   29
> > >  linux/drivers/media/dvb/dvb-core/dvb_net.h              |    1
> > >  linux/drivers/media/dvb/dvb-usb/af9005-fe.c             |   12
> > >  linux/drivers/media/dvb/dvb-usb/au6610.c                |    3
> > >  linux/drivers/media/dvb/dvb-usb/cxusb.c                 |  150
> > >  linux/drivers/media/dvb/dvb-usb/cxusb.h                 |    2
> > >  linux/drivers/media/dvb/dvb-usb/dib0700_devices.c       |    7
> > >  linux/drivers/media/dvb/dvb-usb/dibusb-common.c         |    6
> > >  linux/drivers/media/dvb/dvb-usb/dibusb-mb.c             |   17
> > >  linux/drivers/media/dvb/dvb-usb/digitv.c                |    7
> > >  linux/drivers/media/dvb/dvb-usb/dvb-usb-i2c.c           |   11
> > >  linux/drivers/media/dvb/dvb-usb/dvb-usb-ids.h           |    2
> > >  linux/drivers/media/dvb/dvb-usb/dvb-usb.h               |    8
> > >  linux/drivers/media/dvb/dvb-usb/gl861.c                 |    3
> > >  linux/drivers/media/dvb/dvb-usb/m920x.c                 |   14
> > >  linux/drivers/media/dvb/dvb-usb/opera1.c                |    3
> > >  linux/drivers/media/dvb/dvb-usb/ttusb2.c                |    3
> > >  linux/drivers/media/dvb/dvb-usb/umt-010.c               |    3
> > >  linux/drivers/media/dvb/frontends/at76c651.c            |    2
> > >  linux/drivers/media/dvb/frontends/bsbe1.h               |    3
> > >  linux/drivers/media/dvb/frontends/bsru6.h               |    3
> > >  linux/drivers/media/dvb/frontends/cx22700.c             |    2
> > >  linux/drivers/media/dvb/frontends/cx22702.c             |    2
> > >  linux/drivers/media/dvb/frontends/cx24110.c             |    2
> > >  linux/drivers/media/dvb/frontends/dib3000mb.c           |    2
> > >  linux/drivers/media/dvb/frontends/dib3000mc.c           |    2
> > >  linux/drivers/media/dvb/frontends/dib7000m.c            |    2
> > >  linux/drivers/media/dvb/frontends/dib7000p.c            |    2
> > >  linux/drivers/media/dvb/frontends/dvb-pll.c             |   65
> > >  linux/drivers/media/dvb/frontends/dvb-pll.h             |   19
> > >  linux/drivers/media/dvb/frontends/dvb_dummy_fe.c        |    2
> > >  linux/drivers/media/dvb/frontends/l64781.c              |    2
> > >  linux/drivers/media/dvb/frontends/lgdt330x.c            |    6
> > >  linux/drivers/media/dvb/frontends/mt2060.c              |   43
> > >  linux/drivers/media/dvb/frontends/mt2060.h              |    6
> > >  linux/drivers/media/dvb/frontends/mt312.c               |    2
> > >  linux/drivers/media/dvb/frontends/mt352.c               |   15
> > >  linux/drivers/media/dvb/frontends/mt352.h               |    3
> > >  linux/drivers/media/dvb/frontends/nxt200x.c             |    2
> > >  linux/drivers/media/dvb/frontends/nxt6000.c             |    2
> > >  linux/drivers/media/dvb/frontends/or51132.c             |    2
> > >  linux/drivers/media/dvb/frontends/qt1010.c              |   59
> > >  linux/drivers/media/dvb/frontends/qt1010.h              |    4
> > >  linux/drivers/media/dvb/frontends/s5h1420.c             |    6
> > >  linux/drivers/media/dvb/frontends/sp8870.c              |    2
> > >  linux/drivers/media/dvb/frontends/sp887x.c              |    4
> > >  linux/drivers/media/dvb/frontends/stv0297.c             |    2
> > >  linux/drivers/media/dvb/frontends/stv0299.c             |    4
> > >  linux/drivers/media/dvb/frontends/tda10021.c            |    2
> > >  linux/drivers/media/dvb/frontends/tda10023.c            |    2
> > >  linux/drivers/media/dvb/frontends/tda1004x.c            |    2
> > >  linux/drivers/media/dvb/frontends/tda10086.c            |    4
> > >  linux/drivers/media/dvb/frontends/tda8083.c             |    2
> > >  linux/drivers/media/dvb/frontends/tda80xx.c             |    2
> > >  linux/drivers/media/dvb/frontends/tda826x.c             |   21
> > >  linux/drivers/media/dvb/frontends/tda826x.h             |    4
> > >  linux/drivers/media/dvb/frontends/tda827x.c             |   88
> > >  linux/drivers/media/dvb/frontends/tda827x.h             |    4
> > >  linux/drivers/media/dvb/frontends/tua6100.c             |   33
> > >  linux/drivers/media/dvb/frontends/tua6100.h             |    4
> > >  linux/drivers/media/dvb/frontends/ves1820.c             |    2
> > >  linux/drivers/media/dvb/frontends/ves1x93.c             |    2
> > >  linux/drivers/media/dvb/frontends/zl10353.c             |   24
> > >  linux/drivers/media/dvb/frontends/zl10353.h             |    7
> > >  linux/drivers/media/dvb/frontends/zl10353_priv.h        |    2
> > >  linux/drivers/media/dvb/pluto2/pluto2.c                 |    7
> > >  linux/drivers/media/dvb/ttpci/av7110.c                  |   50
> > >  linux/drivers/media/dvb/ttpci/budget-av.c               |   32
> > >  linux/drivers/media/dvb/ttpci/budget-ci.c               |   22
> > >  linux/drivers/media/dvb/ttpci/budget-patch.c            |   10
> > >  linux/drivers/media/dvb/ttpci/budget.c                  |   28
> > >  linux/drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c |   35
> > >  linux/drivers/media/video/cx88/cx88-cards.c             |  105
> > >  linux/drivers/media/video/cx88/cx88-dvb.c               |   51
> > >  linux/drivers/media/video/cx88/cx88-i2c.c               |   72
> > >  linux/drivers/media/video/cx88/cx88.h                   |    5
> > >  linux/drivers/media/video/em28xx/Kconfig                |   29
> > >  linux/drivers/media/video/em28xx/Makefile               |    6
> > >  linux/drivers/media/video/em28xx/em28xx-cards.c         | 1898 +++++++++++-
> > >  linux/drivers/media/video/em28xx/em28xx-core.c          |  773 +++--
> > >  linux/drivers/media/video/em28xx/em28xx-i2c.c           |  344 ++
> > >  linux/drivers/media/video/em28xx/em28xx-input.c         |  158 +
> > >  linux/drivers/media/video/em28xx/em28xx-video.c         | 2402 ++++++++++++----
> > >  linux/drivers/media/video/em28xx/em28xx.h               |  552 ++-
> > >  linux/drivers/media/video/saa7134/saa7134-cards.c       |   85
> > >  linux/drivers/media/video/saa7134/saa7134-dvb.c         |   67
> > >  linux/drivers/media/video/saa7134/saa7134-i2c.c         |   44
> > >  linux/drivers/media/video/saa7134/saa7134.h             |    4
> > >  linux/drivers/media/video/tuner-core.c                  |  171 +
> > >  linux/drivers/media/video/tveeprom.c                    |    2
> > >  linux/include/media/ir-common.h                         |    6
> > >  linux/include/media/tuner.h                             |    7
> > >  linux/include/media/v4l2-common.h                       |    2
> > >  v4l/Makefile                                            |    4
> > >  v4l/scripts/cardlist                                    |    1
> > >  v4l/scripts/em28xx.pl                                   |   97
> > >  v4l/scripts/gentree.pl                                  |    1
> > >  v4l/scripts/tuner.pl                                    |    3
> > >  120 files changed, 9118 insertions(+), 1496 deletions(-)
> >
> > Sorry Markus, imho it is an offence to post a patchbomb like this.
> > It does not help if you add support for 50+ devices while possibly
> > breaking 25 other ones.
> >
> 
> I know this is quite an offence, but history lead to that and this is
> just the result of it.
> Because not dealing with the whole issue and pushing it away for a long time.
> Many people know and knew that this project exist for a long time.
> Also the 2-10 liners aren't hard to review so that would cut out alot already.
> 
> > Please remember that the typical driver maintainer is not able to test
> > all devices supported by the drivers which he is responsible for.
> > (For example, I can only test 4 out of 52 devices of the dvb/ttpci.)
> >
> > > As from my side I don't have the time to do a major rewrite or doing
> > > some reordering again, please try to make the best out of what's
> > > available now.
> >
> > You don't have the time but you expect that all other maintainers take
> > the time to review your patch monster. Sorry, my time is limited, too.
> 
> Sure it will take some time but I expect that it won't get delayed anymore.
> Every little patch might add some new dependencies to that patchbomb
> which adds extra work.
> The only options I see:
> a.) freeze v4l-dvb development and work on the integration of that patchbomb
> b.) fork off v4l-dvb, keep the tree uptodate and work with several
> linux distributions directly
> c.) don't expect that I will do any major changes, I did them 3 times
> already for nothing.

Sorry, from looking through your other replies, I get the impression
that your favourite option is b) :-(

Now to the technical side:
I've applied all patches to a fresh copy of HG master and compared the
result. I don't care what happens between patch #1 and patch #93. :-D

After looking through dvb-core, frontend and ttpci changes I wonder
why it should be necessary to touch the interface for DVB-only frontend
drivers at all.

It suggest to _add_ v4l_dvb_tuner_ops to 'struct dvb_frontend_ops'.
This way most changes to frontend/card drivers can be dropped.
dvb_frontend.c can be easily modified to use v4l_dvb_tuner_ops
_or_ dvb_tuner_ops as required:
+ Only drivers for hybrid tuners need to be modified. And the new
  interface can be optimized without having to change all drivers.
+ This would avoid tons of ugly code introduced by the patchset.[*]
- Wastes a few bytes in 'struct dvb_frontend_ops' and dvb_frontend.c.

[*] For example:
old:	fe->ops.tuner_ops.set_params(fe, p);
new:	fe->ops.tuner_ops.set_params(&fe->ops.tuner_ops, V4L_OPS(p));

That's both hard to read and contains a nasty macro expansion.
(Look at the definition of V4L_OPS!)

Oliver

-- 
--------------------------------------------------------
VDR Remote Plugin 0.3.9 available at
http://www.escape-edv.de/endriss/vdr/
--------------------------------------------------------


_______________________________________________
linux-dvb mailing list
linux-dvb@xxxxxxxxxxx
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb

[Index of Archives]     [Linux Media]     [Video 4 Linux]     [Asterisk]     [Samba]     [Xorg]     [Xfree86]     [Linux USB]

  Powered by Linux