From: Dimitris Kerasiotis <dkerasiotis@gmail.com>
To: linux-media@vger.kernel.org
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>,
Dimitris Kerasiotis <dkerasiotis@gmail.com>
Subject: [PATCH] media: af9035: add support for AVerMedia A918R Express DVB-T
Date: Sat, 11 Jul 2026 01:21:25 +0300 [thread overview]
Message-ID: <20260710222125.1778230-1-dkerasiotis@gmail.com> (raw)
The AVerMedia A918R Express DVB-T (USB ID 07ca:0918) is an
ExpressCard DVB-T receiver based on the AF9035 USB bridge, AF9033
demodulator and NXP TDA18218 tuner, the same combination as the
AVerMedia AVerTV Volar HD (A835).
Besides the device ID, the board requires a GPIO power-up sequence
for its tuner/antenna front end, otherwise the device probes,
firmware loads and the tuner accepts programming, but the
demodulator never sees any signal. The required sequence was
identified by capturing the USB traffic of the vendor Windows
driver and is identical to the one this driver already uses for
the MXL5007T based AVerMedia devices (GPIOs 0x00d8e0/0x00d8e1/
0x00d8df and 0x00d8b4/0x00d8b5/0x00d8b3), so it is applied for
this USB ID only.
With this change the device locks and successfully scans all
DVB-T multiplexes receivable in Attica, Greece.
Signed-off-by: Dimitris Kerasiotis <dkerasiotis@gmail.com>
---
drivers/media/usb/dvb-usb-v2/af9035.c | 45 +++++++++++++++++++++++++++
1 file changed, 45 insertions(+)
diff --git a/drivers/media/usb/dvb-usb-v2/af9035.c b/drivers/media/usb/dvb-usb-v2/af9035.c
index 17062672e..0fdf3dcde 100644
--- a/drivers/media/usb/dvb-usb-v2/af9035.c
+++ b/drivers/media/usb/dvb-usb-v2/af9035.c
@@ -1476,6 +1476,49 @@ static int af9035_tuner_attach(struct dvb_usb_adapter *adap)
tuner_addr, &af9035_mxl5007t_config[adap->id]);
break;
case AF9033_TUNER_TDA18218:
+ if (le16_to_cpu(d->udev->descriptor.idVendor) ==
+ USB_VID_AVERMEDIA &&
+ le16_to_cpu(d->udev->descriptor.idProduct) == 0x0918) {
+ /*
+ * AVerMedia A918R Express DVB-T: the tuner/antenna
+ * front end is powered up through GPIOs, using the
+ * same sequence as the MXL5007T based AVerMedia
+ * devices above. Sequence captured from the vendor
+ * Windows driver.
+ */
+ ret = af9035_wr_reg(d, 0x00d8e0, 1);
+ if (ret < 0)
+ goto err;
+
+ ret = af9035_wr_reg(d, 0x00d8e1, 1);
+ if (ret < 0)
+ goto err;
+
+ ret = af9035_wr_reg(d, 0x00d8df, 0);
+ if (ret < 0)
+ goto err;
+
+ msleep(30);
+
+ ret = af9035_wr_reg(d, 0x00d8df, 1);
+ if (ret < 0)
+ goto err;
+
+ msleep(300);
+
+ ret = af9035_wr_reg(d, 0x00d8b4, 1);
+ if (ret < 0)
+ goto err;
+
+ ret = af9035_wr_reg(d, 0x00d8b5, 1);
+ if (ret < 0)
+ goto err;
+
+ ret = af9035_wr_reg(d, 0x00d8b3, 1);
+ if (ret < 0)
+ goto err;
+ }
+
/* attach tuner */
fe = dvb_attach(tda18218_attach, adap->fe[0],
&d->i2c_adap, &af9035_tda18218_config);
@@ -2122,6 +2165,8 @@ static const struct usb_device_id af9035_id_table[] = {
&af9035_props, "TerraTec Cinergy T Stick (rev. 2)", NULL) },
{ DVB_USB_DEVICE(USB_VID_AVERMEDIA, 0x0337,
&af9035_props, "AVerMedia HD Volar (A867)", NULL) },
+ { DVB_USB_DEVICE(USB_VID_AVERMEDIA, 0x0918,
+ &af9035_props, "AVerMedia A918R Express DVB-T", NULL) },
{ DVB_USB_DEVICE(USB_VID_GTEK, USB_PID_EVOLVEO_XTRATV_STICK,
&af9035_props, "EVOLVEO XtraTV stick", NULL) },
--
2.47.3
reply other threads:[~2026-07-10 22:22 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260710222125.1778230-1-dkerasiotis@gmail.com \
--to=dkerasiotis@gmail.com \
--cc=linux-media@vger.kernel.org \
--cc=mchehab@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox