Re: [linux-dvb] NXP 18211HDC1 tuner

2008-03-12 Thread mkrufky
Michael Krufky wrote:
 On Tue, Mar 11, 2008 at 11:06 PM, Jarryd Beck [EMAIL PROTECTED] 
 wrote:
  
 Also when I plugged it in, it sat there for about 10 seconds 
 before
 finishing loading (dmesg printed another 5 lines about the device
 after about 10 seconds), but still no tuning.
  
Can I see those five lines?  ;-)
  
While you're at it, you may as well include dmesg from the point 
 that the bridge driver loads and on.
  

  Here's dmesg from the point it starts up until it finishes printing 
 stuff.

  usb 2-10: new high speed USB device using ehci_hcd and address 22
  usb 2-10: configuration #1 chosen from 1 choice
  af9015_usb_probe:
  af9015_identify_state: reply:01
  dvb-usb: found a 'Leadtek Winfast DTV Dongle Gold' in cold state, will
  try to load a firmware
  dvb-usb: downloading firmware from file 'dvb-usb-af9015.fw'
  af9015_download_firmware:
  dvb-usb: found a 'Leadtek Winfast DTV Dongle Gold' in warm state.
  dvb-usb: will pass the complete MPEG2 transport stream to the 
 software demuxer.
  DVB: registering new adapter (Leadtek Winfast DTV Dongle Gold)
  af9015_eeprom_dump:
  00: 31 c2 bb 0b 00 00 00 00 13 04 29 60 00 02 01 02
  10: 00 80 00 fa fa 10 40 ef 01 30 31 30 31 30 32 30
  20: 35 30 35 30 30 30 30 31 ff ff ff ff ff ff ff ff
  30: 00 00 3a 01 00 08 02 00 cc 10 00 00 9c ff ff ff
  40: ff ff ff ff ff 08 02 00 1d 8d c4 04 82 ff ff ff
  50: ff ff ff ff ff 26 00 00 04 03 09 04 10 03 4c 00
  60: 65 00 61 00 64 00 74 00 65 00 6b 00 30 03 57 00
  70: 69 00 6e 00 46 00 61 00 73 00 74 00 20 00 44 00
  80: 54 00 56 00 20 00 44 00 6f 00 6e 00 67 00 6c 00
  90: 65 00 20 00 47 00 6f 00 6c 00 64 00 20 03 30 00
  a0: 31 00 30 00 31 00 30 00 31 00 30 00 31 00 30 00
  b0: 36 00 30 00 30 00 30 00 30 00 31 00 00 ff ff ff
  c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
  d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
  e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
  f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
  af9015_read_config: xtal:2 set adc_clock:28000
  af9015_read_config: tuner id1:156
  af9015_read_config: spectral inversion:0
  af9015_set_gpios:
  af9013: firmware version:4.95.0
  DVB: registering frontend 2 (Afatech AF9013 DVB-T)...
  af9015_tuner_attach:
  tda18271_tuner_attach:
  tda18271 5-00c0: creating new instance

 TDA18271HD/C1 detected @ 5-00c0
  input: IR-receiver inside an USB DVB receiver as /class/input/input34
  dvb-usb: schedule remote query interval to 200 msecs.
  dvb-usb: Leadtek Winfast DTV Dongle Gold successfully initialized 
 and connected.
  af9015_init:
  af9015_download_ir_table:
  input: Leadtek WinFast DTV Dongle Gold as /class/input/input35
  input: USB HID v1.01 Keyboard [Leadtek WinFast DTV Dongle Gold] on
  usb-:00:02.1-10



  This is channel 7's entry in channels.conf:
  7 

Digital:17750:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRAN
SMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:513:514:1312 



 Jarryd,

 I've analyzed the snoop that you've taken of the windows driver, and I
 conclude that the driver is basically doing exactly the same that the
 linux driver would do.  The only thing that I cannot verify is whether
 or not the tda18211 uses the same table values as the tda18271c1.
 Based on the traffic in your snoop, it looks like the exact same
 algorithm is used, but based on a new set of tables -- I will not be
 able to confirm that without a tda18211 datasheet.  The only thing
 that you can do is try the tda18271 driver and hopefully it will work.

 Have you tried to tune yet?  There is a space in your channels.conf,
 7 Digital -- you may want to change that to something like,
 7Digital so that command line applications will work.



Antti Palosaari wrote:
 hello
 I looked sniffs and find correct demodulator initialization values for 
 this NXP tuner. Copy  paste correct table from attached file and try. 
 Hopefully it works. I compared your sniff to mt2060 and qt1010 based 
 devices and there was still some minor differences to check.

 regards,
 Antti


Antti,

Please remember not to top-post.

Jarryd,

I have done further analysis on the snoop logs.  Not only is the driver 
using the same protocol as the tda18271 linux driver, it also seems to 
use the same table values as used with the tda18271c1 -- The linux 
driver should work on your tuner without any modification at all.

Regards,

Mike

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


Re: [linux-dvb] NXP 18211HDC1 tuner

2008-03-12 Thread mkrufky
Jarryd Beck wrote:
 On Thu, Mar 13, 2008 at 7:54 AM, Michael Krufky [EMAIL PROTECTED]
wrote:
   
 On Wed, Mar 12, 2008 at 4:36 PM, Jarryd Beck [EMAIL PROTECTED]
wrote:
  
 
   Jarryd,
  
   I've analyzed the snoop that you've taken of the windows
driver, and I
   conclude that the driver is basically doing exactly the same
that the
   linux driver would do.  The only thing that I cannot verify is
whether
   or not the tda18211 uses the same table values as the
tda18271c1.
   Based on the traffic in your snoop, it looks like the exact
same
   algorithm is used, but based on a new set of tables -- I will
not be
   able to confirm that without a tda18211 datasheet.  The only
thing
   that you can do is try the tda18271 driver and hopefully it
will work.
  
   Have you tried to tune yet?  There is a space in your
