On Sun Jul 5 01:10:43 2026 -0400, Joseph Breihan wrote:
> The Monoprice 106456 (board rev TV22AD-A, also sold as the AnyTV
> AUTV002) is a USB ATSC/QAM tuner that enumerates as 05e1:0400 and
> reports itself as a "Syntek Semiconductor USB 2.0 Video Capture
> Controller". The hardware is an Auvitek AU0828A bridge with an AU8522
> demodulator and an NXP TDA18271HDC2 tuner at I2C address 0x60 -- the
> same demod/tuner combination as the existing Hauppauge Woodbury board.
>
> Adds board profile and the USB ID so the device binds. The digital
> frontend is electrically identical to the Woodbury, so share that
> board's au8522/tda18271 configuration and attach path rather than
> duplicating it. Tested with over-the-air 8VSB ATSC: it locks and
> streams a live 720p transport stream.
>
> Some 05e1:0400 units reportedly ship a Microtune MT2131 tuner with an
> AU8502 demodulator instead. This patch does not handle that variant,
> but it can't regress it either: 05e1:0400 matches no driver today, and
> on the MT2131 units tda18271_attach() just fails, so no frontend is
> registered.
>
> Signed-off-by: Joseph Breihan <[email protected]>
> Signed-off-by: Hans Verkuil <[email protected]>
Patch committed.
Thanks,
Hans Verkuil
drivers/media/usb/au0828/au0828-cards.c | 14 ++++++++++++++
drivers/media/usb/au0828/au0828-cards.h | 1 +
drivers/media/usb/au0828/au0828-dvb.c | 1 +
3 files changed, 16 insertions(+)
---
diff --git a/drivers/media/usb/au0828/au0828-cards.c
b/drivers/media/usb/au0828/au0828-cards.c
index 9929ce5dcdcd..8ab100db01ab 100644
--- a/drivers/media/usb/au0828/au0828-cards.c
+++ b/drivers/media/usb/au0828/au0828-cards.c
@@ -124,6 +124,17 @@ struct au0828_board au0828_boards[] = {
},
},
},
+ [AU0828_BOARD_MONOPRICE_106456] = {
+ /*
+ * Monoprice 106456 USB ATSC/QAM tuner (board rev TV22AD-A),
+ * a.k.a. AnyTV AUTV002, USB ID 05e1:0400. Same AU8522 demod +
+ * NXP TDA18271HDC2 tuner @ 0x60 as the Hauppauge Woodbury.
+ */
+ .name = "Monoprice 106456 USB ATSC/QAM (TV22AD-A)",
+ .tuner_type = TUNER_NXP_TDA18271,
+ .tuner_addr = 0x60,
+ .i2c_clk_divider = AU0828_I2C_CLK_250KHZ,
+ },
[AU0828_BOARD_HAUPPAUGE_HVR1265] = {
.name = "Hauppauge HVR1265",
.tuner_type = TUNER_XC5000,
@@ -294,6 +305,7 @@ void au0828_gpio_setup(struct au0828_dev *dev)
case AU0828_BOARD_HAUPPAUGE_WOODBURY:
case AU0828_BOARD_HAUPPAUGE_HVR1265:
case AU0828_BOARD_HAUPPAUGE_IMPACTVCBE:
+ case AU0828_BOARD_MONOPRICE_106456:
/* GPIO's
* 4 - CS5340
* 5 - AU8522 Demodulator
@@ -378,6 +390,8 @@ struct usb_device_id au0828_usb_id_table[] = {
.driver_info = AU0828_BOARD_HAUPPAUGE_HVR950Q_MXL },
{ USB_DEVICE(0x05e1, 0x0480),
.driver_info = AU0828_BOARD_HAUPPAUGE_WOODBURY },
+ { USB_DEVICE(0x05e1, 0x0400),
+ .driver_info = AU0828_BOARD_MONOPRICE_106456 },
{ USB_DEVICE(0x2040, 0x8200),
.driver_info = AU0828_BOARD_HAUPPAUGE_WOODBURY },
{ USB_DEVICE(0x2040, 0x7260),
diff --git a/drivers/media/usb/au0828/au0828-cards.h
b/drivers/media/usb/au0828/au0828-cards.h
index a438aeb334a0..a4a283731f7d 100644
--- a/drivers/media/usb/au0828/au0828-cards.h
+++ b/drivers/media/usb/au0828/au0828-cards.h
@@ -13,3 +13,4 @@
#define AU0828_BOARD_HAUPPAUGE_WOODBURY 5
#define AU0828_BOARD_HAUPPAUGE_IMPACTVCBE 6
#define AU0828_BOARD_HAUPPAUGE_HVR1265 7
+#define AU0828_BOARD_MONOPRICE_106456 8
diff --git a/drivers/media/usb/au0828/au0828-dvb.c
b/drivers/media/usb/au0828/au0828-dvb.c
index 31123e6f9fc3..9c95b7ceaecd 100644
--- a/drivers/media/usb/au0828/au0828-dvb.c
+++ b/drivers/media/usb/au0828/au0828-dvb.c
@@ -600,6 +600,7 @@ int au0828_dvb_register(struct au0828_dev *dev)
&mxl5007t_hvr950q_config);
break;
case AU0828_BOARD_HAUPPAUGE_WOODBURY:
+ case AU0828_BOARD_MONOPRICE_106456:
dvb->frontend = dvb_attach(au8522_attach,
&hauppauge_woodbury_config,
&dev->i2c_adap);
_______________________________________________
linuxtv-commits mailing list -- [email protected]
To unsubscribe send an email to [email protected]