Skip to content

MxL5xx demodulator-tuner driver, DD MaxS8 support

Daniel Scheller linux-media 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest4 patches 1 replyIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/4dvb-frontends: MaxLinear MxL5xx DVB-S/S2 tuner-demodulator driverdrivers/media/dvb-frontends/Kconfig drivers/media/dvb-frontends/Makefile drivers/media/dvb-frontends/mxl5xx.c +3 more+3022 -02 replies
2/4ddbridge: support MaxLinear MXL5xx based cards (MaxS4/8)drivers/media/pci/ddbridge/Kconfig drivers/media/pci/ddbridge/Makefile drivers/media/pci/ddbridge/ddbridge-core.c +7 more+588 -40 replies
3/4ddbridge: fix buffer overflow in max_set_input_unlocked()drivers/media/pci/ddbridge/ddbridge-maxs8.c+4 -32 replies
4/4MAINTAINERS: add entry for mxl5xxMAINTAINERS+8 -00 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [PATCH 0/4] MxL5xx demodulator-tuner driver, DD MaxS8 support

From: Daniel Scheller <[email protected]>

Target: 4.14 seems unrealistic, so: 4.14+

Hard-dependency on the STV0910/STV6111 driver+DD support series and the DD driver bump.

This adds a driver for the MaxLinear MxL5xx tuner-demodulator series (a DVB-S/S2/DSS demodulator-tuner combo frontend) as being found on Digital Devices MaxS8 4/8 tunerport cards.

These patches conclude the tuner hardware support for all Digital Devices hardware as of dddvb-0.9.29 and gets mainline on par with the vendor driver.

Cleanup notes:

The driver was in no way submittable in it's original form: It had some very scary construct in that #define's carried multiple function para- meters (comma-separated things), which were passed to another #define, which then in turn referenced a function, like this pseudocode:

  #define REGDEF1     0x1234,2,3
  #define FNCALL      real_fn(othervar,regdef)
  function real_fn(var,reg,var1,var2,val)

  real_fn(state,REGDEF1,1);

Not only checkpatch didn't like this, but it looked heavily confusing. During cleanup, all of this obfuscation was expanded. Also, _defs.h carried all of the enums and structs as typedef's. All of this has been cleaned, together with the usual CamelCase things, whitespace and so on,
results: 55 "line len > 80 chars" in _defs.h and _regs.h (which I'd like to keep to retain readability), everything else clean. Everything else (e.g. overall code design) should be ok, but this should be judged by reviewers.

The resulting driver has been tested and works fine.

The glue code in ddbridge was added into a new object ddbridge-maxs8 to keep -core clean. It was added mostly as-is, and a little fixup commit is put ontop. LNB control is done by the bridge card in case of these cards, so that lives in the bridge driver (and is the majority of the additional object).

Thanks in advance for reviewing this.

Daniel Scheller (4):
[media] dvb-frontends: MaxLinear MxL5xx DVB-S/S2 tuner-demodulator
driver
[media] ddbridge: support MaxLinear MXL5xx based cards (MaxS4/8) [media] ddbridge: fix buffer overflow in max_set_input_unlocked() [media] MAINTAINERS: add entry for mxl5xx

 MAINTAINERS                                 |    8 +
 drivers/media/dvb-frontends/Kconfig         |    9 +
 drivers/media/dvb-frontends/Makefile        |    1 +
 drivers/media/dvb-frontends/mxl5xx.c        | 1873 +++++++++++++++++++++++++++
 drivers/media/dvb-frontends/mxl5xx.h        |   41 +
 drivers/media/dvb-frontends/mxl5xx_defs.h   |  731 +++++++++++
 drivers/media/dvb-frontends/mxl5xx_regs.h   |  367 ++++++
 drivers/media/pci/ddbridge/Kconfig          |    2 +
 drivers/media/pci/ddbridge/Makefile         |    2 +-
 drivers/media/pci/ddbridge/ddbridge-core.c  |   67 +-
 drivers/media/pci/ddbridge/ddbridge-hw.c    |   12 +
 drivers/media/pci/ddbridge/ddbridge-hw.h    |    4 +
 drivers/media/pci/ddbridge/ddbridge-main.c  |    1 +
 drivers/media/pci/ddbridge/ddbridge-maxs8.c |  444 +++++++
 drivers/media/pci/ddbridge/ddbridge-maxs8.h |   29 +
 drivers/media/pci/ddbridge/ddbridge-regs.h  |   21 +
 drivers/media/pci/ddbridge/ddbridge.h       |   11 +
 17 files changed, 3619 insertions(+), 4 deletions(-)
 create mode 100644 drivers/media/dvb-frontends/mxl5xx.c
 create mode 100644 drivers/media/dvb-frontends/mxl5xx.h
 create mode 100644 drivers/media/dvb-frontends/mxl5xx_defs.h
 create mode 100644 drivers/media/dvb-frontends/mxl5xx_regs.h
 create mode 100644 drivers/media/pci/ddbridge/ddbridge-maxs8.c
 create mode 100644 drivers/media/pci/ddbridge/ddbridge-maxs8.h
Signature · 1 line
2.13.0