channels.conf,
   7 Digital -- you may want to change that to something like,
   7Digital so that command line applications will work.
  



 Antti Palosaari wrote:
   hello
   I looked sniffs and find correct demodulator initialization
values for
   this NXP tuner. Copy  paste correct table from attached file
and try.
   Hopefully it works. I compared your sniff to mt2060 and qt1010
based
   devices and there was still some minor differences to check.
  
   regards,
   Antti
  

  Antti,

  Please remember not to top-post.

  Jarryd,

  I have done further analysis on the snoop logs.  Not only is the
driver
  using the same protocol as the tda18271 linux driver, it also
seems to
  use the same table values as used with the tda18271c1 -- The linux
  driver should work on your tuner without any modification at all.

  Regards,

  Mike

  
I've got another tuner which works, so I know I'm tuning correctly,
it just
doesn't actually tune. I tried with mplayer, it just sat there saying
dvb_tune Freq: 21950 and did nothing. It also made my whole
computer go really slow, I don't know what it was actually doing.
  
Antti, as I said I've never done anything like this before so I have
no
idea what I'm doing, so I have no idea where to paste which table.

  Please try using tzap.  This will show you FE status once every
  second.  Let it run for a whole minute -- maybe there is some noise
  that may cause it to take a longer time to lock (if that's the case,
  then there are some tweaks that we can do.)  Show us the femon output
  produced by running tzap.

  -Mike

 

 $ tzap -a 2 TEN Digital
 using '/dev/dvb/adapter2/frontend0' and '/dev/dvb/adapter2/demux0'
 tuning to 21950 Hz
 video pid 0x0200, audio pid 0x028a
 status 01 | signal  | snr  | ber  | unc  |

 $ femon -a 2
 using '/dev/dvb/adapter2/frontend0'
 FE: Afatech AF9013 DVB-T (TERRESTRIAL)
 status 00 | signal  | snr  | ber  | unc  |
 status 00 | signal  | snr  | ber  | unc  |
 status 00 | signal  | snr  | ber  | unc  |
 status 00 | signal  | snr  | ber  | unc  |
 status 00 | signal  | snr  | ber  | unc  |
 status 00 | signal  | snr  | ber  | unc  |
 status 00 | signal  | snr  | ber  | unc  |
 status 00 | signal  | snr  | ber  | unc  |
 status 00 | signal  | snr  | ber  | unc  |
 status 00 | signal  | snr  | ber  | unc  |
 status 00 | signal  | snr  | ber  | unc  |
 status 00 | signal  | snr  | ber  | unc  |
 status 00 | signal  | snr  | ber  | unc  |
 status 00 | signal  | snr  | ber  | unc  |
 status 01 | signal  | snr  | ber  | unc  |

 The status 00 lines were from before I started tzap, after I started tzap
 it did nothing for half a minute, then printed the status 01 line, then
 sat there for another half a minute, and I killed it at that point.
 My computer was also taking quite a few seconds to respond to
 me pressing the keyboard for the whole time I was tuning it.

 Jarryd.
   
What shows in dmesg during the above?

-Mike

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


Re: [linux-dvb] NXP 18211HDC1 tuner

2008-03-12 Thread mkrufky
Jarryd Beck wrote:
 On Thu, Mar 13, 2008 at 8:09 AM,  [EMAIL PROTECTED] wrote:
   
 Jarryd Beck wrote:
   On Thu, Mar 13, 2008 at 7:54 AM, Michael Krufky [EMAIL PROTECTED]
  wrote:
  
   On Wed, Mar 12, 2008 at 4:36 PM, Jarryd Beck [EMAIL PROTECTED]
  wrote:

   
 Jarryd,

 I've analyzed the snoop that you've taken of the windows
  driver, and I
 conclude that the driver is basically doing exactly the
same
  that the
 linux driver would do.  The only thing that I cannot verify
is
  whether
 or not the tda18211 uses the same table values as the
  tda18271c1.
 Based on the traffic in your snoop, it looks like the exact
  same
 algorithm is used, but based on a new set of tables -- I
will
  not be
 able to confirm that without a tda18211 datasheet.  The
only
  thing
 that you can do is try the tda18271 driver and hopefully it
  will work.

 Have you tried to tune yet?  There is a space in your
  channels.conf,
 7 Digital -- you may want to change that to something
like,
 7Digital so that command line applications will work.

  
  
  
   Antti Palosaari wrote:
 hello
 I looked sniffs and find correct demodulator initialization
  values for
 this NXP tuner. Copy  paste correct table from attached
file
  and try.
 Hopefully it works. I compared your sniff to mt2060 and
qt1010
  based
 devices and there was still some minor differences to check.

 regards,
 Antti

  
Antti,
  
Please remember not to top-post.
  
Jarryd,
  
I have done further analysis on the snoop logs.  Not only is
the
  driver
using the same protocol as the tda18271 linux driver, it also
  seems to
use the same table values as used with the tda18271c1 -- The
linux
driver should work on your tuner without any modification at
all.
  
Regards,
  
Mike
  

  I've got another tuner which works, so I know I'm tuning
correctly,
  it just
  doesn't actually tune. I tried with mplayer, it just sat there
saying
  dvb_tune Freq: 21950 and did nothing. It also made my whole
  computer go really slow, I don't know what it was actually doing.

  Antti, as I said I've never done anything like this before so I
have
  no
  idea what I'm doing, so I have no idea where to paste which
table.
  
Please try using tzap.  This will show you FE status once every
second.  Let it run for a whole minute -- maybe there is some noise
that may cause it to take a longer time to lock (if that's the case,
then there are some tweaks that we can do.)  Show us the femon
output
produced by running tzap.
  
-Mike
  
  
  
   $ tzap -a 2 TEN Digital
   using '/dev/dvb/adapter2/frontend0' and '/dev/dvb/adapter2/demux0'
   tuning to 21950 Hz
   video pid 0x0200, audio pid 0x028a
   status 01 | signal  | snr  | ber  | unc  |
  
   $ femon -a 2
   using '/dev/dvb/adapter2/frontend0'
   FE: Afatech AF9013 DVB-T (TERRESTRIAL)
   status 00 | signal  | snr  | ber  | unc  |
   status 00 | signal  | snr  | ber  | unc  |
   status 00 | signal  | snr  | ber  | unc  |
   status 00 | signal  | snr  | ber  | unc  |
   status 00 | signal  | snr  | ber  | unc  |
   status 00 | signal  | snr  | ber  | unc  |
   status 00 | signal  | snr  | ber  | unc  |
   status 00 | signal  | snr  | ber  | unc  |
   status 00 | signal  | snr  | ber  | unc  |
   status 00 | signal  | snr  | ber  | unc  |
   status 00 | signal  | snr  | ber  | unc  |
   status 00 | signal  | snr  | ber  | unc  |
   status 00 | signal  | snr  | ber  | unc  |
   status 00 | signal  | snr  | ber  | unc  |
   status 01 | signal  | snr  | ber  | unc  |
  
   The status 00 lines were from before I started tzap, after I started
tzap
   it did nothing for half a minute, then printed the status 01 line,
then
   sat there for another half a minute, and I killed it at that point.
   My computer was also taking quite a few seconds to respond to
   me pressing the keyboard for the whole time I was tuning it.
  
   Jarryd.
  
  What shows in dmesg during the above?

  -Mike

 

 nothing new

 Jarryd.
   

Then, please turn ON debug, repeat your tests, and post again with 
dmesg.  I am not familiar with the af9015 driver, but for tda18271, set 
debug=1.  (you must unload all modules first -- do 'make unload' in the 
v4l-dvb dir, then replug your device)

-Mike



Re: [linux-dvb] NXP 18211HDC1 tuner

2008-03-12 Thread mkrufky
Jarryd Beck wrote:
 On Thu, Mar 13, 2008 at 8:14 AM,  [EMAIL PROTECTED] wrote:
   
  Then, please turn ON debug, repeat your tests, and post again with
  dmesg.  I am not familiar with the af9015 driver, but for tda18271, set
  debug=1.  (you must unload all modules first -- do 'make unload' in the
  v4l-dvb dir, then replug your device)
 
 Sorry I'm unsure where to set debug.
   
You have two options.

option 1)

after unloading all modules, load the given module with the debug insmod 
option.

To see the available insmod options, use modinfo.  For instance, 
'modinfo tda18271' will show you the tuner drivers available options.

Load the driver using the option, modprobe tda18271 debug=1 ... then 
plug in the stick.

...

option 2)

set the insmod option in your boot script.  I run Ubuntu... to enable 
debug for my tuner. i edit /etc/modprobe.d/options and add the following 
line:

options tda18271 debug=1

...then unload all modules, and replug the stick...   or reboot your 
machine, then replug the stick.

regards,

Mike

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


Re: [linux-dvb] [EXPERIMENTAL] cx88+xc3028 - tests are required - was: Re: Wh en xc3028/xc2028 will be supported?

2008-02-19 Thread mkrufky
Mauro Carvalho Chehab wrote:
 On Mon, 18 Feb 2008 23:44:33 -0500
 Michael Krufky [EMAIL PROTECTED] wrote:

   
 On Jan 29, 2008 9:25 AM, Mauro Carvalho Chehab [EMAIL PROTECTED]
wrote:
 
 Dâniel and others,

   
 Having this tested is a very good news! I'll need to merge this patch
with two
 other patches that adds DVB support for cx88/xc3028. If I can manage
to have
 some time for this merge, I'll commit and ask Linus to add this to
2.6.25.
   
   :)
 
 I've merged some patches from several authors, that add xc3028 support
for
 cx88.

 The experimental tree is available at:

 http://linuxtv.org/hg/~mchehab/cx88-xc2028

 This patch series adds support for the following boards:

  59 - DVICO HDTV5 PCI Nano[18ac:d530]
  60 - Pinnacle Hybrid PCTV[12ab:1788]
  61 - Winfast TV2000 XP Global[107d:6f18]
  62 - PowerColor Real Angel 330   [14f1:ea3d]
  63 - Geniatech X8000-MT DVBT [14f1:8852]
  64 - DViCO FusionHDTV DVB-T PRO  [18ac:db30]

 In thesis, both analog and DVB support (for boards with DVB/ATSC) should
be
 working (*). Maybe analog audio may need an additional configuration for
some
 specific board (since they may require to add cfg.mts = 1 at xc3028
 initialization code, on cx88-cards).

 Please test.
   
 Mauro,

 We spoke on Thursday, and you asked me to take a look at the code in
 your 'cx88-xc2028' tree over the weekend and fix it, if possible.

 The repository is broken after and including changeset ce6afd207b71 -
 Make xc3028 support more generic  This changeset moves the
 device-specific configuration out of the cx88-dvb.c device-specific
 switch..case block, into a generic function.  This patch breaks
 functionality, and imho, is not a good idea.

 Your changes assume that the analog side of the driver will come up
 before the digital side of the driver, which is not necessarily the
 case.  Additionally, in some cases, the tuner itself is hidden behind
 an i2c gate that is controlled by the dvb / atsc demodulator.  Because
 of the i2c gate, communication to the tuner might not be available at
 the time that the i2c bus is probed.  For those reasons, the attach
 calls to the tuner driver should be fully qualified, relative to the
 functionality of the side of the driver that is attaching it.

 The device that I used to test is the FusionHDTV 5 PCI nano.  This
 device uses an xc3008 (yes, that is xc3008 -- not a typo) and a
 s5h1409 demod.  The device is capable of receiving ATSC digital
 broadcasts and the driver does not yet support analog television.

 Steve Toth made the patch that adds atsc support for that card, and
 his patch worked without the additional changesets that were added
 afterwards.  I made some small fixes and enabled IR support -- see the
 bottom of this email for my pull request.

 Your email above states that you've merged some patches from several
 authors.  What I recommend, in order to properly support each device,
 would be to apply each patch for each card separately, as we do with
 all card support additions.  We know that the original patches, as
 submitted by the original authors work properly , since those authors
 have conducted their own tests.

 I understand that you've made some attempts to optimize the code in an
 effort to reduce memory consumption.  Unfortunately, these efforts
 have broken functionality of these devices.  I think that it would
 make more sense to work on optimizations after the basic device
 support patches are first applied in the standard manner.  This way,
 you would have a good point of reference for before and after that
 testers will be able to use for comparison (and bisection).

 Since the only card that I can test is the PCI nano, please pull these
 changesets into master for now.

 Please pull from:

 http://linuxtv.org/hg/~mkrufky/cx88-xc2028

 for:

 (91113b8955e2) 4 weeks ago   Steven Toth cx88: Add support for the
 Dvico PCI Nano.
 (394d249f03f1) 47 hours ago  Michael Krufky  cx88: fix FusionHDTV 5 PCI
 nano name and enable IR support
 

 Michael,

 It is not that simple. Steven patch works for DTV on PCI Nano; Christopher
 patches for some other DiVCO boards (DTV also); my port of Markus patch
for
 other boards (tested by Dâniel Fraga - Analog TV).
   

What does one board have to do with another?  Just because these boards 
all use xceive tuners does not mean that they should be grouped together.


 The point is not saving memory. The point is that tuner-xc2028 requires
just
 one callback. The callback should work properly for DTV, Analog and Radio.
It
 makes no sense to have such generic callback inside cx88-dvb. It should be
at
 cx88xx module, instead.
   
I agree that there should be in a single callback.  The appropriate 
place for this callback should be inside cx88-cards.c , and you'll have 
to include a prototype

Re: [linux-dvb] [v4l-dvb-maintainer] PULL request for a bunch of DiBcom-based changes

2008-01-25 Thread mkrufky
Nicolas Will wrote:
 On Fri, 2008-01-25 at 11:36 +0100, Patrick Boettcher wrote:
   
 Hi Mauro,

 Can you please pull from 

 http://linuxtv.org/hg/~pb/v4l-dvb/

 for a bunch of changes for DiBcom-based hardware.
 

 Mauro,

 Could you tell me once this is pulles, I'll clean-up the wiki.


   
It was merged ~ 1 hour ago -- the repository is viewable at 
http://linuxtv.org/hg/v4l-dvb for all to see.

-Mike



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


Re: [linux-dvb] DViCO FusionHDTV5 Express and cx23885 support

2008-01-17 Thread mkrufky
Andrew Casper wrote:
 On Jan 16, 2008, at 8:54 PM, Michael Krufky wrote:

 Andrew Casper wrote:
 No cx23885.ko is made - just links to the src files. And I did a make
 install.

 - Andrew

 Mike -

 You'd think that would work, but no. And it that killed my other two 
 tuner card (an hd3000 and an hd5500). And no Fusion Card in sight. 

Ah, I misread your previous response, No cx23885.ko is made - just 
links to the src files. And I did a make
install.   I had misinterpreted this as No [not so --], cx23885.ko is 
made [and there are] links to the src files.

I am seeing an issue now in the master branch that the build system of a 
fresh clone does select all drivers to build, but VIDEO drivers don't 
actually get built.

(cc added to mauro)

This is consistent with what you are seeing -- neither cx88 nor cx23885 
is being built for you, so you've lost all your cards.

I don't know what's wrong, but now I cant work on any drivers until this 
issue is resolved.

Why dont VIDEO drivers build anymore, even if they are correctly 
selected via Kconfig?

-Mike



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


Re: [linux-dvb] HVR-1800 checkin

2008-01-17 Thread mkrufky
Barry Quiel wrote:
 Michael Krufky wrote:
 On Jan 14, 2008 8:40 PM, Barry Quiel [EMAIL PROTECTED] wrote:
 It looks like there was a checkin a few days ago that added some 
 support
 for the HVR-1800 NTSC tuner.  Excuse the stupid question but what is
 basic preview NTSC support?


 by basic preview NTSC support, we mean, standard raw framegrabber
 support -- as opposed to mpeg encoder support, which will be added
 soon.

 You can try out the mpeg encoder support by using the tree:

 http://linuxtv.org/hg/~stoth/cx23885-video/

 ...but I warn you -- this is a development repository that hasnt yet
 been merged into the master repository.  If you hit any bugs,
 please report them.  The repository will most probably be deleted when
 it gets merged into master.

 Good Luck,

 Mike Krufky
 I'd like to help test the analog portion of this card, but I have one 
 concern.  Are the code changes from the current trunk merged into this 
 branch?  I really don't want to lose the ATSC functionality.  I'm not 
 asking for a guarantee but a I'm pretty sure ATSC should be 
 unaffected will do.

Barry,

#1 Please don't top quote.

#2 Please don't drop cc's to a mailing list if that is where the mail 
originated, unless you have a question that is private in nature -- if 
you're asking a question that somebody else might also want the answer 
to, then you are dooming me to write more emails than are necessary...

(cc added back to linux-dvb)

Anyway, regardless of what code you're testing, so long as you keep the 
tree that worked for you last time somewhere on the side, you can always 
revert back to that tree.

Analog video support added for the HVR1800 does _NOT_ break Digital 
video support.  You can use digital and analog simultaneously.

Be advised, however, that the cx23885 driver currently does not support 
DMA audio for analog preview, but audio does work for mpeg encoder mode.

However, don't use the master branch today -- the build system is broken 
right now.  Instead, use:

http://linuxtv.org/hg/~mkrufky/build-fix


Please send future correspondence to the mailing list.  you may feel 
free to cc me, but remember the mailing list is most important.

Regards,

Mike

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


[linux-dvb] never do symbol_put(tunerfoo_attach);

2007-11-16 Thread mkrufky
Mauro and Michel,

This changeset is wrong:

http://linuxtv.org/hg/~mchehab/tm6000/rev/79f9210425e2

You should not  symbol_put(xc3028_attach);  , because you don't always 
know that we're dealing with that tuner.

Instead, just do dvb_frontend_detach(fe) -- that will detach both 
tuner and frontend, and also lnb (for satellite devices).

