summaryrefslogtreecommitdiffstats
path: root/drivers/media/dvb/frontends
Commit message (Collapse)AuthorAgeFilesLines
* [media] tda18271c2dd: Fix saw filter configuration for DVB-C @6MHzMauro Carvalho Chehab2011-07-281-1/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, the driver assumes that all QAM carriers are spaced with 8MHz. This is wrong, and may decrease QoS on Countries like Brazil, that have DVB-C carriers with 6MHz-spaced. Fortunately, both ITU-T J-83 and EN 300 429 specifies a way to associate the symbol rate with the bandwidth needed for it. For ITU-T J-83 2007 annex A, the maximum symbol rate for 6 MHz is: 6 MHz / 1.15 = 5217391 Bauds For ITU-T J-83 2007 annex C, the maximum symbol rate for 6 MHz is: 6 MHz / 1.13 = 5309735 Bauds. As this tuner is currently used only for DRX-K, and it is currently hard-coded to annex A, I've opted to use the roll-off factor of 0.15, instead of 0.13. If we ever support annex C, the better would be to add a DVB S2API call to allow changing between Annex A and C, and add the 0.13 roll-off factor to it. This code is currently being used on other frontends, so I think we should later add a core function with this code, to warrant that it will be properly implemented everywhere. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] au8522: set signal field to 100% when signal presentDevin Heitmueller2011-07-271-1/+1
| | | | | | | | | | | | The signal state field in G_TUNER is typically scaled from 0-100%. Since we don't know the signal level, we really would prefer the field to contain 100% than 1/256, which in many utilities (such as v4l2-ctl) rounds to 0% even when a signal is actually present. This patch makes the behavior consistent with other drivers. Signed-off-by: Devin Heitmueller <dheitmueller@kernellabs.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] drxk: Fix the logic that selects between DVB-C annex A and CMauro Carvalho Chehab2011-07-271-30/+26
| | | | | | | | | | | | | | Fix the DRX-K logic that selects between DVB-C annex A and C Fix a typo where DVB-C annex type is set via setEnvParameters, but the driver, uses, instead, setParamParameters[2]. While here, cleans up the code, fixing a bad identation at the fallback code for other types of firmware, and put the multiple-line comments into the Linux CodingStyle. Acked-by: Oliver Endriss <o.endriss@gmx.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] drxk: Fix read debug messageMauro Carvalho Chehab2011-07-271-9/+6
| | | | Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] drxk: Fix error return code during drxk initMauro Carvalho Chehab2011-07-271-1/+1
| | | | Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] drxk: Remove goto/break after returnMauro Carvalho Chehab2011-07-271-2/+0
| | | | | | | | After return, we don't need any other statement to change the function flux ;) Reported-by: Oliver Endriss <o.endriss@gmx.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] drxk: Fix a bug at some switches that broke DVB-TMauro Carvalho Chehab2011-07-271-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The error propagation changeset c23bf4402 broke the DVB-T code. The legacy way for propagate errors was: do { status = foo_func() if (status < 0) break; } while (0); return status; However, on a few places, it was doing: do { switch(foo) { case bar: status = foo_func() if (status < 0) break; break; } switch(foo2) { case bar: status = foo_func() if (status < 0) break; break; } ... } while (0); return (status) The inner error break were not working, as it were breaking only the switch, instead of the do. The solution used were to do a s/break/goto error/ at the inner breaks, but preserving the last break. Onfortunately, on a few switches, the replacement were applied also to the final break for the case statements. Fix the broken logic, by reverting them to break, where pertinent, in order to fix DVB-T support. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] Remove the double symbol increment hack from drxk_hardMauro Carvalho Chehab2011-07-271-17/+4
| | | | | | | | | | | | | | Both ngene and ddbrige calls dvb_attach once for drxk_attach. The logic used there, and by tda18271c2dd driver is different from similar logic on other frontends. The right fix is to change them to use the same logic, but, while we don't do that, we need to patch em28xx-dvb in order to do cope with ngene/ddbridge magic. While here, document why drxk_t_release should do nothing. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] media, Micronas dvb-t: Fix mem leaks, don't needlessly zero mem, fix ↵Jesper Juhl2011-07-271-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | spelling In drivers/media/dvb/frontends/drxd_hard.c::load_firmware() I see 3 small issues: 1) When the 'fw' variable goes out of scope we'll leak the memory allocated to it by request_firmware() by neglecting to call release_firmware(). 2) After a successful request_firmware() we allocate fw->size bytes of memory using kzalloc() only to immediately overwrite all that memory with memcpy(), so asking for zeroed memory seems like wasted effort - just use kmalloc(). 3) In one of the error messages "no memory" lacks a space and is written as "nomemory". This patch fixes all 3 issues. Signed-off-by: Jesper Juhl <jj@chaosbits.net> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* tda18271c2dd: Fix compilation when module is not selectedMauro Carvalho Chehab2011-07-271-1/+1
| | | | Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] tda18271c2dd.h: Don't add the same symbol twiceMauro Carvalho Chehab2011-07-271-3/+0
| | | | | | Should be folded with the next patch when sending upstream Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] dvb: don't cause missing symbols for drxk/tda18271c2ddMauro Carvalho Chehab2011-07-272-0/+26
| | | | | | | If those demods are unselected, but a bridge driver requires them, produce a runtime message, instead of missing symbols. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] drxk: remove a now unused variableMauro Carvalho Chehab2011-07-271-1/+0
| | | | Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] drxk: Add a fallback method for QAM parameter settingMauro Carvalho Chehab2011-07-271-1/+17
| | | | | | | | | | | | | | | | | | | | | | | | The QAM standard is set using this scu_command: SCU_RAM_COMMAND_STANDARD_QAM | SCU_RAM_COMMAND_CMD_DEMOD_SET_PARAM The driver implements a version that has 4 parameters, however, Terratec H5 needs to break this into two separate commands, otherwise, DVB-C doesn't work. With this fix, scan is now properly working and getting the channel list: >>> tune to: 609000000:INVERSION_AUTO:5217000:FEC_3_4:QAM_256 >>> tuning status == 0x00 >>> tuning status == 0x07 >>> tuning status == 0x1f 0x0093 0x0026: pmt_pid 0x0758 (null) -- SporTV2 (running, scrambled) 0x0093 0x0027: pmt_pid 0x0748 (null) -- SporTV (running, scrambled) 0x0093 0x0036: pmt_pid 0x0768 (null) -- FX (running, scrambled) 0x0093 0x0052: pmt_pid 0x0788 (null) -- The History Channel (running, scrambled) Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] drxk: Improve the scu_command error messageMauro Carvalho Chehab2011-07-272-18/+27
| | | | | | | | | | | | | | | | | Now, it outputs: [10927.639641] drxk: SCU_RESULT_INVPAR while sending cmd 0x0203 with params: [10927.646283] drxk: 02 00 00 00 10 00 07 00 03 02 .......... Better than ERROR -3. This happens with Terratec H5 firmware. It adds 2 new error conditions, and something useful to track what the heck is that. I suspect that the scu_command is dependent on the firmware revision. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] drxk: Simplify the DVB-C set mode logicMauro Carvalho Chehab2011-07-271-84/+81
| | | | Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] drxk: Fix driver removalMauro Carvalho Chehab2011-07-271-0/+12
| | | | Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] drxk: Improves the UIO handlingMauro Carvalho Chehab2011-07-273-42/+110
| | | | | | | | | | | The driver is too limited: it assumes that UIO is used only for controlling the antenna, and that only UIO-1 is in usage. However, from Terratec H7 driver [1], 3 UIO's can be used. In fact, it seems that H7 needs to use all 3. So, make the code generic enough to handle the most complex scenario. For now, only antena GPIO can be specified, but is is easier now to add the other GPIO/UIO needs. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] drxk: Print detected configurationMauro Carvalho Chehab2011-07-271-0/+10
| | | | | | | DRX-K configuration is interesting when writing/testing new devices. Add an info line showing the discovered info. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] drxk: Fix the antenna switch logicMauro Carvalho Chehab2011-07-273-18/+33
| | | | | | | | | Terratec H5 doesn't require to switch mode, but generates an error due to this logic. Also, GPIO's are board-dependent. So, add it at the board config struct. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] drxk: change mode before calling the set mode routinesMauro Carvalho Chehab2011-07-271-2/+2
| | | | | | | The set mode routines assume that state were changed to the new mode, otherwise, they'll fail. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] drxk: Proper handle/propagate the error codesMauro Carvalho Chehab2011-07-271-3564/+3545
| | | | | | | | | | | | | | | | | | | This driver is very big and complex. An error happening in the middle of any initialization may cause the frontend to not work. So, it needs to properly propagate error codes internally and to userspace. Also, printing the error codes at the places it happened helps to discover were's a bug at the code. Before this change, a do { } while (0) loop and lots of breaks inside were used to propagate errors. While this works, if there are loops inside other loops, it could be easy to forget to add another break, causing the error to not abort the function. Also, as not all functions were reporting errors, it is hard to discover why something failed. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] drxk: Allow to disable I2C Bridge control switchMauro Carvalho Chehab2011-07-273-0/+5
| | | | | | | On em28xx, tda18271C2 is accessible when the i2c port is not touched. Touching on it breaks the driver. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] drxk: Add a parameter for the microcode nameMauro Carvalho Chehab2011-07-273-18/+13
| | | | | | | | The microcode firmware provided on Terratec H5 seems to be different. Add a parameter to allow specifying a different firmware per-device. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] drxk: Print an error if firmware is not loadedMauro Carvalho Chehab2011-07-271-1/+3
| | | | | | | If something bad happens during firmware load, an error should be printed at dmesg. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] drxk: Avoid OOPSes if firmware is corruptedMauro Carvalho Chehab2011-07-271-0/+6
| | | | | | | Don't read paste the buffer, if the firmware is corrupted. Instead, print an error message. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] drxk: Convert an #ifdef logic as a new config parameterMauro Carvalho Chehab2011-07-273-15/+25
| | | | | | | | Instead of using #ifdef I2C_LONG_ADR for some devices, convert it into a parameter. Terratec H5 logs from the original driver seems to need this mode. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] drxk: Move I2C address into a config structureMauro Carvalho Chehab2011-07-272-3/+9
| | | | | | | | | | | Currently, the only parameter to be configured is the I2C address. However, Terratec H5 logs shows that it needs a different setting for some things, and it has its own firmware. So, move the addr into a config structure, in order to allow adding the required configuration bits. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] drxk: remove _0 from read/write routinesMauro Carvalho Chehab2011-07-271-651/+662
| | | | | | | | | | | | | | | | | | | | The normal 16-bits read routine is called as "Read16_0". This is due to a flags that could optionally be passed. Yet, on no places at the code, a flag is passed there. The same happens with 16-bits write and 32-read/write routines, and with WriteBlock. Also, using flags, is an exception: there's no place currently using flags, except for an #ifdef at WriteBlock. Rename the function as just "read16", and the one that requires flags, as "read16_flags". This helps to see where the flags are used, and also avoid using CamelCase on Kernel. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] drxk: Add debug printk'sMauro Carvalho Chehab2011-07-271-4/+181
| | | | | | | | This is a complex driver. Adding support for other devices with drxk requires to be able to debug it and see where it is failing. So, add optional printk messages to allow debugging it. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] tda18271c2dd: add tda18271c2dd prefix to the errorsMauro Carvalho Chehab2011-07-271-5/+5
| | | | | | | | | | | | It is hard to identify the origin for those errors without a prefix to indicate which driver produced them: [ 1390.220984] i2c_write error [ 1390.224133] I2C Write error [ 1391.284202] i2c_read error [ 1392.288685] i2c_read error Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] drxk: add drxk prefix to the errorsMauro Carvalho Chehab2011-07-271-24/+25
| | | | | | | | | | | | It is hard to identify the origin for those errors without a prefix to indicate which driver produced them: [ 1390.220984] i2c_write error [ 1390.224133] I2C Write error [ 1391.284202] i2c_read error [ 1392.288685] i2c_read error Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] drxk: fix warning: ‘status’ may be used uninitialized in this ↵Mauro Carvalho Chehab2011-07-271-3/+3
| | | | | | | | | | | | | | | | | | function One of the problems of the old CHECK_ERROR is that it was hiding the status parameter. Maybe due to that, on a few places, the return code might lead to return incorrect status: drivers/media/dvb/frontends/drxk_hard.c: In function ‘load_microcode.clone.0’: drivers/media/dvb/frontends/drxk_hard.c:1281: warning: ‘status’ may be used uninitialized in this function drivers/media/dvb/frontends/drxk_hard.c:1281: note: ‘status’ was declared here drivers/media/dvb/frontends/drxk_hard.c: In function ‘GetLockStatus’: drivers/media/dvb/frontends/drxk_hard.c:1792: warning: ‘status’ may be used uninitialized in this function drivers/media/dvb/frontends/drxk_hard.c: In function ‘Start.clone.7’: drivers/media/dvb/frontends/drxk_hard.c:1734: warning: ‘status’ may be used uninitialized in this function Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] drxk: Return -EINVAL if an invalid bandwidth is usedMauro Carvalho Chehab2011-07-271-0/+2
| | | | | | | | | drivers/media/dvb/frontends/drxk_hard.c: In function ‘SetDVBT’: drivers/media/dvb/frontends/drxk_hard.c:3766: warning: enumeration value ‘BANDWIDTH_5_MHZ’ not handled in switch drivers/media/dvb/frontends/drxk_hard.c:3766: warning: enumeration value ‘BANDWIDTH_10_MHZ’ not handled in switch drivers/media/dvb/frontends/drxk_hard.c:3766: warning: enumeration value ‘BANDWIDTH_1_712_MHZ’ not handled in switch Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] tda18271c2dd: Remove the CHK_ERROR macroMauro Carvalho Chehab2011-07-271-104/+303
| | | | | | | | | | | | | | | | | | | | | | | | The CHK_ERROR macro does a flow control, violating chapter 12 of the Documentation/CodingStyle. Doing flow controls inside macros is a bad idea, as it hides what's happening. It also hides the var "status" with is also a bad idea. The changes were done by this small perl script: my $blk=0; while (<>) { s/^\s+// if ($blk); $f =~ s/\s+$// if ($blk && /^\(/); $blk = 1 if (!m/\#/ && m/CHK_ERROR/); $blk=0 if ($blk && m/\;/); s/\n/ / if ($blk); $f.=$_; }; $f=~ s,\n(\t+)CHK_ERROR\((.*)\)\;([^\n]*),\n\1status = \2;\3\n\1if (status < 0)\n\1\tbreak;,g; print $f; And manually fixed. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] drxk: Remove the CHK_ERROR macroMauro Carvalho Chehab2011-07-272-1313/+2170
| | | | | | | | | | | | | | | | | | | | | | | | The CHK_ERROR macro does a flow control, violating chapter 12 of the Documentation/CodingStyle. Doing flow controls inside macros is a bad idea, as it hides what's happening. It also hides the var "status" with is also a bad idea. The changes were done by this small perl script: my $blk=0; while (<>) { s /^\s+// if ($blk); $f =~ s/\s+$// if ($blk && /^\(/); $blk = 1 if (!m/\#/ && m/CHK_ERROR/); $blk=0 if ($blk && m/\;/); s/\n/ / if ($blk); $f.=$_; }; $f=~ s,\n(\t+)CHK_ERROR\((.*)\)\;([^\n]*),\n\1status = \2;\3\n\1if (status < 0)\n\1\tbreak;,g; print $f; And manually fixed. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] drxd/drxk: Don't export MulDiv32 symbolMauro Carvalho Chehab2011-07-272-2/+2
| | | | | | | /home/v4l/v4l/patchwork/drivers/media/dvb/frontends/drxk_hard.c:181: multiple definition of `MulDiv32' drivers/media/dvb/frontends/drxd.o:/home/v4l/v4l/patchwork/drivers/media/dvb/frontends/drxd_hard.c:236: first defined here Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] DRX-K, TDA18271c2: Add build supportOliver Endriss2011-07-272-0/+24
| | | | | | | Add both drivers to Makefile and Kconfig. Signed-off-by: Oliver Endriss <o.endriss@gmx.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] DRX-K: Tons of coding-style fixesOliver Endriss2011-07-272-2129/+2444
| | | | | | | Tons of coding-style fixes Signed-off-by: Oliver Endriss <o.endriss@gmx.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] DRX-K: Shrink size of drxk_map.hOliver Endriss2011-07-271-15989/+0
| | | | | | | | Deleted all unused symbold from drxk_map.h, which reduced the size from 1.1M to 37K! Signed-off-by: Oliver Endriss <o.endriss@gmx.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] DRX-K: Initial check-inRalph Metzler2011-07-274-0/+21803
| | | | | | | | Driver for the DRX-K DVB-C/T demodulator. Signed-off-by: Ralph Metzler <rjkm@metzlerbros.de> Signed-off-by: Oliver Endriss <o.endriss@gmx.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] tda18271c2dd: Lots of coding-style fixesOliver Endriss2011-07-272-1143/+1118
| | | | | Signed-off-by: Oliver Endriss <o.endriss@gmx.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] tda18271c2dd: Initial check-inRalph Metzler2011-07-273-0/+1878
| | | | | | | | Driver for the NXP TDA18271c2 silicon tuner. Signed-off-by: Ralph Metzler <rjkm@metzlerbros.de> Signed-off-by: Oliver Endriss <o.endriss@gmx.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] nxt6000: i2c bus error should return -EIOMauro Carvalho Chehab2011-07-271-1/+1
| | | | | | | data from/to userspace. Don't mix it with I2C bus error (-EIO). Acked-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] drxd, siano: Remove unused include linux/version.hMauro Carvalho Chehab2011-07-271-1/+0
| | | | | | | | | | Both drxd and siano drivers were including linux/version.h without any reason. Probably, this is due to some compatibility code that used to exist before having their support added into the Linux Kernel. Acked-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] dvb: remove unnecessary codeGreg Dietsche2011-07-271-5/+1
| | | | | | | | | | remove unnecessary code that matches this coccinelle pattern if (...) return ret; return ret; Signed-off-by: Greg Dietsche <Gregory.Dietsche@cuw.edu> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] frontends/s5h1420: Change: clock_settting to clock_settingJustin P. Mattock2011-07-271-6/+6
| | | | | | | | | | Changes clock_settting to clock_setting. Note: This could be intentionally set this way from the beginning and/or is a typo. Signed-off-by: Justin P. Mattock <justinmattock@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] dib7000p: setup dev.parent for i2c master built into 7000pDevin Heitmueller2011-07-271-0/+5
| | | | | | | | | We need to set the dev.parent member on the dib7000p on its i2c master, or else calls to request_firmware() will hit an oops in 2.6.31. Signed-off-by: Devin Heitmueller <dheitmueller@kernellabs.com> Cc: Patrick Boettcher <pboettcher@kernellabs.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] cx24113: Don't reuse core macro namesHans Petter Selasky2011-07-271-10/+10
| | | | | | | | The info and err macros are already defined by the USB stack. Rename these macros to avoid macro redefinition warnings. Signed-off-by: Hans Petter Selasky <hselasky@c2i.net> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* [media] itd1000: Don't reuse core macro namesHans Petter Selasky2011-07-271-14/+11
| | | | | | | | | | The dbg, warn and info macros are already defined by the USB stack. Rename these macros to avoid macro redefinition warnings. Refactor lineshift in printouts. Signed-off-by: Hans Petter Selasky <hselasky@c2i.net> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
OpenPOWER on IntegriCloud