Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 4 Feb 2007 23:49:21 +0100
From:      Danny Pansters <danny@ricin.com>
To:        freebsd-multimedia@freebsd.org
Cc:        Simon Thoustrup <simon@thoustrup.dk>
Subject:   Re: Tuner code 0x71 for Hauppauge PVR-150 (pvrxxx)
Message-ID:  <200702042349.22010.danny@ricin.com>
In-Reply-To: <c39ec84c0702041403i2ad28efax51723731cc50c61e@mail.gmail.com>
References:  <45B91790.9080206@thoustrup.dk> <45C60C4D.7030500@thoustrup.dk> <c39ec84c0702041403i2ad28efax51723731cc50c61e@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sunday 04 February 2007 23:03, usleepless@gmail.com wrote:
> Simon,
>
> On 2/4/07, Simon Thoustrup <simon@thoustrup.dk> wrote:
> > Josh Paetzel skrev:
> > > Heh, nasty little bugger to get working isn't it?
> >
> > It sure is.. :)
> >
> >  > Took me the better part of 24 hours to make mine go.
> >  > You have the right tuner code, the problem lies elsewhere.
> >  > The size of the firmware image is wired into one of the
> >  > files, and it's wrong for the PVR-150.  In:
> > >
> > > work/modules/cxm/cxm/fbsd-compat.c:
> > >
> > > You will find:
> > >
> > > int request_firmware(void **fw, char *file, int dummy)
> > > {       static struct firmware thef;
> > >          *fw = &thef;
> > >          thef.data=cx25840_fw;
> > >          thef.size = 14264;
> > >          return 0; }
> > >
> > > thef.size needs to be changed to 16382 and you need to recompile.
> >
> > Done that.
> >
> > It takes a lot longer to load the cxm module now, but I still get:
> >
> > kernel: cxm0: <Conexant iTVC16 MPEG Coder> mem 0xd0000000-0xd3ffffff irq
> > 9 at device 13.0 on pci0
> > kernel: cxm_iic0: <Conexant iTVC15 / iTVC16 I2C controller> on cxm0
> > kernel: iicbb0: <I2C bit-banging driver> on cxm_iic0
> > kernel: iicbus0: <Philips I2C bus> on iicbb0 master-only
> > kernel: tuner code 113
> > kernel: tuner_type = 20
> > kernel: cxm0: TCL 2002N-6A tuner
> > kernel: <2>cxm 0-0000: loaded /lib/modules/v4l-cx25840.fw firmware
> > (16382 bytes)
> > kernel: <2>cxm debug 0-0000: decoder set input (0)
> > kernel: <2>cxm debug 0-0000: now setting Tuner input
> > kernel: <2>cxm debug 0-0000: set audio input (0)
> > kernel: <2>cxm debug 0-0000: set audio input (0)
> > kernel: cxm0: Eeprom PAL
> > kernel: <2>tda 0-0000: switching to v4l2
> > kernel: <2>tda 0-0000: configure for: PAL-BG
> > kernel: <2>tda 0-0000: writing: b=0xd4 c=0x70 e=0x09
> > kernel: could not start iic bus
                   ^^^^^^^^^^^^^

It can't init the (programmable) IF thus it can't tune. I don't have a pvr and 
am not very familiar with v4l2 and not at all with this port, but this is a 
common tuner thing. At this stage carrier frequencies and the like get set 
depending on if you have PAL B/G or I, etc. If that fails it won't be able to 
tune or to get an image (carrier frequencies etc). I have similar code (only 
on the iic device rather than iicbb) in kbtv for tuning SAA based TV cards 
(analog).

Maybe there's a device permission problem where the user may not write to the 
iic device(s)? Or (but then the port/code has a problem I'd reckon) you need 
to reset the bus (before start) or it doesn't have proper tda support at all.

Was reading this thread, thought at least I could point to the place where 
things go wrong.

HTH,

Dan

> > kernel: probed 54
> > kernel: probed 136
> > kernel: probed 160
> > kernel: probed 194
> > kernel: probed 224
> > kernel: probed 226
> > kernel: probed 228
> > kernel: probed 230
> > kernel: <2>tda 0-0000: i2c i/o error: rc == 2 (should be 4)
> > kernel: read error
> > kernel: <2>tda 0-0000: i2c i/o error: rc == -597317209 (should be 1)
> > kernel: <2>tda 0-0000: read: 0x 0
> > kernel: <2>tda 0-0000:   after power on : no
> > kernel: <2>tda 0-0000:   afc            : - 12.5 kHz
> > kernel: <2>tda 0-0000:   fmif level     : low
> > kernel: <2>tda 0-0000:   afc window     : out
> > kernel: <2>tda 0-0000:   vfi level      : low
> > kernel: <2>cxm 0-0000: Video signal:              not present
> > kernel: <2>cxm 0-0000: Detected format:           NTSC-M
> > kernel: <2>cxm 0-0000: Detected audio mode:       forced mode
> > kernel: <2>cxm 0-0000: Detected audio standard:   forced audio standard
> > kernel: <2>cxm 0-0000: Audio muted:               no
> > kernel: <2>cxm 0-0000: Audio microcontroller:     running
> > kernel: <2>cxm 0-0000: Configured audio standard: A2-BG
> > kernel: <2>cxm 0-0000: Configured audio mode:     undefined
> > kernel: <2>cxm 0-0000: Specified standard:        PAL-BDGHI
> > kernel: <2>cxm 0-0000: Specified input:           Tuner
> > kernel: <2>cxm 0-0000: Specified audio input:     Tuner
> > kernel: <2>cxm 0-0000: Specified audioclock freq: 48 kHz
> > kernel: <2>cxm 0-0000: Preferred audio mode:      stereo
> > kernel: <2>cxm 0-0000: Selected 65 MHz format:    system DK
> > kernel: <2>cxm 0-0000: Selected 45 MHz format:    chroma
> > kernel: cxm0: [GIANT-LOCKED]
> > bsd kernel: cxm0: encoder firmware version 0x2050032
> >
> > - and still the same error messages when trying pvr250-setchannel:
> >
> > ioctl( tfd, BT848_GAUDIO ) failed.: Device not configured
> > ioctl( tfd, TVTUNER_SETTYPE ) failed.: Invalid argument
>
> what are the exact parameters you are supplying to pvr250-setchannel?
>
> regards,
>
> usleep
> _______________________________________________
> freebsd-multimedia@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-multimedia
> To unsubscribe, send any mail to
> "freebsd-multimedia-unsubscribe@freebsd.org"



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200702042349.22010.danny>