mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 12:28:41 +08:00
APEI is currently implemented so that it depends on x86 hardware.
The primary dependency is that GHES uses the x86 NMI for hardware error notification and MCE for memory error handling. These patches remove that dependency. Other APEI features such as error reporting via external IRQ, error serialization, or error injection, do not require changes to use them on non-x86 architectures. The following patch set eliminates the APEI Kconfig x86 dependency by making these changes: - treat NMI notification as GHES architecture - HAVE_ACPI_APEI_NMI - group and wrap around #ifdef CONFIG_HAVE_ACPI_APEI_NMI code which is used only for NMI path - identify architectural boxes and abstract it accordingly (tlb flush and MCE) - rework ioremap for both IRQ and NMI context NMI code is kept in ghes.c file since NMI and IRQ context are tightly coupled. Note, these patches introduce no functional changes for x86. The NMI notification feature is hard selected for x86. Architectures that want to use this feature should also provide NMI code infrastructure. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAABAgAGBQJT2BaPAAoJEKurIx+X31iBLGMP/0yyWOna4229p9CmuElSP3os Kb+9Thru+Wg4ihj43CYW0nznQnamCaqBa5NpDXZn0Ebtxc08SSGVzbf+z+vBMeD+ HW4093m4g8sGL7i4JdAol0MEPpKTQRdpj525N/h/xWVSDXQ0Bq3vQ7DS1/j1Bp4k Lq3G8dEk+4LjNPcQ5YBPl71zWJOC4iUctfh1OpFdfgA04804Vis3j8T6ljE7/72M 51xXK3af9ktIg6MU2HOwraUsSspVeJs/4lPu4fab4XI07BRDb4T7yx19a9VaBy67 m6TaTd3eC/Z0Uh+51grNuXSnWQK4fvahRZJEwiRdC0wL3w3mhdZkmqm0nBdBFyof 5b251+FOazOtZdMsWS/mMjQUjybQ+4k9zpnndIPw/5rqxJ8lgaP7o81e+hw1Xh1Q E0ZWUMXnAIkRmkyYLUv5aTICRYIZtAC/C1QrR5ZB/9Q+yvtxp13dbqGzWhcF7AIw UK/yb5T5ZAzvuJlmPG0ZiV75HH9bjX4OFV3AhXJIEG/iTOdVVpat8yICFrT33Xpc uAwRXQvz6mn2c2xpZcJqSJQlXKg2nbrfUmscU8P8Zu6mQpvBB/+2cDbW/5wfuKbE NpD0aB5PxhHY+nNvIfOsTUk72aZcZdUEQJt/792vhnMYb/IK1X/qa4zrVmOqlZKt mtXwUQWdj3kSG36mgssO =nYdd -----END PGP SIGNATURE----- Merge tag 'please-pull-apei' into x86/ras APEI is currently implemented so that it depends on x86 hardware. The primary dependency is that GHES uses the x86 NMI for hardware error notification and MCE for memory error handling. These patches remove that dependency. Other APEI features such as error reporting via external IRQ, error serialization, or error injection, do not require changes to use them on non-x86 architectures. The following patch set eliminates the APEI Kconfig x86 dependency by making these changes: - treat NMI notification as GHES architecture - HAVE_ACPI_APEI_NMI - group and wrap around #ifdef CONFIG_HAVE_ACPI_APEI_NMI code which is used only for NMI path - identify architectural boxes and abstract it accordingly (tlb flush and MCE) - rework ioremap for both IRQ and NMI context NMI code is kept in ghes.c file since NMI and IRQ context are tightly coupled. Note, these patches introduce no functional changes for x86. The NMI notification feature is hard selected for x86. Architectures that want to use this feature should also provide NMI code infrastructure.
This commit is contained in:
commit
c3107e3c50
4
CREDITS
4
CREDITS
@ -9,6 +9,10 @@
|
||||
Linus
|
||||
----------
|
||||
|
||||
M: Matt Mackal
|
||||
E: mpm@selenic.com
|
||||
D: SLOB slab allocator
|
||||
|
||||
N: Matti Aarnio
|
||||
E: mea@nic.funet.fi
|
||||
D: Alpha systems hacking, IPv6 and other network related stuff
|
||||
|
@ -280,12 +280,9 @@ that is possible.
|
||||
mcelog
|
||||
------
|
||||
|
||||
In Linux 2.6.31+ the i386 kernel needs to run the mcelog utility
|
||||
as a regular cronjob similar to the x86-64 kernel to process and log
|
||||
machine check events when CONFIG_X86_NEW_MCE is enabled. Machine check
|
||||
events are errors reported by the CPU. Processing them is strongly encouraged.
|
||||
All x86-64 kernels since 2.6.4 require the mcelog utility to
|
||||
process machine checks.
|
||||
On x86 kernels the mcelog utility is needed to process and log machine check
|
||||
events when CONFIG_X86_MCE is enabled. Machine check events are errors reported
|
||||
by the CPU. Processing them is strongly encouraged.
|
||||
|
||||
Getting updated software
|
||||
========================
|
||||
|
@ -708,7 +708,7 @@ hardware level details could be very different.
|
||||
|
||||
<para>Systems need specialized hardware support to implement OTG,
|
||||
notably including a special <emphasis>Mini-AB</emphasis> jack
|
||||
and associated transciever to support <emphasis>Dual-Role</emphasis>
|
||||
and associated transceiver to support <emphasis>Dual-Role</emphasis>
|
||||
operation:
|
||||
they can act either as a host, using the standard
|
||||
Linux-USB host side driver stack,
|
||||
|
@ -182,7 +182,7 @@
|
||||
<para>
|
||||
Each interrupt is described by an interrupt descriptor structure
|
||||
irq_desc. The interrupt is referenced by an 'unsigned int' numeric
|
||||
value which selects the corresponding interrupt decription structure
|
||||
value which selects the corresponding interrupt description structure
|
||||
in the descriptor structures array.
|
||||
The descriptor structure contains status information and pointers
|
||||
to the interrupt flow method and the interrupt chip structure
|
||||
@ -470,7 +470,7 @@ if (desc->irq_data.chip->irq_eoi)
|
||||
<para>
|
||||
To avoid copies of identical implementations of IRQ chips the
|
||||
core provides a configurable generic interrupt chip
|
||||
implementation. Developers should check carefuly whether the
|
||||
implementation. Developers should check carefully whether the
|
||||
generic chip fits their needs before implementing the same
|
||||
functionality slightly differently themselves.
|
||||
</para>
|
||||
|
@ -1760,7 +1760,7 @@ as it would be on UP.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
There is a furthur optimization possible here: remember our original
|
||||
There is a further optimization possible here: remember our original
|
||||
cache code, where there were no reference counts and the caller simply
|
||||
held the lock whenever using the object? This is still possible: if
|
||||
you hold the lock, no one can delete the object, so you don't need to
|
||||
|
@ -677,7 +677,7 @@ and other resources, etc.
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
ATA_QCFLAG_ACTIVE is clared from qc->flags.
|
||||
ATA_QCFLAG_ACTIVE is cleared from qc->flags.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
@ -708,7 +708,7 @@ and other resources, etc.
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
qc->waiting is claread & completed (in that order).
|
||||
qc->waiting is cleared & completed (in that order).
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
@ -1163,7 +1163,7 @@ and other resources, etc.
|
||||
|
||||
<para>
|
||||
Once sense data is acquired, this type of errors can be
|
||||
handled similary to other SCSI errors. Note that sense data
|
||||
handled similarly to other SCSI errors. Note that sense data
|
||||
may indicate ATA bus error (e.g. Sense Key 04h HARDWARE ERROR
|
||||
&& ASC/ASCQ 47h/00h SCSI PARITY ERROR). In such
|
||||
cases, the error should be considered as an ATA bus error and
|
||||
|
@ -68,7 +68,7 @@
|
||||
several digital tv standards. While it is called as DVB API,
|
||||
in fact it covers several different video standards including
|
||||
DVB-T, DVB-S, DVB-C and ATSC. The API is currently being updated
|
||||
to documment support also for DVB-S2, ISDB-T and ISDB-S.</para>
|
||||
to document support also for DVB-S2, ISDB-T and ISDB-S.</para>
|
||||
<para>The third part covers the Remote Controller API.</para>
|
||||
<para>The fourth part covers the Media Controller API.</para>
|
||||
<para>For additional information and for the latest development code,
|
||||
|
@ -91,7 +91,7 @@
|
||||
<listitem><para>
|
||||
[MTD Interface]</para><para>
|
||||
These functions provide the interface to the MTD kernel API.
|
||||
They are not replacable and provide functionality
|
||||
They are not replaceable and provide functionality
|
||||
which is complete hardware independent.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
@ -100,14 +100,14 @@
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
[GENERIC]</para><para>
|
||||
Generic functions are not replacable and provide functionality
|
||||
Generic functions are not replaceable and provide functionality
|
||||
which is complete hardware independent.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
[DEFAULT]</para><para>
|
||||
Default functions provide hardware related functionality which is suitable
|
||||
for most of the implementations. These functions can be replaced by the
|
||||
board driver if neccecary. Those functions are called via pointers in the
|
||||
board driver if necessary. Those functions are called via pointers in the
|
||||
NAND chip description structure. The board driver can set the functions which
|
||||
should be replaced by board dependent functions before calling nand_scan().
|
||||
If the function pointer is NULL on entry to nand_scan() then the pointer
|
||||
@ -264,7 +264,7 @@ static void board_hwcontrol(struct mtd_info *mtd, int cmd)
|
||||
is set up nand_scan() is called. This function tries to
|
||||
detect and identify then chip. If a chip is found all the
|
||||
internal data fields are initialized accordingly.
|
||||
The structure(s) have to be zeroed out first and then filled with the neccecary
|
||||
The structure(s) have to be zeroed out first and then filled with the necessary
|
||||
information about the device.
|
||||
</para>
|
||||
<programlisting>
|
||||
@ -327,7 +327,7 @@ module_init(board_init);
|
||||
<sect1 id="Exit_function">
|
||||
<title>Exit function</title>
|
||||
<para>
|
||||
The exit function is only neccecary if the driver is
|
||||
The exit function is only necessary if the driver is
|
||||
compiled as a module. It releases all resources which
|
||||
are held by the chip driver and unregisters the partitions
|
||||
in the MTD layer.
|
||||
@ -494,7 +494,7 @@ static void board_select_chip (struct mtd_info *mtd, int chip)
|
||||
in this case. See rts_from4.c and diskonchip.c for
|
||||
implementation reference. In those cases we must also
|
||||
use bad block tables on FLASH, because the ECC layout is
|
||||
interferring with the bad block marker positions.
|
||||
interfering with the bad block marker positions.
|
||||
See bad block table support for details.
|
||||
</para>
|
||||
</sect2>
|
||||
@ -542,7 +542,7 @@ static void board_select_chip (struct mtd_info *mtd, int chip)
|
||||
<para>
|
||||
nand_scan() calls the function nand_default_bbt().
|
||||
nand_default_bbt() selects appropriate default
|
||||
bad block table desriptors depending on the chip information
|
||||
bad block table descriptors depending on the chip information
|
||||
which was retrieved by nand_scan().
|
||||
</para>
|
||||
<para>
|
||||
@ -554,7 +554,7 @@ static void board_select_chip (struct mtd_info *mtd, int chip)
|
||||
<sect2 id="Flash_based_tables">
|
||||
<title>Flash based tables</title>
|
||||
<para>
|
||||
It may be desired or neccecary to keep a bad block table in FLASH.
|
||||
It may be desired or necessary to keep a bad block table in FLASH.
|
||||
For AG-AND chips this is mandatory, as they have no factory marked
|
||||
bad blocks. They have factory marked good blocks. The marker pattern
|
||||
is erased when the block is erased to be reused. So in case of
|
||||
@ -565,10 +565,10 @@ static void board_select_chip (struct mtd_info *mtd, int chip)
|
||||
of the blocks.
|
||||
</para>
|
||||
<para>
|
||||
The blocks in which the tables are stored are procteted against
|
||||
The blocks in which the tables are stored are protected against
|
||||
accidental access by marking them bad in the memory bad block
|
||||
table. The bad block table management functions are allowed
|
||||
to circumvernt this protection.
|
||||
to circumvent this protection.
|
||||
</para>
|
||||
<para>
|
||||
The simplest way to activate the FLASH based bad block table support
|
||||
@ -592,7 +592,7 @@ static void board_select_chip (struct mtd_info *mtd, int chip)
|
||||
User defined tables are created by filling out a
|
||||
nand_bbt_descr structure and storing the pointer in the
|
||||
nand_chip structure member bbt_td before calling nand_scan().
|
||||
If a mirror table is neccecary a second structure must be
|
||||
If a mirror table is necessary a second structure must be
|
||||
created and a pointer to this structure must be stored
|
||||
in bbt_md inside the nand_chip structure. If the bbt_md
|
||||
member is set to NULL then only the main table is used
|
||||
@ -666,7 +666,7 @@ static void board_select_chip (struct mtd_info *mtd, int chip)
|
||||
<para>
|
||||
For automatic placement some blocks must be reserved for
|
||||
bad block table storage. The number of reserved blocks is defined
|
||||
in the maxblocks member of the babd block table description structure.
|
||||
in the maxblocks member of the bad block table description structure.
|
||||
Reserving 4 blocks for mirrored tables should be a reasonable number.
|
||||
This also limits the number of blocks which are scanned for the bad
|
||||
block table ident pattern.
|
||||
@ -1068,11 +1068,11 @@ in this page</entry>
|
||||
<chapter id="filesystems">
|
||||
<title>Filesystem support</title>
|
||||
<para>
|
||||
The NAND driver provides all neccecary functions for a
|
||||
The NAND driver provides all necessary functions for a
|
||||
filesystem via the MTD interface.
|
||||
</para>
|
||||
<para>
|
||||
Filesystems must be aware of the NAND pecularities and
|
||||
Filesystems must be aware of the NAND peculiarities and
|
||||
restrictions. One major restrictions of NAND Flash is, that you cannot
|
||||
write as often as you want to a page. The consecutive writes to a page,
|
||||
before erasing it again, are restricted to 1-3 writes, depending on the
|
||||
@ -1222,7 +1222,7 @@ in this page</entry>
|
||||
#define NAND_BBT_VERSION 0x00000100
|
||||
/* Create a bbt if none axists */
|
||||
#define NAND_BBT_CREATE 0x00000200
|
||||
/* Write bbt if neccecary */
|
||||
/* Write bbt if necessary */
|
||||
#define NAND_BBT_WRITE 0x00001000
|
||||
/* Read and write back block contents when writing bbt */
|
||||
#define NAND_BBT_SAVECONTENT 0x00002000
|
||||
|
@ -155,7 +155,7 @@
|
||||
release regulators. Functions are
|
||||
provided to <link linkend='API-regulator-enable'>enable</link>
|
||||
and <link linkend='API-regulator-disable'>disable</link> the
|
||||
reguator and to get and set the runtime parameters of the
|
||||
regulator and to get and set the runtime parameters of the
|
||||
regulator.
|
||||
</para>
|
||||
<para>
|
||||
|
@ -766,10 +766,10 @@ framework to set up sysfs files for this region. Simply leave it alone.
|
||||
<para>
|
||||
The dynamic memory regions will be allocated when the UIO device file,
|
||||
<varname>/dev/uioX</varname> is opened.
|
||||
Simiar to static memory resources, the memory region information for
|
||||
Similar to static memory resources, the memory region information for
|
||||
dynamic regions is then visible via sysfs at
|
||||
<varname>/sys/class/uio/uioX/maps/mapY/*</varname>.
|
||||
The dynmaic memory regions will be freed when the UIO device file is
|
||||
The dynamic memory regions will be freed when the UIO device file is
|
||||
closed. When no processes are holding the device file open, the address
|
||||
returned to userspace is ~0.
|
||||
</para>
|
||||
|
@ -153,7 +153,7 @@
|
||||
|
||||
<listitem><para>The Linux USB API supports synchronous calls for
|
||||
control and bulk messages.
|
||||
It also supports asynchnous calls for all kinds of data transfer,
|
||||
It also supports asynchronous calls for all kinds of data transfer,
|
||||
using request structures called "URBs" (USB Request Blocks).
|
||||
</para></listitem>
|
||||
|
||||
|
@ -5696,7 +5696,7 @@ struct _snd_pcm_runtime {
|
||||
suspending the PCM operations via
|
||||
<function>snd_pcm_suspend_all()</function> or
|
||||
<function>snd_pcm_suspend()</function>. It means that the PCM
|
||||
streams are already stoppped when the register snapshot is
|
||||
streams are already stopped when the register snapshot is
|
||||
taken. But, remember that you don't have to restart the PCM
|
||||
stream in the resume callback. It'll be restarted via
|
||||
trigger call with <constant>SNDRV_PCM_TRIGGER_RESUME</constant>
|
||||
|
@ -314,6 +314,7 @@ int main(int argc, char *argv[])
|
||||
break;
|
||||
case 'm':
|
||||
strncpy(cpumask, optarg, sizeof(cpumask));
|
||||
cpumask[sizeof(cpumask) - 1] = '\0';
|
||||
maskset = 1;
|
||||
printf("cpumask %s maskset %d\n", cpumask, maskset);
|
||||
break;
|
||||
|
@ -60,12 +60,6 @@ If the driver needs to perform more complex initialization like getting and
|
||||
configuring GPIOs it can get its ACPI handle and extract this information
|
||||
from ACPI tables.
|
||||
|
||||
Currently the kernel is not able to automatically determine from which ACPI
|
||||
device it should make the corresponding platform device so we need to add
|
||||
the ACPI device explicitly to acpi_platform_device_ids list defined in
|
||||
drivers/acpi/acpi_platform.c. This limitation is only for the platform
|
||||
devices, SPI and I2C devices are created automatically as described below.
|
||||
|
||||
DMA support
|
||||
~~~~~~~~~~~
|
||||
DMA controllers enumerated via ACPI should be registered in the system to
|
||||
|
@ -15,10 +15,13 @@ New sysfs files for controlling P state selection have been added to
|
||||
/sys/devices/system/cpu/intel_pstate/
|
||||
|
||||
max_perf_pct: limits the maximum P state that will be requested by
|
||||
the driver stated as a percentage of the available performance.
|
||||
the driver stated as a percentage of the available performance. The
|
||||
available (P states) performance may be reduced by the no_turbo
|
||||
setting described below.
|
||||
|
||||
min_perf_pct: limits the minimum P state that will be requested by
|
||||
the driver stated as a percentage of the available performance.
|
||||
the driver stated as a percentage of the max (non-turbo)
|
||||
performance level.
|
||||
|
||||
no_turbo: limits the driver to selecting P states below the turbo
|
||||
frequency range.
|
||||
|
@ -6,5 +6,15 @@ following property:
|
||||
|
||||
Required root node property:
|
||||
|
||||
- compatible: must contain either "marvell,armada380" or
|
||||
"marvell,armada385" depending on the variant of the SoC being used.
|
||||
- compatible: must contain "marvell,armada380"
|
||||
|
||||
In addition, boards using the Marvell Armada 385 SoC shall have the
|
||||
following property before the previous one:
|
||||
|
||||
Required root node property:
|
||||
|
||||
compatible: must contain "marvell,armada385"
|
||||
|
||||
Example:
|
||||
|
||||
compatible = "marvell,a385-rd", "marvell,armada385", "marvell,armada380";
|
||||
|
@ -9,6 +9,18 @@ Required Properties:
|
||||
- reg: physical base address of the controller and length of memory mapped
|
||||
region.
|
||||
|
||||
Optional Properties:
|
||||
- clocks: List of clock handles. The parent clocks of the input clocks to the
|
||||
devices in this power domain are set to oscclk before power gating
|
||||
and restored back after powering on a domain. This is required for
|
||||
all domains which are powered on and off and not required for unused
|
||||
domains.
|
||||
- clock-names: The following clocks can be specified:
|
||||
- oscclk: Oscillator clock.
|
||||
- pclkN, clkN: Pairs of parent of input clock and input clock to the
|
||||
devices in this power domain. Maximum of 4 pairs (N = 0 to 3)
|
||||
are supported currently.
|
||||
|
||||
Node of a device using power domains must have a samsung,power-domain property
|
||||
defined with a phandle to respective power domain.
|
||||
|
||||
@ -19,6 +31,14 @@ Example:
|
||||
reg = <0x10023C00 0x10>;
|
||||
};
|
||||
|
||||
mfc_pd: power-domain@10044060 {
|
||||
compatible = "samsung,exynos4210-pd";
|
||||
reg = <0x10044060 0x20>;
|
||||
clocks = <&clock CLK_FIN_PLL>, <&clock CLK_MOUT_SW_ACLK333>,
|
||||
<&clock CLK_MOUT_USER_ACLK333>;
|
||||
clock-names = "oscclk", "pclk0", "clk0";
|
||||
};
|
||||
|
||||
Example of the node using power domain:
|
||||
|
||||
node {
|
||||
|
@ -40,6 +40,9 @@ Optional properties:
|
||||
- arm,filter-ranges : <start length> Starting address and length of window to
|
||||
filter. Addresses in the filter window are directed to the M1 port. Other
|
||||
addresses will go to the M0 port.
|
||||
- arm,io-coherent : indicates that the system is operating in an hardware
|
||||
I/O coherent mode. Valid only when the arm,pl310-cache compatible
|
||||
string is used.
|
||||
- interrupts : 1 combined interrupt.
|
||||
- cache-id-part: cache id part number to be used if it is not present
|
||||
on hardware
|
||||
|
@ -48,7 +48,7 @@ adc@12D10000 {
|
||||
|
||||
/* NTC thermistor is a hwmon device */
|
||||
ncp15wb473@0 {
|
||||
compatible = "ntc,ncp15wb473";
|
||||
compatible = "murata,ncp15wb473";
|
||||
pullup-uv = <1800000>;
|
||||
pullup-ohm = <47000>;
|
||||
pulldown-ohm = <0>;
|
||||
|
@ -8,10 +8,12 @@ Both required and optional properties listed below must be defined
|
||||
under node /cpus/cpu@0.
|
||||
|
||||
Required properties:
|
||||
- operating-points: Refer to Documentation/devicetree/bindings/power/opp.txt
|
||||
for details
|
||||
- None
|
||||
|
||||
Optional properties:
|
||||
- operating-points: Refer to Documentation/devicetree/bindings/power/opp.txt for
|
||||
details. OPPs *must* be supplied either via DT, i.e. this property, or
|
||||
populated at runtime.
|
||||
- clock-latency: Specify the possible maximum transition latency for clock,
|
||||
in unit of nanoseconds.
|
||||
- voltage-tolerance: Specify the CPU voltage tolerance in percentage.
|
||||
|
@ -3,11 +3,19 @@ NTC Thermistor hwmon sensors
|
||||
|
||||
Requires node properties:
|
||||
- "compatible" value : one of
|
||||
"ntc,ncp15wb473"
|
||||
"ntc,ncp18wb473"
|
||||
"ntc,ncp21wb473"
|
||||
"ntc,ncp03wb473"
|
||||
"ntc,ncp15wl333"
|
||||
"murata,ncp15wb473"
|
||||
"murata,ncp18wb473"
|
||||
"murata,ncp21wb473"
|
||||
"murata,ncp03wb473"
|
||||
"murata,ncp15wl333"
|
||||
|
||||
/* Usage of vendor name "ntc" is deprecated */
|
||||
<DEPRECATED> "ntc,ncp15wb473"
|
||||
<DEPRECATED> "ntc,ncp18wb473"
|
||||
<DEPRECATED> "ntc,ncp21wb473"
|
||||
<DEPRECATED> "ntc,ncp03wb473"
|
||||
<DEPRECATED> "ntc,ncp15wl333"
|
||||
|
||||
- "pullup-uv" Pull up voltage in micro volts
|
||||
- "pullup-ohm" Pull up resistor value in ohms
|
||||
- "pulldown-ohm" Pull down resistor value in ohms
|
||||
@ -21,7 +29,7 @@ Read more about iio bindings at
|
||||
|
||||
Example:
|
||||
ncp15wb473@0 {
|
||||
compatible = "ntc,ncp15wb473";
|
||||
compatible = "murata,ncp15wb473";
|
||||
pullup-uv = <1800000>;
|
||||
pullup-ohm = <47000>;
|
||||
pulldown-ohm = <0>;
|
||||
|
@ -4,6 +4,13 @@ Required properties:
|
||||
|
||||
- compatible: Must contain one of the following:
|
||||
|
||||
- "renesas,scifa-sh73a0" for SH73A0 (SH-Mobile AG5) SCIFA compatible UART.
|
||||
- "renesas,scifb-sh73a0" for SH73A0 (SH-Mobile AG5) SCIFB compatible UART.
|
||||
- "renesas,scifa-r8a73a4" for R8A73A4 (R-Mobile APE6) SCIFA compatible UART.
|
||||
- "renesas,scifb-r8a73a4" for R8A73A4 (R-Mobile APE6) SCIFB compatible UART.
|
||||
- "renesas,scifa-r8a7740" for R8A7740 (R-Mobile A1) SCIFA compatible UART.
|
||||
- "renesas,scifb-r8a7740" for R8A7740 (R-Mobile A1) SCIFB compatible UART.
|
||||
- "renesas,scif-r8a7778" for R8A7778 (R-Car M1) SCIF compatible UART.
|
||||
- "renesas,scif-r8a7779" for R8A7779 (R-Car H1) SCIF compatible UART.
|
||||
- "renesas,scif-r8a7790" for R8A7790 (R-Car H2) SCIF compatible UART.
|
||||
- "renesas,scifa-r8a7790" for R8A7790 (R-Car H2) SCIFA compatible UART.
|
||||
|
@ -23,6 +23,12 @@ Optional properties:
|
||||
- spi-max-frequency: Specifies maximum SPI clock frequency,
|
||||
Units - Hz. Definition as per
|
||||
Documentation/devicetree/bindings/spi/spi-bus.txt
|
||||
- num-cs: total number of chipselects
|
||||
- cs-gpios: should specify GPIOs used for chipselects.
|
||||
The gpios will be referred to as reg = <index> in the SPI child
|
||||
nodes. If unspecified, a single SPI device without a chip
|
||||
select can be used.
|
||||
|
||||
|
||||
SPI slave nodes must be children of the SPI master node and can contain
|
||||
properties described in Documentation/devicetree/bindings/spi/spi-bus.txt
|
||||
|
@ -83,6 +83,7 @@ mosaixtech Mosaix Technologies, Inc.
|
||||
moxa Moxa
|
||||
mpl MPL AG
|
||||
mundoreader Mundo Reader S.L.
|
||||
murata Murata Manufacturing Co., Ltd.
|
||||
mxicy Macronix International Co., Ltd.
|
||||
national National Semiconductor
|
||||
neonode Neonode Inc.
|
||||
|
@ -1,6 +1,17 @@
|
||||
Email clients info for Linux
|
||||
======================================================================
|
||||
|
||||
Git
|
||||
----------------------------------------------------------------------
|
||||
These days most developers use `git send-email` instead of regular
|
||||
email clients. The man page for this is quite good. On the receiving
|
||||
end, maintainers use `git am` to apply the patches.
|
||||
|
||||
If you are new to git then send your first patch to yourself. Save it
|
||||
as raw text including all the headers. Run `git am raw_email.txt` and
|
||||
then review the changelog with `git log`. When that works then send
|
||||
the patch to the appropriate mailing list(s).
|
||||
|
||||
General Preferences
|
||||
----------------------------------------------------------------------
|
||||
Patches for the Linux kernel are submitted via email, preferably as
|
||||
|
@ -1,7 +1,7 @@
|
||||
Kernel driver ntc_thermistor
|
||||
=================
|
||||
|
||||
Supported thermistors:
|
||||
Supported thermistors from Murata:
|
||||
* Murata NTC Thermistors NCP15WB473, NCP18WB473, NCP21WB473, NCP03WB473, NCP15WL333
|
||||
Prefixes: 'ncp15wb473', 'ncp18wb473', 'ncp21wb473', 'ncp03wb473', 'ncp15wl333'
|
||||
Datasheet: Publicly available at Murata
|
||||
@ -15,9 +15,9 @@ Authors:
|
||||
Description
|
||||
-----------
|
||||
|
||||
The NTC thermistor is a simple thermistor that requires users to provide the
|
||||
resistance and lookup the corresponding compensation table to get the
|
||||
temperature input.
|
||||
The NTC (Negative Temperature Coefficient) thermistor is a simple thermistor
|
||||
that requires users to provide the resistance and lookup the corresponding
|
||||
compensation table to get the temperature input.
|
||||
|
||||
The NTC driver provides lookup tables with a linear approximation function
|
||||
and four circuit models with an option not to use any of the four models.
|
||||
|
@ -2790,6 +2790,12 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
|
||||
leaf rcu_node structure. Useful for very large
|
||||
systems.
|
||||
|
||||
rcutree.jiffies_till_sched_qs= [KNL]
|
||||
Set required age in jiffies for a
|
||||
given grace period before RCU starts
|
||||
soliciting quiescent-state help from
|
||||
rcu_note_context_switch().
|
||||
|
||||
rcutree.jiffies_till_first_fqs= [KNL]
|
||||
Set delay from grace-period initialization to
|
||||
first attempt to force quiescent states.
|
||||
@ -3130,6 +3136,11 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
|
||||
[KNL] Should the soft-lockup detector generate panics.
|
||||
Format: <integer>
|
||||
|
||||
softlockup_all_cpu_backtrace=
|
||||
[KNL] Should the soft-lockup detector generate
|
||||
backtraces on all cpus.
|
||||
Format: <integer>
|
||||
|
||||
sonypi.*= [HW] Sony Programmable I/O Control Device driver
|
||||
See Documentation/laptops/sonypi.txt
|
||||
|
||||
@ -3521,7 +3532,7 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
|
||||
the allocated input device; If set to 0, video driver
|
||||
will only send out the event without touching backlight
|
||||
brightness level.
|
||||
default: 0
|
||||
default: 1
|
||||
|
||||
virtio_mmio.device=
|
||||
[VMMIO] Memory mapped virtio (platform) device.
|
||||
|
@ -8,8 +8,8 @@ disk-shock-protection.txt
|
||||
- information on hard disk shock protection.
|
||||
dslm.c
|
||||
- Simple Disk Sleep Monitor program
|
||||
hpfall.c
|
||||
- (HP) laptop accelerometer program for disk protection.
|
||||
freefall.c
|
||||
- (HP/DELL) laptop accelerometer program for disk protection.
|
||||
laptop-mode.txt
|
||||
- how to conserve battery power using laptop-mode.
|
||||
sony-laptop.txt
|
||||
|
@ -1,7 +1,9 @@
|
||||
/* Disk protection for HP machines.
|
||||
/* Disk protection for HP/DELL machines.
|
||||
*
|
||||
* Copyright 2008 Eric Piel
|
||||
* Copyright 2009 Pavel Machek <pavel@ucw.cz>
|
||||
* Copyright 2012 Sonal Santan
|
||||
* Copyright 2014 Pali Rohár <pali.rohar@gmail.com>
|
||||
*
|
||||
* GPLv2.
|
||||
*/
|
||||
@ -18,24 +20,31 @@
|
||||
#include <signal.h>
|
||||
#include <sys/mman.h>
|
||||
#include <sched.h>
|
||||
#include <syslog.h>
|
||||
|
||||
char unload_heads_path[64];
|
||||
static int noled;
|
||||
static char unload_heads_path[64];
|
||||
static char device_path[32];
|
||||
static const char app_name[] = "FREE FALL";
|
||||
|
||||
int set_unload_heads_path(char *device)
|
||||
static int set_unload_heads_path(char *device)
|
||||
{
|
||||
char devname[64];
|
||||
|
||||
if (strlen(device) <= 5 || strncmp(device, "/dev/", 5) != 0)
|
||||
return -EINVAL;
|
||||
strncpy(devname, device + 5, sizeof(devname));
|
||||
strncpy(devname, device + 5, sizeof(devname) - 1);
|
||||
strncpy(device_path, device, sizeof(device_path) - 1);
|
||||
|
||||
snprintf(unload_heads_path, sizeof(unload_heads_path) - 1,
|
||||
"/sys/block/%s/device/unload_heads", devname);
|
||||
return 0;
|
||||
}
|
||||
int valid_disk(void)
|
||||
|
||||
static int valid_disk(void)
|
||||
{
|
||||
int fd = open(unload_heads_path, O_RDONLY);
|
||||
|
||||
if (fd < 0) {
|
||||
perror(unload_heads_path);
|
||||
return 0;
|
||||
@ -45,43 +54,54 @@ int valid_disk(void)
|
||||
return 1;
|
||||
}
|
||||
|
||||
void write_int(char *path, int i)
|
||||
static void write_int(char *path, int i)
|
||||
{
|
||||
char buf[1024];
|
||||
int fd = open(path, O_RDWR);
|
||||
|
||||
if (fd < 0) {
|
||||
perror("open");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
sprintf(buf, "%d", i);
|
||||
|
||||
if (write(fd, buf, strlen(buf)) != strlen(buf)) {
|
||||
perror("write");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
close(fd);
|
||||
}
|
||||
|
||||
void set_led(int on)
|
||||
static void set_led(int on)
|
||||
{
|
||||
if (noled)
|
||||
return;
|
||||
write_int("/sys/class/leds/hp::hddprotect/brightness", on);
|
||||
}
|
||||
|
||||
void protect(int seconds)
|
||||
static void protect(int seconds)
|
||||
{
|
||||
const char *str = (seconds == 0) ? "Unparked" : "Parked";
|
||||
|
||||
write_int(unload_heads_path, seconds*1000);
|
||||
syslog(LOG_INFO, "%s %s disk head\n", str, device_path);
|
||||
}
|
||||
|
||||
int on_ac(void)
|
||||
static int on_ac(void)
|
||||
{
|
||||
// /sys/class/power_supply/AC0/online
|
||||
/* /sys/class/power_supply/AC0/online */
|
||||
return 1;
|
||||
}
|
||||
|
||||
int lid_open(void)
|
||||
static int lid_open(void)
|
||||
{
|
||||
// /proc/acpi/button/lid/LID/state
|
||||
/* /proc/acpi/button/lid/LID/state */
|
||||
return 1;
|
||||
}
|
||||
|
||||
void ignore_me(void)
|
||||
static void ignore_me(int signum)
|
||||
{
|
||||
protect(0);
|
||||
set_led(0);
|
||||
@ -90,6 +110,7 @@ void ignore_me(void)
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
int fd, ret;
|
||||
struct stat st;
|
||||
struct sched_param param;
|
||||
|
||||
if (argc == 1)
|
||||
@ -111,7 +132,16 @@ int main(int argc, char **argv)
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
daemon(0, 0);
|
||||
if (stat("/sys/class/leds/hp::hddprotect/brightness", &st))
|
||||
noled = 1;
|
||||
|
||||
if (daemon(0, 0) != 0) {
|
||||
perror("daemon");
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
openlog(app_name, LOG_CONS | LOG_PID | LOG_NDELAY, LOG_LOCAL1);
|
||||
|
||||
param.sched_priority = sched_get_priority_max(SCHED_FIFO);
|
||||
sched_setscheduler(0, SCHED_FIFO, ¶m);
|
||||
mlockall(MCL_CURRENT|MCL_FUTURE);
|
||||
@ -141,6 +171,7 @@ int main(int argc, char **argv)
|
||||
alarm(20);
|
||||
}
|
||||
|
||||
closelog();
|
||||
close(fd);
|
||||
return EXIT_SUCCESS;
|
||||
}
|
@ -209,15 +209,12 @@ If memory device is found, memory hotplug code will be called.
|
||||
|
||||
4.2 Notify memory hot-add event by hand
|
||||
------------
|
||||
On powerpc, the firmware does not notify a memory hotplug event to the kernel.
|
||||
Therefore, "probe" interface is supported to notify the event to the kernel.
|
||||
This interface depends on CONFIG_ARCH_MEMORY_PROBE.
|
||||
|
||||
CONFIG_ARCH_MEMORY_PROBE is supported on powerpc only. On x86, this config
|
||||
option is disabled by default since ACPI notifies a memory hotplug event to
|
||||
the kernel, which performs its hotplug operation as the result. Please
|
||||
enable this option if you need the "probe" interface for testing purposes
|
||||
on x86.
|
||||
On some architectures, the firmware may not notify the kernel of a memory
|
||||
hotplug event. Therefore, the memory "probe" interface is supported to
|
||||
explicitly notify the kernel. This interface depends on
|
||||
CONFIG_ARCH_MEMORY_PROBE and can be configured on powerpc, sh, and x86
|
||||
if hotplug is supported, although for x86 this should be handled by ACPI
|
||||
notification.
|
||||
|
||||
Probe interface is located at
|
||||
/sys/devices/system/memory/probe
|
||||
|
@ -17,6 +17,7 @@
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
#define _GNU_SOURCE
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include <inttypes.h>
|
||||
@ -46,12 +47,14 @@
|
||||
#define CLOCK_INVALID -1
|
||||
#endif
|
||||
|
||||
/* When glibc offers the syscall, this will go away. */
|
||||
/* clock_adjtime is not available in GLIBC < 2.14 */
|
||||
#if !__GLIBC_PREREQ(2, 14)
|
||||
#include <sys/syscall.h>
|
||||
static int clock_adjtime(clockid_t id, struct timex *tx)
|
||||
{
|
||||
return syscall(__NR_clock_adjtime, id, tx);
|
||||
}
|
||||
#endif
|
||||
|
||||
static clockid_t get_clockid(int fd)
|
||||
{
|
||||
|
@ -286,6 +286,11 @@ STAC92HD83*
|
||||
hp-inv-led HP with broken BIOS for inverted mute LED
|
||||
auto BIOS setup (default)
|
||||
|
||||
STAC92HD95
|
||||
==========
|
||||
hp-led LED support for HP laptops
|
||||
hp-bass Bass HPF setup for HP Spectre 13
|
||||
|
||||
STAC9872
|
||||
========
|
||||
vaio VAIO laptop without SPDIF
|
||||
|
@ -75,6 +75,7 @@ show up in /proc/sys/kernel:
|
||||
- shmall
|
||||
- shmmax [ sysv ipc ]
|
||||
- shmmni
|
||||
- softlockup_all_cpu_backtrace
|
||||
- stop-a [ SPARC only ]
|
||||
- sysrq ==> Documentation/sysrq.txt
|
||||
- sysctl_writes_strict
|
||||
@ -783,6 +784,22 @@ via the /proc/sys interface:
|
||||
|
||||
==============================================================
|
||||
|
||||
softlockup_all_cpu_backtrace:
|
||||
|
||||
This value controls the soft lockup detector thread's behavior
|
||||
when a soft lockup condition is detected as to whether or not
|
||||
to gather further debug information. If enabled, each cpu will
|
||||
be issued an NMI and instructed to capture stack trace.
|
||||
|
||||
This feature is only applicable for architectures which support
|
||||
NMI.
|
||||
|
||||
0: do nothing. This is the default behavior.
|
||||
|
||||
1: on detection capture more debug information.
|
||||
|
||||
==============================================================
|
||||
|
||||
tainted:
|
||||
|
||||
Non-zero if the kernel has been tainted. Numeric values, which
|
||||
|
@ -702,7 +702,8 @@ The batch value of each per cpu pagelist is also updated as a result. It is
|
||||
set to pcp->high/4. The upper limit of batch is (PAGE_SHIFT * 8)
|
||||
|
||||
The initial value is zero. Kernel does not use this value at boot time to set
|
||||
the high water marks for each per cpu page list.
|
||||
the high water marks for each per cpu page list. If the user writes '0' to this
|
||||
sysctl, it will revert to this default behavior.
|
||||
|
||||
==============================================================
|
||||
|
||||
|
@ -47,7 +47,6 @@ use constant HIGH_KSWAPD_REWAKEUP => 21;
|
||||
use constant HIGH_NR_SCANNED => 22;
|
||||
use constant HIGH_NR_TAKEN => 23;
|
||||
use constant HIGH_NR_RECLAIMED => 24;
|
||||
use constant HIGH_NR_CONTIG_DIRTY => 25;
|
||||
|
||||
my %perprocesspid;
|
||||
my %perprocess;
|
||||
@ -105,7 +104,7 @@ my $regex_direct_end_default = 'nr_reclaimed=([0-9]*)';
|
||||
my $regex_kswapd_wake_default = 'nid=([0-9]*) order=([0-9]*)';
|
||||
my $regex_kswapd_sleep_default = 'nid=([0-9]*)';
|
||||
my $regex_wakeup_kswapd_default = 'nid=([0-9]*) zid=([0-9]*) order=([0-9]*)';
|
||||
my $regex_lru_isolate_default = 'isolate_mode=([0-9]*) order=([0-9]*) nr_requested=([0-9]*) nr_scanned=([0-9]*) nr_taken=([0-9]*) contig_taken=([0-9]*) contig_dirty=([0-9]*) contig_failed=([0-9]*)';
|
||||
my $regex_lru_isolate_default = 'isolate_mode=([0-9]*) order=([0-9]*) nr_requested=([0-9]*) nr_scanned=([0-9]*) nr_taken=([0-9]*) file=([0-9]*)';
|
||||
my $regex_lru_shrink_inactive_default = 'nid=([0-9]*) zid=([0-9]*) nr_scanned=([0-9]*) nr_reclaimed=([0-9]*) priority=([0-9]*) flags=([A-Z_|]*)';
|
||||
my $regex_lru_shrink_active_default = 'lru=([A-Z_]*) nr_scanned=([0-9]*) nr_rotated=([0-9]*) priority=([0-9]*)';
|
||||
my $regex_writepage_default = 'page=([0-9a-f]*) pfn=([0-9]*) flags=([A-Z_|]*)';
|
||||
@ -200,7 +199,7 @@ $regex_lru_isolate = generate_traceevent_regex(
|
||||
$regex_lru_isolate_default,
|
||||
"isolate_mode", "order",
|
||||
"nr_requested", "nr_scanned", "nr_taken",
|
||||
"contig_taken", "contig_dirty", "contig_failed");
|
||||
"file");
|
||||
$regex_lru_shrink_inactive = generate_traceevent_regex(
|
||||
"vmscan/mm_vmscan_lru_shrink_inactive",
|
||||
$regex_lru_shrink_inactive_default,
|
||||
@ -375,7 +374,6 @@ EVENT_PROCESS:
|
||||
}
|
||||
my $isolate_mode = $1;
|
||||
my $nr_scanned = $4;
|
||||
my $nr_contig_dirty = $7;
|
||||
|
||||
# To closer match vmstat scanning statistics, only count isolate_both
|
||||
# and isolate_inactive as scanning. isolate_active is rotation
|
||||
@ -385,7 +383,6 @@ EVENT_PROCESS:
|
||||
if ($isolate_mode != 2) {
|
||||
$perprocesspid{$process_pid}->{HIGH_NR_SCANNED} += $nr_scanned;
|
||||
}
|
||||
$perprocesspid{$process_pid}->{HIGH_NR_CONTIG_DIRTY} += $nr_contig_dirty;
|
||||
} elsif ($tracepoint eq "mm_vmscan_lru_shrink_inactive") {
|
||||
$details = $6;
|
||||
if ($details !~ /$regex_lru_shrink_inactive/o) {
|
||||
@ -539,13 +536,6 @@ sub dump_stats {
|
||||
}
|
||||
}
|
||||
}
|
||||
if ($stats{$process_pid}->{HIGH_NR_CONTIG_DIRTY}) {
|
||||
print " ";
|
||||
my $count = $stats{$process_pid}->{HIGH_NR_CONTIG_DIRTY};
|
||||
if ($count != 0) {
|
||||
print "contig-dirty=$count ";
|
||||
}
|
||||
}
|
||||
|
||||
print "\n";
|
||||
}
|
||||
|
103
MAINTAINERS
103
MAINTAINERS
@ -156,7 +156,6 @@ F: drivers/net/hamradio/6pack.c
|
||||
|
||||
8169 10/100/1000 GIGABIT ETHERNET DRIVER
|
||||
M: Realtek linux nic maintainers <nic_swsd@realtek.com>
|
||||
M: Francois Romieu <romieu@fr.zoreil.com>
|
||||
L: netdev@vger.kernel.org
|
||||
S: Maintained
|
||||
F: drivers/net/ethernet/realtek/r8169.c
|
||||
@ -943,16 +942,10 @@ L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||
S: Maintained
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux.git
|
||||
F: arch/arm/mach-imx/
|
||||
F: arch/arm/mach-mxs/
|
||||
F: arch/arm/boot/dts/imx*
|
||||
F: arch/arm/configs/imx*_defconfig
|
||||
|
||||
ARM/FREESCALE MXS ARM ARCHITECTURE
|
||||
M: Shawn Guo <shawn.guo@linaro.org>
|
||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||
S: Maintained
|
||||
T: git git://git.linaro.org/people/shawnguo/linux-2.6.git
|
||||
F: arch/arm/mach-mxs/
|
||||
|
||||
ARM/GLOMATION GESBC9312SX MACHINE SUPPORT
|
||||
M: Lennert Buytenhek <kernel@wantstofly.org>
|
||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||
@ -1052,9 +1045,33 @@ M: Santosh Shilimkar <santosh.shilimkar@ti.com>
|
||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||
S: Maintained
|
||||
F: arch/arm/mach-keystone/
|
||||
F: drivers/clk/keystone/
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/ssantosh/linux-keystone.git
|
||||
|
||||
ARM/TEXAS INSTRUMENT KEYSTONE CLOCK FRAMEWORK
|
||||
M: Santosh Shilimkar <santosh.shilimkar@ti.com>
|
||||
L: linux-kernel@vger.kernel.org
|
||||
S: Maintained
|
||||
F: drivers/clk/keystone/
|
||||
|
||||
ARM/TEXAS INSTRUMENT KEYSTONE ClOCKSOURCE
|
||||
M: Santosh Shilimkar <santosh.shilimkar@ti.com>
|
||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||
L: linux-kernel@vger.kernel.org
|
||||
S: Maintained
|
||||
F: drivers/clocksource/timer-keystone.c
|
||||
|
||||
ARM/TEXAS INSTRUMENT KEYSTONE RESET DRIVER
|
||||
M: Santosh Shilimkar <santosh.shilimkar@ti.com>
|
||||
L: linux-kernel@vger.kernel.org
|
||||
S: Maintained
|
||||
F: drivers/power/reset/keystone-reset.c
|
||||
|
||||
ARM/TEXAS INSTRUMENT AEMIF/EMIF DRIVERS
|
||||
M: Santosh Shilimkar <santosh.shilimkar@ti.com>
|
||||
L: linux-kernel@vger.kernel.org
|
||||
S: Maintained
|
||||
F: drivers/memory/*emif*
|
||||
|
||||
ARM/LOGICPD PXA270 MACHINE SUPPORT
|
||||
M: Lennert Buytenhek <kernel@wantstofly.org>
|
||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||
@ -1296,6 +1313,20 @@ W: http://oss.renesas.com
|
||||
Q: http://patchwork.kernel.org/project/linux-sh/list/
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas.git next
|
||||
S: Supported
|
||||
F: arch/arm/boot/dts/emev2*
|
||||
F: arch/arm/boot/dts/r7s*
|
||||
F: arch/arm/boot/dts/r8a*
|
||||
F: arch/arm/boot/dts/sh*
|
||||
F: arch/arm/configs/ape6evm_defconfig
|
||||
F: arch/arm/configs/armadillo800eva_defconfig
|
||||
F: arch/arm/configs/bockw_defconfig
|
||||
F: arch/arm/configs/genmai_defconfig
|
||||
F: arch/arm/configs/koelsch_defconfig
|
||||
F: arch/arm/configs/kzm9g_defconfig
|
||||
F: arch/arm/configs/lager_defconfig
|
||||
F: arch/arm/configs/mackerel_defconfig
|
||||
F: arch/arm/configs/marzen_defconfig
|
||||
F: arch/arm/configs/shmobile_defconfig
|
||||
F: arch/arm/mach-shmobile/
|
||||
F: drivers/sh/
|
||||
|
||||
@ -2917,6 +2948,9 @@ L: linux-doc@vger.kernel.org
|
||||
T: quilt http://www.infradead.org/~rdunlap/Doc/patches/
|
||||
S: Maintained
|
||||
F: Documentation/
|
||||
X: Documentation/ABI/
|
||||
X: Documentation/devicetree/
|
||||
X: Documentation/[a-z][a-z]_[A-Z][A-Z]/
|
||||
|
||||
DOUBLETALK DRIVER
|
||||
M: "James R. Van Zandt" <jrv@vanzandt.mv.com>
|
||||
@ -3189,14 +3223,6 @@ L: linux-scsi@vger.kernel.org
|
||||
S: Maintained
|
||||
F: drivers/scsi/eata_pio.*
|
||||
|
||||
EBTABLES
|
||||
L: netfilter-devel@vger.kernel.org
|
||||
W: http://ebtables.sourceforge.net/
|
||||
S: Orphan
|
||||
F: include/linux/netfilter_bridge/ebt_*.h
|
||||
F: include/uapi/linux/netfilter_bridge/ebt_*.h
|
||||
F: net/bridge/netfilter/ebt*.c
|
||||
|
||||
EC100 MEDIA DRIVER
|
||||
M: Antti Palosaari <crope@iki.fi>
|
||||
L: linux-media@vger.kernel.org
|
||||
@ -4484,8 +4510,7 @@ S: Supported
|
||||
F: drivers/idle/i7300_idle.c
|
||||
|
||||
IEEE 802.15.4 SUBSYSTEM
|
||||
M: Alexander Smirnov <alex.bluesman.smirnov@gmail.com>
|
||||
M: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
|
||||
M: Alexander Aring <alex.aring@gmail.com>
|
||||
L: linux-zigbee-devel@lists.sourceforge.net (moderated for non-subscribers)
|
||||
W: http://apps.sourceforge.net/trac/linux-zigbee
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/lowpan/lowpan.git
|
||||
@ -5517,10 +5542,11 @@ S: Maintained
|
||||
F: arch/arm/mach-lpc32xx/
|
||||
|
||||
LSILOGIC MPT FUSION DRIVERS (FC/SAS/SPI)
|
||||
M: Nagalakshmi Nandigama <Nagalakshmi.Nandigama@lsi.com>
|
||||
M: Sreekanth Reddy <Sreekanth.Reddy@lsi.com>
|
||||
M: support@lsi.com
|
||||
L: DL-MPTFusionLinux@lsi.com
|
||||
M: Nagalakshmi Nandigama <nagalakshmi.nandigama@avagotech.com>
|
||||
M: Praveen Krishnamoorthy <praveen.krishnamoorthy@avagotech.com>
|
||||
M: Sreekanth Reddy <sreekanth.reddy@avagotech.com>
|
||||
M: Abhijit Mahajan <abhijit.mahajan@avagotech.com>
|
||||
L: MPT-FusionLinux.pdl@avagotech.com
|
||||
L: linux-scsi@vger.kernel.org
|
||||
W: http://www.lsilogic.com/support
|
||||
S: Supported
|
||||
@ -6105,12 +6131,11 @@ F: Documentation/networking/s2io.txt
|
||||
F: Documentation/networking/vxge.txt
|
||||
F: drivers/net/ethernet/neterion/
|
||||
|
||||
NETFILTER/IPTABLES
|
||||
NETFILTER ({IP,IP6,ARP,EB,NF}TABLES)
|
||||
M: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
M: Patrick McHardy <kaber@trash.net>
|
||||
M: Jozsef Kadlecsik <kadlec@blackhole.kfki.hu>
|
||||
L: netfilter-devel@vger.kernel.org
|
||||
L: netfilter@vger.kernel.org
|
||||
L: coreteam@netfilter.org
|
||||
W: http://www.netfilter.org/
|
||||
W: http://www.iptables.org/
|
||||
@ -6774,7 +6799,7 @@ F: arch/x86/kernel/quirks.c
|
||||
|
||||
PCI DRIVER FOR IMX6
|
||||
M: Richard Zhu <r65037@freescale.com>
|
||||
M: Shawn Guo <shawn.guo@linaro.org>
|
||||
M: Shawn Guo <shawn.guo@freescale.com>
|
||||
L: linux-pci@vger.kernel.org
|
||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||
S: Maintained
|
||||
@ -8196,13 +8221,15 @@ S: Maintained
|
||||
F: drivers/usb/misc/sisusbvga/
|
||||
|
||||
SLAB ALLOCATOR
|
||||
M: Christoph Lameter <cl@linux-foundation.org>
|
||||
M: Christoph Lameter <cl@linux.com>
|
||||
M: Pekka Enberg <penberg@kernel.org>
|
||||
M: Matt Mackall <mpm@selenic.com>
|
||||
M: David Rientjes <rientjes@google.com>
|
||||
M: Joonsoo Kim <iamjoonsoo.kim@lge.com>
|
||||
M: Andrew Morton <akpm@linux-foundation.org>
|
||||
L: linux-mm@kvack.org
|
||||
S: Maintained
|
||||
F: include/linux/sl?b*.h
|
||||
F: mm/sl?b.c
|
||||
F: mm/sl?b*
|
||||
|
||||
SLEEPABLE READ-COPY UPDATE (SRCU)
|
||||
M: Lai Jiangshan <laijs@cn.fujitsu.com>
|
||||
@ -8969,7 +8996,7 @@ F: drivers/media/radio/radio-raremono.c
|
||||
|
||||
THERMAL
|
||||
M: Zhang Rui <rui.zhang@intel.com>
|
||||
M: Eduardo Valentin <eduardo.valentin@ti.com>
|
||||
M: Eduardo Valentin <edubezval@gmail.com>
|
||||
L: linux-pm@vger.kernel.org
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux.git
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal.git
|
||||
@ -8996,7 +9023,7 @@ S: Maintained
|
||||
F: drivers/platform/x86/thinkpad_acpi.c
|
||||
|
||||
TI BANDGAP AND THERMAL DRIVER
|
||||
M: Eduardo Valentin <eduardo.valentin@ti.com>
|
||||
M: Eduardo Valentin <edubezval@gmail.com>
|
||||
L: linux-pm@vger.kernel.org
|
||||
S: Supported
|
||||
F: drivers/thermal/ti-soc-thermal/
|
||||
@ -9410,12 +9437,6 @@ S: Maintained
|
||||
F: drivers/usb/host/isp116x*
|
||||
F: include/linux/usb/isp116x.h
|
||||
|
||||
USB KAWASAKI LSI DRIVER
|
||||
M: Oliver Neukum <oliver@neukum.org>
|
||||
L: linux-usb@vger.kernel.org
|
||||
S: Maintained
|
||||
F: drivers/usb/serial/kl5kusb105.*
|
||||
|
||||
USB MASS STORAGE DRIVER
|
||||
M: Matthew Dharm <mdharm-usb@one-eyed-alien.net>
|
||||
L: linux-usb@vger.kernel.org
|
||||
@ -9443,12 +9464,6 @@ S: Maintained
|
||||
F: Documentation/usb/ohci.txt
|
||||
F: drivers/usb/host/ohci*
|
||||
|
||||
USB OPTION-CARD DRIVER
|
||||
M: Matthias Urlichs <smurf@smurf.noris.de>
|
||||
L: linux-usb@vger.kernel.org
|
||||
S: Maintained
|
||||
F: drivers/usb/serial/option.c
|
||||
|
||||
USB PEGASUS DRIVER
|
||||
M: Petko Manolov <petkan@nucleusys.com>
|
||||
L: linux-usb@vger.kernel.org
|
||||
@ -9481,7 +9496,7 @@ S: Maintained
|
||||
F: drivers/net/usb/rtl8150.c
|
||||
|
||||
USB SERIAL SUBSYSTEM
|
||||
M: Johan Hovold <jhovold@gmail.com>
|
||||
M: Johan Hovold <johan@kernel.org>
|
||||
L: linux-usb@vger.kernel.org
|
||||
S: Maintained
|
||||
F: Documentation/usb/usb-serial.txt
|
||||
|
102
Makefile
102
Makefile
@ -1,7 +1,7 @@
|
||||
VERSION = 3
|
||||
PATCHLEVEL = 16
|
||||
SUBLEVEL = 0
|
||||
EXTRAVERSION = -rc2
|
||||
EXTRAVERSION = -rc6
|
||||
NAME = Shuffling Zombie Juror
|
||||
|
||||
# *DOCUMENTATION*
|
||||
@ -41,6 +41,29 @@ unexport GREP_OPTIONS
|
||||
# descending is started. They are now explicitly listed as the
|
||||
# prepare rule.
|
||||
|
||||
# Beautify output
|
||||
# ---------------------------------------------------------------------------
|
||||
#
|
||||
# Normally, we echo the whole command before executing it. By making
|
||||
# that echo $($(quiet)$(cmd)), we now have the possibility to set
|
||||
# $(quiet) to choose other forms of output instead, e.g.
|
||||
#
|
||||
# quiet_cmd_cc_o_c = Compiling $(RELDIR)/$@
|
||||
# cmd_cc_o_c = $(CC) $(c_flags) -c -o $@ $<
|
||||
#
|
||||
# If $(quiet) is empty, the whole command will be printed.
|
||||
# If it is set to "quiet_", only the short version will be printed.
|
||||
# If it is set to "silent_", nothing will be printed at all, since
|
||||
# the variable $(silent_cmd_cc_o_c) doesn't exist.
|
||||
#
|
||||
# A simple variant is to prefix commands with $(Q) - that's useful
|
||||
# for commands that shall be hidden in non-verbose mode.
|
||||
#
|
||||
# $(Q)ln $@ :<
|
||||
#
|
||||
# If KBUILD_VERBOSE equals 0 then the above command will be hidden.
|
||||
# If KBUILD_VERBOSE equals 1 then the above command is displayed.
|
||||
#
|
||||
# To put more focus on warnings, be less verbose as default
|
||||
# Use 'make V=1' to see the full commands
|
||||
|
||||
@ -51,6 +74,29 @@ ifndef KBUILD_VERBOSE
|
||||
KBUILD_VERBOSE = 0
|
||||
endif
|
||||
|
||||
ifeq ($(KBUILD_VERBOSE),1)
|
||||
quiet =
|
||||
Q =
|
||||
else
|
||||
quiet=quiet_
|
||||
Q = @
|
||||
endif
|
||||
|
||||
# If the user is running make -s (silent mode), suppress echoing of
|
||||
# commands
|
||||
|
||||
ifneq ($(filter 4.%,$(MAKE_VERSION)),) # make-4
|
||||
ifneq ($(filter %s ,$(firstword x$(MAKEFLAGS))),)
|
||||
quiet=silent_
|
||||
endif
|
||||
else # make-3.8x
|
||||
ifneq ($(filter s% -s%,$(MAKEFLAGS)),)
|
||||
quiet=silent_
|
||||
endif
|
||||
endif
|
||||
|
||||
export quiet Q KBUILD_VERBOSE
|
||||
|
||||
# Call a source code checker (by default, "sparse") as part of the
|
||||
# C compilation.
|
||||
#
|
||||
@ -126,7 +172,13 @@ PHONY += $(MAKECMDGOALS) sub-make
|
||||
$(filter-out _all sub-make $(CURDIR)/Makefile, $(MAKECMDGOALS)) _all: sub-make
|
||||
@:
|
||||
|
||||
# Fake the "Entering directory" message once, so that IDEs/editors are
|
||||
# able to understand relative filenames.
|
||||
echodir := @echo
|
||||
quiet_echodir := @echo
|
||||
silent_echodir := @:
|
||||
sub-make: FORCE
|
||||
$($(quiet)echodir) "make[1]: Entering directory \`$(KBUILD_OUTPUT)'"
|
||||
$(if $(KBUILD_VERBOSE:1=),@)$(MAKE) -C $(KBUILD_OUTPUT) \
|
||||
KBUILD_SRC=$(CURDIR) \
|
||||
KBUILD_EXTMOD="$(KBUILD_EXTMOD)" -f $(CURDIR)/Makefile \
|
||||
@ -289,52 +341,6 @@ endif
|
||||
export KBUILD_MODULES KBUILD_BUILTIN
|
||||
export KBUILD_CHECKSRC KBUILD_SRC KBUILD_EXTMOD
|
||||
|
||||
# Beautify output
|
||||
# ---------------------------------------------------------------------------
|
||||
#
|
||||
# Normally, we echo the whole command before executing it. By making
|
||||
# that echo $($(quiet)$(cmd)), we now have the possibility to set
|
||||
# $(quiet) to choose other forms of output instead, e.g.
|
||||
#
|
||||
# quiet_cmd_cc_o_c = Compiling $(RELDIR)/$@
|
||||
# cmd_cc_o_c = $(CC) $(c_flags) -c -o $@ $<
|
||||
#
|
||||
# If $(quiet) is empty, the whole command will be printed.
|
||||
# If it is set to "quiet_", only the short version will be printed.
|
||||
# If it is set to "silent_", nothing will be printed at all, since
|
||||
# the variable $(silent_cmd_cc_o_c) doesn't exist.
|
||||
#
|
||||
# A simple variant is to prefix commands with $(Q) - that's useful
|
||||
# for commands that shall be hidden in non-verbose mode.
|
||||
#
|
||||
# $(Q)ln $@ :<
|
||||
#
|
||||
# If KBUILD_VERBOSE equals 0 then the above command will be hidden.
|
||||
# If KBUILD_VERBOSE equals 1 then the above command is displayed.
|
||||
|
||||
ifeq ($(KBUILD_VERBOSE),1)
|
||||
quiet =
|
||||
Q =
|
||||
else
|
||||
quiet=quiet_
|
||||
Q = @
|
||||
endif
|
||||
|
||||
# If the user is running make -s (silent mode), suppress echoing of
|
||||
# commands
|
||||
|
||||
ifneq ($(filter 4.%,$(MAKE_VERSION)),) # make-4
|
||||
ifneq ($(filter %s ,$(firstword x$(MAKEFLAGS))),)
|
||||
quiet=silent_
|
||||
endif
|
||||
else # make-3.8x
|
||||
ifneq ($(filter s% -s%,$(MAKEFLAGS)),)
|
||||
quiet=silent_
|
||||
endif
|
||||
endif
|
||||
|
||||
export quiet Q KBUILD_VERBOSE
|
||||
|
||||
ifneq ($(CC),)
|
||||
ifeq ($(shell $(CC) -v 2>&1 | grep -c "clang version"), 1)
|
||||
COMPILER := clang
|
||||
@ -1170,7 +1176,7 @@ distclean: mrproper
|
||||
# Packaging of the kernel to various formats
|
||||
# ---------------------------------------------------------------------------
|
||||
# rpm target kept for backward compatibility
|
||||
package-dir := $(srctree)/scripts/package
|
||||
package-dir := scripts/package
|
||||
|
||||
%src-pkg: FORCE
|
||||
$(Q)$(MAKE) $(build)=$(package-dir) $@
|
||||
|
@ -60,7 +60,7 @@ extern void read_decode_cache_bcr(void);
|
||||
#define ARC_REG_IC_IVIC 0x10
|
||||
#define ARC_REG_IC_CTRL 0x11
|
||||
#define ARC_REG_IC_IVIL 0x19
|
||||
#if defined(CONFIG_ARC_MMU_V3) || defined (CONFIG_ARC_MMU_V4)
|
||||
#if defined(CONFIG_ARC_MMU_V3)
|
||||
#define ARC_REG_IC_PTAG 0x1E
|
||||
#endif
|
||||
|
||||
@ -74,7 +74,7 @@ extern void read_decode_cache_bcr(void);
|
||||
#define ARC_REG_DC_IVDL 0x4A
|
||||
#define ARC_REG_DC_FLSH 0x4B
|
||||
#define ARC_REG_DC_FLDL 0x4C
|
||||
#if defined(CONFIG_ARC_MMU_V3) || defined (CONFIG_ARC_MMU_V4)
|
||||
#if defined(CONFIG_ARC_MMU_V3)
|
||||
#define ARC_REG_DC_PTAG 0x5C
|
||||
#endif
|
||||
|
||||
|
@ -11,6 +11,7 @@
|
||||
#ifndef _UAPI__ASM_ARC_PTRACE_H
|
||||
#define _UAPI__ASM_ARC_PTRACE_H
|
||||
|
||||
#define PTRACE_GET_THREAD_AREA 25
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
/*
|
||||
|
@ -10,9 +10,9 @@
|
||||
* -This is the more "natural" hand written assembler
|
||||
*/
|
||||
|
||||
#include <linux/linkage.h>
|
||||
#include <asm/entry.h> /* For the SAVE_* macros */
|
||||
#include <asm/asm-offsets.h>
|
||||
#include <asm/linkage.h>
|
||||
|
||||
#define KSP_WORD_OFF ((TASK_THREAD + THREAD_KSP) / 4)
|
||||
|
||||
|
@ -41,7 +41,7 @@ const struct machine_desc * __init setup_machine_fdt(void *dt)
|
||||
{
|
||||
const struct machine_desc *mdesc;
|
||||
unsigned long dt_root;
|
||||
void *clk;
|
||||
const void *clk;
|
||||
int len;
|
||||
|
||||
if (!early_init_dt_scan(dt))
|
||||
|
@ -77,10 +77,11 @@ stext:
|
||||
; Clear BSS before updating any globals
|
||||
; XXX: use ZOL here
|
||||
mov r5, __bss_start
|
||||
mov r6, __bss_stop
|
||||
sub r6, __bss_stop, r5
|
||||
lsr.f lp_count, r6, 2
|
||||
lpnz 1f
|
||||
st.ab 0, [r5, 4]
|
||||
1:
|
||||
st.ab 0, [r5,4]
|
||||
brlt r5, r6, 1b
|
||||
|
||||
; Uboot - kernel ABI
|
||||
; r0 = [0] No uboot interaction, [1] cmdline in r2, [2] DTB in r2
|
||||
|
@ -146,6 +146,10 @@ long arch_ptrace(struct task_struct *child, long request,
|
||||
pr_debug("REQ=%ld: ADDR =0x%lx, DATA=0x%lx)\n", request, addr, data);
|
||||
|
||||
switch (request) {
|
||||
case PTRACE_GET_THREAD_AREA:
|
||||
ret = put_user(task_thread_info(child)->thr_ptr,
|
||||
(unsigned long __user *)data);
|
||||
break;
|
||||
default:
|
||||
ret = ptrace_request(child, request, addr, data);
|
||||
break;
|
||||
|
@ -337,8 +337,19 @@ irqreturn_t do_IPI(int irq, void *dev_id)
|
||||
* API called by platform code to hookup arch-common ISR to their IPI IRQ
|
||||
*/
|
||||
static DEFINE_PER_CPU(int, ipi_dev);
|
||||
|
||||
static struct irqaction arc_ipi_irq = {
|
||||
.name = "IPI Interrupt",
|
||||
.flags = IRQF_PERCPU,
|
||||
.handler = do_IPI,
|
||||
};
|
||||
|
||||
int smp_ipi_irq_setup(int cpu, int irq)
|
||||
{
|
||||
int *dev_id = &per_cpu(ipi_dev, smp_processor_id());
|
||||
return request_percpu_irq(irq, do_IPI, "IPI Interrupt", dev_id);
|
||||
if (!cpu)
|
||||
return setup_irq(irq, &arc_ipi_irq);
|
||||
else
|
||||
arch_unmask_irq(irq);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -116,7 +116,7 @@ SECTIONS
|
||||
|
||||
_edata = .;
|
||||
|
||||
BSS_SECTION(0, 0, 0)
|
||||
BSS_SECTION(4, 4, 4)
|
||||
|
||||
#ifdef CONFIG_ARC_DW2_UNWIND
|
||||
. = ALIGN(PAGE_SIZE);
|
||||
|
@ -389,7 +389,7 @@ static inline void __dc_line_op(unsigned long paddr, unsigned long vaddr,
|
||||
/***********************************************************
|
||||
* Machine specific helper for per line I-Cache invalidate.
|
||||
*/
|
||||
static void __ic_line_inv_vaddr(unsigned long paddr, unsigned long vaddr,
|
||||
static void __ic_line_inv_vaddr_local(unsigned long paddr, unsigned long vaddr,
|
||||
unsigned long sz)
|
||||
{
|
||||
unsigned long flags;
|
||||
@ -405,6 +405,23 @@ static inline void __ic_entire_inv(void)
|
||||
read_aux_reg(ARC_REG_IC_CTRL); /* blocks */
|
||||
}
|
||||
|
||||
struct ic_line_inv_vaddr_ipi {
|
||||
unsigned long paddr, vaddr;
|
||||
int sz;
|
||||
};
|
||||
|
||||
static void __ic_line_inv_vaddr_helper(void *info)
|
||||
{
|
||||
struct ic_line_inv_vaddr_ipi *ic_inv = (struct ic_line_inv_vaddr_ipi*) info;
|
||||
__ic_line_inv_vaddr_local(ic_inv->paddr, ic_inv->vaddr, ic_inv->sz);
|
||||
}
|
||||
|
||||
static void __ic_line_inv_vaddr(unsigned long paddr, unsigned long vaddr,
|
||||
unsigned long sz)
|
||||
{
|
||||
struct ic_line_inv_vaddr_ipi ic_inv = { paddr, vaddr , sz};
|
||||
on_each_cpu(__ic_line_inv_vaddr_helper, &ic_inv, 1);
|
||||
}
|
||||
#else
|
||||
|
||||
#define __ic_entire_inv()
|
||||
@ -553,12 +570,8 @@ void flush_icache_range(unsigned long kstart, unsigned long kend)
|
||||
*/
|
||||
void __sync_icache_dcache(unsigned long paddr, unsigned long vaddr, int len)
|
||||
{
|
||||
unsigned long flags;
|
||||
|
||||
local_irq_save(flags);
|
||||
__ic_line_inv_vaddr(paddr, vaddr, len);
|
||||
__dc_line_op(paddr, vaddr, len, OP_FLUSH_N_INV);
|
||||
local_irq_restore(flags);
|
||||
__ic_line_inv_vaddr(paddr, vaddr, len);
|
||||
}
|
||||
|
||||
/* wrapper to compile time eliminate alignment checks in flush loop */
|
||||
|
@ -6,6 +6,7 @@ config ARM
|
||||
select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
|
||||
select ARCH_HAVE_CUSTOM_GPIO_H
|
||||
select ARCH_MIGHT_HAVE_PC_PARPORT
|
||||
select ARCH_SUPPORTS_ATOMIC_RMW
|
||||
select ARCH_USE_BUILTIN_BSWAP
|
||||
select ARCH_USE_CMPXCHG_LOCKREF
|
||||
select ARCH_WANT_IPC_PARSE_VERSION
|
||||
|
@ -357,7 +357,7 @@ dtb-$(CONFIG_ARCH_STI)+= stih407-b2120.dtb \
|
||||
stih415-b2020.dtb \
|
||||
stih416-b2000.dtb \
|
||||
stih416-b2020.dtb \
|
||||
stih416-b2020-revE.dtb
|
||||
stih416-b2020e.dtb
|
||||
dtb-$(CONFIG_MACH_SUN4I) += \
|
||||
sun4i-a10-a1000.dtb \
|
||||
sun4i-a10-cubieboard.dtb \
|
||||
|
@ -529,8 +529,8 @@
|
||||
serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */
|
||||
0 0 1 2
|
||||
>;
|
||||
tx-num-evt = <1>;
|
||||
rx-num-evt = <1>;
|
||||
tx-num-evt = <32>;
|
||||
rx-num-evt = <32>;
|
||||
};
|
||||
|
||||
&tps {
|
||||
|
@ -560,8 +560,8 @@
|
||||
serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */
|
||||
0 0 1 2
|
||||
>;
|
||||
tx-num-evt = <1>;
|
||||
rx-num-evt = <1>;
|
||||
tx-num-evt = <32>;
|
||||
rx-num-evt = <32>;
|
||||
};
|
||||
|
||||
&tscadc {
|
||||
|
@ -105,10 +105,16 @@
|
||||
|
||||
&cpsw_emac0 {
|
||||
phy_id = <&davinci_mdio>, <0>;
|
||||
phy-mode = "rmii";
|
||||
};
|
||||
|
||||
&cpsw_emac1 {
|
||||
phy_id = <&davinci_mdio>, <1>;
|
||||
phy-mode = "rmii";
|
||||
};
|
||||
|
||||
&phy_sel {
|
||||
rmii-clock-ext;
|
||||
};
|
||||
|
||||
&elm {
|
||||
|
@ -319,6 +319,10 @@
|
||||
phy-mode = "rmii";
|
||||
};
|
||||
|
||||
&phy_sel {
|
||||
rmii-clock-ext;
|
||||
};
|
||||
|
||||
&i2c0 {
|
||||
status = "okay";
|
||||
pinctrl-names = "default";
|
||||
|
@ -16,7 +16,7 @@
|
||||
|
||||
/ {
|
||||
model = "Marvell Armada 380 family SoC";
|
||||
compatible = "marvell,armada380", "marvell,armada38x";
|
||||
compatible = "marvell,armada380";
|
||||
|
||||
cpus {
|
||||
#address-cells = <1>;
|
||||
|
@ -16,7 +16,7 @@
|
||||
|
||||
/ {
|
||||
model = "Marvell Armada 385 Development Board";
|
||||
compatible = "marvell,a385-db", "marvell,armada385", "marvell,armada38x";
|
||||
compatible = "marvell,a385-db", "marvell,armada385", "marvell,armada380";
|
||||
|
||||
chosen {
|
||||
bootargs = "console=ttyS0,115200 earlyprintk";
|
||||
|
@ -17,7 +17,7 @@
|
||||
|
||||
/ {
|
||||
model = "Marvell Armada 385 Reference Design";
|
||||
compatible = "marvell,a385-rd", "marvell,armada385", "marvell,armada38x";
|
||||
compatible = "marvell,a385-rd", "marvell,armada385", "marvell,armada380";
|
||||
|
||||
chosen {
|
||||
bootargs = "console=ttyS0,115200 earlyprintk";
|
||||
|
@ -16,7 +16,7 @@
|
||||
|
||||
/ {
|
||||
model = "Marvell Armada 385 family SoC";
|
||||
compatible = "marvell,armada385", "marvell,armada38x";
|
||||
compatible = "marvell,armada385", "marvell,armada380";
|
||||
|
||||
cpus {
|
||||
#address-cells = <1>;
|
||||
|
@ -20,7 +20,7 @@
|
||||
|
||||
/ {
|
||||
model = "Marvell Armada 38x family SoC";
|
||||
compatible = "marvell,armada38x";
|
||||
compatible = "marvell,armada380";
|
||||
|
||||
aliases {
|
||||
gpio0 = &gpio0;
|
||||
|
@ -568,24 +568,17 @@
|
||||
#size-cells = <0>;
|
||||
#interrupt-cells = <1>;
|
||||
|
||||
slow_rc_osc: slow_rc_osc {
|
||||
compatible = "fixed-clock";
|
||||
main_osc: main_osc {
|
||||
compatible = "atmel,at91rm9200-clk-main-osc";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <32768>;
|
||||
clock-accuracy = <50000000>;
|
||||
};
|
||||
|
||||
clk32k: slck {
|
||||
compatible = "atmel,at91sam9260-clk-slow";
|
||||
#clock-cells = <0>;
|
||||
clocks = <&slow_rc_osc &slow_xtal>;
|
||||
interrupts-extended = <&pmc AT91_PMC_MOSCS>;
|
||||
clocks = <&main_xtal>;
|
||||
};
|
||||
|
||||
main: mainck {
|
||||
compatible = "atmel,at91rm9200-clk-main";
|
||||
#clock-cells = <0>;
|
||||
interrupts-extended = <&pmc AT91_PMC_MOSCS>;
|
||||
clocks = <&main_xtal>;
|
||||
clocks = <&main_osc>;
|
||||
};
|
||||
|
||||
plla: pllack {
|
||||
@ -615,7 +608,7 @@
|
||||
compatible = "atmel,at91rm9200-clk-master";
|
||||
#clock-cells = <0>;
|
||||
interrupts-extended = <&pmc AT91_PMC_MCKRDY>;
|
||||
clocks = <&clk32k>, <&main>, <&plla>, <&pllb>;
|
||||
clocks = <&slow_xtal>, <&main>, <&plla>, <&pllb>;
|
||||
atmel,clk-output-range = <0 94000000>;
|
||||
atmel,clk-divisors = <1 2 4 0>;
|
||||
};
|
||||
@ -632,7 +625,7 @@
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
interrupt-parent = <&pmc>;
|
||||
clocks = <&clk32k>, <&main>, <&plla>, <&pllb>;
|
||||
clocks = <&slow_xtal>, <&main>, <&plla>, <&pllb>;
|
||||
|
||||
prog0: prog0 {
|
||||
#clock-cells = <0>;
|
||||
|
@ -20,6 +20,10 @@
|
||||
reg = <0x20000000 0x4000000>;
|
||||
};
|
||||
|
||||
slow_xtal {
|
||||
clock-frequency = <32768>;
|
||||
};
|
||||
|
||||
main_xtal {
|
||||
clock-frequency = <18432000>;
|
||||
};
|
||||
|
@ -132,8 +132,8 @@
|
||||
<595000000 650000000 3 0>,
|
||||
<545000000 600000000 0 1>,
|
||||
<495000000 555000000 1 1>,
|
||||
<445000000 500000000 1 2>,
|
||||
<400000000 450000000 1 3>;
|
||||
<445000000 500000000 2 1>,
|
||||
<400000000 450000000 3 1>;
|
||||
};
|
||||
|
||||
plladiv: plladivck {
|
||||
@ -925,7 +925,7 @@
|
||||
compatible = "atmel,at91rm9200-ohci", "usb-ohci";
|
||||
reg = <0x00500000 0x00100000>;
|
||||
interrupts = <22 IRQ_TYPE_LEVEL_HIGH 2>;
|
||||
clocks = <&usb>, <&uhphs_clk>, <&udphs_clk>,
|
||||
clocks = <&usb>, <&uhphs_clk>, <&uhphs_clk>,
|
||||
<&uhpck>;
|
||||
clock-names = "usb_clk", "ohci_clk", "hclk", "uhpck";
|
||||
status = "disabled";
|
||||
|
@ -140,8 +140,8 @@
|
||||
595000000 650000000 3 0
|
||||
545000000 600000000 0 1
|
||||
495000000 555000000 1 1
|
||||
445000000 500000000 1 2
|
||||
400000000 450000000 1 3>;
|
||||
445000000 500000000 2 1
|
||||
400000000 450000000 3 1>;
|
||||
};
|
||||
|
||||
plladiv: plladivck {
|
||||
@ -1045,6 +1045,8 @@
|
||||
reg = <0x00500000 0x80000
|
||||
0xf803c000 0x400>;
|
||||
interrupts = <23 IRQ_TYPE_LEVEL_HIGH 0>;
|
||||
clocks = <&usb>, <&udphs_clk>;
|
||||
clock-names = "hclk", "pclk";
|
||||
status = "disabled";
|
||||
|
||||
ep0 {
|
||||
@ -1122,6 +1124,7 @@
|
||||
compatible = "atmel,at91sam9rl-pwm";
|
||||
reg = <0xf8034000 0x300>;
|
||||
interrupts = <18 IRQ_TYPE_LEVEL_HIGH 4>;
|
||||
clocks = <&pwm_clk>;
|
||||
#pwm-cells = <3>;
|
||||
status = "disabled";
|
||||
};
|
||||
@ -1153,8 +1156,7 @@
|
||||
compatible = "atmel,at91rm9200-ohci", "usb-ohci";
|
||||
reg = <0x00600000 0x100000>;
|
||||
interrupts = <22 IRQ_TYPE_LEVEL_HIGH 2>;
|
||||
clocks = <&usb>, <&uhphs_clk>, <&udphs_clk>,
|
||||
<&uhpck>;
|
||||
clocks = <&usb>, <&uhphs_clk>, <&uhphs_clk>, <&uhpck>;
|
||||
clock-names = "usb_clk", "ohci_clk", "hclk", "uhpck";
|
||||
status = "disabled";
|
||||
};
|
||||
|
@ -240,6 +240,7 @@
|
||||
regulator-name = "ldo3";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
|
@ -773,7 +773,6 @@
|
||||
clocks = <&qspi_gfclk_div>;
|
||||
clock-names = "fck";
|
||||
num-cs = <4>;
|
||||
interrupts = <0 343 0x4>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
@ -984,6 +983,17 @@
|
||||
#size-cells = <1>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
atl: atl@4843c000 {
|
||||
compatible = "ti,dra7-atl";
|
||||
reg = <0x4843c000 0x3ff>;
|
||||
ti,hwmods = "atl";
|
||||
ti,provided-clocks = <&atl_clkin0_ck>, <&atl_clkin1_ck>,
|
||||
<&atl_clkin2_ck>, <&atl_clkin3_ck>;
|
||||
clocks = <&atl_gfclk_mux>;
|
||||
clock-names = "fck";
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -10,26 +10,26 @@
|
||||
&cm_core_aon_clocks {
|
||||
atl_clkin0_ck: atl_clkin0_ck {
|
||||
#clock-cells = <0>;
|
||||
compatible = "fixed-clock";
|
||||
clock-frequency = <0>;
|
||||
compatible = "ti,dra7-atl-clock";
|
||||
clocks = <&atl_gfclk_mux>;
|
||||
};
|
||||
|
||||
atl_clkin1_ck: atl_clkin1_ck {
|
||||
#clock-cells = <0>;
|
||||
compatible = "fixed-clock";
|
||||
clock-frequency = <0>;
|
||||
compatible = "ti,dra7-atl-clock";
|
||||
clocks = <&atl_gfclk_mux>;
|
||||
};
|
||||
|
||||
atl_clkin2_ck: atl_clkin2_ck {
|
||||
#clock-cells = <0>;
|
||||
compatible = "fixed-clock";
|
||||
clock-frequency = <0>;
|
||||
compatible = "ti,dra7-atl-clock";
|
||||
clocks = <&atl_gfclk_mux>;
|
||||
};
|
||||
|
||||
atl_clkin3_ck: atl_clkin3_ck {
|
||||
#clock-cells = <0>;
|
||||
compatible = "fixed-clock";
|
||||
clock-frequency = <0>;
|
||||
compatible = "ti,dra7-atl-clock";
|
||||
clocks = <&atl_gfclk_mux>;
|
||||
};
|
||||
|
||||
hdmi_clkin_ck: hdmi_clkin_ck {
|
||||
@ -673,10 +673,12 @@
|
||||
|
||||
l3_iclk_div: l3_iclk_div {
|
||||
#clock-cells = <0>;
|
||||
compatible = "fixed-factor-clock";
|
||||
compatible = "ti,divider-clock";
|
||||
ti,max-div = <2>;
|
||||
ti,bit-shift = <4>;
|
||||
reg = <0x0100>;
|
||||
clocks = <&dpll_core_h12x2_ck>;
|
||||
clock-mult = <1>;
|
||||
clock-div = <1>;
|
||||
ti,index-power-of-two;
|
||||
};
|
||||
|
||||
l4_root_clk_div: l4_root_clk_div {
|
||||
@ -684,7 +686,7 @@
|
||||
compatible = "fixed-factor-clock";
|
||||
clocks = <&l3_iclk_div>;
|
||||
clock-mult = <1>;
|
||||
clock-div = <1>;
|
||||
clock-div = <2>;
|
||||
};
|
||||
|
||||
video1_clk2_div: video1_clk2_div {
|
||||
|
@ -113,7 +113,7 @@
|
||||
compatible = "arm,cortex-a9-gic";
|
||||
#interrupt-cells = <3>;
|
||||
interrupt-controller;
|
||||
reg = <0x10490000 0x1000>, <0x10480000 0x100>;
|
||||
reg = <0x10490000 0x10000>, <0x10480000 0x10000>;
|
||||
};
|
||||
|
||||
combiner: interrupt-controller@10440000 {
|
||||
@ -554,7 +554,7 @@
|
||||
interrupts = <0 37 0>, <0 38 0>, <0 39 0>, <0 40 0>, <0 41 0>;
|
||||
clocks = <&clock CLK_PWM>;
|
||||
clock-names = "timers";
|
||||
#pwm-cells = <2>;
|
||||
#pwm-cells = <3>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
|
@ -167,7 +167,7 @@
|
||||
compatible = "samsung,exynos5420-audss-clock";
|
||||
reg = <0x03810000 0x0C>;
|
||||
#clock-cells = <1>;
|
||||
clocks = <&clock CLK_FIN_PLL>, <&clock CLK_FOUT_EPLL>,
|
||||
clocks = <&clock CLK_FIN_PLL>, <&clock CLK_MAU_EPLL>,
|
||||
<&clock CLK_SCLK_MAUDIO0>, <&clock CLK_SCLK_MAUPCM0>;
|
||||
clock-names = "pll_ref", "pll_in", "sclk_audio", "sclk_pcm_in";
|
||||
};
|
||||
@ -260,6 +260,9 @@
|
||||
mfc_pd: power-domain@10044060 {
|
||||
compatible = "samsung,exynos4210-pd";
|
||||
reg = <0x10044060 0x20>;
|
||||
clocks = <&clock CLK_FIN_PLL>, <&clock CLK_MOUT_SW_ACLK333>,
|
||||
<&clock CLK_MOUT_USER_ACLK333>;
|
||||
clock-names = "oscclk", "pclk0", "clk0";
|
||||
};
|
||||
|
||||
disp_pd: power-domain@100440C0 {
|
||||
|
@ -315,15 +315,15 @@
|
||||
&esdhc1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_esdhc1>;
|
||||
fsl,cd-controller;
|
||||
fsl,wp-controller;
|
||||
cd-gpios = <&gpio1 0 GPIO_ACTIVE_LOW>;
|
||||
wp-gpios = <&gpio1 1 GPIO_ACTIVE_HIGH>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&esdhc2 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_esdhc2>;
|
||||
cd-gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
|
||||
cd-gpios = <&gpio1 6 GPIO_ACTIVE_LOW>;
|
||||
wp-gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
|
||||
status = "okay";
|
||||
};
|
||||
@ -468,8 +468,8 @@
|
||||
MX51_PAD_SD1_DATA1__SD1_DATA1 0x20d5
|
||||
MX51_PAD_SD1_DATA2__SD1_DATA2 0x20d5
|
||||
MX51_PAD_SD1_DATA3__SD1_DATA3 0x20d5
|
||||
MX51_PAD_GPIO1_0__SD1_CD 0x20d5
|
||||
MX51_PAD_GPIO1_1__SD1_WP 0x20d5
|
||||
MX51_PAD_GPIO1_0__GPIO1_0 0x100
|
||||
MX51_PAD_GPIO1_1__GPIO1_1 0x100
|
||||
>;
|
||||
};
|
||||
|
||||
|
@ -107,7 +107,7 @@
|
||||
&esdhc1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_esdhc1 &pinctrl_esdhc1_cd>;
|
||||
fsl,cd-controller;
|
||||
cd-gpios = <&gpio1 0 GPIO_ACTIVE_LOW>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
@ -206,7 +206,7 @@
|
||||
|
||||
pinctrl_esdhc1_cd: esdhc1_cd {
|
||||
fsl,pins = <
|
||||
MX51_PAD_GPIO1_0__SD1_CD 0x20d5
|
||||
MX51_PAD_GPIO1_0__GPIO1_0 0xd5
|
||||
>;
|
||||
};
|
||||
|
||||
|
@ -21,27 +21,25 @@
|
||||
<0xb0000000 0x20000000>;
|
||||
};
|
||||
|
||||
soc {
|
||||
display1: display@di1 {
|
||||
compatible = "fsl,imx-parallel-display";
|
||||
interface-pix-fmt = "bgr666";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_ipu_disp1>;
|
||||
display1: display@di1 {
|
||||
compatible = "fsl,imx-parallel-display";
|
||||
interface-pix-fmt = "bgr666";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_ipu_disp1>;
|
||||
|
||||
display-timings {
|
||||
800x480p60 {
|
||||
native-mode;
|
||||
clock-frequency = <31500000>;
|
||||
hactive = <800>;
|
||||
vactive = <480>;
|
||||
hfront-porch = <40>;
|
||||
hback-porch = <88>;
|
||||
hsync-len = <128>;
|
||||
vback-porch = <33>;
|
||||
vfront-porch = <9>;
|
||||
vsync-len = <3>;
|
||||
vsync-active = <1>;
|
||||
};
|
||||
display-timings {
|
||||
800x480p60 {
|
||||
native-mode;
|
||||
clock-frequency = <31500000>;
|
||||
hactive = <800>;
|
||||
vactive = <480>;
|
||||
hfront-porch = <40>;
|
||||
hback-porch = <88>;
|
||||
hsync-len = <128>;
|
||||
vback-porch = <33>;
|
||||
vfront-porch = <9>;
|
||||
vsync-len = <3>;
|
||||
vsync-active = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -143,6 +143,14 @@
|
||||
fsl,pins = <MX6QDL_PAD_GPIO_0__GPIO1_IO00 0x1b0b0>;
|
||||
};
|
||||
|
||||
pinctrl_hummingboard_usbotg_id: hummingboard-usbotg-id {
|
||||
/*
|
||||
* Similar to pinctrl_usbotg_2, but we want it
|
||||
* pulled down for a fixed host connection.
|
||||
*/
|
||||
fsl,pins = <MX6QDL_PAD_GPIO_1__USB_OTG_ID 0x13059>;
|
||||
};
|
||||
|
||||
pinctrl_hummingboard_usbotg_vbus: hummingboard-usbotg-vbus {
|
||||
fsl,pins = <MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x1b0b0>;
|
||||
};
|
||||
@ -178,6 +186,8 @@
|
||||
};
|
||||
|
||||
&usbotg {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_hummingboard_usbotg_id>;
|
||||
vbus-supply = <®_usbotg_vbus>;
|
||||
status = "okay";
|
||||
};
|
||||
|
@ -11,7 +11,7 @@
|
||||
|
||||
/dts-v1/;
|
||||
#include "imx6q.dtsi"
|
||||
#include "imx6qdl-gw54xx.dtsi"
|
||||
#include "imx6qdl-gw51xx.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Gateworks Ventana i.MX6 Quad GW51XX";
|
||||
|
@ -12,6 +12,19 @@
|
||||
pinctrl-0 = <&pinctrl_cubox_i_ir>;
|
||||
};
|
||||
|
||||
pwmleds {
|
||||
compatible = "pwm-leds";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_cubox_i_pwm1>;
|
||||
|
||||
front {
|
||||
active-low;
|
||||
label = "imx6:red:front";
|
||||
max-brightness = <248>;
|
||||
pwms = <&pwm1 0 50000>;
|
||||
};
|
||||
};
|
||||
|
||||
regulators {
|
||||
compatible = "simple-bus";
|
||||
|
||||
@ -109,6 +122,10 @@
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_cubox_i_pwm1: cubox-i-pwm1-front-led {
|
||||
fsl,pins = <MX6QDL_PAD_DISP0_DAT8__PWM1_OUT 0x1b0b0>;
|
||||
};
|
||||
|
||||
pinctrl_cubox_i_spdif: cubox-i-spdif {
|
||||
fsl,pins = <MX6QDL_PAD_GPIO_17__SPDIF_OUT 0x13091>;
|
||||
};
|
||||
@ -117,6 +134,14 @@
|
||||
fsl,pins = <MX6QDL_PAD_GPIO_0__GPIO1_IO00 0x4001b0b0>;
|
||||
};
|
||||
|
||||
pinctrl_cubox_i_usbotg_id: cubox-i-usbotg-id {
|
||||
/*
|
||||
* The Cubox-i pulls this low, but as it's pointless
|
||||
* leaving it as a pull-up, even if it is just 10uA.
|
||||
*/
|
||||
fsl,pins = <MX6QDL_PAD_GPIO_1__USB_OTG_ID 0x13059>;
|
||||
};
|
||||
|
||||
pinctrl_cubox_i_usbotg_vbus: cubox-i-usbotg-vbus {
|
||||
fsl,pins = <MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x4001b0b0>;
|
||||
};
|
||||
@ -153,6 +178,8 @@
|
||||
};
|
||||
|
||||
&usbotg {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_cubox_i_usbotg_id>;
|
||||
vbus-supply = <®_usbotg_vbus>;
|
||||
status = "okay";
|
||||
};
|
||||
|
@ -161,7 +161,7 @@
|
||||
status = "okay";
|
||||
|
||||
pmic: ltc3676@3c {
|
||||
compatible = "ltc,ltc3676";
|
||||
compatible = "lltc,ltc3676";
|
||||
reg = <0x3c>;
|
||||
|
||||
regulators {
|
||||
|
@ -220,7 +220,7 @@
|
||||
};
|
||||
|
||||
pmic: ltc3676@3c {
|
||||
compatible = "ltc,ltc3676";
|
||||
compatible = "lltc,ltc3676";
|
||||
reg = <0x3c>;
|
||||
|
||||
regulators {
|
||||
@ -288,7 +288,7 @@
|
||||
codec: sgtl5000@0a {
|
||||
compatible = "fsl,sgtl5000";
|
||||
reg = <0x0a>;
|
||||
clocks = <&clks 169>;
|
||||
clocks = <&clks 201>;
|
||||
VDDA-supply = <®_1p8v>;
|
||||
VDDIO-supply = <®_3p3v>;
|
||||
};
|
||||
|
@ -234,7 +234,7 @@
|
||||
};
|
||||
|
||||
pmic: ltc3676@3c {
|
||||
compatible = "ltc,ltc3676";
|
||||
compatible = "lltc,ltc3676";
|
||||
reg = <0x3c>;
|
||||
|
||||
regulators {
|
||||
|
@ -10,14 +10,6 @@
|
||||
MX6QDL_PAD_CSI0_DAT11__UART1_RX_DATA 0x1b0b1
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_microsom_usbotg: microsom-usbotg {
|
||||
/*
|
||||
* Similar to pinctrl_usbotg_2, but we want it
|
||||
* pulled down for a fixed host connection.
|
||||
*/
|
||||
fsl,pins = <MX6QDL_PAD_GPIO_1__USB_OTG_ID 0x13059>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@ -26,8 +18,3 @@
|
||||
pinctrl-0 = <&pinctrl_microsom_uart1>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usbotg {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_microsom_usbotg>;
|
||||
};
|
||||
|
@ -686,7 +686,7 @@
|
||||
compatible = "fsl,imx6sl-fec", "fsl,imx25-fec";
|
||||
reg = <0x02188000 0x4000>;
|
||||
interrupts = <0 114 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clks IMX6SL_CLK_ENET_REF>,
|
||||
clocks = <&clks IMX6SL_CLK_ENET>,
|
||||
<&clks IMX6SL_CLK_ENET_REF>;
|
||||
clock-names = "ipg", "ahb";
|
||||
status = "disabled";
|
||||
|
@ -105,7 +105,6 @@
|
||||
compatible = "ethernet-phy-id0141.0cb0",
|
||||
"ethernet-phy-ieee802.3-c22";
|
||||
reg = <0>;
|
||||
phy-connection-type = "rgmii-id";
|
||||
};
|
||||
|
||||
ethphy1: ethernet-phy@1 {
|
||||
@ -113,7 +112,6 @@
|
||||
compatible = "ethernet-phy-id0141.0cb0",
|
||||
"ethernet-phy-ieee802.3-c22";
|
||||
reg = <1>;
|
||||
phy-connection-type = "rgmii-id";
|
||||
};
|
||||
};
|
||||
|
||||
@ -121,6 +119,7 @@
|
||||
status = "okay";
|
||||
ethernet0-port@0 {
|
||||
phy-handle = <ðphy0>;
|
||||
phy-connection-type = "rgmii-id";
|
||||
};
|
||||
};
|
||||
|
||||
@ -128,5 +127,6 @@
|
||||
status = "okay";
|
||||
ethernet1-port@0 {
|
||||
phy-handle = <ðphy1>;
|
||||
phy-connection-type = "rgmii-id";
|
||||
};
|
||||
};
|
||||
|
@ -251,6 +251,11 @@
|
||||
codec {
|
||||
};
|
||||
};
|
||||
|
||||
twl_power: power {
|
||||
compatible = "ti,twl4030-power-beagleboard-xm", "ti,twl4030-power-idle-osc-off";
|
||||
ti,use_poweroff;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@ -301,6 +306,7 @@
|
||||
};
|
||||
|
||||
&uart3 {
|
||||
interrupts-extended = <&intc 74 &omap3_pmx_core OMAP3_UART3_RX>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart3_pins>;
|
||||
};
|
||||
|
@ -50,6 +50,13 @@
|
||||
gpios = <&twl_gpio 18 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
&twl {
|
||||
twl_power: power {
|
||||
compatible = "ti,twl4030-power-omap3-evm", "ti,twl4030-power-idle";
|
||||
ti,use_poweroff;
|
||||
};
|
||||
};
|
||||
|
||||
&i2c2 {
|
||||
clock-frequency = <400000>;
|
||||
};
|
||||
|
@ -351,6 +351,11 @@
|
||||
compatible = "ti,twl4030-audio";
|
||||
ti,enable-vibra = <1>;
|
||||
};
|
||||
|
||||
twl_power: power {
|
||||
compatible = "ti,twl4030-power-n900", "ti,twl4030-power-idle-osc-off";
|
||||
ti,use_poweroff;
|
||||
};
|
||||
};
|
||||
|
||||
&twl_keypad {
|
||||
|
@ -45,7 +45,6 @@
|
||||
|
||||
operating-points = <
|
||||
/* kHz uV */
|
||||
500000 880000
|
||||
1000000 1060000
|
||||
1500000 1250000
|
||||
>;
|
||||
|
@ -169,8 +169,8 @@
|
||||
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_mii0>;
|
||||
clock-names = "stmmaceth";
|
||||
clocks = <&clk_s_a1_ls CLK_GMAC0_PHY>;
|
||||
clock-names = "stmmaceth", "sti-ethclk";
|
||||
clocks = <&clk_s_a1_ls CLK_ICN_IF_2>, <&clk_s_a1_ls CLK_GMAC0_PHY>;
|
||||
};
|
||||
|
||||
ethernet1: dwmac@fef08000 {
|
||||
@ -192,8 +192,8 @@
|
||||
reset-names = "stmmaceth";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_mii1>;
|
||||
clock-names = "stmmaceth";
|
||||
clocks = <&clk_s_a0_ls CLK_ETH1_PHY>;
|
||||
clock-names = "stmmaceth", "sti-ethclk";
|
||||
clocks = <&clk_s_a0_ls CLK_ICN_REG>, <&clk_s_a0_ls CLK_ETH1_PHY>;
|
||||
};
|
||||
|
||||
rc: rc@fe518000 {
|
||||
|
@ -175,8 +175,8 @@
|
||||
reset-names = "stmmaceth";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_mii0>;
|
||||
clock-names = "stmmaceth";
|
||||
clocks = <&clk_s_a1_ls CLK_GMAC0_PHY>;
|
||||
clock-names = "stmmaceth", "sti-ethclk";
|
||||
clocks = <&clk_s_a1_ls CLK_ICN_IF_2>, <&clk_s_a1_ls CLK_GMAC0_PHY>;
|
||||
};
|
||||
|
||||
ethernet1: dwmac@fef08000 {
|
||||
@ -197,8 +197,8 @@
|
||||
reset-names = "stmmaceth";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_mii1>;
|
||||
clock-names = "stmmaceth";
|
||||
clocks = <&clk_s_a0_ls CLK_ETH1_PHY>;
|
||||
clock-names = "stmmaceth", "sti-ethclk";
|
||||
clocks = <&clk_s_a0_ls CLK_ICN_REG>, <&clk_s_a0_ls CLK_ETH1_PHY>;
|
||||
};
|
||||
|
||||
rc: rc@fe518000 {
|
||||
|
@ -182,7 +182,6 @@ static int scoop_probe(struct platform_device *pdev)
|
||||
struct scoop_config *inf;
|
||||
struct resource *mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
||||
int ret;
|
||||
int temp;
|
||||
|
||||
if (!mem)
|
||||
return -EINVAL;
|
||||
|
@ -94,10 +94,10 @@ CONFIG_BACKLIGHT_CLASS_DEVICE=y
|
||||
CONFIG_BACKLIGHT_PWM=y
|
||||
# CONFIG_USB_SUPPORT is not set
|
||||
CONFIG_MMC=y
|
||||
CONFIG_MMC_UNSAFE_RESUME=y
|
||||
CONFIG_MMC_BLOCK_MINORS=32
|
||||
CONFIG_MMC_TEST=y
|
||||
CONFIG_MMC_SDHCI=y
|
||||
CONFIG_MMC_SDHCI_PLTFM=y
|
||||
CONFIG_MMC_SDHCI_BCM_KONA=y
|
||||
CONFIG_NEW_LEDS=y
|
||||
CONFIG_LEDS_CLASS=y
|
||||
|
@ -186,6 +186,7 @@ CONFIG_VIDEO_MX3=y
|
||||
CONFIG_V4L_MEM2MEM_DRIVERS=y
|
||||
CONFIG_VIDEO_CODA=y
|
||||
CONFIG_SOC_CAMERA_OV2640=y
|
||||
CONFIG_IMX_IPUV3_CORE=y
|
||||
CONFIG_DRM=y
|
||||
CONFIG_DRM_PANEL_SIMPLE=y
|
||||
CONFIG_BACKLIGHT_LCD_SUPPORT=y
|
||||
|
@ -223,12 +223,12 @@ CONFIG_POWER_RESET_GPIO=y
|
||||
CONFIG_POWER_RESET_SUN6I=y
|
||||
CONFIG_SENSORS_LM90=y
|
||||
CONFIG_THERMAL=y
|
||||
CONFIG_DOVE_THERMAL=y
|
||||
CONFIG_ARMADA_THERMAL=y
|
||||
CONFIG_WATCHDOG=y
|
||||
CONFIG_ORION_WATCHDOG=y
|
||||
CONFIG_SUNXI_WATCHDOG=y
|
||||
CONFIG_MFD_AS3722=y
|
||||
CONFIG_MFD_BCM590XX=y
|
||||
CONFIG_MFD_CROS_EC=y
|
||||
CONFIG_MFD_CROS_EC_SPI=y
|
||||
CONFIG_MFD_MAX8907=y
|
||||
@ -240,6 +240,7 @@ CONFIG_MFD_TPS65910=y
|
||||
CONFIG_REGULATOR_VIRTUAL_CONSUMER=y
|
||||
CONFIG_REGULATOR_AB8500=y
|
||||
CONFIG_REGULATOR_AS3722=y
|
||||
CONFIG_REGULATOR_BCM590XX=y
|
||||
CONFIG_REGULATOR_GPIO=y
|
||||
CONFIG_REGULATOR_MAX8907=y
|
||||
CONFIG_REGULATOR_PALMAS=y
|
||||
@ -353,6 +354,7 @@ CONFIG_MFD_NVEC=y
|
||||
CONFIG_KEYBOARD_NVEC=y
|
||||
CONFIG_SERIO_NVEC_PS2=y
|
||||
CONFIG_NVEC_POWER=y
|
||||
CONFIG_QCOM_GSBI=y
|
||||
CONFIG_COMMON_CLK_QCOM=y
|
||||
CONFIG_MSM_GCC_8660=y
|
||||
CONFIG_MSM_MMCC_8960=y
|
||||
|
@ -14,6 +14,7 @@ CONFIG_MACH_ARMADA_370=y
|
||||
CONFIG_MACH_ARMADA_375=y
|
||||
CONFIG_MACH_ARMADA_38X=y
|
||||
CONFIG_MACH_ARMADA_XP=y
|
||||
CONFIG_MACH_DOVE=y
|
||||
CONFIG_NEON=y
|
||||
# CONFIG_CACHE_L2X0 is not set
|
||||
# CONFIG_SWP_EMULATE is not set
|
||||
@ -52,6 +53,7 @@ CONFIG_INPUT_EVDEV=y
|
||||
CONFIG_KEYBOARD_GPIO=y
|
||||
CONFIG_SERIAL_8250=y
|
||||
CONFIG_SERIAL_8250_CONSOLE=y
|
||||
CONFIG_SERIAL_OF_PLATFORM=y
|
||||
CONFIG_I2C=y
|
||||
CONFIG_SPI=y
|
||||
CONFIG_SPI_ORION=y
|
||||
|
@ -208,8 +208,6 @@ struct sync_struct {
|
||||
struct mcpm_sync_struct clusters[MAX_NR_CLUSTERS];
|
||||
};
|
||||
|
||||
extern unsigned long sync_phys; /* physical address of *mcpm_sync */
|
||||
|
||||
void __mcpm_cpu_going_down(unsigned int cpu, unsigned int cluster);
|
||||
void __mcpm_cpu_down(unsigned int cpu, unsigned int cluster);
|
||||
void __mcpm_outbound_leave_critical(unsigned int cluster, int state);
|
||||
|
@ -114,8 +114,14 @@ static inline struct thread_info *current_thread_info(void)
|
||||
((unsigned long)(task_thread_info(tsk)->cpu_context.pc))
|
||||
#define thread_saved_sp(tsk) \
|
||||
((unsigned long)(task_thread_info(tsk)->cpu_context.sp))
|
||||
|
||||
#ifndef CONFIG_THUMB2_KERNEL
|
||||
#define thread_saved_fp(tsk) \
|
||||
((unsigned long)(task_thread_info(tsk)->cpu_context.fp))
|
||||
#else
|
||||
#define thread_saved_fp(tsk) \
|
||||
((unsigned long)(task_thread_info(tsk)->cpu_context.r7))
|
||||
#endif
|
||||
|
||||
extern void crunch_task_disable(struct thread_info *);
|
||||
extern void crunch_task_copy(struct thread_info *, void *);
|
||||
|
@ -74,8 +74,6 @@ void kprobe_arm_test_cases(void)
|
||||
TEST_RRR( op "lt" s " r11, r",11,VAL1,", r",14,N(val),", asr r",7, 6,"")\
|
||||
TEST_RR( op "gt" s " r12, r13" ", r",14,val, ", ror r",14,7,"")\
|
||||
TEST_RR( op "le" s " r14, r",0, val, ", r13" ", lsl r",14,8,"")\
|
||||
TEST_RR( op s " r12, pc" ", r",14,val, ", ror r",14,7,"")\
|
||||
TEST_RR( op s " r14, r",0, val, ", pc" ", lsl r",14,8,"")\
|
||||
TEST_R( op "eq" s " r0, r",11,VAL1,", #0xf5") \
|
||||
TEST_R( op "ne" s " r11, r",0, VAL1,", #0xf5000000") \
|
||||
TEST_R( op s " r7, r",8, VAL2,", #0x000af000") \
|
||||
@ -103,8 +101,6 @@ void kprobe_arm_test_cases(void)
|
||||
TEST_RRR( op "ge r",11,VAL1,", r",14,N(val),", asr r",7, 6,"") \
|
||||
TEST_RR( op "le r13" ", r",14,val, ", ror r",14,7,"") \
|
||||
TEST_RR( op "gt r",0, val, ", r13" ", lsl r",14,8,"") \
|
||||
TEST_RR( op " pc" ", r",14,val, ", ror r",14,7,"") \
|
||||
TEST_RR( op " r",0, val, ", pc" ", lsl r",14,8,"") \
|
||||
TEST_R( op "eq r",11,VAL1,", #0xf5") \
|
||||
TEST_R( op "ne r",0, VAL1,", #0xf5000000") \
|
||||
TEST_R( op " r",8, VAL2,", #0x000af000")
|
||||
@ -125,7 +121,6 @@ void kprobe_arm_test_cases(void)
|
||||
TEST_RR( op "ge" s " r11, r",11,N(val),", asr r",7, 6,"") \
|
||||
TEST_RR( op "lt" s " r12, r",11,val, ", ror r",14,7,"") \
|
||||
TEST_R( op "gt" s " r14, r13" ", lsl r",14,8,"") \
|
||||
TEST_R( op "le" s " r14, pc" ", lsl r",14,8,"") \
|
||||
TEST( op "eq" s " r0, #0xf5") \
|
||||
TEST( op "ne" s " r11, #0xf5000000") \
|
||||
TEST( op s " r7, #0x000af000") \
|
||||
@ -159,12 +154,19 @@ void kprobe_arm_test_cases(void)
|
||||
TEST_SUPPORTED("cmp pc, #0x1000");
|
||||
TEST_SUPPORTED("cmp sp, #0x1000");
|
||||
|
||||
/* Data-processing with PC as shift*/
|
||||
/* Data-processing with PC and a shift count in a register */
|
||||
TEST_UNSUPPORTED(__inst_arm(0xe15c0f1e) " @ cmp r12, r14, asl pc")
|
||||
TEST_UNSUPPORTED(__inst_arm(0xe1a0cf1e) " @ mov r12, r14, asl pc")
|
||||
TEST_UNSUPPORTED(__inst_arm(0xe08caf1e) " @ add r10, r12, r14, asl pc")
|
||||
TEST_UNSUPPORTED(__inst_arm(0xe151021f) " @ cmp r1, pc, lsl r2")
|
||||
TEST_UNSUPPORTED(__inst_arm(0xe17f0211) " @ cmn pc, r1, lsl r2")
|
||||
TEST_UNSUPPORTED(__inst_arm(0xe1a0121f) " @ mov r1, pc, lsl r2")
|
||||
TEST_UNSUPPORTED(__inst_arm(0xe1a0f211) " @ mov pc, r1, lsl r2")
|
||||
TEST_UNSUPPORTED(__inst_arm(0xe042131f) " @ sub r1, r2, pc, lsl r3")
|
||||
TEST_UNSUPPORTED(__inst_arm(0xe1cf1312) " @ bic r1, pc, r2, lsl r3")
|
||||
TEST_UNSUPPORTED(__inst_arm(0xe081f312) " @ add pc, r1, r2, lsl r3")
|
||||
|
||||
/* Data-processing with PC as shift*/
|
||||
/* Data-processing with PC as a target and status registers updated */
|
||||
TEST_UNSUPPORTED("movs pc, r1")
|
||||
TEST_UNSUPPORTED("movs pc, r1, lsl r2")
|
||||
TEST_UNSUPPORTED("movs pc, #0x10000")
|
||||
@ -187,14 +189,14 @@ void kprobe_arm_test_cases(void)
|
||||
TEST_BF_R ("add pc, pc, r",14,2f-1f-8,"")
|
||||
TEST_BF_R ("add pc, r",14,2f-1f-8,", pc")
|
||||
TEST_BF_R ("mov pc, r",0,2f,"")
|
||||
TEST_BF_RR("mov pc, r",0,2f,", asl r",1,0,"")
|
||||
TEST_BF_R ("add pc, pc, r",14,(2f-1f-8)*2,", asr #1")
|
||||
TEST_BB( "sub pc, pc, #1b-2b+8")
|
||||
#if __LINUX_ARM_ARCH__ == 6 && !defined(CONFIG_CPU_V7)
|
||||
TEST_BB( "sub pc, pc, #1b-2b+8-2") /* UNPREDICTABLE before and after ARMv6 */
|
||||
#endif
|
||||
TEST_BB_R( "sub pc, pc, r",14, 1f-2f+8,"")
|
||||
TEST_BB_R( "rsb pc, r",14,1f-2f+8,", pc")
|
||||
TEST_RR( "add pc, pc, r",10,-2,", asl r",11,1,"")
|
||||
TEST_R( "add pc, pc, r",10,-2,", asl #1")
|
||||
#ifdef CONFIG_THUMB2_KERNEL
|
||||
TEST_ARM_TO_THUMB_INTERWORK_R("add pc, pc, r",0,3f-1f-8+1,"")
|
||||
TEST_ARM_TO_THUMB_INTERWORK_R("sub pc, r",0,3f+8+1,", #8")
|
||||
@ -216,6 +218,7 @@ void kprobe_arm_test_cases(void)
|
||||
TEST_BB_R("bx r",7,2f,"")
|
||||
TEST_BF_R("bxeq r",14,2f,"")
|
||||
|
||||
#if __LINUX_ARM_ARCH__ >= 5
|
||||
TEST_R("clz r0, r",0, 0x0,"")
|
||||
TEST_R("clzeq r7, r",14,0x1,"")
|
||||
TEST_R("clz lr, r",7, 0xffffffff,"")
|
||||
@ -337,6 +340,7 @@ void kprobe_arm_test_cases(void)
|
||||
TEST_UNSUPPORTED(__inst_arm(0xe16f02e1) " @ smultt pc, r1, r2")
|
||||
TEST_UNSUPPORTED(__inst_arm(0xe16002ef) " @ smultt r0, pc, r2")
|
||||
TEST_UNSUPPORTED(__inst_arm(0xe1600fe1) " @ smultt r0, r1, pc")
|
||||
#endif
|
||||
|
||||
TEST_GROUP("Multiply and multiply-accumulate")
|
||||
|
||||
@ -559,6 +563,7 @@ void kprobe_arm_test_cases(void)
|
||||
TEST_UNSUPPORTED("ldrsht r1, [r2], #48")
|
||||
#endif
|
||||
|
||||
#if __LINUX_ARM_ARCH__ >= 5
|
||||
TEST_RPR( "strd r",0, VAL1,", [r",1, 48,", -r",2,24,"]")
|
||||
TEST_RPR( "strccd r",8, VAL2,", [r",13,0, ", r",12,48,"]")
|
||||
TEST_RPR( "strd r",4, VAL1,", [r",2, 24,", r",3, 48,"]!")
|
||||
@ -595,6 +600,7 @@ void kprobe_arm_test_cases(void)
|
||||
TEST_UNSUPPORTED(__inst_arm(0xe1efc3d0) " @ ldrd r12, [pc, #48]!")
|
||||
TEST_UNSUPPORTED(__inst_arm(0xe0c9f3d0) " @ ldrd pc, [r9], #48")
|
||||
TEST_UNSUPPORTED(__inst_arm(0xe0c9e3d0) " @ ldrd lr, [r9], #48")
|
||||
#endif
|
||||
|
||||
TEST_GROUP("Miscellaneous")
|
||||
|
||||
@ -1227,7 +1233,9 @@ void kprobe_arm_test_cases(void)
|
||||
TEST_COPROCESSOR( "mrc"two" 0, 0, r0, cr0, cr0, 0")
|
||||
|
||||
COPROCESSOR_INSTRUCTIONS_ST_LD("",e)
|
||||
#if __LINUX_ARM_ARCH__ >= 5
|
||||
COPROCESSOR_INSTRUCTIONS_MC_MR("",e)
|
||||
#endif
|
||||
TEST_UNSUPPORTED("svc 0")
|
||||
TEST_UNSUPPORTED("svc 0xffffff")
|
||||
|
||||
@ -1287,7 +1295,9 @@ void kprobe_arm_test_cases(void)
|
||||
TEST( "blx __dummy_thumb_subroutine_odd")
|
||||
#endif /* __LINUX_ARM_ARCH__ >= 6 */
|
||||
|
||||
#if __LINUX_ARM_ARCH__ >= 5
|
||||
COPROCESSOR_INSTRUCTIONS_ST_LD("2",f)
|
||||
#endif
|
||||
#if __LINUX_ARM_ARCH__ >= 6
|
||||
COPROCESSOR_INSTRUCTIONS_MC_MR("2",f)
|
||||
#endif
|
||||
|
@ -225,6 +225,7 @@ static int pre_handler_called;
|
||||
static int post_handler_called;
|
||||
static int jprobe_func_called;
|
||||
static int kretprobe_handler_called;
|
||||
static int tests_failed;
|
||||
|
||||
#define FUNC_ARG1 0x12345678
|
||||
#define FUNC_ARG2 0xabcdef
|
||||
@ -461,6 +462,13 @@ static int run_api_tests(long (*func)(long, long))
|
||||
|
||||
pr_info(" jprobe\n");
|
||||
ret = test_jprobe(func);
|
||||
#if defined(CONFIG_THUMB2_KERNEL) && !defined(MODULE)
|
||||
if (ret == -EINVAL) {
|
||||
pr_err("FAIL: Known longtime bug with jprobe on Thumb kernels\n");
|
||||
tests_failed = ret;
|
||||
ret = 0;
|
||||
}
|
||||
#endif
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
@ -1671,6 +1679,8 @@ static int __init run_all_tests(void)
|
||||
#endif
|
||||
|
||||
out:
|
||||
if (ret == 0)
|
||||
ret = tests_failed;
|
||||
if (ret == 0)
|
||||
pr_info("Finished kprobe tests OK\n");
|
||||
else
|
||||
|
@ -1924,7 +1924,7 @@ static int krait_pmu_get_event_idx(struct pmu_hw_events *cpuc,
|
||||
struct perf_event *event)
|
||||
{
|
||||
int idx;
|
||||
int bit;
|
||||
int bit = -1;
|
||||
unsigned int prefix;
|
||||
unsigned int region;
|
||||
unsigned int code;
|
||||
@ -1953,7 +1953,7 @@ static int krait_pmu_get_event_idx(struct pmu_hw_events *cpuc,
|
||||
}
|
||||
|
||||
idx = armv7pmu_get_event_idx(cpuc, event);
|
||||
if (idx < 0 && krait_event)
|
||||
if (idx < 0 && bit >= 0)
|
||||
clear_bit(bit, cpuc->used_mask);
|
||||
|
||||
return idx;
|
||||
|
@ -341,12 +341,12 @@ static const union decode_item arm_cccc_000x_table[] = {
|
||||
/* CMP (reg-shift reg) cccc 0001 0101 xxxx xxxx xxxx 0xx1 xxxx */
|
||||
/* CMN (reg-shift reg) cccc 0001 0111 xxxx xxxx xxxx 0xx1 xxxx */
|
||||
DECODE_EMULATEX (0x0f900090, 0x01100010, PROBES_DATA_PROCESSING_REG,
|
||||
REGS(ANY, 0, NOPC, 0, ANY)),
|
||||
REGS(NOPC, 0, NOPC, 0, NOPC)),
|
||||
|
||||
/* MOV (reg-shift reg) cccc 0001 101x xxxx xxxx xxxx 0xx1 xxxx */
|
||||
/* MVN (reg-shift reg) cccc 0001 111x xxxx xxxx xxxx 0xx1 xxxx */
|
||||
DECODE_EMULATEX (0x0fa00090, 0x01a00010, PROBES_DATA_PROCESSING_REG,
|
||||
REGS(0, ANY, NOPC, 0, ANY)),
|
||||
REGS(0, NOPC, NOPC, 0, NOPC)),
|
||||
|
||||
/* AND (reg-shift reg) cccc 0000 000x xxxx xxxx xxxx 0xx1 xxxx */
|
||||
/* EOR (reg-shift reg) cccc 0000 001x xxxx xxxx xxxx 0xx1 xxxx */
|
||||
@ -359,7 +359,7 @@ static const union decode_item arm_cccc_000x_table[] = {
|
||||
/* ORR (reg-shift reg) cccc 0001 100x xxxx xxxx xxxx 0xx1 xxxx */
|
||||
/* BIC (reg-shift reg) cccc 0001 110x xxxx xxxx xxxx 0xx1 xxxx */
|
||||
DECODE_EMULATEX (0x0e000090, 0x00000010, PROBES_DATA_PROCESSING_REG,
|
||||
REGS(ANY, ANY, NOPC, 0, ANY)),
|
||||
REGS(NOPC, NOPC, NOPC, 0, NOPC)),
|
||||
|
||||
DECODE_END
|
||||
};
|
||||
|
@ -908,7 +908,7 @@ enum ptrace_syscall_dir {
|
||||
PTRACE_SYSCALL_EXIT,
|
||||
};
|
||||
|
||||
static int tracehook_report_syscall(struct pt_regs *regs,
|
||||
static void tracehook_report_syscall(struct pt_regs *regs,
|
||||
enum ptrace_syscall_dir dir)
|
||||
{
|
||||
unsigned long ip;
|
||||
@ -926,7 +926,6 @@ static int tracehook_report_syscall(struct pt_regs *regs,
|
||||
current_thread_info()->syscall = -1;
|
||||
|
||||
regs->ARM_ip = ip;
|
||||
return current_thread_info()->syscall;
|
||||
}
|
||||
|
||||
asmlinkage int syscall_trace_enter(struct pt_regs *regs, int scno)
|
||||
@ -938,7 +937,9 @@ asmlinkage int syscall_trace_enter(struct pt_regs *regs, int scno)
|
||||
return -1;
|
||||
|
||||
if (test_thread_flag(TIF_SYSCALL_TRACE))
|
||||
scno = tracehook_report_syscall(regs, PTRACE_SYSCALL_ENTER);
|
||||
tracehook_report_syscall(regs, PTRACE_SYSCALL_ENTER);
|
||||
|
||||
scno = current_thread_info()->syscall;
|
||||
|
||||
if (test_thread_flag(TIF_SYSCALL_TRACEPOINT))
|
||||
trace_sys_enter(regs, scno);
|
||||
|
@ -275,7 +275,7 @@ void store_cpu_topology(unsigned int cpuid)
|
||||
cpu_topology[cpuid].socket_id, mpidr);
|
||||
}
|
||||
|
||||
static inline const int cpu_corepower_flags(void)
|
||||
static inline int cpu_corepower_flags(void)
|
||||
{
|
||||
return SD_SHARE_PKG_RESOURCES | SD_SHARE_POWERDOMAIN;
|
||||
}
|
||||
|
@ -173,10 +173,8 @@ static struct platform_device exynos_cpuidle = {
|
||||
|
||||
void __init exynos_cpuidle_init(void)
|
||||
{
|
||||
if (soc_is_exynos5440())
|
||||
return;
|
||||
|
||||
platform_device_register(&exynos_cpuidle);
|
||||
if (soc_is_exynos4210() || soc_is_exynos5250())
|
||||
platform_device_register(&exynos_cpuidle);
|
||||
}
|
||||
|
||||
void __init exynos_cpufreq_init(void)
|
||||
@ -297,7 +295,7 @@ static void __init exynos_dt_machine_init(void)
|
||||
* This is called from smp_prepare_cpus if we've built for SMP, but
|
||||
* we still need to set it up for PM and firmware ops if not.
|
||||
*/
|
||||
if (!IS_ENABLED(SMP))
|
||||
if (!IS_ENABLED(CONFIG_SMP))
|
||||
exynos_sysram_init();
|
||||
|
||||
exynos_cpuidle_init();
|
||||
|
@ -57,8 +57,13 @@ static int exynos_set_cpu_boot_addr(int cpu, unsigned long boot_addr)
|
||||
|
||||
boot_reg = sysram_ns_base_addr + 0x1c;
|
||||
|
||||
if (!soc_is_exynos4212() && !soc_is_exynos3250())
|
||||
boot_reg += 4*cpu;
|
||||
/*
|
||||
* Almost all Exynos-series of SoCs that run in secure mode don't need
|
||||
* additional offset for every CPU, with Exynos4412 being the only
|
||||
* exception.
|
||||
*/
|
||||
if (soc_is_exynos4412())
|
||||
boot_reg += 4 * cpu;
|
||||
|
||||
__raw_writel(boot_addr, boot_reg);
|
||||
return 0;
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user