mirror of
https://github.com/suyu-emu/horinux.git
synced 2026-09-21 14:15:21 -07:00
Merge tag 'media/v4.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
Pull media updates from Mauro Carvalho Chehab: - new DVB frontend drivers: ascot2e, cxd2841er, horus3a, lnbh25 - new HDMI capture driver: tc358743 - new driver for NetUP DVB new boards (netup_unidvb) - IR support for DVBSky cards (smipcie-ir) - Coda driver has gain macroblock tiling support - Renesas R-Car gains JPEG codec driver - new DVB platform driver for STi boards: c8sectpfe - added documentation for the media core kABI to device-drivers DocBook - lots of driver fixups, cleanups and improvements * tag 'media/v4.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (297 commits) [media] c8sectpfe: Remove select on undefined LIBELF_32 [media] i2c: fix platform_no_drv_owner.cocci warnings [media] cx231xx: Use wake_up_interruptible() instead of wake_up_interruptible_nr() [media] tc358743: only queue subdev notifications if devnode is set [media] tc358743: add missing Kconfig dependency/select [media] c8sectpfe: Use %pad to print 'dma_addr_t' [media] DocBook media: Fix typo "the the" in xml files [media] tc358743: make reset gpio optional [media] tc358743: set direction of reset gpio using devm_gpiod_get [media] dvbdev: document most of the functions/data structs [media] dvb_frontend.h: document the struct dvb_frontend [media] dvb-frontend.h: document struct dtv_frontend_properties [media] dvb-frontend.h: document struct dvb_frontend_ops [media] dvb: Use DVBFE_ALGO_HW where applicable [media] dvb_frontend.h: document struct analog_demod_ops [media] dvb_frontend.h: Document struct dvb_tuner_ops [media] Docbook: Document struct analog_parameters [media] dvb_frontend.h: get rid of dvbfe_modcod [media] add documentation for struct dvb_tuner_info [media] dvb_frontend: document dvb_frontend_tune_settings ...
This commit is contained in:
@@ -217,6 +217,40 @@ X!Isound/sound_firmware.c
|
||||
-->
|
||||
</chapter>
|
||||
|
||||
<chapter id="mediadev">
|
||||
<title>Media Devices</title>
|
||||
|
||||
<sect1><title>Video2Linux devices</title>
|
||||
!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-memops.h
|
||||
</sect1>
|
||||
<sect1><title>Digital TV (DVB) devices</title>
|
||||
!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
|
||||
</sect1>
|
||||
<sect1><title>Remote Controller devices</title>
|
||||
!Iinclude/media/rc-core.h
|
||||
</sect1>
|
||||
<sect1><title>Media Controller devices</title>
|
||||
!Iinclude/media/media-device.h
|
||||
!Iinclude/media/media-devnode.h
|
||||
!Iinclude/media/media-entity.h
|
||||
</sect1>
|
||||
|
||||
</chapter>
|
||||
|
||||
<chapter id="uart16x50">
|
||||
<title>16x50 UART Driver</title>
|
||||
!Edrivers/tty/serial/serial_core.c
|
||||
|
||||
@@ -199,7 +199,8 @@ DVB_DOCUMENTED = \
|
||||
#
|
||||
|
||||
install_media_images = \
|
||||
$(Q)-cp $(OBJIMGFILES) $(MEDIA_SRC_DIR)/*.svg $(MEDIA_SRC_DIR)/v4l/*.svg $(MEDIA_OBJ_DIR)/media_api
|
||||
$(Q)-mkdir $(MEDIA_OBJ_DIR)/media_api; \
|
||||
cp $(OBJIMGFILES) $(MEDIA_SRC_DIR)/*.svg $(MEDIA_SRC_DIR)/v4l/*.svg $(MEDIA_OBJ_DIR)/media_api
|
||||
|
||||
$(MEDIA_OBJ_DIR)/%: $(MEDIA_SRC_DIR)/%.b64
|
||||
$(Q)base64 -d $< >$@
|
||||
|
||||
@@ -163,9 +163,8 @@ are called:</para>
|
||||
<para>where N enumerates the DVB PCI cards in a system starting
|
||||
from 0, and M enumerates the devices of each type within each
|
||||
adapter, starting from 0, too. We will omit the “
|
||||
<constant>/dev/dvb/adapterN/</constant>” in the further dicussion
|
||||
of these devices. The naming scheme for the devices is the same wheter
|
||||
devfs is used or not.</para>
|
||||
<constant>/dev/dvb/adapterN/</constant>” in the further discussion
|
||||
of these devices.</para>
|
||||
|
||||
<para>More details about the data structures and function calls of all
|
||||
the devices are described in the following chapters.</para>
|
||||
|
||||
@@ -3414,7 +3414,7 @@ giving priority to the center of the metered area.</entry>
|
||||
<row>
|
||||
<entry><constant>V4L2_EXPOSURE_METERING_MATRIX</constant> </entry>
|
||||
<entry>A multi-zone metering. The light intensity is measured
|
||||
in several points of the frame and the the results are combined. The
|
||||
in several points of the frame and the results are combined. The
|
||||
algorithm of the zones selection and their significance in calculating the
|
||||
final value is device dependent.</entry>
|
||||
</row>
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
</row>
|
||||
<row>
|
||||
<entry>__u32</entry>
|
||||
<entry><structfield>media_version</structfield></entry>
|
||||
<entry><structfield>driver_version</structfield></entry>
|
||||
<entry>Media device driver version, formatted with the
|
||||
<constant>KERNEL_VERSION()</constant> macro. Together with the
|
||||
<structfield>driver</structfield> field this identifies a particular
|
||||
|
||||
@@ -62,28 +62,28 @@ buffer as a DMABUF file at any time after buffers have been allocated with the
|
||||
&VIDIOC-REQBUFS; ioctl.</para>
|
||||
|
||||
<para> To export a buffer, applications fill &v4l2-exportbuffer;. The
|
||||
<structfield> type </structfield> field is set to the same buffer type as was
|
||||
previously used with &v4l2-requestbuffers;<structfield> type </structfield>.
|
||||
Applications must also set the <structfield> index </structfield> field. Valid
|
||||
<structfield>type</structfield> field is set to the same buffer type as was
|
||||
previously used with &v4l2-requestbuffers; <structfield>type</structfield>.
|
||||
Applications must also set the <structfield>index</structfield> field. Valid
|
||||
index numbers range from zero to the number of buffers allocated with
|
||||
&VIDIOC-REQBUFS; (&v4l2-requestbuffers;<structfield> count </structfield>)
|
||||
minus one. For the multi-planar API, applications set the <structfield> plane
|
||||
</structfield> field to the index of the plane to be exported. Valid planes
|
||||
&VIDIOC-REQBUFS; (&v4l2-requestbuffers; <structfield>count</structfield>)
|
||||
minus one. For the multi-planar API, applications set the <structfield>plane</structfield>
|
||||
field to the index of the plane to be exported. Valid planes
|
||||
range from zero to the maximal number of valid planes for the currently active
|
||||
format. For the single-planar API, applications must set <structfield> plane
|
||||
</structfield> to zero. Additional flags may be posted in the <structfield>
|
||||
flags </structfield> field. Refer to a manual for open() for details.
|
||||
format. For the single-planar API, applications must set <structfield>plane</structfield>
|
||||
to zero. Additional flags may be posted in the <structfield>flags</structfield>
|
||||
field. Refer to a manual for open() for details.
|
||||
Currently only O_CLOEXEC, O_RDONLY, O_WRONLY, and O_RDWR are supported. All
|
||||
other fields must be set to zero.
|
||||
In the case of multi-planar API, every plane is exported separately using
|
||||
multiple <constant> VIDIOC_EXPBUF </constant> calls. </para>
|
||||
multiple <constant>VIDIOC_EXPBUF</constant> calls.</para>
|
||||
|
||||
<para> After calling <constant>VIDIOC_EXPBUF</constant> the <structfield> fd
|
||||
</structfield> field will be set by a driver. This is a DMABUF file
|
||||
<para>After calling <constant>VIDIOC_EXPBUF</constant> the <structfield>fd</structfield>
|
||||
field will be set by a driver. This is a DMABUF file
|
||||
descriptor. The application may pass it to other DMABUF-aware devices. Refer to
|
||||
<link linkend="dmabuf">DMABUF importing</link> for details about importing
|
||||
DMABUF files into V4L2 nodes. It is recommended to close a DMABUF file when it
|
||||
is no longer used to allow the associated memory to be reclaimed. </para>
|
||||
is no longer used to allow the associated memory to be reclaimed.</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
@@ -170,9 +170,9 @@ multi-planar API. Otherwise this value must be set to zero. </entry>
|
||||
<row>
|
||||
<entry>__u32</entry>
|
||||
<entry><structfield>flags</structfield></entry>
|
||||
<entry>Flags for the newly created file, currently only <constant>
|
||||
O_CLOEXEC </constant>, <constant>O_RDONLY</constant>, <constant>O_WRONLY
|
||||
</constant>, and <constant>O_RDWR</constant> are supported, refer to the manual
|
||||
<entry>Flags for the newly created file, currently only
|
||||
<constant>O_CLOEXEC</constant>, <constant>O_RDONLY</constant>, <constant>O_WRONLY</constant>,
|
||||
and <constant>O_RDWR</constant> are supported, refer to the manual
|
||||
of open() for more details.</entry>
|
||||
</row>
|
||||
<row>
|
||||
@@ -200,9 +200,9 @@ set the array to zero.</entry>
|
||||
<term><errorcode>EINVAL</errorcode></term>
|
||||
<listitem>
|
||||
<para>A queue is not in MMAP mode or DMABUF exporting is not
|
||||
supported or <structfield> flags </structfield> or <structfield> type
|
||||
</structfield> or <structfield> index </structfield> or <structfield> plane
|
||||
</structfield> fields are invalid.</para>
|
||||
supported or <structfield>flags</structfield> or <structfield>type</structfield>
|
||||
or <structfield>index</structfield> or <structfield>plane</structfield> fields
|
||||
are invalid.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
@@ -267,7 +267,7 @@ is intended for still imaging applications. The idea is to get the
|
||||
best possible image quality that the hardware can deliver. It is not
|
||||
defined how the driver writer may achieve that; it will depend on the
|
||||
hardware and the ingenuity of the driver writer. High quality mode is
|
||||
a different mode from the the regular motion video capture modes. In
|
||||
a different mode from the regular motion video capture modes. In
|
||||
high quality mode:<itemizedlist>
|
||||
<listitem>
|
||||
<para>The driver may be able to capture higher
|
||||
|
||||
@@ -616,7 +616,7 @@ pointer to memory containing the payload of the control.</entry>
|
||||
<entry><constant>V4L2_CTRL_FLAG_EXECUTE_ON_WRITE</constant></entry>
|
||||
<entry>0x0200</entry>
|
||||
<entry>The value provided to the control will be propagated to the driver
|
||||
even if remains constant. This is required when the control represents an action
|
||||
even if it remains constant. This is required when the control represents an action
|
||||
on the hardware. For example: clearing an error flag or triggering the flash. All the
|
||||
controls of the type <constant>V4L2_CTRL_TYPE_BUTTON</constant> have this flag set.</entry>
|
||||
</row>
|
||||
|
||||
@@ -1,15 +1,17 @@
|
||||
* Analog Devices ADV7604/11 video decoder with HDMI receiver
|
||||
* Analog Devices ADV7604/11/12 video decoder with HDMI receiver
|
||||
|
||||
The ADV7604 and ADV7611 are multiformat video decoders with an integrated HDMI
|
||||
receiver. The ADV7604 has four multiplexed HDMI inputs and one analog input,
|
||||
and the ADV7611 has one HDMI input and no analog input.
|
||||
The ADV7604 and ADV7611/12 are multiformat video decoders with an integrated
|
||||
HDMI receiver. The ADV7604 has four multiplexed HDMI inputs and one analog
|
||||
input, and the ADV7611 has one HDMI input and no analog input. The 7612 is
|
||||
similar to the 7611 but has 2 HDMI inputs.
|
||||
|
||||
These device tree bindings support the ADV7611 only at the moment.
|
||||
These device tree bindings support the ADV7611/12 only at the moment.
|
||||
|
||||
Required Properties:
|
||||
|
||||
- compatible: Must contain one of the following
|
||||
- "adi,adv7611" for the ADV7611
|
||||
- "adi,adv7612" for the ADV7612
|
||||
|
||||
- reg: I2C slave address
|
||||
|
||||
@@ -22,10 +24,10 @@ port, in accordance with the video interface bindings defined in
|
||||
Documentation/devicetree/bindings/media/video-interfaces.txt. The port nodes
|
||||
are numbered as follows.
|
||||
|
||||
Port ADV7611
|
||||
Port ADV7611 ADV7612
|
||||
------------------------------------------------------------
|
||||
HDMI 0
|
||||
Digital output 1
|
||||
HDMI 0 0, 1
|
||||
Digital output 1 2
|
||||
|
||||
The digital output port node must contain at least one endpoint.
|
||||
|
||||
@@ -45,6 +47,7 @@ Optional Endpoint Properties:
|
||||
If none of hsync-active, vsync-active and pclk-sample is specified the
|
||||
endpoint will use embedded BT.656 synchronization.
|
||||
|
||||
- default-input: Select which input is selected after reset.
|
||||
|
||||
Example:
|
||||
|
||||
@@ -58,6 +61,8 @@ Example:
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
default-input = <0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
};
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
* Toshiba TC358743 HDMI-RX to MIPI CSI2-TX Bridge
|
||||
|
||||
The Toshiba TC358743 HDMI-RX to MIPI CSI2-TX (H2C) is a bridge that converts
|
||||
a HDMI stream to MIPI CSI-2 TX. It is programmable through I2C.
|
||||
|
||||
Required Properties:
|
||||
|
||||
- compatible: value should be "toshiba,tc358743"
|
||||
- clocks, clock-names: should contain a phandle link to the reference clock
|
||||
source, the clock input is named "refclk".
|
||||
|
||||
Optional Properties:
|
||||
|
||||
- reset-gpios: gpio phandle GPIO connected to the reset pin
|
||||
- interrupts, interrupt-parent: GPIO connected to the interrupt pin
|
||||
- data-lanes: should be <1 2 3 4> for four-lane operation,
|
||||
or <1 2> for two-lane operation
|
||||
- clock-lanes: should be <0>
|
||||
- clock-noncontinuous: Presence of this boolean property decides whether the
|
||||
MIPI CSI-2 clock is continuous or non-continuous.
|
||||
- link-frequencies: List of allowed link frequencies in Hz. Each frequency is
|
||||
expressed as a 64-bit big-endian integer. The frequency
|
||||
is half of the bps per lane due to DDR transmission.
|
||||
|
||||
For further information on the MIPI CSI-2 endpoint node properties, see
|
||||
Documentation/devicetree/bindings/media/video-interfaces.txt.
|
||||
|
||||
Example:
|
||||
|
||||
tc358743@0f {
|
||||
compatible = "toshiba,tc358743";
|
||||
reg = <0x0f>;
|
||||
clocks = <&hdmi_osc>;
|
||||
clock-names = "refclk";
|
||||
reset-gpios = <&gpio6 9 GPIO_ACTIVE_LOW>;
|
||||
interrupt-parent = <&gpio2>;
|
||||
interrupts = <5 IRQ_TYPE_LEVEL_HIGH>;
|
||||
|
||||
port {
|
||||
tc358743_out: endpoint {
|
||||
remote-endpoint = <&mipi_csi2_in>;
|
||||
data-lanes = <1 2 3 4>;
|
||||
clock-lanes = <0>;
|
||||
clock-noncontinuous;
|
||||
link-frequencies = /bits/ 64 <297000000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,24 @@
|
||||
* Renesas JPEG Processing Unit
|
||||
|
||||
The JPEG processing unit (JPU) incorporates the JPEG codec with an encoding
|
||||
and decoding function conforming to the JPEG baseline process, so that the JPU
|
||||
can encode image data and decode JPEG data quickly.
|
||||
|
||||
Required properties:
|
||||
- compatible: should containg one of the following:
|
||||
- "renesas,jpu-r8a7790" for R-Car H2
|
||||
- "renesas,jpu-r8a7791" for R-Car M2-W
|
||||
- "renesas,jpu-r8a7792" for R-Car V2H
|
||||
- "renesas,jpu-r8a7793" for R-Car M2-N
|
||||
|
||||
- reg: Base address and length of the registers block for the JPU.
|
||||
- interrupts: JPU interrupt specifier.
|
||||
- clocks: A phandle + clock-specifier pair for the JPU functional clock.
|
||||
|
||||
Example: R8A7790 (R-Car H2) JPU node
|
||||
jpeg-codec@fe980000 {
|
||||
compatible = "renesas,jpu-r8a7790";
|
||||
reg = <0 0xfe980000 0 0x10300>;
|
||||
interrupts = <0 272 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&mstp1_clks R8A7790_CLK_JPU>;
|
||||
};
|
||||
@@ -0,0 +1,89 @@
|
||||
STMicroelectronics STi c8sectpfe binding
|
||||
============================================
|
||||
|
||||
This document describes the c8sectpfe device bindings that is used to get transport
|
||||
stream data into the SoC on the TS pins, and into DDR for further processing.
|
||||
|
||||
It is typically used in conjunction with one or more demodulator and tuner devices
|
||||
which converts from the RF to digital domain. Demodulators and tuners are usually
|
||||
located on an external DVB frontend card connected to SoC TS input pins.
|
||||
|
||||
Currently 7 TS input (tsin) channels are supported on the stih407 family SoC.
|
||||
|
||||
Required properties (controller (parent) node):
|
||||
- compatible : Should be "stih407-c8sectpfe"
|
||||
|
||||
- reg : Address and length of register sets for each device in
|
||||
"reg-names"
|
||||
|
||||
- reg-names : The names of the register addresses corresponding to the
|
||||
registers filled in "reg":
|
||||
- c8sectpfe: c8sectpfe registers
|
||||
- c8sectpfe-ram: c8sectpfe internal sram
|
||||
|
||||
- clocks : phandle list of c8sectpfe clocks
|
||||
- clock-names : should be "c8sectpfe"
|
||||
See: Documentation/devicetree/bindings/clock/clock-bindings.txt
|
||||
|
||||
- pinctrl-names : a pinctrl state named tsin%d-serial or tsin%d-parallel (where %d is tsin-num)
|
||||
must be defined for each tsin child node.
|
||||
- pinctrl-0 : phandle referencing pin configuration for this tsin configuration
|
||||
See: Documentation/devicetree/bindings/pinctrl/pinctrl-binding.txt
|
||||
|
||||
|
||||
Required properties (tsin (child) node):
|
||||
|
||||
- tsin-num : tsin id of the InputBlock (must be between 0 to 6)
|
||||
- i2c-bus : phandle to the I2C bus DT node which the demodulators & tuners on this tsin channel are connected.
|
||||
- rst-gpio : reset gpio for this tsin channel.
|
||||
|
||||
Optional properties (tsin (child) node):
|
||||
|
||||
- invert-ts-clk : Bool property to control sense of ts input clock (data stored on falling edge of clk).
|
||||
- serial-not-parallel : Bool property to configure input bus width (serial on ts_data<7>).
|
||||
- async-not-sync : Bool property to control if data is received in asynchronous mode
|
||||
(all bits/bytes with ts_valid or ts_packet asserted are valid).
|
||||
|
||||
- dvb-card : Describes the NIM card connected to this tsin channel.
|
||||
|
||||
Example:
|
||||
|
||||
/* stih410 SoC b2120 + b2004a + stv0367-pll(NIMB) + stv0367-tda18212 (NIMA) DT example) */
|
||||
|
||||
c8sectpfe@08a20000 {
|
||||
compatible = "st,stih407-c8sectpfe";
|
||||
status = "okay";
|
||||
reg = <0x08a20000 0x10000>, <0x08a00000 0x4000>;
|
||||
reg-names = "stfe", "stfe-ram";
|
||||
interrupts = <0 34 0>, <0 35 0>;
|
||||
interrupt-names = "stfe-error-irq", "stfe-idle-irq";
|
||||
|
||||
pinctrl-names = "tsin0-serial", "tsin0-parallel", "tsin3-serial",
|
||||
"tsin4-serial", "tsin5-serial";
|
||||
|
||||
pinctrl-0 = <&pinctrl_tsin0_serial>;
|
||||
pinctrl-1 = <&pinctrl_tsin0_parallel>;
|
||||
pinctrl-2 = <&pinctrl_tsin3_serial>;
|
||||
pinctrl-3 = <&pinctrl_tsin4_serial_alt3>;
|
||||
pinctrl-4 = <&pinctrl_tsin5_serial_alt1>;
|
||||
|
||||
clocks = <&clk_s_c0_flexgen CLK_PROC_STFE>;
|
||||
clock-names = "stfe";
|
||||
|
||||
/* tsin0 is TSA on NIMA */
|
||||
tsin0: port@0 {
|
||||
tsin-num = <0>;
|
||||
serial-not-parallel;
|
||||
i2c-bus = <&ssc2>;
|
||||
rst-gpio = <&pio15 4 0>;
|
||||
dvb-card = <STV0367_TDA18212_NIMA_1>;
|
||||
};
|
||||
|
||||
tsin3: port@3 {
|
||||
tsin-num = <3>;
|
||||
serial-not-parallel;
|
||||
i2c-bus = <&ssc3>;
|
||||
rst-gpio = <&pio15 7 0>;
|
||||
dvb-card = <STV0367_TDA18212_NIMB_1>;
|
||||
};
|
||||
};
|
||||
+59
@@ -1525,6 +1525,7 @@ F: drivers/clocksource/arm_global_timer.c
|
||||
F: drivers/clocksource/clksrc_st_lpc.c
|
||||
F: drivers/i2c/busses/i2c-st.c
|
||||
F: drivers/media/rc/st_rc.c
|
||||
F: drivers/media/platform/sti/c8sectpfe/
|
||||
F: drivers/mmc/host/sdhci-st.c
|
||||
F: drivers/phy/phy-miphy28lp.c
|
||||
F: drivers/phy/phy-miphy365x.c
|
||||
@@ -5819,6 +5820,12 @@ S: Maintained
|
||||
F: fs/jbd2/
|
||||
F: include/linux/jbd2.h
|
||||
|
||||
JPU V4L2 MEM2MEM DRIVER FOR RENESAS
|
||||
M: Mikhail Ulyanov <mikhail.ulyanov@cogentembedded.com>
|
||||
L: linux-media@vger.kernel.org
|
||||
S: Maintained
|
||||
F: drivers/media/platform/rcar_jpu.c
|
||||
|
||||
JSM Neo PCI based serial card
|
||||
M: Thadeu Lima de Souza Cascardo <cascardo@linux.vnet.ibm.com>
|
||||
L: linux-serial@vger.kernel.org
|
||||
@@ -6662,6 +6669,51 @@ S: Supported
|
||||
F: Documentation/devicetree/bindings/media/renesas,vsp1.txt
|
||||
F: drivers/media/platform/vsp1/
|
||||
|
||||
MEDIA DRIVERS FOR ASCOT2E
|
||||
M: Sergey Kozlov <serjk@netup.ru>
|
||||
L: linux-media@vger.kernel.org
|
||||
W: http://linuxtv.org
|
||||
W: http://netup.tv/
|
||||
T: git git://linuxtv.org/media_tree.git
|
||||
S: Supported
|
||||
F: drivers/media/dvb-frontends/ascot2e*
|
||||
|
||||
MEDIA DRIVERS FOR CXD2841ER
|
||||
M: Sergey Kozlov <serjk@netup.ru>
|
||||
L: linux-media@vger.kernel.org
|
||||
W: http://linuxtv.org/
|
||||
W: http://netup.tv/
|
||||
T: git git://linuxtv.org/media_tree.git
|
||||
S: Supported
|
||||
F: drivers/media/dvb-frontends/cxd2841er*
|
||||
|
||||
MEDIA DRIVERS FOR HORUS3A
|
||||
M: Sergey Kozlov <serjk@netup.ru>
|
||||
L: linux-media@vger.kernel.org
|
||||
W: http://linuxtv.org/
|
||||
W: http://netup.tv/
|
||||
T: git git://linuxtv.org/media_tree.git
|
||||
S: Supported
|
||||
F: drivers/media/dvb-frontends/horus3a*
|
||||
|
||||
MEDIA DRIVERS FOR LNBH25
|
||||
M: Sergey Kozlov <serjk@netup.ru>
|
||||
L: linux-media@vger.kernel.org
|
||||
W: http://linuxtv.org/
|
||||
W: http://netup.tv/
|
||||
T: git git://linuxtv.org/media_tree.git
|
||||
S: Supported
|
||||
F: drivers/media/dvb-frontends/lnbh25*
|
||||
|
||||
MEDIA DRIVERS FOR NETUP PCI UNIVERSAL DVB devices
|
||||
M: Sergey Kozlov <serjk@netup.ru>
|
||||
L: linux-media@vger.kernel.org
|
||||
W: http://linuxtv.org/
|
||||
W: http://netup.tv/
|
||||
T: git git://linuxtv.org/media_tree.git
|
||||
S: Supported
|
||||
F: drivers/media/pci/netup_unidvb/*
|
||||
|
||||
MEDIA INPUT INFRASTRUCTURE (V4L/DVB)
|
||||
M: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
|
||||
P: LinuxTV.org Project
|
||||
@@ -10428,6 +10480,13 @@ F: drivers/char/toshiba.c
|
||||
F: include/linux/toshiba.h
|
||||
F: include/uapi/linux/toshiba.h
|
||||
|
||||
TOSHIBA TC358743 DRIVER
|
||||
M: Mats Randgaard <matrandg@cisco.com>
|
||||
L: linux-media@vger.kernel.org
|
||||
S: Maintained
|
||||
F: drivers/media/i2c/tc358743*
|
||||
F: include/media/tc358743.h
|
||||
|
||||
TMIO MMC DRIVER
|
||||
M: Ian Molton <ian@mnementh.co.uk>
|
||||
L: linux-mmc@vger.kernel.org
|
||||
|
||||
@@ -343,7 +343,7 @@ static struct clk_lookup lookups[] = {
|
||||
CLKDEV_CON_ID("2ddmac0", &mstp_clks[HWBLK_2DDMAC]),
|
||||
CLKDEV_DEV_ID("sh_fsi.0", &mstp_clks[HWBLK_SPU]),
|
||||
CLKDEV_CON_ID("jpu0", &mstp_clks[HWBLK_JPU]),
|
||||
CLKDEV_DEV_ID("sh-vou.0", &mstp_clks[HWBLK_VOU]),
|
||||
CLKDEV_DEV_ID("sh-vou", &mstp_clks[HWBLK_VOU]),
|
||||
CLKDEV_CON_ID("beu0", &mstp_clks[HWBLK_BEU0]),
|
||||
CLKDEV_DEV_ID("sh_mobile_ceu.0", &mstp_clks[HWBLK_CEU0]),
|
||||
CLKDEV_CON_ID("veu0", &mstp_clks[HWBLK_VEU0]),
|
||||
|
||||
@@ -307,7 +307,7 @@ static int calculate_v_scale_registers(struct saa7146_dev *dev, enum v4l2_field
|
||||
/* simple bubble-sort algorithm with duplicate elimination */
|
||||
static int sort_and_eliminate(u32* values, int* count)
|
||||
{
|
||||
int low = 0, high = 0, top = 0, temp = 0;
|
||||
int low = 0, high = 0, top = 0;
|
||||
int cur = 0, next = 0;
|
||||
|
||||
/* sanity checks */
|
||||
@@ -318,11 +318,8 @@ static int sort_and_eliminate(u32* values, int* count)
|
||||
/* bubble sort the first @count items of the array @values */
|
||||
for( top = *count; top > 0; top--) {
|
||||
for( low = 0, high = 1; high < top; low++, high++) {
|
||||
if( values[low] > values[high] ) {
|
||||
temp = values[low];
|
||||
values[low] = values[high];
|
||||
values[high] = temp;
|
||||
}
|
||||
if( values[low] > values[high] )
|
||||
swap(values[low], values[high]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -169,10 +169,10 @@ static int dvb_ca_en50221_write_data(struct dvb_ca_private *ca, int slot, u8 * e
|
||||
/**
|
||||
* Safely find needle in haystack.
|
||||
*
|
||||
* @param haystack Buffer to look in.
|
||||
* @param hlen Number of bytes in haystack.
|
||||
* @param needle Buffer to find.
|
||||
* @param nlen Number of bytes in needle.
|
||||
* @haystack: Buffer to look in.
|
||||
* @hlen: Number of bytes in haystack.
|
||||
* @needle: Buffer to find.
|
||||
* @nlen: Number of bytes in needle.
|
||||
* @return Pointer into haystack needle was found at, or NULL if not found.
|
||||
*/
|
||||
static char *findstr(char * haystack, int hlen, char * needle, int nlen)
|
||||
@@ -197,7 +197,7 @@ static char *findstr(char * haystack, int hlen, char * needle, int nlen)
|
||||
|
||||
|
||||
/**
|
||||
* Check CAM status.
|
||||
* dvb_ca_en50221_check_camstatus - Check CAM status.
|
||||
*/
|
||||
static int dvb_ca_en50221_check_camstatus(struct dvb_ca_private *ca, int slot)
|
||||
{
|
||||
@@ -240,13 +240,13 @@ static int dvb_ca_en50221_check_camstatus(struct dvb_ca_private *ca, int slot)
|
||||
|
||||
|
||||
/**
|
||||
* Wait for flags to become set on the STATUS register on a CAM interface,
|
||||
* checking for errors and timeout.
|
||||
* dvb_ca_en50221_wait_if_status - Wait for flags to become set on the STATUS
|
||||
* register on a CAM interface, checking for errors and timeout.
|
||||
*
|
||||
* @param ca CA instance.
|
||||
* @param slot Slot on interface.
|
||||
* @param waitfor Flags to wait for.
|
||||
* @param timeout_ms Timeout in milliseconds.
|
||||
* @ca: CA instance.
|
||||
* @slot: Slot on interface.
|
||||
* @waitfor: Flags to wait for.
|
||||
* @timeout_ms: Timeout in milliseconds.
|
||||
*
|
||||
* @return 0 on success, nonzero on error.
|
||||
*/
|
||||
@@ -290,10 +290,10 @@ static int dvb_ca_en50221_wait_if_status(struct dvb_ca_private *ca, int slot,
|
||||
|
||||
|
||||
/**
|
||||
* Initialise the link layer connection to a CAM.
|
||||
* dvb_ca_en50221_link_init - Initialise the link layer connection to a CAM.
|
||||
*
|
||||
* @param ca CA instance.
|
||||
* @param slot Slot id.
|
||||
* @ca: CA instance.
|
||||
* @slot: Slot id.
|
||||
*
|
||||
* @return 0 on success, nonzero on failure.
|
||||
*/
|
||||
@@ -346,14 +346,14 @@ static int dvb_ca_en50221_link_init(struct dvb_ca_private *ca, int slot)
|
||||
}
|
||||
|
||||
/**
|
||||
* Read a tuple from attribute memory.
|
||||
* dvb_ca_en50221_read_tuple - Read a tuple from attribute memory.
|
||||
*
|
||||
* @param ca CA instance.
|
||||
* @param slot Slot id.
|
||||
* @param address Address to read from. Updated.
|
||||
* @param tupleType Tuple id byte. Updated.
|
||||
* @param tupleLength Tuple length. Updated.
|
||||
* @param tuple Dest buffer for tuple (must be 256 bytes). Updated.
|
||||
* @ca: CA instance.
|
||||
* @slot: Slot id.
|
||||
* @address: Address to read from. Updated.
|
||||
* @tupleType: Tuple id byte. Updated.
|
||||
* @tupleLength: Tuple length. Updated.
|
||||
* @tuple: Dest buffer for tuple (must be 256 bytes). Updated.
|
||||
*
|
||||
* @return 0 on success, nonzero on error.
|
||||
*/
|
||||
@@ -399,11 +399,11 @@ static int dvb_ca_en50221_read_tuple(struct dvb_ca_private *ca, int slot,
|
||||
|
||||
|
||||
/**
|
||||
* Parse attribute memory of a CAM module, extracting Config register, and checking
|
||||
* it is a DVB CAM module.
|
||||
* dvb_ca_en50221_parse_attributes - Parse attribute memory of a CAM module,
|
||||
* extracting Config register, and checking it is a DVB CAM module.
|
||||
*
|
||||
* @param ca CA instance.
|
||||
* @param slot Slot id.
|
||||
* @ca: CA instance.
|
||||
* @slot: Slot id.
|
||||
*
|
||||
* @return 0 on success, <0 on failure.
|
||||
*/
|
||||
@@ -546,10 +546,10 @@ static int dvb_ca_en50221_parse_attributes(struct dvb_ca_private *ca, int slot)
|
||||
|
||||
|
||||
/**
|
||||
* Set CAM's configoption correctly.
|
||||
* dvb_ca_en50221_set_configoption - Set CAM's configoption correctly.
|
||||
*
|
||||
* @param ca CA instance.
|
||||
* @param slot Slot containing the CAM.
|
||||
* @ca: CA instance.
|
||||
* @slot: Slot containing the CAM.
|
||||
*/
|
||||
static int dvb_ca_en50221_set_configoption(struct dvb_ca_private *ca, int slot)
|
||||
{
|
||||
@@ -574,15 +574,16 @@ static int dvb_ca_en50221_set_configoption(struct dvb_ca_private *ca, int slot)
|
||||
|
||||
|
||||
/**
|
||||
* This function talks to an EN50221 CAM control interface. It reads a buffer of
|
||||
* data from the CAM. The data can either be stored in a supplied buffer, or
|
||||
* automatically be added to the slot's rx_buffer.
|
||||
* dvb_ca_en50221_read_data - This function talks to an EN50221 CAM control
|
||||
* interface. It reads a buffer of data from the CAM. The data can either
|
||||
* be stored in a supplied buffer, or automatically be added to the slot's
|
||||
* rx_buffer.
|
||||
*
|
||||
* @param ca CA instance.
|
||||
* @param slot Slot to read from.
|
||||
* @param ebuf If non-NULL, the data will be written to this buffer. If NULL,
|
||||
* @ca: CA instance.
|
||||
* @slot: Slot to read from.
|
||||
* @ebuf: If non-NULL, the data will be written to this buffer. If NULL,
|
||||
* the data will be added into the buffering system as a normal fragment.
|
||||
* @param ecount Size of ebuf. Ignored if ebuf is NULL.
|
||||
* @ecount: Size of ebuf. Ignored if ebuf is NULL.
|
||||
*
|
||||
* @return Number of bytes read, or < 0 on error
|
||||
*/
|
||||
@@ -698,14 +699,14 @@ exit:
|
||||
|
||||
|
||||
/**
|
||||
* This function talks to an EN50221 CAM control interface. It writes a buffer of data
|
||||
* to a CAM.
|
||||
* dvb_ca_en50221_write_data - This function talks to an EN50221 CAM control
|
||||
* interface. It writes a buffer of data to a CAM.
|
||||
*
|
||||
* @param ca CA instance.
|
||||
* @param slot Slot to write to.
|
||||
* @param ebuf The data in this buffer is treated as a complete link-level packet to
|
||||
* @ca: CA instance.
|
||||
* @slot: Slot to write to.
|
||||
* @ebuf: The data in this buffer is treated as a complete link-level packet to
|
||||
* be written.
|
||||
* @param count Size of ebuf.
|
||||
* @count: Size of ebuf.
|
||||
*
|
||||
* @return Number of bytes written, or < 0 on error.
|
||||
*/
|
||||
@@ -790,10 +791,10 @@ EXPORT_SYMBOL(dvb_ca_en50221_camchange_irq);
|
||||
|
||||
|
||||
/**
|
||||
* A CAM has been removed => shut it down.
|
||||
* dvb_ca_en50221_camready_irq - A CAM has been removed => shut it down.
|
||||
*
|
||||
* @param ca CA instance.
|
||||
* @param slot Slot to shut down.
|
||||
* @ca: CA instance.
|
||||
* @slot: Slot to shut down.
|
||||
*/
|
||||
static int dvb_ca_en50221_slot_shutdown(struct dvb_ca_private *ca, int slot)
|
||||
{
|
||||
@@ -815,11 +816,11 @@ EXPORT_SYMBOL(dvb_ca_en50221_camready_irq);
|
||||
|
||||
|
||||
/**
|
||||
* A CAMCHANGE IRQ has occurred.
|
||||
* dvb_ca_en50221_camready_irq - A CAMCHANGE IRQ has occurred.
|
||||
*
|
||||
* @param ca CA instance.
|
||||
* @param slot Slot concerned.
|
||||
* @param change_type One of the DVB_CA_CAMCHANGE_* values.
|
||||
* @ca: CA instance.
|
||||
* @slot: Slot concerned.
|
||||
* @change_type: One of the DVB_CA_CAMCHANGE_* values.
|
||||
*/
|
||||
void dvb_ca_en50221_camchange_irq(struct dvb_ca_en50221 *pubca, int slot, int change_type)
|
||||
{
|
||||
@@ -844,10 +845,10 @@ EXPORT_SYMBOL(dvb_ca_en50221_frda_irq);
|
||||
|
||||
|
||||
/**
|
||||
* A CAMREADY IRQ has occurred.
|
||||
* dvb_ca_en50221_camready_irq - A CAMREADY IRQ has occurred.
|
||||
*
|
||||
* @param ca CA instance.
|
||||
* @param slot Slot concerned.
|
||||
* @ca: CA instance.
|
||||
* @slot: Slot concerned.
|
||||
*/
|
||||
void dvb_ca_en50221_camready_irq(struct dvb_ca_en50221 *pubca, int slot)
|
||||
{
|
||||
@@ -865,8 +866,8 @@ void dvb_ca_en50221_camready_irq(struct dvb_ca_en50221 *pubca, int slot)
|
||||
/**
|
||||
* An FR or DA IRQ has occurred.
|
||||
*
|
||||
* @param ca CA instance.
|
||||
* @param slot Slot concerned.
|
||||
* @ca: CA instance.
|
||||
* @slot: Slot concerned.
|
||||
*/
|
||||
void dvb_ca_en50221_frda_irq(struct dvb_ca_en50221 *pubca, int slot)
|
||||
{
|
||||
@@ -899,7 +900,7 @@ void dvb_ca_en50221_frda_irq(struct dvb_ca_en50221 *pubca, int slot)
|
||||
/**
|
||||
* Wake up the DVB CA thread
|
||||
*
|
||||
* @param ca CA instance.
|
||||
* @ca: CA instance.
|
||||
*/
|
||||
static void dvb_ca_en50221_thread_wakeup(struct dvb_ca_private *ca)
|
||||
{
|
||||
@@ -914,7 +915,7 @@ static void dvb_ca_en50221_thread_wakeup(struct dvb_ca_private *ca)
|
||||
/**
|
||||
* Update the delay used by the thread.
|
||||
*
|
||||
* @param ca CA instance.
|
||||
* @ca: CA instance.
|
||||
*/
|
||||
static void dvb_ca_en50221_thread_update_delay(struct dvb_ca_private *ca)
|
||||
{
|
||||
@@ -1177,10 +1178,10 @@ static int dvb_ca_en50221_thread(void *data)
|
||||
* Real ioctl implementation.
|
||||
* NOTE: CA_SEND_MSG/CA_GET_MSG ioctls have userspace buffers passed to them.
|
||||
*
|
||||
* @param inode Inode concerned.
|
||||
* @param file File concerned.
|
||||
* @param cmd IOCTL command.
|
||||
* @param arg Associated argument.
|
||||
* @inode: Inode concerned.
|
||||
* @file: File concerned.
|
||||
* @cmd: IOCTL command.
|
||||
* @arg: Associated argument.
|
||||
*
|
||||
* @return 0 on success, <0 on error.
|
||||
*/
|
||||
@@ -1258,10 +1259,10 @@ out_unlock:
|
||||
/**
|
||||
* Wrapper for ioctl implementation.
|
||||
*
|
||||
* @param inode Inode concerned.
|
||||
* @param file File concerned.
|
||||
* @param cmd IOCTL command.
|
||||
* @param arg Associated argument.
|
||||
* @inode: Inode concerned.
|
||||
* @file: File concerned.
|
||||
* @cmd: IOCTL command.
|
||||
* @arg: Associated argument.
|
||||
*
|
||||
* @return 0 on success, <0 on error.
|
||||
*/
|
||||
@@ -1275,10 +1276,10 @@ static long dvb_ca_en50221_io_ioctl(struct file *file,
|
||||
/**
|
||||
* Implementation of write() syscall.
|
||||
*
|
||||
* @param file File structure.
|
||||
* @param buf Source buffer.
|
||||
* @param count Size of source buffer.
|
||||
* @param ppos Position in file (ignored).
|
||||
* @file: File structure.
|
||||
* @buf: Source buffer.
|
||||
* @count: Size of source buffer.
|
||||
* @ppos: Position in file (ignored).
|
||||
*
|
||||
* @return Number of bytes read, or <0 on error.
|
||||
*/
|
||||
@@ -1416,10 +1417,10 @@ nextslot:
|
||||
/**
|
||||
* Implementation of read() syscall.
|
||||
*
|
||||
* @param file File structure.
|
||||
* @param buf Destination buffer.
|
||||
* @param count Size of destination buffer.
|
||||
* @param ppos Position in file (ignored).
|
||||
* @file: File structure.
|
||||
* @buf: Destination buffer.
|
||||
* @count: Size of destination buffer.
|
||||
* @ppos: Position in file (ignored).
|
||||
*
|
||||
* @return Number of bytes read, or <0 on error.
|
||||
*/
|
||||
@@ -1519,8 +1520,8 @@ exit:
|
||||
/**
|
||||
* Implementation of file open syscall.
|
||||
*
|
||||
* @param inode Inode concerned.
|
||||
* @param file File concerned.
|
||||
* @inode: Inode concerned.
|
||||
* @file: File concerned.
|
||||
*
|
||||
* @return 0 on success, <0 on failure.
|
||||
*/
|
||||
@@ -1564,8 +1565,8 @@ static int dvb_ca_en50221_io_open(struct inode *inode, struct file *file)
|
||||
/**
|
||||
* Implementation of file close syscall.
|
||||
*
|
||||
* @param inode Inode concerned.
|
||||
* @param file File concerned.
|
||||
* @inode: Inode concerned.
|
||||
* @file: File concerned.
|
||||
*
|
||||
* @return 0 on success, <0 on failure.
|
||||
*/
|
||||
@@ -1592,8 +1593,8 @@ static int dvb_ca_en50221_io_release(struct inode *inode, struct file *file)
|
||||
/**
|
||||
* Implementation of poll() syscall.
|
||||
*
|
||||
* @param file File concerned.
|
||||
* @param wait poll wait table.
|
||||
* @file: File concerned.
|
||||
* @wait: poll wait table.
|
||||
*
|
||||
* @return Standard poll mask.
|
||||
*/
|
||||
@@ -1656,10 +1657,10 @@ static const struct dvb_device dvbdev_ca = {
|
||||
/**
|
||||
* Initialise a new DVB CA EN50221 interface device.
|
||||
*
|
||||
* @param dvb_adapter DVB adapter to attach the new CA device to.
|
||||
* @param ca The dvb_ca instance.
|
||||
* @param flags Flags describing the CA device (DVB_CA_FLAG_*).
|
||||
* @param slot_count Number of slots supported.
|
||||
* @dvb_adapter: DVB adapter to attach the new CA device to.
|
||||
* @ca: The dvb_ca instance.
|
||||
* @flags: Flags describing the CA device (DVB_CA_FLAG_*).
|
||||
* @slot_count: Number of slots supported.
|
||||
*
|
||||
* @return 0 on success, nonzero on failure
|
||||
*/
|
||||
@@ -1743,8 +1744,8 @@ EXPORT_SYMBOL(dvb_ca_en50221_release);
|
||||
/**
|
||||
* Release a DVB CA EN50221 interface device.
|
||||
*
|
||||
* @param ca_dev The dvb_device_t instance for the CA device.
|
||||
* @param ca The associated dvb_ca instance.
|
||||
* @ca_dev: The dvb_device_t instance for the CA device.
|
||||
* @ca: The associated dvb_ca instance.
|
||||
*/
|
||||
void dvb_ca_en50221_release(struct dvb_ca_en50221 *pubca)
|
||||
{
|
||||
|
||||
@@ -83,27 +83,27 @@ struct dvb_ca_en50221 {
|
||||
/* Functions for reporting IRQ events */
|
||||
|
||||
/**
|
||||
* A CAMCHANGE IRQ has occurred.
|
||||
* dvb_ca_en50221_camchange_irq - A CAMCHANGE IRQ has occurred.
|
||||
*
|
||||
* @param ca CA instance.
|
||||
* @param slot Slot concerned.
|
||||
* @param change_type One of the DVB_CA_CAMCHANGE_* values
|
||||
* @pubca: CA instance.
|
||||
* @slot: Slot concerned.
|
||||
* @change_type: One of the DVB_CA_CAMCHANGE_* values
|
||||
*/
|
||||
void dvb_ca_en50221_camchange_irq(struct dvb_ca_en50221* pubca, int slot, int change_type);
|
||||
|
||||
/**
|
||||
* A CAMREADY IRQ has occurred.
|
||||
* dvb_ca_en50221_camready_irq - A CAMREADY IRQ has occurred.
|
||||
*
|
||||
* @param ca CA instance.
|
||||
* @param slot Slot concerned.
|
||||
* @pubca: CA instance.
|
||||
* @slot: Slot concerned.
|
||||
*/
|
||||
void dvb_ca_en50221_camready_irq(struct dvb_ca_en50221* pubca, int slot);
|
||||
|
||||
/**
|
||||
* An FR or a DA IRQ has occurred.
|
||||
* dvb_ca_en50221_frda_irq - An FR or a DA IRQ has occurred.
|
||||
*
|
||||
* @param ca CA instance.
|
||||
* @param slot Slot concerned.
|
||||
* @ca: CA instance.
|
||||
* @slot: Slot concerned.
|
||||
*/
|
||||
void dvb_ca_en50221_frda_irq(struct dvb_ca_en50221* ca, int slot);
|
||||
|
||||
@@ -113,21 +113,21 @@ void dvb_ca_en50221_frda_irq(struct dvb_ca_en50221* ca, int slot);
|
||||
/* Initialisation/shutdown functions */
|
||||
|
||||
/**
|
||||
* Initialise a new DVB CA device.
|
||||
* dvb_ca_en50221_init - Initialise a new DVB CA device.
|
||||
*
|
||||
* @param dvb_adapter DVB adapter to attach the new CA device to.
|
||||
* @param ca The dvb_ca instance.
|
||||
* @param flags Flags describing the CA device (DVB_CA_EN50221_FLAG_*).
|
||||
* @param slot_count Number of slots supported.
|
||||
* @dvb_adapter: DVB adapter to attach the new CA device to.
|
||||
* @ca: The dvb_ca instance.
|
||||
* @flags: Flags describing the CA device (DVB_CA_EN50221_FLAG_*).
|
||||
* @slot_count: Number of slots supported.
|
||||
*
|
||||
* @return 0 on success, nonzero on failure
|
||||
*/
|
||||
extern int dvb_ca_en50221_init(struct dvb_adapter *dvb_adapter, struct dvb_ca_en50221* ca, int flags, int slot_count);
|
||||
|
||||
/**
|
||||
* Release a DVB CA device.
|
||||
* dvb_ca_en50221_release - Release a DVB CA device.
|
||||
*
|
||||
* @param ca The associated dvb_ca instance.
|
||||
* @ca: The associated dvb_ca instance.
|
||||
*/
|
||||
extern void dvb_ca_en50221_release(struct dvb_ca_en50221* ca);
|
||||
|
||||
|
||||
@@ -81,7 +81,6 @@ MODULE_PARM_DESC(dvb_mfe_wait_time, "Wait up to <mfe_wait_time> seconds on open(
|
||||
#define FESTATE_SEARCHING_SLOW (FESTATE_TUNING_SLOW | FESTATE_ZIGZAG_SLOW)
|
||||
#define FESTATE_LOSTLOCK (FESTATE_ZIGZAG_FAST | FESTATE_ZIGZAG_SLOW)
|
||||
|
||||
#define FE_ALGO_HW 1
|
||||
/*
|
||||
* FESTATE_IDLE. No tuning parameters have been supplied and the loop is idling.
|
||||
* FESTATE_RETUNE. Parameters have been supplied, but we have not yet performed the first tune.
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -25,33 +25,38 @@
|
||||
#include <linux/types.h>
|
||||
|
||||
/**
|
||||
* computes log2 of a value; the result is shifted left by 24 bits
|
||||
* cintlog2 - computes log2 of a value; the result is shifted left by 24 bits
|
||||
*
|
||||
* @value: The value (must be != 0)
|
||||
*
|
||||
* to use rational values you can use the following method:
|
||||
* intlog2(value) = intlog2(value * 2^x) - x * 2^24
|
||||
*
|
||||
* example: intlog2(8) will give 3 << 24 = 3 * 2^24
|
||||
* example: intlog2(9) will give 3 << 24 + ... = 3.16... * 2^24
|
||||
* example: intlog2(1.5) = intlog2(3) - 2^24 = 0.584... * 2^24
|
||||
* Some usecase examples:
|
||||
* intlog2(8) will give 3 << 24 = 3 * 2^24
|
||||
* intlog2(9) will give 3 << 24 + ... = 3.16... * 2^24
|
||||
* intlog2(1.5) = intlog2(3) - 2^24 = 0.584... * 2^24
|
||||
*
|
||||
* @param value The value (must be != 0)
|
||||
* @return log2(value) * 2^24
|
||||
*
|
||||
* return: log2(value) * 2^24
|
||||
*/
|
||||
extern unsigned int intlog2(u32 value);
|
||||
|
||||
/**
|
||||
* computes log10 of a value; the result is shifted left by 24 bits
|
||||
* intlog10 - computes log10 of a value; the result is shifted left by 24 bits
|
||||
*
|
||||
* @value: The value (must be != 0)
|
||||
*
|
||||
* to use rational values you can use the following method:
|
||||
* intlog10(value) = intlog10(value * 10^x) - x * 2^24
|
||||
*
|
||||
* example: intlog10(1000) will give 3 << 24 = 3 * 2^24
|
||||
* An usecase example:
|
||||
* intlog10(1000) will give 3 << 24 = 3 * 2^24
|
||||
* due to the implementation intlog10(1000) might be not exactly 3 * 2^24
|
||||
*
|
||||
* look at intlog2 for similar examples
|
||||
*
|
||||
* @param value The value (must be != 0)
|
||||
* @return log10(value) * 2^24
|
||||
* return: log10(value) * 2^24
|
||||
*/
|
||||
extern unsigned int intlog10(u32 value);
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user