Re: [PATCH] Full DVB driver package for Earthsoft PT3 (ISDB-S/T) cards

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 20.12.2013 01:14, Guest wrote:
From: Bud R <knightrider@xxxxxx>

*** 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 <knightrider@xxxxxx>

---
  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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux