]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/media/video/cx88/cx88-cards.c
V4L/DVB (9222): S2API: Add Multiple-frontend on a single adapter support.
[karo-tx-linux.git] / drivers / media / video / cx88 / cx88-cards.c
index 5da04e811ca20b3941b086e73566c91d081d27e6..638d9ec38d7f9d4defbc717d8c805f85d6d58a74 100644 (file)
@@ -1291,6 +1291,7 @@ static const struct cx88_board cx88_boards[] = {
                        .gpio0  = 0x84bf,
                }},
                .mpeg           = CX88_MPEG_DVB,
+               .num_frontends  = 2,
        },
        [CX88_BOARD_NORWOOD_MICRO] = {
                .name           = "Norwood Micro TV Tuner",
@@ -1761,6 +1762,7 @@ static const struct cx88_board cx88_boards[] = {
                } },
                /* fixme: Add radio support */
                .mpeg           = CX88_MPEG_DVB,
+               .num_frontends  = 2,
        },
        [CX88_BOARD_HAUPPAUGE_HVR4000LITE] = {
                .name           = "Hauppauge WinTV-HVR4000(Lite) DVB-S/S2",
@@ -3002,12 +3004,17 @@ struct cx88_core *cx88_core_create(struct pci_dev *pci, int nr)
                cx88_card_list(core, pci);
        }
 
+       memset(&core->board, 0, sizeof(core->board));
        memcpy(&core->board, &cx88_boards[core->boardnr], sizeof(core->board));
 
-       info_printk(core, "subsystem: %04x:%04x, board: %s [card=%d,%s]\n",
+       if (!core->board.num_frontends)
+               core->board.num_frontends=1;
+
+       info_printk(core, "subsystem: %04x:%04x, board: %s [card=%d,%s], frontend(s): %d\n",
                pci->subsystem_vendor, pci->subsystem_device, core->board.name,
                core->boardnr, card[core->nr] == core->boardnr ?
-               "insmod option" : "autodetected");
+               "insmod option" : "autodetected",
+               core->board.num_frontends);
 
        if (tuner[core->nr] != UNSET)
                core->board.tuner_type = tuner[core->nr];