summaryrefslogtreecommitdiffstats
path: root/drivers/media
Commit message (Collapse)AuthorAgeFilesLines
* [media] ivtv: switch to the v4l core lockHans Verkuil2012-01-164-54/+39Star
| | | | | | Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Acked-by: Andy Walls <awalls@md.metrocast.net> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] cx18: remove exclusive open of radio deviceHans Verkuil2012-01-161-27/+14Star
| | | | | | | | | For some reason the cx18 driver could open the radio device only once. Remove this limitation. Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Acked-by: Andy Walls <awalls@md.metrocast.net> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] ivtv: remove exclusive radio openHans Verkuil2012-01-161-33/+24Star
| | | | | | | | | | | For some reason the /dev/radio device was implemented as an exclusive open: you could open it only once and not a second time. Remove this limitation. Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Acked-by: Andy Walls <awalls@md.metrocast.net> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] v4l2-ioctl: make tuner 'type' check more strict for S_FREQUENCYHans Verkuil2012-01-161-1/+7
| | | | | | | | | As per the feature removal document, make the tuner type check more strict so that it is no longer possible to set the radio frequency through a video node or the TV frequency through a radio node. Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] omap_vout: add missing OVERLAY_OUTPUT cap and set V4L2_FBUF_FLAG_OVERLAYHans Verkuil2012-01-161-2/+5
| | | | | | | | | | | | The omap_vout driver has an output overlay, but never advertised that capability. The driver should also set the V4L2_FBUF_FLAG_OVERLAY flag. Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> CC: Archit Taneja <archit@ti.com> CC: Vaibhav Hiremath <hvaibhav@ti.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] zoran: do not set V4L2_FBUF_FLAG_OVERLAYHans Verkuil2012-01-161-1/+0Star
| | | | | | | The zoran driver does not support this flag, so don't set it. Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] cx23885: handle errors from videobuf_dvb_get_frontend()Dan Carpenter2012-01-161-3/+4
| | | | | | | | The error handling in the original code wasn't complete so static checkers complained about a potential NULL deference. Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] dvb-core: preserve the delivery system at cache clearMauro Carvalho Chehab2012-01-151-0/+3
| | | | | | | | | The changeset 240ab508aa is incomplete, as the first thing that happens at cache clear is to do a memset with 0 to the cache. So, the delivery system needs to be explicitly preserved there. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] dvb-core: fix a regression with MythTVMauro Carvalho Chehab2012-01-151-0/+9
| | | | | | | | | | | | | | | As reported by Lawrence[1], MythTV 0.24.1 does the wrong thing with a DVBv5 call: it fills the delivery system with SYS_UNDEFINED, expecting that the DVB core would work with that. This used to work by accident, as the DVB core were missing the check for the supported delivery systems. Yet, fixing it is easy, so let's add a logic to handle this case, to provide backward compatibility. [1] http://patchwork.linuxtv.org/patch/8314/ Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] revert patch: HDIC HD29L2 DMB-TH USB2.0 reference design driverAntti Palosaari2012-01-154-420/+0Star
| | | | | | | | | I added it by mistake. It is useless as no real hardware. It even uses even Cypress FX2, general USB bridge chip, default IDs that makes driver load all FX2 devices having default ID... Signed-off-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* mb86a20s: Add a few more register settings at the init seqMauro Carvalho Chehab2012-01-111-4/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some time ago, Manoel sent us a patch adding more stuff to the init sequence. However, his patch were also doing non-related stuff, by changing the init logic without any good reason. So, it was asked for him to submit a patch with just the data that has changed, in order to allow us to better analyze it. As he didn't what it was requested, I finally found some time to dig into his init sequence and add it here. Basically, new stuff is added there. There are a few changes: 1) The removal of the extra (duplicated) logic that puts the chip into the serial mode; 2) Some Viterbi VBER measurement init data was changed from 0x00 to 0xff for layer A, to match what was done for layers B and C. None of those caused any regressions and both make sense on my eyes. The other parameters additions actually increased the tuning quality for some channels. Yet, some channels that were previously discovered with scan disappered, while others appeared instead. This were tested in Brasilia, with an external antena. At the overall, it is now a little better. So, better to add these, and then try to figure out a configuration that would get even better scanning results. Reported-by: Manoel Pinheiro <pinusdtv@hotmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* mb86a20s: Group registers into the same lineMauro Carvalho Chehab2012-01-111-228/+87Star
| | | | | | | | | On mb86a20s, some registers have sub-addresses, while others not. In order to make easier to compare different settings, group them. No functional changes in this patch. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] [PATCH] don't reset the delivery system on DTV_CLEARMauro Carvalho Chehab2012-01-111-1/+2
| | | | | | | | As a DVBv3 application may be relying on the delivery system, don't reset it at DTV_CLEAR. For DVBv5 applications, the delivery system should be set anyway. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] [BUG] it913x-fe fix typo error making SNR levels unstableMalcolm Priestley2012-01-111-1/+1
| | | | | | | Fix error where SNR unstable and jumps levels. Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] cx23885: Query the CX25840 during enum_input for statusSteven Toth2012-01-111-0/+9
| | | | | | | | We can pass a NO_SIGNAL video decoder state back to applications if it's available. Signed-off-by: Steven Toth <stoth@kernellabs.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] cx25840: Add support for g_input_statusSteven Toth2012-01-111-0/+16
| | | | | | | Allow bridge drivers to query status. Signed-off-by: Steven Toth <stoth@kernellabs.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] rc-videomate-m1f.c Rename to match remote controler nameSamuel Rakitnican2012-01-112-13/+13
| | | | | | | | | | | | | | | | This remote was added with support for card Compro VideoMate M1F. This remote is shipped with various Compro cards, not this one only. Furthermore this remote can be bought separately under name Compro VideoMate K100. http://compro.com.tw/en/product/k100/k100.html So give it a proper name. [mchehab@redhat.com: Fix the Makefile] Signed-off-by: Samuel Rakitničan <samuel.rakitnican@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] drivers: media: au0828: Fix dependency for VIDEO_AU0828Fabio Estevam2012-01-111-0/+1
| | | | | | | | | Fix the following build warning: warning: (VIDEO_AU0828) selects DVB_AU8522 which has unmet direct dependencies (MEDIA_SUPPORT && DVB_CAPTURE_DRIVERS && DVB_CORE && I2C && VIDEO_V4L2) Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] convert drivers/media/* to use module_platform_driver()Axel Lin2012-01-1125-406/+26Star
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch converts the drivers in drivers/media/* to use the module_platform_driver() macro which makes the code smaller and a bit simpler. Cc: Mauro Carvalho Chehab <mchehab@infradead.org> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Cc: Kyungmin Park <kyungmin.park@samsung.com> Cc: Hans Verkuil <hans.verkuil@cisco.com> Cc: "Richard Röjfors" <richard.rojfors@pelagicore.com> Cc: "Matti J. Aaltonen" <matti.j.aaltonen@nokia.com> Cc: Lucas De Marchi <lucas.demarchi@profusion.mobi> Cc: Manjunath Hadli <manjunath.hadli@ti.com> Cc: Muralidharan Karicheri <m-karicheri2@ti.com> Cc: Anatolij Gustschin <agust@denx.de> Cc: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Cc: Marek Szyprowski <m.szyprowski@samsung.com> Cc: Robert Jarzmik <robert.jarzmik@free.fr> Cc: Jonathan Corbet <corbet@lwn.net> Cc: Daniel Drake <dsd@laptop.org> Signed-off-by: Axel Lin <axel.lin@gmail.com> Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Acked-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Acked-by: Marek Szyprowski <m.szyprowski@samsung.com> Acked-by: Matti J. Aaltonen <matti.j.aaltonen@nokia.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] drivers: video: cx231xx: Fix dependency for VIDEO_CX231XX_DVBFabio Estevam2012-01-111-1/+1
| | | | | | | | | Fix the following build warning: warning: (VIDEO_CX231XX_DVB) selects DVB_MB86A20S which has unmet direct dependencies (MEDIA_SUPPORT && DVB_CAPTURE_DRIVERS && DVB_CORE && I2C) Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] Exynos4 JPEG codec v4l2 driverAndrzej Pietrasiewicz2012-01-117-0/+2158
| | | | | | | | | | | | | | | Add driver for the JPEG codec IP block available in Samsung Exynos SoC series. The driver is implemented as a V4L2 mem-to-mem device. It exposes two video nodes to user space, one for the encoding part, and one for the decoding part. Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Reviewed-by: Sakari Ailus <sakari.ailus@iki.fi> Reviewed-by: Sylwester Nawrocki <s.nawrocki@samsung.com> Reviewed-by: Tomasz Stanislawski <t.stanislaws@samsung.com> Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] v4l: s5p-tv: mixer: fix setup of VP scalingTomasz Stanislawski2012-01-111-4/+4
| | | | | | | | | | Adjusting of Video Processor's scaling factors was flawed. It bounded scaling to range 1/16 to 1/1. The correct range should be 1/4 to 4/1. This patch fixes this bug. Signed-off-by: Tomasz Stanislawski <t.stanislaws@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] v4l: s5p-tv: mixer: add support for selection APITomasz Stanislawski2012-01-114-196/+425
| | | | | | | | | | This patch add support for V4L2 selection API to s5p-tv driver. Moreover it removes old API for cropping. Old applications would still work because the crop ioctls are emulated using the selection API. Signed-off-by: Tomasz Stanislawski <t.stanislaws@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] v4l: emulate old crop API using extended crop/compose APITomasz Stanislawski2012-01-111-6/+76
| | | | | | | | | | This patch allows new video drivers to work correctly with applications that use the old-style crop API. The old crop ioctl is emulated by using selection callbacks. Signed-off-by: Tomasz Stanislawski <t.stanislaws@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] v4l: add support for selection apiTomasz Stanislawski2012-01-112-0/+36
| | | | | | | | | | This patch introduces new api for a precise control of cropping and composing features for video devices. The new ioctls are VIDIOC_S_SELECTION and VIDIOC_G_SELECTION. Signed-off-by: Tomasz Stanislawski <t.stanislaws@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] hd29l2: fix review findingsAntti Palosaari2012-01-111-3/+3
| | | | | | | | Fix some issues pointed out by Mauro. Mauro Carvalho Chehab <mchehab@redhat.com> Signed-off-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] dvb-core: define general callback value for demodulatorAntti Palosaari2012-01-111-0/+1
| | | | | | | Allow use of that general callback for demod too. Signed-off-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] hd29l2: add debug for used IF frequencyAntti Palosaari2012-01-111-1/+1
| | | | | Signed-off-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] hd29l2: synch for latest DVB core changesAntti Palosaari2012-01-111-6/+4Star
| | | | | Signed-off-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] HDIC HD29L2 DMB-TH USB2.0 reference design driverAntti Palosaari2012-01-114-0/+420
| | | | | Signed-off-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] HDIC HD29L2 DMB-TH demodulator driverAntti Palosaari2012-01-115-0/+1251
| | | | | Signed-off-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] em28xx: Fix tuner_type for Terratec Cinergy 200 USBSascha Sommer2012-01-111-1/+1
| | | | | | | | | The card definition of the Terratec Cinergy 200 USB uses the wrong tuner type. Therefore some channels are currently missing. Attached patch fixes this problem. Signed-off-by: Sascha Sommer <saschasommer@freenet.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] em28xx: increase maxwidth for em2800Sascha Sommer2012-01-112-2/+14
| | | | | | | | | | | | | | The MaxPacketSize for em2800 based devices is too small to capture at full resolution. Therefore scale down when the maximum frame size is selected. The previous workaround that simply reduced the X resolution cannot be used because it crops a part of the input as the em2800 can only scale down with a factor of 0.5. reverts commits 1ca31892e and fb3de0398ab. [mchehab@redhat.com: Fix CodingStyle] Signed-off-by: Sascha Sommer <saschasommer@freenet.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] em28xx: Do not modify EM28XX_R06_I2C_CLK for em2800Sascha Sommer2012-01-111-1/+2
| | | | | | | | | | | | | writing the EM28XX_R06_I2C_CLK register leads to the problem that the i2c bus on the Terratec Cinergy 200 USB is no longer usable when the system is rebooted. The device needs to be unplugged in order to bring it back to life. Attached patch conditionally disables the write in em28xx_pre_card_setup() like it is already done in em28xx_card_setup(). Signed-off-by: Sascha Sommer <saschasommer@freenet.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] em28xx: Fix: I2C_CLK write error message checks wrong return codeSascha Sommer2012-01-111-1/+1
| | | | | | | | It looks like the return value check that is done after setting the I2C speed checks the wrong return code. Signed-off-by: Sascha Sommer <saschasommer@freenet.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] em28xx: simplify argument passing to em28xx_init_dev()Thomas Petazzoni2012-01-111-3/+2Star
| | | | | | | | | The 'struct em28xx *' pointer was passed by reference to the em28xx_init_dev() function, for no reason. Instead, just pass it by value, which is much more logical and simple. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] af9005, af9015: use symbolic names for USB id table indicesJonathan Nieder2012-01-112-87/+252
| | | | | | | | | | | | | | | | | | | | | | The af9005_properties and af9015_properties tables make use of USB ids from the USB id tables with hardcoded indices, as in "&af9015_usb_table[30]". Adding new entries before the end breaks such references, so everyone has had to carefully tiptoe to only add entries at the end of the list. In the spirit of "dw2102: use symbolic names for dw2102_table indices", use C99-style initializers with symbolic names for each index to avoid this. In the new regime, properties tables referring to the USB ids have names like "&af9015_usb_table[CINERGY_T_STICK_RC]" that do not change meaning when items in the USB id table are reordered. Encouraged-by: Mauro Carvalho Chehab <mchehab@redhat.com> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Acked-by: Luca Olivetti <luca@ventoso.org> Acked-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] cx231xx: use URB_NO_TRANSFER_DMA_MAP on URBs allocated with ↵Thomas Petazzoni2012-01-113-5/+5
| | | | | | | | | | | | | | | | | | | | | | usb_alloc_urb() URBs allocated with usb_alloc_urb() are allocated from DMA-coherent areas, and therefore it is not necessary to call dma_map_single() on such buffers. Worst, on ARM, calling dma_map_single() on a DMA-coherent buffer will trigger a BUG_ON() in arch/arm/mm/dma-mapping.c. Therefore, we mark all URBs allocated with usb_alloc_urb() with the URB_NO_TRANSFER_DMA_MAP transfer_flags, so that the USB core does not do dma_map_single()/dma_unmap_single() on those buffers. This is similar to 882787ff8fdeb0be790547ee9b22b281095e95da for the gspca driver, and has already been discussed on the linux-media list in the past: http://www.mail-archive.com/linux-media@vger.kernel.org/msg37086.html. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] cx231xx: simplify argument passing to cx231xx_init_dev()Thomas Petazzoni2012-01-111-3/+2Star
| | | | | | | | | The 'struct cx231xx *' pointer was passed by reference to the cx231xx_init_dev() function, for no reason. Instead, just pass it by value, which is much more logical and simple. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] mxl5007t: bugfix DVB-T 7 MHz and 8 MHz bandwidthAntti Palosaari2012-01-111-0/+2
| | | | | | | | | DVB-T did not work at all - only 6 MHz was working but it is not commonly used. Fix it. Signed-off-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] tda18271-fe: Fix support for ISDB-TMauro Carvalho Chehab2012-01-111-0/+1
| | | | Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] cx231xx: fix device disconnect checksMauro Carvalho Chehab2012-01-116-17/+29
| | | | | | | | | | | | | | | | The driver were using DEV_MISCONFIGURED on some places, and DEV_DISCONNECTED on others. In a matter of fact, DEV_MISCONFIGURED were set only during the usb disconnect callback, with was confusing. Also, the alsa driver never checks if the device is present, before doing some dangerous things. Remove DEV_MISCONFIGURED, replacing it by DEV_DISCONNECTED. Also, fixes the other usecases for DEV_DISCONNECTED. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] cx231xx: cx231xx_devused is racyMauro Carvalho Chehab2012-01-111-18/+18
| | | | | | | cx231xx_devused is racy. Re-implement it in a proper way, to remove the risk of mangling it. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] cx231xx: Fix unregister logicMauro Carvalho Chehab2012-01-115-22/+24
| | | | | | | | | | | | | | | | | | | | | There are several weirdness at the unregister logic. First of all, IR has a poll thread. This thread needs to be removed, as it uses some resources associated to the main driver. So, the driver needs to explicitly unregister the I2C client for ir-kbd-i2c. If, for some reason, the driver needs to wait for a close() to happen, not all memories will be freed, because the free logic were in the wrong place. Also, v4l2_device_unregister() seems to be called too early, as devices are still using it. Finally, even with the device disconnected, there is one USB function call that will still try to talk with it. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] mb86a20s: implement get_frontend()Mauro Carvalho Chehab2012-01-111-3/+193
| | | | | | Reports the auto-detected parameters to userspace. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] cx231xx-input: stop polling if the device got removed.Mauro Carvalho Chehab2012-01-112-5/+18
| | | | | | | | If the device got removed, stops polling it. Also, un-registers it at input/evdev, as it won't work anymore. We can't free the IR structure yet, as the ir_remove method will be called later. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] cx231xx: remove useless 'lif' variable in cx231xx_usb_probe()Thomas Petazzoni2012-01-111-7/+0Star
| | | | | | | | Now that we set the intfdata on the right interface, the 'lif' variable is useless. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] cx231xx: fix crash after load/unload/load of moduleThomas Petazzoni2012-01-111-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The following sequence of commands was triggering a kernel crash in cdev_get(): modprobe cx231xx rmmod cx231xx modprobe cx231xx v4l2grab -n 1 The problem was that cx231xx_usb_disconnect() was not doing anything because the test: if (!dev->udev) return; was reached (i.e, dev->udev was NULL). This is due to the fact that the 'dev' pointer placed as intfdata into the usb_interface structure had the wrong value, because cx231xx_probe() was doing the usb_set_intfdata() on the wrong usb_interface structure. For some reason, cx231xx_probe() was doing the following: static int cx231xx_usb_probe(struct usb_interface *interface, const struct usb_device_id *id) { struct usb_interface *lif = NULL; [...] /* store the current interface */ lif = interface; [...] /* store the interface 0 back */ lif = udev->actconfig->interface[0]; [...] usb_set_intfdata(lif, dev); [...] retval = v4l2_device_register(&interface->dev, &dev->v4l2_dev); [...] } So, the usb_set_intfdata() was done on udev->actconfig->interface[0] and not on the 'interface' passed as argument to the ->probe() and ->disconnect() hooks. Later on, v4l2_device_register() was initializing the intfdata of the correct usb_interface structure as a pointer to the v4l2_device structure. Upon unregistration, the ->disconnect() hook was getting the intfdata of the usb_interface passed as argument... and casted it to a 'struct cx231xx *' while it was in fact a 'struct v4l2_device *'. The correct fix seems to just be to set the intfdata on the proper interface from the beginning. Now, loading/unloading/reloading the driver allows to use the device properly. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] dvb_ca_en50221: fix compilation breakageMauro Carvalho Chehab2012-01-101-0/+4
| | | | | | | | | | | | | | | | As reported by Toralf: the build failed with : CC [M] drivers/media/dvb/dvb-core/dvb_ca_en50221.o In file included from arch/x86/include/asm/uaccess.h:573:0, from include/linux/poll.h:14, from drivers/media/dvb/dvb-core/dvbdev.h:27, from drivers/media/dvb/dvb-core/dvb_ca_en50221.h:27, from drivers/media/dvb/dvb-core/dvb_ca_en50221.c:41: In function "copy_from_user", inlined from "dvb_ca_en50221_io_write" at drivers/media/dvb/dvb-core/dvb_ca_en50221.c:1314:26: arch/x86/include/asm/uaccess_32.h:211:26: error: call to "copy_from_user_overflow" declared with attribute error: copy_from_user() buffer size is not provably correct Reported-by: Toralf Foerster <toralf.foerster@gmx.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] Added model Sveon STV40Mario Ceresa2012-01-071-0/+2
| | | | | Signed-off-by: Mario Ceresa <mrceresa@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>