Cheers,

Mike Krufky




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


Re: [linux-dvb] never do symbol_put(tunerfoo_attach);

2007-11-16 Thread mkrufky
Michel Ludwig wrote:
 Hi Mike,

 On Fri 16 Nov 2007, [EMAIL PROTECTED] wrote:
   
 Mauro and Michel,

 This changeset is wrong:

 http://linuxtv.org/hg/~mchehab/tm6000/rev/79f9210425e2

 You should not  symbol_put(xc3028_attach);  , because you don't always
 know that we're dealing with that tuner.
 

 We know that because it's the only tuner that I've ever seen on tm6000 
 devices :-)
   
We like to make linuxtv drivers modular and forward compatible.  There 
_are_ devices out there that use other tuners, and if you hardcode 
xc3028 into this driver, it prevents future developers from adding 
support for other devices without having to change existing code.
 But anyway, how would dvb_frontend_detach(fe) release the xc3028_attach 
 symbol, which is requested by dvb_attach?

The answer is self-explanatory.  Take a look at the other drivers, and 
take a look at dvb_frontend_detach.   (dvb_frontend.c , lines 1204 thru 
1221)

Better to use the established methods, and have uniform codingstyle 
across the tree -- don't reinvent the wheel ;-)

-Mike

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


Re: [linux-dvb] never do symbol_put(tunerfoo_attach);

2007-11-16 Thread mkrufky
Mauro Carvalho Chehab wrote:
 Em Sex, 2007-11-16 às 18:37 -0500, [EMAIL PROTECTED] escreveu:
   
 Michel Ludwig wrote:
 
 Hi Mike,

 On Fri 16 Nov 2007, [EMAIL PROTECTED] wrote:
   
   
 Mauro and Michel,

 This changeset is wrong:

 http://linuxtv.org/hg/~mchehab/tm6000/rev/79f9210425e2

 You should not  symbol_put(xc3028_attach);  , because you don't
always
 know that we're dealing with that tuner.
 
 
 We know that because it's the only tuner that I've ever seen on tm6000 
 devices :-)
   
   
 We like to make linuxtv drivers modular and forward compatible.  There 
 _are_ devices out there that use other tuners, and if you hardcode 
 xc3028 into this driver, it prevents future developers from adding 
 support for other devices without having to change existing code.
 
 But anyway, how would dvb_frontend_detach(fe) release the xc3028_attach 
 symbol, which is requested by dvb_attach?
   
 The answer is self-explanatory.  Take a look at the other drivers, and 
 take a look at dvb_frontend_detach.   (dvb_frontend.c , lines 1204 thru 
 1221)

 Better to use the established methods, and have uniform codingstyle 
 across the tree -- don't reinvent the wheel ;-)
 

 Mike, there are some that calls symbol_put directly, like dst.
   
 -Mike
 
DST is a special case -- it is an ASIC.  Certain hacks were done there 
to make it look like a frontend, but it is not.  Manu has explained 
this repeatedly.

-Mike



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

Re: [linux-dvb] never do symbol_put(tunerfoo_attach);

2007-11-16 Thread mkrufky
Michel Ludwig wrote:
 On Fri 16 Nov 2007, you wrote:
   
 We like to make linuxtv drivers modular and forward compatible.  There
 _are_ devices out there that use other tuners, and if you hardcode
 xc3028 into this driver, it prevents future developers from adding
 support for other devices without having to change existing code.
 

 Sure, but no one said that tm6000-dvb is ready to go into the main tree...
   

I saw an issue and I felt it was appropriate for me to point it out 
immediately.

Better to fix a problem when it is noticed, no?

   
 But anyway, how would dvb_frontend_detach(fe) release the xc3028_attach
 symbol, which is requested by dvb_attach?
   
 The answer is self-explanatory.  Take a look at the other drivers, and
 take a look at dvb_frontend_detach.   (dvb_frontend.c , lines 1204 thru
 1221)
 

 Of course, I have done that, but it is still not clear to me. Here are the
two 
 macros:

 #define dvb_attach(FUNCTION, ARGS...) ({ \
   void *__r = NULL; \
   typeof(FUNCTION) __a = symbol_request(FUNCTION); \
   if (__a) { \
   __r = (void *) __a(ARGS); \
   if (__r == NULL) \
   symbol_put(FUNCTION); \
   } else { \
   printk(KERN_ERR DVB: Unable to find symbol
#FUNCTION()\n); \
   } \
   __r; \
 })

 void dvb_frontend_detach(struct dvb_frontend* fe)
 {
   void *ptr;

   if (fe-ops.release_sec) {
   fe-ops.release_sec(fe);
   symbol_put_addr(fe-ops.release_sec);
   }
   if (fe-ops.tuner_ops.release) {
   fe-ops.tuner_ops.release(fe);
   symbol_put_addr(fe-ops.tuner_ops.release);
   }
   ptr = (void*)fe-ops.release;
   if (ptr) {
   fe-ops.release(fe);
   symbol_put_addr(ptr);
   }
 }

 dvb_attach is called with xc2028_attach, hence it will request
xc2028_attach. 
 But dvb_frontend_detach will release xc2028_dvb_release.
   
It's the same module.
 I can try this out tomorrow, but if I have to reboot my machine after that
to 
 unload tuner-xc2028, then there is definitely a flaw in this approach...
:-)
   
This is the accepted and proven method used across the entire dvb tree.  
If it doesnt work for you, then something is wrong in your code.  I 
don't think it will cause any problem.

Hey, I was just trying to point out a flaw in your patch -- Nobody is an 
expert, and there is always something to be learned.

-Mike

P.S. Why are you guys dropping cc's?  I cc'd linux-dvb mailing list 
because this is a development issue.  It is important for such 
discussions to be documented, because it is the only way for future 
developers to learn from our mistakes.  To conduct all emails in private 
will not lead to any progression.  This is a community, and we should 
all be willing to give and accept advice from each other.

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


