- 20 6月, 2017 40 次提交
-
-
由 Antti Palosaari 提交于
Removed register writes are already chip defaults, are not required, are set later or belong to AF9015 USB interface. Signed-off-by: NAntti Palosaari <crope@iki.fi> Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
-
由 Antti Palosaari 提交于
On serial TS mode output pin could be selected from D0 or D7. Add configuration option to for it. Rename TS mode config option prefix from AF9013_TS_ to AF9013_TS_MODE_. Signed-off-by: NAntti Palosaari <crope@iki.fi> Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
-
由 Antti Palosaari 提交于
It needs to be enabled in order to get stream from slave af9013 demod. Signed-off-by: NAntti Palosaari <crope@iki.fi> Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
-
由 Antti Palosaari 提交于
* fix write+read when write has more than one byte * remove lock, not needed on that case * remove useless i2c msg send loop, as we support only write, read and write+read as one go and nothing more Signed-off-by: NAntti Palosaari <crope@iki.fi> Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
-
由 Antti Palosaari 提交于
Add support for DVBv5 CNR. Signed-off-by: NAntti Palosaari <crope@iki.fi> Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
-
由 Antti Palosaari 提交于
Use typical (return 0/goto err/return err) error handling everywhere. Add missing error handling where missing. Signed-off-by: NAntti Palosaari <crope@iki.fi> Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
-
由 Antti Palosaari 提交于
Use regmap for register access. Own low level i2c read and write routines for regmap is still needed because chip uses single command byte in addition to typical i2c register access. Signed-off-by: NAntti Palosaari <crope@iki.fi> Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
-
由 Antti Palosaari 提交于
We can simplify logging as we now have a proper i2c client to pass for kernel dev_* logging functions. Signed-off-by: NAntti Palosaari <crope@iki.fi> Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
-
由 Antti Palosaari 提交于
Replace own binary division with 64-bit multiply and division. Signed-off-by: NAntti Palosaari <crope@iki.fi> Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
-
由 Antti Palosaari 提交于
Add kernel i2c driver bindings. That allows dev_* logging, regmap and more. Signed-off-by: NAntti Palosaari <crope@iki.fi> Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
-
由 Antti Palosaari 提交于
It shorten, as typed chars, access to config values as there is one pointer less. Also, when config/platform data is passed to driver there could be some values that are not relevant to store state as such or not needed to store at all. Signed-off-by: NAntti Palosaari <crope@iki.fi> Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
-
由 Antti Palosaari 提交于
Driver was using wrong "8-bit" i2c addresses for demods and tuners. Internal demod i2c address was not set at all. These are needed to be fixed before proper i2c client binding is used. Signed-off-by: NAntti Palosaari <crope@iki.fi> Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
-
由 Gustavo A. R. Silva 提交于
Check return value from call to af9013_wr_regs(), so in case of error print debug message and return. Addresses-Coverity-ID: 1227035 Signed-off-by: NGustavo A. R. Silva <garsilva@embeddedor.com> Signed-off-by: NAntti Palosaari <crope@iki.fi> Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
-
由 Daniel Scheller 提交于
Adds hardware IDs for all Sony CXD-based Cine-cards and MaxA8 devices, also adds some other yet missing IDs like the Octopus V3, Octopus OEM and Octopus Mini, as well as cards with unknown/deleted sub-ids. Signed-off-by: NDaniel Scheller <d.scheller@gmx.net> Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
-
由 Daniel Scheller 提交于
Properly detect and attach Ports and Flex modules with the Sony CXD28xxER series demods. This makes newer Cine cards and most DuoFlex C/C2/T/T2 (or any combination of these systems) work, PCI IDs need to be added though. Note: This utilises the CXD2841ER demod driver, which requires the changes from this patch series to properly work. Without those changes, it won't function properly (if at all). Signed-off-by: NDaniel Scheller <d.scheller@gmx.net> Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
-
由 Daniel Scheller 提交于
Some Flex modules (mostly with anyof C/C2/T/T2 demods based on the Sony CXD28xxER series) are equipped with an interface named XO2 (which appears to be the Lattice MachXO2). Add functionality to detect such links and initialise them, so any tuner module with such an interface can be used. This also adds dummy detection for any possible connected module, telling the user it isn't supported at this very moment. Also adds i2c_io(), i2c_write() and i2c_write_reg(), all required for the XO2 handling functionality. Signed-off-by: NDaniel Scheller <d.scheller@gmx.net> Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
-
由 Daniel Scheller 提交于
This is a backport of the board control setup from the vendor provided dddvb driver package, which does additional device initialisation based on the board_control device info values. Also backports the TS quirk flags which is used to control setup and usage of the tuner modules soldered on the bridge cards (e.g. CineCTv7, CineS2 V7, MaxA8 and the likes). Functionality originates from ddbridge vendor driver. Permission for reuse and kernel inclusion was formally granted by Ralph Metzler <rjkm@metzlerbros.de>. Cc: Ralph Metzler <rjkm@metzlerbros.de> Signed-off-by: NDaniel Scheller <d.scheller@gmx.net> Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
-
由 Daniel Scheller 提交于
On DVB-T/T2 at least, SNR might be reported as >2500dB, which not only is just wrong but also ridiculous, so fix this by improving the conversion of the register value. The INTLOG10X100 function/macro and the way the values are converted were both taken from DD's cxd2843 driver. Signed-off-by: NDaniel Scheller <d.scheller@gmx.net> Acked-by: NAbylay Ospan <aospan@netup.ru> Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
-
由 Daniel Scheller 提交于
Bits 3 and 4 of the TSCONFIG register are important for certain hardware constellations, in that they need to be zeroed. Add a configuration flag to toggle this. Signed-off-by: NDaniel Scheller <d.scheller@gmx.net> Acked-by: NAbylay Ospan <aospan@netup.ru> Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
-
由 Daniel Scheller 提交于
Adds a flag to enable or disable the IFAGCNEG bit in cxd2841er_init_tc(). Signed-off-by: NDaniel Scheller <d.scheller@gmx.net> Acked-by: NAbylay Ospan <aospan@netup.ru> Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
-
由 Daniel Scheller 提交于
Don't wait for FE_HAS_LOCK in set_frontend_tc() and thus don't hammer the lock status register with inquiries when CXD2841ER_NO_WAIT_LOCK is set in the configuration, which also unneccessarily blocks applications until a TS LOCK has been acquired. Rather, API and applications will check for a TS LOCK by utilising the tune fe_op, read_status and get_frontend ops, which is sufficient. Signed-off-by: NDaniel Scheller <d.scheller@gmx.net> Acked-by: NAbylay Ospan <aospan@netup.ru> Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
-
由 Daniel Scheller 提交于
When AUTO_IFHZ is set and the tuner is supposed to provide proper IF speed values, it should be possible to have the tuner setup take place before the demod is configured, else the demod might be configured with either wrong (old), or even no values at all, which obviously will cause issues. To set this behaviour in the most flexible way, this is done with a separate flag instead of making this depend on AUTO_IFHZ. It should be evaluated if tuning shouldn't take place earlier in all cases and hardware constellations. Signed-off-by: NDaniel Scheller <d.scheller@gmx.net> Acked-by: NAbylay Ospan <aospan@netup.ru> Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
-
由 Daniel Scheller 提交于
The Sony CXD28xx demods may have other tuner types attached to them (e.g. NXP TDA18212), so don't mandatorily configure and enable the ASCOT functionality, but make this conditional by a config flag. Signed-off-by: NDaniel Scheller <d.scheller@gmx.net> Acked-by: NAbylay Ospan <aospan@netup.ru> Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
-
由 Daniel Scheller 提交于
Some constellations work/need a serial TS transport mode. This adds a flag that will toggle set up of such mode. Signed-off-by: NDaniel Scheller <d.scheller@gmx.net> Acked-by: NAbylay Ospan <aospan@netup.ru> Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
-
由 Daniel Scheller 提交于
Add a AUTO_IFHZ flag and a function that will read IF speed values from any attached tuner if the tuner supports this and if AUTO_IFHZ is enabled, and else the passed default value (which probably matches Sony ASCOT tuners) will be passed back. The returned value is then used to calculate the iffeq which the demod will be programmed with. Signed-off-by: NDaniel Scheller <d.scheller@gmx.net> Acked-by: NAbylay Ospan <aospan@netup.ru> Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
-
由 Daniel Scheller 提交于
Some cards/bridges wrap i2c_gate_ctrl handling with a mutex_lock(). This is e.g. done in ddbridge to protect against concurrent tuner access with regards to the dual tuner HW, where concurrent tuner reconfiguration can result in tuning fails or bad reception quality. When the tuner driver additionally tries to open the I2C gate (which e.g. the tda18212 driver does) when the demod already did this, this will lead to a deadlock. This makes the calls to i2c_gatectrl from the demod driver optional when the flag is set, leaving this to the tuner driver. For readability reasons and to not have the check duplicated multiple times, the setup is factored into cxd2841er_tuner_set(). This commit also updates the netup card driver (which seems to be the only consumer of the cxd2841er as of now). Signed-off-by: NDaniel Scheller <d.scheller@gmx.net> Acked-by: NAbylay Ospan <aospan@netup.ru> Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
-
由 Daniel Scheller 提交于
Throughout the patch series some configuration flags will be added to the demod driver. This patch prepares this by adding the flags var to struct cxd2841er_config, which will serve as a bitmask to toggle various options and behaviour in the driver. Signed-off-by: NDaniel Scheller <d.scheller@gmx.net> Acked-by: NAbylay Ospan <aospan@netup.ru> Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
-
由 Daniel Scheller 提交于
The way the MAKE_IFFREQ_CONFIG macros are written make it impossible to pass regular integers for iffreq calculation, since this will cause "SSE register return with SSE disabled" compile errors. This changes the calculation into C functions which also might help when debugging. Also, expand all passed frequencies from MHz to Hz scale. Signed-off-by: NDaniel Scheller <d.scheller@gmx.net> Acked-by: NAbylay Ospan <aospan@netup.ru> Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
-
由 Daniel Scheller 提交于
Those demods are programmed in the same way as the CXD2841ER/54ER and can be handled by this driver. Support added in a way matching the existing code, supported delivery systems are set according to what each demod supports. Updates the type string setting used for printing the "attaching..." log line aswell. Signed-off-by: NDaniel Scheller <d.scheller@gmx.net> Acked-by: NAbylay Ospan <aospan@netup.ru> Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
-
由 Daniel Scheller 提交于
Do unfreeze_regs() directly when accessing the demod registers is done, and don't have multiple unfreeze's on different conditions, which even can get prone to errors. Signed-off-by: NDaniel Scheller <d.scheller@gmx.net> Acked-by: NAbylay Ospan <aospan@netup.ru> Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
-
由 Daniel Scheller 提交于
Doing the I2C read operation with two calls to i2c_transfer() causes the exclusive I2C bus lock of the underlying adapter to be released. While this isn't an issue if only one demodulator is attached to the bus, having two or even more causes troubles in that concurrent accesses to the different demods will cause all kinds of issues due to wrong data being returned on read operations (for example, the TS config register will be set wrong). This changes the read_regs() function to do the operation in one go (by calling i2c_transfer with the whole msg list instead of one by one) to not loose the I2C bus lock, fixing all sorts of random runtime failures. Signed-off-by: NDaniel Scheller <d.scheller@gmx.net> Acked-by: NAbylay Ospan <aospan@netup.ru> Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
-
由 Daniel Scheller 提交于
This moves the I2C debug dump into the preceding dev_dbg() call by utilising the %*ph format macro and removes the call to print_hex_debug_bytes(). Signed-off-by: NDaniel Scheller <d.scheller@gmx.net> Acked-by: NAbylay Ospan <aospan@netup.ru> Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
-
由 Daniel Scheller 提交于
This adds detection and activation for STV0367-based tuner hardware (namely CineCTv6 bridge cards and older DuoFlex CT addon modules). Utilises the extended stv0367 demod driver. TDA18212 i2c_client/regmap-api code was originally implemented by Antti Palosaari <crope@iki.fi> in a variant to update the ddbridge code from the vendor dddvb package (formal ack for these parts received). Original patch at [1]. When boards with STV0367 are cold-started, there might be issues with the I2C gate, causing the TDA18212 detection/probe to fail. For these demods, a workaround (tuner_tda18212_ping) is implemented which probes the tuner twice on this hardware constellation which will resolve the problem and put all components into a working state. Other demod/port types won't be retried. [1] https://patchwork.linuxtv.org/patch/25146/Signed-off-by: NDaniel Scheller <d.scheller@gmx.net> Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
-
由 Daniel Scheller 提交于
Adds new i2c_read_regs() function and make i2c_read_reg() wrap into this with len=1. Required for the tuner_tda18212_ping() and XO2 handling functions (part of the Sony CXD28xx support patch series). Signed-off-by: NDaniel Scheller <d.scheller@gmx.net> Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
-
由 Daniel Scheller 提交于
This - in conjunction with the previous changes - makes it possible to use the STV0367 DVB-C/T demodulator driver with Digital Devices hardware having this demodulator soldered on them (namely CineCTv6 bridges and some earlier DuoFlex CT addon modules). The changes do the following: - add a third *_attach function which will make use of a third frontend_ops struct which announces both -C and -T support (the same as with DD's own driver stv0367dd). This is necessary to support both delivery systems on one FE without having to do large conversions to VB2 or the need to select either -C or -T mode via modparams and the like. Additionally, the frontend_ops point to new "glue" functions which will then call into the existing functionality depending on the active delivery system/demod state (all used functionality works almost OOTB). - Demod initialisation has been ported from stv0367dd. DD's driver always does a full init of both OFDM and QAM cores, with some additional things. The active delivery system is remembered and upon switch, the Demod will be reconfigured to work in OFDM or QAM mode (that's what the ddb_setup_XX functions are used for). Note that in QAM mode, the DD demods work with an IC speed of 58Mhz. It's not very good to perform full reinits upon Demod mode changes since in very rare occasions this can lead to the I2C interface or the whole Demod to crash, requiring a powercycle, thus the flag to perform full reinit is set to disabled. - A little enum is added for named identifiers of the current Demod state. Initialisation code/register writes originate from stv0367dd. Permission to reuse was formally granted by Ralph Metzler <rjkm@metzlerbros.de>. Signed-off-by: NDaniel Scheller <d.scheller@gmx.net> Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
-
由 Daniel Scheller 提交于
Digital Devices uses defaults tables in their stv0367dd demod driver variant which differ in a few registers, at least enough that no stable operation can be provided with the tables already present in the driver (init succeeds and DVB reception works but at least when the driver is reloaded using rmmod/modprobe, the demod goes into a crashed state in a way it doesn't react on any I2C command anymore, while even more side-effects may occur), so there's a good reason to better have another set of defaults. Defaults originating from the stv0367dd driver. Permission to reuse them was formally granted by Ralph Metzler <rjkm@metzlerbros.de>. Signed-off-by: NDaniel Scheller <d.scheller@gmx.net> Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
-
由 Daniel Scheller 提交于
The values used for comparing symbol rates and the resulting conditional reg writes seem wrong (rates multiplied by ten), so fix those values. While this doesn't seem to influence operation, it should be fixed anyway. Signed-off-by: NDaniel Scheller <d.scheller@gmx.net> Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
-
由 Daniel Scheller 提交于
In some configurations (due to different PIN config, wiring or so), the QAM FECLock might be signalled using a different register than F367CAB_QAMFEC_LOCK (e.g. F367CAB_DESCR_SYNCSTATE on Digital Devices hw), so make that register selectable. Signed-off-by: NDaniel Scheller <d.scheller@gmx.net> Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
-
由 Daniel Scheller 提交于
Currently, if_khz is set and provided using the configuration var in struct stv0367_config. However, in some constellations, the value might be different for differing channel bandwidths or even -T and -C operation. When e.g. used in conjunction with TDA18212 tuners, the tuner frontend might be aware of the different freqs. This factors if_khz retrieval in a function, which checks a new flag if an automatic retrieval attempt should be made, and if the tuner provides it, use it whenever needed. Signed-off-by: NDaniel Scheller <d.scheller@gmx.net> Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
-
由 Daniel Scheller 提交于
Every time dvb_frontend_ops.set_frontend() is called, an almost full reinit of the demodulator will be performed. While this might cause a slight delay when switching channels due to all involved tables being rewritten, it can even be dangerous in certain causes in that the demod may lock up and requires to be powercycled (this can happen on Digital Devices hardware). So this adds a flag if it should be done, and to not change behaviour with existing card support, it'll be enabled in all cases. Signed-off-by: NDaniel Scheller <d.scheller@gmx.net> Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
-