ngene-updates: Hardware support, TS buffer shift fix
Get series with b4
b4 am [email protected]Versions newest first · linked by author and title
- v2 Latest12 patches 3 repliesIn review
- v112 patches 0 repliesSuperseded
Changes in v2 from the cover letter
- TS buffer offset correction missed a check for the remaining buffer length before copying the next full 188-byte block, which might could have caused out-of-bound-reads from void *buf. Also, tsin_find_offset returns it's offset clamped to 188 byte boundaries to not accidentally skip over valid TS data. Few typos in the commit message were fixed and a note for the modparam was added, too.
Patches in v2 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/12 | ngene: add two additional PCI IDsdrivers/ | +2 | 0 replies | |
| 2/12 | ngene: convert kernellog printing from printk() to dev_*() macrosdrivers/ drivers/ drivers/ | +84 | 0 replies | |
| 3/12 | ngene: use defines to identify the demod_typedrivers/ drivers/ | +10 | 0 replies | |
| 4/12 | ngene: support STV0367 DVB-C/T DuoFlex addonsdrivers/ drivers/ drivers/ +1 more | +191 | 0 replies | |
| 5/12 | ngene: add XO2 module supportdrivers/ drivers/ | +155 | 0 replies | |
| 6/12 | ngene: add support for Sony CXD28xx-based DuoFlex modulesdrivers/ drivers/ | +59 | 0 replies | |
| 7/12 | ngene: add support for DuoFlex S2 V4 addon modulesdrivers/ drivers/ | +86 | 0 replies | |
| 8/12 | ngene: deduplicate I2C adapter evaluationdrivers/ | +15 | 2 replies | |
| 9/12 | ngene: check for CXD2099AR presence before attachingdrivers/ drivers/ drivers/ | +36 | 0 replies | |
| 10/12 | ngene: don't treat non-existing demods as errordrivers/ | +1 | 0 replies | |
| 11/12 | ngene: move the tsin_exchange() stripcopy block into a functiondrivers/ | +27 | 1 reply | |
| 12/12 | ngene: compensate for TS buffer offset shiftsdrivers/ drivers/ | +93 | 0 replies |
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v2 yet.
Cover letter [PATCH v2 00/12] ngene-updates: Hardware support, TS buffer shift fix
From: Daniel Scheller <[email protected]>
Sorry for this quick V2 of this series and thus sorry for the traffic, spam and noise. V1 missed a 188-byte clamping in tsin_find_offset() and a recheck for the remaining size of the TS buffer to copy after offset correction.
Some love for the ngene driver, which runs the older Micronas nGene based cards from Digital Devices like the cineS2 v5.5.
This series changes:
- Two more PCI IDs for more supported PCIe bridge hardware
- Conversion of all printk() to more proper dev_*() based logging (the module_init rather uses pr_*() logging since there's no *dev available yet).
- Support for all available DuoFlex addon modules from that vendor. All addon modules are electrically compatible and use the same interface, and the addons work very well on the aging ngene hardware.
- Check for CXD2099AR addon modules before blindly trying to attach them, removing unnecessary and maybe irritating error logging if such module isn't present.
- Workaround a hardware quirk in conjunction with the CXD2099AR module, CA modules and CAM control communication, causing the TS input buffer to shift albeit different communication paths are ought to be in use.
This series is based on the CXD2099 regmap conversion series, see [1]. Especially [2] is required for the STV0367 enablement patch (and the following ones) since the use of the TDA18212 I2C tuner client relies on the i2c_client variable to be present, which is added in the forementioned CXD2099 series.
Please pick this up and merge.
[1] https://www.spinics.net/lists/linux-media/msg129183.html
[2] https://www.spinics.net/lists/linux-media/msg129187.html
Changes since v1:
- TS buffer offset correction missed a check for the remaining buffer length before copying the next full 188-byte block, which might could have caused out-of-bound-reads from void *buf. Also, tsin_find_offset returns it's offset clamped to 188 byte boundaries to not accidentally skip over valid TS data. Few typos in the commit message were fixed and a note for the modparam was added, too.
Daniel Scheller (12):
[media] ngene: add two additional PCI IDs
[media] ngene: convert kernellog printing from printk() to dev_*()
macros
[media] ngene: use defines to identify the demod_type [media] ngene: support STV0367 DVB-C/T DuoFlex addons [media] ngene: add XO2 module support
[media] ngene: add support for Sony CXD28xx-based DuoFlex modules [media] ngene: add support for DuoFlex S2 V4 addon modules [media] ngene: deduplicate I2C adapter evaluation [media] ngene: check for CXD2099AR presence before attaching [media] ngene: don't treat non-existing demods as error [media] ngene: move the tsin_exchange() stripcopy block into a
function
[media] ngene: compensate for TS buffer offset shifts
drivers/media/pci/ngene/Kconfig | 6 + drivers/media/pci/ngene/ngene-cards.c | 590 ++++++++++++++++++++++++++++++---- drivers/media/pci/ngene/ngene-core.c | 101 +++--- drivers/media/pci/ngene/ngene-dvb.c | 133 ++++++-- drivers/media/pci/ngene/ngene.h | 23 ++ 5 files changed, 732 insertions(+), 121 deletions(-)
Signature · 1 line
2.16.1