Re: [linux-dvb] Pinnacle PCTV HD Ultimate Stick

2007-11-15 Thread mkrufky
Markus Rechberger wrote:
 I think that's not really necessary, my one is already open (I could
 take a foto if not already available) although I think Patrick already
 has a driver for it?
 The usb device includes a hub and shows up 2 more usbids on the host,
 one is a storage device, the other one is the dibcom tuner as far as I
 remember.
   
Interesting... In which case, then I'm probably wrong, and it's not an 
xc5000.  Do you know WHICH dibcom tuner?  Is it a 7070?

-Mike

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


Re: [linux-dvb] Pinnacle PCTV HD Ultimate Stick

2007-11-15 Thread mkrufky
Jeff Rosenberg wrote:
 The Pinnacle PCTV HD Ultimate stick just came out (a couple of weeks 
 ago). 
  
 I looked in the Windoze .inf files and it appears that the drivers 
 used are the same for the PCTV HD Pro and PCTV HD Ultimate.  I looked 
 in the developmental build of DVB and saw that in the file 
 em288x-cards.c there was the correct USB_DEVICE # of 0x2304 but the 
 next value was not 0x0233.  I changed it and recompiled. 
  
 When the driver loads it now has the following message in the kernel 
 buffer log:
  
 FIXME:em28xx_i2c_send_bytes(c2): write failed:
  
  
 Any ideas ?  I am pretty sure the correct driver is the em28xx.

As both Patrick and Markus explained, this device is not empia hardware, 
and the code that supports it is located inside dib0700_devices.c -- 
you'll want to edit dvb-usb-ids.h

Also, please do not top-post.

-Mike

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


[linux-dvb] [RFC] tuner-refactor-phase-2

2007-10-22 Thread mkrufky
Mauro  others,

After our conversation last week, I decided to move forward with 
tuner-refactor-phase-2, so that you can have the pathway for your 
tda9887  tea5767 changes to go in without clashing with my pending work.

My code is now ready for review:

http://linuxtv.org/hg/~mkrufky/tuner-refactor-phase-2

- Move all tda8275/8275a tuning code from tda8290 module into tda827x module
- tda827x: fix GPL export on attach function
- tda8290: add support for NXP TDA18271 tuner and TDA8295 analog demod
- tuner: move analog_tuner_ops into dvb_frontend_ops
- tuner: clear analog_demod_ops on release
- tuner: move analog_demod_priv into struct dvb_frontend
- dvb_frontend: codingstyle cleanups
- tuner: convert analog tuner demod sub-modules to dvb_frontend interface
- tuner: clean up ops checking in tuner_status function
- move std if setting from tda8290 to tda827x
- make tda9887 build selectable via Kconfig

 b/linux/drivers/media/dvb/frontends/tda18271.c  | 1062 
 b/linux/drivers/media/dvb/frontends/tda18271.h  |   40
 b/linux/drivers/media/video/tda9887.h   |   33
 linux/Documentation/video4linux/CARDLIST.tuner  |1
 linux/drivers/media/Kconfig |   14
 linux/drivers/media/dvb/dvb-core/dvb_frontend.h |   22
 linux/drivers/media/dvb/frontends/Kconfig   |7
 linux/drivers/media/dvb/frontends/Makefile  |1
 linux/drivers/media/dvb/frontends/tda827x.c |  370 ++
 linux/drivers/media/dvb/frontends/tda827x.h |   13
 linux/drivers/media/video/Makefile  |3
 linux/drivers/media/video/tda8290.c | 1297 --
 linux/drivers/media/video/tda8290.h |   40
 linux/drivers/media/video/tda9887.c |  161 -
 linux/drivers/media/video/tuner-core.c  |  248 +
 linux/drivers/media/video/tuner-driver.h|   25
 linux/drivers/media/video/tuner-types.c |3
 linux/drivers/media/video/tveeprom.c|2
 linux/include/media/tuner.h |2
 v4l/versions.txt|2
 20 files changed, 2424 insertions(+), 922 deletions(-)

The four major changes are:

1) move all tda827x tuning code from tda8290.c into tda827x.c

2) addition of tda8295 + tda18271 tuner + analog demod combo support.

3) conversion of tda9887 to a separate module

4) addition of analog_demod_ops  analog_demod_priv to struct dvb_frontend

After this is merged, the analog demods will be accessible via the 
dvb_frontend interface.  For the sake of simplicity, I've kept the 
analog_tuner_ops untouched, and using this structure for the 
demodulators within the dvb_frontend_ops structures.  We can improve on 
this in the future, if necessary.

I've implemented this as a forward reference, so we can make any changes 
to the analog_tuner_ops structure as we see fit, without having any 
impact on dvb-only users of the dvb_frontend.

This started off as a private email, but I believe that I've covered all 
bases.  Since I tend to be lazy with emails in general, I am just going 
to cc the mailing lists and consider this an RFC.

I've taken into account the concerns mentioned in the phase-1 RFC thread 
-- I believe that all will be happy with the way that I've done this.

Please let me know if you have any questions or comments.

Cheers,

Mike Krufky



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


Re: [linux-dvb] [RFC] tuner-refactor-phase-2

2007-10-22 Thread mkrufky
Hans Verkuil wrote:
 On Monday 22 October 2007 22:03:03 [EMAIL PROTECTED] wrote:
   
 http://linuxtv.org/hg/~mkrufky/tuner-refactor-phase-2
 Hi Mike,

 Looks good!

   
Hans,

Thank you for the review!
 Just some nitpick things:

 1)

 tuner-core.c: things like:

 -   if (t-ops.tuner_status)
 -   t-ops.tuner_status(t);
 +   if ((ops)  (ops-tuner_status))
 +   ops-tuner_status(t);

 A bit too many parenthesis, 'if (ops  ops-tuner_status)' works just 
 as well and is more readable IMHO.
   
