summaryrefslogtreecommitdiff
path: root/linux/drivers/media/video/em28xx/em28xx-core.c
AgeCommit message (Collapse)Author
2009-09-19Revert changeset fe5eeff6644dMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@redhat.com> This change is not needed, since the config register reurns 0 for the audio config, and the code already disables audio in this case. kernel-sync: Priority: normal Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-09-10em28xx: do not create /dev/vbiX device if VBI not supportedDevin Heitmueller
From: Devin Heitmueller <dheitmueller@kernellabs.com> Do not create the VBI device in cases where VBI is not supported on the target em28xx chip. This work was sponsored by EyeMagnet Limited. Priority: normal Signed-off-by: Devin Heitmueller <dheitmueller@kernellabs.com>
2009-09-01em28xx: add raw VBI support for NTSCDevin Heitmueller
From: Devin Heitmueller <dheitmueller@kernellabs.com> Add support for raw VBI capture for the em28xx bridge, currently only for NTSC. Support for PAL capture to follow shortly (including the removal of numerous hard-coded NTSC-specific sizes for capture buffers, etc). Note that the code currently changes the default current norm from PAL to NTSC (so that zvbi-ntsc-cc works properly). The default norm really should be moved into a board-level parameter. This work was sponsored by EyeMagnet Limited. Priority: normal Signed-off-by: Devin Heitmueller <dheitmueller@kernellabs.com>
2009-09-01em28xx: make video isoc stream work when VBI is enabledDevin Heitmueller
From: Devin Heitmueller <dheitmueller@kernellabs.com> Add code enabling the VBI registers for variants of the em28xx chip that support VBI, and make sure the isoc streaming code continues to work for the video component of the stream (note the video and vbi data arrive intermixed on the same isoc pipe). Note that this version just drops the actual VBI data onto the floor as opposed to processing it. The "#ifdef 0" tags are for the videobuf code that appears in the next patch in this series. We created a separate version of the isoc_copy version for parsing the version of the stream that includes VBI data. In theory, they might be able to be merged at some point in the future, but the initial goal is to ensure that we do not cause any regressions with devices that do not have VBI support. This work was sponsored by EyeMagnet Limited. Priority: normal Signed-off-by: Devin Heitmueller <dheitmueller@kernellabs.com>
2009-08-10em28xx: fix: avoid having a bad colored image with webcamsMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@redhat.com> Register 0x13 seems to be a sort of image control, maybe gamma. Lower values produce better images, while higher values increases the contrast and shifts colors to green. 0xff produces a black image. If this register is left alone, a random value can be found at the register, producing weird results. This register doesn't seem to affect tv streams. Priority: normal Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-08-08em28xx: fix: don't do image interlacing on webcamsMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@redhat.com> Due to historical reasons, em28xx driver gets two consecutive frames and fold them into an unique framing, doing interlacing. While this works fine for TV images, this produces two bad effects with webcams: 1) webcam images are progressive. Merging two consecutive images produce interlacing artifacts on the image; 2) since the driver needs to get two frames, it reduces the maximum frame rate by two. Priority: normal Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-08-04em28xx: fix: some webcams don't have audio inputsMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@redhat.com> Priority: normal Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-07-14em28xx: adjust vinmode/vinctl based on the stream input formatMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@redhat.com> Depending on the video input format, vinmode/vinctl needs adjustments. For TV, this is not relevant, since the supported decoders output data at the same format. However, webcam sensors may have different formats, so, this needs to be adjusted based on the device. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-07-13em28xx: fix webcam scalingMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@redhat.com> While trying to fix an mt9v001 webcam, I noticed that HSCALE/VSCALE do work with em28xx + webcam. The issue is that the scaling setup depends on the number of visible rows/cols of the input image. With mt9v011 (Silvercrest), the resolution is 640x480. So, the scaling is different from a normal TV image (720x480 on NTSC). This were causing a wrong scaling and a previous patch disabled scaling. As each sensor have their different resolution setting, the xres/yres should be adjusted accordingly with the input sensor. Priority: normal Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-07-12em28xx: rename is_27xx to is_webcamMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@redhat.com> Just renames the flag, to use a clearer name. Later patches will use this flag to properly set some drivers behaviors for webcams. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-07-03em28xx: Allow its usage with other different output formatsMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@redhat.com> Discovered the bug that were limiting the output format to just RGB565. Now, it is possible to output image at Bayer format (the original one, as generated by Silvercrest sensor, and two others), and also on YUY. Priority: normal Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-06-29em28xx: add support for Silvercrest WebcamMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@redhat.com> This webcam uses a em2710 chipset, that identifies itself as em2820, plus a mt9v011 sensor, and a DY-301P lens. It needs a few different initializations than a normal em28xx device. Thanks to Hans de Goede <hdegoede@redhat.com> and Douglas Landgraf <dougsland@redhat.com> for providing the acces for the webcam during this weekend, I could make a patch for it while returning back from FISL/Fudcom LATAM 2009. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-06-09em28xx: don't create audio device if not supportedDevin Heitmueller
From: Devin Heitmueller <dheitmueller@kernellabs.com> In cases where the device does not actually provide a USB audio class *or* vendor audio, do not load the driver that provides vendor audio support (such as the KWorld 2800d). Otherwise, the /dev/audio1 device file gets created and users get confused. Also, reworks the logic a bit so that we don't try to inspect the register content if the register read failed entirely. Priority: normal Signed-off-by: Devin Heitmueller <dheitmueller@kernellabs.com>
2009-05-16em28xx: properly set packet size based on the device's eeprom configuration.Devin Heitmueller
From: Devin Heitmueller <dheitmueller@kernellabs.com> The em28xx actually has a register that tells the driver what the maximum packet size is (based on a value programmed into the eeprom). Make use of that register instead of assuming a hardcoded value of 564 (since 564 is not correct for devices that do QAM such as the KWorld 340u). Note that for now the em2874 code isn't there, falling back to the 564 value, however this is not a problem since there are not any em2874 based devices in the current v4l-dvb tree). Thanks to Jarod Wilson for detecting the initial problem and figuring out that the isoc configuration was wrong for his device. Priority: normal Signed-off-by: Devin Heitmueller <dheitmueller@kernellabs.com> Cc: Jarod Wilson <jarod@wilsonet.com>
2009-04-09em28xx: fix typo em28xx_errdev messageDouglas Schilling Landgraf
From: Filipe Rosset <rosset.filipe@gmail.com> Fix typo usbtransfer->usb transfer on em28xx_errdev message. Priority: normal Signed-off-by: Filipe Rosset <rosset.filipe@gmail.com> Signed-off-by: Douglas Schilling Landgraf <dougsland@redhat.com>
2009-04-02v4l2-subdev: change s_routing prototypeHans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> It is no longer needed to use a struct pointer as argument, since v4l2_subdev doesn't require that ioctl-like approach anymore. Instead just pass the input, output and config (new!) arguments directly. Priority: normal Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2009-03-31em28xx: convert to v4l2_subdevDouglas Schilling Landgraf
From: Douglas Schilling Landgraf <dougsland@redhat.com> Converted em28xx driver to v4l2_subdev. Thanks to Hans Verkuil <hverkuil@xs4all.nl> for helping this conversion. Priority: normal Signed-off-by: Douglas Schilling Landgraf <dougsland@redhat.com> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2009-03-22em28xx: fix oops on ARM platform when allocating transfer buffersDevin Heitmueller
From: Devin Heitmueller <dheitmueller@linuxtv.org> Add missing URB_NO_TRANSFER_DMA_MAP flag, since the use of consistent memory is not permitted for DMA on the ARM platform. Thanks to Paul Thomas <pthomas8589@gmail.com> for providing sample ARM hardware that was experiencing the oops (tested on the at91rm9200 based LinuxStamp). Thanks to David Brownell <david-b@pacbell.net> for providing insight into the ARM memory architecture. Priority: high Signed-off-by: Devin Heitmueller <dheitmueller@linuxtv.org>
2009-03-04em28xx: enable Compro VideoMate ForYou soundMauro Carvalho Chehab
From: Vitaly Wool <vital@embeddedalley.com> Compro VideoMate uses an external audio DSP chip, controlled via tvaudio module (tda9874a). This patch improves em28xx infrastructure to support an external audio processor and fixes the Compro VideoMate entry to work with it. Signed-off-by: Vitaly Wool <vital@embeddedalley.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-02-11em28xx: Coding style fixes and a typo correctionDouglas Schilling Landgraf
From: Nicola Soranzo <nsoranzo@tiscali.it> Lots of coding style fixes and a typo correction for em28xx. Priority: normal Signed-off-by: Nicola Soranzo <nsoranzo@tiscali.it> [dougsland@redhat.com: fixed a reject due to a change on em28xx-audio.c] Signed-off-by: Douglas Schilling Landgraf <dougsland@redhat.com>
2009-02-08em28xx: Fix for em28xx memory leak and function renameDouglas Schilling Landgraf
From: Robert Krakora <rob.krakora@messagenetsystems.com> Fix for em28xx memory leak and function rename Priority: high Signed-off-by: Robert Krakora <rob.krakora@messagenetsystems.com> Signed-off-by: Douglas Schilling Landgraf <dougsland@redhat.com>
2009-01-25em28xx: Fix for fail to submit URB with IRQs and Pre-emption DisabledDouglas Schilling Landgraf
From: Robert Krakora <rob.krakora@messagenetsystems.com> Trace: (Provided by Douglas) BUG: sleeping function called from invalid context at drivers/usb/core/urb.c:558 in_atomic():0, irqs_disabled():1 Pid: 4918, comm: sox Not tainted 2.6.27.5 #1 [<c04246d8>] __might_sleep+0xc6/0xcb [<c058c8b0>] usb_kill_urb+0x1a/0xd8 [<c0488e68>] ? __kmalloc+0x9b/0xfc [<c0488e85>] ? __kmalloc+0xb8/0xfc [<c058cd5a>] ? usb_alloc_urb+0xf/0x31 [<f8dd638c>] em28xx_isoc_audio_deinit+0x2f/0x6c [em28xx_alsa] [<f8dd6573>] em28xx_cmd+0x1aa/0x1c5 [em28xx_alsa] [<f8dd65e1>] snd_em28xx_capture_trigger+0x53/0x68 [em28xx_alsa] [<f8aa8674>] snd_pcm_do_start+0x1c/0x23 [snd_pcm] [<f8aa85d7>] snd_pcm_action_single+0x25/0x4b [snd_pcm] [<f8aa9833>] snd_pcm_action+0x6a/0x76 [snd_pcm] [<f8aa98f5>] snd_pcm_start+0x14/0x16 [snd_pcm] [<f8aae10e>] snd_pcm_lib_read1+0x66/0x273 [snd_pcm] [<f8aac5a3>] ? snd_pcm_kernel_ioctl+0x46/0x5f [snd_pcm] [<f8aae4a7>] snd_pcm_lib_read+0xbf/0xcd [snd_pcm] [<f8aad774>] ? snd_pcm_lib_read_transfer+0x0/0xaf [snd_pcm] [<f89feeb6>] snd_pcm_oss_read3+0x99/0xdc [snd_pcm_oss] [<f89fef9c>] snd_pcm_oss_read2+0xa3/0xbf [snd_pcm_oss] [<c064169d>] ? _cond_resched+0x8/0x32 [<f89ff0be>] snd_pcm_oss_read+0x106/0x150 [snd_pcm_oss] [<f89fefb8>] ? snd_pcm_oss_read+0x0/0x150 [snd_pcm_oss] [<c048c6e2>] vfs_read+0x81/0xdc [<c048c7d6>] sys_read+0x3b/0x60 [<c04039bf>] sysenter_do_call+0x12/0x34 ======================= The culprit in the trace is snd_pcm_action() which invokes a spin lock which disables pre-emption which disables an IRQ which causes the __might_sleep() function to fail the irqs_disabled() test. Since pre-emption is enabled then it is safe to de-allocate the memory if you first unlink each URB. In this instance you are safe since pre-emption is disabled. If pre-emption and irqs are not disabled then call usb_kill_urb(), else call usb_unlink_urb(). Thanks to Douglas for tracking down this bug originally!!! Priority: high Signed-off-by: Robert Krakora <rob.krakora@messagenetsystems.com> [dougsland@redhat.com: Fixed codyingstyle] Signed-off-by: Douglas Schilling Landgraf <dougsland@redhat.com>
2009-01-18em28xx: Fix for KWorld 330U AC97Mauro Carvalho Chehab
From: Robert Krakora <rob.krakora@messagenetsystems.com> Fix for KWorld 330U AC97 Many thanks to Devin and Mauro again!!! Priority: normal Signed-off-by: Robert Krakora <rob.krakora@messagenetsystems.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-01-18em28xx: Clock (XCLK) CleanupMauro Carvalho Chehab
From: Robert Krakora <rob.krakora@messagenetsystems.com> Clock (XCLK) Cleanup Priority: normal Signed-off-by: Robert Krakora <rob.krakora@messagenetsystems.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-01-12em28xx: fix audio output PCM IN selectionMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@redhat.com> Some em28xx devices use the PCM IN AC 97 PIN for digital audio. However, currently, the PCM IN selection is not set by the driver. This patch allows specifying the PCM IN expected output, via board description table. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-01-05From: Mauro Carvalho Chehab <mchehab@redhat.com>Mauro Carvalho Chehab
/home/v4l/master/v4l/em28xx-core.c:396:25: warning: symbol 'outputs' was not declared. Should it be static? /home/v4l/master/v4l/em28xx-input.c:324:6: warning: symbol 'em28xx_ir_start' was not declared. Should it be static? /home/v4l/master/v4l/em28xx-cards.c:1925:5: warning: symbol 'em28xx_init_dev' was not declared. Should it be static? Priority: normal Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2008-12-30v4l2: introduce v4l2_file_operations.Hans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> Introduce a struct v4l2_file_operations for v4l2 drivers. Remove the unnecessary inode argument. Move compat32 handling (and llseek) into the v4l2-dev core: this is now handled in the v4l2 core and no longer in the drivers themselves. Note that this changeset reverts an earlier patch that changed the return type of__video_ioctl2 from int to long. This change will be reinstated later in a much improved version. Priority: normal Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2008-12-29em28xx: Don't do AC97 vendor detection for i2s audio devicesDevin Heitmueller
From: Devin Heitmueller <dheitmueller@linuxtv.org> The current code was trying to query the AC97 registers for the vendor information even if it was clearly not a AC97 audio device (resulting in errors in the dmesg output). This was due to a bug in the way we did the check. Priority: normal Signed-off-by: Devin Heitmueller <dheitmueller@linuxtv.org>
2008-12-29em28xx: don't load em28xx-alsa for em2870 based devicesDevin Heitmueller
From: Devin Heitmueller <dheitmueller@linuxtv.org> Like the em2874, the em2870 does not have any analog support, so don't bother loading the em28xx-alsa module. Priority: normal Signed-off-by: Devin Heitmueller <dheitmueller@linuxtv.org>
2008-12-28em28xx: move usb probe code to a proper placeMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@redhat.com> em28xx-video were holding several code that are not specific to V4L2 interface. This patch moves the core code for em28xx-core, and usb probing code into em28xx-cards. This opens the possibility of breaking em28xx into a core module and a V4L2 module, loaded only on devices that have analog interfaces. Some cleanup may be done at em28xx-cards to optimize the config code. Priority: normal Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2008-12-22em28xx: Add suport for debugging AC97 anciliary chipsMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@redhat.com> The em28xx driver can be coupled to an anciliary AC97 chip. This patch allows read/write AC97 registers directly. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2008-12-20em28xx: use a more standard way to specify video formatsMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@redhat.com> This patch uses the same code for enumberating video formats that are present on cx88, bttv and saa7134 drivers. Priority: normal Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2008-11-27em28xx: Add support for suspend the device when not usedMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@redhat.com> Several chips may be turned off when the device is not used, like audio, video and dvb demods. This patch adds a gpio callback at the core structs to allow turning off such devices. Priority: normal Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2008-11-27em28xx: fix gpio settingsMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@redhat.com> A previous changeset moved gpio from em28xx struct into em28xx_board. However, the driver were not updated to properly honor those gpio's. Priority: normal Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2008-11-26em28xx: replace some magic by register descriptions where knownMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@redhat.com> Replaces all occurrences of em28xx_write_regs_req() and em28xx_write_reg() used to setup register names by em28xx_write_reg(). Also, documents the register names that are known. This patch were generated by this small perl script: my %reg_map = ( # Register table - the same as defined on parse_em28xx.pl script ); while (<>) { if (m/(.*)em28xx_write_regs_req\(dev\,\s*0x00\,\s*(.*)\,\s*\"\\x(..)\",\s*1\)\;(.*)/) { my $reg = $2; my $val = $3; $val =~ tr/A-f/a-f/; $reg = $reg_map{$reg} if defined($reg_map{$reg}); printf "$1em28xx_write_reg(dev, %s, 0x%s);$4\n", $reg, $val; } elsif (m/(.*)em28xx_write_regs\(dev\,\s*(.*)\,\s*\"\\x(..)\",\s*1\)\;(.*)/) { my $reg = $2; my $val = $3; $val =~ tr/A-f/a-f/; $reg = $reg_map{$reg} if defined($reg_map{$reg}); printf "$1em28xx_write_reg(dev, %s, 0x%s);$4\n", $reg, $val; } else { print $_; } } Priority: normal Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2008-11-26em28xx: Improve register log formatMauro Carvalho Chehab
Change log format to look more like URB transactions. In fact, setup and IN/OUT transactions are merged. This helps to debug the driver. From: Mauro Carvalho Chehab <mchehab@redhat.com> Priority: normal Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2008-11-25Remove duplicated fields on em28xx_board and em28xx structsMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@redhat.com> Several fields are duplicated on both structs. Let's just copy em28xx_board instead. A later cleanup could just copy the fields that are changed, in order to keep em28xx_board const. Priority: normal Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2008-11-25em28xx: Properly handles XCLK and I2C speedMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@redhat.com> The previous patches removed XCLK and I2C magic. Now, we finally know what those registers do. Also, only a very few cards need different setups for those. Instead of keeping the setups for those values inside the per-device hack magic switch, move the uncommon values to the board-specific struct, and have a common setup for all other boards. So, almost 100 lines of hacking magic were removed. A co-lateral effect of this patch is that it also fixes a bug at em28xx-core, where xclk were set, without taking any care about not overriding a previous xclk setup. Priority: normal Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2008-11-20Allow opening more than one output at the same timeMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@redhat.com> Some devices use more than one AC97 outputs. This patch allows such devices to properly work. Priority: normal Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2008-11-20em28xx: Add detection of Sigmatel Stac97xx series of AC97 devicesMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@redhat.com> Priority: normal Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2008-11-20em28xx: allow specifying audio outputMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@redhat.com> Some boards use different AC97 setups for output. This patch adds the capability of specifying the output to be used. Currently, only one output is selected, but the better is to allow user to select it via a mixer, on alsa driver. Priority: normal Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2008-11-20em28xx: Fix a stupid cut-and-paste errorMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@redhat.com> Priority: normal Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2008-11-20Introduce a new function that writes to a single register. This isMauro Carvalho Chehab
From: Devin Heitmueller <devin.heitmueller@gmail.com> useful because the vast majority of register writes are a single register, and this format permits or'ing register value bits together. Signed-off-by: Devin Heitmueller <devin.heitmueller@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2008-11-20em28xx: improve AC97 handlingMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@redhat.com> AC97 devices provide several input and outputs. However, before this patch, em28xx device weren't properly allowing the usage of ac97 possible combinations. Also, several input volumes were left untouched, instead of making sure that the volumes were set on mute state. This patch improves support for ac97 devices by allowing to use any inputs, and making sure that unused inputs are set on mute state. Yet, some work is still needed to select the AC97 output. Priority: normal Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2008-11-20em28xx: merge AC97 vendor id's into a single varMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@redhat.com> This makes easier to identify vendor ID, since AC97 vendors are generally identified by 3 bytes. The remaining byte is used by the vendor to identify its devices. Priority: normal Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2008-11-19em28xx: Improve audio handlingMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@redhat.com> This patch properly implements audio handling on em28xx. Before this patch, it was assumed that every device has an Empia 202 audio chip. However, this is not true. After this patch, specific AC97 chipset setup and configurations can be done. Priority: normal Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2008-11-19Avoid having two concurrent control URB'sMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@redhat.com> Now that we have a polling task for IR, there's a race condition, since IR can be polling while other operations are being doing. Also, we are now sharing the same urb_buf for both read and write control urb operations. So, we need a mutex. Thanks to Davin Heitmueller <devin.heitmueller@gmail.com> for warning me. Priority: normal Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2008-11-18em28xx: avoid allocating/dealocating memory on every control urbMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@redhat.com> Before this patch, every register setup on em28xx were dynamically allocating a temporary buffer for control URB's to be handled. To avoid this ping-pong, use, instead a pre-allocated buffer. Also, be sure that read control URB's also use the buffer, instead of relying on a stack buffer. Priority: high Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2008-11-17Remove the previous register namesMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@redhat.com> Previously, AC97 registers were named as if they were part of em28xx device, generating some confusion. Replace such names for a more general naming convention. Priority: normal Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2008-11-15make em28xx aux audio input workMauro Carvalho Chehab
From: Devin Heitmueller <devin.heitmueller@gmail.com> The attached patch makes the em28xx auxillary audio input work. Tested with the HVR-950. em28xx: make auxillary audio input work The tuner audio input was working but the aux input wasn't. Tested with the HVR-950. Signed-off-by: Devin Heitmueller <devin.heitmueller@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>