Documentation/driver-api/media/drivers/dvb-usb.rst

Source file repositories/reference/linux-study-clean/Documentation/driver-api/media/drivers/dvb-usb.rst

File Facts

System
Linux kernel
Corpus path
Documentation/driver-api/media/drivers/dvb-usb.rst
Extension
.rst
Size
10343 bytes
Lines
358
Domain
Support Tooling And Documentation
Bucket
Documentation
Inferred role
Support Tooling And Documentation: documentation
Status
atlas-only

Why This File Exists

Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.

Dependency Surface

Detected Declarations

Annotated Snippet

.. SPDX-License-Identifier: GPL-2.0

Idea behind the dvb-usb-framework
=================================

.. note::

   #) This documentation is outdated. Please check at the DVB wiki
      at https://linuxtv.org/wiki for more updated info.

   #) **deprecated:** Newer DVB USB drivers should use the dvb-usb-v2 framework.

In March 2005 I got the new Twinhan USB2.0 DVB-T device. They provided specs
and a firmware.

Quite keen I wanted to put the driver (with some quirks of course) into dibusb.
After reading some specs and doing some USB snooping, it realized, that the
dibusb-driver would be a complete mess afterwards. So I decided to do it in a
different way: With the help of a dvb-usb-framework.

The framework provides generic functions (mostly kernel API calls), such as:

- Transport Stream URB handling in conjunction with dvb-demux-feed-control
  (bulk and isoc are supported)
- registering the device for the DVB-API
- registering an I2C-adapter if applicable
- remote-control/input-device handling
- firmware requesting and loading (currently just for the Cypress USB
  controllers)
- other functions/methods which can be shared by several drivers (such as
  functions for bulk-control-commands)
- TODO: a I2C-chunker. It creates device-specific chunks of register-accesses
  depending on length of a register and the number of values that can be
  multi-written and multi-read.

The source code of the particular DVB USB devices does just the communication
with the device via the bus. The connection between the DVB-API-functionality
is done via callbacks, assigned in a static device-description (struct
dvb_usb_device) each device-driver has to have.

For an example have a look in drivers/media/usb/dvb-usb/vp7045*.

Objective is to migrate all the usb-devices (dibusb, cinergyT2, maybe the
ttusb; flexcop-usb already benefits from the generic flexcop-device) to use
the dvb-usb-lib.

TODO: dynamic enabling and disabling of the pid-filter in regard to number of
feeds requested.

Supported devices
-----------------

See the LinuxTV DVB Wiki at https://linuxtv.org for a complete list of
cards/drivers/firmwares:
https://linuxtv.org/wiki/index.php/DVB_USB

0. History & News:

  2005-06-30

  - added support for WideView WT-220U (Thanks to Steve Chang)

  2005-05-30

  - added basic isochronous support to the dvb-usb-framework
  - added support for Conexant Hybrid reference design and Nebula
	       DigiTV USB

  2005-04-17

Annotation

Implementation Notes