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
|
ib_srp. Specifying a value that exceeds cmd_sg_entries is
|
||||||
only safe with partial memory descriptor list support enabled
|
only safe with partial memory descriptor list support enabled
|
||||||
(allow_ext_sg=1).
|
(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
|
What: /sys/class/infiniband_srp/srp-<hca>-<port_number>/ibdev
|
||||||
Date: January 2, 2006
|
Date: January 2, 2006
|
||||||
|
|
|
@ -29,7 +29,7 @@ Description: Generic performance monitoring events
|
||||||
|
|
||||||
What: /sys/devices/cpu/events/PM_1PLUS_PPC_CMPL
|
What: /sys/devices/cpu/events/PM_1PLUS_PPC_CMPL
|
||||||
/sys/devices/cpu/events/PM_BRU_FIN
|
/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
|
||||||
/sys/devices/cpu/events/PM_CMPLU_STALL_BRU
|
/sys/devices/cpu/events/PM_CMPLU_STALL_BRU
|
||||||
/sys/devices/cpu/events/PM_CMPLU_STALL_DCACHE_MISS
|
/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
|
What: /sys/devices/system/edac/mc/mc*/max_location
|
||||||
Date: April 2012
|
Date: April 2012
|
||||||
Contact: Mauro Carvalho Chehab <mchehab@redhat.com>
|
Contact: Mauro Carvalho Chehab <m.chehab@samsung.com>
|
||||||
linux-edac@vger.kernel.org
|
linux-edac@vger.kernel.org
|
||||||
Description: This attribute file displays the information about the last
|
Description: This attribute file displays the information about the last
|
||||||
available memory slot in this memory controller. It is used by
|
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
|
What: /sys/devices/system/edac/mc/mc*/(dimm|rank)*/size
|
||||||
Date: April 2012
|
Date: April 2012
|
||||||
Contact: Mauro Carvalho Chehab <mchehab@redhat.com>
|
Contact: Mauro Carvalho Chehab <m.chehab@samsung.com>
|
||||||
linux-edac@vger.kernel.org
|
linux-edac@vger.kernel.org
|
||||||
Description: This attribute file will display the size of dimm or rank.
|
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
|
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
|
What: /sys/devices/system/edac/mc/mc*/(dimm|rank)*/dimm_dev_type
|
||||||
Date: April 2012
|
Date: April 2012
|
||||||
Contact: Mauro Carvalho Chehab <mchehab@redhat.com>
|
Contact: Mauro Carvalho Chehab <m.chehab@samsung.com>
|
||||||
linux-edac@vger.kernel.org
|
linux-edac@vger.kernel.org
|
||||||
Description: This attribute file will display what type of DRAM device is
|
Description: This attribute file will display what type of DRAM device is
|
||||||
being utilized on this DIMM (x1, x2, x4, x8, ...).
|
being utilized on this DIMM (x1, x2, x4, x8, ...).
|
||||||
|
|
||||||
What: /sys/devices/system/edac/mc/mc*/(dimm|rank)*/dimm_edac_mode
|
What: /sys/devices/system/edac/mc/mc*/(dimm|rank)*/dimm_edac_mode
|
||||||
Date: April 2012
|
Date: April 2012
|
||||||
Contact: Mauro Carvalho Chehab <mchehab@redhat.com>
|
Contact: Mauro Carvalho Chehab <m.chehab@samsung.com>
|
||||||
linux-edac@vger.kernel.org
|
linux-edac@vger.kernel.org
|
||||||
Description: This attribute file will display what type of Error detection
|
Description: This attribute file will display what type of Error detection
|
||||||
and correction is being utilized. For example: S4ECD4ED would
|
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
|
What: /sys/devices/system/edac/mc/mc*/(dimm|rank)*/dimm_label
|
||||||
Date: April 2012
|
Date: April 2012
|
||||||
Contact: Mauro Carvalho Chehab <mchehab@redhat.com>
|
Contact: Mauro Carvalho Chehab <m.chehab@samsung.com>
|
||||||
linux-edac@vger.kernel.org
|
linux-edac@vger.kernel.org
|
||||||
Description: This control file allows this DIMM to have a label assigned
|
Description: This control file allows this DIMM to have a label assigned
|
||||||
to it. With this label in the module, when errors occur
|
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
|
What: /sys/devices/system/edac/mc/mc*/(dimm|rank)*/dimm_location
|
||||||
Date: April 2012
|
Date: April 2012
|
||||||
Contact: Mauro Carvalho Chehab <mchehab@redhat.com>
|
Contact: Mauro Carvalho Chehab <m.chehab@samsung.com>
|
||||||
linux-edac@vger.kernel.org
|
linux-edac@vger.kernel.org
|
||||||
Description: This attribute file will display the location (csrow/channel,
|
Description: This attribute file will display the location (csrow/channel,
|
||||||
branch/channel/slot or channel/slot) of the dimm or rank.
|
branch/channel/slot or channel/slot) of the dimm or rank.
|
||||||
|
|
||||||
What: /sys/devices/system/edac/mc/mc*/(dimm|rank)*/dimm_mem_type
|
What: /sys/devices/system/edac/mc/mc*/(dimm|rank)*/dimm_mem_type
|
||||||
Date: April 2012
|
Date: April 2012
|
||||||
Contact: Mauro Carvalho Chehab <mchehab@redhat.com>
|
Contact: Mauro Carvalho Chehab <m.chehab@samsung.com>
|
||||||
linux-edac@vger.kernel.org
|
linux-edac@vger.kernel.org
|
||||||
Description: This attribute file will display what type of memory is
|
Description: This attribute file will display what type of memory is
|
||||||
currently on this csrow. Normally, either buffered or
|
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>
|
<orderedlist>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>The <constant>VIDIOC_G_CHIP_IDENT</constant> ioctl was renamed
|
<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 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>
|
was renamed to <structname id="v4l2-chip-ident-old">v4l2_chip_ident_old</structname>.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
@ -2513,6 +2513,16 @@ that used it. It was originally scheduled for removal in 2.6.35.
|
||||||
</orderedlist>
|
</orderedlist>
|
||||||
</section>
|
</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">
|
<section id="other">
|
||||||
<title>Relation of V4L2 to other Linux multimedia APIs</title>
|
<title>Relation of V4L2 to other Linux multimedia APIs</title>
|
||||||
|
|
||||||
|
@ -2596,7 +2606,7 @@ and may change in the future.</para>
|
||||||
ioctls.</para>
|
ioctls.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>&VIDIOC-DBG-G-CHIP-IDENT; ioctl.</para>
|
<para>&VIDIOC-DBG-G-CHIP-INFO; ioctl.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>&VIDIOC-ENUM-DV-TIMINGS;, &VIDIOC-QUERY-DV-TIMINGS; and
|
<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
|
(compat.xml), along with the possible impact on existing drivers and
|
||||||
applications. -->
|
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>
|
<revision>
|
||||||
<revnumber>3.10</revnumber>
|
<revnumber>3.10</revnumber>
|
||||||
<date>2013-03-25</date>
|
<date>2013-03-25</date>
|
||||||
|
@ -493,7 +501,7 @@ and discussions on the V4L mailing list.</revremark>
|
||||||
</partinfo>
|
</partinfo>
|
||||||
|
|
||||||
<title>Video for Linux Two API Specification</title>
|
<title>Video for Linux Two API Specification</title>
|
||||||
<subtitle>Revision 3.10</subtitle>
|
<subtitle>Revision 3.11</subtitle>
|
||||||
|
|
||||||
<chapter id="common">
|
<chapter id="common">
|
||||||
&sub-common;
|
&sub-common;
|
||||||
|
@ -547,7 +555,6 @@ and discussions on the V4L mailing list.</revremark>
|
||||||
<!-- All ioctls go here. -->
|
<!-- All ioctls go here. -->
|
||||||
&sub-create-bufs;
|
&sub-create-bufs;
|
||||||
&sub-cropcap;
|
&sub-cropcap;
|
||||||
&sub-dbg-g-chip-ident;
|
|
||||||
&sub-dbg-g-chip-info;
|
&sub-dbg-g-chip-info;
|
||||||
&sub-dbg-g-register;
|
&sub-dbg-g-register;
|
||||||
&sub-decoder-cmd;
|
&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
|
and call <constant>VIDIOC_DBG_G_CHIP_INFO</constant> with a pointer to
|
||||||
this structure. On success the driver stores information about the
|
this structure. On success the driver stores information about the
|
||||||
selected chip in the <structfield>name</structfield> and
|
selected chip in the <structfield>name</structfield> and
|
||||||
<structfield>flags</structfield> fields. On failure the structure
|
<structfield>flags</structfield> fields.</para>
|
||||||
remains unchanged.</para>
|
|
||||||
|
|
||||||
<para>When <structfield>match.type</structfield> is
|
<para>When <structfield>match.type</structfield> is
|
||||||
<constant>V4L2_CHIP_MATCH_BRIDGE</constant>,
|
<constant>V4L2_CHIP_MATCH_BRIDGE</constant>,
|
||||||
|
@ -132,7 +131,7 @@ to the <structfield>type</structfield> field.</entry>
|
||||||
<entry>char</entry>
|
<entry>char</entry>
|
||||||
<entry><structfield>name[32]</structfield></entry>
|
<entry><structfield>name[32]</structfield></entry>
|
||||||
<entry>Match a chip by this name, interpreted according
|
<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>
|
</row>
|
||||||
</tbody>
|
</tbody>
|
||||||
</tgroup>
|
</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
|
<entry>Match the nth chip on the card, zero for the
|
||||||
bridge chip. Does not match sub-devices.</entry>
|
bridge chip. Does not match sub-devices.</entry>
|
||||||
</row>
|
</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>
|
<row>
|
||||||
<entry><constant>V4L2_CHIP_MATCH_SUBDEV</constant></entry>
|
<entry><constant>V4L2_CHIP_MATCH_SUBDEV</constant></entry>
|
||||||
<entry>4</entry>
|
<entry>4</entry>
|
||||||
|
|
|
@ -76,7 +76,7 @@ compiled with the <constant>CONFIG_VIDEO_ADV_DEBUG</constant> option
|
||||||
to enable these ioctls.</para>
|
to enable these ioctls.</para>
|
||||||
|
|
||||||
<para>To write a register applications must initialize all fields
|
<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
|
<constant>VIDIOC_DBG_S_REGISTER</constant> with a pointer to this
|
||||||
structure. The <structfield>match.type</structfield> and
|
structure. The <structfield>match.type</structfield> and
|
||||||
<structfield>match.addr</structfield> or <structfield>match.name</structfield>
|
<structfield>match.addr</structfield> or <structfield>match.name</structfield>
|
||||||
|
@ -91,8 +91,8 @@ written into the register.</para>
|
||||||
<structfield>reg</structfield> fields, and call
|
<structfield>reg</structfield> fields, and call
|
||||||
<constant>VIDIOC_DBG_G_REGISTER</constant> with a pointer to this
|
<constant>VIDIOC_DBG_G_REGISTER</constant> with a pointer to this
|
||||||
structure. On success the driver stores the register value in the
|
structure. On success the driver stores the register value in the
|
||||||
<structfield>val</structfield> field. On failure the structure remains
|
<structfield>val</structfield> field and the size (in bytes) of the
|
||||||
unchanged.</para>
|
value in <structfield>size</structfield>.</para>
|
||||||
|
|
||||||
<para>When <structfield>match.type</structfield> is
|
<para>When <structfield>match.type</structfield> is
|
||||||
<constant>V4L2_CHIP_MATCH_BRIDGE</constant>,
|
<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
|
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>
|
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
|
<para>When <structfield>match.type</structfield> is
|
||||||
<constant>V4L2_CHIP_MATCH_SUBDEV</constant>,
|
<constant>V4L2_CHIP_MATCH_SUBDEV</constant>,
|
||||||
<structfield>match.addr</structfield> selects the nth sub-device.</para>
|
<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.
|
<para>These ioctls are optional, not all drivers may support them.
|
||||||
However when a driver supports these ioctls it must also support
|
However when a driver supports these ioctls it must also support
|
||||||
&VIDIOC-DBG-G-CHIP-INFO;. Conversely it may 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
|
url="http://linuxtv.org/repo/">http://linuxtv.org/repo/</ulink> for
|
||||||
access instructions.</para>
|
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. -->
|
contains a duplicate of this table. -->
|
||||||
<table pgwide="1" frame="none" id="v4l2-dbg-match">
|
<table pgwide="1" frame="none" id="v4l2-dbg-match">
|
||||||
<title>struct <structname>v4l2_dbg_match</structname></title>
|
<title>struct <structname>v4l2_dbg_match</structname></title>
|
||||||
|
@ -160,7 +130,7 @@ access instructions.</para>
|
||||||
<row>
|
<row>
|
||||||
<entry>__u32</entry>
|
<entry>__u32</entry>
|
||||||
<entry><structfield>type</structfield></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>
|
possible types.</entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
|
@ -179,7 +149,7 @@ to the <structfield>type</structfield> field.</entry>
|
||||||
<entry>char</entry>
|
<entry>char</entry>
|
||||||
<entry><structfield>name[32]</structfield></entry>
|
<entry><structfield>name[32]</structfield></entry>
|
||||||
<entry>Match a chip by this name, interpreted according
|
<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>
|
</row>
|
||||||
</tbody>
|
</tbody>
|
||||||
</tgroup>
|
</tgroup>
|
||||||
|
@ -198,6 +168,11 @@ to the <structfield>type</structfield> field.</entry>
|
||||||
<entry><structfield>match</structfield></entry>
|
<entry><structfield>match</structfield></entry>
|
||||||
<entry>How to match the chip, see <xref linkend="v4l2-dbg-match" />.</entry>
|
<entry>How to match the chip, see <xref linkend="v4l2-dbg-match" />.</entry>
|
||||||
</row>
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>__u32</entry>
|
||||||
|
<entry><structfield>size</structfield></entry>
|
||||||
|
<entry>The register size in bytes.</entry>
|
||||||
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>__u64</entry>
|
<entry>__u64</entry>
|
||||||
<entry><structfield>reg</structfield></entry>
|
<entry><structfield>reg</structfield></entry>
|
||||||
|
@ -213,7 +188,7 @@ register.</entry>
|
||||||
</tgroup>
|
</tgroup>
|
||||||
</table>
|
</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. -->
|
contains a duplicate of this table. -->
|
||||||
<table pgwide="1" frame="none" id="chip-match-types">
|
<table pgwide="1" frame="none" id="chip-match-types">
|
||||||
<title>Chip Match Types</title>
|
<title>Chip Match Types</title>
|
||||||
|
@ -226,21 +201,6 @@ register.</entry>
|
||||||
<entry>Match the nth chip on the card, zero for the
|
<entry>Match the nth chip on the card, zero for the
|
||||||
bridge chip. Does not match sub-devices.</entry>
|
bridge chip. Does not match sub-devices.</entry>
|
||||||
</row>
|
</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>
|
<row>
|
||||||
<entry><constant>V4L2_CHIP_MATCH_SUBDEV</constant></entry>
|
<entry><constant>V4L2_CHIP_MATCH_SUBDEV</constant></entry>
|
||||||
<entry>4</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
|
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
|
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
|
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
|
possible or fails, the set must contain all standards supported by the
|
||||||
current video input or output.</para>
|
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.
|
A: This is what you would need in your kernel code to receive notifications.
|
||||||
|
|
||||||
#include <linux/cpu.h>
|
#include <linux/cpu.h>
|
||||||
static int __cpuinit foobar_cpu_callback(struct notifier_block *nfb,
|
static int foobar_cpu_callback(struct notifier_block *nfb,
|
||||||
unsigned long action, void *hcpu)
|
unsigned long action, void *hcpu)
|
||||||
{
|
{
|
||||||
unsigned int cpu = (unsigned long)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;
|
return NOTIFY_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct notifier_block __cpuinitdata foobar_cpu_notifer =
|
static struct notifier_block foobar_cpu_notifer =
|
||||||
{
|
{
|
||||||
.notifier_call = foobar_cpu_callback,
|
.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:
|
Required properties:
|
||||||
|
|
||||||
- compatible : should be "samsung,exynos4212-fimc-lite" for Exynos4212 and
|
- compatible : should be one of:
|
||||||
Exynos4412 SoCs;
|
"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
|
- reg : physical base address and size of the device memory mapped
|
||||||
registers;
|
registers;
|
||||||
- interrupts : should contain FIMC-LITE interrupt;
|
- 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 */
|
/* MIPI CSI-2 bus IF sensor */
|
||||||
s5c73m3: sensor@0x1a {
|
s5c73m3: sensor@0x1a {
|
||||||
compatible = "samsung,s5c73m3";
|
compatible = "samsung,s5c73m3";
|
||||||
reg = <0x1a>;
|
reg = <0x1a>;
|
||||||
vddio-supply = <...>;
|
vddio-supply = <...>;
|
||||||
|
|
||||||
clock-frequency = <24000000>;
|
clock-frequency = <24000000>;
|
||||||
clocks = <...>;
|
clocks = <...>;
|
||||||
clock-names = "mclk";
|
clock-names = "mclk";
|
||||||
|
|
||||||
port {
|
port {
|
||||||
s5c73m3_1: endpoint {
|
s5c73m3_1: endpoint {
|
||||||
data-lanes = <1 2 3 4>;
|
data-lanes = <1 2 3 4>;
|
||||||
remote-endpoint = <&csis0_ep>;
|
remote-endpoint = <&csis0_ep>;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -5,8 +5,8 @@ Required properties:
|
||||||
|
|
||||||
- compatible : "samsung,s5pv210-csis" for S5PV210 (S5PC110),
|
- compatible : "samsung,s5pv210-csis" for S5PV210 (S5PC110),
|
||||||
"samsung,exynos4210-csis" for Exynos4210 (S5PC210),
|
"samsung,exynos4210-csis" for Exynos4210 (S5PC210),
|
||||||
"samsung,exynos4212-csis" for Exynos4212/Exynos4412
|
"samsung,exynos4212-csis" for Exynos4212/Exynos4412,
|
||||||
SoC series;
|
"samsung,exynos5250-csis" for Exynos5250;
|
||||||
- reg : offset and length of the register set for the device;
|
- reg : offset and length of the register set for the device;
|
||||||
- interrupts : should contain MIPI CSIS interrupt; the format of the
|
- interrupts : should contain MIPI CSIS interrupt; the format of the
|
||||||
interrupt specifier depends on the interrupt controller;
|
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"
|
- compatible : should be "brcm,bcm2835-pm-wdt"
|
||||||
- reg : Specifies base physical address and size of the registers.
|
- reg : Specifies base physical address and size of the registers.
|
||||||
|
|
||||||
|
Optional properties:
|
||||||
|
|
||||||
|
- timeout-sec : Contains the watchdog timeout in seconds
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|
||||||
watchdog {
|
watchdog {
|
||||||
compatible = "brcm,bcm2835-pm-wdt";
|
compatible = "brcm,bcm2835-pm-wdt";
|
||||||
reg = <0x7e100000 0x28>;
|
reg = <0x7e100000 0x28>;
|
||||||
|
timeout-sec = <10>;
|
||||||
};
|
};
|
||||||
|
|
|
@ -18,6 +18,8 @@ Mount Options
|
||||||
=============
|
=============
|
||||||
|
|
||||||
When mounting an XFS filesystem, the following options are accepted.
|
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
|
allocsize=size
|
||||||
Sets the buffered I/O end-of-file preallocation size when
|
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)
|
Valid values for this option are page size (typically 4KiB)
|
||||||
through to 1GiB, inclusive, in power-of-2 increments.
|
through to 1GiB, inclusive, in power-of-2 increments.
|
||||||
|
|
||||||
attr2/noattr2
|
The default behaviour is for dynamic end-of-file
|
||||||
The options enable/disable (default is disabled for backward
|
preallocation size, which uses a set of heuristics to
|
||||||
compatibility on-disk) an "opportunistic" improvement to be
|
optimise the preallocation size based on the current
|
||||||
made in the way inline extended attributes are stored on-disk.
|
allocation patterns within the file and the access patterns
|
||||||
When the new form is used for the first time (by setting or
|
to the file. Specifying a fixed allocsize value turns off
|
||||||
removing extended attributes) the on-disk superblock feature
|
the dynamic behaviour.
|
||||||
bit field will be updated to reflect this format being in use.
|
|
||||||
|
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
|
CRC enabled filesystems always use the attr2 format, and so
|
||||||
will reject the noattr2 mount option if it is set.
|
will reject the noattr2 mount option if it is set.
|
||||||
|
|
||||||
barrier
|
barrier (*)
|
||||||
Enables the use of block layer write barriers for writes into
|
nobarrier
|
||||||
the journal and unwritten extent conversion. This allows for
|
Enables/disables the use of block layer write barriers for
|
||||||
drive level write caching to be enabled, for devices that
|
writes into the journal and for data integrity operations.
|
||||||
support write barriers.
|
This allows for drive level write caching to be enabled, for
|
||||||
|
devices that support write barriers.
|
||||||
|
|
||||||
discard
|
discard
|
||||||
Issue command to let the block device reclaim space freed by the
|
nodiscard (*)
|
||||||
filesystem. This is useful for SSD devices, thinly provisioned
|
Enable/disable the issuing of commands to let the block
|
||||||
LUNs and virtual machine images, but may have a performance
|
device reclaim space freed by the filesystem. This is
|
||||||
impact.
|
useful for SSD devices, thinly provisioned LUNs and virtual
|
||||||
|
machine images, but may have a performance impact.
|
||||||
|
|
||||||
dmapi
|
Note: It is currently recommended that you use the fstrim
|
||||||
Enable the DMAPI (Data Management API) event callouts.
|
application to discard unused blocks rather than the discard
|
||||||
Use with the "mtpt" option.
|
mount option because the performance impact of this option
|
||||||
|
is quite severe.
|
||||||
|
|
||||||
grpid/bsdgroups and nogrpid/sysvgroups
|
grpid/bsdgroups
|
||||||
These options define what group ID a newly created file gets.
|
nogrpid/sysvgroups (*)
|
||||||
When grpid is set, it takes the group ID of the directory in
|
These options define what group ID a newly created file
|
||||||
which it is created; otherwise (the default) it takes the fsgid
|
gets. When grpid is set, it takes the group ID of the
|
||||||
of the current process, unless the directory has the setgid bit
|
directory in which it is created; otherwise it takes the
|
||||||
set, in which case it takes the gid from the parent directory,
|
fsgid of the current process, unless the directory has the
|
||||||
and also gets the setgid bit set if it is a directory itself.
|
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
|
filestreams
|
||||||
In memory inode hashes have been removed, so this option has
|
Make the data allocator use the filestreams allocation mode
|
||||||
no function as of August 2007. Option is deprecated.
|
across the entire filesystem rather than just on directories
|
||||||
|
configured to use it.
|
||||||
|
|
||||||
ikeep/noikeep
|
ikeep
|
||||||
When ikeep is specified, XFS does not delete empty inode clusters
|
noikeep (*)
|
||||||
and keeps them around on disk. ikeep is the traditional XFS
|
When ikeep is specified, XFS does not delete empty inode
|
||||||
behaviour. When noikeep is specified, empty inode clusters
|
clusters and keeps them around on disk. When noikeep is
|
||||||
are returned to the free space pool. The default is noikeep for
|
specified, empty inode clusters are returned to the free
|
||||||
non-DMAPI mounts, while ikeep is the default when DMAPI is in use.
|
space pool.
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
inode32
|
inode32
|
||||||
Indicates that XFS is limited to create inodes at locations which
|
inode64 (*)
|
||||||
will not result in inode numbers with more than 32 bits of
|
When inode32 is specified, it indicates that XFS limits
|
||||||
significance. This is provided for backwards compatibility, since
|
inode creation to locations which will not result in inode
|
||||||
64 bits inode numbers might cause problems for some applications
|
numbers with more than 32 bits of significance.
|
||||||
that cannot handle large inode numbers.
|
|
||||||
|
|
||||||
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
|
If "nolargeio" is specified, the optimal I/O reported in
|
||||||
st_blksize by stat(2) will be as small as possible to allow user
|
st_blksize by stat(2) will be as small as possible to allow
|
||||||
applications to avoid inefficient read/modify/write I/O.
|
user applications to avoid inefficient read/modify/write
|
||||||
If "largeio" specified, a filesystem that has a "swidth" specified
|
I/O. This is typically the page size of the machine, as
|
||||||
will return the "swidth" value (in bytes) in st_blksize. If the
|
this is the granularity of the page cache.
|
||||||
filesystem does not have a "swidth" specified but does specify
|
|
||||||
an "allocsize" then "allocsize" (in bytes) will be returned
|
If "largeio" specified, a filesystem that was created with a
|
||||||
instead.
|
"swidth" specified will return the "swidth" value (in bytes)
|
||||||
If neither of these two options are specified, then filesystem
|
in st_blksize. If the filesystem does not have a "swidth"
|
||||||
will behave as if "nolargeio" was specified.
|
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
|
logbufs=value
|
||||||
Set the number of in-memory log buffers. Valid numbers range
|
Set the number of in-memory log buffers. Valid numbers
|
||||||
from 2-8 inclusive.
|
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
|
The default value is 8 buffers.
|
||||||
of 32KiB, 3 buffers for filesystems with a blocksize of 16KiB
|
|
||||||
and 2 buffers for all other configurations. Increasing the
|
If the memory cost of 8 log buffers is too high on small
|
||||||
number of buffers may increase performance on some workloads
|
systems, then it may be reduced at some cost to performance
|
||||||
at the cost of the memory used for the additional log buffers
|
on metadata intensive workloads. The logbsize option below
|
||||||
and their associated control structures.
|
controls the size of each buffer and so is also relevent to
|
||||||
|
this case.
|
||||||
|
|
||||||
logbsize=value
|
logbsize=value
|
||||||
Set the size of each in-memory log buffer.
|
Set the size of each in-memory log buffer. The size may be
|
||||||
Size may be specified in bytes, or in kilobytes with a "k" suffix.
|
specified in bytes, or in kilobytes with a "k" suffix.
|
||||||
Valid sizes for version 1 and version 2 logs are 16384 (16k) and
|
Valid sizes for version 1 and version 2 logs are 16384 (16k)
|
||||||
32768 (32k). Valid sizes for version 2 logs also include
|
and 32768 (32k). Valid sizes for version 2 logs also
|
||||||
65536 (64k), 131072 (128k) and 262144 (256k).
|
include 65536 (64k), 131072 (128k) and 262144 (256k). The
|
||||||
The default value for machines with more than 32MiB of memory
|
logbsize must be an integer multiple of the log
|
||||||
is 32768, machines with less memory use 16384 by default.
|
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
|
logdev=device and rtdev=device
|
||||||
Use an external log (metadata journal) and/or real-time 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
|
optional, and the log section can be separate from the data
|
||||||
section or contained within it.
|
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
|
noalign
|
||||||
Data allocations will not be aligned at stripe unit boundaries.
|
Data allocations will not be aligned at stripe unit
|
||||||
|
boundaries. This is only relevant to filesystems created
|
||||||
noatime
|
with non-zero data alignment parameters (sunit, swidth) by
|
||||||
Access timestamps are not updated when a file is read.
|
mkfs.
|
||||||
|
|
||||||
norecovery
|
norecovery
|
||||||
The filesystem will be mounted without running log recovery.
|
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.
|
the mount will fail.
|
||||||
|
|
||||||
nouuid
|
nouuid
|
||||||
Don't check for double mounted file systems using the file system uuid.
|
Don't check for double mounted file systems using the file
|
||||||
This is useful to mount LVM snapshot volumes.
|
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
|
uquota/usrquota/uqnoenforce/quota
|
||||||
User disk quota accounting enabled, and limits (optionally)
|
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.
|
enforced. Refer to xfs_quota(8) for further details.
|
||||||
|
|
||||||
sunit=value and swidth=value
|
sunit=value and swidth=value
|
||||||
Used to specify the stripe unit and width for a RAID device or
|
Used to specify the stripe unit and width for a RAID device
|
||||||
a stripe volume. "value" must be specified in 512-byte block
|
or a stripe volume. "value" must be specified in 512-byte
|
||||||
units.
|
block units. These options are only relevant to filesystems
|
||||||
If this option is not specified and the filesystem was made on
|
that were created with non-zero data alignment parameters.
|
||||||
a stripe volume or the stripe width or unit were specified for
|
|
||||||
the RAID device at mkfs time, then the mount system call will
|
The sunit and swidth parameters specified must be compatible
|
||||||
restore the value from the superblock. For filesystems that
|
with the existing filesystem alignment characteristics. In
|
||||||
are made directly on RAID devices, these options can be used
|
general, that means the only valid changes to sunit are
|
||||||
to override the information in the superblock if the underlying
|
increasing it by a power-of-2 multiple. Valid swidth values
|
||||||
disk layout changes after the filesystem has been created.
|
are any integer multiple of a valid sunit value.
|
||||||
The "swidth" option is required if the "sunit" option has been
|
|
||||||
specified, and must be a multiple of the "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
|
swalloc
|
||||||
Data allocations will be rounded up to stripe width boundaries
|
Data allocations will be rounded up to stripe width boundaries
|
||||||
when the current end of file is being extended and the file
|
when the current end of file is being extended and the file
|
||||||
size is larger than the stripe width size.
|
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
|
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".
|
in /proc/fs/xfs/stat. It then immediately resets to "0".
|
||||||
|
|
||||||
fs.xfs.xfssyncd_centisecs (Min: 100 Default: 3000 Max: 720000)
|
fs.xfs.xfssyncd_centisecs (Min: 100 Default: 3000 Max: 720000)
|
||||||
The interval at which the xfssyncd thread flushes metadata
|
The interval at which the filesystem flushes metadata
|
||||||
out to disk. This thread will flush log activity out, and
|
out to disk and runs internal cache cleanup routines.
|
||||||
do some processing on unlinked inodes.
|
|
||||||
|
|
||||||
fs.xfs.xfsbufd_centisecs (Min: 50 Default: 100 Max: 3000)
|
fs.xfs.filestream_centisecs (Min: 1 Default: 3000 Max: 360000)
|
||||||
The interval at which xfsbufd scans the dirty metadata buffers list.
|
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)
|
fs.xfs.speculative_prealloc_lifetime
|
||||||
The age at which xfsbufd flushes dirty metadata buffers to disk.
|
(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)
|
fs.xfs.error_level (Min: 0 Default: 3 Max: 11)
|
||||||
A volume knob for error reporting when internal errors occur.
|
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
|
by the xfs_io(8) chattr command on a directory to be
|
||||||
inherited by files in that directory.
|
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)
|
fs.xfs.rotorstep (Min: 1 Default: 1 Max: 256)
|
||||||
In "inode32" allocation mode, this option determines how many
|
In "inode32" allocation mode, this option determines how many
|
||||||
files the allocator attempts to allocate in the same allocation
|
files the allocator attempts to allocate in the same allocation
|
||||||
group before moving to the next allocation group. The intent
|
group before moving to the next allocation group. The intent
|
||||||
is to control the rate at which the allocator moves between
|
is to control the rate at which the allocator moves between
|
||||||
allocation groups when allocating extents for new files.
|
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,
|
media_entity_find_link(struct media_pad *source,
|
||||||
struct media_pad *sink);
|
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.
|
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.
|
it's a Per-CPU variable.
|
||||||
Default: 64
|
Default: 64
|
||||||
|
|
||||||
low_latency_read
|
busy_read
|
||||||
----------------
|
----------------
|
||||||
Low latency busy poll timeout for socket reads. (needs CONFIG_NET_LL_RX_POLL)
|
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.
|
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.
|
This sets the default value of the SO_BUSY_POLL socket option.
|
||||||
Can be set or overridden per socket by setting socket option SO_LL, which is
|
Can be set or overridden per socket by setting socket option SO_BUSY_POLL,
|
||||||
the preferred method of enabling.
|
which is the preferred method of enabling. If you need to enable the feature
|
||||||
If you need to enable the feature globally via sysctl, a value of 50 is recommended.
|
globally via sysctl, a value of 50 is recommended.
|
||||||
Will increase power usage.
|
Will increase power usage.
|
||||||
Default: 0 (off)
|
Default: 0 (off)
|
||||||
|
|
||||||
low_latency_poll
|
busy_poll
|
||||||
----------------
|
----------------
|
||||||
Low latency busy poll timeout for poll and select. (needs CONFIG_NET_LL_RX_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.
|
Approximate time in us to busy loop waiting for events.
|
||||||
Recommended value depends on the number of sockets you poll on.
|
Recommended value depends on the number of sockets you poll on.
|
||||||
For several sockets 50, for several hundreds 100.
|
For several sockets 50, for several hundreds 100.
|
||||||
For more than that you probably want to use epoll.
|
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
|
Note that only sockets with SO_BUSY_POLL set will be busy polled,
|
||||||
selectively set SO_LL on those sockets or set sysctl.net.low_latency_read globally.
|
so you want to either selectively set SO_BUSY_POLL on those sockets or set
|
||||||
|
sysctl.net.busy_read globally.
|
||||||
Will increase power usage.
|
Will increase power usage.
|
||||||
Default: 0 (off)
|
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]
|
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]
|
160 -> Tongwei Video Technology TD-3116 [f200:3116]
|
||||||
161 -> Aposonic W-DVR [0279:0228]
|
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]
|
189 -> Kworld PC150-U [17de:a134]
|
||||||
190 -> Asus My Cinema PS3-100 [1043:48cd]
|
190 -> Asus My Cinema PS3-100 [1043:48cd]
|
||||||
191 -> Hawell HW-9004V1
|
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=86 - Tena TNF5337 MFD
|
||||||
tuner=87 - Xceive 4000 tuner
|
tuner=87 - Xceive 4000 tuner
|
||||||
tuner=88 - Xceive 5000C tuner
|
tuner=88 - Xceive 5000C tuner
|
||||||
tuner=89 - Sony PAL+SECAM (BTF-PG472Z)
|
tuner=89 - Sony BTF-PG472Z PAL/SECAM
|
||||||
tuner=90 - Sony NTSC-M-JP (BTF-PK467Z)
|
tuner=90 - Sony BTF-PK467Z NTSC-M-JP
|
||||||
tuner=91 - Sony NTSC-M (BTF-PB463Z)
|
tuner=91 - Sony BTF-PB463Z NTSC-M
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
Samsung S5P/EXYNOS4 FIMC driver
|
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
|
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
|
path. There are multiple FIMC instances in the SoCs (up to 4), having
|
||||||
slightly different capabilities, like pixel alignment constraints, rotator
|
slightly different capabilities, like pixel alignment constraints, rotator
|
||||||
availability, LCD writeback support, etc. The driver is located at
|
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
|
1. Supported SoCs
|
||||||
=================
|
=================
|
||||||
|
@ -36,21 +36,21 @@ Not currently supported:
|
||||||
=====================
|
=====================
|
||||||
|
|
||||||
- media device driver
|
- media device driver
|
||||||
drivers/media/platform/s5p-fimc/fimc-mdevice.[ch]
|
drivers/media/platform/exynos4-is/media-dev.[ch]
|
||||||
|
|
||||||
- camera capture video device driver
|
- 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
|
- 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)
|
- video post-processor (mem-to-mem)
|
||||||
drivers/media/platform/s5p-fimc/fimc-core.c
|
drivers/media/platform/exynos4-is/fimc-core.c
|
||||||
|
|
||||||
- common files
|
- common files
|
||||||
drivers/media/platform/s5p-fimc/fimc-core.h
|
drivers/media/platform/exynos4-is/fimc-core.h
|
||||||
drivers/media/platform/s5p-fimc/fimc-reg.h
|
drivers/media/platform/exynos4-is/fimc-reg.h
|
||||||
drivers/media/platform/s5p-fimc/regs-fimc.h
|
drivers/media/platform/exynos4-is/regs-fimc.h
|
||||||
|
|
||||||
4. User space interfaces
|
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
|
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_FIMC0 mandatory
|
||||||
CONFIG_S5P_DEV_FIMC1 \
|
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:
|
It looks like this:
|
||||||
|
|
||||||
struct v4l2_subdev_core_ops {
|
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 (*log_status)(struct v4l2_subdev *sd);
|
||||||
int (*init)(struct v4l2_subdev *sd, u32 val);
|
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
|
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.
|
perform the checks mentioned above in addition to their own checks.
|
||||||
|
|
||||||
A device (bridge) driver needs to register the v4l2_subdev with the
|
There are currently two ways to register subdevices with the V4L2 core. The
|
||||||
v4l2_device:
|
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);
|
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:
|
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:
|
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
|
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
|
is NULL, -ENOIOCTLCMD if either subdev->core or subdev->core->g_std is
|
||||||
NULL, or the actual result of the subdev->ops->core->g_chip_ident ops.
|
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:
|
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
|
Any subdev that does not support this ops is skipped and error results are
|
||||||
ignored. If you want to check for errors use this:
|
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
|
Any error except -ENOIOCTLCMD will exit the loop with that error. If no
|
||||||
errors (except -ENOIOCTLCMD) occurred, then 0 is returned.
|
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.
|
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
|
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
|
The default video_device_release() callback just calls kfree to free the
|
||||||
allocated memory.
|
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:
|
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.
|
- 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),
|
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.
|
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
|
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.
|
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
|
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
|
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 a particular
|
(cx8802). Since the v4l2_device cannot be associated with two PCI devices
|
||||||
PCI device it is setup without a parent device. But when the struct
|
at the same time it is setup without a parent device. But when the struct
|
||||||
video_device is setup you do know which parent PCI device to use.
|
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
|
- 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
|
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
|
An example on how the V4L2 events may be used can be found in the OMAP
|
||||||
3 ISP driver (drivers/media/platform/omap3isp).
|
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
|
nowayout: Watchdog cannot be stopped once started
|
||||||
(default=kernel config parameter)
|
(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:
|
mv64x60_wdt:
|
||||||
nowayout: Watchdog cannot be stopped once started
|
nowayout: Watchdog cannot be stopped once started
|
||||||
(default=kernel config parameter)
|
(default=kernel config parameter)
|
||||||
|
|
|
@ -247,7 +247,6 @@ i2c_client 结构体,i2c_set_clientdata() 函数可用于保存一个 v4l2_sub
|
||||||
这些结构体定义如下:
|
这些结构体定义如下:
|
||||||
|
|
||||||
struct v4l2_subdev_core_ops {
|
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 (*log_status)(struct v4l2_subdev *sd);
|
||||||
int (*init)(struct v4l2_subdev *sd, u32 val);
|
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;如果
|
这个宏将会做 NULL 指针检查,如果 subdev 为 NULL,则返回-ENODEV;如果
|
||||||
subdev->core 或 subdev->core->g_chip_ident 为 NULL,则返回 -ENOIOCTLCMD;
|
subdev->core 或 subdev->core->g_std 为 NULL,则返回 -ENOIOCTLCMD;
|
||||||
否则将返回 subdev->ops->core->g_chip_ident ops 调用的实际结果。
|
否则将返回 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
|
除 -ENOIOCTLCMD 外的任何错误都会跳出循环并返回错误值。如果(除 -ENOIOCTLCMD
|
||||||
外)没有错误发生,则返回 0。
|
外)没有错误发生,则返回 0。
|
||||||
|
|
80
MAINTAINERS
80
MAINTAINERS
|
@ -1165,15 +1165,6 @@ L: linux-media@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
F: drivers/media/platform/s5p-g2d/
|
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
|
ARM/SAMSUNG S5P SERIES Multi Format Codec (MFC) SUPPORT
|
||||||
M: Kyungmin Park <kyungmin.park@samsung.com>
|
M: Kyungmin Park <kyungmin.park@samsung.com>
|
||||||
M: Kamil Debski <k.debski@samsung.com>
|
M: Kamil Debski <k.debski@samsung.com>
|
||||||
|
@ -1595,7 +1586,7 @@ F: include/net/ax25.h
|
||||||
F: net/ax25/
|
F: net/ax25/
|
||||||
|
|
||||||
AZ6007 DVB DRIVER
|
AZ6007 DVB DRIVER
|
||||||
M: Mauro Carvalho Chehab <mchehab@redhat.com>
|
M: Mauro Carvalho Chehab <m.chehab@samsung.com>
|
||||||
L: linux-media@vger.kernel.org
|
L: linux-media@vger.kernel.org
|
||||||
W: http://linuxtv.org
|
W: http://linuxtv.org
|
||||||
T: git git://linuxtv.org/media_tree.git
|
T: git git://linuxtv.org/media_tree.git
|
||||||
|
@ -1880,7 +1871,7 @@ F: Documentation/filesystems/btrfs.txt
|
||||||
F: fs/btrfs/
|
F: fs/btrfs/
|
||||||
|
|
||||||
BTTV VIDEO4LINUX DRIVER
|
BTTV VIDEO4LINUX DRIVER
|
||||||
M: Mauro Carvalho Chehab <mchehab@redhat.com>
|
M: Mauro Carvalho Chehab <m.chehab@samsung.com>
|
||||||
L: linux-media@vger.kernel.org
|
L: linux-media@vger.kernel.org
|
||||||
W: http://linuxtv.org
|
W: http://linuxtv.org
|
||||||
T: git git://linuxtv.org/media_tree.git
|
T: git git://linuxtv.org/media_tree.git
|
||||||
|
@ -2368,7 +2359,7 @@ F: drivers/media/common/cx2341x*
|
||||||
F: include/media/cx2341x*
|
F: include/media/cx2341x*
|
||||||
|
|
||||||
CX88 VIDEO4LINUX DRIVER
|
CX88 VIDEO4LINUX DRIVER
|
||||||
M: Mauro Carvalho Chehab <mchehab@redhat.com>
|
M: Mauro Carvalho Chehab <m.chehab@samsung.com>
|
||||||
L: linux-media@vger.kernel.org
|
L: linux-media@vger.kernel.org
|
||||||
W: http://linuxtv.org
|
W: http://linuxtv.org
|
||||||
T: git git://linuxtv.org/media_tree.git
|
T: git git://linuxtv.org/media_tree.git
|
||||||
|
@ -2990,7 +2981,7 @@ S: Maintained
|
||||||
F: drivers/edac/e7xxx_edac.c
|
F: drivers/edac/e7xxx_edac.c
|
||||||
|
|
||||||
EDAC-GHES
|
EDAC-GHES
|
||||||
M: Mauro Carvalho Chehab <mchehab@redhat.com>
|
M: Mauro Carvalho Chehab <m.chehab@samsung.com>
|
||||||
L: linux-edac@vger.kernel.org
|
L: linux-edac@vger.kernel.org
|
||||||
W: bluesmoke.sourceforge.net
|
W: bluesmoke.sourceforge.net
|
||||||
S: Maintained
|
S: Maintained
|
||||||
|
@ -3018,21 +3009,21 @@ S: Maintained
|
||||||
F: drivers/edac/i5000_edac.c
|
F: drivers/edac/i5000_edac.c
|
||||||
|
|
||||||
EDAC-I5400
|
EDAC-I5400
|
||||||
M: Mauro Carvalho Chehab <mchehab@redhat.com>
|
M: Mauro Carvalho Chehab <m.chehab@samsung.com>
|
||||||
L: linux-edac@vger.kernel.org
|
L: linux-edac@vger.kernel.org
|
||||||
W: bluesmoke.sourceforge.net
|
W: bluesmoke.sourceforge.net
|
||||||
S: Maintained
|
S: Maintained
|
||||||
F: drivers/edac/i5400_edac.c
|
F: drivers/edac/i5400_edac.c
|
||||||
|
|
||||||
EDAC-I7300
|
EDAC-I7300
|
||||||
M: Mauro Carvalho Chehab <mchehab@redhat.com>
|
M: Mauro Carvalho Chehab <m.chehab@samsung.com>
|
||||||
L: linux-edac@vger.kernel.org
|
L: linux-edac@vger.kernel.org
|
||||||
W: bluesmoke.sourceforge.net
|
W: bluesmoke.sourceforge.net
|
||||||
S: Maintained
|
S: Maintained
|
||||||
F: drivers/edac/i7300_edac.c
|
F: drivers/edac/i7300_edac.c
|
||||||
|
|
||||||
EDAC-I7CORE
|
EDAC-I7CORE
|
||||||
M: Mauro Carvalho Chehab <mchehab@redhat.com>
|
M: Mauro Carvalho Chehab <m.chehab@samsung.com>
|
||||||
L: linux-edac@vger.kernel.org
|
L: linux-edac@vger.kernel.org
|
||||||
W: bluesmoke.sourceforge.net
|
W: bluesmoke.sourceforge.net
|
||||||
S: Maintained
|
S: Maintained
|
||||||
|
@ -3061,7 +3052,7 @@ S: Maintained
|
||||||
F: drivers/edac/r82600_edac.c
|
F: drivers/edac/r82600_edac.c
|
||||||
|
|
||||||
EDAC-SBRIDGE
|
EDAC-SBRIDGE
|
||||||
M: Mauro Carvalho Chehab <mchehab@redhat.com>
|
M: Mauro Carvalho Chehab <m.chehab@samsung.com>
|
||||||
L: linux-edac@vger.kernel.org
|
L: linux-edac@vger.kernel.org
|
||||||
W: bluesmoke.sourceforge.net
|
W: bluesmoke.sourceforge.net
|
||||||
S: Maintained
|
S: Maintained
|
||||||
|
@ -3121,7 +3112,7 @@ S: Maintained
|
||||||
F: drivers/net/ethernet/ibm/ehea/
|
F: drivers/net/ethernet/ibm/ehea/
|
||||||
|
|
||||||
EM28XX VIDEO4LINUX DRIVER
|
EM28XX VIDEO4LINUX DRIVER
|
||||||
M: Mauro Carvalho Chehab <mchehab@redhat.com>
|
M: Mauro Carvalho Chehab <m.chehab@samsung.com>
|
||||||
L: linux-media@vger.kernel.org
|
L: linux-media@vger.kernel.org
|
||||||
W: http://linuxtv.org
|
W: http://linuxtv.org
|
||||||
T: git git://linuxtv.org/media_tree.git
|
T: git git://linuxtv.org/media_tree.git
|
||||||
|
@ -5317,7 +5308,7 @@ S: Maintained
|
||||||
F: drivers/media/radio/radio-maxiradio*
|
F: drivers/media/radio/radio-maxiradio*
|
||||||
|
|
||||||
MEDIA INPUT INFRASTRUCTURE (V4L/DVB)
|
MEDIA INPUT INFRASTRUCTURE (V4L/DVB)
|
||||||
M: Mauro Carvalho Chehab <mchehab@redhat.com>
|
M: Mauro Carvalho Chehab <m.chehab@samsung.com>
|
||||||
P: LinuxTV.org Project
|
P: LinuxTV.org Project
|
||||||
L: linux-media@vger.kernel.org
|
L: linux-media@vger.kernel.org
|
||||||
W: http://linuxtv.org
|
W: http://linuxtv.org
|
||||||
|
@ -5396,6 +5387,12 @@ F: drivers/mtd/
|
||||||
F: include/linux/mtd/
|
F: include/linux/mtd/
|
||||||
F: include/uapi/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
|
METAG ARCHITECTURE
|
||||||
M: James Hogan <james.hogan@imgtec.com>
|
M: James Hogan <james.hogan@imgtec.com>
|
||||||
S: Supported
|
S: Supported
|
||||||
|
@ -5439,6 +5436,28 @@ W: http://linuxtv.org
|
||||||
S: Odd Fixes
|
S: Odd Fixes
|
||||||
F: drivers/media/radio/radio-miropcm20*
|
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
|
MODULE SUPPORT
|
||||||
M: Rusty Russell <rusty@rustcorp.com.au>
|
M: Rusty Russell <rusty@rustcorp.com.au>
|
||||||
S: Maintained
|
S: Maintained
|
||||||
|
@ -6662,10 +6681,12 @@ F: Documentation/networking/LICENSE.qla3xxx
|
||||||
F: drivers/net/ethernet/qlogic/qla3xxx.*
|
F: drivers/net/ethernet/qlogic/qla3xxx.*
|
||||||
|
|
||||||
QLOGIC QLCNIC (1/10)Gb ETHERNET DRIVER
|
QLOGIC QLCNIC (1/10)Gb ETHERNET DRIVER
|
||||||
|
M: Himanshu Madhani <himanshu.madhani@qlogic.com>
|
||||||
M: Rajesh Borundia <rajesh.borundia@qlogic.com>
|
M: Rajesh Borundia <rajesh.borundia@qlogic.com>
|
||||||
M: Shahed Shaikh <shahed.shaikh@qlogic.com>
|
M: Shahed Shaikh <shahed.shaikh@qlogic.com>
|
||||||
M: Jitendra Kalsaria <jitendra.kalsaria@qlogic.com>
|
M: Jitendra Kalsaria <jitendra.kalsaria@qlogic.com>
|
||||||
M: Sony Chacko <sony.chacko@qlogic.com>
|
M: Sony Chacko <sony.chacko@qlogic.com>
|
||||||
|
M: Sucheta Chakraborty <sucheta.chakraborty@qlogic.com>
|
||||||
M: linux-driver@qlogic.com
|
M: linux-driver@qlogic.com
|
||||||
L: netdev@vger.kernel.org
|
L: netdev@vger.kernel.org
|
||||||
S: Supported
|
S: Supported
|
||||||
|
@ -7013,7 +7034,7 @@ S: Odd Fixes
|
||||||
F: drivers/media/i2c/saa6588*
|
F: drivers/media/i2c/saa6588*
|
||||||
|
|
||||||
SAA7134 VIDEO4LINUX DRIVER
|
SAA7134 VIDEO4LINUX DRIVER
|
||||||
M: Mauro Carvalho Chehab <mchehab@redhat.com>
|
M: Mauro Carvalho Chehab <m.chehab@samsung.com>
|
||||||
L: linux-media@vger.kernel.org
|
L: linux-media@vger.kernel.org
|
||||||
W: http://linuxtv.org
|
W: http://linuxtv.org
|
||||||
T: git git://linuxtv.org/media_tree.git
|
T: git git://linuxtv.org/media_tree.git
|
||||||
|
@ -7058,6 +7079,15 @@ F: drivers/regulator/s5m*.c
|
||||||
F: drivers/rtc/rtc-sec.c
|
F: drivers/rtc/rtc-sec.c
|
||||||
F: include/linux/mfd/samsung/
|
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
|
SAMSUNG S3C24XX/S3C64XX SOC SERIES CAMIF DRIVER
|
||||||
M: Sylwester Nawrocki <sylvester.nawrocki@gmail.com>
|
M: Sylwester Nawrocki <sylvester.nawrocki@gmail.com>
|
||||||
L: linux-media@vger.kernel.org
|
L: linux-media@vger.kernel.org
|
||||||
|
@ -7375,7 +7405,7 @@ S: Odd Fixes
|
||||||
F: drivers/media/radio/radio-si4713.h
|
F: drivers/media/radio/radio-si4713.h
|
||||||
|
|
||||||
SIANO DVB DRIVER
|
SIANO DVB DRIVER
|
||||||
M: Mauro Carvalho Chehab <mchehab@redhat.com>
|
M: Mauro Carvalho Chehab <m.chehab@samsung.com>
|
||||||
L: linux-media@vger.kernel.org
|
L: linux-media@vger.kernel.org
|
||||||
W: http://linuxtv.org
|
W: http://linuxtv.org
|
||||||
T: git git://linuxtv.org/media_tree.git
|
T: git git://linuxtv.org/media_tree.git
|
||||||
|
@ -8080,7 +8110,7 @@ S: Maintained
|
||||||
F: drivers/media/i2c/tda9840*
|
F: drivers/media/i2c/tda9840*
|
||||||
|
|
||||||
TEA5761 TUNER DRIVER
|
TEA5761 TUNER DRIVER
|
||||||
M: Mauro Carvalho Chehab <mchehab@redhat.com>
|
M: Mauro Carvalho Chehab <m.chehab@samsung.com>
|
||||||
L: linux-media@vger.kernel.org
|
L: linux-media@vger.kernel.org
|
||||||
W: http://linuxtv.org
|
W: http://linuxtv.org
|
||||||
T: git git://linuxtv.org/media_tree.git
|
T: git git://linuxtv.org/media_tree.git
|
||||||
|
@ -8088,7 +8118,7 @@ S: Odd fixes
|
||||||
F: drivers/media/tuners/tea5761.*
|
F: drivers/media/tuners/tea5761.*
|
||||||
|
|
||||||
TEA5767 TUNER DRIVER
|
TEA5767 TUNER DRIVER
|
||||||
M: Mauro Carvalho Chehab <mchehab@redhat.com>
|
M: Mauro Carvalho Chehab <m.chehab@samsung.com>
|
||||||
L: linux-media@vger.kernel.org
|
L: linux-media@vger.kernel.org
|
||||||
W: http://linuxtv.org
|
W: http://linuxtv.org
|
||||||
T: git git://linuxtv.org/media_tree.git
|
T: git git://linuxtv.org/media_tree.git
|
||||||
|
@ -8327,7 +8357,7 @@ F: include/linux/shmem_fs.h
|
||||||
F: mm/shmem.c
|
F: mm/shmem.c
|
||||||
|
|
||||||
TM6000 VIDEO4LINUX DRIVER
|
TM6000 VIDEO4LINUX DRIVER
|
||||||
M: Mauro Carvalho Chehab <mchehab@redhat.com>
|
M: Mauro Carvalho Chehab <m.chehab@samsung.com>
|
||||||
L: linux-media@vger.kernel.org
|
L: linux-media@vger.kernel.org
|
||||||
W: http://linuxtv.org
|
W: http://linuxtv.org
|
||||||
T: git git://linuxtv.org/media_tree.git
|
T: git git://linuxtv.org/media_tree.git
|
||||||
|
@ -9184,7 +9214,7 @@ S: Maintained
|
||||||
F: arch/x86/kernel/cpu/mcheck/*
|
F: arch/x86/kernel/cpu/mcheck/*
|
||||||
|
|
||||||
XC2028/3028 TUNER DRIVER
|
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
|
L: linux-media@vger.kernel.org
|
||||||
W: http://linuxtv.org
|
W: http://linuxtv.org
|
||||||
T: git git://linuxtv.org/media_tree.git
|
T: git git://linuxtv.org/media_tree.git
|
||||||
|
|
6
Makefile
6
Makefile
|
@ -1,8 +1,8 @@
|
||||||
VERSION = 3
|
VERSION = 3
|
||||||
PATCHLEVEL = 10
|
PATCHLEVEL = 11
|
||||||
SUBLEVEL = 0
|
SUBLEVEL = 0
|
||||||
EXTRAVERSION =
|
EXTRAVERSION = -rc2
|
||||||
NAME = Unicycling Gorilla
|
NAME = Linux for Workgroups
|
||||||
|
|
||||||
# *DOCUMENTATION*
|
# *DOCUMENTATION*
|
||||||
# To see a list of typical targets execute "make help"
|
# To see a list of typical targets execute "make help"
|
||||||
|
|
|
@ -32,7 +32,7 @@
|
||||||
#define O_SYNC (__O_SYNC|O_DSYNC)
|
#define O_SYNC (__O_SYNC|O_DSYNC)
|
||||||
|
|
||||||
#define O_PATH 040000000
|
#define O_PATH 040000000
|
||||||
#define O_TMPFILE 0100000000
|
#define __O_TMPFILE 0100000000
|
||||||
|
|
||||||
#define F_GETLK 7
|
#define F_GETLK 7
|
||||||
#define F_SETLK 8
|
#define F_SETLK 8
|
||||||
|
|
|
@ -81,6 +81,6 @@
|
||||||
|
|
||||||
#define SO_SELECT_ERR_QUEUE 45
|
#define SO_SELECT_ERR_QUEUE 45
|
||||||
|
|
||||||
#define SO_LL 46
|
#define SO_BUSY_POLL 46
|
||||||
|
|
||||||
#endif /* _UAPI_ASM_SOCKET_H */
|
#endif /* _UAPI_ASM_SOCKET_H */
|
||||||
|
|
|
@ -116,7 +116,7 @@ wait_boot_cpu_to_stop(int cpuid)
|
||||||
/*
|
/*
|
||||||
* Where secondaries begin a life of C.
|
* Where secondaries begin a life of C.
|
||||||
*/
|
*/
|
||||||
void __cpuinit
|
void
|
||||||
smp_callin(void)
|
smp_callin(void)
|
||||||
{
|
{
|
||||||
int cpuid = hard_smp_processor_id();
|
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
|
* Send a message to a secondary's console. "START" is one such
|
||||||
* interesting message. ;-)
|
* interesting message. ;-)
|
||||||
*/
|
*/
|
||||||
static void __cpuinit
|
static void
|
||||||
send_secondary_console_msg(char *str, int cpuid)
|
send_secondary_console_msg(char *str, int cpuid)
|
||||||
{
|
{
|
||||||
struct percpu_struct *cpu;
|
struct percpu_struct *cpu;
|
||||||
|
@ -285,7 +285,7 @@ recv_secondary_console_msg(void)
|
||||||
/*
|
/*
|
||||||
* Convince the console to have a secondary cpu begin execution.
|
* Convince the console to have a secondary cpu begin execution.
|
||||||
*/
|
*/
|
||||||
static int __cpuinit
|
static int
|
||||||
secondary_cpu_start(int cpuid, struct task_struct *idle)
|
secondary_cpu_start(int cpuid, struct task_struct *idle)
|
||||||
{
|
{
|
||||||
struct percpu_struct *cpu;
|
struct percpu_struct *cpu;
|
||||||
|
@ -356,7 +356,7 @@ secondary_cpu_start(int cpuid, struct task_struct *idle)
|
||||||
/*
|
/*
|
||||||
* Bring one cpu online.
|
* Bring one cpu online.
|
||||||
*/
|
*/
|
||||||
static int __cpuinit
|
static int
|
||||||
smp_boot_one_cpu(int cpuid, struct task_struct *idle)
|
smp_boot_one_cpu(int cpuid, struct task_struct *idle)
|
||||||
{
|
{
|
||||||
unsigned long timeout;
|
unsigned long timeout;
|
||||||
|
@ -472,7 +472,7 @@ smp_prepare_boot_cpu(void)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
int __cpuinit
|
int
|
||||||
__cpu_up(unsigned int cpu, struct task_struct *tidle)
|
__cpu_up(unsigned int cpu, struct task_struct *tidle)
|
||||||
{
|
{
|
||||||
smp_boot_one_cpu(cpu, tidle);
|
smp_boot_one_cpu(cpu, tidle);
|
||||||
|
|
|
@ -32,7 +32,7 @@
|
||||||
|
|
||||||
static int opDEC_fix;
|
static int opDEC_fix;
|
||||||
|
|
||||||
static void __cpuinit
|
static void
|
||||||
opDEC_check(void)
|
opDEC_check(void)
|
||||||
{
|
{
|
||||||
__asm__ __volatile__ (
|
__asm__ __volatile__ (
|
||||||
|
@ -1059,7 +1059,7 @@ give_sigbus:
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
void __cpuinit
|
void
|
||||||
trap_init(void)
|
trap_init(void)
|
||||||
{
|
{
|
||||||
/* Tell PAL-code what global pointer we want in the kernel. */
|
/* Tell PAL-code what global pointer we want in the kernel. */
|
||||||
|
|
|
@ -1316,7 +1316,7 @@ config ARM_ERRATA_754327
|
||||||
|
|
||||||
config ARM_ERRATA_364296
|
config ARM_ERRATA_364296
|
||||||
bool "ARM errata: Possible cache data corruption with hit-under-miss enabled"
|
bool "ARM errata: Possible cache data corruption with hit-under-miss enabled"
|
||||||
depends on CPU_V6 && !SMP
|
depends on CPU_V6
|
||||||
help
|
help
|
||||||
This options enables the workaround for the 364296 ARM1136
|
This options enables the workaround for the 364296 ARM1136
|
||||||
r0p2 erratum (possible cache data corruption with
|
r0p2 erratum (possible cache data corruption with
|
||||||
|
|
|
@ -510,6 +510,16 @@ choice
|
||||||
Say Y here if you want the debug print routines to direct
|
Say Y here if you want the debug print routines to direct
|
||||||
their output to the uart1 port on SiRFmarco devices.
|
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
|
config DEBUG_U300_UART
|
||||||
bool "Kernel low-level debugging messages via U300 UART0"
|
bool "Kernel low-level debugging messages via U300 UART0"
|
||||||
depends on ARCH_U300
|
depends on ARCH_U300
|
||||||
|
@ -564,16 +574,6 @@ choice
|
||||||
This option selects UART0 on VIA/Wondermedia System-on-a-chip
|
This option selects UART0 on VIA/Wondermedia System-on-a-chip
|
||||||
devices, including VT8500, WM8505, WM8650 and WM8850.
|
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
|
config DEBUG_LL_UART_NONE
|
||||||
bool "No low-level debugging UART"
|
bool "No low-level debugging UART"
|
||||||
depends on !ARCH_MULTIPLATFORM
|
depends on !ARCH_MULTIPLATFORM
|
||||||
|
|
|
@ -828,6 +828,7 @@
|
||||||
regulator-name = "vdd_vbus_wup1";
|
regulator-name = "vdd_vbus_wup1";
|
||||||
regulator-min-microvolt = <5000000>;
|
regulator-min-microvolt = <5000000>;
|
||||||
regulator-max-microvolt = <5000000>;
|
regulator-max-microvolt = <5000000>;
|
||||||
|
enable-active-high;
|
||||||
gpio = <&gpio 24 0>; /* PD0 */
|
gpio = <&gpio 24 0>; /* PD0 */
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -410,6 +410,7 @@
|
||||||
regulator-name = "usb1_vbus";
|
regulator-name = "usb1_vbus";
|
||||||
regulator-min-microvolt = <5000000>;
|
regulator-min-microvolt = <5000000>;
|
||||||
regulator-max-microvolt = <5000000>;
|
regulator-max-microvolt = <5000000>;
|
||||||
|
enable-active-high;
|
||||||
gpio = <&gpio 170 0>; /* PV2 */
|
gpio = <&gpio 170 0>; /* PV2 */
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -586,6 +586,7 @@
|
||||||
regulator-name = "vbus1";
|
regulator-name = "vbus1";
|
||||||
regulator-min-microvolt = <5000000>;
|
regulator-min-microvolt = <5000000>;
|
||||||
regulator-max-microvolt = <5000000>;
|
regulator-max-microvolt = <5000000>;
|
||||||
|
enable-active-high;
|
||||||
gpio = <&tca6416 0 0>; /* GPIO_PMU0 */
|
gpio = <&tca6416 0 0>; /* GPIO_PMU0 */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -595,6 +596,7 @@
|
||||||
regulator-name = "vbus3";
|
regulator-name = "vbus3";
|
||||||
regulator-min-microvolt = <5000000>;
|
regulator-min-microvolt = <5000000>;
|
||||||
regulator-max-microvolt = <5000000>;
|
regulator-max-microvolt = <5000000>;
|
||||||
|
enable-active-high;
|
||||||
gpio = <&tca6416 1 0>; /* GPIO_PMU1 */
|
gpio = <&tca6416 1 0>; /* GPIO_PMU1 */
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
#include <asm/smp.h>
|
#include <asm/smp.h>
|
||||||
#include <asm/smp_plat.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;
|
unsigned int mpidr, pcpu, pcluster, ret;
|
||||||
extern void secondary_startup(void);
|
extern void secondary_startup(void);
|
||||||
|
@ -40,7 +40,7 @@ static int __cpuinit mcpm_boot_secondary(unsigned int cpu, struct task_struct *i
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void __cpuinit mcpm_secondary_init(unsigned int cpu)
|
static void mcpm_secondary_init(unsigned int cpu)
|
||||||
{
|
{
|
||||||
mcpm_cpu_powered_up();
|
mcpm_cpu_powered_up();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,88 +1,167 @@
|
||||||
CONFIG_EXPERIMENTAL=y
|
CONFIG_IRQ_DOMAIN_DEBUG=y
|
||||||
CONFIG_NO_HZ=y
|
CONFIG_NO_HZ=y
|
||||||
CONFIG_HIGH_RES_TIMERS=y
|
CONFIG_HIGH_RES_TIMERS=y
|
||||||
CONFIG_BLK_DEV_INITRD=y
|
CONFIG_BLK_DEV_INITRD=y
|
||||||
CONFIG_ARCH_MVEBU=y
|
CONFIG_ARCH_MVEBU=y
|
||||||
CONFIG_MACH_ARMADA_370=y
|
CONFIG_MACH_ARMADA_370=y
|
||||||
CONFIG_ARCH_SIRF=y
|
|
||||||
CONFIG_MACH_ARMADA_XP=y
|
CONFIG_MACH_ARMADA_XP=y
|
||||||
|
CONFIG_ARCH_BCM=y
|
||||||
|
CONFIG_GPIO_PCA953X=y
|
||||||
CONFIG_ARCH_HIGHBANK=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_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_PLAT_SPEAR=y
|
||||||
CONFIG_ARCH_SPEAR13XX=y
|
CONFIG_ARCH_SPEAR13XX=y
|
||||||
CONFIG_MACH_SPEAR1310=y
|
CONFIG_MACH_SPEAR1310=y
|
||||||
CONFIG_MACH_SPEAR1340=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_SMP=y
|
||||||
CONFIG_ARM_ARCH_TIMER=y
|
|
||||||
CONFIG_AEABI=y
|
|
||||||
CONFIG_HIGHMEM=y
|
|
||||||
CONFIG_HIGHPTE=y
|
CONFIG_HIGHPTE=y
|
||||||
CONFIG_ARM_APPENDED_DTB=y
|
CONFIG_ARM_APPENDED_DTB=y
|
||||||
CONFIG_VFP=y
|
|
||||||
CONFIG_NEON=y
|
|
||||||
CONFIG_NET=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_BLK_DEV_SD=y
|
||||||
CONFIG_ATA=y
|
CONFIG_ATA=y
|
||||||
|
CONFIG_SATA_AHCI_PLATFORM=y
|
||||||
CONFIG_SATA_HIGHBANK=y
|
CONFIG_SATA_HIGHBANK=y
|
||||||
CONFIG_SATA_MV=y
|
CONFIG_SATA_MV=y
|
||||||
CONFIG_SATA_AHCI_PLATFORM=y
|
|
||||||
CONFIG_NETDEVICES=y
|
CONFIG_NETDEVICES=y
|
||||||
CONFIG_SUN4I_EMAC=y
|
CONFIG_SUN4I_EMAC=y
|
||||||
CONFIG_NET_CALXEDA_XGMAC=y
|
CONFIG_NET_CALXEDA_XGMAC=y
|
||||||
CONFIG_SMSC911X=y
|
CONFIG_SMSC911X=y
|
||||||
CONFIG_STMMAC_ETH=y
|
CONFIG_STMMAC_ETH=y
|
||||||
CONFIG_SERIO_AMBAKMI=y
|
|
||||||
CONFIG_MDIO_SUN4I=y
|
CONFIG_MDIO_SUN4I=y
|
||||||
|
CONFIG_KEYBOARD_SPEAR=y
|
||||||
|
CONFIG_SERIO_AMBAKMI=y
|
||||||
CONFIG_SERIAL_8250=y
|
CONFIG_SERIAL_8250=y
|
||||||
CONFIG_SERIAL_8250_CONSOLE=y
|
CONFIG_SERIAL_8250_CONSOLE=y
|
||||||
CONFIG_SERIAL_8250_DW=y
|
CONFIG_SERIAL_8250_DW=y
|
||||||
CONFIG_KEYBOARD_SPEAR=y
|
|
||||||
CONFIG_SERIAL_AMBA_PL011=y
|
CONFIG_SERIAL_AMBA_PL011=y
|
||||||
CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
|
CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
|
||||||
CONFIG_SERIAL_OF_PLATFORM=y
|
|
||||||
CONFIG_SERIAL_SIRFSOC=y
|
CONFIG_SERIAL_SIRFSOC=y
|
||||||
CONFIG_SERIAL_SIRFSOC_CONSOLE=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=y
|
||||||
CONFIG_SERIAL_VT8500_CONSOLE=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=y
|
||||||
CONFIG_SERIAL_XILINX_PS_UART_CONSOLE=y
|
CONFIG_SERIAL_XILINX_PS_UART_CONSOLE=y
|
||||||
CONFIG_IPMI_HANDLER=y
|
CONFIG_SERIAL_FSL_LPUART=y
|
||||||
CONFIG_IPMI_SI=y
|
CONFIG_SERIAL_FSL_LPUART_CONSOLE=y
|
||||||
CONFIG_I2C=y
|
|
||||||
CONFIG_I2C_DESIGNWARE_PLATFORM=y
|
CONFIG_I2C_DESIGNWARE_PLATFORM=y
|
||||||
CONFIG_I2C_SIRF=y
|
CONFIG_I2C_SIRF=y
|
||||||
|
CONFIG_I2C_TEGRA=y
|
||||||
CONFIG_SPI=y
|
CONFIG_SPI=y
|
||||||
CONFIG_SPI_PL022=y
|
CONFIG_SPI_PL022=y
|
||||||
CONFIG_SPI_SIRF=y
|
CONFIG_SPI_SIRF=y
|
||||||
CONFIG_GPIO_PL061=y
|
CONFIG_SPI_TEGRA114=y
|
||||||
CONFIG_FB=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_ARMCLCD=y
|
||||||
CONFIG_FB_WM8505=y
|
CONFIG_FB_WM8505=y
|
||||||
CONFIG_FRAMEBUFFER_CONSOLE=y
|
CONFIG_FB_SIMPLE=y
|
||||||
CONFIG_USB=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_ISP1760_HCD=y
|
||||||
CONFIG_USB_STORAGE=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=y
|
||||||
CONFIG_MMC_ARMMMCI=y
|
CONFIG_MMC_ARMMMCI=y
|
||||||
CONFIG_MMC_SDHCI=y
|
CONFIG_MMC_SDHCI=y
|
||||||
CONFIG_MMC_SDHCI_PLTFM=y
|
CONFIG_MMC_SDHCI_PLTFM=y
|
||||||
|
CONFIG_MMC_SDHCI_TEGRA=y
|
||||||
CONFIG_MMC_SDHCI_SPEAR=y
|
CONFIG_MMC_SDHCI_SPEAR=y
|
||||||
CONFIG_MMC_WMT=y
|
CONFIG_MMC_OMAP=y
|
||||||
|
CONFIG_MMC_OMAP_HS=y
|
||||||
CONFIG_EDAC=y
|
CONFIG_EDAC=y
|
||||||
CONFIG_EDAC_MM_EDAC=y
|
CONFIG_EDAC_MM_EDAC=y
|
||||||
CONFIG_EDAC_HIGHBANK_MC=y
|
CONFIG_EDAC_HIGHBANK_MC=y
|
||||||
CONFIG_EDAC_HIGHBANK_L2=y
|
CONFIG_EDAC_HIGHBANK_L2=y
|
||||||
CONFIG_RTC_CLASS=y
|
CONFIG_RTC_CLASS=y
|
||||||
|
CONFIG_RTC_DRV_TWL4030=y
|
||||||
CONFIG_RTC_DRV_PL031=y
|
CONFIG_RTC_DRV_PL031=y
|
||||||
CONFIG_RTC_DRV_VT8500=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=y
|
||||||
CONFIG_PWM_VT8500=y
|
CONFIG_PWM_VT8500=y
|
||||||
CONFIG_DMADEVICES=y
|
CONFIG_EXT4_FS=y
|
||||||
CONFIG_PL330_DMA=y
|
CONFIG_TMPFS=y
|
||||||
CONFIG_SIRF_DMA=y
|
CONFIG_NFS_FS=y
|
||||||
CONFIG_DW_DMAC=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_BLK_DEV_BSG is not set
|
||||||
CONFIG_ARCH_MULTI_V6=y
|
CONFIG_ARCH_MULTI_V6=y
|
||||||
CONFIG_ARCH_OMAP2PLUS=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_RESET_CLOCKS=y
|
||||||
CONFIG_OMAP_MUX_DEBUG=y
|
CONFIG_OMAP_MUX_DEBUG=y
|
||||||
CONFIG_ARCH_VEXPRESS_CA9X4=y
|
CONFIG_ARCH_VEXPRESS_CA9X4=y
|
||||||
|
@ -34,6 +38,8 @@ CONFIG_NR_CPUS=2
|
||||||
CONFIG_LEDS=y
|
CONFIG_LEDS=y
|
||||||
CONFIG_ZBOOT_ROM_TEXT=0x0
|
CONFIG_ZBOOT_ROM_TEXT=0x0
|
||||||
CONFIG_ZBOOT_ROM_BSS=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_CMDLINE="root=/dev/mmcblk0p2 rootwait console=ttyO2,115200"
|
||||||
CONFIG_KEXEC=y
|
CONFIG_KEXEC=y
|
||||||
CONFIG_FPE_NWFPE=y
|
CONFIG_FPE_NWFPE=y
|
||||||
|
@ -152,6 +158,13 @@ CONFIG_W1=y
|
||||||
CONFIG_POWER_SUPPLY=y
|
CONFIG_POWER_SUPPLY=y
|
||||||
CONFIG_SENSORS_LM75=m
|
CONFIG_SENSORS_LM75=m
|
||||||
CONFIG_WATCHDOG=y
|
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_OMAP_WATCHDOG=y
|
||||||
CONFIG_TWL4030_WATCHDOG=y
|
CONFIG_TWL4030_WATCHDOG=y
|
||||||
CONFIG_MFD_TPS65217=y
|
CONFIG_MFD_TPS65217=y
|
||||||
|
@ -238,7 +251,13 @@ CONFIG_RTC_DRV_TWL92330=y
|
||||||
CONFIG_RTC_DRV_TWL4030=y
|
CONFIG_RTC_DRV_TWL4030=y
|
||||||
CONFIG_RTC_DRV_OMAP=y
|
CONFIG_RTC_DRV_OMAP=y
|
||||||
CONFIG_DMADEVICES=y
|
CONFIG_DMADEVICES=y
|
||||||
|
CONFIG_TI_EDMA=y
|
||||||
CONFIG_DMA_OMAP=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_EXT2_FS=y
|
||||||
CONFIG_EXT3_FS=y
|
CONFIG_EXT3_FS=y
|
||||||
# CONFIG_EXT3_FS_XATTR is not set
|
# CONFIG_EXT3_FS_XATTR is not set
|
||||||
|
|
|
@ -61,7 +61,6 @@ CONFIG_GPIO_SYSFS=y
|
||||||
CONFIG_GPIO_PL061=y
|
CONFIG_GPIO_PL061=y
|
||||||
# CONFIG_HWMON is not set
|
# CONFIG_HWMON is not set
|
||||||
CONFIG_WATCHDOG=y
|
CONFIG_WATCHDOG=y
|
||||||
CONFIG_MPCORE_WATCHDOG=y
|
|
||||||
# CONFIG_HID_SUPPORT is not set
|
# CONFIG_HID_SUPPORT is not set
|
||||||
CONFIG_USB=y
|
CONFIG_USB=y
|
||||||
# CONFIG_USB_DEVICE_CLASS is not set
|
# CONFIG_USB_DEVICE_CLASS is not set
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
CONFIG_EXPERIMENTAL=y
|
CONFIG_HIGHMEM=y
|
||||||
# CONFIG_SWAP is not set
|
# CONFIG_SWAP is not set
|
||||||
CONFIG_SYSVIPC=y
|
CONFIG_SYSVIPC=y
|
||||||
|
CONFIG_NO_HZ=y
|
||||||
|
CONFIG_HIGH_RES_TIMERS=y
|
||||||
CONFIG_BLK_DEV_INITRD=y
|
CONFIG_BLK_DEV_INITRD=y
|
||||||
CONFIG_KALLSYMS_ALL=y
|
CONFIG_KALLSYMS_ALL=y
|
||||||
CONFIG_MODULES=y
|
CONFIG_MODULES=y
|
||||||
|
@ -9,10 +11,7 @@ CONFIG_MODULE_UNLOAD=y
|
||||||
CONFIG_ARCH_U8500=y
|
CONFIG_ARCH_U8500=y
|
||||||
CONFIG_MACH_HREFV60=y
|
CONFIG_MACH_HREFV60=y
|
||||||
CONFIG_MACH_SNOWBALL=y
|
CONFIG_MACH_SNOWBALL=y
|
||||||
CONFIG_MACH_U5500=y
|
|
||||||
CONFIG_MACH_UX500_DT=y
|
CONFIG_MACH_UX500_DT=y
|
||||||
CONFIG_NO_HZ=y
|
|
||||||
CONFIG_HIGH_RES_TIMERS=y
|
|
||||||
CONFIG_SMP=y
|
CONFIG_SMP=y
|
||||||
CONFIG_NR_CPUS=2
|
CONFIG_NR_CPUS=2
|
||||||
CONFIG_PREEMPT=y
|
CONFIG_PREEMPT=y
|
||||||
|
@ -20,6 +19,7 @@ CONFIG_AEABI=y
|
||||||
CONFIG_CMDLINE="root=/dev/ram0 console=ttyAMA2,115200n8"
|
CONFIG_CMDLINE="root=/dev/ram0 console=ttyAMA2,115200n8"
|
||||||
CONFIG_CPU_FREQ=y
|
CONFIG_CPU_FREQ=y
|
||||||
CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
|
CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
|
||||||
|
CONFIG_CPU_IDLE=y
|
||||||
CONFIG_VFP=y
|
CONFIG_VFP=y
|
||||||
CONFIG_NEON=y
|
CONFIG_NEON=y
|
||||||
CONFIG_PM_RUNTIME=y
|
CONFIG_PM_RUNTIME=y
|
||||||
|
@ -36,7 +36,6 @@ CONFIG_CAIF=y
|
||||||
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
||||||
CONFIG_BLK_DEV_RAM=y
|
CONFIG_BLK_DEV_RAM=y
|
||||||
CONFIG_BLK_DEV_RAM_SIZE=65536
|
CONFIG_BLK_DEV_RAM_SIZE=65536
|
||||||
CONFIG_AB8500_PWM=y
|
|
||||||
CONFIG_SENSORS_BH1780=y
|
CONFIG_SENSORS_BH1780=y
|
||||||
CONFIG_NETDEVICES=y
|
CONFIG_NETDEVICES=y
|
||||||
CONFIG_SMSC911X=y
|
CONFIG_SMSC911X=y
|
||||||
|
@ -60,35 +59,39 @@ CONFIG_VT_HW_CONSOLE_BINDING=y
|
||||||
CONFIG_SERIAL_AMBA_PL011=y
|
CONFIG_SERIAL_AMBA_PL011=y
|
||||||
CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
|
CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
|
||||||
CONFIG_HW_RANDOM=y
|
CONFIG_HW_RANDOM=y
|
||||||
CONFIG_HW_RANDOM_NOMADIK=y
|
|
||||||
CONFIG_SPI=y
|
CONFIG_SPI=y
|
||||||
CONFIG_SPI_PL022=y
|
CONFIG_SPI_PL022=y
|
||||||
CONFIG_GPIO_STMPE=y
|
CONFIG_GPIO_STMPE=y
|
||||||
CONFIG_GPIO_TC3589X=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_THERMAL=y
|
||||||
CONFIG_CPU_THERMAL=y
|
CONFIG_CPU_THERMAL=y
|
||||||
|
CONFIG_WATCHDOG=y
|
||||||
CONFIG_MFD_STMPE=y
|
CONFIG_MFD_STMPE=y
|
||||||
CONFIG_MFD_TC3589X=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_REGULATOR_GPIO=y
|
||||||
# CONFIG_HID_SUPPORT is not set
|
CONFIG_REGULATOR_AB8500=y
|
||||||
CONFIG_USB_GADGET=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_AB8500_USB=y
|
||||||
|
CONFIG_USB_GADGET=y
|
||||||
|
CONFIG_USB_GADGET_MUSB_HDRC=y
|
||||||
|
CONFIG_USB_ETH=m
|
||||||
CONFIG_MMC=y
|
CONFIG_MMC=y
|
||||||
CONFIG_MMC_CLKGATE=y
|
CONFIG_MMC_UNSAFE_RESUME=y
|
||||||
|
# CONFIG_MMC_BLOCK_BOUNCE is not set
|
||||||
CONFIG_MMC_ARMMMCI=y
|
CONFIG_MMC_ARMMMCI=y
|
||||||
CONFIG_NEW_LEDS=y
|
CONFIG_NEW_LEDS=y
|
||||||
CONFIG_LEDS_CLASS=y
|
CONFIG_LEDS_CLASS=y
|
||||||
CONFIG_LEDS_LM3530=y
|
CONFIG_LEDS_LM3530=y
|
||||||
CONFIG_LEDS_LP5521=y
|
|
||||||
CONFIG_LEDS_GPIO=y
|
CONFIG_LEDS_GPIO=y
|
||||||
|
CONFIG_LEDS_LP5521=y
|
||||||
CONFIG_LEDS_TRIGGERS=y
|
CONFIG_LEDS_TRIGGERS=y
|
||||||
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
|
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
|
||||||
CONFIG_RTC_CLASS=y
|
CONFIG_RTC_CLASS=y
|
||||||
|
@ -108,7 +111,6 @@ CONFIG_EXT4_FS=y
|
||||||
CONFIG_VFAT_FS=y
|
CONFIG_VFAT_FS=y
|
||||||
CONFIG_TMPFS=y
|
CONFIG_TMPFS=y
|
||||||
CONFIG_TMPFS_POSIX_ACL=y
|
CONFIG_TMPFS_POSIX_ACL=y
|
||||||
CONFIG_CONFIGFS_FS=m
|
|
||||||
# CONFIG_MISC_FILESYSTEMS is not set
|
# CONFIG_MISC_FILESYSTEMS is not set
|
||||||
CONFIG_NFS_FS=y
|
CONFIG_NFS_FS=y
|
||||||
CONFIG_ROOT_NFS=y
|
CONFIG_ROOT_NFS=y
|
||||||
|
@ -122,3 +124,7 @@ CONFIG_DEBUG_KERNEL=y
|
||||||
CONFIG_DEBUG_INFO=y
|
CONFIG_DEBUG_INFO=y
|
||||||
# CONFIG_FTRACE is not set
|
# CONFIG_FTRACE is not set
|
||||||
CONFIG_DEBUG_USER=y
|
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;
|
return cval;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void __cpuinit arch_counter_set_user_access(void)
|
static inline void arch_counter_set_user_access(void)
|
||||||
{
|
{
|
||||||
u32 cntkctl;
|
u32 cntkctl;
|
||||||
|
|
||||||
|
|
|
@ -23,10 +23,21 @@ static inline unsigned long scu_a9_get_base(void)
|
||||||
return pa;
|
return pa;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef CONFIG_HAVE_ARM_SCU
|
||||||
unsigned int scu_get_core_count(void __iomem *);
|
unsigned int scu_get_core_count(void __iomem *);
|
||||||
int scu_power_mode(void __iomem *, unsigned int);
|
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);
|
void scu_enable(void __iomem *scu_base);
|
||||||
#else
|
#else
|
||||||
static inline void scu_enable(void __iomem *scu_base) {}
|
static inline void scu_enable(void __iomem *scu_base) {}
|
||||||
|
|
|
@ -133,6 +133,9 @@ ENTRY(lookup_processor_type)
|
||||||
ldmfd sp!, {r4 - r6, r9, pc}
|
ldmfd sp!, {r4 - r6, r9, pc}
|
||||||
ENDPROC(lookup_processor_type)
|
ENDPROC(lookup_processor_type)
|
||||||
|
|
||||||
|
__FINIT
|
||||||
|
.text
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Read processor ID register (CP#15, CR0), and look up in the linker-built
|
* 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
|
* 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
|
* r5 = proc_info pointer in physical address space
|
||||||
* r9 = cpuid (preserved)
|
* r9 = cpuid (preserved)
|
||||||
*/
|
*/
|
||||||
__CPUINIT
|
|
||||||
__lookup_processor_type:
|
__lookup_processor_type:
|
||||||
adr r3, __lookup_processor_type_data
|
adr r3, __lookup_processor_type_data
|
||||||
ldmia r3, {r4 - r6}
|
ldmia r3, {r4 - r6}
|
||||||
|
|
|
@ -87,7 +87,6 @@ ENTRY(stext)
|
||||||
ENDPROC(stext)
|
ENDPROC(stext)
|
||||||
|
|
||||||
#ifdef CONFIG_SMP
|
#ifdef CONFIG_SMP
|
||||||
__CPUINIT
|
|
||||||
ENTRY(secondary_startup)
|
ENTRY(secondary_startup)
|
||||||
/*
|
/*
|
||||||
* Common entry point for secondary CPUs.
|
* Common entry point for secondary CPUs.
|
||||||
|
|
|
@ -343,7 +343,6 @@ __turn_mmu_on_loc:
|
||||||
.long __turn_mmu_on_end
|
.long __turn_mmu_on_end
|
||||||
|
|
||||||
#if defined(CONFIG_SMP)
|
#if defined(CONFIG_SMP)
|
||||||
__CPUINIT
|
|
||||||
ENTRY(secondary_startup)
|
ENTRY(secondary_startup)
|
||||||
/*
|
/*
|
||||||
* Common entry point for secondary CPUs.
|
* Common entry point for secondary CPUs.
|
||||||
|
|
|
@ -1020,7 +1020,7 @@ out_mdbgen:
|
||||||
cpumask_or(&debug_err_mask, &debug_err_mask, cpumask_of(cpu));
|
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)
|
unsigned long action, void *cpu)
|
||||||
{
|
{
|
||||||
if ((action & ~CPU_TASKS_FROZEN) == CPU_ONLINE)
|
if ((action & ~CPU_TASKS_FROZEN) == CPU_ONLINE)
|
||||||
|
@ -1029,7 +1029,7 @@ static int __cpuinit dbg_reset_notify(struct notifier_block *self,
|
||||||
return NOTIFY_OK;
|
return NOTIFY_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct notifier_block __cpuinitdata dbg_reset_nb = {
|
static struct notifier_block dbg_reset_nb = {
|
||||||
.notifier_call = dbg_reset_notify,
|
.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
|
* UNKNOWN at reset, the PMU must be explicitly reset to avoid reading
|
||||||
* junk values out of them.
|
* junk values out of them.
|
||||||
*/
|
*/
|
||||||
static int __cpuinit cpu_pmu_notify(struct notifier_block *b,
|
static int cpu_pmu_notify(struct notifier_block *b, unsigned long action,
|
||||||
unsigned long action, void *hcpu)
|
void *hcpu)
|
||||||
{
|
{
|
||||||
if ((action & ~CPU_TASKS_FROZEN) != CPU_STARTING)
|
if ((action & ~CPU_TASKS_FROZEN) != CPU_STARTING)
|
||||||
return NOTIFY_DONE;
|
return NOTIFY_DONE;
|
||||||
|
@ -171,7 +171,7 @@ static int __cpuinit cpu_pmu_notify(struct notifier_block *b,
|
||||||
return NOTIFY_OK;
|
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,
|
.notifier_call = cpu_pmu_notify,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -46,8 +46,7 @@
|
||||||
|
|
||||||
extern void secondary_startup(void);
|
extern void secondary_startup(void);
|
||||||
|
|
||||||
static int __cpuinit psci_boot_secondary(unsigned int cpu,
|
static int psci_boot_secondary(unsigned int cpu, struct task_struct *idle)
|
||||||
struct task_struct *idle)
|
|
||||||
{
|
{
|
||||||
if (psci_ops.cpu_on)
|
if (psci_ops.cpu_on)
|
||||||
return psci_ops.cpu_on(cpu_logical_map(cpu),
|
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
|
* control for which core is the next to come out of the secondary
|
||||||
* boot "holding pen"
|
* boot "holding pen"
|
||||||
*/
|
*/
|
||||||
volatile int __cpuinitdata pen_release = -1;
|
volatile int pen_release = -1;
|
||||||
|
|
||||||
enum ipi_msg_type {
|
enum ipi_msg_type {
|
||||||
IPI_WAKEUP,
|
IPI_WAKEUP,
|
||||||
|
@ -86,7 +86,7 @@ static unsigned long get_arch_pgd(pgd_t *pgd)
|
||||||
return pgdir >> ARCH_PGD_SHIFT;
|
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;
|
int ret;
|
||||||
|
|
||||||
|
@ -138,7 +138,7 @@ void __init smp_init_cpus(void)
|
||||||
smp_ops.smp_init_cpus();
|
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)
|
if (smp_ops.smp_boot_secondary)
|
||||||
return smp_ops.smp_boot_secondary(cpu, idle);
|
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.
|
* __cpu_disable runs on the processor to be shutdown.
|
||||||
*/
|
*/
|
||||||
int __cpuinit __cpu_disable(void)
|
int __cpu_disable(void)
|
||||||
{
|
{
|
||||||
unsigned int cpu = smp_processor_id();
|
unsigned int cpu = smp_processor_id();
|
||||||
int ret;
|
int ret;
|
||||||
|
@ -216,7 +216,7 @@ static DECLARE_COMPLETION(cpu_died);
|
||||||
* called on the thread which is asking for a CPU to be shutdown -
|
* called on the thread which is asking for a CPU to be shutdown -
|
||||||
* waits until shutdown has completed, or it is timed out.
|
* 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))) {
|
if (!wait_for_completion_timeout(&cpu_died, msecs_to_jiffies(5000))) {
|
||||||
pr_err("CPU%u: cpu didn't die\n", cpu);
|
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
|
* Called by both boot and secondaries to move global data into
|
||||||
* per-processor storage.
|
* 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);
|
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
|
* This is the secondary CPU boot entry. We're using this CPUs
|
||||||
* idle thread stack, but a set of temporary page tables.
|
* 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;
|
struct mm_struct *mm = &init_mm;
|
||||||
unsigned int cpu;
|
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->name = "dummy_timer";
|
||||||
evt->features = CLOCK_EVT_FEAT_ONESHOT |
|
evt->features = CLOCK_EVT_FEAT_ONESHOT |
|
||||||
|
@ -550,7 +550,7 @@ int local_timer_register(struct local_timer_ops *ops)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static void __cpuinit percpu_timer_setup(void)
|
static void percpu_timer_setup(void)
|
||||||
{
|
{
|
||||||
unsigned int cpu = smp_processor_id();
|
unsigned int cpu = smp_processor_id();
|
||||||
struct clock_event_device *evt = &per_cpu(percpu_clockevent, cpu);
|
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.
|
* changing cpu.
|
||||||
*/
|
*/
|
||||||
if (flags == POST_RATE_CHANGE)
|
if (flags == POST_RATE_CHANGE)
|
||||||
smp_call_function(twd_update_frequency,
|
on_each_cpu(twd_update_frequency,
|
||||||
(void *)&cnd->new_rate, 1);
|
(void *)&cnd->new_rate, 1);
|
||||||
|
|
||||||
return NOTIFY_OK;
|
return NOTIFY_OK;
|
||||||
|
@ -187,7 +187,7 @@ core_initcall(twd_cpufreq_init);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static void __cpuinit twd_calibrate_rate(void)
|
static void twd_calibrate_rate(void)
|
||||||
{
|
{
|
||||||
unsigned long count;
|
unsigned long count;
|
||||||
u64 waitjiffies;
|
u64 waitjiffies;
|
||||||
|
@ -265,7 +265,7 @@ static void twd_get_clock(struct device_node *np)
|
||||||
/*
|
/*
|
||||||
* Setup the local clock events for a CPU.
|
* 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;
|
struct clock_event_device **this_cpu_clk;
|
||||||
int cpu = smp_processor_id();
|
int cpu = smp_processor_id();
|
||||||
|
@ -308,7 +308,7 @@ static int __cpuinit twd_timer_setup(struct clock_event_device *clk)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct local_timer_ops twd_lt_ops __cpuinitdata = {
|
static struct local_timer_ops twd_lt_ops = {
|
||||||
.setup = twd_timer_setup,
|
.setup = twd_timer_setup,
|
||||||
.stop = twd_timer_stop,
|
.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;
|
delay_calibrated = true;
|
||||||
return lpj_fine;
|
return lpj_fine;
|
||||||
|
|
|
@ -509,7 +509,6 @@ struct ths7303_platform_data ths7303_pdata = {
|
||||||
.ch_1 = 3,
|
.ch_1 = 3,
|
||||||
.ch_2 = 3,
|
.ch_2 = 3,
|
||||||
.ch_3 = 3,
|
.ch_3 = 3,
|
||||||
.init_enable = 1,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct amp_config_info vpbe_amp = {
|
static struct amp_config_info vpbe_amp = {
|
||||||
|
|
|
@ -26,6 +26,7 @@
|
||||||
#define SYSTEM_SOFT_RESET (BRIDGE_VIRT_BASE + 0x010c)
|
#define SYSTEM_SOFT_RESET (BRIDGE_VIRT_BASE + 0x010c)
|
||||||
#define SOFT_RESET 0x00000001
|
#define SOFT_RESET 0x00000001
|
||||||
|
|
||||||
|
#define BRIDGE_CAUSE (BRIDGE_VIRT_BASE + 0x0110)
|
||||||
#define BRIDGE_INT_TIMER1_CLR (~0x0004)
|
#define BRIDGE_INT_TIMER1_CLR (~0x0004)
|
||||||
|
|
||||||
#define IRQ_VIRT_BASE (BRIDGE_VIRT_BASE + 0x0200)
|
#define IRQ_VIRT_BASE (BRIDGE_VIRT_BASE + 0x0200)
|
||||||
|
|
|
@ -38,7 +38,7 @@ config CPU_EXYNOS4210
|
||||||
depends on ARCH_EXYNOS4
|
depends on ARCH_EXYNOS4
|
||||||
select ARM_CPU_SUSPEND if PM
|
select ARM_CPU_SUSPEND if PM
|
||||||
select PINCTRL_EXYNOS
|
select PINCTRL_EXYNOS
|
||||||
select PM_GENERIC_DOMAINS
|
select PM_GENERIC_DOMAINS if PM
|
||||||
select S5P_PM if PM
|
select S5P_PM if PM
|
||||||
select S5P_SLEEP if PM
|
select S5P_SLEEP if PM
|
||||||
select SAMSUNG_DMADEV
|
select SAMSUNG_DMADEV
|
||||||
|
|
|
@ -13,8 +13,6 @@
|
||||||
#include <linux/linkage.h>
|
#include <linux/linkage.h>
|
||||||
#include <linux/init.h>
|
#include <linux/init.h>
|
||||||
|
|
||||||
__CPUINIT
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* exynos4 specific entry point for secondary CPUs. This provides
|
* exynos4 specific entry point for secondary CPUs. This provides
|
||||||
* a "holding pen" into which all secondary cores are held until we're
|
* 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 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
|
* 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);
|
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 timeout;
|
||||||
unsigned long phys_cpu = cpu_logical_map(cpu);
|
unsigned long phys_cpu = cpu_logical_map(cpu);
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
|
|
||||||
extern void secondary_startup(void);
|
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);
|
highbank_set_cpu_jump(cpu, secondary_startup);
|
||||||
arch_send_wakeup_ipi_mask(cpumask_of(cpu));
|
arch_send_wakeup_ipi_mask(cpumask_of(cpu));
|
||||||
|
|
|
@ -53,7 +53,7 @@ void imx_scu_standby_enable(void)
|
||||||
writel_relaxed(val, scu_base);
|
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_set_cpu_jump(cpu, v7_secondary_startup);
|
||||||
imx_enable_cpu(cpu, true);
|
imx_enable_cpu(cpu, true);
|
||||||
|
|
|
@ -28,6 +28,7 @@
|
||||||
#include <linux/i2c-gpio.h>
|
#include <linux/i2c-gpio.h>
|
||||||
|
|
||||||
#include <mach/hardware.h>
|
#include <mach/hardware.h>
|
||||||
|
|
||||||
#include <asm/mach-types.h>
|
#include <asm/mach-types.h>
|
||||||
#include <asm/mach/arch.h>
|
#include <asm/mach/arch.h>
|
||||||
#include <asm/mach/flash.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
|
* 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/arch.h>
|
||||||
#include <asm/mach/flash.h>
|
#include <asm/mach/flash.h>
|
||||||
|
|
||||||
|
#include <mach/hardware.h>
|
||||||
|
|
||||||
static struct resource omixp_flash_resources[] = {
|
static struct resource omixp_flash_resources[] = {
|
||||||
{
|
{
|
||||||
.flags = IORESOURCE_MEM,
|
.flags = IORESOURCE_MEM,
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
|
|
||||||
#include "keystone.h"
|
#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)
|
struct task_struct *idle)
|
||||||
{
|
{
|
||||||
unsigned long start = virt_to_phys(&secondary_startup);
|
unsigned long start = virt_to_phys(&secondary_startup);
|
||||||
|
|
|
@ -21,14 +21,12 @@
|
||||||
#define CPU_RESET 0x00000002
|
#define CPU_RESET 0x00000002
|
||||||
|
|
||||||
#define RSTOUTn_MASK (BRIDGE_VIRT_BASE + 0x0108)
|
#define RSTOUTn_MASK (BRIDGE_VIRT_BASE + 0x0108)
|
||||||
#define WDT_RESET_OUT_EN 0x00000002
|
|
||||||
#define SOFT_RESET_OUT_EN 0x00000004
|
#define SOFT_RESET_OUT_EN 0x00000004
|
||||||
|
|
||||||
#define SYSTEM_SOFT_RESET (BRIDGE_VIRT_BASE + 0x010c)
|
#define SYSTEM_SOFT_RESET (BRIDGE_VIRT_BASE + 0x010c)
|
||||||
#define SOFT_RESET 0x00000001
|
#define SOFT_RESET 0x00000001
|
||||||
|
|
||||||
#define BRIDGE_CAUSE (BRIDGE_VIRT_BASE + 0x0110)
|
#define BRIDGE_CAUSE (BRIDGE_VIRT_BASE + 0x0110)
|
||||||
#define WDT_INT_REQ 0x0008
|
|
||||||
|
|
||||||
#define BRIDGE_INT_TIMER1_CLR (~0x0004)
|
#define BRIDGE_INT_TIMER1_CLR (~0x0004)
|
||||||
|
|
||||||
|
|
|
@ -11,8 +11,6 @@
|
||||||
#include <linux/linkage.h>
|
#include <linux/linkage.h>
|
||||||
#include <linux/init.h>
|
#include <linux/init.h>
|
||||||
|
|
||||||
__CPUINIT
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* MSM specific entry point for secondary CPUs. This provides
|
* MSM specific entry point for secondary CPUs. This provides
|
||||||
* a "holding pen" into which all secondary cores are held until we're
|
* 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;
|
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
|
* 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);
|
spin_unlock(&boot_lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
static __cpuinit void prepare_cold_cpu(unsigned int cpu)
|
static void prepare_cold_cpu(unsigned int cpu)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
ret = scm_set_boot_addr(virt_to_phys(msm_secondary_startup),
|
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");
|
"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;
|
unsigned long timeout;
|
||||||
static int cold_boot_done;
|
static int cold_boot_done;
|
||||||
|
|
|
@ -139,7 +139,7 @@ static struct clocksource msm_clocksource = {
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef CONFIG_LOCAL_TIMERS
|
#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 */
|
/* Use existing clock_event for cpu 0 */
|
||||||
if (!smp_processor_id())
|
if (!smp_processor_id())
|
||||||
|
@ -164,7 +164,7 @@ static void msm_local_timer_stop(struct clock_event_device *evt)
|
||||||
disable_percpu_irq(evt->irq);
|
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,
|
.setup = msm_local_timer_setup,
|
||||||
.stop = msm_local_timer_stop,
|
.stop = msm_local_timer_stop,
|
||||||
};
|
};
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
#include <asm/cacheflush.h>
|
#include <asm/cacheflush.h>
|
||||||
#include "armada-370-xp.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_base;
|
||||||
static void __iomem *coherency_cpu_base;
|
static void __iomem *coherency_cpu_base;
|
||||||
|
|
||||||
|
|
|
@ -21,8 +21,6 @@
|
||||||
#include <linux/linkage.h>
|
#include <linux/linkage.h>
|
||||||
#include <linux/init.h>
|
#include <linux/init.h>
|
||||||
|
|
||||||
__CPUINIT
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Armada XP specific entry point for secondary CPUs.
|
* Armada XP specific entry point for secondary CPUs.
|
||||||
* We add the CPU to the coherency fabric and then jump to secondary
|
* 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();
|
armada_xp_mpic_smp_cpu_init();
|
||||||
}
|
}
|
||||||
|
|
||||||
static int __cpuinit armada_xp_boot_secondary(unsigned int cpu,
|
static int armada_xp_boot_secondary(unsigned int cpu, struct task_struct *idle)
|
||||||
struct task_struct *idle)
|
|
||||||
{
|
{
|
||||||
pr_info("Booting CPU %d\n", cpu);
|
pr_info("Booting CPU %d\n", cpu);
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,92 @@
|
||||||
config ARCH_OMAP
|
config ARCH_OMAP
|
||||||
bool
|
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
|
config ARCH_OMAP2PLUS
|
||||||
bool "TI OMAP2/3/4/5 SoCs with device tree support" if (ARCH_MULTI_V6 || ARCH_MULTI_V7)
|
bool
|
||||||
select ARCH_HAS_CPUFREQ
|
|
||||||
select ARCH_HAS_BANDGAP
|
select ARCH_HAS_BANDGAP
|
||||||
|
select ARCH_HAS_CPUFREQ
|
||||||
select ARCH_HAS_HOLES_MEMORYMODEL
|
select ARCH_HAS_HOLES_MEMORYMODEL
|
||||||
select ARCH_OMAP
|
select ARCH_OMAP
|
||||||
select ARCH_REQUIRE_GPIOLIB
|
select ARCH_REQUIRE_GPIOLIB
|
||||||
|
@ -53,68 +135,6 @@ config SOC_HAS_REALTIME_COUNTER
|
||||||
depends on SOC_OMAP5
|
depends on SOC_OMAP5
|
||||||
default y
|
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"
|
comment "OMAP Core Type"
|
||||||
depends on ARCH_OMAP2
|
depends on ARCH_OMAP2
|
||||||
|
|
||||||
|
@ -142,23 +162,6 @@ config SOC_TI81XX
|
||||||
depends on ARCH_OMAP3
|
depends on ARCH_OMAP3
|
||||||
default y
|
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
|
config OMAP_PACKAGE_ZAF
|
||||||
bool
|
bool
|
||||||
|
|
||||||
|
|
|
@ -95,10 +95,6 @@ obj-$(CONFIG_POWER_AVS_OMAP_CLASS3) += smartreflex-class3.o
|
||||||
AFLAGS_sleep24xx.o :=-Wa,-march=armv6
|
AFLAGS_sleep24xx.o :=-Wa,-march=armv6
|
||||||
AFLAGS_sleep34xx.o :=-Wa,-march=armv7-a$(plus_sec)
|
AFLAGS_sleep34xx.o :=-Wa,-march=armv7-a$(plus_sec)
|
||||||
|
|
||||||
ifeq ($(CONFIG_PM_VERBOSE),y)
|
|
||||||
CFLAGS_pm_bus.o += -DDEBUG
|
|
||||||
endif
|
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(CONFIG_CPU_IDLE),y)
|
ifeq ($(CONFIG_CPU_IDLE),y)
|
||||||
|
|
|
@ -553,6 +553,37 @@ static struct usbhs_omap_platform_data igep3_usbhs_bdata __initdata = {
|
||||||
|
|
||||||
#ifdef CONFIG_OMAP_MUX
|
#ifdef CONFIG_OMAP_MUX
|
||||||
static struct omap_board_mux board_mux[] __initdata = {
|
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) */
|
/* SMSC9221 LAN Controller ETH IRQ (GPIO_176) */
|
||||||
OMAP3_MUX(MCSPI1_CS2, OMAP_MUX_MODE4 | OMAP_PIN_INPUT),
|
OMAP3_MUX(MCSPI1_CS2, OMAP_MUX_MODE4 | OMAP_PIN_INPUT),
|
||||||
{ .reg_offset = OMAP_MUX_TERMINATOR },
|
{ .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)
|
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;
|
return 0;
|
||||||
|
|
||||||
if (omap_mux_init_gpio(RX51_LCD_RESET_GPIO, OMAP_PIN_OUTPUT)) {
|
if (omap_mux_init_gpio(RX51_LCD_RESET_GPIO, OMAP_PIN_OUTPUT)) {
|
||||||
|
|
|
@ -15,7 +15,6 @@
|
||||||
#include <linux/io.h>
|
#include <linux/io.h>
|
||||||
#include <linux/clk.h>
|
#include <linux/clk.h>
|
||||||
#include <linux/err.h>
|
#include <linux/err.h>
|
||||||
#include <linux/gpio.h>
|
|
||||||
#include <linux/slab.h>
|
#include <linux/slab.h>
|
||||||
#include <linux/of.h>
|
#include <linux/of.h>
|
||||||
#include <linux/pinctrl/machine.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);
|
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);
|
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);
|
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);
|
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,
|
pdev = platform_device_register_resndata(NULL, "omapvrfb", -1,
|
||||||
res, num_res, NULL, 0);
|
res, num_res, NULL, 0);
|
||||||
|
|
||||||
if (IS_ERR(pdev))
|
return PTR_RET(pdev);
|
||||||
return PTR_ERR(pdev);
|
|
||||||
else
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
omap_arch_initcall(omap_init_vrfb);
|
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);
|
pdev = omap_device_build(DEVICE_NAME, -1, oh, NULL, 0);
|
||||||
WARN(IS_ERR(pdev), "could not build omap_device for %s\n", oh_name);
|
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);
|
omap_postcore_initcall(omap_gpmc_init);
|
||||||
|
|
||||||
|
|
|
@ -394,7 +394,7 @@ static void __init omap_hwmod_init_postsetup(void)
|
||||||
omap_pm_if_early_init();
|
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();
|
omap_mux_late_init();
|
||||||
omap2_common_pm_late_init();
|
omap2_common_pm_late_init();
|
||||||
|
|
|
@ -20,8 +20,6 @@
|
||||||
|
|
||||||
#include "omap44xx.h"
|
#include "omap44xx.h"
|
||||||
|
|
||||||
__CPUINIT
|
|
||||||
|
|
||||||
/* Physical address needed since MMU not enabled yet on secondary core */
|
/* Physical address needed since MMU not enabled yet on secondary core */
|
||||||
#define AUX_CORE_BOOT0_PA 0x48281800
|
#define AUX_CORE_BOOT0_PA 0x48281800
|
||||||
|
|
||||||
|
|
|
@ -291,7 +291,7 @@ int omap4_enter_lowpower(unsigned int cpu, unsigned int power_state)
|
||||||
* @cpu : CPU ID
|
* @cpu : CPU ID
|
||||||
* @power_state: CPU low power state.
|
* @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);
|
struct omap4_cpu_pm_info *pm_info = &per_cpu(omap4_pm_info, cpu);
|
||||||
unsigned int cpu_state = 0;
|
unsigned int cpu_state = 0;
|
||||||
|
|
|
@ -51,7 +51,7 @@ void __iomem *omap4_get_scu_base(void)
|
||||||
return scu_base;
|
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.
|
* 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);
|
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 struct clockdomain *cpu1_clkdm;
|
||||||
static bool booted;
|
static bool booted;
|
||||||
|
|
|
@ -323,8 +323,8 @@ static void irq_save_secure_context(void)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_HOTPLUG_CPU
|
#ifdef CONFIG_HOTPLUG_CPU
|
||||||
static int __cpuinit irq_cpu_hotplug_notify(struct notifier_block *self,
|
static int irq_cpu_hotplug_notify(struct notifier_block *self,
|
||||||
unsigned long action, void *hcpu)
|
unsigned long action, void *hcpu)
|
||||||
{
|
{
|
||||||
unsigned int cpu = (unsigned int)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",
|
WARN(IS_ERR(omap_pmu_dev), "Can't build omap_device for %s.\n",
|
||||||
dev_name);
|
dev_name);
|
||||||
|
|
||||||
if (IS_ERR(omap_pmu_dev))
|
return PTR_RET(omap_pmu_dev);
|
||||||
return PTR_ERR(omap_pmu_dev);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int __init omap_init_pmu(void)
|
static int __init omap_init_pmu(void)
|
||||||
|
|
|
@ -34,6 +34,8 @@ ppa_zero_params:
|
||||||
ppa_por_params:
|
ppa_por_params:
|
||||||
.word 1, 0
|
.word 1, 0
|
||||||
|
|
||||||
|
#ifdef CONFIG_ARCH_OMAP4
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* =============================
|
* =============================
|
||||||
* == CPU suspend finisher ==
|
* == CPU suspend finisher ==
|
||||||
|
@ -326,7 +328,9 @@ skip_l2en:
|
||||||
|
|
||||||
b cpu_resume @ Jump to generic resume
|
b cpu_resume @ Jump to generic resume
|
||||||
ENDPROC(omap4_cpu_resume)
|
ENDPROC(omap4_cpu_resume)
|
||||||
#endif
|
#endif /* CONFIG_ARCH_OMAP4 */
|
||||||
|
|
||||||
|
#endif /* defined(CONFIG_SMP) && defined(CONFIG_PM) */
|
||||||
|
|
||||||
#ifndef CONFIG_OMAP4_ERRATA_I688
|
#ifndef CONFIG_OMAP4_ERRATA_I688
|
||||||
ENTRY(omap_bus_sync)
|
ENTRY(omap_bus_sync)
|
||||||
|
|
|
@ -220,7 +220,7 @@ static int __init omap_dm_timer_init_one(struct omap_dm_timer *timer,
|
||||||
int posted)
|
int posted)
|
||||||
{
|
{
|
||||||
char name[10]; /* 10 = sizeof("gptXX_Xck0") */
|
char name[10]; /* 10 = sizeof("gptXX_Xck0") */
|
||||||
const char *oh_name;
|
const char *oh_name = NULL;
|
||||||
struct device_node *np;
|
struct device_node *np;
|
||||||
struct omap_hwmod *oh;
|
struct omap_hwmod *oh;
|
||||||
struct resource irq, mem;
|
struct resource irq, mem;
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
#define CPU_CTRL (ORION5X_BRIDGE_VIRT_BASE + 0x104)
|
#define CPU_CTRL (ORION5X_BRIDGE_VIRT_BASE + 0x104)
|
||||||
|
|
||||||
#define RSTOUTn_MASK (ORION5X_BRIDGE_VIRT_BASE + 0x108)
|
#define RSTOUTn_MASK (ORION5X_BRIDGE_VIRT_BASE + 0x108)
|
||||||
#define WDT_RESET_OUT_EN 0x0002
|
|
||||||
|
|
||||||
#define CPU_SOFT_RESET (ORION5X_BRIDGE_VIRT_BASE + 0x10c)
|
#define CPU_SOFT_RESET (ORION5X_BRIDGE_VIRT_BASE + 0x10c)
|
||||||
|
|
||||||
|
@ -26,8 +25,6 @@
|
||||||
|
|
||||||
#define POWER_MNG_CTRL_REG (ORION5X_BRIDGE_VIRT_BASE + 0x11C)
|
#define POWER_MNG_CTRL_REG (ORION5X_BRIDGE_VIRT_BASE + 0x11C)
|
||||||
|
|
||||||
#define WDT_INT_REQ 0x0008
|
|
||||||
|
|
||||||
#define BRIDGE_INT_TIMER1_CLR (~0x0004)
|
#define BRIDGE_INT_TIMER1_CLR (~0x0004)
|
||||||
|
|
||||||
#define MAIN_IRQ_CAUSE (ORION5X_BRIDGE_VIRT_BASE + 0x200)
|
#define MAIN_IRQ_CAUSE (ORION5X_BRIDGE_VIRT_BASE + 0x200)
|
||||||
|
|
|
@ -9,8 +9,6 @@
|
||||||
#include <linux/linkage.h>
|
#include <linux/linkage.h>
|
||||||
#include <linux/init.h>
|
#include <linux/init.h>
|
||||||
|
|
||||||
__CPUINIT
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* SIRFSOC specific entry point for secondary CPUs. This provides
|
* SIRFSOC specific entry point for secondary CPUs. This provides
|
||||||
* a "holding pen" into which all secondary cores are held until we're
|
* 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);
|
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
|
* 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;
|
unsigned long timeout;
|
||||||
struct device_node *np;
|
struct device_node *np;
|
||||||
|
|
|
@ -208,7 +208,7 @@ config S3C24XX_GPIO_EXTRA128
|
||||||
|
|
||||||
config S3C24XX_PLL
|
config S3C24XX_PLL
|
||||||
bool "Support CPUfreq changing of PLL frequency (EXPERIMENTAL)"
|
bool "Support CPUfreq changing of PLL frequency (EXPERIMENTAL)"
|
||||||
depends on ARM_S3C24XX
|
depends on ARM_S3C24XX_CPUFREQ
|
||||||
help
|
help
|
||||||
Compile in support for changing the PLL frequency from the
|
Compile in support for changing the PLL frequency from the
|
||||||
S3C24XX series CPUfreq driver. The PLL takes time to settle
|
S3C24XX series CPUfreq driver. The PLL takes time to settle
|
||||||
|
|
|
@ -23,7 +23,6 @@
|
||||||
#include <linux/init.h>
|
#include <linux/init.h>
|
||||||
#include <asm/memory.h>
|
#include <asm/memory.h>
|
||||||
|
|
||||||
__CPUINIT
|
|
||||||
/*
|
/*
|
||||||
* Boot code for secondary CPUs.
|
* Boot code for secondary CPUs.
|
||||||
*
|
*
|
||||||
|
|
|
@ -14,8 +14,6 @@
|
||||||
#include <linux/init.h>
|
#include <linux/init.h>
|
||||||
#include <asm/memory.h>
|
#include <asm/memory.h>
|
||||||
|
|
||||||
__CPUINIT
|
|
||||||
|
|
||||||
ENTRY(shmobile_invalidate_start)
|
ENTRY(shmobile_invalidate_start)
|
||||||
bl v7_invalidate_l1
|
bl v7_invalidate_l1
|
||||||
b secondary_startup
|
b secondary_startup
|
||||||
|
|
|
@ -287,14 +287,14 @@ static struct gpio_em_config gio3_config = {
|
||||||
static struct resource gio3_resources[] = {
|
static struct resource gio3_resources[] = {
|
||||||
[0] = {
|
[0] = {
|
||||||
.name = "GIO_096",
|
.name = "GIO_096",
|
||||||
.start = 0xe0050100,
|
.start = 0xe0050180,
|
||||||
.end = 0xe005012b,
|
.end = 0xe00501ab,
|
||||||
.flags = IORESOURCE_MEM,
|
.flags = IORESOURCE_MEM,
|
||||||
},
|
},
|
||||||
[1] = {
|
[1] = {
|
||||||
.name = "GIO_096",
|
.name = "GIO_096",
|
||||||
.start = 0xe0050140,
|
.start = 0xe00501c0,
|
||||||
.end = 0xe005015f,
|
.end = 0xe00501df,
|
||||||
.flags = IORESOURCE_MEM,
|
.flags = IORESOURCE_MEM,
|
||||||
},
|
},
|
||||||
[2] = {
|
[2] = {
|
||||||
|
|
|
@ -62,7 +62,7 @@ enum { SCIFA0, SCIFA1, SCIFB0, SCIFB1, SCIFB2, SCIFB3 };
|
||||||
static const struct plat_sci_port scif[] = {
|
static const struct plat_sci_port scif[] = {
|
||||||
SCIFA_DATA(SCIFA0, 0xe6c40000, gic_spi(144)), /* SCIFA0 */
|
SCIFA_DATA(SCIFA0, 0xe6c40000, gic_spi(144)), /* SCIFA0 */
|
||||||
SCIFA_DATA(SCIFA1, 0xe6c50000, gic_spi(145)), /* SCIFA1 */
|
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(SCIFB1, 0xe6c30000, gic_spi(149)), /* SCIFB1 */
|
||||||
SCIFB_DATA(SCIFB2, 0xe6ce0000, gic_spi(150)), /* SCIFB2 */
|
SCIFB_DATA(SCIFB2, 0xe6ce0000, gic_spi(150)), /* SCIFB2 */
|
||||||
SCIFB_DATA(SCIFB3, 0xe6cf0000, gic_spi(151)), /* SCIFB3 */
|
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 a new issue