From b9f400c99be1dc022e5686a2b3330e51096c4ca9 Mon Sep 17 00:00:00 2001 From: tomiy Date: Wed, 24 Jun 2026 14:28:56 +0900 Subject: [PATCH] ddbridge: m4: fix ISDB-S TSID handling For ISDB-S, Linux DVB API uses DTV_STREAM_ID to pass the Transport Stream ID. However, Max M4 currently sets isdbs_search.flags bit 0 to 1 for normal 16-bit stream IDs, causing the MCI firmware to interpret the value as a relative stream number instead of a Transport Stream ID. As a result, tuning may select a different transport stream than the requested TSID. Set flags bit 0 to 0 and pass the lower 16 bits of DTV_STREAM_ID as the MCI TSID. --- ddbridge/ddbridge-m4.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ddbridge/ddbridge-m4.c b/ddbridge/ddbridge-m4.c index c9dcd6a..87ba3ae 100644 --- a/ddbridge/ddbridge-m4.c +++ b/ddbridge/ddbridge-m4.c @@ -195,7 +195,7 @@ static int search_isdbs(struct dvb_frontend *fe) cmd.command = MCI_CMD_SEARCH_ISDBS; cmd.isdbs_search.retry = 0; if (p->stream_id != NO_STREAM_ID_FILTER) { - cmd.isdbs_search.flags = (p->stream_id & 0xffff0000) ? 0 : 1; + cmd.isdbs_search.flags = 0; cmd.isdbs_search.tsid = p->stream_id; } cmd.isdbs_search.frequency = p->frequency * 1000;