On 20.12.2013 01:14, Guest wrote:
From: Bud R <knightri...@are.ma>

*** Is this okay? ***

No, that is huge patch bomb with a lot of things that should be implement differently.

First of all lets take a look of hardware in a level what chips there is and how those are connected.

MaxLinear MxL301RF multimode silicon RF tuner
Sharp QM1D1C0042 satellite silicon RF tuner
Toshiba TC90522 ISDB-S/T demodulator
Altera Cyclone IV FPGA, PCI-bridge

* Cyclone IV is FPGA, runs custom device vendor specific logic.
* TC90522 can stream multiple TS, ISDB-S and ISDB-T, at same time. I am not sure if that device could do it, but it should be taken into account when implementing demod driver.



A DVB driver for Earthsoft PT3 (ISDB-S/T) receiver PCI Express cards, based on
1. PT3 chardev driver
        https://github.com/knight-rider/ptx/tree/master/pt3_drv
        https://github.com/m-tsudo/pt3
2. PT1/PT2 DVB driver
        drivers/media/pci/pt1

It behaves similarly as PT1 DVB, plus some tuning enhancements:
1. in addition to the real frequency:
        ISDB-S : freq. channel ID
        ISDB-T : freq# (I/O# +128), ch#, ch# +64 for CATV
2. in addition to TSID:
        ISDB-S : slot#

Feature changes:
- dropped DKMS & standalone compile
- dropped verbosity (debug levels), use single level -DDEBUG instead
- changed SNR (.read_snr) to CNR (.read_signal_strength)
- moved FE to drivers/media/dvb-frontends
- moved demodulator & tuners to drivers/media/tuners

Those are not moved.

- translated to standard (?) I2C protocol
- dropped unused features

The full package (buildable as standalone, DKMS or tree embedded module) is 
available at
https://github.com/knight-rider/ptx/tree/master/pt3_dvb

Signed-off-by: Bud R <knightri...@are.ma>

---
  drivers/media/dvb-frontends/Kconfig      |  10 +-
  drivers/media/dvb-frontends/Makefile     |   2 +
  drivers/media/dvb-frontends/mxl301rf.c   | 332 ++++++++++++++
  drivers/media/dvb-frontends/mxl301rf.h   |  27 ++

drivers/media/tuners/

  drivers/media/dvb-frontends/pt3_common.h |  95 ++++
  drivers/media/dvb-frontends/qm1d1c0042.c | 413 ++++++++++++++++++
  drivers/media/dvb-frontends/qm1d1c0042.h |  34 ++

drivers/media/tuners/

  drivers/media/dvb-frontends/tc90522.c    | 724 +++++++++++++++++++++++++++++++
  drivers/media/dvb-frontends/tc90522.h    |  48 ++
  drivers/media/pci/Kconfig                |   2 +-
  drivers/media/pci/Makefile               |   1 +
  drivers/media/pci/pt3/Kconfig            |  10 +
  drivers/media/pci/pt3/Makefile           |   6 +
  drivers/media/pci/pt3/pt3.c              | 543 +++++++++++++++++++++++
  drivers/media/pci/pt3/pt3.h              |  23 +
  drivers/media/pci/pt3/pt3_dma.c          | 335 ++++++++++++++
  drivers/media/pci/pt3/pt3_dma.h          |  48 ++
  drivers/media/pci/pt3/pt3_i2c.c          | 183 ++++++++
  drivers/media/pci/pt3/pt3_i2c.h          |  30 ++


+EXPORT_SYMBOL(mxl301rf_set_freq);
+EXPORT_SYMBOL(mxl301rf_set_sleep);

You should bind "attach" tuner directly to the DVB frontend.


+EXPORT_SYMBOL(qm1d1c0042_set_freq);
+EXPORT_SYMBOL(qm1d1c0042_set_sleep);
+EXPORT_SYMBOL(qm1d1c0042_tuner_init);


+EXPORT_SYMBOL(tc90522_attach);
+EXPORT_SYMBOL(tc90522_init);
+EXPORT_SYMBOL(tc90522_set_powers);


First of all that driver should be converted to Kernel DVB driver model. It works something like: You have a PCI driver (pt3). Then you call from attach(TC90522) from pt3 in order to get frontend. After that you attach tuner to frontend calling attach(MxL301RF) or/and attach(QM1D1C0042).

In that case it is a little bit tricky as you have a *physically* single demod and 2 RF tuners. But what I looked that demod has itself 2 demods integrated to one package which could even operate same time. So, it means you have to register 2 frontends, one for ISDB-S and one for ISDB-T and attach correct tuner per frontend.

I know some developers may prefer to registering 2 multimode frontends "as a newer single frontend model" and then select operating mode using delivery-system command. Anyhow, that makes some extra headache as you should switch RF tuner per selected frontend standard. IMHO better to forgot fuss about single frontend model in that case and switch to older model where is two different standard frontends registered.


regards
Antti

--
http://palosaari.fi/
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to