Good point -- I've cleaned that up.
 2)

 Please comment who IS responsible for freeing analog_demod_priv, 
 also 'kfree(t-fe.' should be 'kfree(fe-' to keep the comment in sync 
 with the code changes.

 +static void fe_release(struct dvb_frontend *fe)
 +{
 +   if (fe-ops.tuner_ops.release)
 +   fe-ops.tuner_ops.release(fe);
 +
 +   fe-ops.analog_demod_ops = NULL;
 +   /* DO NOT kfree(t-fe.analog_demod_priv) */
 +   fe-analog_demod_priv = NULL;
 +}
   
Done.  I realize that this could be confusing.  This should be clearer 
with the new comments / better explanation.
 3)

 Personally I don't see the need for changeset 6214 (clean up ops 
 checking in tuner_status function): I thought the original was easier 
 to read. Just remove the '{' '}' checkpatch complains about and it's 
 fine.
   
I disagree with you here.  In reality, either way should be OK...  The 
way it is right now simplifies matters by checking (ops) once.  If it is 
NULL, then neither .has_signal nor .is_stereo will be checked.  I'd 
prefer to keep it this way.
 Reviewed-by: Hans Verkuil [EMAIL PROTECTED]
   
Thanks.  I will add your reviewed-by tag to all changesets EXCEPT for 
#6214 as mentioned in (3).  I'm going to give it a few hours first, to 
see if anybody else has any comments.
 Regards,

   Hans
   

Thanks again for the review at such short notice.

Regards,

Mike Krufky



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


Re: [linux-dvb] RE : Re: support from cx23885 driver and Xc3028 t uner for HP/Hauppauge WinTv885 mod 77001

2007-10-15 Thread mkrufky


 I started working on this one, but I've been held up due to firmware
 issues-- So far, the working ATSC linux drivers for the xc3028
 have all
 worked when coupled with an LGDT3303 demod. In your device, we have a
 Samsung demodulator, instead. The xc3028 requires a different
 firmware
 image in this case, and I haven't yet found time to work that out.

 I'd expect to have the details sorted within the next month or so,
 but I
 don't want to make any promises.

aldebaran wrote:
 Dear Devs, Dear Mike,
 as you requested here below is the output of 'modprobe cx23885 i2c_scan=1'
 I'm not going to make any pressure on you, however please consider I'm 
 available for any beta testing work or any other help that could ease 
 your work.

 I did a little googling for the tuning chip xc3028 and found George 
 Kiagiadakis (Gkiagia) has already started working on it 
 http://mcentral.de/wiki/index.php/Xc3028 
 (http://mcentral.de/firmware/firmware_v4.tgz I tried copying these 
 firmwares inside /lib/firmware/linux-blahblah/ but Kaffeine is still 
 not able to scan for channels) maybe I should try with the 
 experimental trunk, so far I used a mercurial snapshot of 
 http://linuxtv.org/hg/v4l-dvb trunk.
Don't even bother trying to get this device up  running with any 
repositories out there right now -- it is not going to work.

I have all the code written for this device already -- it's now just a 
matter of firmware.  I have the device, too.  Once I get it working, 
you'll see it in my cx23885 tree.  I will not post the patch until I 
resolve the firmware issue.

 If you need any more information please do not hesitate to send me an 
 email!
 In the meantime I thank you for your efforts and wish you a good work.
Don't worry about it -- I have all the info that I need for this one.

 192000] cx23885 driver version 0.0.1 loaded
 192000] ACPI: PCI Interrupt :04:00.0[A] - GSI 17 (level, low) - 
 IRQ 17
 192000] CORE cx23885[0]: subsystem: 0070:7717, board: UNKNOWN/GENERIC 
 [card=0,autodetected]
 292000] cx23885[0]: i2c bus 0 registered
 304000] cx23885[0]: i2c scan: found device @ 0xa0  [eeprom]
 312000] cx23885[0]: i2c bus 1 registered
 328000] cx23885[0]: i2c bus 2 registered
 332000] cx23885[0]: i2c scan: found device @ 0x66  [???]
 332000] cx23885[0]: i2c scan: found device @ 0x88  [cx25837]
 332000] cx23885[0]: i2c scan: found device @ 0x98  [???]
 364000] cx23885[0]/0: found at :04:00.0, rev: 2, irq: 17, latency: 
 0, mmio: 0xf400

Hmm... I should have realized that you'd be sending this kind of 
output...  You'll need my patch in order to enable the right GPIO's to 
bring up the tuner / demod ic's .  Tuner is on bus 1, demod on bus 
0.  Don't worry about this for now.

Stay tuned for more information.  If you dont hear from me within eight 
weeks, ping me again.

Regards,

Mike Krufky

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


Re: [linux-dvb] [RFC-final] videobuf tree

2007-10-08 Thread mkrufky
Mauro Carvalho Chehab wrote:
 I don't like to create a video-buf.h header. This will make non-pci
 devices dependent on PCI, or will require some additional logic for
 checking kernel Kconfig symbols. I also expect that other newer videobuf
 methods to be created. So, this header will just generate undesirable
 mess.
   
 This would not create dependencies of non-pci devices on pci -- a
 simple header inclusion is optimized by the c compiler -- only needed
 methods are considered and are actually included in the build.
 

 Wrong. This has nothing to do with c optimizer. Try this:

 Create this as header.h:

 struct foo {
 struct some_pci_struct foo;
 };

 Create this as main.c:

 #include header.h

 int main (void)
 {
 return 0;
 }

 You will got the following error:

 /tmp/header.h:2: error: field ‘foo’ has incomplete type

 If we use your approach, a non-pci videobuf driver will work only at the
 architectures where you have a PCI bus (since the pci structs won't
 exist on that architecture).
   
OK, I wasn't thinking clearly when I had written that at first...  We 
would have to use some #ifdef logic within video-buf.h in order to avoid 
this, but that's ugly, and more trouble than it's worth.

You've proven your point.
   
 What we might do is to rename the generic abstract method to another
 name. This will generate compilation errors, making easier for people to
 realize what happened.
   
 If we rename it to video-buf.h, it would cover the issue that I have in
