summaryrefslogtreecommitdiffstats
path: root/drivers/staging/tm6000
Commit message (Collapse)AuthorAgeFilesLines
* v4l-dvb: update gfp/slab.h includesTejun Heo2010-06-284-0/+4
| | | | | | | | | | Implicit slab.h inclusion via percpu.h is about to go away. Make sure gfp.h or slab.h is included as necessary. Signed-off-by: Tejun Heo <tj@kernel.org> Cc: Stephen Rothwell <sfr@canb.auug.org.au> Cc: Mauro Carvalho Chehab <mchehab@infradead.org> Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
* V4L/DVB: tm6000: add DVB support for tuner xc5000Stefan Ringel2010-06-011-20/+49
| | | | | | [mchehab@redhat.com: Fix compilation breakage due to duplicate cfg config delaration without {}] Signed-off-by: Stefan Ringel <stefan.ringel@arcor.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: tm6000: set variable dev_mode in function tm6000_start_streamStefan Ringel2010-06-011-1/+4
| | | | | | | set variable dev_mode in function tm6000_start_stream and check mode Signed-off-by: Stefan Ringel <stefan.ringel@arcor.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: tm6000: Properly select the tunersStefan Ringel2010-06-011-1/+2
| | | | | Signed-off-by: Stefan Ringel <stefan.ringel@arcor.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: tm6000: Add control to the power ledStefan Ringel2010-06-012-0/+32
| | | | | | | Turn power led off, if device is disconnected Signed-off-by: Stefan Ringel <stefan.ringel@arcor.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: tm6000: bugfix stabilizing urb dataStefan Ringel2010-06-011-2/+2
| | | | | Signed-off-by: Stefan Ringel <stefan.ringel@arcor.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: tm6000: bugfix video imageStefan Ringel2010-06-011-43/+45
| | | | | | | | bugfix: Avoid loosing frames, causing image delays on some of the image lines. [mchehab@redhat.com: Fix compilation breakage by merging with the patch fix] Signed-off-by: Stefan Ringel <stefan.ringel@arcor.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: tm6000: add vbi message inside the type switchStefan Ringel2010-06-011-2/+4
| | | | | | | add case line for vbi message Signed-off-by: Stefan Ringel <stefan.ringel@arcor.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: tm6000: bugfix incorrect sizeStefan Ringel2010-06-011-1/+5
| | | | | Signed-off-by: Stefan Ringel <stefan.ringel@arcor.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: tm6000, reset I2C bus functionDmitri Belimov2010-06-013-15/+20
| | | | | | | Add new function for reset I2C bus. Rework some code for use this function. Signed-off-by: Beholder Intl. Ltd. Dmitry Belimov <d.belimov@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: tm6000: Remove an extra ; symbolStefan Ringel2010-06-011-1/+1
| | | | | Signed-off-by: Stefan Ringel <stefan.ringel@arcor.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: tm6000: add extension module supportStefan Ringel2010-06-014-2/+145
| | | | | | | add module init over tm6000 extension Signed-off-by: Stefan Ringel <stefan.ringel@arcor.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB (13554a): v4l: Use the video_drvdata function in driversMauro Carvalho Chehab2010-05-193-28/+2
| | | | | | | | | | | | | | | Fix all device drivers to use the video_drvdata function instead of maintaining a local list of minor to private data mappings. Call video_set_drvdata to register the driver private pointer when not already done. Where applicable, the local list of mappings is completely removed when it becomes unused. [mchehab.redhat.com: patch broke into two. This one changes just tm6000] Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: tm6000: bugfix image positionStefan Ringel2010-05-191-2/+2
| | | | | | | bugfix incorrect image and line position in videobuffer Signed-off-by: Stefan Ringel <stefan.ringel@arcor.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: tm6000: README - add vbiStefan Ringel2010-05-191-0/+1
| | | | | Signed-off-by: Stefan Ringel <stefan.ringel@arcor.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: Rework for support xc5000Dmitri Belimov2010-05-192-37/+110
| | | | | | | | | | | | | Set correct GPIO number for BEHOLD_WANDER/VOYAGER Add xc5000 callback function Small rework tm6000_cards_setup function Small rework tm6000_config_tuner, build mode_mask by config information Rework for support xc5000 silicon tuner Add some information messages for more better understand an errors. [mchehab@redhat.com: Fix CodingStyle and merge conflicts] Signed-off-by: Beholder Intl. Ltd. Dmitry Belimov <d.belimov@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* Fix compilation breakage with tm6000Mauro Carvalho Chehab2010-05-191-2/+2
| | | | | | | | | | | | | | | | | | | Randy Dunlap <randy.dunlap@oracle.com> reported a breakage while compiling drivers/staging/tm6000, due to this change: commit 1c1b78bee1a94f98deeb9c24b21c4812e191646c Author: Greg Kroah-Hartman <gregkh@suse.de> Date: Thu Apr 29 15:46:07 2010 -0700 USB: remove unused usb_buffer_alloc and usb_buffer_free macros Now that all callers are converted over, remove the compatibility functions and all is good. As the function got renamed, the rename should also be applied at tm6000. Acked-by: Randy Dunlap <randy.dunlap@oracle.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: tm6000: update the todo listMauro Carvalho Chehab2010-05-191-7/+17
| | | | Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: Fix color format with tm6010Mauro Carvalho Chehab2010-05-192-4/+7
| | | | | | | | | | | | | | | | The values for the fourcc format were correct, but applied to the wrong register. With this change, video is now barely working again with tm6000. While here, let's remove, for now, the memset. This way, people can have some image when testing this device. Yet to be fixed: parts of the image frame are missed. As we don't clean the buffers anymore, this is "recovered" by repeating the values from a previous frame. The quality is bad, since the image pixels will contain data from some previous frames, generating weird delay artifacts. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: tm6000: fix coding style issues of tm6000-cards.cRoel Van Nyen2010-05-191-62/+58
| | | | | | | | fix coding style issues [mchehab@redhat.com: Fix conflicts with other patches] Signed-off-by: Roel Van Nyen <roel.vannyen@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: tm6000: renaming firmwareStefan Ringel2010-05-191-1/+1
| | | | | | | renaming tm6000-xc3028.fw to xc3028-v24.fw Signed-off-by: Stefan Ringel <stefan.ringel@arcor.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: tm6000: bugfix analog init for tm6010Stefan Ringel2010-05-191-3/+94
| | | | | | | | | - change values in function tm6000_set_fourcc_format - disable digital source - add vbi and audio init Signed-off-by: Stefan Ringel <stefan.ringel@arcor.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: tm6000: Don't copy outside the bufferMauro Carvalho Chehab2010-05-191-5/+5
| | | | | | | | | | | | | | | | | | | | | tm6000 tm6000_irq_callback :urb resubmit failed (error=-1) BUG: unable to handle kernel paging request at 000000000100f700 IP: [<ffffffffa007ee79>] tm6000_irq_callback+0x51e/0xac7 [tm6000] (gdb) list * tm6000_irq_callback+0x51e 0x2e79 is in tm6000_irq_callback (drivers/staging/tm6000/tm6000-video.c:363). 358 dev->isoc_ctl.tmp_buf_len--; 359 } 360 if (dev->isoc_ctl.tmp_buf_len) { 361 memcpy (&header,p, 362 dev->isoc_ctl.tmp_buf_l$ 363 memcpy (((u8 *)header)+ 364 dev->isoc_ctl.tmp_buf, 365 ptr, 366 4-dev->isoc_ctl.tmp_buf$ 367 ptr+=4-dev->isoc_ctl.tmp_buf_le$ Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: tm6000: Fix a panic if buffer become NULLMauro Carvalho Chehab2010-05-191-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Changing a video standard takes a long time to happen on tm6000, since it needs to load another firmware, and the i2c implementation on this device is really slow. When the driver tries to change the video standard, a kernel panic is produced: BUG: unable to handle kernel NULL pointer dereference at 0000000000000008 IP: [<ffffffffa0c7b48a>] tm6000_irq_callback+0x57f/0xac2 [tm6000] ... Kernel panic - not syncing: Fatal exception in interrupt By inspecting it with gdb: (gdb) list *tm6000_irq_callback+0x57f 0x348a is in tm6000_irq_callback (drivers/staging/tm6000/tm6000-video.c:202). 197 /* FIXME: move to tm6000-isoc */ 198 static int last_line = -2, start_line = -2, last_field = -2; 199 200 /* FIXME: this is the hardcoded window size 201 */ 202 unsigned int linewidth = (*buf)->vb.width << 1; 203 204 if (!dev->isoc_ctl.cmd) { 205 c = (header >> 24) & 0xff; 206 Clearly, it was the trial to access *buf, at line 202 that caused the Panic. As ioctl is serialized, While S_STD is handled,QBUF/DQBUF won't be called. So, the driver will run out of the buffers, and *buf will become NULL. As, on tm6000, the same URB can contain more than one video buffer, it is likely to hit a condition where no new buffer is available whily copying the streams. The fix is to leave the URB copy loop, if there's no more buffers are available. The same bug could also be produced by an application that is not fast enough to request new video buffers. The same bug were reported by Bee Hock Goh <beehock@gmail.com>. Thanks-to: Bee Hock Goh <beehock@gmail.com> for reporting the bug Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: tm6000: Properly set alternate when preparing to streamMauro Carvalho Chehab2010-05-194-34/+51
| | | | | | | | | | Although the code is getting the better alternates, it is not really using it. Get the interface/alternate numbers and use it where needed. This patch implements also one small fix at the last_line set, as proposed by Bee Hock Goh <behock@gmail.com>. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: tm6000: Add additional GPIO for UT821 during frmware loadingBee Hock Goh2010-05-191-0/+16
| | | | | Signed-off-by: Bee Hock Goh <beehock@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: tm6000: fix i2c readDmitri Belimov2010-05-191-4/+77
| | | | | | | | | Set correct limit for I2C packet. Use different method for the tm5600/tm6000 and tm6010 to read word. [mchehab@redhat.com: Fix CodingStyle] Signed-off-by: Beholder Intl. Ltd. Dmitry Belimov <d.belimov@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: tm6000: fix compilation due to the lack of a semicolonMauro Carvalho Chehab2010-05-191-1/+1
| | | | | | | | | | Add a missing semicolon to fix this error: In file included from drivers/staging/tm6000/tm6000-cards.c:32: drivers/staging/tm6000/tm6000.h:123: error: two or more data types in declaration specifiers Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: TM6000: Fix code which cause memory corruptionBee Hock Goh2010-05-191-1/+1
| | | | | | | | | | The driver was doing malloc when buf is null causing memory corruption. The analog part is still pretty much broken but at least fixing this will stop it from crashing the machine when streamon. Signed-off-by: Bee Hock Goh <beehock@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: tm6000: request labeling board version checkStefan Ringel2010-05-193-4/+19
| | | | | | | request labeling board version check Signed-off-by: Stefan Ringel <stefan.ringel@arcor.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: tm6000: tm6000_i2c_xfer: request labelingStefan Ringel2010-05-191-4/+4
| | | | | | | labeling the request after tuner reading and writeing Signed-off-by: Stefan Ringel <stefan.ringel@arcor.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: tm6000: add gpios for tm6010 generic boardStefan Ringel2010-05-191-1/+12
| | | | | Signed-off-by: Stefan Ringel <stefan.ringel@arcor.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: tm6000: add gpios to board structStefan Ringel2010-05-191-9/+28
| | | | | Signed-off-by: Stefan Ringel <stefan.ringel@arcor.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: tm6000: switch to gpio strcutStefan Ringel2010-05-192-22/+59
| | | | | | | switch to a gpio structure Signed-off-by: Stefan Ringel <stefan.ringel@arcor.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: tm6000: replace occurences of req05 magic by a naming aliasMauro Carvalho Chehab2010-05-181-2/+2
| | | | | | | | | | | | Yet another naming replace magic thanks to perl scripts. This time, it is done with: cat tm6000-regs.h |perl -ne 'if (m/(TM6010_REQ[^\s]+)\s+0x([a-f0-9]+)\, 0x([a-f0-9]+)/) { $name="$1"; $req=$2; $val=$3; printf "s/REQ_${req}_SET_GET_USBREG, 0x[0]*$3,/$1,/\n" }' >a; for i in tm*.c; do sed -f a $i >b && mv b $i; done Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: tm6000: add request to registers of the group 05Mauro Carvalho Chehab2010-05-181-196/+196
| | | | | | | | | | | | Yet another script magic. This time, the change were generated by this script: cat tm6000-regs.h |perl -ne 'if (m/^(\#define TM6010_REQ)(05)([^\s]+)(\s+)0x([A-F0-9].)/) { \ $name="$1$2$3"; $sp=$4; $req=$2; $val=$5; $val=~tr/A-F/a-f/; \ printf "$name%s0x%s, 0x%s\n", $sp, $req, $val; } else { print $_ }' \ >a; mv a tm6000-regs.h Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: tm6000: Replace naming convention for registers of req 05 groupMauro Carvalho Chehab2010-05-181-196/+196
| | | | | | | | | | | | | After looking at the "magic" registers, it is clear that usb registers belong to request 5. Replace them with this script: cat /tmp/reg3 |perl -ne 'if (m/define (TM6000_U_)([^\s]+)\s+0x([A-F0-9].)/) { \ $name=$2; $val=$3; printf "s,$1$2,TM6010_REQ05_R%s_%s,g\n", $val, $name; }' >a; sed -f a tm6000-regs.h >b; mv b tm6000-regs.h Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: tm6000: Replace all magic values by a register aliasMauro Carvalho Chehab2010-05-184-796/+796
| | | | | | | | | | | | | | Instead of using magic pairs of req/reg, replace them by the defined values. This patch were generated by the following script: cat tm6000-regs.h |perl -ne 'if (m/(TM6010_REQ[^\s]+)\s+0x([a-f0-9]+)\, 0x([a-f0-9]+)/) { $name="$1"; $req=$2; $val=$3; printf "s/REQ_${req}_SET_GET_AVREG[_BIT]*, 0x[0]*$3,/$1,/\n" }' >a; for i in tm*.c; do sed -f a $i >b && mv b $i; done Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: tm6000: Add request at Req07/Req08 register definitionsMauro Carvalho Chehab2010-05-181-235/+235
| | | | | | | | | | | | | | Use a pair Req/Reg for all registers at req07 and req08 groups. This makes easier to replace them at the code with a script and helps to avoid using the wrong req with some register. This change were generated by this script: if (m/^(\#define TM6010_REQ)([0-9].)([^\s]+)(\s+)0x([A-F0-9].)/) { $name="$1$2$3"; $sp=$4; $req=$2; $val=$5; $val=~tr/A-F/a-f/; printf "$name%s0x%s, 0x%s\n", $sp, $req, $val; } else { print $_ } Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: tm6000: Replace all Req 8 group of regs with another naming conventionMauro Carvalho Chehab2010-05-181-57/+57
| | | | | | | | | | | | | | | | | | According with the original patch that added the register names, those are related to tm6010, so name it properly as such. Also, clearly indicates when a register belongs to Request 0x08 and add its register value at the name. This makes easier to double check if the proper register is used along the driver. This patch were made with the help of this simple perl script, applied over the definitions of the last register groups: if (m/define (TM6000_)([^\s]+)\s+0x([A-F0-9].)/) { $name=$2; $val=$3; printf "s,$1$2,TM6010_REQ08_R%s_%s,g\n", $val, $name; } And were manually adjusted to fix a few minor issues. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: tm6000: Replace all Req 7 group of regs with another naming conventionMauro Carvalho Chehab2010-05-181-178/+178
| | | | | | | | | | | | | | | | | According with the original patch that added the register names, those are related to tm6010, so name it properly as such. Also, clearly indicates when a register belongs to Request 0x07 and add its register value at the name. This makes easier to double check if the proper register is used along the driver. This patch were made with the help of this simple perl script: if (m/define (TM6000_)([^\s]+)\s+0x([A-F0-9].)/) { $name=$2; $val=$3; printf "s,$1$2,TM6010_REQ07_R%s_%s,g\n", $val, $name; } And were manually adjusted to fix a few minor issues. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: tm6000: add new hybrid-stickStefan Ringel2010-05-181-6/+33
| | | | | | | | | | | | | | | | | | | | | | -add Hauppauge WinTV HVR 900H/WinTV USB2-Stick vid/pid 0x2040/6601 0x2040/6610 0x2040/6611 -add Terratec Cinergy Hybrid-Stick vid/pid 0x0ccd/0x00a5 -add Twinhan TU501(704D1) vid/pid 0x13d3/0x3240 0x13d3/0x3241 0x13d3/0x3243 0x13d3/0x3264 Signed-off-by: Stefan Ringel <stefan.ringel@arcor.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: tm6000 register definesDmitri Belimov2010-05-181-0/+455
| | | | | | | | | Add defines for all registers of the tm6000 module. This defines made by doc for TM6010, need look docs for TM6000 and TM5600 Some registers can be different. Signed-off-by: Beholder Intl. Ltd. Dmitry Belimov <d.belimov@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: tm6000: bugfix reading problems with demodulator zl10353Stefan Ringel2010-05-181-1/+15
| | | | | | | | | | | | | | | | | | | Reading from zl10353 with tm6000 has a bug. For example: regs w/o patch with patch 0x06 0x00 0x7f 0x07 0x33 0x30 0x08 0x00 0x00 0x09 0x58 0x50 0x0f 0x31 0x28 0x10 0x00 0x84 This patch provides the workaround for the bug [mchehab@redhat.com: Fix merge conflict and add a comment at the workaround] Signed-off-by: Stefan Ringel <stefan.ringel@arcor.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: tm6000: add send and recv functionStefan Ringel2010-05-181-14/+42
| | | | | | | | Split the i2c send and receive functions on separate functions [mchehab@redhat.com: CodingStyle and fix the logic for more than 2 read values] Signed-off-by: Stefan Ringel <stefan.ringel@arcor.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: tm6000: fix some info messagesDmitri Belimov2010-05-1810-18/+19
| | | | | | | Fix some messages for add information about TM6010 Signed-off-by: Beholder Intl. Ltd. Dmitry Belimov <d.belimov@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: tm6000: fix i2c addr testStefan Ringel2010-05-181-2/+2
| | | | | | | | The i2c addr on I2C core is specified on 7-bit format, but tm6000 expects it on 8-bit format. Signed-off-by: Stefan Ringel <stefan.ringel@arcor.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: tm6000: remove hack.c hack.h, switch to zl10353 moduleStefan Ringel2010-05-184-457/+2
| | | | | | | | | "hack" module were a temporary file with some zl10353 magic. This is not needed anymore. Just remove it. [mchehab@redhat.com: CodingStyle fixes] Signed-off-by: Stefan Ringel <stefan.ringel@arcor.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: tm6000: change version to 0.0.2Stefan Ringel2010-05-181-1/+1
| | | | | Signed-off-by: Stefan Ringel <stefan.ringel@arcor.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* V4L/DVB: tm6000: special request for all tunerStefan Ringel2010-05-181-2/+2
| | | | | Signed-off-by: Stefan Ringel <stefan.ringel@arcor.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
OpenPOWER on IntegriCloud