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]

Reply via email to