mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-21 19:19:57 +07:00
media: cx23885: Add support for Hauppauge PCIe Starburst2
Add new PCIe DVB-S/S2. A single port Hauppauge HVR-5525 cx23885 + a8293 + m88rs6000t Signed-off-by: Brad Love <brad@nextdimension.cc> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
This commit is contained in:
parent
94f115188e
commit
16fad67432
@ -781,6 +781,10 @@ struct cx23885_board cx23885_boards[] = {
|
|||||||
.portc = CX23885_MPEG_DVB,
|
.portc = CX23885_MPEG_DVB,
|
||||||
.force_bff = 1,
|
.force_bff = 1,
|
||||||
},
|
},
|
||||||
|
[CX23885_BOARD_HAUPPAUGE_STARBURST2] = {
|
||||||
|
.name = "Hauppauge WinTV-Starburst2",
|
||||||
|
.portb = CX23885_MPEG_DVB,
|
||||||
|
},
|
||||||
};
|
};
|
||||||
const unsigned int cx23885_bcount = ARRAY_SIZE(cx23885_boards);
|
const unsigned int cx23885_bcount = ARRAY_SIZE(cx23885_boards);
|
||||||
|
|
||||||
@ -1100,6 +1104,10 @@ struct cx23885_subid cx23885_subids[] = {
|
|||||||
.subvendor = 0x0070,
|
.subvendor = 0x0070,
|
||||||
.subdevice = 0x2a18,
|
.subdevice = 0x2a18,
|
||||||
.card = CX23885_BOARD_HAUPPAUGE_HVR1265_K4, /* Hauppauge WinTV HVR-1265 (Model 161xx1, Hybrid ATSC/QAM-B) */
|
.card = CX23885_BOARD_HAUPPAUGE_HVR1265_K4, /* Hauppauge WinTV HVR-1265 (Model 161xx1, Hybrid ATSC/QAM-B) */
|
||||||
|
}, {
|
||||||
|
.subvendor = 0x0070,
|
||||||
|
.subdevice = 0xf02a,
|
||||||
|
.card = CX23885_BOARD_HAUPPAUGE_STARBURST2,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
const unsigned int cx23885_idcount = ARRAY_SIZE(cx23885_subids);
|
const unsigned int cx23885_idcount = ARRAY_SIZE(cx23885_subids);
|
||||||
@ -1796,6 +1804,7 @@ void cx23885_gpio_setup(struct cx23885_dev *dev)
|
|||||||
case CX23885_BOARD_HAUPPAUGE_HVR5525:
|
case CX23885_BOARD_HAUPPAUGE_HVR5525:
|
||||||
case CX23885_BOARD_HAUPPAUGE_QUADHD_DVB:
|
case CX23885_BOARD_HAUPPAUGE_QUADHD_DVB:
|
||||||
case CX23885_BOARD_HAUPPAUGE_QUADHD_ATSC:
|
case CX23885_BOARD_HAUPPAUGE_QUADHD_ATSC:
|
||||||
|
case CX23885_BOARD_HAUPPAUGE_STARBURST2:
|
||||||
/*
|
/*
|
||||||
* HVR5525 GPIO Details:
|
* HVR5525 GPIO Details:
|
||||||
* GPIO-00 IR_WIDE
|
* GPIO-00 IR_WIDE
|
||||||
@ -2083,6 +2092,7 @@ void cx23885_card_setup(struct cx23885_dev *dev)
|
|||||||
case CX23885_BOARD_HAUPPAUGE_IMPACTVCBE:
|
case CX23885_BOARD_HAUPPAUGE_IMPACTVCBE:
|
||||||
case CX23885_BOARD_HAUPPAUGE_HVR5525:
|
case CX23885_BOARD_HAUPPAUGE_HVR5525:
|
||||||
case CX23885_BOARD_HAUPPAUGE_HVR1265_K4:
|
case CX23885_BOARD_HAUPPAUGE_HVR1265_K4:
|
||||||
|
case CX23885_BOARD_HAUPPAUGE_STARBURST2:
|
||||||
case CX23885_BOARD_HAUPPAUGE_QUADHD_DVB:
|
case CX23885_BOARD_HAUPPAUGE_QUADHD_DVB:
|
||||||
case CX23885_BOARD_HAUPPAUGE_QUADHD_ATSC:
|
case CX23885_BOARD_HAUPPAUGE_QUADHD_ATSC:
|
||||||
if (dev->i2c_bus[0].i2c_rc == 0)
|
if (dev->i2c_bus[0].i2c_rc == 0)
|
||||||
@ -2223,6 +2233,7 @@ void cx23885_card_setup(struct cx23885_dev *dev)
|
|||||||
ts2->src_sel_val = CX23885_SRC_SEL_PARALLEL_MPEG_VIDEO;
|
ts2->src_sel_val = CX23885_SRC_SEL_PARALLEL_MPEG_VIDEO;
|
||||||
break;
|
break;
|
||||||
case CX23885_BOARD_HAUPPAUGE_HVR5525:
|
case CX23885_BOARD_HAUPPAUGE_HVR5525:
|
||||||
|
case CX23885_BOARD_HAUPPAUGE_STARBURST2:
|
||||||
ts1->gen_ctrl_val = 0x5; /* Parallel */
|
ts1->gen_ctrl_val = 0x5; /* Parallel */
|
||||||
ts1->ts_clk_en_val = 0x1; /* Enable TS_CLK */
|
ts1->ts_clk_en_val = 0x1; /* Enable TS_CLK */
|
||||||
ts1->src_sel_val = CX23885_SRC_SEL_PARALLEL_MPEG_VIDEO;
|
ts1->src_sel_val = CX23885_SRC_SEL_PARALLEL_MPEG_VIDEO;
|
||||||
|
@ -1206,6 +1206,8 @@ static int dvb_register(struct cx23885_tsport *port)
|
|||||||
struct si2157_config si2157_config;
|
struct si2157_config si2157_config;
|
||||||
struct ts2020_config ts2020_config;
|
struct ts2020_config ts2020_config;
|
||||||
struct m88ds3103_platform_data m88ds3103_pdata;
|
struct m88ds3103_platform_data m88ds3103_pdata;
|
||||||
|
struct m88rs6000t_config m88rs6000t_config = {};
|
||||||
|
struct a8293_platform_data a8293_pdata = {};
|
||||||
struct i2c_board_info info;
|
struct i2c_board_info info;
|
||||||
struct i2c_adapter *adapter;
|
struct i2c_adapter *adapter;
|
||||||
struct i2c_client *client_demod = NULL, *client_tuner = NULL;
|
struct i2c_client *client_demod = NULL, *client_tuner = NULL;
|
||||||
@ -2229,9 +2231,10 @@ static int dvb_register(struct cx23885_tsport *port)
|
|||||||
}
|
}
|
||||||
port->i2c_client_tuner = client_tuner;
|
port->i2c_client_tuner = client_tuner;
|
||||||
break;
|
break;
|
||||||
case CX23885_BOARD_HAUPPAUGE_HVR5525: {
|
case CX23885_BOARD_HAUPPAUGE_STARBURST2:
|
||||||
struct m88rs6000t_config m88rs6000t_config;
|
case CX23885_BOARD_HAUPPAUGE_HVR5525:
|
||||||
struct a8293_platform_data a8293_pdata = {};
|
i2c_bus = &dev->i2c_bus[0];
|
||||||
|
i2c_bus2 = &dev->i2c_bus[1];
|
||||||
|
|
||||||
switch (port->nr) {
|
switch (port->nr) {
|
||||||
|
|
||||||
@ -2240,7 +2243,7 @@ static int dvb_register(struct cx23885_tsport *port)
|
|||||||
/* attach frontend */
|
/* attach frontend */
|
||||||
fe0->dvb.frontend = dvb_attach(m88ds3103_attach,
|
fe0->dvb.frontend = dvb_attach(m88ds3103_attach,
|
||||||
&hauppauge_hvr5525_m88ds3103_config,
|
&hauppauge_hvr5525_m88ds3103_config,
|
||||||
&dev->i2c_bus[0].i2c_adap, &adapter);
|
&i2c_bus->i2c_adap, &adapter);
|
||||||
if (fe0->dvb.frontend == NULL)
|
if (fe0->dvb.frontend == NULL)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -2251,7 +2254,7 @@ static int dvb_register(struct cx23885_tsport *port)
|
|||||||
info.addr = 0x0b;
|
info.addr = 0x0b;
|
||||||
info.platform_data = &a8293_pdata;
|
info.platform_data = &a8293_pdata;
|
||||||
request_module("a8293");
|
request_module("a8293");
|
||||||
client_sec = i2c_new_device(&dev->i2c_bus[0].i2c_adap, &info);
|
client_sec = i2c_new_device(&i2c_bus->i2c_adap, &info);
|
||||||
if (!client_sec || !client_sec->dev.driver)
|
if (!client_sec || !client_sec->dev.driver)
|
||||||
goto frontend_detach;
|
goto frontend_detach;
|
||||||
if (!try_module_get(client_sec->dev.driver->owner)) {
|
if (!try_module_get(client_sec->dev.driver->owner)) {
|
||||||
@ -2293,7 +2296,7 @@ static int dvb_register(struct cx23885_tsport *port)
|
|||||||
info.addr = 0x64;
|
info.addr = 0x64;
|
||||||
info.platform_data = &si2168_config;
|
info.platform_data = &si2168_config;
|
||||||
request_module("%s", info.type);
|
request_module("%s", info.type);
|
||||||
client_demod = i2c_new_device(&dev->i2c_bus[0].i2c_adap, &info);
|
client_demod = i2c_new_device(&i2c_bus->i2c_adap, &info);
|
||||||
if (!client_demod || !client_demod->dev.driver)
|
if (!client_demod || !client_demod->dev.driver)
|
||||||
goto frontend_detach;
|
goto frontend_detach;
|
||||||
if (!try_module_get(client_demod->dev.driver->owner)) {
|
if (!try_module_get(client_demod->dev.driver->owner)) {
|
||||||
@ -2311,7 +2314,7 @@ static int dvb_register(struct cx23885_tsport *port)
|
|||||||
info.addr = 0x60;
|
info.addr = 0x60;
|
||||||
info.platform_data = &si2157_config;
|
info.platform_data = &si2157_config;
|
||||||
request_module("%s", info.type);
|
request_module("%s", info.type);
|
||||||
client_tuner = i2c_new_device(&dev->i2c_bus[1].i2c_adap, &info);
|
client_tuner = i2c_new_device(&i2c_bus2->i2c_adap, &info);
|
||||||
if (!client_tuner || !client_tuner->dev.driver) {
|
if (!client_tuner || !client_tuner->dev.driver) {
|
||||||
module_put(client_demod->dev.driver->owner);
|
module_put(client_demod->dev.driver->owner);
|
||||||
i2c_unregister_device(client_demod);
|
i2c_unregister_device(client_demod);
|
||||||
@ -2329,7 +2332,6 @@ static int dvb_register(struct cx23885_tsport *port)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
case CX23885_BOARD_HAUPPAUGE_QUADHD_DVB:
|
case CX23885_BOARD_HAUPPAUGE_QUADHD_DVB:
|
||||||
switch (port->nr) {
|
switch (port->nr) {
|
||||||
/* port b - Terrestrial/cable */
|
/* port b - Terrestrial/cable */
|
||||||
|
@ -108,6 +108,7 @@
|
|||||||
#define CX23885_BOARD_HAUPPAUGE_QUADHD_DVB 56
|
#define CX23885_BOARD_HAUPPAUGE_QUADHD_DVB 56
|
||||||
#define CX23885_BOARD_HAUPPAUGE_QUADHD_ATSC 57
|
#define CX23885_BOARD_HAUPPAUGE_QUADHD_ATSC 57
|
||||||
#define CX23885_BOARD_HAUPPAUGE_HVR1265_K4 58
|
#define CX23885_BOARD_HAUPPAUGE_HVR1265_K4 58
|
||||||
|
#define CX23885_BOARD_HAUPPAUGE_STARBURST2 59
|
||||||
|
|
||||||
#define GPIO_0 0x00000001
|
#define GPIO_0 0x00000001
|
||||||
#define GPIO_1 0x00000002
|
#define GPIO_1 0x00000002
|
||||||
|
Loading…
Reference in New Issue
Block a user