summaryrefslogtreecommitdiff
path: root/drivers/media/dvb-frontends
AgeCommit message (Collapse)AuthorFilesLines
2015-04-03[media] rtl2832: fix compiler warningHans Verkuil1-1/+1
>From the daily build: rtl2832.c: In function 'rtl2832_read_status': rtl2832.c:703:12: warning: 'tmp' may be used uninitialized in this function [-Wmaybe-uninitialized] } else if (tmp == 10) { ^ The code is OK, it's just the compiler that cannot figure out what's going on. So just init 'tmp' to 0. Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-03-03[media] mn88473: calculate the IF register valuesBenjamin Larsson1-0/+6
Add xtal as a configuration parameter so it can be used in the IF register value calculation. If not set in the configuration then use a default value. Signed-off-by: Benjamin Larsson <benjamin@southpole.se> Reviewed-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-03-03[media] lgdt3306a: Minor source code cleanupsMauro Carvalho Chehab1-20/+12
Fix a few minor CodingStyle issues at the source code: - Use proper multi-line comments; - Align the log tables; - Remove the .type from dvb_frontend_ops, since this is not needed anymore (since the drivers conversion to DVBv5); - Remove emacs format macro. Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-03-03[media] lgdt3306a: Break long linesMauro Carvalho Chehab1-43/+91
Fix most of checkpatch warnings like: WARNING: line over 80 characters Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-03-03[media] lgdt3306a: constify log tablesMauro Carvalho Chehab1-5/+9
Ideally, we should be replacing this function by intlog10(). While we don't do that, let's at least constify the tables, in order to remove its code footfrint, and get rid of nelems. This also fixes a few 80-cols CodingStyle warnings. Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-03-03[media] lbdt3306a: remove uneeded bracesMauro Carvalho Chehab1-3/+2
WARNING: braces {} are not necessary for any arm of this statement + if (ret == 0) { [...] + } else { [...] Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-03-03[media] lgdt3306a: Don't use else were not neededMauro Carvalho Chehab1-6/+6
Get rid of the remaining checkpatch.pl warnings: WARNING: braces {} are not necessary for any arm of this statement Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-03-03[media] lbdt3306a: simplify the lock status checkMauro Carvalho Chehab1-36/+24
The logic there is too complex and it looks like an inifite loop. So, simplify the logic and implement it as a for loop. This gets rid of the following checkpatch.pl warnings: WARNING: else is not generally useful after a break or return + return LG3306_UNLOCK; + } else { WARNING: else is not generally useful after a break or return + return LG3306_UNLOCK; + } else { Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-03-03[media] lbdt3306a: rework at printk macrosMauro Carvalho Chehab1-83/+89
Use pr_foo() where there's a direct replacement. For debug, use custom-made macros, for now, as there are 3 different debug levels. We should get rid of those some day, specially since several such macros can be just removed, as Kernel trace would provide about the same output. This gets rid of some checkpatch errors: WARNING: Prefer [subsystem eg: netdev]_info([subsystem]dev, ... then dev_info(dev, ... then pr_info(... to printk(KERN_INFO ... +#define lg_info(fmt, arg...) printk(KERN_INFO "lgdt3306a: " fmt, ##arg) ERROR: Macros with complex values should be enclosed in parentheses +#define lg_dbg(fmt, arg...) if (debug & DBG_INFO) \ + lg_printk(KERN_DEBUG, fmt, ##arg) ERROR: Macros with complex values should be enclosed in parentheses +#define lg_reg(fmt, arg...) if (debug & DBG_REG) \ + lg_printk(KERN_DEBUG, fmt, ##arg) Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-03-03[media] lgdt3306a: Remove FSF addressMauro Carvalho Chehab2-10/+1
Fix this CodingStyle error: ERROR: Do not include the paragraph about writing to the Free Software Foundation's mailing address from the sample GPL notice. The FSF has changed addresses in the past, and may do so ag$ #56: FILE: drivers/media/dvb-frontends/lgdt3306a.c:19: + * along with this program; if not, write to the Free Software$ Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-03-03[media] lgdt3306a: properly handle I/O errorsMauro Carvalho Chehab1-5/+79
Fixes the following smatch errors: drivers/media/dvb-frontends/lgdt3306a.c: In function 'lgdt3306a_set_if': drivers/media/dvb-frontends/lgdt3306a.c:695:6: warning: variable 'ret' set but not used [-Wunused-but-set-variable] int ret; ^ drivers/media/dvb-frontends/lgdt3306a.c: In function 'lgdt3306a_monitor_vsb': drivers/media/dvb-frontends/lgdt3306a.c:1033:6: warning: variable 'ret' set but not used [-Wunused-but-set-variable] int ret; ^ drivers/media/dvb-frontends/lgdt3306a.c: In function 'lgdt3306a_check_oper_mode': drivers/media/dvb-frontends/lgdt3306a.c:1082:6: warning: variable 'ret' set but not used [-Wunused-but-set-variable] int ret; ^ drivers/media/dvb-frontends/lgdt3306a.c: In function 'lgdt3306a_check_lock_status': drivers/media/dvb-frontends/lgdt3306a.c:1109:6: warning: variable 'ret' set but not used [-Wunused-but-set-variable] int ret; ^ drivers/media/dvb-frontends/lgdt3306a.c: In function 'lgdt3306a_check_neverlock_status': drivers/media/dvb-frontends/lgdt3306a.c:1185:6: warning: variable 'ret' set but not used [-Wunused-but-set-variable] int ret; ^ drivers/media/dvb-frontends/lgdt3306a.c: In function 'lgdt3306a_pre_monitoring': drivers/media/dvb-frontends/lgdt3306a.c:1199:6: warning: variable 'ret' set but not used [-Wunused-but-set-variable] int ret; ^ drivers/media/dvb-frontends/lgdt3306a.c: In function 'lgdt3306a_get_packet_error': drivers/media/dvb-frontends/lgdt3306a.c:1310:6: warning: variable 'ret' set but not used [-Wunused-but-set-variable] int ret; ^ Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-03-03[media] lgdt3306a: don't go past the bufferMauro Carvalho Chehab1-8/+10
As warned by smatch: drivers/media/dvb-frontends/lgdt3306a.c:1354 log10_x1000() error: buffer overflow 'valx_x10' 14 <= 14 drivers/media/dvb-frontends/lgdt3306a.c:1355 log10_x1000() error: buffer overflow 'log10x_x1000' 14 <= 14 There's a potential of returning a value out of the buffer. Fix it. While here, remove the ugly braced block. Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-03-03[media] lgdt3306a: one bit fields should be unsignedMauro Carvalho Chehab1-2/+2
Fix two smatch warnings: drivers/media/dvb-frontends/lgdt3306a.h:53:28: error: dubious one-bit signed bitfield drivers/media/dvb-frontends/lgdt3306a.h:56:33: error: dubious one-bit signed bitfield Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-03-03[media] lgdt3306a: Use IS_ENABLED() for attach functionMauro Carvalho Chehab2-6/+4
Simplify the check if CONFIG_DVB_LGDT3306A is enabled, use the IS_ENABLED() macro, just like the other frontend modules. Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-03-03[media] lgdt3306a: Use hexadecimal values in lowercaseMauro Carvalho Chehab1-230/+230
While this is not a mandatory rule at the CodingStyle, we prefer hexadecimal values in lowercase. Currently, there's a mix of lowercase and uppercase ons at lgdt3306a. So, convert all to lowercase with this small script: perl -ne 'if (m,0x([\dA-F]+),) { $o=$1; $n=lc $1; s,0x($o),0x$n, } print $_' Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-03-03[media] lgdt3306a: more small whitespace cleanupsMichael Ira Krufky1-8/+8
Just CodingStyle. No functional changes. Signed-off-by: Michael Ira Krufky <mkrufky@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-03-03[media] lgdt3306a: typo fixMichael Ira Krufky1-1/+1
fix WARNING: 'supress' may be misspelled - perhaps 'suppress'? Signed-off-by: Michael Ira Krufky <mkrufky@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-03-03[media] lgdt3306a: fix WARNING: please, no spaces at the start of a lineMichael Ira Krufky1-221/+221
Properly indent register initialization tables. Signed-off-by: Michael Ira Krufky <mkrufky@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-03-03[media] lgdt3306a: fix ERROR: do not use C99 // commentsMichael Ira Krufky1-224/+224
Replace C99 comments by /* */ blocks. Signed-off-by: Michael Ira Krufky <mkrufky@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-03-03[media] lgdt3306a: do not add new typedefsMichael Ira Krufky1-32/+31
We should not be using typedefs at the Kernel, as this makes harder for reviewers to understand the code. Signed-off-by: Michael Ira Krufky <mkrufky@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-03-03[media] lgdt3306a: fix ERROR: do not use assignment in if conditionMichael Ira Krufky1-1/+2
Just CodingStyle fix. Signed-off-by: Michael Ira Krufky <mkrufky@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-03-03[media] lgdt3306a: move EXPORT_SYMBOL to be just after functionMichael Ira Krufky1-2/+1
Fixes CodingStyle error: WARNING: EXPORT_SYMBOL(foo); should immediately follow its function/variable. Signed-off-by: Michael Ira Krufky <mkrufky@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-03-03[media] lgdt3306a: remove unnecessary 'else'Michael Ira Krufky1-1/+1
No need for an else, as the previous if will return. Signed-off-by: Michael Ira Krufky <mkrufky@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-03-03[media] lgdt3306a: clean up whitespace & unneeded bracketsMichael Ira Krufky2-310/+323
No functional changes. Signed-off-by: Michael Ira Krufky <mkrufky@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-03-03[media] DVB: add support for LG Electronics LGDT3306A ATSC/QAM-B DemodulatorFred Richter4-0/+2113
This ATSC/QAM-B demodulator is used by several new devices. Add support for it. Other patches will fix CodingStyle issues. Signed-off-by: Fred Richter <frichter@hauppauge.com> Signed-off-by: Michael Ira Krufky <mkrufky@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-02-03[media] stb0899: use sign_extend32() for sign extensionMartin Kepplinger1-3/+2
Instead of implement its own logic, use the already-defined one. Signed-off-by: Martin Kepplinger <martink@posteo.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-02-03[media] si2168: add support for 1.7MHz bandwidthOlli Salonen1-1/+3
This patch is based on Antti's silabs branch. Add support for 1.7 MHz bandwidth. Supported in all versions of Si2168 according to short data sheets. [mchehab@osg.samsung.com: Fix CodingStyle] Signed-off-by: Olli Salonen <olli.salonen@iki.fi> Reviewed-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-02-03[media] si2168: return error if set_frontend is called with invalid parametersOlli Salonen1-1/+4
This patch should is based on Antti's silabs branch. According to dvb-frontend.h set_frontend may be called with bandwidth_hz set to 0 if automatic bandwidth is required. Si2168 does not support automatic bandwidth and does not declare FE_CAN_BANDWIDTH_AUTO in caps. This patch will change the behaviour in a way that EINVAL is returned if bandwidth_hz is 0. Signed-off-by: Olli Salonen <olli.salonen@iki.fi> Reviewed-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-02-03[media] dvb: tc90522: re-add symbol-rate reportAkihiro Tsukada1-0/+1
symbol-rate report was wrongly removed off by the commit:906aaf5a . Signed-off-by: Akihiro Tsukada <tskd08@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-02-03[media] rtl2832: declare functions as staticMauro Carvalho Chehab1-6/+6
drivers/media/dvb-frontends/rtl2832.c:157:5: warning: no previous prototype for ‘rtl2832_bulk_write’ [-Wmissing-prototypes] int rtl2832_bulk_write(struct i2c_client *client, unsigned int reg, ^ drivers/media/dvb-frontends/rtl2832.c:169:5: warning: no previous prototype for ‘rtl2832_update_bits’ [-Wmissing-prototypes] int rtl2832_update_bits(struct i2c_client *client, unsigned int reg, ^ drivers/media/dvb-frontends/rtl2832.c:181:5: warning: no previous prototype for ‘rtl2832_bulk_read’ [-Wmissing-prototypes] int rtl2832_bulk_read(struct i2c_client *client, unsigned int reg, void *val, Cc: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-02-03[media] rtl2830: declare functions as staticMauro Carvalho Chehab1-6/+6
drivers/media/dvb-frontends/rtl2830.c:21:5: warning: no previous prototype for ‘rtl2830_bulk_write’ [-Wmissing-prototypes] int rtl2830_bulk_write(struct i2c_client *client, unsigned int reg, ^ drivers/media/dvb-frontends/rtl2830.c:33:5: warning: no previous prototype for ‘rtl2830_update_bits’ [-Wmissing-prototypes] int rtl2830_update_bits(struct i2c_client *client, unsigned int reg, ^ drivers/media/dvb-frontends/rtl2830.c:45:5: warning: no previous prototype for ‘rtl2830_bulk_read’ [-Wmissing-prototypes] int rtl2830_bulk_read(struct i2c_client *client, unsigned int reg, void *val, ^ Cc: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-02-03[media] rtl2832_sdr: add kernel-doc comments for platform_dataAntti Palosaari1-7/+13
Add kernel-doc comments for platform_data configuration structure. Signed-off-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-02-03[media] rtl2832: add kernel-doc comments for platform_dataAntti Palosaari1-11/+12
Add kernel-doc comments for platform_data configuration structure. Signed-off-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-02-03[media] rtl2830: add kernel-doc comments for platform_dataAntti Palosaari1-20/+13
Add kernel-doc comments for platform_data configuration structure. Signed-off-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-02-03[media] rtl2832: implement own lock for regmapAntti Palosaari2-10/+40
Introduce own lock to silence lockdep warning. lockdep validator makes wrong decision when two similar (&map->mutex) locks were taken recursively, even those are different mutexes in a two different drivers. After that patch, functionality remains same, but mutex names are different. That is a temporary hack, proper solution is make regmap aware of locked nested locking rules. ============================================= [ INFO: possible recursive locking detected ] 3.18.0-rc4+ #4 Tainted: G O --------------------------------------------- kdvb-ad-0-fe-0/2814 is trying to acquire lock: (&map->mutex){+.+.+.}, at: [<ffffffff814ec90f>] regmap_lock_mutex+0x2f/0x40 but task is already holding lock: (&map->mutex){+.+.+.}, at: [<ffffffff814ec90f>] regmap_lock_mutex+0x2f/0x40 other info that might help us debug this: Possible unsafe locking scenario: CPU0 ---- lock(&map->mutex); lock(&map->mutex); *** DEADLOCK *** May be due to missing lock nesting notation 1 lock held by kdvb-ad-0-fe-0/2814: #0: (&map->mutex){+.+.+.}, at: [<ffffffff814ec90f>] regmap_lock_mutex+0x2f/0x40 stack backtrace: CPU: 3 PID: 2814 Comm: kdvb-ad-0-fe-0 Tainted: G O 3.18.0-rc4+ #4 Hardware name: System manufacturer System Product Name/M5A78L-M/USB3, BIOS 2001 09/11/2014 0000000000000000 00000000410c8772 ffff880293af3868 ffffffff817a6f82 0000000000000000 ffff8800b3462be0 ffff880293af3968 ffffffff810e7f94 ffff880293af3888 00000000410c8772 ffffffff82dfee60 ffffffff81ab8f89 Call Trace: [<ffffffff817a6f82>] dump_stack+0x4e/0x68 [<ffffffff810e7f94>] __lock_acquire+0x1ea4/0x1f50 [<ffffffff810e2a7d>] ? trace_hardirqs_off+0xd/0x10 [<ffffffff817b01f3>] ? _raw_spin_lock_irqsave+0x83/0xa0 [<ffffffff810e13e6>] ? up+0x16/0x50 [<ffffffff810e2a7d>] ? trace_hardirqs_off+0xd/0x10 [<ffffffff817af8bf>] ? _raw_spin_unlock_irqrestore+0x5f/0x70 [<ffffffff810e9069>] lock_acquire+0xc9/0x170 [<ffffffff814ec90f>] ? regmap_lock_mutex+0x2f/0x40 [<ffffffff817ab50e>] mutex_lock_nested+0x7e/0x430 [<ffffffff814ec90f>] ? regmap_lock_mutex+0x2f/0x40 [<ffffffff814ec90f>] ? regmap_lock_mutex+0x2f/0x40 [<ffffffff817a530b>] ? printk+0x70/0x86 [<ffffffff8110d9e8>] ? mod_timer+0x168/0x240 [<ffffffff814ec90f>] regmap_lock_mutex+0x2f/0x40 [<ffffffff814f08d9>] regmap_update_bits+0x29/0x60 [<ffffffffa03e9778>] rtl2832_select+0x38/0x70 [rtl2832] [<ffffffffa039b03d>] i2c_mux_master_xfer+0x3d/0x90 [i2c_mux] [<ffffffff815da493>] __i2c_transfer+0x73/0x2e0 [<ffffffff815dbaba>] i2c_transfer+0x5a/0xc0 [<ffffffff815dbb6e>] i2c_master_send+0x4e/0x70 [<ffffffffa03ff25a>] regmap_i2c_write+0x1a/0x50 [regmap_i2c] [<ffffffff817ab713>] ? mutex_lock_nested+0x283/0x430 [<ffffffff814f06b2>] _regmap_raw_write+0x862/0x880 [<ffffffff814ec90f>] ? regmap_lock_mutex+0x2f/0x40 [<ffffffff814f0744>] _regmap_bus_raw_write+0x74/0xa0 [<ffffffff814ef3d2>] _regmap_write+0x92/0x140 [<ffffffff814f0b7b>] regmap_write+0x4b/0x70 [<ffffffffa032b090>] ? dvb_frontend_release+0x110/0x110 [dvb_core] [<ffffffffa05141d4>] e4000_init+0x34/0x210 [e4000] [<ffffffffa032a029>] dvb_frontend_init+0x59/0xc0 [dvb_core] [<ffffffff810bde30>] ? finish_task_switch+0x80/0x180 [<ffffffff810bddf2>] ? finish_task_switch+0x42/0x180 [<ffffffffa032b116>] dvb_frontend_thread+0x86/0x7b0 [dvb_core] [<ffffffff817a9203>] ? __schedule+0x343/0x930 [<ffffffffa032b090>] ? dvb_frontend_release+0x110/0x110 [dvb_core] [<ffffffff810b826b>] kthread+0x10b/0x130 [<ffffffff81020099>] ? sched_clock+0x9/0x10 [<ffffffff810b8160>] ? kthread_create_on_node+0x250/0x250 [<ffffffff817b063c>] ret_from_fork+0x7c/0xb0 [<ffffffff810b8160>] ? kthread_create_on_node+0x250/0x250 Signed-off-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-02-03[media] rtl2832: remove internal mux I2C adapterAntti Palosaari2-21/+4
There was 2 muxed I2C adapters, one for demod tuner bus and one for internal use. Idea of internal I2C adapter was to force I2C repeater close when demod access its registers. Driver has also delayed work queue based method to close I2C repeater. After regmap conversion internal I2C adapter based repeater close left unused - only work queue method was in use. We could not use internal mux adapter method with regmap as it makes recursive regmap call, which causes deadlock as regmap has own locking. Due to that remove whole method totally. Signed-off-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-02-03[media] rtl2832_sdr: refcount to rtl28xxuAntti Palosaari1-2/+15
We are consumer of DVB frontend provided by rtl28xxu module. Due to that we must use refcount to ensure none could remove rtl28xxu when we are alive (or when we are streaming, if more fine-grained refcounting is wanted). Signed-off-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-02-03[media] rtl2832: implement sleepAntti Palosaari1-0/+10
Put demod to soft reset in order to save power when sleep. That drops power usage ~30mA @5V on USB dongle I tested. In real life it does not matter much as USB IF powers off demod too, but now it is done twice - demod and USB IF. Signed-off-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-02-03[media] rtl2832: claim copyright and module authorAntti Palosaari3-0/+4
I have implemented tons of things for that driver, more than anyone else, so lets claim copyright and module authorship. Cc: Thomas Mair <thomas.mair86@gmail.com> Signed-off-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-02-03[media] rtl2832: cleanups and minor changesAntti Palosaari3-88/+25
Remove all the stuff that is not needed anymore. Rename variable. Remove extra new lines. Signed-off-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-02-03[media] rtl2832_sdr: cleanupsAntti Palosaari2-40/+23
Small cleanups. Remove unneeded variables. Some checkpatch issues. Signed-off-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-02-03[media] rtl2832_sdr: fix loggingAntti Palosaari1-65/+86
Pass correct device, platform device, for logging system in order to format printouts correctly. Signed-off-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-02-03[media] rtl2832_sdr: convert to platform driverAntti Palosaari2-241/+156
That SDR driver module was abusing DVB frontend SEC (satellite equipment controller) device and due to that it was also using legacy DVB binding. Platform bus is pseudo-bus provided by kernel driver model and it fits cases like that, where any other busses are not suitable. Signed-off-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-02-03[media] rtl2832_sdr: rename state variable from 's' to 'dev'Antti Palosaari1-429/+429
'dev' sounds better than 's' for such variable. Signed-off-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-02-03[media] rtl2832: provide register IO callbacksAntti Palosaari2-0/+7
Provide register read and write callbacks for SDR module. Signed-off-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-02-03[media] rtl2832: merge reg page as a part of reg addressAntti Palosaari2-173/+144
Chips uses 8-bit register addresses with 5 pages. Extend register address by using register page as a first byte of address, defining virtual register addresses. That is common method of handling register pages and regmap also uses it. Remove page + address conversion glue which was there for regmap. Signed-off-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-02-03[media] rtl2832: remove unneeded software reset from init()Antti Palosaari1-15/+0
There is no need to do software reset on init() as it is done a bit later on end of set_frontend(). Software reset usually means restarting (resetting to starting point) chip internal state machine (FSM). Naturally it is done after all parameters are programmed. Signed-off-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-02-03[media] rtl2832: use regmap reg cacheAntti Palosaari1-0/+18
Enable regmap register cache in order to reduce IO. Signed-off-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-02-03[media] rtl2832: implement PID filterAntti Palosaari3-0/+72
Implement PID filter. This demod has PID filter size of 32 PIDs. Signed-off-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-02-03[media] rtl2832: define more demod lock statusesAntti Palosaari1-4/+2
Demod lock flags are derived from demod state machine states. States are running from 1 to 11, where highest state 11 means demod is fully locked and streaming. Naturally smaller state numbers means there is some partial locks. Define now state 10 as missing synch and lock. Signed-off-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>