mind.

 
 It is much more clear to include videobuf-vmalloc or videobuf-dma-sg,
 depending on the proper videobuf module that will be needed by a driver.

 Creating a video-buf.h that just includes the two will be unused by the
 drivers. So, what's the sense of creating a header file at the kernel
 that aren't used inside kernel?
   

It would just be nice to have errors when a module calls a function 
defined in the old header, rather than the new one.

This is a concern, but a minor one, as this is only an issue during the 
transitional kernels.  If we've fixed all instances, then there should 
be nothing to worry about.

In general, I just don't like modules building against the wrong headers 
and not reporting any errors... I guess we'll just have to live with it 
this way for now.

   
 I'm not sure if this is valuable enough, since I don't know any other
 DMA S/G driver using videobuf being developed for their inclusion at
 Kernel.
   
 Maybe an out of tree driver uses it?
 

 Although there's no intention to make life harder for out-of-tree
 drivers, they shouldn't be considered on changes made at kernel
 internals. The proper place for a kernel driver is in-kernel, not
 outside.

 Anyway, a compilation with a driver including video-buf.h currently will
 generate an error, indicating that something has changed at v4l
 infrastructure. By creating a header like you're proposing won't fix
 this.
   
   Maybe there is an in-tree driver that still might have old methods
being used but we didnt hit those bugs yet due to incomplete testing
methods?
 

 The only in-kernel drivers that use videobuf infrastructure are:
   cx88, saa7134, bttv, saa7146 and, now, cx23885. 

 After the patch, all of they are already converted.

 grep videobuf_queue_pci_init *.c
 bttv-driver.c:  videobuf_queue_pci_init(fh-cap, bttv_video_qops,
 bttv-driver.c:  videobuf_queue_pci_init(fh-vbi, bttv_vbi_qops,
 cx23885-dvb.c:  videobuf_queue_pci_init(port-dvb.dvbq, dvb_qops,
 dev-pci, port-slock,
 cx88-blackbird.c:   videobuf_queue_pci_init(fh-mpegq,
 blackbird_qops,
 cx88-dvb.c: videobuf_queue_pci_init(dev-dvb.dvbq, dvb_qops,
 cx88-video.c:   videobuf_queue_pci_init(fh-vidq, cx8800_video_qops,
 cx88-video.c:   videobuf_queue_pci_init(fh-vbiq, cx8800_vbi_qops,
 saa7134-dvb.c:  videobuf_queue_pci_init(dev-dvb.dvbq,
 saa7134_ts_qops,
 saa7134-empress.c:  videobuf_queue_pci_init(dev-empress_tsq,
 saa7134_ts_qops,
 saa7134-video.c:videobuf_queue_pci_init(fh-cap, video_qops,
 saa7134-video.c:videobuf_queue_pci_init(fh-vbi,
 saa7134_vbi_qops,
 saa7146_vbi.c:  videobuf_queue_pci_init(fh-vbi_q, vbi_qops,
 saa7146_video.c:videobuf_queue_pci_init(fh-video_q,
 video_qops,
 videobuf-dma-sg.c:void videobuf_queue_pci_init(struct videobuf_queue* q,

 There's no other driver using the abstract videobuf_queue_init.
   
OK, we should be fine, then.
 A final point for your consideration:

 videobuf_queue_init is the only function that had its meaning changed
 without changing its parameters (currently, it is just an abstract
 method. In the past, this were the function that were used to initialize
 a videobuf queue). 

 The changes you're proposing won't solve the target you've addressed in
 the first place, since it will still compile without warning, if you
 forget to rename it to videobuf_queue_pci_init.

 The proper change is simply doing something like:

 

Re: [linux-dvb] [v4l-dvb-maintainer] modpost errors ( Re: 2.6.23-rc6-mm1)

2007-09-18 Thread mkrufky
Sam Ravnborg wrote:
 Please cc: relevant people.

 On Tue, Sep 18, 2007 at 05:43:35PM +0200, Gabriel C wrote:
   
 Hi,

 I get modpost errors here :

 ...

 ERROR: dvb_dmx_init [drivers/media/video/video-buf-dvb.ko] undefined!
 ERROR: dvb_unregister_adapter [drivers/media/video/video-buf-dvb.ko]
undefined!
 ERROR: dvb_register_frontend [drivers/media/video/video-buf-dvb.ko]
undefined!
 ERROR: dvb_unregister_frontend [drivers/media/video/video-buf-dvb.ko]
undefined!
 ERROR: dvb_net_release [drivers/media/video/video-buf-dvb.ko]
undefined!
 ERROR: dvb_frontend_detach [drivers/media/video/video-buf-dvb.ko]
undefined!
 ERROR: dvb_dmxdev_release [drivers/media/video/video-buf-dvb.ko]
undefined!
 ERROR: dvb_dmx_swfilter [drivers/media/video/video-buf-dvb.ko]
undefined!
 ERROR: dvb_net_init [drivers/media/video/video-buf-dvb.ko] undefined!
 ERROR: dvb_dmx_release [drivers/media/video/video-buf-dvb.ko]
undefined!
 ERROR: dvb_register_adapter [drivers/media/video/video-buf-dvb.ko]
undefined!
 ERROR: dvb_dmxdev_init [drivers/media/video/video-buf-dvb.ko]
undefined!
 

 dvb issue so dvb added.

   
 ERROR: mt2131_attach [drivers/media/video/cx23885/cx23885.ko]
undefined!
 ERROR: s5h1409_attach [drivers/media/video/cx23885/cx23885.ko]
undefined!
 

 Was not sure who maintain this stuff..
 It's not in the git-tree I had around.

Sam,

This stuff is in -mm only right now.

It was a dependency problem, where a new driver (cx23885) is missing the 
dependency on DVB_CORE.

The fix is in this changeset:

http://linuxtv.org/hg/~mkrufky/build-fix/rev/67acaa106a99

Mauro,

Please pull from:

http://linuxtv.org/hg/~mkrufky/build-fix

for:

- VIDEO_CX23885 depends on DVB_CORE

 Kconfig |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Regards,

Mike Krufky

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