@@ -639,10 +639,10 @@ struct em28xx_board em28xx_boards[] = {
},
[EM2861_BOARD_PLEXTOR_PX_TV100U] = {
.name = "Plextor ConvertX PX-TV100U",
- .valid = EM28XX_BOARD_NOT_VALIDATED,
.tuner_type = TUNER_TNF_5335MF,
.tda9887_conf = TDA9887_PRESENT,
.decoder = EM28XX_TVP5150,
+ .has_msp34xx = 1,
.input = { {
.type = EM28XX_VMUX_TELEVISION,
.vmux = TVP5150_COMPOSITE0,
@@ -1950,6 +1950,10 @@ void em28xx_pre_card_setup(struct em28xx
/* FIXME guess */
/* Turn on analog audio output */
em28xx_write_reg(dev, EM28XX_R08_GPIO, 0xfd);
+
+ /* enable audio 12mhz i2s */
+ em28xx_write_reg(dev, EM28XX_R0F_XCLK, 0xa7);
+ dev->i2s_speed = 2048000;
break;
case EM2861_BOARD_KWORLD_PVRTV_300U:
case EM2880_BOARD_KWORLD_DVB_305U:
@@ -1087,9 +1087,12 @@ static int vidioc_s_ctrl(struct file *fi
mutex_lock(&dev->lock);
- if (dev->board.has_msp34xx)
+ if (dev->board.has_msp34xx) {
+ /*FIXME hack to unmute usb audio stream */
+ em28xx_set_ctrl(dev, ctrl);
+
v4l2_device_call_all(&dev->v4l2_dev, 0, core, s_ctrl, ctrl);
- else {
+ } else {
rc = 1;
for (i = 0; i < ARRAY_SIZE(em28xx_qctrl); i++) {
if (ctrl->id == em28xx_qctrl[i].id) {