On Thu, 2009-11-12 at 20:34 +0300, Rajesh Padalia wrote:
> Hi Andy,
> 1. $ v4l2-ctl --log-status:
> Status Log:
>
> ivtv0: ================= START STATUS CARD #0 =================
> ivtv0: Version: 1.4.1 Card: Yuan PG600, Diamond PVR-550
> cx25840 1-0044: Video signal: present
> cx25840 1-0044: Detected format: PAL-BDGHI
> cx25840 1-0044: Specified standard: NTSC-M
> cx25840 1-0044: Specified video input: Composite 1
> cx25840 1-0044: Specified audioclock freq: 48000 Hz
> cx25840 1-0044: Detected audio mode: mono
> cx25840 1-0044: Detected audio standard: no detected audio standard
> cx25840 1-0044: Audio muted: no
> cx25840 1-0044: Audio microcontroller: stopped
> cx25840 1-0044: Configured audio standard: automatic detection
> cx25840 1-0044: Configured audio system: BTSC
> cx25840 1-0044: Specified audio input: External
> cx25840 1-0044: Preferred audio mode: stereo
> tda9887 1-0043: Data bytes: b=0xd4 c=0x30 e=0x44
> tuner 1-0060: Tuner mode: analog TV
> tuner 1-0060: Frequency: 67.25 MHz
> tuner 1-0060: Standard: 0x00001000
> ivtv0: Video Input: Composite 1
> ivtv0: Audio Input: Line In 1
> ivtv0: Tuner: TV
> ivtv0: Stream: MPEG-2 Program Stream
> ivtv0: VBI Format: No VBI
> ivtv0: Video: 720x480, 30 fps
> ivtv0: Video: MPEG-2, 4x3, Variable Bitrate, 6000000, Peak 8000000
> ivtv0: Video: GOP Size 15, 2 B-Frames, GOP Closure
> ivtv0: Audio: 48 kHz, MPEG-1/2 Layer II, 224 kbps, Stereo, No
> Emphasis, No CRC
> ivtv0: Spatial Filter: Manual, Luma 1D Horizontal, Chroma 1D Horizontal, 0
> ivtv0: Temporal Filter: Manual, 8
> ivtv0: Median Filter: Off, Luma [0, 255], Chroma [0, 255]
> ivtv0: Status flags: 0x00200000
> ivtv0: Stream encoder MPG: status 0x0118, 0% of 4096 KiB (128 buffers) in use
> ivtv0: Stream encoder YUV: status 0x0000, 0% of 2048 KiB (64 buffers) in use
> ivtv0: Stream encoder VBI: status 0x0000, 0% of 1040 KiB (61 buffers) in use
> ivtv0: Stream encoder PCM: status 0x0000, 0% of 324 KiB (72 buffers) in use
> ivtv0: Read MPG/VBI: 19052480/0 bytes
> ivtv0: ================== END STATUS CARD #0 ==================
OK. You figured out that setting NTSc whne a PAL video signal is coming
in, doesn't work so well.
> 2. The one close to crystal is : 74HC4053D, AG124 29, URO 0348D
> The other one is: 5333KZ, GZ0337
OK those chips are what I needed to know:
Philips/NXP 74HC4053 Triple 2:1 analog multiplexer:
http://www.nxp.com/acrobat_download/datasheets/74HC_HCT4053_4.pdf Cirrus Logic CS5333 24 bit, 96 kHz stereo A/D converter:
http://www.digchip.com/datasheets/download_datasheet.php?id=228624&part-number=CDB5333 This is where the information from Ineteract-TV could save everyone a
lot of time and effort. *sigh*
Oh, well. I have created a preliminary card entry for the PV-947D in my
repository here:
http://linuxtv.org/hg/~awalls/ivtv-provideo/ The easiest thing to do is to download the tar.gz archive from this
link:
http://linuxtv.org/hg/~awalls/ivtv-provideo/archive/tip.tar.gz And build and install the v4l-dvb subsystem modules:
$ tar -xvf tip.tar.gz
$ cd (into the newly extarcted archive)
$ make
$ cd v4l2-apps
$ make (it will fail, but ivtv-ctl will get built)
$ cd ..
$ su root
# make install
# make unload; make unload
# /sbin/modprobe ivtv
(*WARNING* The 'make install' step will overwrite all of you existing
v4l-dvb (media subsystem) modules under /lib/modules/`uname -r` . Back
them up if you wan to save them.)
Now ivtv should at least automatically recognize your card.
And now the fun part: *you* have to experiment and fix the card
definition.
1. You will have to figure out which of the 8 CX25843 analog inputs
correspond to which of the following:
a. RF tuner assembly CVBS (composite) video
b. RF Sound IF (SIF) audio
c. Rear bracket CVBS (composite) video
d. Rear bracket SVideo Luma (Y) video component
e. Rear bracket SVideo Chroma (C) video component
I assume you'll just ignore the internal black video connector with pins
labeled Y (Luma or CVBS?), C (Chroma), AV (?), and G (ground) as these
would be for Compsite 2 and SVideo 2.
2. You will have to figure out how to set the GPIO pin direction, and
masks for audio routing:
a. RF tuner baseband audio (if you can't use SIF audio for some reason)
b. Rear bracket Line-in 1 L and R audio
I assume you'll ignore the the internal black video connector with pins
labeled L (Left), R (Right) and G (ground) as these would be Line in 2
audio.
OK. So that's the task. Now how do you do it? You'll need to edit
linux/drivers/media/video/ivtv/ivtv-cards.c
to fix up the card entry for the Provideo PV-947D. It currently looks Like this:
static const struct ivtv_card ivtv_card_provideo = {
.type = IVTV_CARD_PROVIDEO_PV947,
.name = "Provideo Multimedia PV-947D",
.v4l2_capabilities = IVTV_CAP_ENCODER,
.hw_video = IVTV_HW_CX25840,
.hw_audio = IVTV_HW_CX25840,
.hw_audio_ctrl = IVTV_HW_CX25840,
.hw_muxer = IVTV_HW_GPIO,
.hw_all = IVTV_HW_CX25840 | IVTV_HW_TUNER | IVTV_HW_GPIO,
.video_inputs = {
{ IVTV_CARD_INPUT_VID_TUNER, 0, CX25840_COMPOSITE2 },
/* Rear Bracket connectors */
{ IVTV_CARD_INPUT_SVIDEO1, 1,
CX25840_SVIDEO_LUMA3 | CX25840_SVIDEO_CHROMA4 },
{ IVTV_CARD_INPUT_COMPOSITE1, 1, CX25840_COMPOSITE1 },
/* Internal Video-In connectors */
{ IVTV_CARD_INPUT_SVIDEO2, 2,
CX25840_SVIDEO_LUMA3 | CX25840_SVIDEO_CHROMA4 },
{ IVTV_CARD_INPUT_COMPOSITE2, 2, CX25840_COMPOSITE1 },
},
.audio_inputs = {
{ IVTV_CARD_INPUT_AUD_TUNER, CX25840_AUDIO5, 0 },
{ IVTV_CARD_INPUT_LINE_IN1, CX25840_AUDIO_SERIAL, 1 },
{ IVTV_CARD_INPUT_LINE_IN2, CX25840_AUDIO_SERIAL, 2 },
},
.tuners = {
{ .std = V4L2_STD_NTSC, .tuner = TUNER_PHILIPS_FQ1236A_MK4 },
},
/*
* The 74HC4053 Triple 2:1 multiplexer must be controlled by 3 GPIOs.
* It is likely the mux switches Audio L and R between the rear bracket
* connector and the internal connectors.
* It is unclear if the third unit in the triple mux switches Y or C or
* something else.
*
* The board also has an LED (D2) which is likely controlled by a GPIO
*/
.gpio_init = { .direction = 0x0000, .initial_value = 0 },
.gpio_audio_input = { .mask = 0x0000,
.tuner = 0x0000,
.linein = 0x0000, /* Line In 1: rear bracket */
.radio = 0x0000 }, /* Line in 2: internal con */
.pci_list = ivtv_pci_provideo,
.i2c = &ivtv_i2c_std,
};
1. I assume you don't have an NTSC-M RF source available to you, so
we'll forget about the RF tuner for now. That means we won't be editing
the lines that look like these:
{ IVTV_CARD_INPUT_VID_TUNER, 0, CX25840_COMPOSITE2 },
{ IVTV_CARD_INPUT_AUD_TUNER, CX25840_AUDIO5, 0 },
.tuner = 0x0000,
2. Set the card using v4l2-ctl to "Composite 1" and the proper video
standard for the incoming signal (PAL, SECAM, NTSC) on the rear bracket
connector. If you have color video that looks correct go to the next
step. If not change this line:
{ IVTV_CARD_INPUT_COMPOSITE1, 1, CX25840_COMPOSITE1 },
so the last argument is CX25840_COMPOSITE2, rebuild the driver,
reinstall the drivers, unload the ivtv module, load the new ivtv module
and test again. If that doesn't work continue to test
CX24840_COMPOSITE3 through 8. One of them should work.
3. Set the card using v4l2-ctl to "SVideo 1" and the proper video
standard for the incoming SVideo signal (PAL, SECAM, NTSC) on the rear
bracket connector. If you have color video that looks correct go to the
next step. Otherwise change this line:
{ IVTV_CARD_INPUT_SVIDEO1, 1,
CX25840_SVIDEO_LUMA3 | CX25840_SVIDEO_CHROMA4 },
so the last argument's LUMA value is CX25840_SVIDEO_LUMA1. rebuild the
driver, reinstall the drivers, unload the ivtv module, load the new ivtv
module and test again. If that doesn't work continue to test
CX25840_SVIDEO_LUMA2 through 8, skipping the value you found to be
correct for video in the previous step(s). One of them should work such
that you get at least a good black and white picture.
Once you have Black and White SVideo, repeat the process with the
CX25840_SVIDEO_CHROMAn values, skipping the values you already know are
correct for previous step(s), until you get good color.
4. You will need to determine the GPIO output settings for to make line
in 1 audio work. Using v4l2-ctl set the iput to "Composite 1" or
"SVideo 1" and start a capture. As root, from where you built the
drivers, run
# v4l2-apps/util/ivtv-ctl -d /dev/video0 --list-gpio
to show that state of the 16 GPIO pins. They should all have their
direction set as input, and some random garbage should be read in for
the in and out values. You will now use
# v4l2-apps/util/ivtv-ctl -d /dev/video0 --set-gpio dir=0xuuuu,val=0xvvvv
# v4l2-apps/util/ivtv-ctl -d /dev/video0 --list-gpio
To set 2 GPIO output pins (one for Line in 1 L audio, one for Line in 1
R audio) to a high level (or maybe a low level) to hear audio from Line
in 1. I would start with the highest bits first:
# v4l2-apps/util/ivtv-ctl -d /dev/video0 --set-gpio dir=0xc000,val=0xc000
# v4l2-apps/util/ivtv-ctl -d /dev/video0 --set-gpio dir=0xc000,val=0x0000
and work my way down to the lowest bits. (One of the 16 bit will likely
end up controlling the LED on the board.)
One you find the bits that give you good Line in 1 audio: you will edit
these lines in the card entry:
.gpio_init = { .direction = 0x0000, .initial_value = 0 },
.gpio_audio_input = { .mask = 0x0000,
.tuner = 0x0000,
.linein = 0x0000, /* Line In 1: rear bracket */
.radio = 0x0000 }, /* Line in 2: internal con */
To fix the direction, mask, and linein value.
Good luck.
Regards,
Andy
> On Thu, Nov 12, 2009 at 2:18 AM, Andy Walls <awalls@radix.net> wrote:
> > On Wed, 2009-11-11 at 19:55 +0300, Rajesh Padalia wrote:
> >> Hi Andy,
> >> It works! I was able to capture video. I am yet to get Audio. Any idea?
> >> -------------------------------
> >
> > 1. Please provide the output of
> >
> > $ v4l2-ctl --log-status
> >
> > while capturing TV.
> >
> > 2. Also could you provide the chip numbers from the two black chips
> > next to the end of the metal tuner can just above the 27.00 MHz crystal?
> > I can't read them from the photograph. One looks like it has a
> > "Philips" logo, but I can't tell much else.
> >
> > 3. Make sure you have the firmware for the cx25843 chip in the proper
> > firmware directory for your distirbution. You will never get broadcast
> > audio without that firmware loaded into the CX25843.
> >
> > Regards,
> > Andy
> >
> >> ---------------------------------------------------------------------------------------------
> >> Thanks for your help.
> >> Rajesh
_______________________________________________
ivtv-devel mailing list
ivtv-devel@ivtvdriver.org
http://ivtvdriver.org/mailman/listinfo/ivtv-devel