aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHIRANO Takahito <hiranotaka@zng.info>2009-09-18 10:17:54 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2009-09-18 23:51:34 -0400
commit98293ef3e54f9f2175f11b4d14c119a2ff753d61 (patch)
treeb28a29a90f74915e0b9daa376c91763b2cf9f6dc
parent0030ec38ce5b50a77287a22bf88a65338da21547 (diff)
V4L/DVB (12997): Add the DTV_ISDB_TS_ID property for ISDB_S
In ISDB-S, time-devision duplex is used to multiplexing several waves in the same frequency. Each wave is identified by its own transport stream ID, or TS ID. We need to provide some way to specify this ID from user applications to handle ISDB-S frontends. This code has been tested with the Earthsoft PT1 driver. [mchehab@infradead.org: Fix merge conflicts with isdbt and rename the new parameter to DTV_ISDBS_TS_ID] Signed-off-by: HIRANO Takahito <hiranotaka@zng.info> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r--drivers/media/dvb/dvb-core/dvb_frontend.c8
-rw-r--r--drivers/media/dvb/dvb-core/dvb_frontend.h3
-rw-r--r--include/linux/dvb/frontend.h4
3 files changed, 14 insertions, 1 deletions
diff --git a/drivers/media/dvb/dvb-core/dvb_frontend.c b/drivers/media/dvb/dvb-core/dvb_frontend.c
index 3c9482660eac..ddf639ed2fd8 100644
--- a/drivers/media/dvb/dvb-core/dvb_frontend.c
+++ b/drivers/media/dvb/dvb-core/dvb_frontend.c
@@ -1031,6 +1031,8 @@ static struct dtv_cmds_h dtv_cmds[] = {
1031 _DTV_CMD(DTV_ISDBT_LAYERC_SEGMENT_COUNT, 0, 0), 1031 _DTV_CMD(DTV_ISDBT_LAYERC_SEGMENT_COUNT, 0, 0),
1032 _DTV_CMD(DTV_ISDBT_LAYERC_TIME_INTERLEAVING, 0, 0), 1032 _DTV_CMD(DTV_ISDBT_LAYERC_TIME_INTERLEAVING, 0, 0),
1033 1033
1034 _DTV_CMD(DTV_ISDBS_TS_ID, 1, 0),
1035
1034 /* Get */ 1036 /* Get */
1035 [DTV_DISEQC_SLAVE_REPLY] = { 1037 [DTV_DISEQC_SLAVE_REPLY] = {
1036 .name = "DTV_DISEQC_SLAVE_REPLY", 1038 .name = "DTV_DISEQC_SLAVE_REPLY",
@@ -1420,6 +1422,9 @@ static int dtv_property_process_get(struct dvb_frontend *fe,
1420 case DTV_ISDBT_LAYERC_TIME_INTERLEAVING: 1422 case DTV_ISDBT_LAYERC_TIME_INTERLEAVING:
1421 tvp->u.data = fe->dtv_property_cache.layer[2].interleaving; 1423 tvp->u.data = fe->dtv_property_cache.layer[2].interleaving;
1422 break; 1424 break;
1425 case DTV_ISDBS_TS_ID:
1426 tvp->u.data = fe->dtv_property_cache.isdbs_ts_id;
1427 break;
1423 default: 1428 default:
1424 r = -1; 1429 r = -1;
1425 } 1430 }
@@ -1571,6 +1576,9 @@ static int dtv_property_process_set(struct dvb_frontend *fe,
1571 case DTV_ISDBT_LAYERC_TIME_INTERLEAVING: 1576 case DTV_ISDBT_LAYERC_TIME_INTERLEAVING:
1572 fe->dtv_property_cache.layer[2].interleaving = tvp->u.data; 1577 fe->dtv_property_cache.layer[2].interleaving = tvp->u.data;
1573 break; 1578 break;
1579 case DTV_ISDBS_TS_ID:
1580 fe->dtv_property_cache.isdbs_ts_id = tvp->u.data;
1581 break;
1574 default: 1582 default:
1575 r = -1; 1583 r = -1;
1576 } 1584 }
diff --git a/drivers/media/dvb/dvb-core/dvb_frontend.h b/drivers/media/dvb/dvb-core/dvb_frontend.h
index 9e46f1772c54..810f07d63246 100644
--- a/drivers/media/dvb/dvb-core/dvb_frontend.h
+++ b/drivers/media/dvb/dvb-core/dvb_frontend.h
@@ -355,6 +355,9 @@ struct dtv_frontend_properties {
355 fe_modulation_t modulation; 355 fe_modulation_t modulation;
356 u8 interleaving; 356 u8 interleaving;
357 } layer[3]; 357 } layer[3];
358
359 /* ISDB-T specifics */
360 u32 isdbs_ts_id;
358}; 361};
359 362
360struct dvb_frontend { 363struct dvb_frontend {
diff --git a/include/linux/dvb/frontend.h b/include/linux/dvb/frontend.h
index 25b01c14727b..b6cb5425cde3 100644
--- a/include/linux/dvb/frontend.h
+++ b/include/linux/dvb/frontend.h
@@ -302,7 +302,9 @@ struct dvb_frontend_event {
302 302
303#define DTV_ISDBT_LAYER_ENABLED 41 303#define DTV_ISDBT_LAYER_ENABLED 41
304 304
305#define DTV_MAX_COMMAND DTV_ISDBT_LAYER_ENABLED 305#define DTV_ISDBS_TS_ID 42
306
307#define DTV_MAX_COMMAND DTV_ISDBS_TS_ID
306 308
307typedef enum fe_pilot { 309typedef enum fe_pilot {
308 PILOT_ON, 310 PILOT_ON,