Re: Bah! How do I change channels?

2009-06-27 Thread Robert Krakora
On Sat, Jun 27, 2009 at 12:25 AM, George Adamsg_adam...@hotmail.com wrote:

 Thanks again to both of you for your help.  I gave the no_poweroff flag a 
 try, but didn't see any difference.  I also tried a setchannel 3 during the 
 middle of the encoding session, and also saw no change.

 But I think I've found the problem:

 v4lctl setnorm NTSC; v4lctl setfreqtab us-bcast; v4lctl -v 1 setchannel 3
 vid-open: trying: v4l2-old...
 vid-open: failed: v4l2-old
 vid-open: trying: v4l2...
 v4l2: open
 v4l2: device info:
  em28xx 0.1.1 / Pinnacle PCTV HD Pro Stick @ usb-:00:1a.7-1
 vid-open: ok: v4l2
 freq: reading /usr/share/xawtv/Index.map
 v4l2:   tuner cap:
 v4l2:   tuner rxs:
 v4l2:   tuner cur: MONO
 cmd: setchannel 3
 v4l2: freq: 0.000
 v4l2: close


 What?  freq: 0.000 ?  After finding the ivtv package and compiling its utils, 
 I confirm it with this:

 v4l2-ctl -F
 Frequency: 0 (0.00 MHz)

 ivtv-tune -c 3
 /dev/video0: 61.250 MHz

 v4l2-ctl -F
 Frequency: 980 (61.25 MHz)

 v4lctl setchannel 3

 v4l2-ctl -F
 Frequency: 0 (0.00 MHz)


 So mysteriously, it seems like v4lctl is just plain not working.  And 
 ivtv-tune, on the other hand, is working just fine.  After I do that and 
 start Helix Producer, I see channel 3 just like I had hoped.

 (strangely, v4lctl can do other things fine, like change the norm from NTSC 
 to PAL.  It just can't change the channel.)

 So, sorry that it went off in rabbit trails of the device powering down and 
 so forth.  I wonder what happened to my v4lctl program, though?  xawtv itself 
 (running in X) seems to work fine when I tell it to change the channel...






 Date: Fri, 26 Jun 2009 09:42:06 -0400
 Subject: Re: Bah! How do I change channels?
 From: dheitmuel...@kernellabs.com
 To: awa...@radix.net
 CC: g_adam...@hotmail.com; video4linux-l...@redhat.com; 
 linux-media@vger.kernel.org

 On Fri, Jun 26, 2009 at 7:50 AM, Andy Walls wrote:
 I use either v4l2-ctl or ivtv-tune

 $ ivtv-tune -d /dev/video0 -t us-bcast -c 3
 /dev/video0: 61.250 MHz

 $ v4l2-ctl -d /dev/video0 -f 61.250
 Frequency set to 980 (61.25 MHz)


 Regards,
 Andy

 Hello Andy,

 I had sent George some email off-list with basically the same
 commands. I think what might be happening here is the tuner gets
 powered down when not in use, so I think it might be powered down
 between the v4l-ctl command and the running of the other application.

 I have sent him a series of commands to try where he modprobes the
 xc3028 driver with no_poweroff=1, and we will see if that starts
 working.

 Devin

 --
 Devin J. Heitmueller - Kernel Labs
 http://www.kernellabs.com
 _
 Lauren found her dream laptop. Find the PC that’s right for you.
 http://www.microsoft.com/windows/choosepc/?ocid=ftp_val_wl_290

 --
 video4linux-list mailing list
 Unsubscribe mailto:video4linux-list-requ...@redhat.com?subject=unsubscribe
 https://www.redhat.com/mailman/listinfo/video4linux-list



George:

Try 'v4l2-ctl -d /dev/video0 -f 61.250' to tune to broadcast channel 3
per one of Devin's e-mails to you.  I do not know why setchannel is
not working for you.  I use both ivtv-tune v4l2-ctl and both do work
and v4l2-ctl should work in this instance for you.  I always open my
USB TV device via mplayer not specifiying a channel and then use
ivtv-tune executed by a script that is run by an application to tune
channels.  I happened to notice that if I closed mplayer and used
ivtv-tune to tune to another channel and then open my USB TV device,
it would be tuned to that channel.

Andy:

I too care about the environment.  I am trying to find some extra time
to figure out if my KWorld 330U USB TV devices are actually going into
low power mode or not.  I would say not as they get really hot, so I
unplug them when I am not using them.  I told Devin I would work on
this and I have an accurate analog amp meter, but I got very busy at
work and at home with the kids.  However, I don't believe that the
answer is to disable power management as some of these parts get so
hot that leaving them in a powered state and tuned to a channel will
probably damage the device.  Remember, these are silicon tuners, not
the old discrete tuners that have way more surface area to dissipate
heat.

Devin:

Great job answering questions as usual.  ;-)

