Commit 3a5ba52a authored by Steven Toth's avatar Steven Toth Committed by Mauro Carvalho Chehab

V4L/DVB (4667): Changed cx88_board .dvb and .register to an enum.

Some basic cleanup in preperation for a future patch where
the cx88-mpeg functions have to deal with the port being
used by multiple frontends in (mpeg2 hw encoder and dvb demod).
Signed-off-by: default avatarSteven Toth <stoth@hauppauge.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@infradead.org>
parent 3057906d
...@@ -1086,7 +1086,7 @@ static int __devinit blackbird_probe(struct pci_dev *pci_dev, ...@@ -1086,7 +1086,7 @@ static int __devinit blackbird_probe(struct pci_dev *pci_dev,
return -EINVAL; return -EINVAL;
err = -ENODEV; err = -ENODEV;
if (!cx88_boards[core->board].blackbird) if (!(cx88_boards[core->board].mpeg & CX88_BOARD_BLACKBIRD))
goto fail_core; goto fail_core;
err = -ENOMEM; err = -ENOMEM;
......
...@@ -294,7 +294,7 @@ struct cx88_board cx88_boards[] = { ...@@ -294,7 +294,7 @@ struct cx88_board cx88_boards[] = {
.type = CX88_RADIO, .type = CX88_RADIO,
.gpio0 = 0x0000bd62, .gpio0 = 0x0000bd62,
}, },
.blackbird = 1, .mpeg = CX88_BOARD_BLACKBIRD,
}, },
[CX88_BOARD_IODATA_GVVCP3PCI] = { [CX88_BOARD_IODATA_GVVCP3PCI] = {
.name = "IODATA GV-VCP3/PCI", .name = "IODATA GV-VCP3/PCI",
...@@ -358,7 +358,7 @@ struct cx88_board cx88_boards[] = { ...@@ -358,7 +358,7 @@ struct cx88_board cx88_boards[] = {
.type = CX88_RADIO, .type = CX88_RADIO,
.gpio0 = 0x0000fde2, .gpio0 = 0x0000fde2,
}, },
.blackbird = 1, .mpeg = CX88_BOARD_BLACKBIRD,
}, },
[CX88_BOARD_MSI_TVANYWHERE] = { [CX88_BOARD_MSI_TVANYWHERE] = {
.name = "MSI TV-@nywhere", .name = "MSI TV-@nywhere",
...@@ -401,7 +401,7 @@ struct cx88_board cx88_boards[] = { ...@@ -401,7 +401,7 @@ struct cx88_board cx88_boards[] = {
.gpio0 = 0x0700, .gpio0 = 0x0700,
.gpio2 = 0x0101, .gpio2 = 0x0101,
}}, }},
.dvb = 1, .mpeg = CX88_BOARD_DVB,
}, },
[CX88_BOARD_DVICO_FUSIONHDTV_DVB_T1] = { [CX88_BOARD_DVICO_FUSIONHDTV_DVB_T1] = {
.name = "DViCO FusionHDTV DVB-T1", .name = "DViCO FusionHDTV DVB-T1",
...@@ -418,7 +418,7 @@ struct cx88_board cx88_boards[] = { ...@@ -418,7 +418,7 @@ struct cx88_board cx88_boards[] = {
.vmux = 2, .vmux = 2,
.gpio0 = 0x000027df, .gpio0 = 0x000027df,
}}, }},
.dvb = 1, .mpeg = CX88_BOARD_DVB,
}, },
[CX88_BOARD_KWORLD_LTV883] = { [CX88_BOARD_KWORLD_LTV883] = {
.name = "KWorld LTV883RF", .name = "KWorld LTV883RF",
...@@ -488,7 +488,7 @@ struct cx88_board cx88_boards[] = { ...@@ -488,7 +488,7 @@ struct cx88_board cx88_boards[] = {
.vmux = 2, .vmux = 2,
.gpio0 = 0x0f00, .gpio0 = 0x0f00,
}}, }},
.dvb = 1, .mpeg = CX88_BOARD_DVB,
}, },
[CX88_BOARD_HAUPPAUGE_DVB_T1] = { [CX88_BOARD_HAUPPAUGE_DVB_T1] = {
.name = "Hauppauge Nova-T DVB-T", .name = "Hauppauge Nova-T DVB-T",
...@@ -500,7 +500,7 @@ struct cx88_board cx88_boards[] = { ...@@ -500,7 +500,7 @@ struct cx88_board cx88_boards[] = {
.type = CX88_VMUX_DVB, .type = CX88_VMUX_DVB,
.vmux = 0, .vmux = 0,
}}, }},
.dvb = 1, .mpeg = CX88_BOARD_DVB,
}, },
[CX88_BOARD_CONEXANT_DVB_T1] = { [CX88_BOARD_CONEXANT_DVB_T1] = {
.name = "Conexant DVB-T reference design", .name = "Conexant DVB-T reference design",
...@@ -512,7 +512,7 @@ struct cx88_board cx88_boards[] = { ...@@ -512,7 +512,7 @@ struct cx88_board cx88_boards[] = {
.type = CX88_VMUX_DVB, .type = CX88_VMUX_DVB,
.vmux = 0, .vmux = 0,
}}, }},
.dvb = 1, .mpeg = CX88_BOARD_DVB,
}, },
[CX88_BOARD_PROVIDEO_PV259] = { [CX88_BOARD_PROVIDEO_PV259] = {
.name = "Provideo PV259", .name = "Provideo PV259",
...@@ -524,7 +524,7 @@ struct cx88_board cx88_boards[] = { ...@@ -524,7 +524,7 @@ struct cx88_board cx88_boards[] = {
.type = CX88_VMUX_TELEVISION, .type = CX88_VMUX_TELEVISION,
.vmux = 0, .vmux = 0,
}}, }},
.blackbird = 1, .mpeg = CX88_BOARD_BLACKBIRD,
}, },
[CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_PLUS] = { [CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_PLUS] = {
.name = "DViCO FusionHDTV DVB-T Plus", .name = "DViCO FusionHDTV DVB-T Plus",
...@@ -541,7 +541,7 @@ struct cx88_board cx88_boards[] = { ...@@ -541,7 +541,7 @@ struct cx88_board cx88_boards[] = {
.vmux = 2, .vmux = 2,
.gpio0 = 0x000027df, .gpio0 = 0x000027df,
}}, }},
.dvb = 1, .mpeg = CX88_BOARD_DVB,
}, },
[CX88_BOARD_DNTV_LIVE_DVB_T] = { [CX88_BOARD_DNTV_LIVE_DVB_T] = {
.name = "digitalnow DNTV Live! DVB-T", .name = "digitalnow DNTV Live! DVB-T",
...@@ -560,7 +560,7 @@ struct cx88_board cx88_boards[] = { ...@@ -560,7 +560,7 @@ struct cx88_board cx88_boards[] = {
.gpio0 = 0x00000700, .gpio0 = 0x00000700,
.gpio2 = 0x00000101, .gpio2 = 0x00000101,
}}, }},
.dvb = 1, .mpeg = CX88_BOARD_DVB,
}, },
[CX88_BOARD_PCHDTV_HD3000] = { [CX88_BOARD_PCHDTV_HD3000] = {
.name = "pcHDTV HD3000 HDTV", .name = "pcHDTV HD3000 HDTV",
...@@ -599,7 +599,7 @@ struct cx88_board cx88_boards[] = { ...@@ -599,7 +599,7 @@ struct cx88_board cx88_boards[] = {
.gpio2 = 0x00000000, .gpio2 = 0x00000000,
.gpio3 = 0x00000000, .gpio3 = 0x00000000,
}, },
.dvb = 1, .mpeg = CX88_BOARD_DVB,
}, },
[CX88_BOARD_HAUPPAUGE_ROSLYN] = { [CX88_BOARD_HAUPPAUGE_ROSLYN] = {
// entry added by Kaustubh D. Bhalerao <bhalerao.1@osu.edu> // entry added by Kaustubh D. Bhalerao <bhalerao.1@osu.edu>
...@@ -633,7 +633,7 @@ struct cx88_board cx88_boards[] = { ...@@ -633,7 +633,7 @@ struct cx88_board cx88_boards[] = {
.gpio0 = 0xed96, .gpio0 = 0xed96,
.gpio2 = 0x00ff, .gpio2 = 0x00ff,
}, },
.blackbird = 1, .mpeg = CX88_BOARD_BLACKBIRD,
}, },
[CX88_BOARD_DIGITALLOGIC_MEC] = { [CX88_BOARD_DIGITALLOGIC_MEC] = {
.name = "Digital-Logic MICROSPACE Entertainment Center (MEC)", .name = "Digital-Logic MICROSPACE Entertainment Center (MEC)",
...@@ -659,7 +659,7 @@ struct cx88_board cx88_boards[] = { ...@@ -659,7 +659,7 @@ struct cx88_board cx88_boards[] = {
.type = CX88_RADIO, .type = CX88_RADIO,
.gpio0 = 0x00009d00, .gpio0 = 0x00009d00,
}, },
.blackbird = 1, .mpeg = CX88_BOARD_BLACKBIRD,
}, },
[CX88_BOARD_IODATA_GVBCTV7E] = { [CX88_BOARD_IODATA_GVBCTV7E] = {
.name = "IODATA GV/BCTV7E", .name = "IODATA GV/BCTV7E",
...@@ -727,7 +727,7 @@ struct cx88_board cx88_boards[] = { ...@@ -727,7 +727,7 @@ struct cx88_board cx88_boards[] = {
.vmux = 2, .vmux = 2,
.gpio0 = 0x97e9, .gpio0 = 0x97e9,
}}, }},
.dvb = 1, .mpeg = CX88_BOARD_DVB,
}, },
[CX88_BOARD_ADSTECH_DVB_T_PCI] = { [CX88_BOARD_ADSTECH_DVB_T_PCI] = {
.name = "ADS Tech Instant TV DVB-T PCI", .name = "ADS Tech Instant TV DVB-T PCI",
...@@ -746,7 +746,7 @@ struct cx88_board cx88_boards[] = { ...@@ -746,7 +746,7 @@ struct cx88_board cx88_boards[] = {
.gpio0 = 0x0700, .gpio0 = 0x0700,
.gpio2 = 0x0101, .gpio2 = 0x0101,
}}, }},
.dvb = 1, .mpeg = CX88_BOARD_DVB,
}, },
[CX88_BOARD_TERRATEC_CINERGY_1400_DVB_T1] = { [CX88_BOARD_TERRATEC_CINERGY_1400_DVB_T1] = {
.name = "TerraTec Cinergy 1400 DVB-T", .name = "TerraTec Cinergy 1400 DVB-T",
...@@ -755,7 +755,7 @@ struct cx88_board cx88_boards[] = { ...@@ -755,7 +755,7 @@ struct cx88_board cx88_boards[] = {
.type = CX88_VMUX_DVB, .type = CX88_VMUX_DVB,
.vmux = 0, .vmux = 0,
}}, }},
.dvb = 1, .mpeg = CX88_BOARD_DVB,
}, },
[CX88_BOARD_DVICO_FUSIONHDTV_5_GOLD] = { [CX88_BOARD_DVICO_FUSIONHDTV_5_GOLD] = {
.name = "DViCO FusionHDTV 5 Gold", .name = "DViCO FusionHDTV 5 Gold",
...@@ -777,7 +777,7 @@ struct cx88_board cx88_boards[] = { ...@@ -777,7 +777,7 @@ struct cx88_board cx88_boards[] = {
.vmux = 2, .vmux = 2,
.gpio0 = 0x87f9, .gpio0 = 0x87f9,
}}, }},
.dvb = 1, .mpeg = CX88_BOARD_DVB,
}, },
[CX88_BOARD_AVERMEDIA_ULTRATV_MC_550] = { [CX88_BOARD_AVERMEDIA_ULTRATV_MC_550] = {
.name = "AverMedia UltraTV Media Center PCI 550", .name = "AverMedia UltraTV Media Center PCI 550",
...@@ -786,7 +786,7 @@ struct cx88_board cx88_boards[] = { ...@@ -786,7 +786,7 @@ struct cx88_board cx88_boards[] = {
.tuner_addr = ADDR_UNSET, .tuner_addr = ADDR_UNSET,
.radio_addr = ADDR_UNSET, .radio_addr = ADDR_UNSET,
.tda9887_conf = TDA9887_PRESENT, .tda9887_conf = TDA9887_PRESENT,
.blackbird = 1, .mpeg = CX88_BOARD_BLACKBIRD,
.input = {{ .input = {{
.type = CX88_VMUX_COMPOSITE1, .type = CX88_VMUX_COMPOSITE1,
.vmux = 0, .vmux = 0,
...@@ -854,7 +854,7 @@ struct cx88_board cx88_boards[] = { ...@@ -854,7 +854,7 @@ struct cx88_board cx88_boards[] = {
.gpio2 = 0x00000001, .gpio2 = 0x00000001,
.gpio3 = 0x00000000, .gpio3 = 0x00000000,
}}, }},
.dvb = 1, .mpeg = CX88_BOARD_DVB,
}, },
[CX88_BOARD_WINFAST_DTV1000] = { [CX88_BOARD_WINFAST_DTV1000] = {
.name = "WinFast DTV1000-T", .name = "WinFast DTV1000-T",
...@@ -866,7 +866,7 @@ struct cx88_board cx88_boards[] = { ...@@ -866,7 +866,7 @@ struct cx88_board cx88_boards[] = {
.type = CX88_VMUX_DVB, .type = CX88_VMUX_DVB,
.vmux = 0, .vmux = 0,
}}, }},
.dvb = 1, .mpeg = CX88_BOARD_DVB,
}, },
[CX88_BOARD_AVERTV_303] = { [CX88_BOARD_AVERTV_303] = {
.name = "AVerTV 303 (M126)", .name = "AVerTV 303 (M126)",
...@@ -914,7 +914,7 @@ struct cx88_board cx88_boards[] = { ...@@ -914,7 +914,7 @@ struct cx88_board cx88_boards[] = {
.type = CX88_VMUX_SVIDEO, .type = CX88_VMUX_SVIDEO,
.vmux = 2, .vmux = 2,
}}, }},
.dvb = 1, .mpeg = CX88_BOARD_DVB,
}, },
[CX88_BOARD_HAUPPAUGE_NOVASE2_S1] = { [CX88_BOARD_HAUPPAUGE_NOVASE2_S1] = {
.name = "Hauppauge Nova-SE2 DVB-S", .name = "Hauppauge Nova-SE2 DVB-S",
...@@ -926,7 +926,7 @@ struct cx88_board cx88_boards[] = { ...@@ -926,7 +926,7 @@ struct cx88_board cx88_boards[] = {
.type = CX88_VMUX_DVB, .type = CX88_VMUX_DVB,
.vmux = 0, .vmux = 0,
}}, }},
.dvb = 1, .mpeg = CX88_BOARD_DVB,
}, },
[CX88_BOARD_KWORLD_DVBS_100] = { [CX88_BOARD_KWORLD_DVBS_100] = {
.name = "KWorld DVB-S 100", .name = "KWorld DVB-S 100",
...@@ -944,7 +944,7 @@ struct cx88_board cx88_boards[] = { ...@@ -944,7 +944,7 @@ struct cx88_board cx88_boards[] = {
.type = CX88_VMUX_SVIDEO, .type = CX88_VMUX_SVIDEO,
.vmux = 2, .vmux = 2,
}}, }},
.dvb = 1, .mpeg = CX88_BOARD_DVB,
}, },
[CX88_BOARD_HAUPPAUGE_HVR1100] = { [CX88_BOARD_HAUPPAUGE_HVR1100] = {
.name = "Hauppauge WinTV-HVR1100 DVB-T/Hybrid", .name = "Hauppauge WinTV-HVR1100 DVB-T/Hybrid",
...@@ -964,7 +964,7 @@ struct cx88_board cx88_boards[] = { ...@@ -964,7 +964,7 @@ struct cx88_board cx88_boards[] = {
.vmux = 2, .vmux = 2,
}}, }},
/* fixme: Add radio support */ /* fixme: Add radio support */
.dvb = 1, .mpeg = CX88_BOARD_DVB,
}, },
[CX88_BOARD_HAUPPAUGE_HVR1100LP] = { [CX88_BOARD_HAUPPAUGE_HVR1100LP] = {
.name = "Hauppauge WinTV-HVR1100 DVB-T/Hybrid (Low Profile)", .name = "Hauppauge WinTV-HVR1100 DVB-T/Hybrid (Low Profile)",
...@@ -981,7 +981,7 @@ struct cx88_board cx88_boards[] = { ...@@ -981,7 +981,7 @@ struct cx88_board cx88_boards[] = {
.vmux = 1, .vmux = 1,
}}, }},
/* fixme: Add radio support */ /* fixme: Add radio support */
.dvb = 1, .mpeg = CX88_BOARD_DVB,
}, },
[CX88_BOARD_DNTV_LIVE_DVB_T_PRO] = { [CX88_BOARD_DNTV_LIVE_DVB_T_PRO] = {
.name = "digitalnow DNTV Live! DVB-T Pro", .name = "digitalnow DNTV Live! DVB-T Pro",
...@@ -1008,7 +1008,7 @@ struct cx88_board cx88_boards[] = { ...@@ -1008,7 +1008,7 @@ struct cx88_board cx88_boards[] = {
.type = CX88_RADIO, .type = CX88_RADIO,
.gpio0 = 0xf80808, .gpio0 = 0xf80808,
}, },
.dvb = 1, .mpeg = CX88_BOARD_DVB,
}, },
[CX88_BOARD_KWORLD_DVB_T_CX22702] = { [CX88_BOARD_KWORLD_DVB_T_CX22702] = {
/* Kworld V-stream Xpert DVB-T with Thomson tuner */ /* Kworld V-stream Xpert DVB-T with Thomson tuner */
...@@ -1030,7 +1030,7 @@ struct cx88_board cx88_boards[] = { ...@@ -1030,7 +1030,7 @@ struct cx88_board cx88_boards[] = {
.gpio0 = 0x0700, .gpio0 = 0x0700,
.gpio2 = 0x0101, .gpio2 = 0x0101,
}}, }},
.dvb = 1, .mpeg = CX88_BOARD_DVB,
}, },
[CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_DUAL] = { [CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_DUAL] = {
.name = "DViCO FusionHDTV DVB-T Dual Digital", .name = "DViCO FusionHDTV DVB-T Dual Digital",
...@@ -1047,7 +1047,7 @@ struct cx88_board cx88_boards[] = { ...@@ -1047,7 +1047,7 @@ struct cx88_board cx88_boards[] = {
.vmux = 2, .vmux = 2,
.gpio0 = 0x000067df, .gpio0 = 0x000067df,
}}, }},
.dvb = 1, .mpeg = CX88_BOARD_DVB,
}, },
[CX88_BOARD_KWORLD_HARDWARE_MPEG_TV_XPERT] = { [CX88_BOARD_KWORLD_HARDWARE_MPEG_TV_XPERT] = {
/* FIXME: Audio not working for s-video / composite inputs. */ /* FIXME: Audio not working for s-video / composite inputs. */
...@@ -1075,7 +1075,7 @@ struct cx88_board cx88_boards[] = { ...@@ -1075,7 +1075,7 @@ struct cx88_board cx88_boards[] = {
.gpio0 = 0x3de6, .gpio0 = 0x3de6,
.gpio2 = 0x00ff, .gpio2 = 0x00ff,
}, },
.blackbird = 1, .mpeg = CX88_BOARD_BLACKBIRD,
}, },
[CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_HYBRID] = { [CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_HYBRID] = {
.name = "DViCO FusionHDTV DVB-T Hybrid", .name = "DViCO FusionHDTV DVB-T Hybrid",
...@@ -1096,7 +1096,7 @@ struct cx88_board cx88_boards[] = { ...@@ -1096,7 +1096,7 @@ struct cx88_board cx88_boards[] = {
.vmux = 2, .vmux = 2,
.gpio0 = 0x0000a75b, .gpio0 = 0x0000a75b,
}}, }},
.dvb = 1, .mpeg = CX88_BOARD_DVB,
}, },
[CX88_BOARD_PCHDTV_HD5500] = { [CX88_BOARD_PCHDTV_HD5500] = {
.name = "pcHDTV HD5500 HDTV", .name = "pcHDTV HD5500 HDTV",
...@@ -1118,7 +1118,7 @@ struct cx88_board cx88_boards[] = { ...@@ -1118,7 +1118,7 @@ struct cx88_board cx88_boards[] = {
.vmux = 2, .vmux = 2,
.gpio0 = 0x87f9, .gpio0 = 0x87f9,
}}, }},
.dvb = 1, .mpeg = CX88_BOARD_DVB,
}, },
[CX88_BOARD_KWORLD_MCE200_DELUXE] = { [CX88_BOARD_KWORLD_MCE200_DELUXE] = {
/* FIXME: tested TV input only, disabled composite, /* FIXME: tested TV input only, disabled composite,
...@@ -1134,7 +1134,7 @@ struct cx88_board cx88_boards[] = { ...@@ -1134,7 +1134,7 @@ struct cx88_board cx88_boards[] = {
.vmux = 0, .vmux = 0,
.gpio0 = 0x0000BDE6 .gpio0 = 0x0000BDE6
}}, }},
.blackbird = 1, .mpeg = CX88_BOARD_BLACKBIRD,
}, },
[CX88_BOARD_PIXELVIEW_PLAYTV_P7000] = { [CX88_BOARD_PIXELVIEW_PLAYTV_P7000] = {
/* FIXME: SVideo, Composite and FM inputs are untested */ /* FIXME: SVideo, Composite and FM inputs are untested */
...@@ -1150,7 +1150,7 @@ struct cx88_board cx88_boards[] = { ...@@ -1150,7 +1150,7 @@ struct cx88_board cx88_boards[] = {
.vmux = 0, .vmux = 0,
.gpio0 = 0x5da6, .gpio0 = 0x5da6,
}}, }},
.blackbird = 1, .mpeg = CX88_BOARD_BLACKBIRD,
}, },
[CX88_BOARD_NPGTECH_REALTV_TOP10FM] = { [CX88_BOARD_NPGTECH_REALTV_TOP10FM] = {
.name = "NPG Tech Real TV FM Top 10", .name = "NPG Tech Real TV FM Top 10",
...@@ -1192,7 +1192,7 @@ struct cx88_board cx88_boards[] = { ...@@ -1192,7 +1192,7 @@ struct cx88_board cx88_boards[] = {
.gpio2 = 0x00017304, .gpio2 = 0x00017304,
.gpio3 = 0x02000000, .gpio3 = 0x02000000,
}}, }},
.dvb = 1, .mpeg = CX88_BOARD_DVB,
}, },
[CX88_BOARD_GENIATECH_DVBS] = { [CX88_BOARD_GENIATECH_DVBS] = {
.name = "Geniatech DVB-S", .name = "Geniatech DVB-S",
...@@ -1207,7 +1207,7 @@ struct cx88_board cx88_boards[] = { ...@@ -1207,7 +1207,7 @@ struct cx88_board cx88_boards[] = {
.type = CX88_VMUX_COMPOSITE1, .type = CX88_VMUX_COMPOSITE1,
.vmux = 1, .vmux = 1,
}}, }},
.dvb = 1, .mpeg = CX88_BOARD_DVB,
}, },
[CX88_BOARD_HAUPPAUGE_HVR3000] = { [CX88_BOARD_HAUPPAUGE_HVR3000] = {
/* FIXME: Add dvb & radio support */ /* FIXME: Add dvb & radio support */
...@@ -1302,7 +1302,7 @@ struct cx88_board cx88_boards[] = { ...@@ -1302,7 +1302,7 @@ struct cx88_board cx88_boards[] = {
.gpio0 = 0xe780, .gpio0 = 0xe780,
}}, }},
/* fixme: Add radio support */ /* fixme: Add radio support */
.dvb = 1, .mpeg = CX88_BOARD_DVB,
}, },
}; };
const unsigned int cx88_bcount = ARRAY_SIZE(cx88_boards); const unsigned int cx88_bcount = ARRAY_SIZE(cx88_boards);
......
...@@ -802,7 +802,7 @@ static int __devinit dvb_probe(struct pci_dev *pci_dev, ...@@ -802,7 +802,7 @@ static int __devinit dvb_probe(struct pci_dev *pci_dev,
return -EINVAL; return -EINVAL;
err = -ENODEV; err = -ENODEV;
if (!cx88_boards[core->board].dvb) if (!(cx88_boards[core->board].mpeg & CX88_BOARD_DVB))
goto fail_core; goto fail_core;
err = -ENOMEM; err = -ENOMEM;
......
...@@ -220,7 +220,7 @@ int cx88_i2c_init(struct cx88_core *core, struct pci_dev *pci) ...@@ -220,7 +220,7 @@ int cx88_i2c_init(struct cx88_core *core, struct pci_dev *pci)
if (core->tuner_type != TUNER_ABSENT) if (core->tuner_type != TUNER_ABSENT)
core->i2c_adap.class |= I2C_CLASS_TV_ANALOG; core->i2c_adap.class |= I2C_CLASS_TV_ANALOG;
if (cx88_boards[core->board].dvb) if (cx88_boards[core->board].mpeg & CX88_BOARD_DVB)
core->i2c_adap.class |= I2C_CLASS_TV_DIGITAL; core->i2c_adap.class |= I2C_CLASS_TV_DIGITAL;
core->i2c_adap.dev.parent = &pci->dev; core->i2c_adap.dev.parent = &pci->dev;
......
...@@ -65,8 +65,17 @@ static int cx8802_start_dma(struct cx8802_dev *dev, ...@@ -65,8 +65,17 @@ static int cx8802_start_dma(struct cx8802_dev *dev,
/* FIXME: this needs a review. /* FIXME: this needs a review.
* also: move to cx88-blackbird + cx88-dvb source files? */ * also: move to cx88-blackbird + cx88-dvb source files? */
if (cx88_boards[core->board].mpeg == (CX88_BOARD_DVB | CX88_BOARD_BLACKBIRD) ) {
/* Report a warning until the mini driver patch is applied,
* else the following conditions will set the dma registers incorrectly.
* This will be removed in the next major patch and changes to the conditions
* will be made.
*/
printk(KERN_INFO "%s() board->(CX88_BOARD_DVB | CX88_BOARD_BLACKBIRD) is invalid\n", __FUNCTION__);
return -EINVAL;
}
if (cx88_boards[core->board].dvb) { if (cx88_boards[core->board].mpeg & CX88_BOARD_DVB) {
/* negedge driven & software reset */ /* negedge driven & software reset */
cx_write(TS_GEN_CNTRL, 0x0040 | dev->ts_gen_cntrl); cx_write(TS_GEN_CNTRL, 0x0040 | dev->ts_gen_cntrl);
udelay(100); udelay(100);
...@@ -92,7 +101,7 @@ static int cx8802_start_dma(struct cx8802_dev *dev, ...@@ -92,7 +101,7 @@ static int cx8802_start_dma(struct cx8802_dev *dev,
udelay(100); udelay(100);
} }
if (cx88_boards[core->board].blackbird) { if (cx88_boards[core->board].mpeg & CX88_BOARD_BLACKBIRD) {
cx_write(MO_PINMUX_IO, 0x88); /* enable MPEG parallel IO */ cx_write(MO_PINMUX_IO, 0x88); /* enable MPEG parallel IO */
cx_write(TS_GEN_CNTRL, 0x46); /* punctured clock TS & posedge driven & software reset */ cx_write(TS_GEN_CNTRL, 0x46); /* punctured clock TS & posedge driven & software reset */
......
...@@ -142,7 +142,7 @@ static void set_audio_finish(struct cx88_core *core, u32 ctl) ...@@ -142,7 +142,7 @@ static void set_audio_finish(struct cx88_core *core, u32 ctl)
cx_write(AUD_RATE_THRES_DMD, 0x000000C0); cx_write(AUD_RATE_THRES_DMD, 0x000000C0);
cx88_start_audio_dma(core); cx88_start_audio_dma(core);
if (cx88_boards[core->board].blackbird) { if (cx88_boards[core->board].mpeg & CX88_BOARD_BLACKBIRD) {
/* sets sound input from external adc */ /* sets sound input from external adc */
switch (core->board) { switch (core->board) {
case CX88_BOARD_HAUPPAUGE_ROSLYN: case CX88_BOARD_HAUPPAUGE_ROSLYN:
...@@ -164,7 +164,7 @@ static void set_audio_finish(struct cx88_core *core, u32 ctl) ...@@ -164,7 +164,7 @@ static void set_audio_finish(struct cx88_core *core, u32 ctl)
cx_write(AUD_I2SCNTL, 0); cx_write(AUD_I2SCNTL, 0);
/* cx_write(AUD_APB_IN_RATE_ADJ, 0); */ /* cx_write(AUD_APB_IN_RATE_ADJ, 0); */
} }
if ((always_analog) || (!cx88_boards[core->board].blackbird)) { if ((always_analog) || (!(cx88_boards[core->board].mpeg & CX88_BOARD_BLACKBIRD))) {
ctl |= EN_DAC_ENABLE; ctl |= EN_DAC_ENABLE;
cx_write(AUD_CTL, ctl); cx_write(AUD_CTL, ctl);
} }
......
...@@ -74,6 +74,12 @@ enum cx88_deemph_type { ...@@ -74,6 +74,12 @@ enum cx88_deemph_type {
FM_DEEMPH_75 FM_DEEMPH_75
}; };
enum cx88_board_type {
CX88_BOARD_NONE = 0,
CX88_BOARD_DVB,
CX88_BOARD_BLACKBIRD
};
/* ----------------------------------------------------------- */ /* ----------------------------------------------------------- */
/* tv norms */ /* tv norms */
...@@ -231,8 +237,7 @@ struct cx88_board { ...@@ -231,8 +237,7 @@ struct cx88_board {
int tda9887_conf; int tda9887_conf;
struct cx88_input input[MAX_CX88_INPUT]; struct cx88_input input[MAX_CX88_INPUT];
struct cx88_input radio; struct cx88_input radio;
unsigned int blackbird:1; enum cx88_board_type mpeg;
unsigned int dvb:1;
enum audiochip audio_chip; enum audiochip audio_chip;
}; };
......
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