--- zzzz-none-000/linux-3.10.107/Documentation/DocBook/device-drivers.tmpl 2017-06-27 09:49:32.000000000 +0000
+++ scorpion-7490-727/linux-3.10.107/Documentation/DocBook/device-drivers.tmpl 2021-02-04 17:41:59.000000000 +0000
@@ -54,18 +54,19 @@
!Ikernel/sched/cpupri.c
!Ikernel/sched/fair.c
!Iinclude/linux/completion.h
-!Ekernel/timer.c
+!Ekernel/time/timer.c
Wait queues and Wake events
!Iinclude/linux/wait.h
-!Ekernel/wait.c
+!Ekernel/sched/wait.c
High-resolution timers
!Iinclude/linux/ktime.h
!Iinclude/linux/hrtimer.h
-!Ekernel/hrtimer.c
+!Ekernel/time/hrtimer.c
Workqueues and Kevents
+!Iinclude/linux/workqueue.h
!Ekernel/workqueue.c
Internal Functions
@@ -84,10 +85,13 @@
Kernel utility functions
!Iinclude/linux/kernel.h
-!Ekernel/printk.c
+!Ekernel/printk/printk.c
!Ekernel/panic.c
!Ekernel/sys.c
-!Ekernel/rcupdate.c
+!Ekernel/rcu/srcu.c
+!Ekernel/rcu/tree.c
+!Ekernel/rcu/tree_plugin.h
+!Ekernel/rcu/update.c
Device Resource Management
@@ -125,7 +129,13 @@
!Edrivers/base/bus.c
Device Drivers DMA Management
-!Edrivers/base/dma-buf.c
+!Edrivers/dma-buf/dma-buf.c
+!Edrivers/dma-buf/fence.c
+!Edrivers/dma-buf/seqno-fence.c
+!Iinclude/linux/fence.h
+!Iinclude/linux/seqno-fence.h
+!Edrivers/dma-buf/reservation.c
+!Iinclude/linux/reservation.h
!Edrivers/base/dma-coherent.c
!Edrivers/base/dma-mapping.c
@@ -181,23 +191,6 @@
!Idrivers/message/fusion/mptfc.c
!Idrivers/message/fusion/mptlan.c
- I2O message devices
-!Iinclude/linux/i2o.h
-!Idrivers/message/i2o/core.h
-!Edrivers/message/i2o/iop.c
-!Idrivers/message/i2o/iop.c
-!Idrivers/message/i2o/config-osm.c
-!Edrivers/message/i2o/exec-osm.c
-!Idrivers/message/i2o/exec-osm.c
-!Idrivers/message/i2o/bus-osm.c
-!Edrivers/message/i2o/device.c
-!Idrivers/message/i2o/device.c
-!Idrivers/message/i2o/driver.c
-!Idrivers/message/i2o/pci.c
-!Idrivers/message/i2o/i2o_block.c
-!Idrivers/message/i2o/i2o_scsi.c
-!Idrivers/message/i2o/i2o_proc.c
-
@@ -224,6 +217,111 @@
-->
+
+ Media Devices
+
+ Video2Linux devices
+!Iinclude/media/tuner.h
+!Iinclude/media/tuner-types.h
+!Iinclude/media/tveeprom.h
+!Iinclude/media/v4l2-async.h
+!Iinclude/media/v4l2-ctrls.h
+!Iinclude/media/v4l2-dv-timings.h
+!Iinclude/media/v4l2-event.h
+!Iinclude/media/v4l2-flash-led-class.h
+!Iinclude/media/v4l2-mediabus.h
+!Iinclude/media/v4l2-mem2mem.h
+!Iinclude/media/v4l2-of.h
+!Iinclude/media/v4l2-subdev.h
+!Iinclude/media/videobuf2-core.h
+!Iinclude/media/videobuf2-v4l2.h
+!Iinclude/media/videobuf2-memops.h
+
+ Digital TV (DVB) devices
+!Idrivers/media/dvb-core/dvb_ca_en50221.h
+!Idrivers/media/dvb-core/dvb_frontend.h
+!Idrivers/media/dvb-core/dvb_math.h
+!Idrivers/media/dvb-core/dvb_ringbuffer.h
+!Idrivers/media/dvb-core/dvbdev.h
+ Digital TV Demux API
+ The kernel demux API defines a driver-internal interface for
+ registering low-level, hardware specific driver to a hardware
+ independent demux layer. It is only of interest for Digital TV
+ device driver writers. The header file for this API is named
+ demux.h and located in
+ drivers/media/dvb-core.
+
+ The demux API should be implemented for each demux in the
+ system. It is used to select the TS source of a demux and to manage
+ the demux resources. When the demux client allocates a resource via
+ the demux API, it receives a pointer to the API of that
+ resource.
+ Each demux receives its TS input from a DVB front-end or from
+ memory, as set via this demux API. In a system with more than one
+ front-end, the API can be used to select one of the DVB front-ends
+ as a TS source for a demux, unless this is fixed in the HW platform.
+ The demux API only controls front-ends regarding to their connections
+ with demuxes; the APIs used to set the other front-end parameters,
+ such as tuning, are not defined in this document.
+ The functions that implement the abstract interface demux should
+ be defined static or module private and registered to the Demux
+ core for external access. It is not necessary to implement every
+ function in the struct dmx_demux. For example,
+ a demux interface might support Section filtering, but not PES
+ filtering. The API client is expected to check the value of any
+ function pointer before calling the function: the value of NULL means
+ that the “function is not available”.
+ Whenever the functions of the demux API modify shared data,
+ the possibilities of lost update and race condition problems should
+ be addressed, e.g. by protecting parts of code with mutexes.
+ Note that functions called from a bottom half context must not
+ sleep. Even a simple memory allocation without using GFP_ATOMIC can
+ result in a kernel thread being put to sleep if swapping is needed.
+ For example, the Linux kernel calls the functions of a network device
+ interface from a bottom half context. Thus, if a demux API function
+ is called from network device code, the function must not sleep.
+
+
+
+
+ Demux Callback API
+ This kernel-space API comprises the callback functions that
+ deliver filtered data to the demux client. Unlike the other DVB
+ kABIs, these functions are provided by the client and called from
+ the demux code.
+ The function pointers of this abstract interface are not
+ packed into a structure as in the other demux APIs, because the
+ callback functions are registered and used independent of each
+ other. As an example, it is possible for the API client to provide
+ several callback functions for receiving TS packets and no
+ callbacks for PES packets or sections.
+ The functions that implement the callback API need not be
+ re-entrant: when a demux driver calls one of these functions,
+ the driver is not allowed to call the function again before
+ the original call returns. If a callback is triggered by a
+ hardware interrupt, it is recommended to use the Linux
+ “bottom half” mechanism or start a tasklet instead of
+ making the callback function call directly from a hardware
+ interrupt.
+ This mechanism is implemented by
+ dmx_ts_cb() and
+ dmx_section_cb().
+
+
+!Idrivers/media/dvb-core/demux.h
+
+ Remote Controller devices
+!Iinclude/media/rc-core.h
+!Iinclude/media/lirc_dev.h
+
+ Media Controller devices
+!Iinclude/media/media-device.h
+!Iinclude/media/media-devnode.h
+!Iinclude/media/media-entity.h
+
+
+
+
16x50 UART Driver
!Edrivers/tty/serial/serial_core.c
@@ -271,7 +369,7 @@
Frame Buffer Memory
-!Edrivers/video/fbmem.c
+!Edrivers/video/fbdev/core/fbmem.c
Frame Buffer Colormap
-!Edrivers/video/fbcmap.c
+!Edrivers/video/fbdev/core/fbcmap.c
Frame Buffer Video Mode Database
-!Idrivers/video/modedb.c
-!Edrivers/video/modedb.c
+!Idrivers/video/fbdev/core/modedb.c
+!Edrivers/video/fbdev/core/modedb.c
Frame Buffer Macintosh Video Mode Database
-!Edrivers/video/macmodes.c
+!Edrivers/video/fbdev/macmodes.c
Frame Buffer Fonts
- Refer to the file drivers/video/console/fonts.c for more information.
+ Refer to the file lib/fonts/fonts.c for more information.
@@ -463,4 +561,31 @@
!Edrivers/hsi/hsi.c
+
+ Pulse-Width Modulation (PWM)
+
+ Pulse-width modulation is a modulation technique primarily used to
+ control power supplied to electrical devices.
+
+
+ The PWM framework provides an abstraction for providers and consumers
+ of PWM signals. A controller that provides one or more PWM signals is
+ registered as struct pwm_chip. Providers are
+ expected to embed this structure in a driver-specific structure. This
+ structure contains fields that describe a particular chip.
+
+
+ A chip exposes one or more PWM signal sources, each of which exposed
+ as a struct pwm_device. Operations can be
+ performed on PWM devices to control the period, duty cycle, polarity
+ and active state of the signal.
+
+
+ Note that PWM devices are exclusive resources: they can always only be
+ used by one consumer at a time.
+
+!Iinclude/linux/pwm.h
+!Edrivers/pwm/core.c
+
+