Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[media] budget-ci: Add support for TT S-1500 with BSBE1-D01A tuner

Add support for TT S-1500 with BSBE1-D01A tuner.

Signed-off-by: Oliver Endriss <o.endriss@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>

authored by

Oliver Endriss and committed by
Mauro Carvalho Chehab
574312d8 53f1fe94

+169
+146
drivers/media/dvb/frontends/bsbe1-d01a.h
··· 1 + /* 2 + * bsbe1-d01a.h - ALPS BSBE1-D01A tuner support 3 + * 4 + * Copyright (C) 2011 Oliver Endriss <o.endriss@gmx.de> 5 + * 6 + * This program is free software; you can redistribute it and/or 7 + * modify it under the terms of the GNU General Public License 8 + * as published by the Free Software Foundation; either version 2 9 + * of the License, or (at your option) any later version. 10 + * 11 + * 12 + * This program is distributed in the hope that it will be useful, 13 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 + * GNU General Public License for more details. 16 + * 17 + * 18 + * You should have received a copy of the GNU General Public License 19 + * along with this program; if not, write to the Free Software 20 + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 21 + * Or, point your browser to http://www.gnu.org/copyleft/gpl.html 22 + * 23 + * 24 + * the project's page is at http://www.linuxtv.org 25 + */ 26 + 27 + #ifndef BSBE1_D01A_H 28 + #define BSBE1_D01A_H 29 + 30 + #include "stb6000.h" 31 + #include "stv0288.h" 32 + 33 + static u8 stv0288_bsbe1_d01a_inittab[] = { 34 + 0x01, 0x15, 35 + 0x02, 0x20, 36 + 0x09, 0x0, 37 + 0x0a, 0x4, 38 + 0x0b, 0x0, 39 + 0x0c, 0x0, 40 + 0x0d, 0x0, 41 + 0x0e, 0xd4, 42 + 0x0f, 0x30, 43 + 0x11, 0x80, 44 + 0x12, 0x03, 45 + 0x13, 0x48, 46 + 0x14, 0x84, 47 + 0x15, 0x45, 48 + 0x16, 0xb7, 49 + 0x17, 0x9c, 50 + 0x18, 0x0, 51 + 0x19, 0xa6, 52 + 0x1a, 0x88, 53 + 0x1b, 0x8f, 54 + 0x1c, 0xf0, 55 + 0x20, 0x0b, 56 + 0x21, 0x54, 57 + 0x22, 0x0, 58 + 0x23, 0x0, 59 + 0x2b, 0xff, 60 + 0x2c, 0xf7, 61 + 0x30, 0x0, 62 + 0x31, 0x1e, 63 + 0x32, 0x14, 64 + 0x33, 0x0f, 65 + 0x34, 0x09, 66 + 0x35, 0x0c, 67 + 0x36, 0x05, 68 + 0x37, 0x2f, 69 + 0x38, 0x16, 70 + 0x39, 0xbd, 71 + 0x3a, 0x03, 72 + 0x3b, 0x13, 73 + 0x3c, 0x11, 74 + 0x3d, 0x30, 75 + 0x40, 0x63, 76 + 0x41, 0x04, 77 + 0x42, 0x60, 78 + 0x43, 0x00, 79 + 0x44, 0x00, 80 + 0x45, 0x00, 81 + 0x46, 0x00, 82 + 0x47, 0x00, 83 + 0x4a, 0x00, 84 + 0x50, 0x10, 85 + 0x51, 0x36, 86 + 0x52, 0x09, 87 + 0x53, 0x94, 88 + 0x54, 0x62, 89 + 0x55, 0x29, 90 + 0x56, 0x64, 91 + 0x57, 0x2b, 92 + 0x58, 0x54, 93 + 0x59, 0x86, 94 + 0x5a, 0x0, 95 + 0x5b, 0x9b, 96 + 0x5c, 0x08, 97 + 0x5d, 0x7f, 98 + 0x5e, 0x0, 99 + 0x5f, 0xff, 100 + 0x70, 0x0, 101 + 0x71, 0x0, 102 + 0x72, 0x0, 103 + 0x74, 0x0, 104 + 0x75, 0x0, 105 + 0x76, 0x0, 106 + 0x81, 0x0, 107 + 0x82, 0x3f, 108 + 0x83, 0x3f, 109 + 0x84, 0x0, 110 + 0x85, 0x0, 111 + 0x88, 0x0, 112 + 0x89, 0x0, 113 + 0x8a, 0x0, 114 + 0x8b, 0x0, 115 + 0x8c, 0x0, 116 + 0x90, 0x0, 117 + 0x91, 0x0, 118 + 0x92, 0x0, 119 + 0x93, 0x0, 120 + 0x94, 0x1c, 121 + 0x97, 0x0, 122 + 0xa0, 0x48, 123 + 0xa1, 0x0, 124 + 0xb0, 0xb8, 125 + 0xb1, 0x3a, 126 + 0xb2, 0x10, 127 + 0xb3, 0x82, 128 + 0xb4, 0x80, 129 + 0xb5, 0x82, 130 + 0xb6, 0x82, 131 + 0xb7, 0x82, 132 + 0xb8, 0x20, 133 + 0xb9, 0x0, 134 + 0xf0, 0x0, 135 + 0xf1, 0x0, 136 + 0xf2, 0xc0, 137 + 0xff, 0xff, 138 + }; 139 + 140 + static struct stv0288_config stv0288_bsbe1_d01a_config = { 141 + .demod_address = 0x68, 142 + .min_delay_ms = 100, 143 + .inittab = stv0288_bsbe1_d01a_inittab, 144 + }; 145 + 146 + #endif
+2
drivers/media/dvb/ttpci/Kconfig
··· 95 95 select DVB_STB0899 if !DVB_FE_CUSTOMISE 96 96 select DVB_STB6100 if !DVB_FE_CUSTOMISE 97 97 select DVB_LNBP21 if !DVB_FE_CUSTOMISE 98 + select DVB_STV0288 if !DVB_FE_CUSTOMISE 99 + select DVB_STB6000 if !DVB_FE_CUSTOMISE 98 100 select DVB_TDA10023 if !DVB_FE_CUSTOMISE 99 101 select MEDIA_TUNER_TDA827X if !MEDIA_TUNER_CUSTOMISE 100 102 depends on RC_CORE
+21
drivers/media/dvb/ttpci/budget-ci.c
··· 52 52 #include "bsru6.h" 53 53 #include "tda1002x.h" 54 54 #include "tda827x.h" 55 + #include "bsbe1-d01a.h" 55 56 56 57 #define MODULE_NAME "budget_ci" 57 58 ··· 225 224 case 0x1017: 226 225 case 0x1019: 227 226 case 0x101a: 227 + case 0x101b: 228 228 /* for the Technotrend 1500 bundled remote */ 229 229 dev->map_name = RC_MAP_TT_1500; 230 230 break; ··· 1390 1388 } 1391 1389 break; 1392 1390 1391 + case 0x101b: /* TT S-1500B (BSBE1-D01A - STV0288/STB6000/LNBP21) */ 1392 + budget_ci->budget.dvb_frontend = dvb_attach(stv0288_attach, &stv0288_bsbe1_d01a_config, &budget_ci->budget.i2c_adap); 1393 + if (budget_ci->budget.dvb_frontend) { 1394 + if (dvb_attach(stb6000_attach, budget_ci->budget.dvb_frontend, 0x63, &budget_ci->budget.i2c_adap)) { 1395 + if (!dvb_attach(lnbp21_attach, budget_ci->budget.dvb_frontend, &budget_ci->budget.i2c_adap, 0, 0)) { 1396 + printk(KERN_ERR "%s: No LNBP21 found!\n", __func__); 1397 + dvb_frontend_detach(budget_ci->budget.dvb_frontend); 1398 + budget_ci->budget.dvb_frontend = NULL; 1399 + } 1400 + } else { 1401 + printk(KERN_ERR "%s: No STB6000 found!\n", __func__); 1402 + dvb_frontend_detach(budget_ci->budget.dvb_frontend); 1403 + budget_ci->budget.dvb_frontend = NULL; 1404 + } 1405 + } 1406 + break; 1407 + 1393 1408 case 0x1019: // TT S2-3200 PCI 1394 1409 /* 1395 1410 * NOTE! on some STB0899 versions, the internal PLL takes a longer time ··· 1537 1518 MAKE_BUDGET_INFO(ttbcci, "TT-Budget-C-CI PCI", BUDGET_TT); 1538 1519 MAKE_BUDGET_INFO(ttc1501, "TT-Budget C-1501 PCI", BUDGET_TT); 1539 1520 MAKE_BUDGET_INFO(tt3200, "TT-Budget S2-3200 PCI", BUDGET_TT); 1521 + MAKE_BUDGET_INFO(ttbs1500b, "TT-Budget S-1500B PCI", BUDGET_TT); 1540 1522 1541 1523 static struct pci_device_id pci_tbl[] = { 1542 1524 MAKE_EXTENSION_PCI(ttbci, 0x13c2, 0x100c), ··· 1548 1528 MAKE_EXTENSION_PCI(ttbs2, 0x13c2, 0x1017), 1549 1529 MAKE_EXTENSION_PCI(ttc1501, 0x13c2, 0x101a), 1550 1530 MAKE_EXTENSION_PCI(tt3200, 0x13c2, 0x1019), 1531 + MAKE_EXTENSION_PCI(ttbs1500b, 0x13c2, 0x101b), 1551 1532 { 1552 1533 .vendor = 0, 1553 1534 }