summaryrefslogtreecommitdiff
path: root/drivers/media/test-drivers/vidtv
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab+huawei@kernel.org>2020-11-23 15:51:31 +0300
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>2020-11-26 10:05:23 +0300
commit91a8a240e2806c37eaf730347831f4a7de1535ac (patch)
treec40e835e6d39b477c755869d3f4a2edd4de08be3 /drivers/media/test-drivers/vidtv
parent1d2b2a6d8c599be2cbb1e984eeb970186694ef38 (diff)
downloadlinux-91a8a240e2806c37eaf730347831f4a7de1535ac.tar.xz
media: vidtv: properly fill EIT service_id
The EIT header ID field should not contain the network ID, but, instead, the service_id of the program described at EIT. Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Diffstat (limited to 'drivers/media/test-drivers/vidtv')
-rw-r--r--drivers/media/test-drivers/vidtv/vidtv_channel.c3
-rw-r--r--drivers/media/test-drivers/vidtv/vidtv_psi.c5
-rw-r--r--drivers/media/test-drivers/vidtv/vidtv_psi.h3
3 files changed, 7 insertions, 4 deletions
diff --git a/drivers/media/test-drivers/vidtv/vidtv_channel.c b/drivers/media/test-drivers/vidtv/vidtv_channel.c
index b49fb61847e1..77e33f33afee 100644
--- a/drivers/media/test-drivers/vidtv/vidtv_channel.c
+++ b/drivers/media/test-drivers/vidtv/vidtv_channel.c
@@ -450,7 +450,8 @@ int vidtv_channel_si_init(struct vidtv_mux *m)
goto free_service_list;
m->si.eit = vidtv_psi_eit_table_init(m->network_id,
- m->transport_stream_id);
+ m->transport_stream_id,
+ programs->service_id);
if (!m->si.eit)
goto free_nit;
diff --git a/drivers/media/test-drivers/vidtv/vidtv_psi.c b/drivers/media/test-drivers/vidtv/vidtv_psi.c
index 341af312ad56..02dd217bdbf6 100644
--- a/drivers/media/test-drivers/vidtv/vidtv_psi.c
+++ b/drivers/media/test-drivers/vidtv/vidtv_psi.c
@@ -1809,7 +1809,8 @@ void vidtv_psi_eit_event_assign(struct vidtv_psi_table_eit *eit,
struct vidtv_psi_table_eit
*vidtv_psi_eit_table_init(u16 network_id,
- u16 transport_stream_id)
+ u16 transport_stream_id,
+ __be16 service_id)
{
struct vidtv_psi_table_eit *eit;
const u16 SYNTAX = 0x1;
@@ -1824,7 +1825,7 @@ struct vidtv_psi_table_eit
eit->header.bitfield = cpu_to_be16((SYNTAX << 15) | (ONE << 14) | (ONES << 12));
- eit->header.id = cpu_to_be16(network_id);
+ eit->header.id = service_id;
eit->header.current_next = ONE;
eit->header.version = 0x1f;
diff --git a/drivers/media/test-drivers/vidtv/vidtv_psi.h b/drivers/media/test-drivers/vidtv/vidtv_psi.h
index 4fcb2c0615bb..d8645d75c3f1 100644
--- a/drivers/media/test-drivers/vidtv/vidtv_psi.h
+++ b/drivers/media/test-drivers/vidtv/vidtv_psi.h
@@ -738,7 +738,8 @@ struct vidtv_psi_table_eit {
struct vidtv_psi_table_eit
*vidtv_psi_eit_table_init(u16 network_id,
- u16 transport_stream_id);
+ u16 transport_stream_id,
+ u16 service_id);
/**
* struct vidtv_psi_eit_write_args - Arguments for writing an EIT section