diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2015-02-11 11:45:40 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2015-02-11 11:45:40 -0500 |
commit | 3e63430a5cc26bc90a6e33ab33f901196b7b63ac (patch) | |
tree | bdc92e6cbaccc26f88d4c71fddbe54a86e5e707d /Documentation | |
parent | 6fc26fc5783add961533c819995bd97db05990f0 (diff) | |
parent | 4bad5d2d25099a42e146d7b18d2b98950ed287f5 (diff) |
Merge tag 'media/v3.20-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
Pull media updates from Mauro Carvalho Chehab:
- Some documentation updates and a few new pixel formats
- Stop btcx-risc abuse by cx88 and move it to bt8xx driver
- New platform driver: am437x
- New webcam driver: toptek
- New remote controller hardware protocols added to img-ir driver
- Removal of a few very old drivers that relies on old kABIs and are
for very hard to find hardware: parallel port webcam drivers
(bw-qcam, c-cam, pms and w9966), tlg2300, Video In/Out for SGI (vino)
- Removal of the USB Telegent driver (tlg2300). The company that
developed this driver has long gone and the hardware is hard to find.
As it relies on a legacy set of kABI symbols and nobody seems to care
about it, remove it.
- several improvements at rtl2832 driver
- conversion on cx28521 and au0828 to use videobuf2 (VB2)
- several improvements, fixups and board additions
* tag 'media/v3.20-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (321 commits)
[media] dvb_net: Convert local hex dump to print_hex_dump_debug
[media] dvb_net: Use standard debugging facilities
[media] dvb_net: Use vsprintf %pM extension to print Ethernet addresses
[media] staging: lirc_serial: adjust boolean assignments
[media] stb0899: use sign_extend32() for sign extension
[media] si2168: add support for 1.7MHz bandwidth
[media] si2168: return error if set_frontend is called with invalid parameters
[media] lirc_dev: avoid potential null-dereference
[media] mn88472: simplify bandwidth registers setting code
[media] dvb: tc90522: re-add symbol-rate report
[media] lmedm04: add read snr, signal strength and ber call backs
[media] lmedm04: Create frontend call back for read status
[media] lmedm04: create frontend callbacks for signal/snr/ber/ucblocks
[media] lmedm04: Fix usb_submit_urb BOGUS urb xfer, pipe 1 != type 3 in interrupt urb
[media] lmedm04: Increase Interupt due time to 200 msec
[media] cx88-dvb: whitespace cleanup
[media] rtl28xxu: properly initialize pdata
[media] rtl2832: declare functions as static
[media] rtl2830: declare functions as static
[media] rtl2832_sdr: add kernel-doc comments for platform_data
...
Diffstat (limited to 'Documentation')
17 files changed, 262 insertions, 314 deletions
diff --git a/Documentation/DocBook/media/v4l/controls.xml b/Documentation/DocBook/media/v4l/controls.xml index e013e4bf244c..4e9462f1ab4c 100644 --- a/Documentation/DocBook/media/v4l/controls.xml +++ b/Documentation/DocBook/media/v4l/controls.xml | |||
@@ -2692,12 +2692,11 @@ in the S5P family of SoCs by Samsung. | |||
2692 | <row><entry></entry></row> | 2692 | <row><entry></entry></row> |
2693 | <row> | 2693 | <row> |
2694 | <entry spanname="id"><constant>V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY_ENABLE</constant> </entry> | 2694 | <entry spanname="id"><constant>V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY_ENABLE</constant> </entry> |
2695 | <entry>integer</entry> | 2695 | <entry>boolean</entry> |
2696 | </row><row><entry spanname="descr">If the display delay is enabled then the decoder has to return a | 2696 | </row><row><entry spanname="descr">If the display delay is enabled then the decoder is forced to return a |
2697 | CAPTURE buffer after processing a certain number of OUTPUT buffers. If this number is low, then it may result in | 2697 | CAPTURE buffer (decoded frame) after processing a certain number of OUTPUT buffers. The delay can be set through |
2698 | buffers not being dequeued in display order. In addition hardware may still use those buffers as reference, thus | 2698 | <constant>V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY</constant>. This feature can be used for example |
2699 | application should not write to those buffers. This feature can be used for example for generating thumbnails of videos. | 2699 | for generating thumbnails of videos. Applicable to the H264 decoder. |
2700 | Applicable to the H264 decoder. | ||
2701 | </entry> | 2700 | </entry> |
2702 | </row> | 2701 | </row> |
2703 | <row><entry></entry></row> | 2702 | <row><entry></entry></row> |
diff --git a/Documentation/DocBook/media/v4l/pixfmt-srggb10.xml b/Documentation/DocBook/media/v4l/pixfmt-srggb10.xml index c1c62a9acc2a..f34d03ebda3a 100644 --- a/Documentation/DocBook/media/v4l/pixfmt-srggb10.xml +++ b/Documentation/DocBook/media/v4l/pixfmt-srggb10.xml | |||
@@ -17,7 +17,7 @@ | |||
17 | <refsect1> | 17 | <refsect1> |
18 | <title>Description</title> | 18 | <title>Description</title> |
19 | 19 | ||
20 | <para>The following four pixel formats are raw sRGB / Bayer formats with | 20 | <para>These four pixel formats are raw sRGB / Bayer formats with |
21 | 10 bits per colour. Each colour component is stored in a 16-bit word, with 6 | 21 | 10 bits per colour. Each colour component is stored in a 16-bit word, with 6 |
22 | unused high bits filled with zeros. Each n-pixel row contains n/2 green samples | 22 | unused high bits filled with zeros. Each n-pixel row contains n/2 green samples |
23 | and n/2 blue or red samples, with alternating red and blue rows. Bytes are | 23 | and n/2 blue or red samples, with alternating red and blue rows. Bytes are |
diff --git a/Documentation/DocBook/media/v4l/pixfmt-srggb10alaw8.xml b/Documentation/DocBook/media/v4l/pixfmt-srggb10alaw8.xml index 29acc2098cc2..d2e5845e57fb 100644 --- a/Documentation/DocBook/media/v4l/pixfmt-srggb10alaw8.xml +++ b/Documentation/DocBook/media/v4l/pixfmt-srggb10alaw8.xml | |||
@@ -25,7 +25,7 @@ | |||
25 | </refnamediv> | 25 | </refnamediv> |
26 | <refsect1> | 26 | <refsect1> |
27 | <title>Description</title> | 27 | <title>Description</title> |
28 | <para>The following four pixel formats are raw sRGB / Bayer | 28 | <para>These four pixel formats are raw sRGB / Bayer |
29 | formats with 10 bits per color compressed to 8 bits each, | 29 | formats with 10 bits per color compressed to 8 bits each, |
30 | using the A-LAW algorithm. Each color component consumes 8 | 30 | using the A-LAW algorithm. Each color component consumes 8 |
31 | bits of memory. In other respects this format is similar to | 31 | bits of memory. In other respects this format is similar to |
diff --git a/Documentation/DocBook/media/v4l/pixfmt-srggb10dpcm8.xml b/Documentation/DocBook/media/v4l/pixfmt-srggb10dpcm8.xml index 2d3f0b1aefe0..bde89878c5c5 100644 --- a/Documentation/DocBook/media/v4l/pixfmt-srggb10dpcm8.xml +++ b/Documentation/DocBook/media/v4l/pixfmt-srggb10dpcm8.xml | |||
@@ -18,7 +18,7 @@ | |||
18 | <refsect1> | 18 | <refsect1> |
19 | <title>Description</title> | 19 | <title>Description</title> |
20 | 20 | ||
21 | <para>The following four pixel formats are raw sRGB / Bayer formats | 21 | <para>These four pixel formats are raw sRGB / Bayer formats |
22 | with 10 bits per colour compressed to 8 bits each, using DPCM | 22 | with 10 bits per colour compressed to 8 bits each, using DPCM |
23 | compression. DPCM, differential pulse-code modulation, is lossy. | 23 | compression. DPCM, differential pulse-code modulation, is lossy. |
24 | Each colour component consumes 8 bits of memory. In other respects | 24 | Each colour component consumes 8 bits of memory. In other respects |
diff --git a/Documentation/DocBook/media/v4l/pixfmt-srggb10p.xml b/Documentation/DocBook/media/v4l/pixfmt-srggb10p.xml new file mode 100644 index 000000000000..30aa63581fe3 --- /dev/null +++ b/Documentation/DocBook/media/v4l/pixfmt-srggb10p.xml | |||
@@ -0,0 +1,99 @@ | |||
1 | <refentry id="pixfmt-srggb10p"> | ||
2 | <refmeta> | ||
3 | <refentrytitle>V4L2_PIX_FMT_SRGGB10P ('pRAA'), | ||
4 | V4L2_PIX_FMT_SGRBG10P ('pgAA'), | ||
5 | V4L2_PIX_FMT_SGBRG10P ('pGAA'), | ||
6 | V4L2_PIX_FMT_SBGGR10P ('pBAA'), | ||
7 | </refentrytitle> | ||
8 | &manvol; | ||
9 | </refmeta> | ||
10 | <refnamediv> | ||
11 | <refname id="V4L2-PIX-FMT-SRGGB10P"><constant>V4L2_PIX_FMT_SRGGB10P</constant></refname> | ||
12 | <refname id="V4L2-PIX-FMT-SGRBG10P"><constant>V4L2_PIX_FMT_SGRBG10P</constant></refname> | ||
13 | <refname id="V4L2-PIX-FMT-SGBRG10P"><constant>V4L2_PIX_FMT_SGBRG10P</constant></refname> | ||
14 | <refname id="V4L2-PIX-FMT-SBGGR10P"><constant>V4L2_PIX_FMT_SBGGR10P</constant></refname> | ||
15 | <refpurpose>10-bit packed Bayer formats</refpurpose> | ||
16 | </refnamediv> | ||
17 | <refsect1> | ||
18 | <title>Description</title> | ||
19 | |||
20 | <para>These four pixel formats are packed raw sRGB / | ||
21 | Bayer formats with 10 bits per colour. Every four consecutive | ||
22 | colour components are packed into 5 bytes. Each of the first 4 | ||
23 | bytes contain the 8 high order bits of the pixels, and the | ||
24 | fifth byte contains the two least significants bits of each | ||
25 | pixel, in the same order.</para> | ||
26 | |||
27 | <para>Each n-pixel row contains n/2 green samples and n/2 blue | ||
28 | or red samples, with alternating green-red and green-blue | ||
29 | rows. They are conventionally described as GRGR... BGBG..., | ||
30 | RGRG... GBGB..., etc. Below is an example of one of these | ||
31 | formats:</para> | ||
32 | |||
33 | <example> | ||
34 | <title><constant>V4L2_PIX_FMT_SBGGR10P</constant> 4 × 4 | ||
35 | pixel image</title> | ||
36 | |||
37 | <formalpara> | ||
38 | <title>Byte Order.</title> | ||
39 | <para>Each cell is one byte. | ||
40 | <informaltable frame="topbot" colsep="1" rowsep="1"> | ||
41 | <tgroup cols="5" align="center" border="1"> | ||
42 | <colspec align="left" colwidth="2*" /> | ||
43 | <tbody valign="top"> | ||
44 | <row> | ||
45 | <entry>start + 0:</entry> | ||
46 | <entry>B<subscript>00high</subscript></entry> | ||
47 | <entry>G<subscript>01high</subscript></entry> | ||
48 | <entry>B<subscript>02high</subscript></entry> | ||
49 | <entry>G<subscript>03high</subscript></entry> | ||
50 | <entry>B<subscript>00low</subscript>(bits 7--6) | ||
51 | G<subscript>01low</subscript>(bits 5--4) | ||
52 | B<subscript>02low</subscript>(bits 3--2) | ||
53 | G<subscript>03low</subscript>(bits 1--0) | ||
54 | </entry> | ||
55 | </row> | ||
56 | <row> | ||
57 | <entry>start + 5:</entry> | ||
58 | <entry>G<subscript>10high</subscript></entry> | ||
59 | <entry>R<subscript>11high</subscript></entry> | ||
60 | <entry>G<subscript>12high</subscript></entry> | ||
61 | <entry>R<subscript>13high</subscript></entry> | ||
62 | <entry>G<subscript>10low</subscript>(bits 7--6) | ||
63 | R<subscript>11low</subscript>(bits 5--4) | ||
64 | G<subscript>12low</subscript>(bits 3--2) | ||
65 | R<subscript>13low</subscript>(bits 1--0) | ||
66 | </entry> | ||
67 | </row> | ||
68 | <row> | ||
69 | <entry>start + 10:</entry> | ||
70 | <entry>B<subscript>20high</subscript></entry> | ||
71 | <entry>G<subscript>21high</subscript></entry> | ||
72 | <entry>B<subscript>22high</subscript></entry> | ||
73 | <entry>G<subscript>23high</subscript></entry> | ||
74 | <entry>B<subscript>20low</subscript>(bits 7--6) | ||
75 | G<subscript>21low</subscript>(bits 5--4) | ||
76 | B<subscript>22low</subscript>(bits 3--2) | ||
77 | G<subscript>23low</subscript>(bits 1--0) | ||
78 | </entry> | ||
79 | </row> | ||
80 | <row> | ||
81 | <entry>start + 15:</entry> | ||
82 | <entry>G<subscript>30high</subscript></entry> | ||
83 | <entry>R<subscript>31high</subscript></entry> | ||
84 | <entry>G<subscript>32high</subscript></entry> | ||
85 | <entry>R<subscript>33high</subscript></entry> | ||
86 | <entry>G<subscript>30low</subscript>(bits 7--6) | ||
87 | R<subscript>31low</subscript>(bits 5--4) | ||
88 | G<subscript>32low</subscript>(bits 3--2) | ||
89 | R<subscript>33low</subscript>(bits 1--0) | ||
90 | </entry> | ||
91 | </row> | ||
92 | </tbody> | ||
93 | </tgroup> | ||
94 | </informaltable> | ||
95 | </para> | ||
96 | </formalpara> | ||
97 | </example> | ||
98 | </refsect1> | ||
99 | </refentry> | ||
diff --git a/Documentation/DocBook/media/v4l/pixfmt-srggb12.xml b/Documentation/DocBook/media/v4l/pixfmt-srggb12.xml index 96947f17fca1..0c8e4adf417f 100644 --- a/Documentation/DocBook/media/v4l/pixfmt-srggb12.xml +++ b/Documentation/DocBook/media/v4l/pixfmt-srggb12.xml | |||
@@ -17,7 +17,7 @@ | |||
17 | <refsect1> | 17 | <refsect1> |
18 | <title>Description</title> | 18 | <title>Description</title> |
19 | 19 | ||
20 | <para>The following four pixel formats are raw sRGB / Bayer formats with | 20 | <para>These four pixel formats are raw sRGB / Bayer formats with |
21 | 12 bits per colour. Each colour component is stored in a 16-bit word, with 4 | 21 | 12 bits per colour. Each colour component is stored in a 16-bit word, with 4 |
22 | unused high bits filled with zeros. Each n-pixel row contains n/2 green samples | 22 | unused high bits filled with zeros. Each n-pixel row contains n/2 green samples |
23 | and n/2 blue or red samples, with alternating red and blue rows. Bytes are | 23 | and n/2 blue or red samples, with alternating red and blue rows. Bytes are |
diff --git a/Documentation/DocBook/media/v4l/pixfmt.xml b/Documentation/DocBook/media/v4l/pixfmt.xml index d5eca4b8f74b..5e0352c50324 100644 --- a/Documentation/DocBook/media/v4l/pixfmt.xml +++ b/Documentation/DocBook/media/v4l/pixfmt.xml | |||
@@ -1405,6 +1405,7 @@ access the palette, this must be done with ioctls of the Linux framebuffer API.< | |||
1405 | &sub-srggb8; | 1405 | &sub-srggb8; |
1406 | &sub-sbggr16; | 1406 | &sub-sbggr16; |
1407 | &sub-srggb10; | 1407 | &sub-srggb10; |
1408 | &sub-srggb10p; | ||
1408 | &sub-srggb10alaw8; | 1409 | &sub-srggb10alaw8; |
1409 | &sub-srggb10dpcm8; | 1410 | &sub-srggb10dpcm8; |
1410 | &sub-srggb12; | 1411 | &sub-srggb12; |
diff --git a/Documentation/DocBook/media/v4l/vidioc-dv-timings-cap.xml b/Documentation/DocBook/media/v4l/vidioc-dv-timings-cap.xml index 28a8c1e1c705..a2017bfcaed2 100644 --- a/Documentation/DocBook/media/v4l/vidioc-dv-timings-cap.xml +++ b/Documentation/DocBook/media/v4l/vidioc-dv-timings-cap.xml | |||
@@ -212,11 +212,3 @@ standards set in the <structfield>standards</structfield> field. | |||
212 | &return-value; | 212 | &return-value; |
213 | </refsect1> | 213 | </refsect1> |
214 | </refentry> | 214 | </refentry> |
215 | |||
216 | <!-- | ||
217 | Local Variables: | ||
218 | mode: sgml | ||
219 | sgml-parent-document: "v4l2.sgml" | ||
220 | indent-tabs-mode: nil | ||
221 | End: | ||
222 | --> | ||
diff --git a/Documentation/DocBook/media/v4l/vidioc-enum-dv-timings.xml b/Documentation/DocBook/media/v4l/vidioc-enum-dv-timings.xml index b9fdfeacdbcb..6e3cadd4e1f9 100644 --- a/Documentation/DocBook/media/v4l/vidioc-enum-dv-timings.xml +++ b/Documentation/DocBook/media/v4l/vidioc-enum-dv-timings.xml | |||
@@ -131,11 +131,3 @@ is out of bounds or the <structfield>pad</structfield> number is invalid.</para> | |||
131 | </variablelist> | 131 | </variablelist> |
132 | </refsect1> | 132 | </refsect1> |
133 | </refentry> | 133 | </refentry> |
134 | |||
135 | <!-- | ||
136 | Local Variables: | ||
137 | mode: sgml | ||
138 | sgml-parent-document: "v4l2.sgml" | ||
139 | indent-tabs-mode: nil | ||
140 | End: | ||
141 | --> | ||
diff --git a/Documentation/devicetree/bindings/media/i2c/nokia,smia.txt b/Documentation/devicetree/bindings/media/i2c/nokia,smia.txt new file mode 100644 index 000000000000..855e1faf73e2 --- /dev/null +++ b/Documentation/devicetree/bindings/media/i2c/nokia,smia.txt | |||
@@ -0,0 +1,63 @@ | |||
1 | SMIA/SMIA++ sensor | ||
2 | |||
3 | SMIA (Standard Mobile Imaging Architecture) is an image sensor standard | ||
4 | defined jointly by Nokia and ST. SMIA++, defined by Nokia, is an extension | ||
5 | of that. These definitions are valid for both types of sensors. | ||
6 | |||
7 | More detailed documentation can be found in | ||
8 | Documentation/devicetree/bindings/media/video-interfaces.txt . | ||
9 | |||
10 | |||
11 | Mandatory properties | ||
12 | -------------------- | ||
13 | |||
14 | - compatible: "nokia,smia" | ||
15 | - reg: I2C address (0x10, or an alternative address) | ||
16 | - vana-supply: Analogue voltage supply (VANA), typically 2,8 volts (sensor | ||
17 | dependent). | ||
18 | - clocks: External clock to the sensor | ||
19 | - clock-frequency: Frequency of the external clock to the sensor | ||
20 | - link-frequencies: List of allowed data link frequencies. An array of | ||
21 | 64-bit elements. | ||
22 | |||
23 | |||
24 | Optional properties | ||
25 | ------------------- | ||
26 | |||
27 | - nokia,nvm-size: The size of the NVM, in bytes. If the size is not given, | ||
28 | the NVM contents will not be read. | ||
29 | - reset-gpios: XSHUTDOWN GPIO | ||
30 | |||
31 | |||
32 | Endpoint node mandatory properties | ||
33 | ---------------------------------- | ||
34 | |||
35 | - clock-lanes: <0> | ||
36 | - data-lanes: <1..n> | ||
37 | - remote-endpoint: A phandle to the bus receiver's endpoint node. | ||
38 | |||
39 | |||
40 | Example | ||
41 | ------- | ||
42 | |||
43 | &i2c2 { | ||
44 | clock-frequency = <400000>; | ||
45 | |||
46 | smiapp_1: camera@10 { | ||
47 | compatible = "nokia,smia"; | ||
48 | reg = <0x10>; | ||
49 | reset-gpios = <&gpio3 20 0>; | ||
50 | vana-supply = <&vaux3>; | ||
51 | clocks = <&omap3_isp 0>; | ||
52 | clock-frequency = <9600000>; | ||
53 | nokia,nvm-size = <512>; /* 8 * 64 */ | ||
54 | link-frequencies = /bits/ 64 <199200000 210000000 499200000>; | ||
55 | port { | ||
56 | smiapp_1_1: endpoint { | ||
57 | clock-lanes = <0>; | ||
58 | data-lanes = <1 2>; | ||
59 | remote-endpoint = <&csi2a_ep>; | ||
60 | }; | ||
61 | }; | ||
62 | }; | ||
63 | }; | ||
diff --git a/Documentation/devicetree/bindings/media/sunxi-ir.txt b/Documentation/devicetree/bindings/media/sunxi-ir.txt index 23dd5ad07b7c..1811a067c72c 100644 --- a/Documentation/devicetree/bindings/media/sunxi-ir.txt +++ b/Documentation/devicetree/bindings/media/sunxi-ir.txt | |||
@@ -1,7 +1,7 @@ | |||
1 | Device-Tree bindings for SUNXI IR controller found in sunXi SoC family | 1 | Device-Tree bindings for SUNXI IR controller found in sunXi SoC family |
2 | 2 | ||
3 | Required properties: | 3 | Required properties: |
4 | - compatible : should be "allwinner,sun4i-a10-ir"; | 4 | - compatible : "allwinner,sun4i-a10-ir" or "allwinner,sun5i-a13-ir" |
5 | - clocks : list of clock specifiers, corresponding to | 5 | - clocks : list of clock specifiers, corresponding to |
6 | entries in clock-names property; | 6 | entries in clock-names property; |
7 | - clock-names : should contain "apb" and "ir" entries; | 7 | - clock-names : should contain "apb" and "ir" entries; |
@@ -10,6 +10,7 @@ Required properties: | |||
10 | 10 | ||
11 | Optional properties: | 11 | Optional properties: |
12 | - linux,rc-map-name : Remote control map name. | 12 | - linux,rc-map-name : Remote control map name. |
13 | - resets : phandle + reset specifier pair | ||
13 | 14 | ||
14 | Example: | 15 | Example: |
15 | 16 | ||
@@ -17,6 +18,7 @@ ir0: ir@01c21800 { | |||
17 | compatible = "allwinner,sun4i-a10-ir"; | 18 | compatible = "allwinner,sun4i-a10-ir"; |
18 | clocks = <&apb0_gates 6>, <&ir0_clk>; | 19 | clocks = <&apb0_gates 6>, <&ir0_clk>; |
19 | clock-names = "apb", "ir"; | 20 | clock-names = "apb", "ir"; |
21 | resets = <&apb0_rst 1>; | ||
20 | interrupts = <0 5 1>; | 22 | interrupts = <0 5 1>; |
21 | reg = <0x01C21800 0x40>; | 23 | reg = <0x01C21800 0x40>; |
22 | linux,rc-map-name = "rc-rc6-mce"; | 24 | linux,rc-map-name = "rc-rc6-mce"; |
diff --git a/Documentation/devicetree/bindings/media/ti-am437x-vpfe.txt b/Documentation/devicetree/bindings/media/ti-am437x-vpfe.txt new file mode 100644 index 000000000000..3932e766553a --- /dev/null +++ b/Documentation/devicetree/bindings/media/ti-am437x-vpfe.txt | |||
@@ -0,0 +1,61 @@ | |||
1 | Texas Instruments AM437x CAMERA (VPFE) | ||
2 | -------------------------------------- | ||
3 | |||
4 | The Video Processing Front End (VPFE) is a key component for image capture | ||
5 | applications. The capture module provides the system interface and the | ||
6 | processing capability to connect RAW image-sensor modules and video decoders | ||
7 | to the AM437x device. | ||
8 | |||
9 | Required properties: | ||
10 | - compatible: must be "ti,am437x-vpfe" | ||
11 | - reg: physical base address and length of the registers set for the device; | ||
12 | - interrupts: should contain IRQ line for the VPFE; | ||
13 | - ti,am437x-vpfe-interface: can be one of the following, | ||
14 | 0 - Raw Bayer Interface. | ||
15 | 1 - 8 Bit BT656 Interface. | ||
16 | 2 - 10 Bit BT656 Interface. | ||
17 | 3 - YCbCr 8 Bit Interface. | ||
18 | 4 - YCbCr 16 Bit Interface. | ||
19 | |||
20 | VPFE supports a single port node with parallel bus. It should contain one | ||
21 | 'port' child node with child 'endpoint' node. Please refer to the bindings | ||
22 | defined in Documentation/devicetree/bindings/media/video-interfaces.txt. | ||
23 | |||
24 | Example: | ||
25 | vpfe: vpfe@f0034000 { | ||
26 | compatible = "ti,am437x-vpfe"; | ||
27 | reg = <0x48328000 0x2000>; | ||
28 | interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>; | ||
29 | |||
30 | pinctrl-names = "default", "sleep"; | ||
31 | pinctrl-0 = <&vpfe_pins_default>; | ||
32 | pinctrl-1 = <&vpfe_pins_sleep>; | ||
33 | |||
34 | port { | ||
35 | #address-cells = <1>; | ||
36 | #size-cells = <0>; | ||
37 | |||
38 | vpfe0_ep: endpoint { | ||
39 | remote-endpoint = <&ov2659_1>; | ||
40 | ti,am437x-vpfe-interface = <0>; | ||
41 | bus-width = <8>; | ||
42 | hsync-active = <0>; | ||
43 | vsync-active = <0>; | ||
44 | }; | ||
45 | }; | ||
46 | }; | ||
47 | |||
48 | i2c1: i2c@4802a000 { | ||
49 | |||
50 | ov2659@30 { | ||
51 | compatible = "ti,ov2659"; | ||
52 | reg = <0x30>; | ||
53 | |||
54 | port { | ||
55 | ov2659_1: endpoint { | ||
56 | remote-endpoint = <&vpfe0_ep>; | ||
57 | bus-width = <8>; | ||
58 | mclk-frequency = <12000000>; | ||
59 | }; | ||
60 | }; | ||
61 | }; | ||
diff --git a/Documentation/devicetree/bindings/media/video-interfaces.txt b/Documentation/devicetree/bindings/media/video-interfaces.txt index ce719f89dd1c..52a14cf099ac 100644 --- a/Documentation/devicetree/bindings/media/video-interfaces.txt +++ b/Documentation/devicetree/bindings/media/video-interfaces.txt | |||
@@ -103,6 +103,9 @@ Optional endpoint properties | |||
103 | array contains only one entry. | 103 | array contains only one entry. |
104 | - clock-noncontinuous: a boolean property to allow MIPI CSI-2 non-continuous | 104 | - clock-noncontinuous: a boolean property to allow MIPI CSI-2 non-continuous |
105 | clock mode. | 105 | clock mode. |
106 | - link-frequencies: Allowed data bus frequencies. For MIPI CSI-2, for | ||
107 | instance, this is the actual frequency of the bus, not bits per clock per | ||
108 | lane value. An array of 64-bit unsigned integers. | ||
106 | 109 | ||
107 | 110 | ||
108 | Example | 111 | Example |
diff --git a/Documentation/video4linux/CQcam.txt b/Documentation/video4linux/CQcam.txt deleted file mode 100644 index 0b69e4ee8e31..000000000000 --- a/Documentation/video4linux/CQcam.txt +++ /dev/null | |||
@@ -1,205 +0,0 @@ | |||
1 | c-qcam - Connectix Color QuickCam video4linux kernel driver | ||
2 | |||
3 | Copyright (C) 1999 Dave Forrest <drf5n@virginia.edu> | ||
4 | released under GNU GPL. | ||
5 | |||
6 | 1999-12-08 Dave Forrest, written with kernel version 2.2.12 in mind | ||
7 | |||
8 | |||
9 | Table of Contents | ||
10 | |||
11 | 1.0 Introduction | ||
12 | 2.0 Compilation, Installation, and Configuration | ||
13 | 3.0 Troubleshooting | ||
14 | 4.0 Future Work / current work arounds | ||
15 | 9.0 Sample Program, v4lgrab | ||
16 | 10.0 Other Information | ||
17 | |||
18 | |||
19 | 1.0 Introduction | ||
20 | |||
21 | The file ../../drivers/media/parport/c-qcam.c is a device driver for | ||
22 | the Logitech (nee Connectix) parallel port interface color CCD camera. | ||
23 | This is a fairly inexpensive device for capturing images. Logitech | ||
24 | does not currently provide information for developers, but many people | ||
25 | have engineered several solutions for non-Microsoft use of the Color | ||
26 | Quickcam. | ||
27 | |||
28 | 1.1 Motivation | ||
29 | |||
30 | I spent a number of hours trying to get my camera to work, and I | ||
31 | hope this document saves you some time. My camera will not work with | ||
32 | the 2.2.13 kernel as distributed, but with a few patches to the | ||
33 | module, I was able to grab some frames. See 4.0, Future Work. | ||
34 | |||
35 | |||
36 | |||
37 | 2.0 Compilation, Installation, and Configuration | ||
38 | |||
39 | The c-qcam depends on parallel port support, video4linux, and the | ||
40 | Color Quickcam. It is also nice to have the parallel port readback | ||
41 | support enabled. I enabled these as modules during the kernel | ||
42 | configuration. The appropriate flags are: | ||
43 | |||
44 | CONFIG_PRINTER M for lp.o, parport.o parport_pc.o modules | ||
45 | CONFIG_PNP_PARPORT M for autoprobe.o IEEE1284 readback module | ||
46 | CONFIG_PRINTER_READBACK M for parport_probe.o IEEE1284 readback module | ||
47 | CONFIG_VIDEO_DEV M for videodev.o video4linux module | ||
48 | CONFIG_VIDEO_CQCAM M for c-qcam.o Color Quickcam module | ||
49 | |||
50 | With these flags, the kernel should compile and install the modules. | ||
51 | To record and monitor the compilation, I use: | ||
52 | |||
53 | (make zlilo ; \ | ||
54 | make modules; \ | ||
55 | make modules_install ; | ||
56 | depmod -a ) &>log & | ||
57 | less log # then a capital 'F' to watch the progress | ||
58 | |||
59 | But that is my personal preference. | ||
60 | |||
61 | 2.2 Configuration | ||
62 | |||
63 | The configuration requires module configuration and device | ||
64 | configuration. The following sections detail these procedures. | ||
65 | |||
66 | |||
67 | 2.1 Module Configuration | ||
68 | |||
69 | Using modules requires a bit of work to install and pass the | ||
70 | parameters. Understand that entries in /etc/modprobe.d/*.conf of: | ||
71 | |||
72 | alias parport_lowlevel parport_pc | ||
73 | options parport_pc io=0x378 irq=none | ||
74 | alias char-major-81 videodev | ||
75 | alias char-major-81-0 c-qcam | ||
76 | |||
77 | 2.2 Device Configuration | ||
78 | |||
79 | At this point, we need to ensure that the device files exist. | ||
80 | Video4linux used the /dev/video* files, and we want to attach the | ||
81 | Quickcam to one of these. | ||
82 | |||
83 | ls -lad /dev/video* # should produce a list of the video devices | ||
84 | |||
85 | If the video devices do not exist, you can create them with: | ||
86 | |||
87 | su | ||
88 | cd /dev | ||
89 | for ii in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ; do | ||
90 | mknod video$ii c 81 $ii # char-major-81-[0-16] | ||
91 | chown root.root video$ii # owned by root | ||
92 | chmod 600 video$ii # read/writable by root only | ||
93 | done | ||
94 | |||
95 | Lots of people connect video0 to video and bttv, but you might want | ||
96 | your c-qcam to mean something more: | ||
97 | |||
98 | ln -s video0 c-qcam # make /dev/c-qcam a working file | ||
99 | ln -s c-qcam video # make /dev/c-qcam your default video source | ||
100 | |||
101 | But these are conveniences. The important part is to make the proper | ||
102 | special character files with the right major and minor numbers. All | ||
103 | of the special device files are listed in ../devices.txt. If you | ||
104 | would like the c-qcam readable by non-root users, you will need to | ||
105 | change the permissions. | ||
106 | |||
107 | 3.0 Troubleshooting | ||
108 | |||
109 | If the sample program below, v4lgrab, gives you output then | ||
110 | everything is working. | ||
111 | |||
112 | v4lgrab | wc # should give you a count of characters | ||
113 | |||
114 | Otherwise, you have some problem. | ||
115 | |||
116 | The c-qcam is IEEE1284 compatible, so if you are using the proc file | ||
117 | system (CONFIG_PROC_FS), the parallel printer support | ||
118 | (CONFIG_PRINTER), the IEEE 1284 system,(CONFIG_PRINTER_READBACK), you | ||
119 | should be able to read some identification from your quickcam with | ||
120 | |||
121 | modprobe -v parport | ||
122 | modprobe -v parport_probe | ||
123 | cat /proc/parport/PORTNUMBER/autoprobe | ||
124 | Returns: | ||
125 | CLASS:MEDIA; | ||
126 | MODEL:Color QuickCam 2.0; | ||
127 | MANUFACTURER:Connectix; | ||
128 | |||
129 | A good response to this indicates that your color quickcam is alive | ||
130 | and well. A common problem is that the current driver does not | ||
131 | reliably detect a c-qcam, even though one is attached. In this case, | ||
132 | |||
133 | modprobe -v c-qcam | ||
134 | or | ||
135 | insmod -v c-qcam | ||
136 | |||
137 | Returns a message saying "Device or resource busy" Development is | ||
138 | currently underway, but a workaround is to patch the module to skip | ||
139 | the detection code and attach to a defined port. Check the | ||
140 | video4linux mailing list and archive for more current information. | ||
141 | |||
142 | 3.1 Checklist: | ||
143 | |||
144 | Can you get an image? | ||
145 | v4lgrab >qcam.ppm ; wc qcam.ppm ; xv qcam.ppm | ||
146 | |||
147 | Is a working c-qcam connected to the port? | ||
148 | grep ^ /proc/parport/?/autoprobe | ||
149 | |||
150 | Do the /dev/video* files exist? | ||
151 | ls -lad /dev/video | ||
152 | |||
153 | Is the c-qcam module loaded? | ||
154 | modprobe -v c-qcam ; lsmod | ||
155 | |||
156 | Does the camera work with alternate programs? cqcam, etc? | ||
157 | |||
158 | |||
159 | |||
160 | |||
161 | 4.0 Future Work / current workarounds | ||
162 | |||
163 | It is hoped that this section will soon become obsolete, but if it | ||
164 | isn't, you might try patching the c-qcam module to add a parport=xxx | ||
165 | option as in the bw-qcam module so you can specify the parallel port: | ||
166 | |||
167 | insmod -v c-qcam parport=0 | ||
168 | |||
169 | And bypass the detection code, see ../../drivers/char/c-qcam.c and | ||
170 | look for the 'qc_detect' code and call. | ||
171 | |||
172 | Note that there is work in progress to change the video4linux API, | ||
173 | this work is documented at the video4linux2 site listed below. | ||
174 | |||
175 | |||
176 | 9.0 --- A sample program using v4lgrabber, | ||
177 | |||
178 | v4lgrab is a simple image grabber that will copy a frame from the | ||
179 | first video device, /dev/video0 to standard output in portable pixmap | ||
180 | format (.ppm) To produce .jpg output, you can use it like this: | ||
181 | 'v4lgrab | convert - c-qcam.jpg' | ||
182 | |||
183 | |||
184 | 10.0 --- Other Information | ||
185 | |||
186 | Use the ../../Maintainers file, particularly the VIDEO FOR LINUX and PARALLEL | ||
187 | PORT SUPPORT sections | ||
188 | |||
189 | The video4linux page: | ||
190 | http://linuxtv.org | ||
191 | |||
192 | The V4L2 API spec: | ||
193 | http://v4l2spec.bytesex.org/ | ||
194 | |||
195 | Some web pages about the quickcams: | ||
196 | http://www.pingouin-land.com/howto/QuickCam-HOWTO.html | ||
197 | |||
198 | http://www.crynwr.com/qcpc/ QuickCam Third-Party Drivers | ||
199 | http://www.crynwr.com/qcpc/re.html Some Reverse Engineering | ||
200 | http://www.wirelesscouch.net/software/gqcam/ v4l client | ||
201 | http://phobos.illtel.denver.co.us/pub/qcread/ doesn't use v4l | ||
202 | ftp://ftp.cs.unm.edu/pub/chris/quickcam/ Has lots of drivers | ||
203 | http://www.cs.duke.edu/~reynolds/quickcam/ Has lots of information | ||
204 | |||
205 | |||
diff --git a/Documentation/video4linux/README.tlg2300 b/Documentation/video4linux/README.tlg2300 deleted file mode 100644 index 416ccb93d8c9..000000000000 --- a/Documentation/video4linux/README.tlg2300 +++ /dev/null | |||
@@ -1,47 +0,0 @@ | |||
1 | tlg2300 release notes | ||
2 | ==================== | ||
3 | |||
4 | This is a v4l2/dvb device driver for the tlg2300 chip. | ||
5 | |||
6 | |||
7 | current status | ||
8 | ============== | ||
9 | |||
10 | video | ||
11 | - support mmap and read().(no overlay) | ||
12 | |||
13 | audio | ||
14 | - The driver will register a ALSA card for the audio input. | ||
15 | |||
16 | vbi | ||
17 | - Works for almost TV norms. | ||
18 | |||
19 | dvb-t | ||
20 | - works for DVB-T | ||
21 | |||
22 | FM | ||
23 | - Works for radio. | ||
24 | |||
25 | --------------------------------------------------------------------------- | ||
26 | TESTED APPLICATIONS: | ||
27 | |||
28 | -VLC1.0.4 test the video and dvb. The GUI is friendly to use. | ||
29 | |||
30 | -Mplayer test the video. | ||
31 | |||
32 | -Mplayer test the FM. The mplayer should be compiled with --enable-radio and | ||
33 | --enable-radio-capture. | ||
34 | The command runs as this(The alsa audio registers to card 1): | ||
35 | #mplayer radio://103.7/capture/ -radio adevice=hw=1,0:arate=48000 \ | ||
36 | -rawaudio rate=48000:channels=2 | ||
37 | |||
38 | --------------------------------------------------------------------------- | ||
39 | KNOWN PROBLEMS: | ||
40 | about preemphasis: | ||
41 | You can set the preemphasis for radio by the following command: | ||
42 | #v4l2-ctl -d /dev/radio0 --set-ctrl=pre_emphasis_settings=1 | ||
43 | |||
44 | "pre_emphasis_settings=1" means that you select the 50us. If you want | ||
45 | to select the 75us, please use "pre_emphasis_settings=2" | ||
46 | |||
47 | |||
diff --git a/Documentation/video4linux/v4l2-framework.txt b/Documentation/video4linux/v4l2-framework.txt index a11dff07ef71..f586e29ce221 100644 --- a/Documentation/video4linux/v4l2-framework.txt +++ b/Documentation/video4linux/v4l2-framework.txt | |||
@@ -793,8 +793,10 @@ video_register_device_no_warn() instead. | |||
793 | 793 | ||
794 | Whenever a device node is created some attributes are also created for you. | 794 | Whenever a device node is created some attributes are also created for you. |
795 | If you look in /sys/class/video4linux you see the devices. Go into e.g. | 795 | If you look in /sys/class/video4linux you see the devices. Go into e.g. |
796 | video0 and you will see 'name' and 'index' attributes. The 'name' attribute | 796 | video0 and you will see 'name', 'debug' and 'index' attributes. The 'name' |
797 | is the 'name' field of the video_device struct. | 797 | attribute is the 'name' field of the video_device struct. The 'debug' attribute |
798 | can be used to enable core debugging. See the next section for more detailed | ||
799 | information on this. | ||
798 | 800 | ||
799 | The 'index' attribute is the index of the device node: for each call to | 801 | The 'index' attribute is the index of the device node: for each call to |
800 | video_register_device() the index is just increased by 1. The first video | 802 | video_register_device() the index is just increased by 1. The first video |
@@ -816,6 +818,25 @@ video_device was embedded in it. The vdev->release() callback will never | |||
816 | be called if the registration failed, nor should you ever attempt to | 818 | be called if the registration failed, nor should you ever attempt to |
817 | unregister the device if the registration failed. | 819 | unregister the device if the registration failed. |
818 | 820 | ||
821 | video device debugging | ||
822 | ---------------------- | ||
823 | |||
824 | The 'debug' attribute that is created for each video, vbi, radio or swradio | ||
825 | device in /sys/class/video4linux/<devX>/ allows you to enable logging of | ||
826 | file operations. | ||
827 | |||
828 | It is a bitmask and the following bits can be set: | ||
829 | |||
830 | 0x01: Log the ioctl name and error code. VIDIOC_(D)QBUF ioctls are only logged | ||
831 | if bit 0x08 is also set. | ||
832 | 0x02: Log the ioctl name arguments and error code. VIDIOC_(D)QBUF ioctls are | ||
833 | only logged if bit 0x08 is also set. | ||
834 | 0x04: Log the file operations open, release, read, write, mmap and | ||
835 | get_unmapped_area. The read and write operations are only logged if | ||
836 | bit 0x08 is also set. | ||
837 | 0x08: Log the read and write file operations and the VIDIOC_QBUF and | ||
838 | VIDIOC_DQBUF ioctls. | ||
839 | 0x10: Log the poll file operation. | ||
819 | 840 | ||
820 | video_device cleanup | 841 | video_device cleanup |
821 | -------------------- | 842 | -------------------- |
diff --git a/Documentation/video4linux/w9966.txt b/Documentation/video4linux/w9966.txt deleted file mode 100644 index 855024525fd2..000000000000 --- a/Documentation/video4linux/w9966.txt +++ /dev/null | |||
@@ -1,33 +0,0 @@ | |||
1 | W9966 Camera driver, written by Jakob Kemi (jakob.kemi@telia.com) | ||
2 | |||
3 | After a lot of work in softice & wdasm, reading .pdf-files and tiresome | ||
4 | trial-and-error work I've finally got everything to work. I needed vision for a | ||
5 | robotics project so I borrowed this camera from a friend and started hacking. | ||
6 | Anyway I've converted my original code from the AVR 8bit RISC C/ASM code into | ||
7 | a working Linux driver. | ||
8 | |||
9 | To get it working simply configure your kernel to support | ||
10 | parport, ieee1284, video4linux and w9966 | ||
11 | |||
12 | If w9966 is statically linked it will always perform aggressive probing for | ||
13 | the camera. If built as a module you'll have more configuration options. | ||
14 | |||
15 | Options: | ||
16 | modprobe w9966.o pardev=parport0(or whatever) parmode=0 (0=auto, 1=ecp, 2=epp) | ||
17 | voila! | ||
18 | |||
19 | you can also type 'modinfo -p w9966.o' for option usage | ||
20 | (or checkout w9966.c) | ||
21 | |||
22 | The only thing to keep in mind is that the image format is in Y-U-Y-V format | ||
23 | where every two pixels take 4 bytes. In SDL (www.libsdl.org) this format | ||
24 | is called VIDEO_PALETTE_YUV422 (16 bpp). | ||
25 | |||
26 | A minimal test application (with source) is available from: | ||
27 | http://www.slackwaresupport.com/howtos/Webcam-HOWTO | ||
28 | |||
29 | The slow framerate is due to missing DMA ECP read support in the | ||
30 | parport drivers. I might add working EPP support later. | ||
31 | |||
32 | Good luck! | ||
33 | /Jakob Kemi | ||