Best Regards,

-- 
Rob Krakora
Senior Software Engineer
MessageNet Systems
101 East Carmel Dr. Suite 105
Carmel, IN 46032
(317)566-1677 Ext. 206
(317)663-0808 Fax
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Can't use my Pinnacle PCTV HD Pro stick - what am I doing wrong?

2009-06-22 Thread Robert Krakora
On Mon, Jun 22, 2009 at 10:40 PM, Robert
Krakorarob.krak...@messagenetsystems.com wrote:
 On Mon, Jun 22, 2009 at 5:39 PM, George Adamsg_adam...@hotmail.com wrote:

 Hello again.  I have some updates now that I've been able to make some 
 further tests.

 1) My Pinnacle PCTV HD Pro (800e) stick does, in fact, work correctly under 
 Windows.  The scanning detects the one channel we're running over our closed 
 circuit cable (channel 3) and displays it on-screen just fine.  (audio over 
 channel 3 works as well)


 2) Devin, my installation process is hg clone 
 http://linuxtv.org/hg/v4l-dvb; cd v4l-dvb; make rminstall; make distclean; 
 make; make install  This appears to install everything v4l-related as 
 modules in the appropriate directories.  For instance:

  uname -r
 2.6.24-24-server

 find /lib/modules/`uname -r` -type f -name em28xx\* -o -name tvp\*
 /lib/modules/2.6.24-24-server/kernel/drivers/media/video/tvp5150.ko
 /lib/modules/2.6.24-24-server/kernel/drivers/media/video/em28xx/em28xx.ko
 /lib/modules/2.6.24-24-server/kernel/drivers/media/video/em28xx/em28xx-dvb.ko


 3) tvtime still hangs when launched.


 4) Running zapping gives the error VBI Initialization failed.  /dev/vbi0 
 (Pinnacle PCTV HD Pro) is not a raw vbi device).  Continuing on and trying 
 to choose the Preferences menu option segfaults the program (and this is 
 the Ubuntu-distributed zapping package)


 5) Running Paul's suggested mplayer command gives the following:

 mplayer -vo xv tv:// -tv 
 driver=v4l2:alsa:immediatemode=0:adevice=hw.1,0:norm=ntsc:chanlist=us-cable:channel=3

 MPlayer 1.0rc2-4.2.4 (C) 2000-2007 MPlayer Team
 CPU: Intel(R) Core(TM)2 Quad CPU    Q9550  @ 2.83GHz (Family: 6, Model: 23, 
 Stepping: 10)
 CPUflags:  MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
 Compiled with runtime CPU detection.
 mplayer: could not connect to socket
 mplayer: No such file or directory
 Failed to open LIRC support. You will not be able to use your remote control.

 Playing tv://.
 TV file format detected.
 Selected driver: v4l2
  name: Video 4 Linux 2 input
  author: Martin Olschewski
  comment: first try, more to come ;-)
 Selected device: Pinnacle PCTV HD Pro Stick
  Tuner cap:
  Tuner rxs:
  Capabilites:  video capture  tuner  audio  read/write  streaming
  supported norms: 0 = NTSC; 1 = NTSC-M; 2 = NTSC-M-JP; 3 = NTSC-M-KR; 4 = 
 NTSC-443; 5 = PAL; 6 = PAL-BG; 7 = PAL-H; 8 = PAL-I; 9 = PAL-DK; 10 = PAL-M; 
 11 = PAL-N; 12 = PAL-Nc; 13 = PAL-60; 14 = SECAM;
  inputs: 0 = Television; 1 = Composite1; 2 = S-Video;
  Current input: 0
  Current format: YUYV
 v4l2: current audio mode is : MONO
 v4l2: ioctl set format failed: Invalid argument
 v4l2: ioctl set format failed: Invalid argument
 v4l2: ioctl set format failed: Invalid argument
 Selected channel: 3 (freq: 61.250)
 Video buffer shorter than 3 times audio frame duration.
 You will probably experience heavy framedrops.
 v4l2: ioctl query control failed: Invalid argument
 v4l2: ioctl query control failed: Invalid argument
 v4l2: ioctl query control failed: Invalid argument
 v4l2: ioctl query control failed: Invalid argument
 xscreensaver_disable: Could not find XScreenSaver window.
 GNOME screensaver disabled
 ==
 Opening video decoder: [raw] RAW Uncompressed Video
 VDec: vo config request - 640 x 480 (preferred colorspace: Packed YUY2)
 VDec: using Packed YUY2 as output csp (no 0)
 Movie-Aspect is undefined - no prescaling applied.
 VO: [xv] 640x480 = 640x480 Packed YUY2
 Selected video codec: [rawyuy2] vfm: raw (RAW YUY2)
 ==
 ==
 Forced audio codec: mad
 Opening audio decoder: [pcm] Uncompressed PCM audio decoder
 AUDIO: 44100 Hz, 1 ch, s16le, 705.6 kbit/100.00% (ratio: 88200-88200)
 Selected audio codec: [pcm] afm: pcm (Uncompressed PCM)
 ==
 AO: [pulse] 44100Hz 1ch s16le (2 bytes per sample)
 Starting playback...
 v4l2: select timeout
 A:   0.5 V:   0.0 A-V:  0.472 ct:  0.000   1/  1 ??% ??% ??,?% 1 0 [[JMA:   
 0.9 V:   0.0 A-V:  0.940 ct:  0.003   2/  2 ??% ??% ??,?% 2 0 [[JMv4l2: 
 select timeout
 A:   1.5 V:   0.0 A-V:  1.479 ct:  0.007   3/  3 ??% ??% ??,?% 3 0 [[JMA:   
 2.0 V:   0.0 A-V:  1.981 ct:  0.010   4/  4 ??% ??% ??,?% 4 0 [[JMv4l2: 
 select timeout
 A:   2.5 V:   0.0 A-V:  2.485 ct:  0.013   5/  5 ??% ??% ??,?% 5 0 [[JMA:   
 3.0 V:   0.0 A-V:  2.957 ct:  0.017   6/  6 ??% ??% ??,?% 6 0 [[JMv4l2: 
 select timeout
 A:   3.5 V:   0.0 A-V:  3.460 ct:  0.020   7/  7 ??% ??% ??,?% 7 0 [[JMA:   
 4.0 V:   0.0 A-V:  3.956 ct:  0.022   8/  8 ??% ??% ??,?% 8 0 [[JMv4l2: 
 select timeout
 A:   4.5 V:   0.0 A-V:  4.460 ct:  0.025   9/  9 ??% ??% ??,?% 9 0 [[JMA:   
 5.0 V:   0.0 A-V:  4.956 ct:  0.027  10/ 10 ??% ??% ??,?% 10 0 [[JMv4l2: 
 select timeout


 The Mplayer screen 

Fwd: [PATCH 2/2] uvc: Added two webcams with 'No FID' quirk.

2009-06-12 Thread Robert Krakora
From: Robert Krakora rob.krak...@messagenetsystems.com

Added two webcams with 'No FID' quirk.

Priority: normal

Signed-off-by: Robert Krakora rob.krak...@messagenetsystems.com

diff -r bff77ec33116 linux/drivers/media/video/uvc/uvc_driver.c
--- a/linux/drivers/media/video/uvc/uvc_driver.cThu Jun 11
18:44:23 2009 -0300
+++ b/linux/drivers/media/video/uvc/uvc_driver.cFri Jun 12
11:35:04 2009 -0400
@@ -1919,6 +1919,24 @@
  .bInterfaceSubClass   = 1,
  .bInterfaceProtocol   = 0,
  .driver_info  = UVC_QUIRK_STREAM_NO_FID },
+   /* Suyin Corp. HP Webcam */
+   { .match_flags  = USB_DEVICE_ID_MATCH_DEVICE
+   | USB_DEVICE_ID_MATCH_INT_INFO,
+ .idVendor = 0x064e,
+ .idProduct= 0xa110,
+ .bInterfaceClass  = USB_CLASS_VIDEO,
+ .bInterfaceSubClass   = 1,
+ .bInterfaceProtocol   = 0,
+ .driver_info  = UVC_QUIRK_STREAM_NO_FID },
+   /* Creative Live! Cam Optia AF */
+   { .match_flags  = USB_DEVICE_ID_MATCH_DEVICE
+   | USB_DEVICE_ID_MATCH_INT_INFO,
+ .idVendor = 0x041e,
+ .idProduct= 0x406d,
+ .bInterfaceClass  = USB_CLASS_VIDEO,
+ .bInterfaceSubClass   = 1,
+ .bInterfaceProtocol   = 0,
+ .driver_info  = UVC_QUIRK_STREAM_NO_FID },
/* Aveo Technology USB 2.0 Camera */
{ .match_flags  = USB_DEVICE_ID_MATCH_DEVICE
| USB_DEVICE_ID_MATCH_INT_INFO,
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Panic in HVR-950q caused by changeset 11356

2009-04-28 Thread Robert Krakora
On Mon, Apr 27, 2009 at 10:03 PM, Devin Heitmueller
devin.heitmuel...@gmail.com wrote:
 Hello Janne,

 Ok, so now I need to better understand the nature of changeset 11356.
 It turns up I spent the entire afternoon debugging a kernel panic on
 usb disconnect, which ended up being due to this patch:

 au0828: use usb_interface.dev for v4l2_device_register
 http://linuxtv.org/hg/v4l-dvb/rev/33810c734a0d

 The change to pass the interface-dev to v4l2_device_register()
 effectively overwrote the interface data, so while I thought
 usb_set_intfdata() was storing the au0828_dev *, in fact it was
 holding a v4l2_device *.  When au0828_usb_disconnect() eventually gets
 called, the call to usb_get_intfdata() returned the v4l2_device, and
 presto - instant panic.

 So, either I can roll back this change, or I can make the call to
 usb_set_intfdata() *after* the call to v4l2_device_register().
 However, I don't know what else that might screw up (I haven't traced
 out everything in v4l2-device that might expect a v4l2_device * to be
 stored there).

 Suggestions?

 Perhaps if you could provide some additional background as to what
 prompted this change, it will help me better understand the correct
 course of action at this point.

 Devin

 cc: Robert Krakora and Josh Watzman since they both independently
 reported what I believe to be the exact same issue (the stack is
 slightly different because in their case as it crashed in the
 dvb_unregister portion of the usb_disconnect routine).

 --
 Devin J. Heitmueller
 http://www.devinheitmueller.com
 AIM: devinheitmueller


Devin:

I vote to roll it back until the ramifications of the changeset are
better understood.  ;-)

Best Regards,

-- 
Rob Krakora
Senior Software Engineer
MessageNet Systems
101 East Carmel Dr. Suite 105
Carmel, IN 46032
(317)566-1677 Ext. 206
(317)663-0808 Fax
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 2/4] em28xx: Clock (XCLK) Cleanup

2009-01-16 Thread Robert Krakora
em28xx: Clock (XCLK) Cleanup

From: Robert Krakora rob.krak...@messagenetsystems.com

Clock (XCLK) Cleanupt

Priority: normal

Signed-off-by: Robert Krakora rob.krak...@messagenetsystems.com

diff -r 6896782d783d linux/drivers/media/video/em28xx/em28xx-core.c
--- a/linux/drivers/media/video/em28xx/em28xx-core.cWed Jan 14
10:06:12 2009 -0200
+++ b/linux/drivers/media/video/em28xx/em28xx-core.cWed Jan 14
12:47:00 2009 -0500
@@ -424,7 +424,7 @@

xclk = dev-board.xclk  0x7f;
if (!dev-mute)
-   xclk |= 0x80;
+   xclk |= EM28XX_XCLK_AUDIO_UNMUTE;

ret = em28xx_write_reg(dev, EM28XX_R0F_XCLK, xclk);
if (ret  0)
@@ -437,6 +437,10 @@
/* Sets volume */
if (dev-audio_mode.ac97 != EM28XX_NO_AC97) {
int vol;
+
+   em28xx_write_ac97(dev, AC97_POWER_DOWN_CTRL, 0x4200);
+   em28xx_write_ac97(dev, AC97_EXT_AUD_CTRL, 0x0031);
+   em28xx_write_ac97(dev, AC97_PCM_IN_SRATE, 0xbb80);

/* LSB: left channel - both channels with the same level */
vol = (0x1f - dev-volume) | ((0x1f - dev-volume)  8);
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 1/4] em28xx: Fix audio URB transfer buffer memory leak and race condition/corruption of capture pointer

2009-01-16 Thread Robert Krakora
em28xx: Fix audio URB transfer buffer memory leak and race
condition/corruption of capture pointer

From: Robert Krakora rob.krak...@messagenetsystems.com

Fix audio URB transfer buffer memory leak and race
condition/corruption of capture pointer

Leak fix kindly contributed by Pádraig Brady.

Priority: normal

Signed-off-by: Robert Krakora rob.krak...@messagenetsystems.com

diff -r 7981bdd4e25a linux/drivers/media/video/em28xx/em28xx-audio.c
--- a/linux/drivers/media/video/em28xx/em28xx-audio.c   Mon Jan 12
00:18:04 2009 +
+++ b/linux/drivers/media/video/em28xx/em28xx-audio.c   Thu Jan 15
17:27:27 2009 -0500
@@ -66,6 +66,9 @@
   usb_unlink_urb(dev-adev.urb[i]);
   usb_free_urb(dev-adev.urb[i]);
   dev-adev.urb[i] = NULL;
+
+   kfree(dev-adev.transfer_buffer[i]);
+   dev-adev.transfer_buffer[i] = NULL;
   }

   return 0;
@@ -458,11 +461,15 @@
   *substream)
 #endif
 {
+   unsigned long flags;
+
   struct em28xx *dev;
-
   snd_pcm_uframes_t hwptr_done;
+
   dev = snd_pcm_substream_chip(substream);
+   spin_lock_irqsave(dev-adev.slock, flags);
   hwptr_done = dev-adev.hwptr_done_capture;
+   spin_unlock_irqrestore(dev-adev.slock, flags);

   return hwptr_done;
 }
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 3/4] em28xx: Fix for KWorld 330U Board

2009-01-16 Thread Robert Krakora
em28xx: Fix for KWorld 330U Board

From: Robert Krakora rob.krak...@messagenetsystems.com

Fix for KWorld 330U Board

Many thanks to Devin and Mauro!!!

Priority: normal

Signed-off-by: Robert Krakora rob.krak...@messagenetsystems.com

diff -r 6896782d783d linux/drivers/media/video/em28xx/em28xx-cards.c
--- a/linux/drivers/media/video/em28xx/em28xx-cards.c   Wed Jan 14
10:06:12 2009 -0200
+++ b/linux/drivers/media/video/em28xx/em28xx-cards.c   Wed Jan 14
12:46:43 2009 -0500
@@ -114,6 +114,18 @@
   {  -1,  -1, -1, -1},
 };
 #endif
+
+static struct em28xx_reg_seq kworld_330u_analog[] = {
+   {EM28XX_R08_GPIO,   0x6d,   ~EM_GPIO_4, 10},
+  {EM2880_R04_GPO,0x00,   0xff,   10},
+   {   -1, -1, -1, -1},
+};
+
+static struct em28xx_reg_seq kworld_330u_digital[] = {
+   {EM28XX_R08_GPIO,   0x6e,   ~EM_GPIO_4, 10},
+   {EM2880_R04_GPO,0x08,   0xff,   10},
+   {   -1, -1, -1, -1},
+};

 /* Callback for the most boards */
 static struct em28xx_reg_seq default_tuner_gpio[] = {
@@ -1242,29 +1254,33 @@
   .gpio = hauppauge_wintv_hvr_900_analog,
   } },
   },
-   [EM2883_BOARD_KWORLD_HYBRID_A316] = {
+   [EM2883_BOARD_KWORLD_HYBRID_330U] = {
   .name = Kworld PlusTV HD Hybrid 330,
   .tuner_type   = TUNER_XC2028,
   .tuner_gpio   = default_tuner_gpio,
   .decoder  = EM28XX_TVP5150,
   .mts_firmware = 1,
   .has_dvb  = 1,
-   .dvb_gpio = default_digital,
+   .dvb_gpio = kworld_330u_digital,
+   .xclk = EM28XX_XCLK_FREQUENCY_12MHZ,
+   .i2c_speed= EM28XX_I2C_CLK_WAIT_ENABLE |
EM28XX_I2C_EEPROM_ON_BOARD | EM28XX_I2C_EEPROM_KEY_VALID,
   .input= { {
   .type = EM28XX_VMUX_TELEVISION,
   .vmux = TVP5150_COMPOSITE0,
   .amux = EM28XX_AMUX_VIDEO,
-   .gpio = default_analog,
+   .gpio = kworld_330u_analog,
+   .aout = EM28XX_AOUT_PCM_IN | EM28XX_AOUT_PCM_STEREO,
   }, {
   .type = EM28XX_VMUX_COMPOSITE1,
   .vmux = TVP5150_COMPOSITE1,
   .amux = EM28XX_AMUX_LINE_IN,
-   .gpio = hauppauge_wintv_hvr_900_analog,
+   .gpio = kworld_330u_analog,
+   .aout = EM28XX_AOUT_PCM_IN | EM28XX_AOUT_PCM_STEREO,
   }, {
   .type = EM28XX_VMUX_SVIDEO,
   .vmux = TVP5150_SVIDEO,
   .amux = EM28XX_AMUX_LINE_IN,
-   .gpio = hauppauge_wintv_hvr_900_analog,
+   .gpio = kworld_330u_analog,
   } },
   },
   [EM2820_BOARD_COMPRO_VIDEOMATE_FORYOU] = {
@@ -1318,7 +1334,7 @@
   .driver_info = EM2880_BOARD_KWORLD_DVB_310U },
 #endif
   { USB_DEVICE(0xeb1a, 0xa316),
-   .driver_info = EM2883_BOARD_KWORLD_HYBRID_A316 },
+   .driver_info = EM2883_BOARD_KWORLD_HYBRID_330U },
   { USB_DEVICE(0xeb1a, 0xe320),
   .driver_info = EM2880_BOARD_MSI_DIGIVOX_AD_II },
   { USB_DEVICE(0xeb1a, 0xe323),
@@ -1594,6 +1610,10 @@
   case EM2880_BOARD_PINNACLE_PCTV_HD_PRO:
   /* FIXME: Better to specify the needed IF */
   ctl-demod = XC3028_FE_DEFAULT;
+   break;
+   case EM2883_BOARD_KWORLD_HYBRID_330U:
+   ctl-demod = XC3028_FE_CHINA;
+   ctl-fname = XC2028_DEFAULT_FIRMWARE;
   break;
   default:
   ctl-demod = XC3028_FE_OREN538;
diff -r 6896782d783d linux/drivers/media/video/em28xx/em28xx-dvb.c
--- a/linux/drivers/media/video/em28xx/em28xx-dvb.c Wed Jan 14
10:06:12 2009 -0200
+++ b/linux/drivers/media/video/em28xx/em28xx-dvb.c Wed Jan 14
12:47:00 2009 -0500
@@ -29,6 +29,7 @@

 #include lgdt330x.h
 #include zl10353.h
+#include s5h1409.h
 #ifdef EM28XX_DRX397XD_SUPPORT
 #include drx397xD.h
 #endif
@@ -231,6 +232,15 @@
  .no_tuner = 1,
  .parallel_ts = 1,
  .if2 = 45600,
+};
+
+static struct s5h1409_config em28xx_s5h1409_with_xc3028 = {
+   .demod_address = 0x32  1,
+   .output_mode   = S5H1409_PARALLEL_OUTPUT,
+   .gpio  = S5H1409_GPIO_OFF,
+   .inversion = S5H1409_INVERSION_OFF,
+   .status_mode   = S5H1409_DEMODLOCKING,
+   .mpeg_timing   = S5H1409_MPEGTIMING_CONTINOUS_NONINVERTING_CLOCK
 };

 #ifdef EM28XX_DRX397XD_SUPPORT
@@ -413,7 +423,6 @@
  case EM2883_BOARD_HAUPPAUGE_WINTV_HVR_850:
  case EM2883_BOARD_HAUPPAUGE_WINTV_HVR_950:
  case EM2880_BOARD_PINNACLE_PCTV_HD_PRO

[PATCH 4/4] em28xx: Fix for KWorld 330U AC97

2009-01-16 Thread Robert Krakora
em28xx: Fix for KWorld 330U AC97

From: Robert Krakora rob.krak...@messagenetsystems.com

Fix for KWorld 330U AC97

Many thanks to Devin and Mauro again!!!

Priority: normal

Signed-off-by: Robert Krakora rob.krak...@messagenetsystems.com

diff -r 6896782d783d linux/drivers/media/video/em28xx/em28xx-core.c
--- a/linux/drivers/media/video/em28xx/em28xx-core.cWed Jan 14
10:06:12 2009 -0200
+++ b/linux/drivers/media/video/em28xx/em28xx-core.cWed Jan 14
12:47:00 2009 -0500
@@ -424,7 +424,7 @@

   xclk = dev-board.xclk  0x7f;
   if (!dev-mute)
-   xclk |= 0x80;
+   xclk |= EM28XX_XCLK_AUDIO_UNMUTE;

   ret = em28xx_write_reg(dev, EM28XX_R0F_XCLK, xclk);
   if (ret  0)
@@ -437,6 +437,10 @@
   /* Sets volume */
   if (dev-audio_mode.ac97 != EM28XX_NO_AC97) {
   int vol;
+
+   em28xx_write_ac97(dev, AC97_POWER_DOWN_CTRL, 0x4200);
+   em28xx_write_ac97(dev, AC97_EXT_AUD_CTRL, 0x0031);
+   em28xx_write_ac97(dev, AC97_PCM_IN_SRATE, 0xbb80);

   /* LSB: left channel - both channels with the same level */
   vol = (0x1f - dev-volume) | ((0x1f - dev-volume)  8);
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html