kern/102549: Pixelview PlayTV Pro 2 and bktr
George
imitheos at hotmail.com
Sat Aug 26 23:10:27 UTC 2006
>Number: 102549
>Category: kern
>Synopsis: Pixelview PlayTV Pro 2 and bktr
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Sat Aug 26 23:10:18 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator: George
>Release: 7.0-Current
>Organization:
>Environment:
FreeBSD hostname 7.0-CURRENT FreeBSD 7.0-CURRENT #4: Fri Aug 25
14:58:22 EEST 2006 root at hostname:/usr/obj/usr/src/sys/hostname amd64
>Description:
I have a Prolink Pixelview PlayTV Pro 2 card which didn't work with the bktr
driver. I made some changes to the bktr driver which i include and now it works.
If i use the normal driver then everything works fine. i can watch tv with fxtv
fine (xawtv runs but segfaults when i try to change channel)
bktr0: <BrookTree 878> mem 0xcfffe000-0xcfffefff irq 21 at device 10.0 on pci1
bktr0: [GIANT-LOCKED]
bktr0: PixelView PlayTV Pro 2 , Ymec TVision TVF-5533MF tuner.
pci1: <multimedia> at device 10.1 (no driver attached)
If i use the "new smbus" interface then the system boots fine but when i
run fxtv the system crashes.
bktr0: <BrookTree 878> mem 0xcfffe000-0xcfffefff irq 21 at device 10.0 on pci1
bktr0: [GIANT-LOCKED]
smbus0: <System Management Bus> on bktr0
smb0: <SMBus generic I/O> on smbus0
iicbb0: <I2C bit-banging driver> on bktr0
iicbus0: <Philips I2C bus> on iicbb0 master-only
ic0 on iicbus0
iicsmb0: <SMBus over I2C bridge> on iicbus0
smbus1: <System Management Bus> on iicsmb0
smb1: <SMBus generic I/O> on smbus1
bktr0: PixelView PlayTV Pro 2 .
pci1: <multimedia> at device 10.1 (no driver attached)
>How-To-Repeat:
Use the above card with the bktr driver.
>Fix:
# Inserted 2 more cards to the list
# In linux my card (Prolink PixelView PlayTV Pro 2) works with both
# definitions although they have different mux values. I don't know why
# so i added both (Maybe the bktr maintainer will know why)
# I cross-checked the "audio MUX values" from existing bktr card with
# the linux driver and copied accordingly
# First = tv, Fourth = mute, Five = always 1
# I don't know if it is right, but both definitions work fine with my
# card.
--- bktr_card.c.orig Fri Aug 25 11:17:43 2006
+++ bktr_card.c Fri Aug 25 11:18:02 2006
@@ -415,6 +415,30 @@
0, /* EEProm size */
{ 0x01, 0x04, 0x01, 0x03, 1 }, /* audio MUX values */
0x00ffffff },
+
+ { CARD_PIXELVIEW_PLAYTV_PRO_2, /* the card id */
+ "PixelView PlayTV Pro 2 ", /* the 'name' */
+ NULL, /* the tuner */
+ 0, /* the tuner i2c address */
+ 0, /* dbx is optional */
+ 0,
+ 0,
+ 0, /* EEProm type */
+ 0, /* EEProm size */
+ { 0x00, 0x0a, 0x07, 0x0c, 1 }, /* audio MUX values */
+ 0x0f },
+
+ { CARD_PIXELVIEW_PLAYTV_MPEG2, /* the card id */
+ "PixelView PlayTV MPEG2 ", /* the 'name' */
+ NULL, /* the tuner */
+ 0, /* the tuner i2c address */
+ 0, /* dbx is optional */
+ 0,
+ 0,
+ 0, /* EEProm type */
+ 0, /* EEProm size */
+ { 0x21, 0x24, 0x2c, 0x29, 1 }, /* audio MUX values */
+ 0x3f },
};
struct bt848_card_sig bt848_card_signature[1]= {
# Add the card definitions and increase the max card number
--- bktr_card.h.orig Fri Aug 25 11:18:11 2006
+++ bktr_card.h Fri Aug 25 11:18:26 2006
@@ -82,7 +82,9 @@
#define CARD_PIXELVIEW_PLAYTV_PAK 20
#define CARD_TERRATVALUE 21
#define CARD_PIXELVIEW_PLAYTV_PRO_REV_4C 22
-#define Bt848_MAX_CARD 23
+#define CARD_PIXELVIEW_PLAYTV_PRO_2 23
+#define CARD_PIXELVIEW_PLAYTV_MPEG2 24
+#define Bt848_MAX_CARD 25
#define CARD_IO_GV CARD_IO_BCTV2
# Change bandLimits from char to int so that band change crosspoint can be
# added. NetBSD code has it as int also, so i guess the char->int change
# doesn't have any ill side-effects
--- bktr_reg.h.orig Fri Aug 25 11:34:00 2006
+++ bktr_reg.h Fri Aug 25 11:34:10 2006
@@ -401,7 +401,7 @@
char* name;
u_char type;
u_char pllControl[4];
- u_char bandLimits[ 2 ];
+ u_int bandLimits[ 2 ];
u_char bandAddrs[ 4 ]; /* 3 first for the 3 TV
** bands. Last for radio
** band (0x00=NoRadio).
# Added band-switch crosspoints (copied from the linux driver)
# Also inserted a new tuner definition because none of the existing ones
# worked with my tuner. Practically it is the same definition with the
# Temic PAL tuner but with changed switch values. I guess TSA552x is the
# right flags because they give 8e which the tuner uses.
# It also has a radio so i added TSA552x_RADIO, but i couldn't make it
# work. I believe it has a newer chipset than the MSP one. But the
# TV part works fine.
--- bktr_tuner.c.orig Fri Aug 25 12:34:26 2006
+++ bktr_tuner.c Fri Aug 25 11:54:12 2006
@@ -157,7 +157,7 @@
TSA552x_SCONTROL,
TSA552x_SCONTROL,
0x00 },
- { 0x00, 0x00}, /* band-switch crosspoints */
+ { 157, 463 }, /* band-switch crosspoints */
{ 0x02, 0x04, 0x01, 0x00 } }, /* the band-switch values */
/* TEMIC_PAL */
@@ -167,7 +167,7 @@
TSA552x_SCONTROL,
TSA552x_SCONTROL,
0x00 },
- { 0x00, 0x00}, /* band-switch crosspoints */
+ { 140, 463 }, /* band-switch crosspoints */
{ 0x02, 0x04, 0x01, 0x00 } }, /* the band-switch values */
/* TEMIC_SECAM */
@@ -187,7 +187,7 @@
TSA552x_SCONTROL,
TSA552x_SCONTROL,
0x00 },
- { 0x00, 0x00 }, /* band-switch crosspoints */
+ { 157, 451 }, /* band-switch crosspoints */
{ 0xa0, 0x90, 0x30, 0x00 } }, /* the band-switch values */
/* PHILIPS_PAL */
@@ -197,7 +197,7 @@
TSA552x_SCONTROL,
TSA552x_SCONTROL,
0x00 },
- { 0x00, 0x00 }, /* band-switch crosspoints */
+ { 168, 447 }, /* band-switch crosspoints */
{ 0xa0, 0x90, 0x30, 0x00 } }, /* the band-switch values */
/* PHILIPS_SECAM */
@@ -207,7 +207,7 @@
TSA552x_SCONTROL,
TSA552x_SCONTROL,
0x00 },
- { 0x00, 0x00 }, /* band-switch crosspoints */
+ { 168, 447 }, /* band-switch crosspoints */
{ 0xa7, 0x97, 0x37, 0x00 } }, /* the band-switch values */
/* TEMIC_PAL I */
@@ -217,7 +217,7 @@
TSA552x_SCONTROL,
TSA552x_SCONTROL,
0x00 },
- { 0x00, 0x00 }, /* band-switch crosspoints */
+ { 170, 450 }, /* band-switch crosspoints */
{ 0x02, 0x04, 0x01,0x00 } }, /* the band-switch values */
/* PHILIPS_PALI */
@@ -227,7 +227,7 @@
TSA552x_SCONTROL,
TSA552x_SCONTROL,
0x00 },
- { 0x00, 0x00 }, /* band-switch crosspoints */
+ { 140, 463 }, /* band-switch crosspoints */
{ 0xa0, 0x90, 0x30,0x00 } }, /* the band-switch values */
/* PHILIPS_FR1236_NTSC */
@@ -237,7 +237,7 @@
TSA552x_FCONTROL,
TSA552x_FCONTROL,
TSA552x_RADIO },
- { 0x00, 0x00 }, /* band-switch crosspoints */
+ { 160, 453 }, /* band-switch crosspoints */
{ 0xa0, 0x90, 0x30,0xa4 } }, /* the band-switch values */
/* PHILIPS_FR1216_PAL */
@@ -247,7 +247,7 @@
TSA552x_FCONTROL,
TSA552x_FCONTROL,
TSA552x_RADIO },
- { 0x00, 0x00 }, /* band-switch crosspoints */
+ { 168, 447 }, /* band-switch crosspoints */
{ 0xa0, 0x90, 0x30, 0xa4 } }, /* the band-switch values */
/* PHILIPS_FR1236_SECAM */
@@ -267,7 +267,7 @@
TSCH5_FCONTROL,
TSCH5_FCONTROL,
TSCH5_RADIO },
- { 0x00, 0x00 }, /* band-switch crosspoints */
+ { 137, 385 }, /* band-switch crosspoints */
{ 0x14, 0x12, 0x11, 0x04 } }, /* the band-switch values */
/* ALPS TSBH1 NTSC */
@@ -277,7 +277,7 @@
TSBH1_FCONTROL,
TSBH1_FCONTROL,
0x00 },
- { 0x00, 0x00 }, /* band-switch crosspoints */
+ { 137, 385 }, /* band-switch crosspoints */
{ 0x01, 0x02, 0x08, 0x00 } }, /* the band-switch values */
/* MT2032 Microtune */
@@ -297,8 +297,19 @@
TSA552x_SCONTROL,
TSA552x_SCONTROL,
0x00 },
- { 0x00, 0x00 }, /* band-switch crosspoints */
+ { 170, 450 }, /* band-switch crosspoints */
{ 0xa0, 0x90, 0x30, 0x8e } }, /* the band-switch values */
+
+ /* YMEC_TVF_5533 */
+ /* Same characteristics as many Philips and Tena */
+ { "Ymec TVision TVF-5533MF" , /* the 'name' */
+ TTYPE_PAL, /* input type */
+ { TSA552x_FCONTROL, /* control byte for Tuner PLL */
+ TSA552x_FCONTROL,
+ TSA552x_FCONTROL,
+ TSA552x_RADIO },
+ { 160, 454 }, /* band-switch crosspoints */
+ { 0x01, 0x02, 0x04, 0x08 } }, /* the band-switch values */
};
--- bktr_tuner.h.orig Fri Aug 25 11:43:29 2006
+++ bktr_tuner.h Fri Aug 25 11:43:51 2006
@@ -61,7 +61,8 @@
#define ALPS_TSBH1 13
#define TUNER_MT2032 14
#define LG_TPI8PSB12P_PAL 15
-#define Bt848_MAX_TUNER 16
+#define YMEC_TVF_5533 16
+#define Bt848_MAX_TUNER 17
/* experimental code for Automatic Frequency Control */
#define TUNER_AFC
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-bugs
mailing list