- 15 1月, 2014 9 次提交
-
-
由 Mauro Carvalho Chehab 提交于
Alsa has an special non-negative return code to indicate device removal at snd_em28xx_capture_pointer(). Use it, instead of an error code. Reviewed-by: NFrank Schäfer <fschaefer.oss@googlemail.com> Tested-by: NAntti Palosaari <crope@iki.fi> Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
-
由 Frank Schaefer 提交于
Remove some dead code from em28xx_v4l2_fini() and fix the leaking of the video, vbi and radio video_device struct memories. Signed-off-by: NFrank Schäfer <fschaefer.oss@googlemail.com> Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
-
由 Frank Schaefer 提交于
When the usb device is disconnected, the resources are no longer available, so there is no reason to keep them registered. This will also fix the various sysfs group removal warnings which we can see since kernel 3.13. Signed-off-by: NFrank Schäfer <fschaefer.oss@googlemail.com> Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
-
由 Frank Schaefer 提交于
[media] em28xx-v4l: move v4l2_ctrl_handler freeing and v4l2_device unregistration to em28xx_v4l2_fini v4l2_ctrl_handler_free() and v4l2_device_unregister() are currently only called when the last user closes the device and the device is already disconnected. But that's wrong, we need to call these functions whenever the em28xx-v4l extension is closed and we can already do this if the device is still opened by some users. Signed-off-by: NFrank Schäfer <fschaefer.oss@googlemail.com> Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
-
由 Frank Schaefer 提交于
Signed-off-by: NFrank Schäfer <fschaefer.oss@googlemail.com> Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
-
由 Frank Schaefer 提交于
Signed-off-by: NFrank Schäfer <fschaefer.oss@googlemail.com> Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
-
由 Frank Schaefer 提交于
Signed-off-by: NFrank Schäfer <fschaefer.oss@googlemail.com> Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
-
由 Frank Schaefer 提交于
[media] em28xx: move usb buffer pre-allocation and transfer uninit from the core to the dvb extension Signed-off-by: NFrank Schäfer <fschaefer.oss@googlemail.com> Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
-
由 Frank Schaefer 提交于
- bail out on unsupported VFL_TYPE - em28xx_set_mode() needs to be called for VBI and radio mode, too - em28xx_wake_i2c() needs to be called for VBI and radio mode, too - em28xx_resolution_set() also needs to be called for VBI Signed-off-by: NFrank Schäfer <fschaefer.oss@googlemail.com> Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
-
- 14 1月, 2014 6 次提交
-
-
由 Mauro Carvalho Chehab 提交于
In file included from /devel/v4l/temp/include/asm-generic/page.h:23:0, from /devel/v4l/temp/arch/c6x/include/asm/page.h:9, from /devel/v4l/temp/include/asm-generic/io.h:14, from arch/c6x/include/generated/asm/io.h:1, from /devel/v4l/temp/drivers/media/radio/tea575x.c:23: /devel/v4l/temp/arch/c6x/include/asm/setup.h:17:27: error: unknown type name ‘phys_addr_t’ extern int c6x_add_memory(phys_addr_t start, unsigned long size); It seems that, on such arch, the includes from asm/ should be after the ones from linux/. The proper fix would be to patch the arch files, but, as this fix is trivial, apply it. Also, we generally put the asm includes after the linux ones, anyway. Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
-
由 Mauro Carvalho Chehab 提交于
The "irq_handler" name is already defined there on a header file: /devel/v4l/temp/drivers/staging/media/lirc/lirc_parallel.c:223:13: error: conflicting types for ‘irq_handler’ static void irq_handler(void *blah) ^ In file included from /devel/v4l/temp/arch/mn10300/include/asm/reset-regs.h:16:0, from /devel/v4l/temp/arch/mn10300/include/asm/irq.h:18, from /devel/v4l/temp/include/linux/irq.h:24, from /devel/v4l/temp/arch/mn10300/include/asm/hardirq.h:16, from /devel/v4l/temp/include/linux/preempt_mask.h:5, from /devel/v4l/temp/include/linux/sched.h:25, from /devel/v4l/temp/include/linux/utsname.h:5, from /devel/v4l/temp/arch/mn10300/include/asm/elf.h:15, from /devel/v4l/temp/include/linux/elf.h:4, from /devel/v4l/temp/include/linux/module.h:14, from /devel/v4l/temp/drivers/staging/media/lirc/lirc_parallel.c:29: /devel/v4l/temp/arch/mn10300/include/asm/exceptions.h:107:24: note: previous declaration of ‘irq_handler’ was here extern asmlinkage void irq_handler(void); /devel/v4l/patchwork/drivers/staging/media/lirc/lirc_serial.c:653:20: error: conflicting types for ‘irq_handler’ static irqreturn_t irq_handler(int i, void *blah) ^ In file included from /devel/v4l/patchwork/arch/mn10300/include/asm/reset-regs.h:16:0, from /devel/v4l/patchwork/arch/mn10300/include/asm/irq.h:18, from /devel/v4l/patchwork/include/linux/irq.h:24, from /devel/v4l/patchwork/arch/mn10300/include/asm/hardirq.h:16, from /devel/v4l/patchwork/include/linux/preempt_mask.h:5, from /devel/v4l/patchwork/include/linux/sched.h:25, from /devel/v4l/patchwork/include/linux/utsname.h:5, from /devel/v4l/patchwork/arch/mn10300/include/asm/elf.h:15, from /devel/v4l/patchwork/include/linux/elf.h:4, from /devel/v4l/patchwork/include/linux/module.h:14, from /devel/v4l/patchwork/drivers/staging/media/lirc/lirc_serial.c:53: /devel/v4l/patchwork/arch/mn10300/include/asm/exceptions.h:107:24: note: previous declaration of ‘irq_handler’ was here extern asmlinkage void irq_handler(void); So, rename it, to avoid namespace conflicts. This patch fixes building media drivers with allyesconfig/almodconfig on mn10300 arch. Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
-
由 Mauro Carvalho Chehab 提交于
Fixes those warnings: drivers/staging/media/go7007/go7007-usb.c: In function 'go7007_usb_probe': drivers/staging/media/go7007/go7007-usb.c:1060: warning: 'go' is used uninitialized in this function While here, comment a code that will never run. Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
-
由 Mauro Carvalho Chehab 提交于
drivers/media/dvb-frontends/dib8000.c: In function 'dib8000_get_time_us': drivers/media/dvb-frontends/dib8000.c:3957: warning: 'interleaving' may be used uninitialized in this function drivers/media/dvb-frontends/dib8000.c:3956: warning: 'rate_denum' may be used uninitialized in this function Those are actually false positives, but it doesn't hurt cleaning them. Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
-
由 Mauro Carvalho Chehab 提交于
When compiling with avr32, it gets those errors: drivers/media/dvb-frontends/dib8000.c: In function 'dib8000_get_stats': drivers/media/dvb-frontends/dib8000.c:4121: warning: integer constant is too large for 'long' type Fix integer representation to avoid overflow. Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
-
由 Mauro Carvalho Chehab 提交于
This function isn't used nowhere outside the same .c file. Fixes this warning: drivers/media/radio/si4713/radio-usb-si4713.c:418:5: warning: no previous prototype for 'si4713_register_i2c_adapter' [-Wmissing-prototypes] int si4713_register_i2c_adapter(struct si4713_usb_device *radio) ^ Cc: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
-
- 13 1月, 2014 9 次提交
-
-
由 Mauro Carvalho Chehab 提交于
Fix two warns below, by commenting the unused code: drivers/media/platform/sh_vou.c: In function 'sh_vou_configure_geometry': drivers/media/platform/sh_vou.c:446:49: warning: variable 'height_max' set but not used [-Wunused-but-set-variable] unsigned int black_left, black_top, width_max, height_max, ^ drivers/media/platform/sh_vou.c: In function 'sh_vou_isr': drivers/media/platform/sh_vou.c:1056:13: warning: variable 'side' set but not used [-Wunused-but-set-variable] static int side; ^ Cc: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Cc: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
-
由 Hans Verkuil 提交于
The video_type was never set correctly for PAL: it's not a bool, instead it is a register value. Signed-off-by: NHans Verkuil <hans.verkuil@cisco.com> Tested-by: NHans Verkuil <hans.verkuil@cisco.com> Reported-by: tomdev@freenet.de Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
-
由 Tim Mester 提交于
Added command line parameter preallocate_big_buffers so that the digital transfer buffers can be allocated when the driver is registered. They do not have to be allocated every time a feed is started. Signed-off-by: NTim Mester <tmester@ieee.org> Acked-by: NDevin Heitmueller <dheitmueller@kernellabs.com> Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
-
由 Tim Mester 提交于
Free what was allocated if there is a failure allocating transfer buffers. Stop the feed on a start feed error. The stop feed is not always called if start feed fails. If the feed is not stopped on error, then the driver will be stuck so that it can never start feeding again. [m.chehab@samsung.com: CodingStyle cleanup] Signed-off-by: NTim Mester <tmester@ieee.org> Acked-by: NDevin Heitmueller <dheitmueller@kernellabs.com> Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
-
由 Kiran AVND 提交于
Add v4l2 controls to set desired profile for VP8 encoder. Acceptable levels for VP8 encoder are 0: Version 0 1: Version 1 2: Version 2 3: Version 3 Signed-off-by: NKiran AVND <avnd.kiran@samsung.com> Signed-off-by: NPawel Osciak <posciak@chromium.org> Signed-off-by: NArun Kumar K <arun.kk@samsung.com> Signed-off-by: NKamil Debski <k.debski@samsung.com> Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
-
由 Marek Szyprowski 提交于
s5p_mfc_get_node_type() relies on get_index() helper function, which in turn relies on video_device index numbers assigned on driver registration. All this code is not really needed, because there is already access to respective video_device structures via common s5p_mfc_dev structure. This fixes the issues introduced by patch 1056e438 ("v4l2-dev: Fix race condition on __video_register_device"), which has been merged in v3.12-rc1. Signed-off-by: NMarek Szyprowski <m.szyprowski@samsung.com> Cc: stable@vger.kernel.org Signed-off-by: NKamil Debski <k.debski@samsung.com> Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
-
由 Arun Kumar K 提交于
Adds v4l2 controls to set MIN, MAX QP values and I, P frame QP for vp8 encoder. Signed-off-by: NKiran AVND <avnd.kiran@samsung.com> Signed-off-by: NArun Kumar K <arun.kk@samsung.com> Signed-off-by: NKamil Debski <k.debski@samsung.com> Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
-
由 Mauro Carvalho Chehab 提交于
Now that em28xx can be compiled without V4L support, we should call em28xx_setup_xc3028() on both em28xx-v4l and em28xx-dvb modules. Reported-by: NChris Lee <updatelee@gmail.com> Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
-
由 Mauro Carvalho Chehab 提交于
The buffer size on nxt200x is not enough: ... > Dec 20 10:52:04 rich kernel: [ 31.747949] nxt200x: nxt200x_writebytes: i2c wr reg=002c: len=255 is too big! ... Increase it to 256 bytes. Reported-by: NRich Freeman <rich0@gentoo.org> Cc: stable@vger.kernel.org Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
-
- 12 1月, 2014 10 次提交
-
-
由 Mauro Carvalho Chehab 提交于
If em28xx is disconnected, return -ENODEV to all PCM callbacks. Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
-
由 Mauro Carvalho Chehab 提交于
The URB calculus code may eventually be moved to some other place, like at pcm open, if it ends by needing more setups, like working with different bit rates, or different audio latency. So, move it into a separate routine. That also makes the code more readable. No functional changes. Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
-
由 Mauro Carvalho Chehab 提交于
Pulseaudio has the bad habit of stopping a streaming audio if a device, opened in non-block mode, waits. It is impossible to avoid em28xx to wait, as it will send commands via I2C, and other I2C operations may be happening (firmware transfers, Remote Controller polling, etc). Yet, as each em28xx subdriver locks em28xx-dev to protect the access to the hardware, it is possible to minimize the audio glitches by returning -EAGAIN to pulseaudio, if the lock is already taken by another subdriver. Reported-by: NAntti Palosaari <crope@iki.fi> Tested-by: NAntti Palosaari <crope@iki.fi> Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
-
由 Mauro Carvalho Chehab 提交于
If the period size is wrong, userspace will assume a wrong delay any may negociate an inadequate value. The em28xx devices use 8 for URB interval, in microframes, and the driver programs it to have 64 packets. That means that the IRQ sampling period is 125 * 8 * 64, with is equal to 64 ms. So, that's the minimal latency with the current settings. It is possible to program a lower latency, by using less than 64 packets, but that increases the amount of bandwitdh used, and the number of IRQ events per second. In any case, in order to support it, the driver logic should be changed to fill those parameters in realtime. Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
-
由 Mauro Carvalho Chehab 提交于
The current code hardcodes the number of audio URBs, the number of packets per URB and the maximum URB size. This is not a good idea, as it: - wastes more bandwidth than necessary, by using a very large number of packets; - those constants are bound to an specific scenario, with a bandwidth of 48 kHz; - don't take the maximum endpoint size into account; - with urb->interval = 1 on xHCI, those constraints cause a "funny" setup: URBs with 64 packets inside, with only 24 bytes total. E. g. a complete waste of space. Change the code to do dynamic URB audio calculus and allocation. For now, use the same constraints as used before this patch, to avoid regressions. A good scenario (tested) seems to use those defines, instead: #define EM28XX_MAX_AUDIO_BUFS 8 #define EM28XX_MIN_AUDIO_PACKETS 2 But let's not do such change here, letting the optimization to happen on latter patches, after more tests. Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
-
由 Mauro Carvalho Chehab 提交于
De-allocate memory and free sound if an error happens. Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
-
由 Mauro Carvalho Chehab 提交于
Just filling urb->interval with 1 is wrong, and causes a different behaviour with xHCI. With EHCI, the URB size is typically 192 bytes. However, as xHCI specifies intervals in microframes, the URB size becomes too short (24 bytes). With this patch, the interval will be properly initialized, and the device will behave the same if connected into a xHCI or an EHCI device port. Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
-
由 Mauro Carvalho Chehab 提交于
If i2c_debug is enabled, we splicitly want to know when a device fails with timeout. If i2c_debug==2, this is already provided, for each I2C transfer that fails. However, most of the time, we don't need to go that far. We just want to know that I2C transfers fail. So, add such errors for normal (ret == 0x10) I2C aborted timeouts. Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
-
由 Mauro Carvalho Chehab 提交于
The I2C output messages is too polluted. Clean it a little bit, by: - use the proper core support for memory dumps; - hide most stuff under the i2c_debug umbrella; - add the missing KERN_CONT where needed; - use 2 levels or verbosity. Only the second one will show the I2C transfer data. Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
-
由 Mauro Carvalho Chehab 提交于
Follow the error codes for I2C as described at Documentation/i2c/fault-codes. In the case of the I2C status register (0x05), this is mapped into: - ENXIO - when reg 05 returns 0x10 - ETIMEDOUT - when the device is not temporarily not responding (e. g. reg 05 returning something not 0x10 or 0x00) - EIO - for generic I/O errors that don't fit into the above. In the specific case of 0-byte reads, used only during I2C device probing, it keeps returning -ENODEV. TODO: return EBUSY when reg 05 returns 0x20 on em2874 and upper. Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
-
- 10 1月, 2014 6 次提交
-
-
由 Mauro Carvalho Chehab 提交于
In the lack of a better spec, let's assume the timeout values compatible with SMBus spec: http://smbus.org/specs/smbus110.pdf at chapter 8 - Electrical Characteristics of SMBus devices Ok, SMBus is a subset of I2C, and not all devices will be following it, but the timeout value before this patch was not even following the spec. So, while we don't have a better guess for it, use 35 + 1 ms as the timeout. Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
-
由 Mauro Carvalho Chehab 提交于
This macro is used by all em28xx devices, and not just em2800. Reviewed-by: NFrank Schäfer <fschaefer.oss@googlemail.com> Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
-
由 Mauro Carvalho Chehab 提交于
The I2C wait completion/timeout logic currently assumes that msleep(5) will wait exaclty 5 ms. This is not true at all, as it depends on CONFIG_HZ. Convert it to use jiffies, in order to not wait for more time than needed. Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
-
由 Mauro Carvalho Chehab 提交于
Instead of assuming that msleep() is precise, use a jiffies based code to wait for AC97 to be available. Reviewed-by: NFrank Schäfer <fschaefer.oss@googlemail.com> Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
-
由 Mauro Carvalho Chehab 提交于
That removes those timeout errors: [ 3675.930940] xc2028 19-0061: Device is Xceive 3028 version 1.0, firmware version 2.7 [ 3676.060487] xc2028 19-0061: divisor= 00 00 8d d0 (freq=567.250) [ 3676.349449] xc2028 19-0061: Putting xc2028/3028 into poweroff mode. [ 3698.247645] xc2028 19-0061: xc2028_get_reg 0002 called [ 3698.253276] em2860 #0: I2C transfer timeout on writing to addr 0xc2 [ 3698.253301] xc2028 19-0061: i2c input error: rc = -121 (should be 2) [ 3698.253327] xc2028 19-0061: xc2028_signal called [ 3698.253339] xc2028 19-0061: xc2028_get_reg 0002 called [ 3698.259283] em2860 #0: I2C transfer timeout on writing to addr 0xc2 [ 3698.259312] xc2028 19-0061: i2c input error: rc = -121 (should be 2) Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
-
由 Mauro Carvalho Chehab 提交于
Only send a power down command for the device if it is not already in power down state. That prevents a timeout when trying to talk with the device. Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
-