diff mbox

em28xx: enable usb audio for plextor px-tv100u

Message ID 20090718173758.GA32708@localhost.localdomain (mailing list archive)
State Changes Requested
Delegated to: Mauro Carvalho Chehab
Headers show

Commit Message

acano@fastmail.fm July 18, 2009, 5:37 p.m. UTC

diff mbox

Patch

diff -r 27ddf3fe0ed9 linux/drivers/media/video/em28xx/em28xx-cards.c
--- a/linux/drivers/media/video/em28xx/em28xx-cards.c	Wed Jun 17 04:38:12 2009 +0000
+++ b/linux/drivers/media/video/em28xx/em28xx-cards.c	Sat Jul 18 13:32:04 2009 -0400
@@ -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:
diff -r 27ddf3fe0ed9 linux/drivers/media/video/em28xx/em28xx-video.c
--- a/linux/drivers/media/video/em28xx/em28xx-video.c	Wed Jun 17 04:38:12 2009 +0000
+++ b/linux/drivers/media/video/em28xx/em28xx-video.c	Sat Jul 18 13:32:04 2009 -0400
@@ -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) {