Commit 49dc82fd authored by Patrick Boettcher's avatar Patrick Boettcher Committed by Linus Torvalds

[PATCH] dvb: frontend: add FMD1216ME PLL

o change dvb-pll desc to take the frequency as parameter for setbw-callback
  into consideration
o added dvb-pll desc for Philips FMD1216ME (needed for cxusb)
Signed-off-by: default avatarJohannes Stezenbach <js@linuxtv.org>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 7f5fee57
...@@ -55,7 +55,7 @@ struct dvb_pll_desc dvb_pll_thomson_dtt7610 = { ...@@ -55,7 +55,7 @@ struct dvb_pll_desc dvb_pll_thomson_dtt7610 = {
}; };
EXPORT_SYMBOL(dvb_pll_thomson_dtt7610); EXPORT_SYMBOL(dvb_pll_thomson_dtt7610);
static void thomson_dtt759x_bw(u8 *buf, int bandwidth) static void thomson_dtt759x_bw(u8 *buf, u32 freq, int bandwidth)
{ {
if (BANDWIDTH_7_MHZ == bandwidth) if (BANDWIDTH_7_MHZ == bandwidth)
buf[3] |= 0x10; buf[3] |= 0x10;
...@@ -146,7 +146,7 @@ EXPORT_SYMBOL(dvb_pll_env57h1xd5); ...@@ -146,7 +146,7 @@ EXPORT_SYMBOL(dvb_pll_env57h1xd5);
/* Philips TDA6650/TDA6651 /* Philips TDA6650/TDA6651
* used in Panasonic ENV77H11D5 * used in Panasonic ENV77H11D5
*/ */
static void tda665x_bw(u8 *buf, int bandwidth) static void tda665x_bw(u8 *buf, u32 freq, int bandwidth)
{ {
if (bandwidth == BANDWIDTH_8_MHZ) if (bandwidth == BANDWIDTH_8_MHZ)
buf[3] |= 0x08; buf[3] |= 0x08;
...@@ -178,7 +178,7 @@ EXPORT_SYMBOL(dvb_pll_tda665x); ...@@ -178,7 +178,7 @@ EXPORT_SYMBOL(dvb_pll_tda665x);
/* Infineon TUA6034 /* Infineon TUA6034
* used in LG TDTP E102P * used in LG TDTP E102P
*/ */
static void tua6034_bw(u8 *buf, int bandwidth) static void tua6034_bw(u8 *buf, u32 freq, int bandwidth)
{ {
if (BANDWIDTH_7_MHZ != bandwidth) if (BANDWIDTH_7_MHZ != bandwidth)
buf[3] |= 0x08; buf[3] |= 0x08;
...@@ -198,6 +198,33 @@ struct dvb_pll_desc dvb_pll_tua6034 = { ...@@ -198,6 +198,33 @@ struct dvb_pll_desc dvb_pll_tua6034 = {
}; };
EXPORT_SYMBOL(dvb_pll_tua6034); EXPORT_SYMBOL(dvb_pll_tua6034);
/* Philips FMD1216ME
* used in Medion Hybrid PCMCIA card and USB Box
*/
static void fmd1216me_bw(u8 *buf, u32 freq, int bandwidth)
{
if (bandwidth == BANDWIDTH_8_MHZ && freq >= 158870000)
buf[3] |= 0x08;
}
struct dvb_pll_desc dvb_pll_fmd1216me = {
.name = "placeholder",
.min = 50870000,
.max = 858000000,
.setbw = fmd1216me_bw,
.count = 7,
.entries = {
{ 143870000, 36213333, 166667, 0xbc, 0x41 },
{ 158870000, 36213333, 166667, 0xf4, 0x41 },
{ 329870000, 36213333, 166667, 0xbc, 0x42 },
{ 441870000, 36213333, 166667, 0xf4, 0x42 },
{ 625870000, 36213333, 166667, 0xbc, 0x44 },
{ 803870000, 36213333, 166667, 0xf4, 0x44 },
{ 999999999, 36213333, 166667, 0xfc, 0x44 },
}
};
EXPORT_SYMBOL(dvb_pll_fmd1216me);
/* ----------------------------------------------------------- */ /* ----------------------------------------------------------- */
/* code */ /* code */
...@@ -231,7 +258,7 @@ int dvb_pll_configure(struct dvb_pll_desc *desc, u8 *buf, ...@@ -231,7 +258,7 @@ int dvb_pll_configure(struct dvb_pll_desc *desc, u8 *buf,
buf[3] = desc->entries[i].cb2; buf[3] = desc->entries[i].cb2;
if (desc->setbw) if (desc->setbw)
desc->setbw(buf, bandwidth); desc->setbw(buf, freq, bandwidth);
if (debug) if (debug)
printk("pll: %s: div=%d | buf=0x%02x,0x%02x,0x%02x,0x%02x\n", printk("pll: %s: div=%d | buf=0x%02x,0x%02x,0x%02x,0x%02x\n",
......
...@@ -9,7 +9,7 @@ struct dvb_pll_desc { ...@@ -9,7 +9,7 @@ struct dvb_pll_desc {
char *name; char *name;
u32 min; u32 min;
u32 max; u32 max;
void (*setbw)(u8 *buf, int bandwidth); void (*setbw)(u8 *buf, u32 freq, int bandwidth);
int count; int count;
struct { struct {
u32 limit; u32 limit;
...@@ -30,6 +30,7 @@ extern struct dvb_pll_desc dvb_pll_tua6010xs; ...@@ -30,6 +30,7 @@ extern struct dvb_pll_desc dvb_pll_tua6010xs;
extern struct dvb_pll_desc dvb_pll_env57h1xd5; extern struct dvb_pll_desc dvb_pll_env57h1xd5;
extern struct dvb_pll_desc dvb_pll_tua6034; extern struct dvb_pll_desc dvb_pll_tua6034;
extern struct dvb_pll_desc dvb_pll_tda665x; extern struct dvb_pll_desc dvb_pll_tda665x;
extern struct dvb_pll_desc dvb_pll_fmd1216me;
int dvb_pll_configure(struct dvb_pll_desc *desc, u8 *buf, int dvb_pll_configure(struct dvb_pll_desc *desc, u8 *buf,
u32 freq, int bandwidth); u32 freq, int bandwidth);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment