forked from Minki/linux
Linux 3.11-rc2
-----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (GNU/Linux) iQEcBAABAgAGBQJR7DEPAAoJEHm+PkMAQRiGYTsH+QEBZLTcCNzMEgFNjzBhB2w3 XYfWkHH8kOXEnE5Hxg2Y4cc4yOGOevO6yItUGMf/WTdFUT5C3AFtqh34QcbymQK6 ovT7o/gH6L2lne1wit/Wgddagkt1NqIsEVum5dUFXhkfoEpDrn9raQ4zF/BmJ/MB 7ZMdY7AjnsZbdYUpOgM7oh6oK8KHw7Z+ujUXKsDjzcXTsQg+9kK4Qj/bvmhrQEr4 acoLAk0VOojZk++BNhjsP/OMgtIbh6Y2JoZ6G7Uxc/pGXTMHAxQoK/8akO6XLuJ2 vWEq1N3zCNtVjv7rYJqOhlkwgYV5YXAE2dTt/6sWxoEDN8ezdRI1r6FLu5DgiUg= =TA+I -----END PGP SIGNATURE----- Merge tag 'v3.11-rc2' into sched/core Merge in Linux 3.11-rc2, to provide a post-merge-window development base. Signed-off-by: Ingo Molnar <mingo@kernel.org>
This commit is contained in:
commit
b24d6f4912
@ -54,6 +54,13 @@ Description: Interface for making ib_srp connect to a new target.
|
||||
ib_srp. Specifying a value that exceeds cmd_sg_entries is
|
||||
only safe with partial memory descriptor list support enabled
|
||||
(allow_ext_sg=1).
|
||||
* comp_vector, a number in the range 0..n-1 specifying the
|
||||
MSI-X completion vector. Some HCA's allocate multiple (n)
|
||||
MSI-X vectors per HCA port. If the IRQ affinity masks of
|
||||
these interrupts have been configured such that each MSI-X
|
||||
interrupt is handled by a different CPU then the comp_vector
|
||||
parameter can be used to spread the SRP completion workload
|
||||
over multiple CPU's.
|
||||
|
||||
What: /sys/class/infiniband_srp/srp-<hca>-<port_number>/ibdev
|
||||
Date: January 2, 2006
|
||||
|
@ -29,7 +29,7 @@ Description: Generic performance monitoring events
|
||||
|
||||
What: /sys/devices/cpu/events/PM_1PLUS_PPC_CMPL
|
||||
/sys/devices/cpu/events/PM_BRU_FIN
|
||||
/sys/devices/cpu/events/PM_BRU_MPRED
|
||||
/sys/devices/cpu/events/PM_BR_MPRED
|
||||
/sys/devices/cpu/events/PM_CMPLU_STALL
|
||||
/sys/devices/cpu/events/PM_CMPLU_STALL_BRU
|
||||
/sys/devices/cpu/events/PM_CMPLU_STALL_DCACHE_MISS
|
||||
|
@ -77,7 +77,7 @@ Description: Read/Write attribute file that controls memory scrubbing.
|
||||
|
||||
What: /sys/devices/system/edac/mc/mc*/max_location
|
||||
Date: April 2012
|
||||
Contact: Mauro Carvalho Chehab <mchehab@redhat.com>
|
||||
Contact: Mauro Carvalho Chehab <m.chehab@samsung.com>
|
||||
linux-edac@vger.kernel.org
|
||||
Description: This attribute file displays the information about the last
|
||||
available memory slot in this memory controller. It is used by
|
||||
@ -85,7 +85,7 @@ Description: This attribute file displays the information about the last
|
||||
|
||||
What: /sys/devices/system/edac/mc/mc*/(dimm|rank)*/size
|
||||
Date: April 2012
|
||||
Contact: Mauro Carvalho Chehab <mchehab@redhat.com>
|
||||
Contact: Mauro Carvalho Chehab <m.chehab@samsung.com>
|
||||
linux-edac@vger.kernel.org
|
||||
Description: This attribute file will display the size of dimm or rank.
|
||||
For dimm*/size, this is the size, in MB of the DIMM memory
|
||||
@ -96,14 +96,14 @@ Description: This attribute file will display the size of dimm or rank.
|
||||
|
||||
What: /sys/devices/system/edac/mc/mc*/(dimm|rank)*/dimm_dev_type
|
||||
Date: April 2012
|
||||
Contact: Mauro Carvalho Chehab <mchehab@redhat.com>
|
||||
Contact: Mauro Carvalho Chehab <m.chehab@samsung.com>
|
||||
linux-edac@vger.kernel.org
|
||||
Description: This attribute file will display what type of DRAM device is
|
||||
being utilized on this DIMM (x1, x2, x4, x8, ...).
|
||||
|
||||
What: /sys/devices/system/edac/mc/mc*/(dimm|rank)*/dimm_edac_mode
|
||||
Date: April 2012
|
||||
Contact: Mauro Carvalho Chehab <mchehab@redhat.com>
|
||||
Contact: Mauro Carvalho Chehab <m.chehab@samsung.com>
|
||||
linux-edac@vger.kernel.org
|
||||
Description: This attribute file will display what type of Error detection
|
||||
and correction is being utilized. For example: S4ECD4ED would
|
||||
@ -111,7 +111,7 @@ Description: This attribute file will display what type of Error detection
|
||||
|
||||
What: /sys/devices/system/edac/mc/mc*/(dimm|rank)*/dimm_label
|
||||
Date: April 2012
|
||||
Contact: Mauro Carvalho Chehab <mchehab@redhat.com>
|
||||
Contact: Mauro Carvalho Chehab <m.chehab@samsung.com>
|
||||
linux-edac@vger.kernel.org
|
||||
Description: This control file allows this DIMM to have a label assigned
|
||||
to it. With this label in the module, when errors occur
|
||||
@ -126,14 +126,14 @@ Description: This control file allows this DIMM to have a label assigned
|
||||
|
||||
What: /sys/devices/system/edac/mc/mc*/(dimm|rank)*/dimm_location
|
||||
Date: April 2012
|
||||
Contact: Mauro Carvalho Chehab <mchehab@redhat.com>
|
||||
Contact: Mauro Carvalho Chehab <m.chehab@samsung.com>
|
||||
linux-edac@vger.kernel.org
|
||||
Description: This attribute file will display the location (csrow/channel,
|
||||
branch/channel/slot or channel/slot) of the dimm or rank.
|
||||
|
||||
What: /sys/devices/system/edac/mc/mc*/(dimm|rank)*/dimm_mem_type
|
||||
Date: April 2012
|
||||
Contact: Mauro Carvalho Chehab <mchehab@redhat.com>
|
||||
Contact: Mauro Carvalho Chehab <m.chehab@samsung.com>
|
||||
linux-edac@vger.kernel.org
|
||||
Description: This attribute file will display what type of memory is
|
||||
currently on this csrow. Normally, either buffered or
|
||||
|
21
Documentation/ABI/testing/sysfs-driver-intel-rapid-start
Normal file
21
Documentation/ABI/testing/sysfs-driver-intel-rapid-start
Normal file
@ -0,0 +1,21 @@
|
||||
What: /sys/bus/acpi/intel-rapid-start/wakeup_events
|
||||
Date: July 2, 2013
|
||||
KernelVersion: 3.11
|
||||
Contact: Matthew Garrett <mjg59@srcf.ucam.org>
|
||||
Description: An integer representing a set of wakeup events as follows:
|
||||
1: Wake to enter hibernation when the wakeup timer expires
|
||||
2: Wake to enter hibernation when the battery reaches a
|
||||
critical level
|
||||
|
||||
These values are ORed together. For example, a value of 3
|
||||
indicates that the system will wake to enter hibernation when
|
||||
either the wakeup timer expires or the battery reaches a
|
||||
critical level.
|
||||
|
||||
What: /sys/bus/acpi/intel-rapid-start/wakeup_time
|
||||
Date: July 2, 2013
|
||||
KernelVersion: 3.11
|
||||
Contact: Matthew Garrett <mjg59@srcf.ucam.org>
|
||||
Description: An integer representing the length of time the system will
|
||||
remain asleep before waking up to enter hibernation.
|
||||
This value is in minutes.
|
@ -2254,7 +2254,7 @@ video encoding.</para>
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>The <constant>VIDIOC_G_CHIP_IDENT</constant> ioctl was renamed
|
||||
to <constant>VIDIOC_G_CHIP_IDENT_OLD</constant> and &VIDIOC-DBG-G-CHIP-IDENT;
|
||||
to <constant>VIDIOC_G_CHIP_IDENT_OLD</constant> and <constant>VIDIOC_DBG_G_CHIP_IDENT</constant>
|
||||
was introduced in its place. The old struct <structname>v4l2_chip_ident</structname>
|
||||
was renamed to <structname id="v4l2-chip-ident-old">v4l2_chip_ident_old</structname>.</para>
|
||||
</listitem>
|
||||
@ -2513,6 +2513,16 @@ that used it. It was originally scheduled for removal in 2.6.35.
|
||||
</orderedlist>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>V4L2 in Linux 3.11</title>
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>Remove obsolete <constant>VIDIOC_DBG_G_CHIP_IDENT</constant> ioctl.
|
||||
</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
</section>
|
||||
|
||||
<section id="other">
|
||||
<title>Relation of V4L2 to other Linux multimedia APIs</title>
|
||||
|
||||
@ -2596,7 +2606,7 @@ and may change in the future.</para>
|
||||
ioctls.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>&VIDIOC-DBG-G-CHIP-IDENT; ioctl.</para>
|
||||
<para>&VIDIOC-DBG-G-CHIP-INFO; ioctl.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>&VIDIOC-ENUM-DV-TIMINGS;, &VIDIOC-QUERY-DV-TIMINGS; and
|
||||
|
@ -140,6 +140,14 @@ structs, ioctls) must be noted in more detail in the history chapter
|
||||
(compat.xml), along with the possible impact on existing drivers and
|
||||
applications. -->
|
||||
|
||||
<revision>
|
||||
<revnumber>3.11</revnumber>
|
||||
<date>2013-05-26</date>
|
||||
<authorinitials>hv</authorinitials>
|
||||
<revremark>Remove obsolete VIDIOC_DBG_G_CHIP_IDENT ioctl.
|
||||
</revremark>
|
||||
</revision>
|
||||
|
||||
<revision>
|
||||
<revnumber>3.10</revnumber>
|
||||
<date>2013-03-25</date>
|
||||
@ -493,7 +501,7 @@ and discussions on the V4L mailing list.</revremark>
|
||||
</partinfo>
|
||||
|
||||
<title>Video for Linux Two API Specification</title>
|
||||
<subtitle>Revision 3.10</subtitle>
|
||||
<subtitle>Revision 3.11</subtitle>
|
||||
|
||||
<chapter id="common">
|
||||
&sub-common;
|
||||
@ -547,7 +555,6 @@ and discussions on the V4L mailing list.</revremark>
|
||||
<!-- All ioctls go here. -->
|
||||
&sub-create-bufs;
|
||||
&sub-cropcap;
|
||||
&sub-dbg-g-chip-ident;
|
||||
&sub-dbg-g-chip-info;
|
||||
&sub-dbg-g-register;
|
||||
&sub-decoder-cmd;
|
||||
|
@ -1,271 +0,0 @@
|
||||
<refentry id="vidioc-dbg-g-chip-ident">
|
||||
<refmeta>
|
||||
<refentrytitle>ioctl VIDIOC_DBG_G_CHIP_IDENT</refentrytitle>
|
||||
&manvol;
|
||||
</refmeta>
|
||||
|
||||
<refnamediv>
|
||||
<refname>VIDIOC_DBG_G_CHIP_IDENT</refname>
|
||||
<refpurpose>Identify the chips on a TV card</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsynopsisdiv>
|
||||
<funcsynopsis>
|
||||
<funcprototype>
|
||||
<funcdef>int <function>ioctl</function></funcdef>
|
||||
<paramdef>int <parameter>fd</parameter></paramdef>
|
||||
<paramdef>int <parameter>request</parameter></paramdef>
|
||||
<paramdef>struct v4l2_dbg_chip_ident
|
||||
*<parameter>argp</parameter></paramdef>
|
||||
</funcprototype>
|
||||
</funcsynopsis>
|
||||
</refsynopsisdiv>
|
||||
|
||||
<refsect1>
|
||||
<title>Arguments</title>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><parameter>fd</parameter></term>
|
||||
<listitem>
|
||||
<para>&fd;</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><parameter>request</parameter></term>
|
||||
<listitem>
|
||||
<para>VIDIOC_DBG_G_CHIP_IDENT</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><parameter>argp</parameter></term>
|
||||
<listitem>
|
||||
<para></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>Description</title>
|
||||
|
||||
<note>
|
||||
<title>Experimental</title>
|
||||
|
||||
<para>This is an <link
|
||||
linkend="experimental">experimental</link> interface and may change in
|
||||
the future.</para>
|
||||
</note>
|
||||
|
||||
<para>For driver debugging purposes this ioctl allows test
|
||||
applications to query the driver about the chips present on the TV
|
||||
card. Regular applications must not use it. When you found a chip
|
||||
specific bug, please contact the linux-media mailing list (&v4l-ml;)
|
||||
so it can be fixed.</para>
|
||||
|
||||
<para>To query the driver applications must initialize the
|
||||
<structfield>match.type</structfield> and
|
||||
<structfield>match.addr</structfield> or <structfield>match.name</structfield>
|
||||
fields of a &v4l2-dbg-chip-ident;
|
||||
and call <constant>VIDIOC_DBG_G_CHIP_IDENT</constant> with a pointer to
|
||||
this structure. On success the driver stores information about the
|
||||
selected chip in the <structfield>ident</structfield> and
|
||||
<structfield>revision</structfield> fields. On failure the structure
|
||||
remains unchanged.</para>
|
||||
|
||||
<para>When <structfield>match.type</structfield> is
|
||||
<constant>V4L2_CHIP_MATCH_HOST</constant>,
|
||||
<structfield>match.addr</structfield> selects the nth non-&i2c; chip
|
||||
on the TV card. You can enumerate all chips by starting at zero and
|
||||
incrementing <structfield>match.addr</structfield> by one until
|
||||
<constant>VIDIOC_DBG_G_CHIP_IDENT</constant> fails with an &EINVAL;.
|
||||
The number zero always selects the host chip, ⪚ the chip connected
|
||||
to the PCI or USB bus.</para>
|
||||
|
||||
<para>When <structfield>match.type</structfield> is
|
||||
<constant>V4L2_CHIP_MATCH_I2C_DRIVER</constant>,
|
||||
<structfield>match.name</structfield> contains the I2C driver name.
|
||||
For instance
|
||||
<constant>"saa7127"</constant> will match any chip
|
||||
supported by the saa7127 driver, regardless of its &i2c; bus address.
|
||||
When multiple chips supported by the same driver are present, the
|
||||
ioctl will return <constant>V4L2_IDENT_AMBIGUOUS</constant> in the
|
||||
<structfield>ident</structfield> field.</para>
|
||||
|
||||
<para>When <structfield>match.type</structfield> is
|
||||
<constant>V4L2_CHIP_MATCH_I2C_ADDR</constant>,
|
||||
<structfield>match.addr</structfield> selects a chip by its 7 bit
|
||||
&i2c; bus address.</para>
|
||||
|
||||
<para>When <structfield>match.type</structfield> is
|
||||
<constant>V4L2_CHIP_MATCH_AC97</constant>,
|
||||
<structfield>match.addr</structfield> selects the nth AC97 chip
|
||||
on the TV card. You can enumerate all chips by starting at zero and
|
||||
incrementing <structfield>match.addr</structfield> by one until
|
||||
<constant>VIDIOC_DBG_G_CHIP_IDENT</constant> fails with an &EINVAL;.</para>
|
||||
|
||||
<para>On success, the <structfield>ident</structfield> field will
|
||||
contain a chip ID from the Linux
|
||||
<filename>media/v4l2-chip-ident.h</filename> header file, and the
|
||||
<structfield>revision</structfield> field will contain a driver
|
||||
specific value, or zero if no particular revision is associated with
|
||||
this chip.</para>
|
||||
|
||||
<para>When the driver could not identify the selected chip,
|
||||
<structfield>ident</structfield> will contain
|
||||
<constant>V4L2_IDENT_UNKNOWN</constant>. When no chip matched
|
||||
the ioctl will succeed but the
|
||||
<structfield>ident</structfield> field will contain
|
||||
<constant>V4L2_IDENT_NONE</constant>. If multiple chips matched,
|
||||
<structfield>ident</structfield> will contain
|
||||
<constant>V4L2_IDENT_AMBIGUOUS</constant>. In all these cases the
|
||||
<structfield>revision</structfield> field remains unchanged.</para>
|
||||
|
||||
<para>This ioctl is optional, not all drivers may support it. It
|
||||
was introduced in Linux 2.6.21, but the API was changed to the
|
||||
one described here in 2.6.29.</para>
|
||||
|
||||
<para>We recommended the <application>v4l2-dbg</application>
|
||||
utility over calling this ioctl directly. It is available from the
|
||||
LinuxTV v4l-dvb repository; see <ulink
|
||||
url="http://linuxtv.org/repo/">http://linuxtv.org/repo/</ulink> for
|
||||
access instructions.</para>
|
||||
|
||||
<!-- Note for convenience vidioc-dbg-g-register.sgml
|
||||
contains a duplicate of this table. -->
|
||||
<table pgwide="1" frame="none" id="ident-v4l2-dbg-match">
|
||||
<title>struct <structname>v4l2_dbg_match</structname></title>
|
||||
<tgroup cols="4">
|
||||
&cs-ustr;
|
||||
<tbody valign="top">
|
||||
<row>
|
||||
<entry>__u32</entry>
|
||||
<entry><structfield>type</structfield></entry>
|
||||
<entry>See <xref linkend="ident-chip-match-types" /> for a list of
|
||||
possible types.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>union</entry>
|
||||
<entry>(anonymous)</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry></entry>
|
||||
<entry>__u32</entry>
|
||||
<entry><structfield>addr</structfield></entry>
|
||||
<entry>Match a chip by this number, interpreted according
|
||||
to the <structfield>type</structfield> field.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry></entry>
|
||||
<entry>char</entry>
|
||||
<entry><structfield>name[32]</structfield></entry>
|
||||
<entry>Match a chip by this name, interpreted according
|
||||
to the <structfield>type</structfield> field.</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
|
||||
<table pgwide="1" frame="none" id="v4l2-dbg-chip-ident">
|
||||
<title>struct <structname>v4l2_dbg_chip_ident</structname></title>
|
||||
<tgroup cols="3">
|
||||
&cs-str;
|
||||
<tbody valign="top">
|
||||
<row>
|
||||
<entry>struct v4l2_dbg_match</entry>
|
||||
<entry><structfield>match</structfield></entry>
|
||||
<entry>How to match the chip, see <xref linkend="ident-v4l2-dbg-match" />.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>__u32</entry>
|
||||
<entry><structfield>ident</structfield></entry>
|
||||
<entry>A chip identifier as defined in the Linux
|
||||
<filename>media/v4l2-chip-ident.h</filename> header file, or one of
|
||||
the values from <xref linkend="chip-ids" />.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>__u32</entry>
|
||||
<entry><structfield>revision</structfield></entry>
|
||||
<entry>A chip revision, chip and driver specific.</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
|
||||
<!-- Note for convenience vidioc-dbg-g-register.sgml
|
||||
contains a duplicate of this table. -->
|
||||
<table pgwide="1" frame="none" id="ident-chip-match-types">
|
||||
<title>Chip Match Types</title>
|
||||
<tgroup cols="3">
|
||||
&cs-def;
|
||||
<tbody valign="top">
|
||||
<row>
|
||||
<entry><constant>V4L2_CHIP_MATCH_BRIDGE</constant></entry>
|
||||
<entry>0</entry>
|
||||
<entry>Match the nth chip on the card, zero for the
|
||||
bridge chip. Does not match sub-devices.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>V4L2_CHIP_MATCH_I2C_DRIVER</constant></entry>
|
||||
<entry>1</entry>
|
||||
<entry>Match an &i2c; chip by its driver name.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>V4L2_CHIP_MATCH_I2C_ADDR</constant></entry>
|
||||
<entry>2</entry>
|
||||
<entry>Match a chip by its 7 bit &i2c; bus address.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>V4L2_CHIP_MATCH_AC97</constant></entry>
|
||||
<entry>3</entry>
|
||||
<entry>Match the nth anciliary AC97 chip.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>V4L2_CHIP_MATCH_SUBDEV</constant></entry>
|
||||
<entry>4</entry>
|
||||
<entry>Match the nth sub-device. Can't be used with this ioctl.</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
|
||||
<!-- This is an anonymous enum in media/v4l2-chip-ident.h. -->
|
||||
<table pgwide="1" frame="none" id="chip-ids">
|
||||
<title>Chip Identifiers</title>
|
||||
<tgroup cols="3">
|
||||
&cs-def;
|
||||
<tbody valign="top">
|
||||
<row>
|
||||
<entry><constant>V4L2_IDENT_NONE</constant></entry>
|
||||
<entry>0</entry>
|
||||
<entry>No chip matched.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>V4L2_IDENT_AMBIGUOUS</constant></entry>
|
||||
<entry>1</entry>
|
||||
<entry>Multiple chips matched.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>V4L2_IDENT_UNKNOWN</constant></entry>
|
||||
<entry>2</entry>
|
||||
<entry>A chip is present at this address, but the driver
|
||||
could not identify it.</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
&return-value;
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><errorcode>EINVAL</errorcode></term>
|
||||
<listitem>
|
||||
<para>The <structfield>match_type</structfield> is invalid.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
</refentry>
|
@ -73,8 +73,7 @@ fields of a &v4l2-dbg-chip-info;
|
||||
and call <constant>VIDIOC_DBG_G_CHIP_INFO</constant> with a pointer to
|
||||
this structure. On success the driver stores information about the
|
||||
selected chip in the <structfield>name</structfield> and
|
||||
<structfield>flags</structfield> fields. On failure the structure
|
||||
remains unchanged.</para>
|
||||
<structfield>flags</structfield> fields.</para>
|
||||
|
||||
<para>When <structfield>match.type</structfield> is
|
||||
<constant>V4L2_CHIP_MATCH_BRIDGE</constant>,
|
||||
@ -132,7 +131,7 @@ to the <structfield>type</structfield> field.</entry>
|
||||
<entry>char</entry>
|
||||
<entry><structfield>name[32]</structfield></entry>
|
||||
<entry>Match a chip by this name, interpreted according
|
||||
to the <structfield>type</structfield> field.</entry>
|
||||
to the <structfield>type</structfield> field. Currently unused.</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
@ -182,21 +181,6 @@ is set, then the driver supports reading registers from the device. If
|
||||
<entry>Match the nth chip on the card, zero for the
|
||||
bridge chip. Does not match sub-devices.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>V4L2_CHIP_MATCH_I2C_DRIVER</constant></entry>
|
||||
<entry>1</entry>
|
||||
<entry>Match an &i2c; chip by its driver name. Can't be used with this ioctl.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>V4L2_CHIP_MATCH_I2C_ADDR</constant></entry>
|
||||
<entry>2</entry>
|
||||
<entry>Match a chip by its 7 bit &i2c; bus address. Can't be used with this ioctl.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>V4L2_CHIP_MATCH_AC97</constant></entry>
|
||||
<entry>3</entry>
|
||||
<entry>Match the nth anciliary AC97 chip. Can't be used with this ioctl.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>V4L2_CHIP_MATCH_SUBDEV</constant></entry>
|
||||
<entry>4</entry>
|
||||
|
@ -76,7 +76,7 @@ compiled with the <constant>CONFIG_VIDEO_ADV_DEBUG</constant> option
|
||||
to enable these ioctls.</para>
|
||||
|
||||
<para>To write a register applications must initialize all fields
|
||||
of a &v4l2-dbg-register; and call
|
||||
of a &v4l2-dbg-register; except for <structfield>size</structfield> and call
|
||||
<constant>VIDIOC_DBG_S_REGISTER</constant> with a pointer to this
|
||||
structure. The <structfield>match.type</structfield> and
|
||||
<structfield>match.addr</structfield> or <structfield>match.name</structfield>
|
||||
@ -91,8 +91,8 @@ written into the register.</para>
|
||||
<structfield>reg</structfield> fields, and call
|
||||
<constant>VIDIOC_DBG_G_REGISTER</constant> with a pointer to this
|
||||
structure. On success the driver stores the register value in the
|
||||
<structfield>val</structfield> field. On failure the structure remains
|
||||
unchanged.</para>
|
||||
<structfield>val</structfield> field and the size (in bytes) of the
|
||||
value in <structfield>size</structfield>.</para>
|
||||
|
||||
<para>When <structfield>match.type</structfield> is
|
||||
<constant>V4L2_CHIP_MATCH_BRIDGE</constant>,
|
||||
@ -101,40 +101,10 @@ on the TV card. The number zero always selects the host chip, ⪚ the
|
||||
chip connected to the PCI or USB bus. You can find out which chips are
|
||||
present with the &VIDIOC-DBG-G-CHIP-INFO; ioctl.</para>
|
||||
|
||||
<para>When <structfield>match.type</structfield> is
|
||||
<constant>V4L2_CHIP_MATCH_I2C_DRIVER</constant>,
|
||||
<structfield>match.name</structfield> contains the I2C driver name.
|
||||
For instance
|
||||
<constant>"saa7127"</constant> will match any chip
|
||||
supported by the saa7127 driver, regardless of its &i2c; bus address.
|
||||
When multiple chips supported by the same driver are present, the
|
||||
effect of these ioctls is undefined. Again with the
|
||||
&VIDIOC-DBG-G-CHIP-INFO; ioctl you can find out which &i2c; chips are
|
||||
present.</para>
|
||||
|
||||
<para>When <structfield>match.type</structfield> is
|
||||
<constant>V4L2_CHIP_MATCH_I2C_ADDR</constant>,
|
||||
<structfield>match.addr</structfield> selects a chip by its 7 bit &i2c;
|
||||
bus address.</para>
|
||||
|
||||
<para>When <structfield>match.type</structfield> is
|
||||
<constant>V4L2_CHIP_MATCH_AC97</constant>,
|
||||
<structfield>match.addr</structfield> selects the nth AC97 chip
|
||||
on the TV card.</para>
|
||||
|
||||
<para>When <structfield>match.type</structfield> is
|
||||
<constant>V4L2_CHIP_MATCH_SUBDEV</constant>,
|
||||
<structfield>match.addr</structfield> selects the nth sub-device.</para>
|
||||
|
||||
<note>
|
||||
<title>Success not guaranteed</title>
|
||||
|
||||
<para>Due to a flaw in the Linux &i2c; bus driver these ioctls may
|
||||
return successfully without actually reading or writing a register. To
|
||||
catch the most likely failure we recommend a &VIDIOC-DBG-G-CHIP-INFO;
|
||||
call confirming the presence of the selected &i2c; chip.</para>
|
||||
</note>
|
||||
|
||||
<para>These ioctls are optional, not all drivers may support them.
|
||||
However when a driver supports these ioctls it must also support
|
||||
&VIDIOC-DBG-G-CHIP-INFO;. Conversely it may support
|
||||
@ -150,7 +120,7 @@ LinuxTV v4l-dvb repository; see <ulink
|
||||
url="http://linuxtv.org/repo/">http://linuxtv.org/repo/</ulink> for
|
||||
access instructions.</para>
|
||||
|
||||
<!-- Note for convenience vidioc-dbg-g-chip-ident.sgml
|
||||
<!-- Note for convenience vidioc-dbg-g-chip-info.sgml
|
||||
contains a duplicate of this table. -->
|
||||
<table pgwide="1" frame="none" id="v4l2-dbg-match">
|
||||
<title>struct <structname>v4l2_dbg_match</structname></title>
|
||||
@ -160,7 +130,7 @@ access instructions.</para>
|
||||
<row>
|
||||
<entry>__u32</entry>
|
||||
<entry><structfield>type</structfield></entry>
|
||||
<entry>See <xref linkend="ident-chip-match-types" /> for a list of
|
||||
<entry>See <xref linkend="chip-match-types" /> for a list of
|
||||
possible types.</entry>
|
||||
</row>
|
||||
<row>
|
||||
@ -179,7 +149,7 @@ to the <structfield>type</structfield> field.</entry>
|
||||
<entry>char</entry>
|
||||
<entry><structfield>name[32]</structfield></entry>
|
||||
<entry>Match a chip by this name, interpreted according
|
||||
to the <structfield>type</structfield> field.</entry>
|
||||
to the <structfield>type</structfield> field. Currently unused.</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
@ -198,6 +168,11 @@ to the <structfield>type</structfield> field.</entry>
|
||||
<entry><structfield>match</structfield></entry>
|
||||
<entry>How to match the chip, see <xref linkend="v4l2-dbg-match" />.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>__u32</entry>
|
||||
<entry><structfield>size</structfield></entry>
|
||||
<entry>The register size in bytes.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>__u64</entry>
|
||||
<entry><structfield>reg</structfield></entry>
|
||||
@ -213,7 +188,7 @@ register.</entry>
|
||||
</tgroup>
|
||||
</table>
|
||||
|
||||
<!-- Note for convenience vidioc-dbg-g-chip-ident.sgml
|
||||
<!-- Note for convenience vidioc-dbg-g-chip-info.sgml
|
||||
contains a duplicate of this table. -->
|
||||
<table pgwide="1" frame="none" id="chip-match-types">
|
||||
<title>Chip Match Types</title>
|
||||
@ -226,21 +201,6 @@ register.</entry>
|
||||
<entry>Match the nth chip on the card, zero for the
|
||||
bridge chip. Does not match sub-devices.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>V4L2_CHIP_MATCH_I2C_DRIVER</constant></entry>
|
||||
<entry>1</entry>
|
||||
<entry>Match an &i2c; chip by its driver name.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>V4L2_CHIP_MATCH_I2C_ADDR</constant></entry>
|
||||
<entry>2</entry>
|
||||
<entry>Match a chip by its 7 bit &i2c; bus address.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>V4L2_CHIP_MATCH_AC97</constant></entry>
|
||||
<entry>3</entry>
|
||||
<entry>Match the nth anciliary AC97 chip.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>V4L2_CHIP_MATCH_SUBDEV</constant></entry>
|
||||
<entry>4</entry>
|
||||
|
@ -54,7 +54,8 @@ standard automatically. To do so, applications call <constant>
|
||||
VIDIOC_QUERYSTD</constant> with a pointer to a &v4l2-std-id; type. The
|
||||
driver stores here a set of candidates, this can be a single flag or a
|
||||
set of supported standards if for example the hardware can only
|
||||
distinguish between 50 and 60 Hz systems. When detection is not
|
||||
distinguish between 50 and 60 Hz systems. If no signal was detected,
|
||||
then the driver will return V4L2_STD_UNKNOWN. When detection is not
|
||||
possible or fails, the set must contain all standards supported by the
|
||||
current video input or output.</para>
|
||||
|
||||
|
@ -267,8 +267,8 @@ Q: If i have some kernel code that needs to be aware of CPU arrival and
|
||||
A: This is what you would need in your kernel code to receive notifications.
|
||||
|
||||
#include <linux/cpu.h>
|
||||
static int __cpuinit foobar_cpu_callback(struct notifier_block *nfb,
|
||||
unsigned long action, void *hcpu)
|
||||
static int foobar_cpu_callback(struct notifier_block *nfb,
|
||||
unsigned long action, void *hcpu)
|
||||
{
|
||||
unsigned int cpu = (unsigned long)hcpu;
|
||||
|
||||
@ -285,7 +285,7 @@ A: This is what you would need in your kernel code to receive notifications.
|
||||
return NOTIFY_OK;
|
||||
}
|
||||
|
||||
static struct notifier_block __cpuinitdata foobar_cpu_notifer =
|
||||
static struct notifier_block foobar_cpu_notifer =
|
||||
{
|
||||
.notifier_call = foobar_cpu_callback,
|
||||
};
|
||||
|
24
Documentation/devicetree/bindings/arm/global_timer.txt
Normal file
24
Documentation/devicetree/bindings/arm/global_timer.txt
Normal file
@ -0,0 +1,24 @@
|
||||
|
||||
* ARM Global Timer
|
||||
Cortex-A9 are often associated with a per-core Global timer.
|
||||
|
||||
** Timer node required properties:
|
||||
|
||||
- compatible : Should be "arm,cortex-a9-global-timer"
|
||||
Driver supports versions r2p0 and above.
|
||||
|
||||
- interrupts : One interrupt to each core
|
||||
|
||||
- reg : Specify the base address and the size of the GT timer
|
||||
register window.
|
||||
|
||||
- clocks : Should be phandle to a clock.
|
||||
|
||||
Example:
|
||||
|
||||
timer@2c000600 {
|
||||
compatible = "arm,cortex-a9-global-timer";
|
||||
reg = <0x2c000600 0x20>;
|
||||
interrupts = <1 13 0xf01>;
|
||||
clocks = <&arm_periph_clk>;
|
||||
};
|
25
Documentation/devicetree/bindings/gpio/men-a021-wdt.txt
Normal file
25
Documentation/devicetree/bindings/gpio/men-a021-wdt.txt
Normal file
@ -0,0 +1,25 @@
|
||||
Bindings for MEN A21 Watchdog device connected to GPIO lines
|
||||
|
||||
Required properties:
|
||||
- compatible: "men,a021-wdt"
|
||||
- gpios: Specifies the pins that control the Watchdog, order:
|
||||
1: Watchdog enable
|
||||
2: Watchdog fast-mode
|
||||
3: Watchdog trigger
|
||||
4: Watchdog reset cause bit 0
|
||||
5: Watchdog reset cause bit 1
|
||||
6: Watchdog reset cause bit 2
|
||||
|
||||
Optional properties:
|
||||
- None
|
||||
|
||||
Example:
|
||||
watchdog {
|
||||
compatible ="men,a021-wdt";
|
||||
gpios = <&gpio3 9 1 /* WD_EN */
|
||||
&gpio3 10 1 /* WD_FAST */
|
||||
&gpio3 11 1 /* WD_TRIG */
|
||||
&gpio3 6 1 /* RST_CAUSE[0] */
|
||||
&gpio3 7 1 /* RST_CAUSE[1] */
|
||||
&gpio3 8 1>; /* RST_CAUSE[2] */
|
||||
};
|
91
Documentation/devicetree/bindings/input/ads7846.txt
Normal file
91
Documentation/devicetree/bindings/input/ads7846.txt
Normal file
@ -0,0 +1,91 @@
|
||||
Device tree bindings for TI's ADS7843, ADS7845, ADS7846, ADS7873, TSC2046
|
||||
SPI driven touch screen controllers.
|
||||
|
||||
The node for this driver must be a child node of a SPI controller, hence
|
||||
all mandatory properties described in
|
||||
|
||||
Documentation/devicetree/bindings/spi/spi-bus.txt
|
||||
|
||||
must be specified.
|
||||
|
||||
Additional required properties:
|
||||
|
||||
compatible Must be one of the following, depending on the
|
||||
model:
|
||||
"ti,tsc2046"
|
||||
"ti,ads7843"
|
||||
"ti,ads7845"
|
||||
"ti,ads7846"
|
||||
"ti,ads7873"
|
||||
|
||||
interrupt-parent
|
||||
interrupts An interrupt node describing the IRQ line the chip's
|
||||
!PENIRQ pin is connected to.
|
||||
vcc-supply A regulator node for the supply voltage.
|
||||
|
||||
|
||||
Optional properties:
|
||||
|
||||
ti,vref-delay-usecs vref supply delay in usecs, 0 for
|
||||
external vref (u16).
|
||||
ti,vref-mv The VREF voltage, in millivolts (u16).
|
||||
ti,keep-vref-on set to keep vref on for differential
|
||||
measurements as well
|
||||
ti,swap-xy swap x and y axis
|
||||
ti,settle-delay-usec Settling time of the analog signals;
|
||||
a function of Vcc and the capacitance
|
||||
on the X/Y drivers. If set to non-zero,
|
||||
two samples are taken with settle_delay
|
||||
us apart, and the second one is used.
|
||||
~150 uSec with 0.01uF caps (u16).
|
||||
ti,penirq-recheck-delay-usecs If set to non-zero, after samples are
|
||||
taken this delay is applied and penirq
|
||||
is rechecked, to help avoid false
|
||||
events. This value is affected by the
|
||||
material used to build the touch layer
|
||||
(u16).
|
||||
ti,x-plate-ohms Resistance of the X-plate,
|
||||
in Ohms (u16).
|
||||
ti,y-plate-ohms Resistance of the Y-plate,
|
||||
in Ohms (u16).
|
||||
ti,x-min Minimum value on the X axis (u16).
|
||||
ti,y-min Minimum value on the Y axis (u16).
|
||||
ti,x-max Maximum value on the X axis (u16).
|
||||
ti,y-max Minimum value on the Y axis (u16).
|
||||
ti,pressure-min Minimum reported pressure value
|
||||
(threshold) - u16.
|
||||
ti,pressure-max Maximum reported pressure value (u16).
|
||||
ti,debounce-max Max number of additional readings per
|
||||
sample (u16).
|
||||
ti,debounce-tol Tolerance used for filtering (u16).
|
||||
ti,debounce-rep Additional consecutive good readings
|
||||
required after the first two (u16).
|
||||
ti,pendown-gpio-debounce Platform specific debounce time for the
|
||||
pendown-gpio (u32).
|
||||
pendown-gpio GPIO handle describing the pin the !PENIRQ
|
||||
line is connected to.
|
||||
linux,wakeup use any event on touchscreen as wakeup event.
|
||||
|
||||
|
||||
Example for a TSC2046 chip connected to an McSPI controller of an OMAP SoC::
|
||||
|
||||
spi_controller {
|
||||
tsc2046@0 {
|
||||
reg = <0>; /* CS0 */
|
||||
compatible = "ti,tsc2046";
|
||||
interrupt-parent = <&gpio1>;
|
||||
interrupts = <8 0>; /* BOOT6 / GPIO 8 */
|
||||
spi-max-frequency = <1000000>;
|
||||
pendown-gpio = <&gpio1 8 0>;
|
||||
vcc-supply = <®_vcc3>;
|
||||
|
||||
ti,x-min = /bits/ 16 <0>;
|
||||
ti,x-max = /bits/ 16 <8000>;
|
||||
ti,y-min = /bits/ 16 <0>;
|
||||
ti,y-max = /bits/ 16 <4800>;
|
||||
ti,x-plate-ohms = /bits/ 16 <40>;
|
||||
ti,pressure-max = /bits/ 16 <255>;
|
||||
|
||||
linux,wakeup;
|
||||
};
|
||||
};
|
@ -2,8 +2,10 @@ Exynos4x12/Exynos5 SoC series camera host interface (FIMC-LITE)
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : should be "samsung,exynos4212-fimc-lite" for Exynos4212 and
|
||||
Exynos4412 SoCs;
|
||||
- compatible : should be one of:
|
||||
"samsung,exynos4212-fimc-lite" for Exynos4212/4412 SoCs,
|
||||
"samsung,exynos5250-fimc-lite" for Exynos5250 compatible
|
||||
devices;
|
||||
- reg : physical base address and size of the device memory mapped
|
||||
registers;
|
||||
- interrupts : should contain FIMC-LITE interrupt;
|
||||
|
40
Documentation/devicetree/bindings/media/i2c/mt9p031.txt
Normal file
40
Documentation/devicetree/bindings/media/i2c/mt9p031.txt
Normal file
@ -0,0 +1,40 @@
|
||||
* Aptina 1/2.5-Inch 5Mp CMOS Digital Image Sensor
|
||||
|
||||
The Aptina MT9P031 is a 1/2.5-inch CMOS active pixel digital image sensor with
|
||||
an active array size of 2592H x 1944V. It is programmable through a simple
|
||||
two-wire serial interface.
|
||||
|
||||
Required Properties:
|
||||
- compatible: value should be either one among the following
|
||||
(a) "aptina,mt9p031" for mt9p031 sensor
|
||||
(b) "aptina,mt9p031m" for mt9p031m sensor
|
||||
|
||||
- input-clock-frequency: Input clock frequency.
|
||||
|
||||
- pixel-clock-frequency: Pixel clock frequency.
|
||||
|
||||
Optional Properties:
|
||||
- reset-gpios: Chip reset GPIO
|
||||
|
||||
For further reading on port node refer to
|
||||
Documentation/devicetree/bindings/media/video-interfaces.txt.
|
||||
|
||||
Example:
|
||||
|
||||
i2c0@1c22000 {
|
||||
...
|
||||
...
|
||||
mt9p031@5d {
|
||||
compatible = "aptina,mt9p031";
|
||||
reg = <0x5d>;
|
||||
reset-gpios = <&gpio3 30 0>;
|
||||
|
||||
port {
|
||||
mt9p031_1: endpoint {
|
||||
input-clock-frequency = <6000000>;
|
||||
pixel-clock-frequency = <96000000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
...
|
||||
};
|
44
Documentation/devicetree/bindings/media/i2c/tvp514x.txt
Normal file
44
Documentation/devicetree/bindings/media/i2c/tvp514x.txt
Normal file
@ -0,0 +1,44 @@
|
||||
* Texas Instruments TVP514x video decoder
|
||||
|
||||
The TVP5146/TVP5146m2/TVP5147/TVP5147m1 device is high quality, single-chip
|
||||
digital video decoder that digitizes and decodes all popular baseband analog
|
||||
video formats into digital video component. The tvp514x decoder supports analog-
|
||||
to-digital (A/D) conversion of component RGB and YPbPr signals as well as A/D
|
||||
conversion and decoding of NTSC, PAL and SECAM composite and S-video into
|
||||
component YCbCr.
|
||||
|
||||
Required Properties :
|
||||
- compatible : value should be either one among the following
|
||||
(a) "ti,tvp5146" for tvp5146 decoder.
|
||||
(b) "ti,tvp5146m2" for tvp5146m2 decoder.
|
||||
(c) "ti,tvp5147" for tvp5147 decoder.
|
||||
(d) "ti,tvp5147m1" for tvp5147m1 decoder.
|
||||
|
||||
- hsync-active: HSYNC Polarity configuration for endpoint.
|
||||
|
||||
- vsync-active: VSYNC Polarity configuration for endpoint.
|
||||
|
||||
- pclk-sample: Clock polarity of the endpoint.
|
||||
|
||||
For further reading on port node refer to Documentation/devicetree/bindings/
|
||||
media/video-interfaces.txt.
|
||||
|
||||
Example:
|
||||
|
||||
i2c0@1c22000 {
|
||||
...
|
||||
...
|
||||
tvp514x@5c {
|
||||
compatible = "ti,tvp5146";
|
||||
reg = <0x5c>;
|
||||
|
||||
port {
|
||||
tvp514x_1: endpoint {
|
||||
hsync-active = <1>;
|
||||
vsync-active = <1>;
|
||||
pclk-sample = <0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
...
|
||||
};
|
@ -127,22 +127,22 @@ Example:
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/* MIPI CSI-2 bus IF sensor */
|
||||
s5c73m3: sensor@0x1a {
|
||||
compatible = "samsung,s5c73m3";
|
||||
reg = <0x1a>;
|
||||
vddio-supply = <...>;
|
||||
/* MIPI CSI-2 bus IF sensor */
|
||||
s5c73m3: sensor@0x1a {
|
||||
compatible = "samsung,s5c73m3";
|
||||
reg = <0x1a>;
|
||||
vddio-supply = <...>;
|
||||
|
||||
clock-frequency = <24000000>;
|
||||
clocks = <...>;
|
||||
clock-names = "mclk";
|
||||
clock-frequency = <24000000>;
|
||||
clocks = <...>;
|
||||
clock-names = "mclk";
|
||||
|
||||
port {
|
||||
s5c73m3_1: endpoint {
|
||||
data-lanes = <1 2 3 4>;
|
||||
remote-endpoint = <&csis0_ep>;
|
||||
port {
|
||||
s5c73m3_1: endpoint {
|
||||
data-lanes = <1 2 3 4>;
|
||||
remote-endpoint = <&csis0_ep>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -5,8 +5,8 @@ Required properties:
|
||||
|
||||
- compatible : "samsung,s5pv210-csis" for S5PV210 (S5PC110),
|
||||
"samsung,exynos4210-csis" for Exynos4210 (S5PC210),
|
||||
"samsung,exynos4212-csis" for Exynos4212/Exynos4412
|
||||
SoC series;
|
||||
"samsung,exynos4212-csis" for Exynos4212/Exynos4412,
|
||||
"samsung,exynos5250-csis" for Exynos5250;
|
||||
- reg : offset and length of the register set for the device;
|
||||
- interrupts : should contain MIPI CSIS interrupt; the format of the
|
||||
interrupt specifier depends on the interrupt controller;
|
||||
|
18
Documentation/devicetree/bindings/media/sh_mobile_ceu.txt
Normal file
18
Documentation/devicetree/bindings/media/sh_mobile_ceu.txt
Normal file
@ -0,0 +1,18 @@
|
||||
Bindings, specific for the sh_mobile_ceu_camera.c driver:
|
||||
- compatible: Should be "renesas,sh-mobile-ceu"
|
||||
- reg: register base and size
|
||||
- interrupts: the interrupt number
|
||||
- interrupt-parent: the interrupt controller
|
||||
- renesas,max-width: maximum image width, supported on this SoC
|
||||
- renesas,max-height: maximum image height, supported on this SoC
|
||||
|
||||
Example:
|
||||
|
||||
ceu0: ceu@0xfe910000 {
|
||||
compatible = "renesas,sh-mobile-ceu";
|
||||
reg = <0xfe910000 0xa0>;
|
||||
interrupt-parent = <&intcs>;
|
||||
interrupts = <0x880>;
|
||||
renesas,max-width = <8188>;
|
||||
renesas,max-height = <8188>;
|
||||
};
|
@ -0,0 +1,17 @@
|
||||
Marvell Orion SoC timer
|
||||
|
||||
Required properties:
|
||||
- compatible: shall be "marvell,orion-timer"
|
||||
- reg: base address of the timer register starting with TIMERS CONTROL register
|
||||
- interrupt-parent: phandle of the bridge interrupt controller
|
||||
- interrupts: should contain the interrupts for Timer0 and Timer1
|
||||
- clocks: phandle of timer reference clock (tclk)
|
||||
|
||||
Example:
|
||||
timer: timer {
|
||||
compatible = "marvell,orion-timer";
|
||||
reg = <0x20300 0x20>;
|
||||
interrupt-parent = <&bridge_intc>;
|
||||
interrupts = <1>, <2>;
|
||||
clocks = <&core_clk 0>;
|
||||
};
|
@ -5,9 +5,14 @@ Required properties:
|
||||
- compatible : should be "brcm,bcm2835-pm-wdt"
|
||||
- reg : Specifies base physical address and size of the registers.
|
||||
|
||||
Optional properties:
|
||||
|
||||
- timeout-sec : Contains the watchdog timeout in seconds
|
||||
|
||||
Example:
|
||||
|
||||
watchdog {
|
||||
compatible = "brcm,bcm2835-pm-wdt";
|
||||
reg = <0x7e100000 0x28>;
|
||||
timeout-sec = <10>;
|
||||
};
|
||||
|
@ -18,6 +18,8 @@ Mount Options
|
||||
=============
|
||||
|
||||
When mounting an XFS filesystem, the following options are accepted.
|
||||
For boolean mount options, the names with the (*) suffix is the
|
||||
default behaviour.
|
||||
|
||||
allocsize=size
|
||||
Sets the buffered I/O end-of-file preallocation size when
|
||||
@ -25,97 +27,128 @@ When mounting an XFS filesystem, the following options are accepted.
|
||||
Valid values for this option are page size (typically 4KiB)
|
||||
through to 1GiB, inclusive, in power-of-2 increments.
|
||||
|
||||
attr2/noattr2
|
||||
The options enable/disable (default is disabled for backward
|
||||
compatibility on-disk) an "opportunistic" improvement to be
|
||||
made in the way inline extended attributes are stored on-disk.
|
||||
When the new form is used for the first time (by setting or
|
||||
removing extended attributes) the on-disk superblock feature
|
||||
bit field will be updated to reflect this format being in use.
|
||||
The default behaviour is for dynamic end-of-file
|
||||
preallocation size, which uses a set of heuristics to
|
||||
optimise the preallocation size based on the current
|
||||
allocation patterns within the file and the access patterns
|
||||
to the file. Specifying a fixed allocsize value turns off
|
||||
the dynamic behaviour.
|
||||
|
||||
attr2
|
||||
noattr2
|
||||
The options enable/disable an "opportunistic" improvement to
|
||||
be made in the way inline extended attributes are stored
|
||||
on-disk. When the new form is used for the first time when
|
||||
attr2 is selected (either when setting or removing extended
|
||||
attributes) the on-disk superblock feature bit field will be
|
||||
updated to reflect this format being in use.
|
||||
|
||||
The default behaviour is determined by the on-disk feature
|
||||
bit indicating that attr2 behaviour is active. If either
|
||||
mount option it set, then that becomes the new default used
|
||||
by the filesystem.
|
||||
|
||||
CRC enabled filesystems always use the attr2 format, and so
|
||||
will reject the noattr2 mount option if it is set.
|
||||
|
||||
barrier
|
||||
Enables the use of block layer write barriers for writes into
|
||||
the journal and unwritten extent conversion. This allows for
|
||||
drive level write caching to be enabled, for devices that
|
||||
support write barriers.
|
||||
barrier (*)
|
||||
nobarrier
|
||||
Enables/disables the use of block layer write barriers for
|
||||
writes into the journal and for data integrity operations.
|
||||
This allows for drive level write caching to be enabled, for
|
||||
devices that support write barriers.
|
||||
|
||||
discard
|
||||
Issue command to let the block device reclaim space freed by the
|
||||
filesystem. This is useful for SSD devices, thinly provisioned
|
||||
LUNs and virtual machine images, but may have a performance
|
||||
impact.
|
||||
nodiscard (*)
|
||||
Enable/disable the issuing of commands to let the block
|
||||
device reclaim space freed by the filesystem. This is
|
||||
useful for SSD devices, thinly provisioned LUNs and virtual
|
||||
machine images, but may have a performance impact.
|
||||
|
||||
dmapi
|
||||
Enable the DMAPI (Data Management API) event callouts.
|
||||
Use with the "mtpt" option.
|
||||
Note: It is currently recommended that you use the fstrim
|
||||
application to discard unused blocks rather than the discard
|
||||
mount option because the performance impact of this option
|
||||
is quite severe.
|
||||
|
||||
grpid/bsdgroups and nogrpid/sysvgroups
|
||||
These options define what group ID a newly created file gets.
|
||||
When grpid is set, it takes the group ID of the directory in
|
||||
which it is created; otherwise (the default) it takes the fsgid
|
||||
of the current process, unless the directory has the setgid bit
|
||||
set, in which case it takes the gid from the parent directory,
|
||||
and also gets the setgid bit set if it is a directory itself.
|
||||
grpid/bsdgroups
|
||||
nogrpid/sysvgroups (*)
|
||||
These options define what group ID a newly created file
|
||||
gets. When grpid is set, it takes the group ID of the
|
||||
directory in which it is created; otherwise it takes the
|
||||
fsgid of the current process, unless the directory has the
|
||||
setgid bit set, in which case it takes the gid from the
|
||||
parent directory, and also gets the setgid bit set if it is
|
||||
a directory itself.
|
||||
|
||||
ihashsize=value
|
||||
In memory inode hashes have been removed, so this option has
|
||||
no function as of August 2007. Option is deprecated.
|
||||
filestreams
|
||||
Make the data allocator use the filestreams allocation mode
|
||||
across the entire filesystem rather than just on directories
|
||||
configured to use it.
|
||||
|
||||
ikeep/noikeep
|
||||
When ikeep is specified, XFS does not delete empty inode clusters
|
||||
and keeps them around on disk. ikeep is the traditional XFS
|
||||
behaviour. When noikeep is specified, empty inode clusters
|
||||
are returned to the free space pool. The default is noikeep for
|
||||
non-DMAPI mounts, while ikeep is the default when DMAPI is in use.
|
||||
|
||||
inode64
|
||||
Indicates that XFS is allowed to create inodes at any location
|
||||
in the filesystem, including those which will result in inode
|
||||
numbers occupying more than 32 bits of significance. This is
|
||||
the default allocation option. Applications which do not handle
|
||||
inode numbers bigger than 32 bits, should use inode32 option.
|
||||
ikeep
|
||||
noikeep (*)
|
||||
When ikeep is specified, XFS does not delete empty inode
|
||||
clusters and keeps them around on disk. When noikeep is
|
||||
specified, empty inode clusters are returned to the free
|
||||
space pool.
|
||||
|
||||
inode32
|
||||
Indicates that XFS is limited to create inodes at locations which
|
||||
will not result in inode numbers with more than 32 bits of
|
||||
significance. This is provided for backwards compatibility, since
|
||||
64 bits inode numbers might cause problems for some applications
|
||||
that cannot handle large inode numbers.
|
||||
inode64 (*)
|
||||
When inode32 is specified, it indicates that XFS limits
|
||||
inode creation to locations which will not result in inode
|
||||
numbers with more than 32 bits of significance.
|
||||
|
||||
largeio/nolargeio
|
||||
When inode64 is specified, it indicates that XFS is allowed
|
||||
to create inodes at any location in the filesystem,
|
||||
including those which will result in inode numbers occupying
|
||||
more than 32 bits of significance.
|
||||
|
||||
inode32 is provided for backwards compatibility with older
|
||||
systems and applications, since 64 bits inode numbers might
|
||||
cause problems for some applications that cannot handle
|
||||
large inode numbers. If applications are in use which do
|
||||
not handle inode numbers bigger than 32 bits, the inode32
|
||||
option should be specified.
|
||||
|
||||
|
||||
largeio
|
||||
nolargeio (*)
|
||||
If "nolargeio" is specified, the optimal I/O reported in
|
||||
st_blksize by stat(2) will be as small as possible to allow user
|
||||
applications to avoid inefficient read/modify/write I/O.
|
||||
If "largeio" specified, a filesystem that has a "swidth" specified
|
||||
will return the "swidth" value (in bytes) in st_blksize. If the
|
||||
filesystem does not have a "swidth" specified but does specify
|
||||
an "allocsize" then "allocsize" (in bytes) will be returned
|
||||
instead.
|
||||
If neither of these two options are specified, then filesystem
|
||||
will behave as if "nolargeio" was specified.
|
||||
st_blksize by stat(2) will be as small as possible to allow
|
||||
user applications to avoid inefficient read/modify/write
|
||||
I/O. This is typically the page size of the machine, as
|
||||
this is the granularity of the page cache.
|
||||
|
||||
If "largeio" specified, a filesystem that was created with a
|
||||
"swidth" specified will return the "swidth" value (in bytes)
|
||||
in st_blksize. If the filesystem does not have a "swidth"
|
||||
specified but does specify an "allocsize" then "allocsize"
|
||||
(in bytes) will be returned instead. Otherwise the behaviour
|
||||
is the same as if "nolargeio" was specified.
|
||||
|
||||
logbufs=value
|
||||
Set the number of in-memory log buffers. Valid numbers range
|
||||
from 2-8 inclusive.
|
||||
The default value is 8 buffers for filesystems with a
|
||||
blocksize of 64KiB, 4 buffers for filesystems with a blocksize
|
||||
of 32KiB, 3 buffers for filesystems with a blocksize of 16KiB
|
||||
and 2 buffers for all other configurations. Increasing the
|
||||
number of buffers may increase performance on some workloads
|
||||
at the cost of the memory used for the additional log buffers
|
||||
and their associated control structures.
|
||||
Set the number of in-memory log buffers. Valid numbers
|
||||
range from 2-8 inclusive.
|
||||
|
||||
The default value is 8 buffers.
|
||||
|
||||
If the memory cost of 8 log buffers is too high on small
|
||||
systems, then it may be reduced at some cost to performance
|
||||
on metadata intensive workloads. The logbsize option below
|
||||
controls the size of each buffer and so is also relevent to
|
||||
this case.
|
||||
|
||||
logbsize=value
|
||||
Set the size of each in-memory log buffer.
|
||||
Size may be specified in bytes, or in kilobytes with a "k" suffix.
|
||||
Valid sizes for version 1 and version 2 logs are 16384 (16k) and
|
||||
32768 (32k). Valid sizes for version 2 logs also include
|
||||
65536 (64k), 131072 (128k) and 262144 (256k).
|
||||
The default value for machines with more than 32MiB of memory
|
||||
is 32768, machines with less memory use 16384 by default.
|
||||
Set the size of each in-memory log buffer. The size may be
|
||||
specified in bytes, or in kilobytes with a "k" suffix.
|
||||
Valid sizes for version 1 and version 2 logs are 16384 (16k)
|
||||
and 32768 (32k). Valid sizes for version 2 logs also
|
||||
include 65536 (64k), 131072 (128k) and 262144 (256k). The
|
||||
logbsize must be an integer multiple of the log
|
||||
stripe unit configured at mkfs time.
|
||||
|
||||
The default value for for version 1 logs is 32768, while the
|
||||
default value for version 2 logs is MAX(32768, log_sunit).
|
||||
|
||||
logdev=device and rtdev=device
|
||||
Use an external log (metadata journal) and/or real-time device.
|
||||
@ -124,16 +157,11 @@ When mounting an XFS filesystem, the following options are accepted.
|
||||
optional, and the log section can be separate from the data
|
||||
section or contained within it.
|
||||
|
||||
mtpt=mountpoint
|
||||
Use with the "dmapi" option. The value specified here will be
|
||||
included in the DMAPI mount event, and should be the path of
|
||||
the actual mountpoint that is used.
|
||||
|
||||
noalign
|
||||
Data allocations will not be aligned at stripe unit boundaries.
|
||||
|
||||
noatime
|
||||
Access timestamps are not updated when a file is read.
|
||||
Data allocations will not be aligned at stripe unit
|
||||
boundaries. This is only relevant to filesystems created
|
||||
with non-zero data alignment parameters (sunit, swidth) by
|
||||
mkfs.
|
||||
|
||||
norecovery
|
||||
The filesystem will be mounted without running log recovery.
|
||||
@ -144,8 +172,14 @@ When mounting an XFS filesystem, the following options are accepted.
|
||||
the mount will fail.
|
||||
|
||||
nouuid
|
||||
Don't check for double mounted file systems using the file system uuid.
|
||||
This is useful to mount LVM snapshot volumes.
|
||||
Don't check for double mounted file systems using the file
|
||||
system uuid. This is useful to mount LVM snapshot volumes,
|
||||
and often used in combination with "norecovery" for mounting
|
||||
read-only snapshots.
|
||||
|
||||
noquota
|
||||
Forcibly turns off all quota accounting and enforcement
|
||||
within the filesystem.
|
||||
|
||||
uquota/usrquota/uqnoenforce/quota
|
||||
User disk quota accounting enabled, and limits (optionally)
|
||||
@ -160,24 +194,64 @@ When mounting an XFS filesystem, the following options are accepted.
|
||||
enforced. Refer to xfs_quota(8) for further details.
|
||||
|
||||
sunit=value and swidth=value
|
||||
Used to specify the stripe unit and width for a RAID device or
|
||||
a stripe volume. "value" must be specified in 512-byte block
|
||||
units.
|
||||
If this option is not specified and the filesystem was made on
|
||||
a stripe volume or the stripe width or unit were specified for
|
||||
the RAID device at mkfs time, then the mount system call will
|
||||
restore the value from the superblock. For filesystems that
|
||||
are made directly on RAID devices, these options can be used
|
||||
to override the information in the superblock if the underlying
|
||||
disk layout changes after the filesystem has been created.
|
||||
The "swidth" option is required if the "sunit" option has been
|
||||
specified, and must be a multiple of the "sunit" value.
|
||||
Used to specify the stripe unit and width for a RAID device
|
||||
or a stripe volume. "value" must be specified in 512-byte
|
||||
block units. These options are only relevant to filesystems
|
||||
that were created with non-zero data alignment parameters.
|
||||
|
||||
The sunit and swidth parameters specified must be compatible
|
||||
with the existing filesystem alignment characteristics. In
|
||||
general, that means the only valid changes to sunit are
|
||||
increasing it by a power-of-2 multiple. Valid swidth values
|
||||
are any integer multiple of a valid sunit value.
|
||||
|
||||
Typically the only time these mount options are necessary if
|
||||
after an underlying RAID device has had it's geometry
|
||||
modified, such as adding a new disk to a RAID5 lun and
|
||||
reshaping it.
|
||||
|
||||
swalloc
|
||||
Data allocations will be rounded up to stripe width boundaries
|
||||
when the current end of file is being extended and the file
|
||||
size is larger than the stripe width size.
|
||||
|
||||
wsync
|
||||
When specified, all filesystem namespace operations are
|
||||
executed synchronously. This ensures that when the namespace
|
||||
operation (create, unlink, etc) completes, the change to the
|
||||
namespace is on stable storage. This is useful in HA setups
|
||||
where failover must not result in clients seeing
|
||||
inconsistent namespace presentation during or after a
|
||||
failover event.
|
||||
|
||||
|
||||
Deprecated Mount Options
|
||||
========================
|
||||
|
||||
delaylog/nodelaylog
|
||||
Delayed logging is the only logging method that XFS supports
|
||||
now, so these mount options are now ignored.
|
||||
|
||||
Due for removal in 3.12.
|
||||
|
||||
ihashsize=value
|
||||
In memory inode hashes have been removed, so this option has
|
||||
no function as of August 2007. Option is deprecated.
|
||||
|
||||
Due for removal in 3.12.
|
||||
|
||||
irixsgid
|
||||
This behaviour is now controlled by a sysctl, so the mount
|
||||
option is ignored.
|
||||
|
||||
Due for removal in 3.12.
|
||||
|
||||
osyncisdsync
|
||||
osyncisosync
|
||||
O_SYNC and O_DSYNC are fully supported, so there is no need
|
||||
for these options any more.
|
||||
|
||||
Due for removal in 3.12.
|
||||
|
||||
sysctls
|
||||
=======
|
||||
@ -189,15 +263,20 @@ The following sysctls are available for the XFS filesystem:
|
||||
in /proc/fs/xfs/stat. It then immediately resets to "0".
|
||||
|
||||
fs.xfs.xfssyncd_centisecs (Min: 100 Default: 3000 Max: 720000)
|
||||
The interval at which the xfssyncd thread flushes metadata
|
||||
out to disk. This thread will flush log activity out, and
|
||||
do some processing on unlinked inodes.
|
||||
The interval at which the filesystem flushes metadata
|
||||
out to disk and runs internal cache cleanup routines.
|
||||
|
||||
fs.xfs.xfsbufd_centisecs (Min: 50 Default: 100 Max: 3000)
|
||||
The interval at which xfsbufd scans the dirty metadata buffers list.
|
||||
fs.xfs.filestream_centisecs (Min: 1 Default: 3000 Max: 360000)
|
||||
The interval at which the filesystem ages filestreams cache
|
||||
references and returns timed-out AGs back to the free stream
|
||||
pool.
|
||||
|
||||
fs.xfs.age_buffer_centisecs (Min: 100 Default: 1500 Max: 720000)
|
||||
The age at which xfsbufd flushes dirty metadata buffers to disk.
|
||||
fs.xfs.speculative_prealloc_lifetime
|
||||
(Units: seconds Min: 1 Default: 300 Max: 86400)
|
||||
The interval at which the background scanning for inodes
|
||||
with unused speculative preallocation runs. The scan
|
||||
removes unused preallocation from clean inodes and releases
|
||||
the unused space back to the free pool.
|
||||
|
||||
fs.xfs.error_level (Min: 0 Default: 3 Max: 11)
|
||||
A volume knob for error reporting when internal errors occur.
|
||||
@ -254,9 +333,31 @@ The following sysctls are available for the XFS filesystem:
|
||||
by the xfs_io(8) chattr command on a directory to be
|
||||
inherited by files in that directory.
|
||||
|
||||
fs.xfs.inherit_nodefrag (Min: 0 Default: 1 Max: 1)
|
||||
Setting this to "1" will cause the "nodefrag" flag set
|
||||
by the xfs_io(8) chattr command on a directory to be
|
||||
inherited by files in that directory.
|
||||
|
||||
fs.xfs.rotorstep (Min: 1 Default: 1 Max: 256)
|
||||
In "inode32" allocation mode, this option determines how many
|
||||
files the allocator attempts to allocate in the same allocation
|
||||
group before moving to the next allocation group. The intent
|
||||
is to control the rate at which the allocator moves between
|
||||
allocation groups when allocating extents for new files.
|
||||
|
||||
Deprecated Sysctls
|
||||
==================
|
||||
|
||||
fs.xfs.xfsbufd_centisecs (Min: 50 Default: 100 Max: 3000)
|
||||
Dirty metadata is now tracked by the log subsystem and
|
||||
flushing is driven by log space and idling demands. The
|
||||
xfsbufd no longer exists, so this syctl does nothing.
|
||||
|
||||
Due for removal in 3.14.
|
||||
|
||||
fs.xfs.age_buffer_centisecs (Min: 100 Default: 1500 Max: 720000)
|
||||
Dirty metadata is now tracked by the log subsystem and
|
||||
flushing is driven by log space and idling demands. The
|
||||
xfsbufd no longer exists, so this syctl does nothing.
|
||||
|
||||
Due for removal in 3.14.
|
||||
|
@ -265,7 +265,7 @@ connected to another pad through an enabled link
|
||||
media_entity_find_link(struct media_pad *source,
|
||||
struct media_pad *sink);
|
||||
|
||||
media_entity_remote_source(struct media_pad *pad);
|
||||
media_entity_remote_pad(struct media_pad *pad);
|
||||
|
||||
Refer to the kerneldoc documentation for more information.
|
||||
|
||||
|
@ -50,26 +50,27 @@ The maximum number of packets that kernel can handle on a NAPI interrupt,
|
||||
it's a Per-CPU variable.
|
||||
Default: 64
|
||||
|
||||
low_latency_read
|
||||
busy_read
|
||||
----------------
|
||||
Low latency busy poll timeout for socket reads. (needs CONFIG_NET_LL_RX_POLL)
|
||||
Approximate time in us to busy loop waiting for packets on the device queue.
|
||||
This sets the default value of the SO_LL socket option.
|
||||
Can be set or overridden per socket by setting socket option SO_LL, which is
|
||||
the preferred method of enabling.
|
||||
If you need to enable the feature globally via sysctl, a value of 50 is recommended.
|
||||
This sets the default value of the SO_BUSY_POLL socket option.
|
||||
Can be set or overridden per socket by setting socket option SO_BUSY_POLL,
|
||||
which is the preferred method of enabling. If you need to enable the feature
|
||||
globally via sysctl, a value of 50 is recommended.
|
||||
Will increase power usage.
|
||||
Default: 0 (off)
|
||||
|
||||
low_latency_poll
|
||||
busy_poll
|
||||
----------------
|
||||
Low latency busy poll timeout for poll and select. (needs CONFIG_NET_LL_RX_POLL)
|
||||
Approximate time in us to busy loop waiting for events.
|
||||
Recommended value depends on the number of sockets you poll on.
|
||||
For several sockets 50, for several hundreds 100.
|
||||
For more than that you probably want to use epoll.
|
||||
Note that only sockets with SO_LL set will be busy polled, so you want to either
|
||||
selectively set SO_LL on those sockets or set sysctl.net.low_latency_read globally.
|
||||
Note that only sockets with SO_BUSY_POLL set will be busy polled,
|
||||
so you want to either selectively set SO_BUSY_POLL on those sockets or set
|
||||
sysctl.net.busy_read globally.
|
||||
Will increase power usage.
|
||||
Default: 0 (off)
|
||||
|
||||
|
@ -160,3 +160,6 @@
|
||||
159 -> ProVideo PV183 [1830:1540,1831:1540,1832:1540,1833:1540,1834:1540,1835:1540,1836:1540,1837:1540]
|
||||
160 -> Tongwei Video Technology TD-3116 [f200:3116]
|
||||
161 -> Aposonic W-DVR [0279:0228]
|
||||
162 -> Adlink MPG24
|
||||
163 -> Bt848 Capture 14MHz
|
||||
164 -> CyberVision CV06 (SV)
|
||||
|
@ -190,3 +190,4 @@
|
||||
189 -> Kworld PC150-U [17de:a134]
|
||||
190 -> Asus My Cinema PS3-100 [1043:48cd]
|
||||
191 -> Hawell HW-9004V1
|
||||
192 -> AverMedia AverTV Satellite Hybrid+FM A706 [1461:2055]
|
||||
|
@ -86,6 +86,6 @@ tuner=85 - Philips FQ1236 MK5
|
||||
tuner=86 - Tena TNF5337 MFD
|
||||
tuner=87 - Xceive 4000 tuner
|
||||
tuner=88 - Xceive 5000C tuner
|
||||
tuner=89 - Sony PAL+SECAM (BTF-PG472Z)
|
||||
tuner=90 - Sony NTSC-M-JP (BTF-PK467Z)
|
||||
tuner=91 - Sony NTSC-M (BTF-PB463Z)
|
||||
tuner=89 - Sony BTF-PG472Z PAL/SECAM
|
||||
tuner=90 - Sony BTF-PK467Z NTSC-M-JP
|
||||
tuner=91 - Sony BTF-PB463Z NTSC-M
|
||||
|
@ -1,6 +1,6 @@
|
||||
Samsung S5P/EXYNOS4 FIMC driver
|
||||
|
||||
Copyright (C) 2012 Samsung Electronics Co., Ltd.
|
||||
Copyright (C) 2012 - 2013 Samsung Electronics Co., Ltd.
|
||||
---------------------------------------------------------------------------
|
||||
|
||||
The FIMC (Fully Interactive Mobile Camera) device available in Samsung
|
||||
@ -10,7 +10,7 @@ data from LCD controller (FIMD) through the SoC internal writeback data
|
||||
path. There are multiple FIMC instances in the SoCs (up to 4), having
|
||||
slightly different capabilities, like pixel alignment constraints, rotator
|
||||
availability, LCD writeback support, etc. The driver is located at
|
||||
drivers/media/platform/s5p-fimc directory.
|
||||
drivers/media/platform/exynos4-is directory.
|
||||
|
||||
1. Supported SoCs
|
||||
=================
|
||||
@ -36,21 +36,21 @@ Not currently supported:
|
||||
=====================
|
||||
|
||||
- media device driver
|
||||
drivers/media/platform/s5p-fimc/fimc-mdevice.[ch]
|
||||
drivers/media/platform/exynos4-is/media-dev.[ch]
|
||||
|
||||
- camera capture video device driver
|
||||
drivers/media/platform/s5p-fimc/fimc-capture.c
|
||||
drivers/media/platform/exynos4-is/fimc-capture.c
|
||||
|
||||
- MIPI-CSI2 receiver subdev
|
||||
drivers/media/platform/s5p-fimc/mipi-csis.[ch]
|
||||
drivers/media/platform/exynos4-is/mipi-csis.[ch]
|
||||
|
||||
- video post-processor (mem-to-mem)
|
||||
drivers/media/platform/s5p-fimc/fimc-core.c
|
||||
drivers/media/platform/exynos4-is/fimc-core.c
|
||||
|
||||
- common files
|
||||
drivers/media/platform/s5p-fimc/fimc-core.h
|
||||
drivers/media/platform/s5p-fimc/fimc-reg.h
|
||||
drivers/media/platform/s5p-fimc/regs-fimc.h
|
||||
drivers/media/platform/exynos4-is/fimc-core.h
|
||||
drivers/media/platform/exynos4-is/fimc-reg.h
|
||||
drivers/media/platform/exynos4-is/regs-fimc.h
|
||||
|
||||
4. User space interfaces
|
||||
========================
|
||||
@ -143,7 +143,8 @@ or retrieve the information from /dev/media? with help of the media-ctl tool:
|
||||
6. Platform support
|
||||
===================
|
||||
|
||||
The machine code (plat-s5p and arch/arm/mach-*) must select following options
|
||||
The machine code (arch/arm/plat-samsung and arch/arm/mach-*) must select
|
||||
following options:
|
||||
|
||||
CONFIG_S5P_DEV_FIMC0 mandatory
|
||||
CONFIG_S5P_DEV_FIMC1 \
|
||||
|
@ -246,7 +246,6 @@ may be NULL if the subdev driver does not support anything from that category.
|
||||
It looks like this:
|
||||
|
||||
struct v4l2_subdev_core_ops {
|
||||
int (*g_chip_ident)(struct v4l2_subdev *sd, struct v4l2_dbg_chip_ident *chip);
|
||||
int (*log_status)(struct v4l2_subdev *sd);
|
||||
int (*init)(struct v4l2_subdev *sd, u32 val);
|
||||
...
|
||||
@ -326,8 +325,27 @@ that width, height and the media bus pixel code are equal on both source and
|
||||
sink of the link. Subdev drivers are also free to use this function to
|
||||
perform the checks mentioned above in addition to their own checks.
|
||||
|
||||
A device (bridge) driver needs to register the v4l2_subdev with the
|
||||
v4l2_device:
|
||||
There are currently two ways to register subdevices with the V4L2 core. The
|
||||
first (traditional) possibility is to have subdevices registered by bridge
|
||||
drivers. This can be done when the bridge driver has the complete information
|
||||
about subdevices connected to it and knows exactly when to register them. This
|
||||
is typically the case for internal subdevices, like video data processing units
|
||||
within SoCs or complex PCI(e) boards, camera sensors in USB cameras or connected
|
||||
to SoCs, which pass information about them to bridge drivers, usually in their
|
||||
platform data.
|
||||
|
||||
There are however also situations where subdevices have to be registered
|
||||
asynchronously to bridge devices. An example of such a configuration is a Device
|
||||
Tree based system where information about subdevices is made available to the
|
||||
system independently from the bridge devices, e.g. when subdevices are defined
|
||||
in DT as I2C device nodes. The API used in this second case is described further
|
||||
below.
|
||||
|
||||
Using one or the other registration method only affects the probing process, the
|
||||
run-time bridge-subdevice interaction is in both cases the same.
|
||||
|
||||
In the synchronous case a device (bridge) driver needs to register the
|
||||
v4l2_subdev with the v4l2_device:
|
||||
|
||||
int err = v4l2_device_register_subdev(v4l2_dev, sd);
|
||||
|
||||
@ -346,24 +364,24 @@ Afterwards the subdev module can be unloaded and sd->dev == NULL.
|
||||
|
||||
You can call an ops function either directly:
|
||||
|
||||
err = sd->ops->core->g_chip_ident(sd, &chip);
|
||||
err = sd->ops->core->g_std(sd, &norm);
|
||||
|
||||
but it is better and easier to use this macro:
|
||||
|
||||
err = v4l2_subdev_call(sd, core, g_chip_ident, &chip);
|
||||
err = v4l2_subdev_call(sd, core, g_std, &norm);
|
||||
|
||||
The macro will to the right NULL pointer checks and returns -ENODEV if subdev
|
||||
is NULL, -ENOIOCTLCMD if either subdev->core or subdev->core->g_chip_ident is
|
||||
NULL, or the actual result of the subdev->ops->core->g_chip_ident ops.
|
||||
is NULL, -ENOIOCTLCMD if either subdev->core or subdev->core->g_std is
|
||||
NULL, or the actual result of the subdev->ops->core->g_std ops.
|
||||
|
||||
It is also possible to call all or a subset of the sub-devices:
|
||||
|
||||
v4l2_device_call_all(v4l2_dev, 0, core, g_chip_ident, &chip);
|
||||
v4l2_device_call_all(v4l2_dev, 0, core, g_std, &norm);
|
||||
|
||||
Any subdev that does not support this ops is skipped and error results are
|
||||
ignored. If you want to check for errors use this:
|
||||
|
||||
err = v4l2_device_call_until_err(v4l2_dev, 0, core, g_chip_ident, &chip);
|
||||
err = v4l2_device_call_until_err(v4l2_dev, 0, core, g_std, &norm);
|
||||
|
||||
Any error except -ENOIOCTLCMD will exit the loop with that error. If no
|
||||
errors (except -ENOIOCTLCMD) occurred, then 0 is returned.
|
||||
@ -394,6 +412,30 @@ controlled through GPIO pins. This distinction is only relevant when setting
|
||||
up the device, but once the subdev is registered it is completely transparent.
|
||||
|
||||
|
||||
In the asynchronous case subdevice probing can be invoked independently of the
|
||||
bridge driver availability. The subdevice driver then has to verify whether all
|
||||
the requirements for a successful probing are satisfied. This can include a
|
||||
check for a master clock availability. If any of the conditions aren't satisfied
|
||||
the driver might decide to return -EPROBE_DEFER to request further reprobing
|
||||
attempts. Once all conditions are met the subdevice shall be registered using
|
||||
the v4l2_async_register_subdev() function. Unregistration is performed using
|
||||
the v4l2_async_unregister_subdev() call. Subdevices registered this way are
|
||||
stored in a global list of subdevices, ready to be picked up by bridge drivers.
|
||||
|
||||
Bridge drivers in turn have to register a notifier object with an array of
|
||||
subdevice descriptors that the bridge device needs for its operation. This is
|
||||
performed using the v4l2_async_notifier_register() call. To unregister the
|
||||
notifier the driver has to call v4l2_async_notifier_unregister(). The former of
|
||||
the two functions takes two arguments: a pointer to struct v4l2_device and a
|
||||
pointer to struct v4l2_async_notifier. The latter contains a pointer to an array
|
||||
of pointers to subdevice descriptors of type struct v4l2_async_subdev type. The
|
||||
V4L2 core will then use these descriptors to match asynchronously registered
|
||||
subdevices to them. If a match is detected the .bound() notifier callback is
|
||||
called. After all subdevices have been located the .complete() callback is
|
||||
called. When a subdevice is removed from the system the .unbind() method is
|
||||
called. All three callbacks are optional.
|
||||
|
||||
|
||||
V4L2 sub-device userspace API
|
||||
-----------------------------
|
||||
|
||||
@ -575,9 +617,13 @@ of the video device exits.
|
||||
The default video_device_release() callback just calls kfree to free the
|
||||
allocated memory.
|
||||
|
||||
There is also a video_device_release_empty() function that does nothing
|
||||
(is empty) and can be used if the struct is embedded and there is nothing
|
||||
to do when it is released.
|
||||
|
||||
You should also set these fields:
|
||||
|
||||
- v4l2_dev: set to the v4l2_device parent device.
|
||||
- v4l2_dev: must be set to the v4l2_device parent device.
|
||||
|
||||
- name: set to something descriptive and unique.
|
||||
|
||||
@ -614,15 +660,16 @@ You should also set these fields:
|
||||
If you want to have a separate priority state per (group of) device node(s),
|
||||
then you can point it to your own struct v4l2_prio_state.
|
||||
|
||||
- parent: you only set this if v4l2_device was registered with NULL as
|
||||
- dev_parent: you only set this if v4l2_device was registered with NULL as
|
||||
the parent device struct. This only happens in cases where one hardware
|
||||
device has multiple PCI devices that all share the same v4l2_device core.
|
||||
|
||||
The cx88 driver is an example of this: one core v4l2_device struct, but
|
||||
it is used by both an raw video PCI device (cx8800) and a MPEG PCI device
|
||||
(cx8802). Since the v4l2_device cannot be associated with a particular
|
||||
PCI device it is setup without a parent device. But when the struct
|
||||
video_device is setup you do know which parent PCI device to use.
|
||||
it is used by both a raw video PCI device (cx8800) and a MPEG PCI device
|
||||
(cx8802). Since the v4l2_device cannot be associated with two PCI devices
|
||||
at the same time it is setup without a parent device. But when the struct
|
||||
video_device is initialized you *do* know which parent PCI device to use and
|
||||
so you set dev_device to the correct PCI device.
|
||||
|
||||
- flags: optional. Set to V4L2_FL_USE_FH_PRIO if you want to let the framework
|
||||
handle the VIDIOC_G/S_PRIORITY ioctls. This requires that you use struct
|
||||
@ -1061,3 +1108,29 @@ available event type is 'class base + 1'.
|
||||
|
||||
An example on how the V4L2 events may be used can be found in the OMAP
|
||||
3 ISP driver (drivers/media/platform/omap3isp).
|
||||
|
||||
|
||||
V4L2 clocks
|
||||
-----------
|
||||
|
||||
Many subdevices, like camera sensors, TV decoders and encoders, need a clock
|
||||
signal to be supplied by the system. Often this clock is supplied by the
|
||||
respective bridge device. The Linux kernel provides a Common Clock Framework for
|
||||
this purpose. However, it is not (yet) available on all architectures. Besides,
|
||||
the nature of the multi-functional (clock, data + synchronisation, I2C control)
|
||||
connection of subdevices to the system might impose special requirements on the
|
||||
clock API usage. E.g. V4L2 has to support clock provider driver unregistration
|
||||
while a subdevice driver is holding a reference to the clock. For these reasons
|
||||
a V4L2 clock helper API has been developed and is provided to bridge and
|
||||
subdevice drivers.
|
||||
|
||||
The API consists of two parts: two functions to register and unregister a V4L2
|
||||
clock source: v4l2_clk_register() and v4l2_clk_unregister() and calls to control
|
||||
a clock object, similar to the respective generic clock API calls:
|
||||
v4l2_clk_get(), v4l2_clk_put(), v4l2_clk_enable(), v4l2_clk_disable(),
|
||||
v4l2_clk_get_rate(), and v4l2_clk_set_rate(). Clock suppliers have to provide
|
||||
clock operations that will be called when clock users invoke respective API
|
||||
methods.
|
||||
|
||||
It is expected that once the CCF becomes available on all relevant
|
||||
architectures this API will be removed.
|
||||
|
@ -194,14 +194,6 @@ reset: Watchdog Interrupt/Reset Mode. 0 = interrupt, 1 = reset
|
||||
nowayout: Watchdog cannot be stopped once started
|
||||
(default=kernel config parameter)
|
||||
-------------------------------------------------
|
||||
mpcore_wdt:
|
||||
mpcore_margin: MPcore timer margin in seconds.
|
||||
(0 < mpcore_margin < 65536, default=60)
|
||||
nowayout: Watchdog cannot be stopped once started
|
||||
(default=kernel config parameter)
|
||||
mpcore_noboot: MPcore watchdog action, set to 1 to ignore reboots,
|
||||
0 to reboot (default=0
|
||||
-------------------------------------------------
|
||||
mv64x60_wdt:
|
||||
nowayout: Watchdog cannot be stopped once started
|
||||
(default=kernel config parameter)
|
||||
|
@ -247,7 +247,6 @@ i2c_client 结构体,i2c_set_clientdata() 函数可用于保存一个 v4l2_sub
|
||||
这些结构体定义如下:
|
||||
|
||||
struct v4l2_subdev_core_ops {
|
||||
int (*g_chip_ident)(struct v4l2_subdev *sd, struct v4l2_dbg_chip_ident *chip);
|
||||
int (*log_status)(struct v4l2_subdev *sd);
|
||||
int (*init)(struct v4l2_subdev *sd, u32 val);
|
||||
...
|
||||
@ -337,24 +336,24 @@ subdev->dev 域就指向了 v4l2_device。
|
||||
|
||||
注册之设备后,可通过以下方式直接调用其操作函数:
|
||||
|
||||
err = sd->ops->core->g_chip_ident(sd, &chip);
|
||||
err = sd->ops->core->g_std(sd, &norm);
|
||||
|
||||
但使用如下宏会比较容易且合适:
|
||||
|
||||
err = v4l2_subdev_call(sd, core, g_chip_ident, &chip);
|
||||
err = v4l2_subdev_call(sd, core, g_std, &norm);
|
||||
|
||||
这个宏将会做 NULL 指针检查,如果 subdev 为 NULL,则返回-ENODEV;如果
|
||||
subdev->core 或 subdev->core->g_chip_ident 为 NULL,则返回 -ENOIOCTLCMD;
|
||||
否则将返回 subdev->ops->core->g_chip_ident ops 调用的实际结果。
|
||||
subdev->core 或 subdev->core->g_std 为 NULL,则返回 -ENOIOCTLCMD;
|
||||
否则将返回 subdev->ops->core->g_std ops 调用的实际结果。
|
||||
|
||||
有时也可能同时调用所有或一系列子设备的某个操作函数:
|
||||
|
||||
v4l2_device_call_all(v4l2_dev, 0, core, g_chip_ident, &chip);
|
||||
v4l2_device_call_all(v4l2_dev, 0, core, g_std, &norm);
|
||||
|
||||
任何不支持此操作的子设备都会被跳过,并忽略错误返回值。但如果你需要
|
||||
检查出错码,则可使用如下函数:
|
||||
|
||||
err = v4l2_device_call_until_err(v4l2_dev, 0, core, g_chip_ident, &chip);
|
||||
err = v4l2_device_call_until_err(v4l2_dev, 0, core, g_std, &norm);
|
||||
|
||||
除 -ENOIOCTLCMD 外的任何错误都会跳出循环并返回错误值。如果(除 -ENOIOCTLCMD
|
||||
外)没有错误发生,则返回 0。
|
||||
|
80
MAINTAINERS
80
MAINTAINERS
@ -1165,15 +1165,6 @@ L: linux-media@vger.kernel.org
|
||||
S: Maintained
|
||||
F: drivers/media/platform/s5p-g2d/
|
||||
|
||||
ARM/SAMSUNG S5P SERIES FIMC SUPPORT
|
||||
M: Kyungmin Park <kyungmin.park@samsung.com>
|
||||
M: Sylwester Nawrocki <s.nawrocki@samsung.com>
|
||||
L: linux-arm-kernel@lists.infradead.org
|
||||
L: linux-media@vger.kernel.org
|
||||
S: Maintained
|
||||
F: arch/arm/plat-samsung/include/plat/*fimc*
|
||||
F: drivers/media/platform/s5p-fimc/
|
||||
|
||||
ARM/SAMSUNG S5P SERIES Multi Format Codec (MFC) SUPPORT
|
||||
M: Kyungmin Park <kyungmin.park@samsung.com>
|
||||
M: Kamil Debski <k.debski@samsung.com>
|
||||
@ -1595,7 +1586,7 @@ F: include/net/ax25.h
|
||||
F: net/ax25/
|
||||
|
||||
AZ6007 DVB DRIVER
|
||||
M: Mauro Carvalho Chehab <mchehab@redhat.com>
|
||||
M: Mauro Carvalho Chehab <m.chehab@samsung.com>
|
||||
L: linux-media@vger.kernel.org
|
||||
W: http://linuxtv.org
|
||||
T: git git://linuxtv.org/media_tree.git
|
||||
@ -1880,7 +1871,7 @@ F: Documentation/filesystems/btrfs.txt
|
||||
F: fs/btrfs/
|
||||
|
||||
BTTV VIDEO4LINUX DRIVER
|
||||
M: Mauro Carvalho Chehab <mchehab@redhat.com>
|
||||
M: Mauro Carvalho Chehab <m.chehab@samsung.com>
|
||||
L: linux-media@vger.kernel.org
|
||||
W: http://linuxtv.org
|
||||
T: git git://linuxtv.org/media_tree.git
|
||||
@ -2368,7 +2359,7 @@ F: drivers/media/common/cx2341x*
|
||||
F: include/media/cx2341x*
|
||||
|
||||
CX88 VIDEO4LINUX DRIVER
|
||||
M: Mauro Carvalho Chehab <mchehab@redhat.com>
|
||||
M: Mauro Carvalho Chehab <m.chehab@samsung.com>
|
||||
L: linux-media@vger.kernel.org
|
||||
W: http://linuxtv.org
|
||||
T: git git://linuxtv.org/media_tree.git
|
||||
@ -2990,7 +2981,7 @@ S: Maintained
|
||||
F: drivers/edac/e7xxx_edac.c
|
||||
|
||||
EDAC-GHES
|
||||
M: Mauro Carvalho Chehab <mchehab@redhat.com>
|
||||
M: Mauro Carvalho Chehab <m.chehab@samsung.com>
|
||||
L: linux-edac@vger.kernel.org
|
||||
W: bluesmoke.sourceforge.net
|
||||
S: Maintained
|
||||
@ -3018,21 +3009,21 @@ S: Maintained
|
||||
F: drivers/edac/i5000_edac.c
|
||||
|
||||
EDAC-I5400
|
||||
M: Mauro Carvalho Chehab <mchehab@redhat.com>
|
||||
M: Mauro Carvalho Chehab <m.chehab@samsung.com>
|
||||
L: linux-edac@vger.kernel.org
|
||||
W: bluesmoke.sourceforge.net
|
||||
S: Maintained
|
||||
F: drivers/edac/i5400_edac.c
|
||||
|
||||
EDAC-I7300
|
||||
M: Mauro Carvalho Chehab <mchehab@redhat.com>
|
||||
M: Mauro Carvalho Chehab <m.chehab@samsung.com>
|
||||
L: linux-edac@vger.kernel.org
|
||||
W: bluesmoke.sourceforge.net
|
||||
S: Maintained
|
||||
F: drivers/edac/i7300_edac.c
|
||||
|
||||
EDAC-I7CORE
|
||||
M: Mauro Carvalho Chehab <mchehab@redhat.com>
|
||||
M: Mauro Carvalho Chehab <m.chehab@samsung.com>
|
||||
L: linux-edac@vger.kernel.org
|
||||
W: bluesmoke.sourceforge.net
|
||||
S: Maintained
|
||||
@ -3061,7 +3052,7 @@ S: Maintained
|
||||
F: drivers/edac/r82600_edac.c
|
||||
|
||||
EDAC-SBRIDGE
|
||||
M: Mauro Carvalho Chehab <mchehab@redhat.com>
|
||||
M: Mauro Carvalho Chehab <m.chehab@samsung.com>
|
||||
L: linux-edac@vger.kernel.org
|
||||
W: bluesmoke.sourceforge.net
|
||||
S: Maintained
|
||||
@ -3121,7 +3112,7 @@ S: Maintained
|
||||
F: drivers/net/ethernet/ibm/ehea/
|
||||
|
||||
EM28XX VIDEO4LINUX DRIVER
|
||||
M: Mauro Carvalho Chehab <mchehab@redhat.com>
|
||||
M: Mauro Carvalho Chehab <m.chehab@samsung.com>
|
||||
L: linux-media@vger.kernel.org
|
||||
W: http://linuxtv.org
|
||||
T: git git://linuxtv.org/media_tree.git
|
||||
@ -5317,7 +5308,7 @@ S: Maintained
|
||||
F: drivers/media/radio/radio-maxiradio*
|
||||
|
||||
MEDIA INPUT INFRASTRUCTURE (V4L/DVB)
|
||||
M: Mauro Carvalho Chehab <mchehab@redhat.com>
|
||||
M: Mauro Carvalho Chehab <m.chehab@samsung.com>
|
||||
P: LinuxTV.org Project
|
||||
L: linux-media@vger.kernel.org
|
||||
W: http://linuxtv.org
|
||||
@ -5396,6 +5387,12 @@ F: drivers/mtd/
|
||||
F: include/linux/mtd/
|
||||
F: include/uapi/mtd/
|
||||
|
||||
MEN A21 WATCHDOG DRIVER
|
||||
M: Johannes Thumshirn <johannes.thumshirn@men.de>
|
||||
L: linux-watchdog@vger.kernel.org
|
||||
S: Supported
|
||||
F: drivers/watchdog/mena21_wdt.c
|
||||
|
||||
METAG ARCHITECTURE
|
||||
M: James Hogan <james.hogan@imgtec.com>
|
||||
S: Supported
|
||||
@ -5439,6 +5436,28 @@ W: http://linuxtv.org
|
||||
S: Odd Fixes
|
||||
F: drivers/media/radio/radio-miropcm20*
|
||||
|
||||
Mellanox MLX5 core VPI driver
|
||||
M: Eli Cohen <eli@mellanox.com>
|
||||
L: netdev@vger.kernel.org
|
||||
L: linux-rdma@vger.kernel.org
|
||||
W: http://www.mellanox.com
|
||||
Q: http://patchwork.ozlabs.org/project/netdev/list/
|
||||
Q: http://patchwork.kernel.org/project/linux-rdma/list/
|
||||
T: git://openfabrics.org/~eli/connect-ib.git
|
||||
S: Supported
|
||||
F: drivers/net/ethernet/mellanox/mlx5/core/
|
||||
F: include/linux/mlx5/
|
||||
|
||||
Mellanox MLX5 IB driver
|
||||
M: Eli Cohen <eli@mellanox.com>
|
||||
L: linux-rdma@vger.kernel.org
|
||||
W: http://www.mellanox.com
|
||||
Q: http://patchwork.kernel.org/project/linux-rdma/list/
|
||||
T: git://openfabrics.org/~eli/connect-ib.git
|
||||
S: Supported
|
||||
F: include/linux/mlx5/
|
||||
F: drivers/infiniband/hw/mlx5/
|
||||
|
||||
MODULE SUPPORT
|
||||
M: Rusty Russell <rusty@rustcorp.com.au>
|
||||
S: Maintained
|
||||
@ -6662,10 +6681,12 @@ F: Documentation/networking/LICENSE.qla3xxx
|
||||
F: drivers/net/ethernet/qlogic/qla3xxx.*
|
||||
|
||||
QLOGIC QLCNIC (1/10)Gb ETHERNET DRIVER
|
||||
M: Himanshu Madhani <himanshu.madhani@qlogic.com>
|
||||
M: Rajesh Borundia <rajesh.borundia@qlogic.com>
|
||||
M: Shahed Shaikh <shahed.shaikh@qlogic.com>
|
||||
M: Jitendra Kalsaria <jitendra.kalsaria@qlogic.com>
|
||||
M: Sony Chacko <sony.chacko@qlogic.com>
|
||||
M: Sucheta Chakraborty <sucheta.chakraborty@qlogic.com>
|
||||
M: linux-driver@qlogic.com
|
||||
L: netdev@vger.kernel.org
|
||||
S: Supported
|
||||
@ -7013,7 +7034,7 @@ S: Odd Fixes
|
||||
F: drivers/media/i2c/saa6588*
|
||||
|
||||
SAA7134 VIDEO4LINUX DRIVER
|
||||
M: Mauro Carvalho Chehab <mchehab@redhat.com>
|
||||
M: Mauro Carvalho Chehab <m.chehab@samsung.com>
|
||||
L: linux-media@vger.kernel.org
|
||||
W: http://linuxtv.org
|
||||
T: git git://linuxtv.org/media_tree.git
|
||||
@ -7058,6 +7079,15 @@ F: drivers/regulator/s5m*.c
|
||||
F: drivers/rtc/rtc-sec.c
|
||||
F: include/linux/mfd/samsung/
|
||||
|
||||
SAMSUNG S5P/EXYNOS4 SOC SERIES CAMERA SUBSYSTEM DRIVERS
|
||||
M: Kyungmin Park <kyungmin.park@samsung.com>
|
||||
M: Sylwester Nawrocki <s.nawrocki@samsung.com>
|
||||
L: linux-media@vger.kernel.org
|
||||
Q: https://patchwork.linuxtv.org/project/linux-media/list/
|
||||
S: Supported
|
||||
F: drivers/media/platform/exynos4-is/
|
||||
F: include/media/s5p_fimc.h
|
||||
|
||||
SAMSUNG S3C24XX/S3C64XX SOC SERIES CAMIF DRIVER
|
||||
M: Sylwester Nawrocki <sylvester.nawrocki@gmail.com>
|
||||
L: linux-media@vger.kernel.org
|
||||
@ -7375,7 +7405,7 @@ S: Odd Fixes
|
||||
F: drivers/media/radio/radio-si4713.h
|
||||
|
||||
SIANO DVB DRIVER
|
||||
M: Mauro Carvalho Chehab <mchehab@redhat.com>
|
||||
M: Mauro Carvalho Chehab <m.chehab@samsung.com>
|
||||
L: linux-media@vger.kernel.org
|
||||
W: http://linuxtv.org
|
||||
T: git git://linuxtv.org/media_tree.git
|
||||
@ -8080,7 +8110,7 @@ S: Maintained
|
||||
F: drivers/media/i2c/tda9840*
|
||||
|
||||
TEA5761 TUNER DRIVER
|
||||
M: Mauro Carvalho Chehab <mchehab@redhat.com>
|
||||
M: Mauro Carvalho Chehab <m.chehab@samsung.com>
|
||||
L: linux-media@vger.kernel.org
|
||||
W: http://linuxtv.org
|
||||
T: git git://linuxtv.org/media_tree.git
|
||||
@ -8088,7 +8118,7 @@ S: Odd fixes
|
||||
F: drivers/media/tuners/tea5761.*
|
||||
|
||||
TEA5767 TUNER DRIVER
|
||||
M: Mauro Carvalho Chehab <mchehab@redhat.com>
|
||||
M: Mauro Carvalho Chehab <m.chehab@samsung.com>
|
||||
L: linux-media@vger.kernel.org
|
||||
W: http://linuxtv.org
|
||||
T: git git://linuxtv.org/media_tree.git
|
||||
@ -8327,7 +8357,7 @@ F: include/linux/shmem_fs.h
|
||||
F: mm/shmem.c
|
||||
|
||||
TM6000 VIDEO4LINUX DRIVER
|
||||
M: Mauro Carvalho Chehab <mchehab@redhat.com>
|
||||
M: Mauro Carvalho Chehab <m.chehab@samsung.com>
|
||||
L: linux-media@vger.kernel.org
|
||||
W: http://linuxtv.org
|
||||
T: git git://linuxtv.org/media_tree.git
|
||||
@ -9184,7 +9214,7 @@ S: Maintained
|
||||
F: arch/x86/kernel/cpu/mcheck/*
|
||||
|
||||
XC2028/3028 TUNER DRIVER
|
||||
M: Mauro Carvalho Chehab <mchehab@redhat.com>
|
||||
M: Mauro Carvalho Chehab <m.chehab@samsung.com>
|
||||
L: linux-media@vger.kernel.org
|
||||
W: http://linuxtv.org
|
||||
T: git git://linuxtv.org/media_tree.git
|
||||
|
6
Makefile
6
Makefile
@ -1,8 +1,8 @@
|
||||
VERSION = 3
|
||||
PATCHLEVEL = 10
|
||||
PATCHLEVEL = 11
|
||||
SUBLEVEL = 0
|
||||
EXTRAVERSION =
|
||||
NAME = Unicycling Gorilla
|
||||
EXTRAVERSION = -rc2
|
||||
NAME = Linux for Workgroups
|
||||
|
||||
# *DOCUMENTATION*
|
||||
# To see a list of typical targets execute "make help"
|
||||
|
@ -32,7 +32,7 @@
|
||||
#define O_SYNC (__O_SYNC|O_DSYNC)
|
||||
|
||||
#define O_PATH 040000000
|
||||
#define O_TMPFILE 0100000000
|
||||
#define __O_TMPFILE 0100000000
|
||||
|
||||
#define F_GETLK 7
|
||||
#define F_SETLK 8
|
||||
|
@ -81,6 +81,6 @@
|
||||
|
||||
#define SO_SELECT_ERR_QUEUE 45
|
||||
|
||||
#define SO_LL 46
|
||||
#define SO_BUSY_POLL 46
|
||||
|
||||
#endif /* _UAPI_ASM_SOCKET_H */
|
||||
|
@ -116,7 +116,7 @@ wait_boot_cpu_to_stop(int cpuid)
|
||||
/*
|
||||
* Where secondaries begin a life of C.
|
||||
*/
|
||||
void __cpuinit
|
||||
void
|
||||
smp_callin(void)
|
||||
{
|
||||
int cpuid = hard_smp_processor_id();
|
||||
@ -194,7 +194,7 @@ wait_for_txrdy (unsigned long cpumask)
|
||||
* Send a message to a secondary's console. "START" is one such
|
||||
* interesting message. ;-)
|
||||
*/
|
||||
static void __cpuinit
|
||||
static void
|
||||
send_secondary_console_msg(char *str, int cpuid)
|
||||
{
|
||||
struct percpu_struct *cpu;
|
||||
@ -285,7 +285,7 @@ recv_secondary_console_msg(void)
|
||||
/*
|
||||
* Convince the console to have a secondary cpu begin execution.
|
||||
*/
|
||||
static int __cpuinit
|
||||
static int
|
||||
secondary_cpu_start(int cpuid, struct task_struct *idle)
|
||||
{
|
||||
struct percpu_struct *cpu;
|
||||
@ -356,7 +356,7 @@ secondary_cpu_start(int cpuid, struct task_struct *idle)
|
||||
/*
|
||||
* Bring one cpu online.
|
||||
*/
|
||||
static int __cpuinit
|
||||
static int
|
||||
smp_boot_one_cpu(int cpuid, struct task_struct *idle)
|
||||
{
|
||||
unsigned long timeout;
|
||||
@ -472,7 +472,7 @@ smp_prepare_boot_cpu(void)
|
||||
{
|
||||
}
|
||||
|
||||
int __cpuinit
|
||||
int
|
||||
__cpu_up(unsigned int cpu, struct task_struct *tidle)
|
||||
{
|
||||
smp_boot_one_cpu(cpu, tidle);
|
||||
|
@ -32,7 +32,7 @@
|
||||
|
||||
static int opDEC_fix;
|
||||
|
||||
static void __cpuinit
|
||||
static void
|
||||
opDEC_check(void)
|
||||
{
|
||||
__asm__ __volatile__ (
|
||||
@ -1059,7 +1059,7 @@ give_sigbus:
|
||||
return;
|
||||
}
|
||||
|
||||
void __cpuinit
|
||||
void
|
||||
trap_init(void)
|
||||
{
|
||||
/* Tell PAL-code what global pointer we want in the kernel. */
|
||||
|
@ -1316,7 +1316,7 @@ config ARM_ERRATA_754327
|
||||
|
||||
config ARM_ERRATA_364296
|
||||
bool "ARM errata: Possible cache data corruption with hit-under-miss enabled"
|
||||
depends on CPU_V6 && !SMP
|
||||
depends on CPU_V6
|
||||
help
|
||||
This options enables the workaround for the 364296 ARM1136
|
||||
r0p2 erratum (possible cache data corruption with
|
||||
|
@ -510,6 +510,16 @@ choice
|
||||
Say Y here if you want the debug print routines to direct
|
||||
their output to the uart1 port on SiRFmarco devices.
|
||||
|
||||
config DEBUG_STI_UART
|
||||
depends on ARCH_STI
|
||||
bool "Use StiH415/416 ASC for low-level debug"
|
||||
help
|
||||
Say Y here if you want kernel low-level debugging support
|
||||
on StiH415/416 based platforms like B2000, B2020.
|
||||
It support UART2 and SBC_UART1.
|
||||
|
||||
If unsure, say N.
|
||||
|
||||
config DEBUG_U300_UART
|
||||
bool "Kernel low-level debugging messages via U300 UART0"
|
||||
depends on ARCH_U300
|
||||
@ -564,16 +574,6 @@ choice
|
||||
This option selects UART0 on VIA/Wondermedia System-on-a-chip
|
||||
devices, including VT8500, WM8505, WM8650 and WM8850.
|
||||
|
||||
config DEBUG_STI_UART
|
||||
depends on ARCH_STI
|
||||
bool "Use StiH415/416 ASC for low-level debug"
|
||||
help
|
||||
Say Y here if you want kernel low-level debugging support
|
||||
on StiH415/416 based platforms like B2000, B2020.
|
||||
It support UART2 and SBC_UART1.
|
||||
|
||||
If unsure, say N.
|
||||
|
||||
config DEBUG_LL_UART_NONE
|
||||
bool "No low-level debugging UART"
|
||||
depends on !ARCH_MULTIPLATFORM
|
||||
|
@ -828,6 +828,7 @@
|
||||
regulator-name = "vdd_vbus_wup1";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
enable-active-high;
|
||||
gpio = <&gpio 24 0>; /* PD0 */
|
||||
};
|
||||
};
|
||||
|
@ -410,6 +410,7 @@
|
||||
regulator-name = "usb1_vbus";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
enable-active-high;
|
||||
gpio = <&gpio 170 0>; /* PV2 */
|
||||
};
|
||||
};
|
||||
|
@ -586,6 +586,7 @@
|
||||
regulator-name = "vbus1";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
enable-active-high;
|
||||
gpio = <&tca6416 0 0>; /* GPIO_PMU0 */
|
||||
};
|
||||
|
||||
@ -595,6 +596,7 @@
|
||||
regulator-name = "vbus3";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
enable-active-high;
|
||||
gpio = <&tca6416 1 0>; /* GPIO_PMU1 */
|
||||
};
|
||||
};
|
||||
|
@ -19,7 +19,7 @@
|
||||
#include <asm/smp.h>
|
||||
#include <asm/smp_plat.h>
|
||||
|
||||
static int __cpuinit mcpm_boot_secondary(unsigned int cpu, struct task_struct *idle)
|
||||
static int mcpm_boot_secondary(unsigned int cpu, struct task_struct *idle)
|
||||
{
|
||||
unsigned int mpidr, pcpu, pcluster, ret;
|
||||
extern void secondary_startup(void);
|
||||
@ -40,7 +40,7 @@ static int __cpuinit mcpm_boot_secondary(unsigned int cpu, struct task_struct *i
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void __cpuinit mcpm_secondary_init(unsigned int cpu)
|
||||
static void mcpm_secondary_init(unsigned int cpu)
|
||||
{
|
||||
mcpm_cpu_powered_up();
|
||||
}
|
||||
|
@ -1,88 +1,167 @@
|
||||
CONFIG_EXPERIMENTAL=y
|
||||
CONFIG_IRQ_DOMAIN_DEBUG=y
|
||||
CONFIG_NO_HZ=y
|
||||
CONFIG_HIGH_RES_TIMERS=y
|
||||
CONFIG_BLK_DEV_INITRD=y
|
||||
CONFIG_ARCH_MVEBU=y
|
||||
CONFIG_MACH_ARMADA_370=y
|
||||
CONFIG_ARCH_SIRF=y
|
||||
CONFIG_MACH_ARMADA_XP=y
|
||||
CONFIG_ARCH_BCM=y
|
||||
CONFIG_GPIO_PCA953X=y
|
||||
CONFIG_ARCH_HIGHBANK=y
|
||||
CONFIG_ARCH_KEYSTONE=y
|
||||
CONFIG_ARCH_MXC=y
|
||||
CONFIG_MACH_IMX51_DT=y
|
||||
CONFIG_SOC_IMX53=y
|
||||
CONFIG_SOC_IMX6Q=y
|
||||
CONFIG_SOC_IMX6SL=y
|
||||
CONFIG_SOC_VF610=y
|
||||
CONFIG_ARCH_OMAP3=y
|
||||
CONFIG_ARCH_OMAP4=y
|
||||
CONFIG_SOC_OMAP5=y
|
||||
CONFIG_SOC_AM33XX=y
|
||||
CONFIG_SOC_AM43XX=y
|
||||
CONFIG_ARCH_ROCKCHIP=y
|
||||
CONFIG_ARCH_SOCFPGA=y
|
||||
CONFIG_ARCH_SUNXI=y
|
||||
CONFIG_ARCH_WM8850=y
|
||||
# CONFIG_ARCH_VEXPRESS_CORTEX_A5_A9_ERRATA is not set
|
||||
CONFIG_ARCH_ZYNQ=y
|
||||
CONFIG_ARM_ERRATA_754322=y
|
||||
CONFIG_PLAT_SPEAR=y
|
||||
CONFIG_ARCH_SPEAR13XX=y
|
||||
CONFIG_MACH_SPEAR1310=y
|
||||
CONFIG_MACH_SPEAR1340=y
|
||||
CONFIG_ARCH_STI=y
|
||||
CONFIG_ARCH_SUNXI=y
|
||||
CONFIG_ARCH_SIRF=y
|
||||
CONFIG_ARCH_TEGRA=y
|
||||
CONFIG_ARCH_TEGRA_2x_SOC=y
|
||||
CONFIG_ARCH_TEGRA_3x_SOC=y
|
||||
CONFIG_ARCH_TEGRA_114_SOC=y
|
||||
CONFIG_TEGRA_PCI=y
|
||||
CONFIG_TEGRA_EMC_SCALING_ENABLE=y
|
||||
CONFIG_ARCH_U8500=y
|
||||
CONFIG_MACH_SNOWBALL=y
|
||||
CONFIG_MACH_UX500_DT=y
|
||||
CONFIG_ARCH_VEXPRESS=y
|
||||
CONFIG_ARCH_VEXPRESS_CA9X4=y
|
||||
CONFIG_ARCH_VIRT=y
|
||||
CONFIG_ARCH_WM8850=y
|
||||
CONFIG_ARCH_ZYNQ=y
|
||||
CONFIG_SMP=y
|
||||
CONFIG_ARM_ARCH_TIMER=y
|
||||
CONFIG_AEABI=y
|
||||
CONFIG_HIGHMEM=y
|
||||
CONFIG_HIGHPTE=y
|
||||
CONFIG_ARM_APPENDED_DTB=y
|
||||
CONFIG_VFP=y
|
||||
CONFIG_NEON=y
|
||||
CONFIG_NET=y
|
||||
CONFIG_UNIX=y
|
||||
CONFIG_INET=y
|
||||
CONFIG_IP_PNP=y
|
||||
CONFIG_IP_PNP_DHCP=y
|
||||
CONFIG_DEVTMPFS=y
|
||||
CONFIG_DEVTMPFS_MOUNT=y
|
||||
CONFIG_BLK_DEV_SD=y
|
||||
CONFIG_ATA=y
|
||||
CONFIG_SATA_AHCI_PLATFORM=y
|
||||
CONFIG_SATA_HIGHBANK=y
|
||||
CONFIG_SATA_MV=y
|
||||
CONFIG_SATA_AHCI_PLATFORM=y
|
||||
CONFIG_NETDEVICES=y
|
||||
CONFIG_SUN4I_EMAC=y
|
||||
CONFIG_NET_CALXEDA_XGMAC=y
|
||||
CONFIG_SMSC911X=y
|
||||
CONFIG_STMMAC_ETH=y
|
||||
CONFIG_SERIO_AMBAKMI=y
|
||||
CONFIG_MDIO_SUN4I=y
|
||||
CONFIG_KEYBOARD_SPEAR=y
|
||||
CONFIG_SERIO_AMBAKMI=y
|
||||
CONFIG_SERIAL_8250=y
|
||||
CONFIG_SERIAL_8250_CONSOLE=y
|
||||
CONFIG_SERIAL_8250_DW=y
|
||||
CONFIG_KEYBOARD_SPEAR=y
|
||||
CONFIG_SERIAL_AMBA_PL011=y
|
||||
CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
|
||||
CONFIG_SERIAL_OF_PLATFORM=y
|
||||
CONFIG_SERIAL_SIRFSOC=y
|
||||
CONFIG_SERIAL_SIRFSOC_CONSOLE=y
|
||||
CONFIG_SERIAL_TEGRA=y
|
||||
CONFIG_SERIAL_IMX=y
|
||||
CONFIG_SERIAL_IMX_CONSOLE=y
|
||||
CONFIG_SERIAL_VT8500=y
|
||||
CONFIG_SERIAL_VT8500_CONSOLE=y
|
||||
CONFIG_SERIAL_OF_PLATFORM=y
|
||||
CONFIG_SERIAL_OMAP=y
|
||||
CONFIG_SERIAL_OMAP_CONSOLE=y
|
||||
CONFIG_SERIAL_XILINX_PS_UART=y
|
||||
CONFIG_SERIAL_XILINX_PS_UART_CONSOLE=y
|
||||
CONFIG_IPMI_HANDLER=y
|
||||
CONFIG_IPMI_SI=y
|
||||
CONFIG_I2C=y
|
||||
CONFIG_SERIAL_FSL_LPUART=y
|
||||
CONFIG_SERIAL_FSL_LPUART_CONSOLE=y
|
||||
CONFIG_I2C_DESIGNWARE_PLATFORM=y
|
||||
CONFIG_I2C_SIRF=y
|
||||
CONFIG_I2C_TEGRA=y
|
||||
CONFIG_SPI=y
|
||||
CONFIG_SPI_PL022=y
|
||||
CONFIG_SPI_SIRF=y
|
||||
CONFIG_GPIO_PL061=y
|
||||
CONFIG_FB=y
|
||||
CONFIG_SPI_TEGRA114=y
|
||||
CONFIG_SPI_TEGRA20_SLINK=y
|
||||
CONFIG_PINCTRL_SINGLE=y
|
||||
CONFIG_GPIO_GENERIC_PLATFORM=y
|
||||
CONFIG_GPIO_TWL4030=y
|
||||
CONFIG_REGULATOR_GPIO=y
|
||||
CONFIG_REGULATOR_AB8500=y
|
||||
CONFIG_REGULATOR_TPS51632=y
|
||||
CONFIG_REGULATOR_TPS62360=y
|
||||
CONFIG_REGULATOR_TWL4030=y
|
||||
CONFIG_REGULATOR_VEXPRESS=y
|
||||
CONFIG_DRM=y
|
||||
CONFIG_TEGRA_HOST1X=y
|
||||
CONFIG_DRM_TEGRA=y
|
||||
CONFIG_FB_ARMCLCD=y
|
||||
CONFIG_FB_WM8505=y
|
||||
CONFIG_FRAMEBUFFER_CONSOLE=y
|
||||
CONFIG_FB_SIMPLE=y
|
||||
CONFIG_USB=y
|
||||
CONFIG_USB_XHCI_HCD=y
|
||||
CONFIG_USB_EHCI_HCD=y
|
||||
CONFIG_USB_EHCI_MXC=y
|
||||
CONFIG_USB_EHCI_TEGRA=y
|
||||
CONFIG_USB_EHCI_HCD_PLATFORM=y
|
||||
CONFIG_USB_ISP1760_HCD=y
|
||||
CONFIG_USB_STORAGE=y
|
||||
CONFIG_AB8500_USB=y
|
||||
CONFIG_NOP_USB_XCEIV=y
|
||||
CONFIG_OMAP_USB2=y
|
||||
CONFIG_OMAP_USB3=y
|
||||
CONFIG_SAMSUNG_USB2PHY=y
|
||||
CONFIG_SAMSUNG_USB3PHY=y
|
||||
CONFIG_USB_GPIO_VBUS=y
|
||||
CONFIG_USB_ISP1301=y
|
||||
CONFIG_USB_MXS_PHY=y
|
||||
CONFIG_MMC=y
|
||||
CONFIG_MMC_ARMMMCI=y
|
||||
CONFIG_MMC_SDHCI=y
|
||||
CONFIG_MMC_SDHCI_PLTFM=y
|
||||
CONFIG_MMC_SDHCI_TEGRA=y
|
||||
CONFIG_MMC_SDHCI_SPEAR=y
|
||||
CONFIG_MMC_WMT=y
|
||||
CONFIG_MMC_OMAP=y
|
||||
CONFIG_MMC_OMAP_HS=y
|
||||
CONFIG_EDAC=y
|
||||
CONFIG_EDAC_MM_EDAC=y
|
||||
CONFIG_EDAC_HIGHBANK_MC=y
|
||||
CONFIG_EDAC_HIGHBANK_L2=y
|
||||
CONFIG_RTC_CLASS=y
|
||||
CONFIG_RTC_DRV_TWL4030=y
|
||||
CONFIG_RTC_DRV_PL031=y
|
||||
CONFIG_RTC_DRV_VT8500=y
|
||||
CONFIG_RTC_DRV_TEGRA=y
|
||||
CONFIG_DMADEVICES=y
|
||||
CONFIG_DW_DMAC=y
|
||||
CONFIG_TEGRA20_APB_DMA=y
|
||||
CONFIG_STE_DMA40=y
|
||||
CONFIG_SIRF_DMA=y
|
||||
CONFIG_TI_EDMA=y
|
||||
CONFIG_PL330_DMA=y
|
||||
CONFIG_IMX_SDMA=y
|
||||
CONFIG_IMX_DMA=y
|
||||
CONFIG_MXS_DMA=y
|
||||
CONFIG_DMA_OMAP=y
|
||||
CONFIG_PWM=y
|
||||
CONFIG_PWM_VT8500=y
|
||||
CONFIG_DMADEVICES=y
|
||||
CONFIG_PL330_DMA=y
|
||||
CONFIG_SIRF_DMA=y
|
||||
CONFIG_DW_DMAC=y
|
||||
CONFIG_EXT4_FS=y
|
||||
CONFIG_TMPFS=y
|
||||
CONFIG_NFS_FS=y
|
||||
CONFIG_NFS_V3_ACL=y
|
||||
CONFIG_NFS_V4=y
|
||||
CONFIG_ROOT_NFS=y
|
||||
CONFIG_PRINTK_TIME=y
|
||||
CONFIG_DEBUG_FS=y
|
||||
CONFIG_DEBUG_KERNEL=y
|
||||
CONFIG_LOCKUP_DETECTOR=y
|
||||
|
@ -22,6 +22,10 @@ CONFIG_MODULE_SRCVERSION_ALL=y
|
||||
# CONFIG_BLK_DEV_BSG is not set
|
||||
CONFIG_ARCH_MULTI_V6=y
|
||||
CONFIG_ARCH_OMAP2PLUS=y
|
||||
CONFIG_ARCH_OMAP2=y
|
||||
CONFIG_ARCH_OMAP3=y
|
||||
CONFIG_ARCH_OMAP4=y
|
||||
CONFIG_SOC_AM33XX=y
|
||||
CONFIG_OMAP_RESET_CLOCKS=y
|
||||
CONFIG_OMAP_MUX_DEBUG=y
|
||||
CONFIG_ARCH_VEXPRESS_CA9X4=y
|
||||
@ -34,6 +38,8 @@ CONFIG_NR_CPUS=2
|
||||
CONFIG_LEDS=y
|
||||
CONFIG_ZBOOT_ROM_TEXT=0x0
|
||||
CONFIG_ZBOOT_ROM_BSS=0x0
|
||||
CONFIG_ARM_APPENDED_DTB=y
|
||||
CONFIG_ARM_ATAG_DTB_COMPAT=y
|
||||
CONFIG_CMDLINE="root=/dev/mmcblk0p2 rootwait console=ttyO2,115200"
|
||||
CONFIG_KEXEC=y
|
||||
CONFIG_FPE_NWFPE=y
|
||||
@ -152,6 +158,13 @@ CONFIG_W1=y
|
||||
CONFIG_POWER_SUPPLY=y
|
||||
CONFIG_SENSORS_LM75=m
|
||||
CONFIG_WATCHDOG=y
|
||||
CONFIG_THERMAL=y
|
||||
CONFIG_THERMAL_HWMON=y
|
||||
CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
|
||||
CONFIG_THERMAL_GOV_FAIR_SHARE=y
|
||||
CONFIG_THERMAL_GOV_STEP_WISE=y
|
||||
CONFIG_THERMAL_GOV_USER_SPACE=y
|
||||
CONFIG_CPU_THERMAL=y
|
||||
CONFIG_OMAP_WATCHDOG=y
|
||||
CONFIG_TWL4030_WATCHDOG=y
|
||||
CONFIG_MFD_TPS65217=y
|
||||
@ -238,7 +251,13 @@ CONFIG_RTC_DRV_TWL92330=y
|
||||
CONFIG_RTC_DRV_TWL4030=y
|
||||
CONFIG_RTC_DRV_OMAP=y
|
||||
CONFIG_DMADEVICES=y
|
||||
CONFIG_TI_EDMA=y
|
||||
CONFIG_DMA_OMAP=y
|
||||
CONFIG_TI_SOC_THERMAL=y
|
||||
CONFIG_TI_THERMAL=y
|
||||
CONFIG_OMAP4_THERMAL=y
|
||||
CONFIG_OMAP5_THERMAL=y
|
||||
CONFIG_DRA752_THERMAL=y
|
||||
CONFIG_EXT2_FS=y
|
||||
CONFIG_EXT3_FS=y
|
||||
# CONFIG_EXT3_FS_XATTR is not set
|
||||
|
@ -61,7 +61,6 @@ CONFIG_GPIO_SYSFS=y
|
||||
CONFIG_GPIO_PL061=y
|
||||
# CONFIG_HWMON is not set
|
||||
CONFIG_WATCHDOG=y
|
||||
CONFIG_MPCORE_WATCHDOG=y
|
||||
# CONFIG_HID_SUPPORT is not set
|
||||
CONFIG_USB=y
|
||||
# CONFIG_USB_DEVICE_CLASS is not set
|
||||
|
@ -1,6 +1,8 @@
|
||||
CONFIG_EXPERIMENTAL=y
|
||||
CONFIG_HIGHMEM=y
|
||||
# CONFIG_SWAP is not set
|
||||
CONFIG_SYSVIPC=y
|
||||
CONFIG_NO_HZ=y
|
||||
CONFIG_HIGH_RES_TIMERS=y
|
||||
CONFIG_BLK_DEV_INITRD=y
|
||||
CONFIG_KALLSYMS_ALL=y
|
||||
CONFIG_MODULES=y
|
||||
@ -9,10 +11,7 @@ CONFIG_MODULE_UNLOAD=y
|
||||
CONFIG_ARCH_U8500=y
|
||||
CONFIG_MACH_HREFV60=y
|
||||
CONFIG_MACH_SNOWBALL=y
|
||||
CONFIG_MACH_U5500=y
|
||||
CONFIG_MACH_UX500_DT=y
|
||||
CONFIG_NO_HZ=y
|
||||
CONFIG_HIGH_RES_TIMERS=y
|
||||
CONFIG_SMP=y
|
||||
CONFIG_NR_CPUS=2
|
||||
CONFIG_PREEMPT=y
|
||||
@ -20,6 +19,7 @@ CONFIG_AEABI=y
|
||||
CONFIG_CMDLINE="root=/dev/ram0 console=ttyAMA2,115200n8"
|
||||
CONFIG_CPU_FREQ=y
|
||||
CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
|
||||
CONFIG_CPU_IDLE=y
|
||||
CONFIG_VFP=y
|
||||
CONFIG_NEON=y
|
||||
CONFIG_PM_RUNTIME=y
|
||||
@ -36,7 +36,6 @@ CONFIG_CAIF=y
|
||||
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
||||
CONFIG_BLK_DEV_RAM=y
|
||||
CONFIG_BLK_DEV_RAM_SIZE=65536
|
||||
CONFIG_AB8500_PWM=y
|
||||
CONFIG_SENSORS_BH1780=y
|
||||
CONFIG_NETDEVICES=y
|
||||
CONFIG_SMSC911X=y
|
||||
@ -60,35 +59,39 @@ CONFIG_VT_HW_CONSOLE_BINDING=y
|
||||
CONFIG_SERIAL_AMBA_PL011=y
|
||||
CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
|
||||
CONFIG_HW_RANDOM=y
|
||||
CONFIG_HW_RANDOM_NOMADIK=y
|
||||
CONFIG_SPI=y
|
||||
CONFIG_SPI_PL022=y
|
||||
CONFIG_GPIO_STMPE=y
|
||||
CONFIG_GPIO_TC3589X=y
|
||||
# CONFIG_POWER_SUPPLY is not set
|
||||
# CONFIG_AB8500_BM is not set
|
||||
# CONFIG_AB8500_BATTERY_THERM_ON_BATCTRL is not set
|
||||
CONFIG_THERMAL=y
|
||||
CONFIG_CPU_THERMAL=y
|
||||
CONFIG_WATCHDOG=y
|
||||
CONFIG_MFD_STMPE=y
|
||||
CONFIG_MFD_TC3589X=y
|
||||
CONFIG_AB5500_CORE=y
|
||||
CONFIG_AB8500_CORE=y
|
||||
CONFIG_REGULATOR=y
|
||||
CONFIG_REGULATOR_AB8500=y
|
||||
CONFIG_REGULATOR_FIXED_VOLTAGE=y
|
||||
CONFIG_REGULATOR_GPIO=y
|
||||
# CONFIG_HID_SUPPORT is not set
|
||||
CONFIG_USB_GADGET=y
|
||||
CONFIG_REGULATOR_AB8500=y
|
||||
CONFIG_SOUND=y
|
||||
CONFIG_SND=y
|
||||
CONFIG_SND_SOC=y
|
||||
CONFIG_SND_SOC_UX500=y
|
||||
CONFIG_SND_SOC_UX500_MACH_MOP500=y
|
||||
CONFIG_USB=y
|
||||
CONFIG_USB_MUSB_HDRC=y
|
||||
CONFIG_USB_MUSB_UX500=y
|
||||
CONFIG_USB_PHY=y
|
||||
CONFIG_AB8500_USB=y
|
||||
CONFIG_USB_GADGET=y
|
||||
CONFIG_USB_GADGET_MUSB_HDRC=y
|
||||
CONFIG_USB_ETH=m
|
||||
CONFIG_MMC=y
|
||||
CONFIG_MMC_CLKGATE=y
|
||||
CONFIG_MMC_UNSAFE_RESUME=y
|
||||
# CONFIG_MMC_BLOCK_BOUNCE is not set
|
||||
CONFIG_MMC_ARMMMCI=y
|
||||
CONFIG_NEW_LEDS=y
|
||||
CONFIG_LEDS_CLASS=y
|
||||
CONFIG_LEDS_LM3530=y
|
||||
CONFIG_LEDS_LP5521=y
|
||||
CONFIG_LEDS_GPIO=y
|
||||
CONFIG_LEDS_LP5521=y
|
||||
CONFIG_LEDS_TRIGGERS=y
|
||||
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
|
||||
CONFIG_RTC_CLASS=y
|
||||
@ -108,7 +111,6 @@ CONFIG_EXT4_FS=y
|
||||
CONFIG_VFAT_FS=y
|
||||
CONFIG_TMPFS=y
|
||||
CONFIG_TMPFS_POSIX_ACL=y
|
||||
CONFIG_CONFIGFS_FS=m
|
||||
# CONFIG_MISC_FILESYSTEMS is not set
|
||||
CONFIG_NFS_FS=y
|
||||
CONFIG_ROOT_NFS=y
|
||||
@ -122,3 +124,7 @@ CONFIG_DEBUG_KERNEL=y
|
||||
CONFIG_DEBUG_INFO=y
|
||||
# CONFIG_FTRACE is not set
|
||||
CONFIG_DEBUG_USER=y
|
||||
CONFIG_CRYPTO_DEV_UX500=y
|
||||
CONFIG_CRYPTO_DEV_UX500_CRYP=y
|
||||
CONFIG_CRYPTO_DEV_UX500_HASH=y
|
||||
CONFIG_CRYPTO_DEV_UX500_DEBUG=y
|
||||
|
@ -89,7 +89,7 @@ static inline u64 arch_counter_get_cntvct(void)
|
||||
return cval;
|
||||
}
|
||||
|
||||
static inline void __cpuinit arch_counter_set_user_access(void)
|
||||
static inline void arch_counter_set_user_access(void)
|
||||
{
|
||||
u32 cntkctl;
|
||||
|
||||
|
@ -23,10 +23,21 @@ static inline unsigned long scu_a9_get_base(void)
|
||||
return pa;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_HAVE_ARM_SCU
|
||||
unsigned int scu_get_core_count(void __iomem *);
|
||||
int scu_power_mode(void __iomem *, unsigned int);
|
||||
#else
|
||||
static inline unsigned int scu_get_core_count(void __iomem *scu_base)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
static inline int scu_power_mode(void __iomem *scu_base, unsigned int mode)
|
||||
{
|
||||
return -EINVAL;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_SMP
|
||||
#if defined(CONFIG_SMP) && defined(CONFIG_HAVE_ARM_SCU)
|
||||
void scu_enable(void __iomem *scu_base);
|
||||
#else
|
||||
static inline void scu_enable(void __iomem *scu_base) {}
|
||||
|
@ -133,6 +133,9 @@ ENTRY(lookup_processor_type)
|
||||
ldmfd sp!, {r4 - r6, r9, pc}
|
||||
ENDPROC(lookup_processor_type)
|
||||
|
||||
__FINIT
|
||||
.text
|
||||
|
||||
/*
|
||||
* Read processor ID register (CP#15, CR0), and look up in the linker-built
|
||||
* supported processor list. Note that we can't use the absolute addresses
|
||||
@ -146,7 +149,6 @@ ENDPROC(lookup_processor_type)
|
||||
* r5 = proc_info pointer in physical address space
|
||||
* r9 = cpuid (preserved)
|
||||
*/
|
||||
__CPUINIT
|
||||
__lookup_processor_type:
|
||||
adr r3, __lookup_processor_type_data
|
||||
ldmia r3, {r4 - r6}
|
||||
|
@ -87,7 +87,6 @@ ENTRY(stext)
|
||||
ENDPROC(stext)
|
||||
|
||||
#ifdef CONFIG_SMP
|
||||
__CPUINIT
|
||||
ENTRY(secondary_startup)
|
||||
/*
|
||||
* Common entry point for secondary CPUs.
|
||||
|
@ -343,7 +343,6 @@ __turn_mmu_on_loc:
|
||||
.long __turn_mmu_on_end
|
||||
|
||||
#if defined(CONFIG_SMP)
|
||||
__CPUINIT
|
||||
ENTRY(secondary_startup)
|
||||
/*
|
||||
* Common entry point for secondary CPUs.
|
||||
|
@ -1020,7 +1020,7 @@ out_mdbgen:
|
||||
cpumask_or(&debug_err_mask, &debug_err_mask, cpumask_of(cpu));
|
||||
}
|
||||
|
||||
static int __cpuinit dbg_reset_notify(struct notifier_block *self,
|
||||
static int dbg_reset_notify(struct notifier_block *self,
|
||||
unsigned long action, void *cpu)
|
||||
{
|
||||
if ((action & ~CPU_TASKS_FROZEN) == CPU_ONLINE)
|
||||
@ -1029,7 +1029,7 @@ static int __cpuinit dbg_reset_notify(struct notifier_block *self,
|
||||
return NOTIFY_OK;
|
||||
}
|
||||
|
||||
static struct notifier_block __cpuinitdata dbg_reset_nb = {
|
||||
static struct notifier_block dbg_reset_nb = {
|
||||
.notifier_call = dbg_reset_notify,
|
||||
};
|
||||
|
||||
|
@ -157,8 +157,8 @@ static void cpu_pmu_init(struct arm_pmu *cpu_pmu)
|
||||
* UNKNOWN at reset, the PMU must be explicitly reset to avoid reading
|
||||
* junk values out of them.
|
||||
*/
|
||||
static int __cpuinit cpu_pmu_notify(struct notifier_block *b,
|
||||
unsigned long action, void *hcpu)
|
||||
static int cpu_pmu_notify(struct notifier_block *b, unsigned long action,
|
||||
void *hcpu)
|
||||
{
|
||||
if ((action & ~CPU_TASKS_FROZEN) != CPU_STARTING)
|
||||
return NOTIFY_DONE;
|
||||
@ -171,7 +171,7 @@ static int __cpuinit cpu_pmu_notify(struct notifier_block *b,
|
||||
return NOTIFY_OK;
|
||||
}
|
||||
|
||||
static struct notifier_block __cpuinitdata cpu_pmu_hotplug_notifier = {
|
||||
static struct notifier_block cpu_pmu_hotplug_notifier = {
|
||||
.notifier_call = cpu_pmu_notify,
|
||||
};
|
||||
|
||||
|
@ -46,8 +46,7 @@
|
||||
|
||||
extern void secondary_startup(void);
|
||||
|
||||
static int __cpuinit psci_boot_secondary(unsigned int cpu,
|
||||
struct task_struct *idle)
|
||||
static int psci_boot_secondary(unsigned int cpu, struct task_struct *idle)
|
||||
{
|
||||
if (psci_ops.cpu_on)
|
||||
return psci_ops.cpu_on(cpu_logical_map(cpu),
|
||||
|
@ -58,7 +58,7 @@ struct secondary_data secondary_data;
|
||||
* control for which core is the next to come out of the secondary
|
||||
* boot "holding pen"
|
||||
*/
|
||||
volatile int __cpuinitdata pen_release = -1;
|
||||
volatile int pen_release = -1;
|
||||
|
||||
enum ipi_msg_type {
|
||||
IPI_WAKEUP,
|
||||
@ -86,7 +86,7 @@ static unsigned long get_arch_pgd(pgd_t *pgd)
|
||||
return pgdir >> ARCH_PGD_SHIFT;
|
||||
}
|
||||
|
||||
int __cpuinit __cpu_up(unsigned int cpu, struct task_struct *idle)
|
||||
int __cpu_up(unsigned int cpu, struct task_struct *idle)
|
||||
{
|
||||
int ret;
|
||||
|
||||
@ -138,7 +138,7 @@ void __init smp_init_cpus(void)
|
||||
smp_ops.smp_init_cpus();
|
||||
}
|
||||
|
||||
int __cpuinit boot_secondary(unsigned int cpu, struct task_struct *idle)
|
||||
int boot_secondary(unsigned int cpu, struct task_struct *idle)
|
||||
{
|
||||
if (smp_ops.smp_boot_secondary)
|
||||
return smp_ops.smp_boot_secondary(cpu, idle);
|
||||
@ -170,7 +170,7 @@ static int platform_cpu_disable(unsigned int cpu)
|
||||
/*
|
||||
* __cpu_disable runs on the processor to be shutdown.
|
||||
*/
|
||||
int __cpuinit __cpu_disable(void)
|
||||
int __cpu_disable(void)
|
||||
{
|
||||
unsigned int cpu = smp_processor_id();
|
||||
int ret;
|
||||
@ -216,7 +216,7 @@ static DECLARE_COMPLETION(cpu_died);
|
||||
* called on the thread which is asking for a CPU to be shutdown -
|
||||
* waits until shutdown has completed, or it is timed out.
|
||||
*/
|
||||
void __cpuinit __cpu_die(unsigned int cpu)
|
||||
void __cpu_die(unsigned int cpu)
|
||||
{
|
||||
if (!wait_for_completion_timeout(&cpu_died, msecs_to_jiffies(5000))) {
|
||||
pr_err("CPU%u: cpu didn't die\n", cpu);
|
||||
@ -306,7 +306,7 @@ void __ref cpu_die(void)
|
||||
* Called by both boot and secondaries to move global data into
|
||||
* per-processor storage.
|
||||
*/
|
||||
static void __cpuinit smp_store_cpu_info(unsigned int cpuid)
|
||||
static void smp_store_cpu_info(unsigned int cpuid)
|
||||
{
|
||||
struct cpuinfo_arm *cpu_info = &per_cpu(cpu_data, cpuid);
|
||||
|
||||
@ -322,7 +322,7 @@ static void percpu_timer_setup(void);
|
||||
* This is the secondary CPU boot entry. We're using this CPUs
|
||||
* idle thread stack, but a set of temporary page tables.
|
||||
*/
|
||||
asmlinkage void __cpuinit secondary_start_kernel(void)
|
||||
asmlinkage void secondary_start_kernel(void)
|
||||
{
|
||||
struct mm_struct *mm = &init_mm;
|
||||
unsigned int cpu;
|
||||
@ -521,7 +521,7 @@ static void broadcast_timer_set_mode(enum clock_event_mode mode,
|
||||
{
|
||||
}
|
||||
|
||||
static void __cpuinit broadcast_timer_setup(struct clock_event_device *evt)
|
||||
static void broadcast_timer_setup(struct clock_event_device *evt)
|
||||
{
|
||||
evt->name = "dummy_timer";
|
||||
evt->features = CLOCK_EVT_FEAT_ONESHOT |
|
||||
@ -550,7 +550,7 @@ int local_timer_register(struct local_timer_ops *ops)
|
||||
}
|
||||
#endif
|
||||
|
||||
static void __cpuinit percpu_timer_setup(void)
|
||||
static void percpu_timer_setup(void)
|
||||
{
|
||||
unsigned int cpu = smp_processor_id();
|
||||
struct clock_event_device *evt = &per_cpu(percpu_clockevent, cpu);
|
||||
|
@ -120,7 +120,7 @@ static int twd_rate_change(struct notifier_block *nb,
|
||||
* changing cpu.
|
||||
*/
|
||||
if (flags == POST_RATE_CHANGE)
|
||||
smp_call_function(twd_update_frequency,
|
||||
on_each_cpu(twd_update_frequency,
|
||||
(void *)&cnd->new_rate, 1);
|
||||
|
||||
return NOTIFY_OK;
|
||||
@ -187,7 +187,7 @@ core_initcall(twd_cpufreq_init);
|
||||
|
||||
#endif
|
||||
|
||||
static void __cpuinit twd_calibrate_rate(void)
|
||||
static void twd_calibrate_rate(void)
|
||||
{
|
||||
unsigned long count;
|
||||
u64 waitjiffies;
|
||||
@ -265,7 +265,7 @@ static void twd_get_clock(struct device_node *np)
|
||||
/*
|
||||
* Setup the local clock events for a CPU.
|
||||
*/
|
||||
static int __cpuinit twd_timer_setup(struct clock_event_device *clk)
|
||||
static int twd_timer_setup(struct clock_event_device *clk)
|
||||
{
|
||||
struct clock_event_device **this_cpu_clk;
|
||||
int cpu = smp_processor_id();
|
||||
@ -308,7 +308,7 @@ static int __cpuinit twd_timer_setup(struct clock_event_device *clk)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct local_timer_ops twd_lt_ops __cpuinitdata = {
|
||||
static struct local_timer_ops twd_lt_ops = {
|
||||
.setup = twd_timer_setup,
|
||||
.stop = twd_timer_stop,
|
||||
};
|
||||
|
@ -86,7 +86,7 @@ void __init register_current_timer_delay(const struct delay_timer *timer)
|
||||
}
|
||||
}
|
||||
|
||||
unsigned long __cpuinit calibrate_delay_is_known(void)
|
||||
unsigned long calibrate_delay_is_known(void)
|
||||
{
|
||||
delay_calibrated = true;
|
||||
return lpj_fine;
|
||||
|
@ -509,7 +509,6 @@ struct ths7303_platform_data ths7303_pdata = {
|
||||
.ch_1 = 3,
|
||||
.ch_2 = 3,
|
||||
.ch_3 = 3,
|
||||
.init_enable = 1,
|
||||
};
|
||||
|
||||
static struct amp_config_info vpbe_amp = {
|
||||
|
@ -26,6 +26,7 @@
|
||||
#define SYSTEM_SOFT_RESET (BRIDGE_VIRT_BASE + 0x010c)
|
||||
#define SOFT_RESET 0x00000001
|
||||
|
||||
#define BRIDGE_CAUSE (BRIDGE_VIRT_BASE + 0x0110)
|
||||
#define BRIDGE_INT_TIMER1_CLR (~0x0004)
|
||||
|
||||
#define IRQ_VIRT_BASE (BRIDGE_VIRT_BASE + 0x0200)
|
||||
|
@ -38,7 +38,7 @@ config CPU_EXYNOS4210
|
||||
depends on ARCH_EXYNOS4
|
||||
select ARM_CPU_SUSPEND if PM
|
||||
select PINCTRL_EXYNOS
|
||||
select PM_GENERIC_DOMAINS
|
||||
select PM_GENERIC_DOMAINS if PM
|
||||
select S5P_PM if PM
|
||||
select S5P_SLEEP if PM
|
||||
select SAMSUNG_DMADEV
|
||||
|
@ -13,8 +13,6 @@
|
||||
#include <linux/linkage.h>
|
||||
#include <linux/init.h>
|
||||
|
||||
__CPUINIT
|
||||
|
||||
/*
|
||||
* exynos4 specific entry point for secondary CPUs. This provides
|
||||
* a "holding pen" into which all secondary cores are held until we're
|
||||
|
@ -75,7 +75,7 @@ static void __iomem *scu_base_addr(void)
|
||||
|
||||
static DEFINE_SPINLOCK(boot_lock);
|
||||
|
||||
static void __cpuinit exynos_secondary_init(unsigned int cpu)
|
||||
static void exynos_secondary_init(unsigned int cpu)
|
||||
{
|
||||
/*
|
||||
* let the primary processor know we're out of the
|
||||
@ -90,7 +90,7 @@ static void __cpuinit exynos_secondary_init(unsigned int cpu)
|
||||
spin_unlock(&boot_lock);
|
||||
}
|
||||
|
||||
static int __cpuinit exynos_boot_secondary(unsigned int cpu, struct task_struct *idle)
|
||||
static int exynos_boot_secondary(unsigned int cpu, struct task_struct *idle)
|
||||
{
|
||||
unsigned long timeout;
|
||||
unsigned long phys_cpu = cpu_logical_map(cpu);
|
||||
|
@ -24,7 +24,7 @@
|
||||
|
||||
extern void secondary_startup(void);
|
||||
|
||||
static int __cpuinit highbank_boot_secondary(unsigned int cpu, struct task_struct *idle)
|
||||
static int highbank_boot_secondary(unsigned int cpu, struct task_struct *idle)
|
||||
{
|
||||
highbank_set_cpu_jump(cpu, secondary_startup);
|
||||
arch_send_wakeup_ipi_mask(cpumask_of(cpu));
|
||||
|
@ -53,7 +53,7 @@ void imx_scu_standby_enable(void)
|
||||
writel_relaxed(val, scu_base);
|
||||
}
|
||||
|
||||
static int __cpuinit imx_boot_secondary(unsigned int cpu, struct task_struct *idle)
|
||||
static int imx_boot_secondary(unsigned int cpu, struct task_struct *idle)
|
||||
{
|
||||
imx_set_cpu_jump(cpu, v7_secondary_startup);
|
||||
imx_enable_cpu(cpu, true);
|
||||
|
@ -28,6 +28,7 @@
|
||||
#include <linux/i2c-gpio.h>
|
||||
|
||||
#include <mach/hardware.h>
|
||||
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/mach/flash.h>
|
||||
|
@ -3,7 +3,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include <mach/hardware.h>
|
||||
#include <mach/ixp4xx-regs.h>
|
||||
|
||||
/*
|
||||
* We use IXP425 General purpose timer for our timer needs, it runs at
|
||||
|
@ -27,6 +27,8 @@
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/mach/flash.h>
|
||||
|
||||
#include <mach/hardware.h>
|
||||
|
||||
static struct resource omixp_flash_resources[] = {
|
||||
{
|
||||
.flags = IORESOURCE_MEM,
|
||||
|
@ -21,7 +21,7 @@
|
||||
|
||||
#include "keystone.h"
|
||||
|
||||
static int __cpuinit keystone_smp_boot_secondary(unsigned int cpu,
|
||||
static int keystone_smp_boot_secondary(unsigned int cpu,
|
||||
struct task_struct *idle)
|
||||
{
|
||||
unsigned long start = virt_to_phys(&secondary_startup);
|
||||
|
@ -21,14 +21,12 @@
|
||||
#define CPU_RESET 0x00000002
|
||||
|
||||
#define RSTOUTn_MASK (BRIDGE_VIRT_BASE + 0x0108)
|
||||
#define WDT_RESET_OUT_EN 0x00000002
|
||||
#define SOFT_RESET_OUT_EN 0x00000004
|
||||
|
||||
#define SYSTEM_SOFT_RESET (BRIDGE_VIRT_BASE + 0x010c)
|
||||
#define SOFT_RESET 0x00000001
|
||||
|
||||
#define BRIDGE_CAUSE (BRIDGE_VIRT_BASE + 0x0110)
|
||||
#define WDT_INT_REQ 0x0008
|
||||
|
||||
#define BRIDGE_INT_TIMER1_CLR (~0x0004)
|
||||
|
||||
|
@ -11,8 +11,6 @@
|
||||
#include <linux/linkage.h>
|
||||
#include <linux/init.h>
|
||||
|
||||
__CPUINIT
|
||||
|
||||
/*
|
||||
* MSM specific entry point for secondary CPUs. This provides
|
||||
* a "holding pen" into which all secondary cores are held until we're
|
||||
|
@ -38,7 +38,7 @@ static inline int get_core_count(void)
|
||||
return ((read_cpuid_id() >> 4) & 3) + 1;
|
||||
}
|
||||
|
||||
static void __cpuinit msm_secondary_init(unsigned int cpu)
|
||||
static void msm_secondary_init(unsigned int cpu)
|
||||
{
|
||||
/*
|
||||
* let the primary processor know we're out of the
|
||||
@ -54,7 +54,7 @@ static void __cpuinit msm_secondary_init(unsigned int cpu)
|
||||
spin_unlock(&boot_lock);
|
||||
}
|
||||
|
||||
static __cpuinit void prepare_cold_cpu(unsigned int cpu)
|
||||
static void prepare_cold_cpu(unsigned int cpu)
|
||||
{
|
||||
int ret;
|
||||
ret = scm_set_boot_addr(virt_to_phys(msm_secondary_startup),
|
||||
@ -73,7 +73,7 @@ static __cpuinit void prepare_cold_cpu(unsigned int cpu)
|
||||
"address\n");
|
||||
}
|
||||
|
||||
static int __cpuinit msm_boot_secondary(unsigned int cpu, struct task_struct *idle)
|
||||
static int msm_boot_secondary(unsigned int cpu, struct task_struct *idle)
|
||||
{
|
||||
unsigned long timeout;
|
||||
static int cold_boot_done;
|
||||
|
@ -139,7 +139,7 @@ static struct clocksource msm_clocksource = {
|
||||
};
|
||||
|
||||
#ifdef CONFIG_LOCAL_TIMERS
|
||||
static int __cpuinit msm_local_timer_setup(struct clock_event_device *evt)
|
||||
static int msm_local_timer_setup(struct clock_event_device *evt)
|
||||
{
|
||||
/* Use existing clock_event for cpu 0 */
|
||||
if (!smp_processor_id())
|
||||
@ -164,7 +164,7 @@ static void msm_local_timer_stop(struct clock_event_device *evt)
|
||||
disable_percpu_irq(evt->irq);
|
||||
}
|
||||
|
||||
static struct local_timer_ops msm_local_timer_ops __cpuinitdata = {
|
||||
static struct local_timer_ops msm_local_timer_ops = {
|
||||
.setup = msm_local_timer_setup,
|
||||
.stop = msm_local_timer_stop,
|
||||
};
|
||||
|
@ -28,7 +28,7 @@
|
||||
#include <asm/cacheflush.h>
|
||||
#include "armada-370-xp.h"
|
||||
|
||||
unsigned long __cpuinitdata coherency_phys_base;
|
||||
unsigned long coherency_phys_base;
|
||||
static void __iomem *coherency_base;
|
||||
static void __iomem *coherency_cpu_base;
|
||||
|
||||
|
@ -21,8 +21,6 @@
|
||||
#include <linux/linkage.h>
|
||||
#include <linux/init.h>
|
||||
|
||||
__CPUINIT
|
||||
|
||||
/*
|
||||
* Armada XP specific entry point for secondary CPUs.
|
||||
* We add the CPU to the coherency fabric and then jump to secondary
|
||||
|
@ -71,13 +71,12 @@ void __init set_secondary_cpus_clock(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void __cpuinit armada_xp_secondary_init(unsigned int cpu)
|
||||
static void armada_xp_secondary_init(unsigned int cpu)
|
||||
{
|
||||
armada_xp_mpic_smp_cpu_init();
|
||||
}
|
||||
|
||||
static int __cpuinit armada_xp_boot_secondary(unsigned int cpu,
|
||||
struct task_struct *idle)
|
||||
static int armada_xp_boot_secondary(unsigned int cpu, struct task_struct *idle)
|
||||
{
|
||||
pr_info("Booting CPU %d\n", cpu);
|
||||
|
||||
|
@ -1,10 +1,92 @@
|
||||
config ARCH_OMAP
|
||||
bool
|
||||
|
||||
config ARCH_OMAP2
|
||||
bool "TI OMAP2"
|
||||
depends on ARCH_MULTI_V6
|
||||
select ARCH_OMAP2PLUS
|
||||
select CPU_V6
|
||||
select MULTI_IRQ_HANDLER
|
||||
select SOC_HAS_OMAP2_SDRC
|
||||
select COMMON_CLK
|
||||
|
||||
config ARCH_OMAP3
|
||||
bool "TI OMAP3"
|
||||
depends on ARCH_MULTI_V7
|
||||
select ARCH_OMAP2PLUS
|
||||
select ARCH_HAS_OPP
|
||||
select ARM_CPU_SUSPEND if PM
|
||||
select CPU_V7
|
||||
select MULTI_IRQ_HANDLER
|
||||
select OMAP_INTERCONNECT
|
||||
select PM_OPP if PM
|
||||
select PM_RUNTIME if CPU_IDLE
|
||||
select SOC_HAS_OMAP2_SDRC
|
||||
select COMMON_CLK
|
||||
select USB_ARCH_HAS_EHCI if USB_SUPPORT
|
||||
|
||||
config ARCH_OMAP4
|
||||
bool "TI OMAP4"
|
||||
depends on ARCH_MULTI_V7
|
||||
select ARCH_OMAP2PLUS
|
||||
select ARCH_HAS_OPP
|
||||
select ARCH_NEEDS_CPU_IDLE_COUPLED if SMP
|
||||
select ARM_CPU_SUSPEND if PM
|
||||
select ARM_ERRATA_720789
|
||||
select ARM_GIC
|
||||
select CACHE_L2X0
|
||||
select CPU_V7
|
||||
select HAVE_ARM_SCU if SMP
|
||||
select HAVE_ARM_TWD if LOCAL_TIMERS
|
||||
select HAVE_SMP
|
||||
select LOCAL_TIMERS if SMP
|
||||
select OMAP_INTERCONNECT
|
||||
select PL310_ERRATA_588369
|
||||
select PL310_ERRATA_727915
|
||||
select PM_OPP if PM
|
||||
select PM_RUNTIME if CPU_IDLE
|
||||
select USB_ARCH_HAS_EHCI if USB_SUPPORT
|
||||
select COMMON_CLK
|
||||
select ARM_ERRATA_754322
|
||||
select ARM_ERRATA_775420
|
||||
|
||||
config SOC_OMAP5
|
||||
bool "TI OMAP5"
|
||||
depends on ARCH_MULTI_V7
|
||||
select ARCH_OMAP2PLUS
|
||||
select ARM_CPU_SUSPEND if PM
|
||||
select ARM_GIC
|
||||
select CPU_V7
|
||||
select HAVE_ARM_SCU if SMP
|
||||
select HAVE_ARM_TWD if LOCAL_TIMERS
|
||||
select HAVE_SMP
|
||||
select COMMON_CLK
|
||||
select HAVE_ARM_ARCH_TIMER
|
||||
select ARM_ERRATA_798181
|
||||
|
||||
config SOC_AM33XX
|
||||
bool "AM33XX support"
|
||||
depends on ARCH_MULTI_V7
|
||||
select ARCH_OMAP2PLUS
|
||||
select ARM_CPU_SUSPEND if PM
|
||||
select CPU_V7
|
||||
select MULTI_IRQ_HANDLER
|
||||
select COMMON_CLK
|
||||
|
||||
config SOC_AM43XX
|
||||
bool "TI AM43x"
|
||||
depends on ARCH_MULTI_V7
|
||||
select CPU_V7
|
||||
select ARCH_OMAP2PLUS
|
||||
select MULTI_IRQ_HANDLER
|
||||
select ARM_GIC
|
||||
select COMMON_CLK
|
||||
select MACH_OMAP_GENERIC
|
||||
|
||||
config ARCH_OMAP2PLUS
|
||||
bool "TI OMAP2/3/4/5 SoCs with device tree support" if (ARCH_MULTI_V6 || ARCH_MULTI_V7)
|
||||
select ARCH_HAS_CPUFREQ
|
||||
bool
|
||||
select ARCH_HAS_BANDGAP
|
||||
select ARCH_HAS_CPUFREQ
|
||||
select ARCH_HAS_HOLES_MEMORYMODEL
|
||||
select ARCH_OMAP
|
||||
select ARCH_REQUIRE_GPIOLIB
|
||||
@ -53,68 +135,6 @@ config SOC_HAS_REALTIME_COUNTER
|
||||
depends on SOC_OMAP5
|
||||
default y
|
||||
|
||||
config ARCH_OMAP2
|
||||
bool "TI OMAP2"
|
||||
depends on ARCH_OMAP2PLUS
|
||||
depends on ARCH_MULTI_V6
|
||||
default y
|
||||
select CPU_V6
|
||||
select MULTI_IRQ_HANDLER
|
||||
select SOC_HAS_OMAP2_SDRC
|
||||
select COMMON_CLK
|
||||
|
||||
config ARCH_OMAP3
|
||||
bool "TI OMAP3"
|
||||
depends on ARCH_OMAP2PLUS
|
||||
depends on ARCH_MULTI_V7
|
||||
default y
|
||||
select ARCH_HAS_OPP
|
||||
select ARM_CPU_SUSPEND if PM
|
||||
select CPU_V7
|
||||
select MULTI_IRQ_HANDLER
|
||||
select OMAP_INTERCONNECT
|
||||
select PM_OPP if PM
|
||||
select PM_RUNTIME if CPU_IDLE
|
||||
select SOC_HAS_OMAP2_SDRC
|
||||
select COMMON_CLK
|
||||
select USB_ARCH_HAS_EHCI if USB_SUPPORT
|
||||
|
||||
config ARCH_OMAP4
|
||||
bool "TI OMAP4"
|
||||
default y
|
||||
depends on ARCH_OMAP2PLUS
|
||||
depends on ARCH_MULTI_V7
|
||||
select ARCH_HAS_OPP
|
||||
select ARCH_NEEDS_CPU_IDLE_COUPLED if SMP
|
||||
select ARM_CPU_SUSPEND if PM
|
||||
select ARM_ERRATA_720789
|
||||
select ARM_GIC
|
||||
select CACHE_L2X0
|
||||
select CPU_V7
|
||||
select HAVE_ARM_SCU if SMP
|
||||
select HAVE_ARM_TWD if LOCAL_TIMERS
|
||||
select HAVE_SMP
|
||||
select LOCAL_TIMERS if SMP
|
||||
select OMAP_INTERCONNECT
|
||||
select PL310_ERRATA_588369
|
||||
select PL310_ERRATA_727915
|
||||
select PM_OPP if PM
|
||||
select PM_RUNTIME if CPU_IDLE
|
||||
select USB_ARCH_HAS_EHCI if USB_SUPPORT
|
||||
select COMMON_CLK
|
||||
select ARM_ERRATA_754322
|
||||
select ARM_ERRATA_775420
|
||||
|
||||
config SOC_OMAP5
|
||||
bool "TI OMAP5"
|
||||
depends on ARCH_MULTI_V7
|
||||
select ARM_CPU_SUSPEND if PM
|
||||
select ARM_GIC
|
||||
select CPU_V7
|
||||
select HAVE_SMP
|
||||
select COMMON_CLK
|
||||
select HAVE_ARM_ARCH_TIMER
|
||||
|
||||
comment "OMAP Core Type"
|
||||
depends on ARCH_OMAP2
|
||||
|
||||
@ -142,23 +162,6 @@ config SOC_TI81XX
|
||||
depends on ARCH_OMAP3
|
||||
default y
|
||||
|
||||
config SOC_AM33XX
|
||||
bool "AM33XX support"
|
||||
depends on ARCH_MULTI_V7
|
||||
default y
|
||||
select ARM_CPU_SUSPEND if PM
|
||||
select CPU_V7
|
||||
select MULTI_IRQ_HANDLER
|
||||
select COMMON_CLK
|
||||
|
||||
config SOC_AM43XX
|
||||
bool "TI AM43x"
|
||||
select CPU_V7
|
||||
select MULTI_IRQ_HANDLER
|
||||
select ARM_GIC
|
||||
select COMMON_CLK
|
||||
select MACH_OMAP_GENERIC
|
||||
|
||||
config OMAP_PACKAGE_ZAF
|
||||
bool
|
||||
|
||||
|
@ -95,10 +95,6 @@ obj-$(CONFIG_POWER_AVS_OMAP_CLASS3) += smartreflex-class3.o
|
||||
AFLAGS_sleep24xx.o :=-Wa,-march=armv6
|
||||
AFLAGS_sleep34xx.o :=-Wa,-march=armv7-a$(plus_sec)
|
||||
|
||||
ifeq ($(CONFIG_PM_VERBOSE),y)
|
||||
CFLAGS_pm_bus.o += -DDEBUG
|
||||
endif
|
||||
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_CPU_IDLE),y)
|
||||
|
@ -553,6 +553,37 @@ static struct usbhs_omap_platform_data igep3_usbhs_bdata __initdata = {
|
||||
|
||||
#ifdef CONFIG_OMAP_MUX
|
||||
static struct omap_board_mux board_mux[] __initdata = {
|
||||
/* Display Sub System */
|
||||
OMAP3_MUX(DSS_PCLK, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(DSS_HSYNC, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(DSS_VSYNC, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(DSS_ACBIAS, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(DSS_DATA0, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(DSS_DATA1, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(DSS_DATA2, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(DSS_DATA3, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(DSS_DATA4, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(DSS_DATA5, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(DSS_DATA6, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(DSS_DATA7, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(DSS_DATA8, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(DSS_DATA9, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(DSS_DATA10, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(DSS_DATA11, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(DSS_DATA12, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(DSS_DATA13, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(DSS_DATA14, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(DSS_DATA15, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(DSS_DATA16, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(DSS_DATA17, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(DSS_DATA18, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(DSS_DATA19, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(DSS_DATA20, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(DSS_DATA21, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(DSS_DATA22, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
|
||||
OMAP3_MUX(DSS_DATA23, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
|
||||
/* TFP410 PanelBus DVI Transmitte (GPIO_170) */
|
||||
OMAP3_MUX(HDQ_SIO, OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT),
|
||||
/* SMSC9221 LAN Controller ETH IRQ (GPIO_176) */
|
||||
OMAP3_MUX(MCSPI1_CS2, OMAP_MUX_MODE4 | OMAP_PIN_INPUT),
|
||||
{ .reg_offset = OMAP_MUX_TERMINATOR },
|
||||
|
@ -61,7 +61,7 @@ static struct omap_dss_board_info rx51_dss_board_info = {
|
||||
|
||||
static int __init rx51_video_init(void)
|
||||
{
|
||||
if (!machine_is_nokia_rx51())
|
||||
if (!machine_is_nokia_rx51() && !of_machine_is_compatible("nokia,omap3-n900"))
|
||||
return 0;
|
||||
|
||||
if (omap_mux_init_gpio(RX51_LCD_RESET_GPIO, OMAP_PIN_OUTPUT)) {
|
||||
|
@ -15,7 +15,6 @@
|
||||
#include <linux/io.h>
|
||||
#include <linux/clk.h>
|
||||
#include <linux/err.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/pinctrl/machine.h>
|
||||
@ -66,7 +65,7 @@ static int __init omap3_l3_init(void)
|
||||
|
||||
WARN(IS_ERR(pdev), "could not build omap_device for %s\n", oh_name);
|
||||
|
||||
return IS_ERR(pdev) ? PTR_ERR(pdev) : 0;
|
||||
return PTR_RET(pdev);
|
||||
}
|
||||
omap_postcore_initcall(omap3_l3_init);
|
||||
|
||||
@ -100,7 +99,7 @@ static int __init omap4_l3_init(void)
|
||||
|
||||
WARN(IS_ERR(pdev), "could not build omap_device for %s\n", oh_name);
|
||||
|
||||
return IS_ERR(pdev) ? PTR_ERR(pdev) : 0;
|
||||
return PTR_RET(pdev);
|
||||
}
|
||||
omap_postcore_initcall(omap4_l3_init);
|
||||
|
||||
|
@ -83,10 +83,7 @@ static int __init omap_init_vrfb(void)
|
||||
pdev = platform_device_register_resndata(NULL, "omapvrfb", -1,
|
||||
res, num_res, NULL, 0);
|
||||
|
||||
if (IS_ERR(pdev))
|
||||
return PTR_ERR(pdev);
|
||||
else
|
||||
return 0;
|
||||
return PTR_RET(pdev);
|
||||
}
|
||||
|
||||
omap_arch_initcall(omap_init_vrfb);
|
||||
|
@ -1734,7 +1734,7 @@ static int __init omap_gpmc_init(void)
|
||||
pdev = omap_device_build(DEVICE_NAME, -1, oh, NULL, 0);
|
||||
WARN(IS_ERR(pdev), "could not build omap_device for %s\n", oh_name);
|
||||
|
||||
return IS_ERR(pdev) ? PTR_ERR(pdev) : 0;
|
||||
return PTR_RET(pdev);
|
||||
}
|
||||
omap_postcore_initcall(omap_gpmc_init);
|
||||
|
||||
|
@ -394,7 +394,7 @@ static void __init omap_hwmod_init_postsetup(void)
|
||||
omap_pm_if_early_init();
|
||||
}
|
||||
|
||||
static void __init omap_common_late_init(void)
|
||||
static void __init __maybe_unused omap_common_late_init(void)
|
||||
{
|
||||
omap_mux_late_init();
|
||||
omap2_common_pm_late_init();
|
||||
|
@ -20,8 +20,6 @@
|
||||
|
||||
#include "omap44xx.h"
|
||||
|
||||
__CPUINIT
|
||||
|
||||
/* Physical address needed since MMU not enabled yet on secondary core */
|
||||
#define AUX_CORE_BOOT0_PA 0x48281800
|
||||
|
||||
|
@ -291,7 +291,7 @@ int omap4_enter_lowpower(unsigned int cpu, unsigned int power_state)
|
||||
* @cpu : CPU ID
|
||||
* @power_state: CPU low power state.
|
||||
*/
|
||||
int __cpuinit omap4_hotplug_cpu(unsigned int cpu, unsigned int power_state)
|
||||
int omap4_hotplug_cpu(unsigned int cpu, unsigned int power_state)
|
||||
{
|
||||
struct omap4_cpu_pm_info *pm_info = &per_cpu(omap4_pm_info, cpu);
|
||||
unsigned int cpu_state = 0;
|
||||
|
@ -51,7 +51,7 @@ void __iomem *omap4_get_scu_base(void)
|
||||
return scu_base;
|
||||
}
|
||||
|
||||
static void __cpuinit omap4_secondary_init(unsigned int cpu)
|
||||
static void omap4_secondary_init(unsigned int cpu)
|
||||
{
|
||||
/*
|
||||
* Configure ACTRL and enable NS SMP bit access on CPU1 on HS device.
|
||||
@ -72,7 +72,7 @@ static void __cpuinit omap4_secondary_init(unsigned int cpu)
|
||||
spin_unlock(&boot_lock);
|
||||
}
|
||||
|
||||
static int __cpuinit omap4_boot_secondary(unsigned int cpu, struct task_struct *idle)
|
||||
static int omap4_boot_secondary(unsigned int cpu, struct task_struct *idle)
|
||||
{
|
||||
static struct clockdomain *cpu1_clkdm;
|
||||
static bool booted;
|
||||
|
@ -323,8 +323,8 @@ static void irq_save_secure_context(void)
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_HOTPLUG_CPU
|
||||
static int __cpuinit irq_cpu_hotplug_notify(struct notifier_block *self,
|
||||
unsigned long action, void *hcpu)
|
||||
static int irq_cpu_hotplug_notify(struct notifier_block *self,
|
||||
unsigned long action, void *hcpu)
|
||||
{
|
||||
unsigned int cpu = (unsigned int)hcpu;
|
||||
|
||||
|
@ -54,10 +54,7 @@ static int __init omap2_init_pmu(unsigned oh_num, char *oh_names[])
|
||||
WARN(IS_ERR(omap_pmu_dev), "Can't build omap_device for %s.\n",
|
||||
dev_name);
|
||||
|
||||
if (IS_ERR(omap_pmu_dev))
|
||||
return PTR_ERR(omap_pmu_dev);
|
||||
|
||||
return 0;
|
||||
return PTR_RET(omap_pmu_dev);
|
||||
}
|
||||
|
||||
static int __init omap_init_pmu(void)
|
||||
|
@ -34,6 +34,8 @@ ppa_zero_params:
|
||||
ppa_por_params:
|
||||
.word 1, 0
|
||||
|
||||
#ifdef CONFIG_ARCH_OMAP4
|
||||
|
||||
/*
|
||||
* =============================
|
||||
* == CPU suspend finisher ==
|
||||
@ -326,7 +328,9 @@ skip_l2en:
|
||||
|
||||
b cpu_resume @ Jump to generic resume
|
||||
ENDPROC(omap4_cpu_resume)
|
||||
#endif
|
||||
#endif /* CONFIG_ARCH_OMAP4 */
|
||||
|
||||
#endif /* defined(CONFIG_SMP) && defined(CONFIG_PM) */
|
||||
|
||||
#ifndef CONFIG_OMAP4_ERRATA_I688
|
||||
ENTRY(omap_bus_sync)
|
||||
|
@ -220,7 +220,7 @@ static int __init omap_dm_timer_init_one(struct omap_dm_timer *timer,
|
||||
int posted)
|
||||
{
|
||||
char name[10]; /* 10 = sizeof("gptXX_Xck0") */
|
||||
const char *oh_name;
|
||||
const char *oh_name = NULL;
|
||||
struct device_node *np;
|
||||
struct omap_hwmod *oh;
|
||||
struct resource irq, mem;
|
||||
|
@ -18,7 +18,6 @@
|
||||
#define CPU_CTRL (ORION5X_BRIDGE_VIRT_BASE + 0x104)
|
||||
|
||||
#define RSTOUTn_MASK (ORION5X_BRIDGE_VIRT_BASE + 0x108)
|
||||
#define WDT_RESET_OUT_EN 0x0002
|
||||
|
||||
#define CPU_SOFT_RESET (ORION5X_BRIDGE_VIRT_BASE + 0x10c)
|
||||
|
||||
@ -26,8 +25,6 @@
|
||||
|
||||
#define POWER_MNG_CTRL_REG (ORION5X_BRIDGE_VIRT_BASE + 0x11C)
|
||||
|
||||
#define WDT_INT_REQ 0x0008
|
||||
|
||||
#define BRIDGE_INT_TIMER1_CLR (~0x0004)
|
||||
|
||||
#define MAIN_IRQ_CAUSE (ORION5X_BRIDGE_VIRT_BASE + 0x200)
|
||||
|
@ -9,8 +9,6 @@
|
||||
#include <linux/linkage.h>
|
||||
#include <linux/init.h>
|
||||
|
||||
__CPUINIT
|
||||
|
||||
/*
|
||||
* SIRFSOC specific entry point for secondary CPUs. This provides
|
||||
* a "holding pen" into which all secondary cores are held until we're
|
||||
|
@ -44,7 +44,7 @@ void __init sirfsoc_map_scu(void)
|
||||
scu_base = (void __iomem *)SIRFSOC_VA(base);
|
||||
}
|
||||
|
||||
static void __cpuinit sirfsoc_secondary_init(unsigned int cpu)
|
||||
static void sirfsoc_secondary_init(unsigned int cpu)
|
||||
{
|
||||
/*
|
||||
* let the primary processor know we're out of the
|
||||
@ -65,7 +65,7 @@ static struct of_device_id rsc_ids[] = {
|
||||
{},
|
||||
};
|
||||
|
||||
static int __cpuinit sirfsoc_boot_secondary(unsigned int cpu, struct task_struct *idle)
|
||||
static int sirfsoc_boot_secondary(unsigned int cpu, struct task_struct *idle)
|
||||
{
|
||||
unsigned long timeout;
|
||||
struct device_node *np;
|
||||
|
@ -208,7 +208,7 @@ config S3C24XX_GPIO_EXTRA128
|
||||
|
||||
config S3C24XX_PLL
|
||||
bool "Support CPUfreq changing of PLL frequency (EXPERIMENTAL)"
|
||||
depends on ARM_S3C24XX
|
||||
depends on ARM_S3C24XX_CPUFREQ
|
||||
help
|
||||
Compile in support for changing the PLL frequency from the
|
||||
S3C24XX series CPUfreq driver. The PLL takes time to settle
|
||||
|
@ -23,7 +23,6 @@
|
||||
#include <linux/init.h>
|
||||
#include <asm/memory.h>
|
||||
|
||||
__CPUINIT
|
||||
/*
|
||||
* Boot code for secondary CPUs.
|
||||
*
|
||||
|
@ -14,8 +14,6 @@
|
||||
#include <linux/init.h>
|
||||
#include <asm/memory.h>
|
||||
|
||||
__CPUINIT
|
||||
|
||||
ENTRY(shmobile_invalidate_start)
|
||||
bl v7_invalidate_l1
|
||||
b secondary_startup
|
||||
|
@ -287,14 +287,14 @@ static struct gpio_em_config gio3_config = {
|
||||
static struct resource gio3_resources[] = {
|
||||
[0] = {
|
||||
.name = "GIO_096",
|
||||
.start = 0xe0050100,
|
||||
.end = 0xe005012b,
|
||||
.start = 0xe0050180,
|
||||
.end = 0xe00501ab,
|
||||
.flags = IORESOURCE_MEM,
|
||||
},
|
||||
[1] = {
|
||||
.name = "GIO_096",
|
||||
.start = 0xe0050140,
|
||||
.end = 0xe005015f,
|
||||
.start = 0xe00501c0,
|
||||
.end = 0xe00501df,
|
||||
.flags = IORESOURCE_MEM,
|
||||
},
|
||||
[2] = {
|
||||
|
@ -62,7 +62,7 @@ enum { SCIFA0, SCIFA1, SCIFB0, SCIFB1, SCIFB2, SCIFB3 };
|
||||
static const struct plat_sci_port scif[] = {
|
||||
SCIFA_DATA(SCIFA0, 0xe6c40000, gic_spi(144)), /* SCIFA0 */
|
||||
SCIFA_DATA(SCIFA1, 0xe6c50000, gic_spi(145)), /* SCIFA1 */
|
||||
SCIFB_DATA(SCIFB0, 0xe6c50000, gic_spi(145)), /* SCIFB0 */
|
||||
SCIFB_DATA(SCIFB0, 0xe6c20000, gic_spi(148)), /* SCIFB0 */
|
||||
SCIFB_DATA(SCIFB1, 0xe6c30000, gic_spi(149)), /* SCIFB1 */
|
||||
SCIFB_DATA(SCIFB2, 0xe6ce0000, gic_spi(150)), /* SCIFB2 */
|
||||
SCIFB_DATA(SCIFB3, 0xe6cf0000, gic_spi(151)), /* SCIFB3 */
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user