Skip to content

Commit c000a3c

Browse files
committed
Merge branch 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull cpu idle fixes from Thomas Gleixner: - Add a missing irq enable. Fallout of the idle conversion - Fix stackprotector wreckage caused by the idle conversion * 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: idle: Enable interrupts in the weak arch_cpu_idle() implementation idle: Add the stack canary init to cpu_startup_entry() --- yaml --- svn_rev: 377253 current_ref: refs/heads/rpi-3.18.7-rt2 current_commit: 805e318 head_branch: refs/heads/rpi-3.18.7-rt2 migrated_from: v3
1 parent dc1b0ea commit c000a3c

File tree

1,248 files changed

+15247
-8073
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,248 files changed

+15247
-8073
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
---
2-
refs/heads/rpi-3.18.7-rt2: 29ce3785b22da47c49f4ef6e14b9014fa5dee261
2+
refs/heads/rpi-3.18.7-rt2: 805e318548fa0f6007bcece06bde1ddd9393246c
Lines changed: 22 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,27 @@
11
<title>Codec Interface</title>
22

3-
<note>
4-
<title>Suspended</title>
3+
<para>A V4L2 codec can compress, decompress, transform, or otherwise
4+
convert video data from one format into another format, in memory. Typically
5+
such devices are memory-to-memory devices (i.e. devices with the
6+
<constant>V4L2_CAP_VIDEO_M2M</constant> or <constant>V4L2_CAP_VIDEO_M2M_MPLANE</constant>
7+
capability set).
8+
</para>
59

6-
<para>This interface has been be suspended from the V4L2 API
7-
implemented in Linux 2.6 until we have more experience with codec
8-
device interfaces.</para>
9-
</note>
10+
<para>A memory-to-memory video node acts just like a normal video node, but it
11+
supports both output (sending frames from memory to the codec hardware) and
12+
capture (receiving the processed frames from the codec hardware into memory)
13+
stream I/O. An application will have to setup the stream
14+
I/O for both sides and finally call &VIDIOC-STREAMON; for both capture and output
15+
to start the codec.</para>
1016

11-
<para>A V4L2 codec can compress, decompress, transform, or otherwise
12-
convert video data from one format into another format, in memory.
13-
Applications send data to be converted to the driver through a
14-
&func-write; call, and receive the converted data through a
15-
&func-read; call. For efficiency a driver may also support streaming
16-
I/O.</para>
17+
<para>Video compression codecs use the MPEG controls to setup their codec parameters
18+
(note that the MPEG controls actually support many more codecs than just MPEG).
19+
See <xref linkend="mpeg-controls"></xref>.</para>
1720

18-
<para>[to do]</para>
21+
<para>Memory-to-memory devices can often be used as a shared resource: you can
22+
open the video node multiple times, each application setting up their own codec properties
23+
that are local to the file handle, and each can use it independently from the others.
24+
The driver will arbitrate access to the codec and reprogram it whenever another file
25+
handler gets access. This is different from the usual video node behavior where the video properties
26+
are global to the device (i.e. changing something through one file handle is visible
27+
through another file handle).</para>

trunk/Documentation/DocBook/media/v4l/v4l2.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -493,7 +493,7 @@ and discussions on the V4L mailing list.</revremark>
493493
</partinfo>
494494

495495
<title>Video for Linux Two API Specification</title>
496-
<subtitle>Revision 3.9</subtitle>
496+
<subtitle>Revision 3.10</subtitle>
497497

498498
<chapter id="common">
499499
&sub-common;

trunk/Documentation/bcache.txt

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -319,7 +319,10 @@ cache<0..n>
319319
Symlink to each of the cache devices comprising this cache set.
320320

321321
cache_available_percent
322-
Percentage of cache device free.
322+
Percentage of cache device which doesn't contain dirty data, and could
323+
potentially be used for writeback. This doesn't mean this space isn't used
324+
for clean cached data; the unused statistic (in priority_stats) is typically
325+
much lower.
323326

324327
clear_stats
325328
Clears the statistics associated with this cache
@@ -423,8 +426,11 @@ nbuckets
423426
Total buckets in this cache
424427

425428
priority_stats
426-
Statistics about how recently data in the cache has been accessed. This can
427-
reveal your working set size.
429+
Statistics about how recently data in the cache has been accessed.
430+
This can reveal your working set size. Unused is the percentage of
431+
the cache that doesn't contain any data. Metadata is bcache's
432+
metadata overhead. Average is the average priority of cache buckets.
433+
Next is a list of quantiles with the priority threshold of each.
428434

429435
written
430436
Sum of all data that has been written to the cache; comparison with

trunk/Documentation/devices.txt

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -498,12 +498,8 @@ Your cooperation is appreciated.
498498

499499
Each device type has 5 bits (32 minors).
500500

501-
13 block 8-bit MFM/RLL/IDE controller
502-
0 = /dev/xda First XT disk whole disk
503-
64 = /dev/xdb Second XT disk whole disk
504-
505-
Partitions are handled in the same way as IDE disks
506-
(see major number 3).
501+
13 block Previously used for the XT disk (/dev/xdN)
502+
Deleted in kernel v3.9.
507503

508504
14 char Open Sound System (OSS)
509505
0 = /dev/mixer Mixer control

trunk/Documentation/devicetree/bindings/media/exynos-fimc-lite.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ Exynos4x12/Exynos5 SoC series camera host interface (FIMC-LITE)
22

33
Required properties:
44

5-
- compatible : should be "samsung,exynos4212-fimc" for Exynos4212 and
5+
- compatible : should be "samsung,exynos4212-fimc-lite" for Exynos4212 and
66
Exynos4412 SoCs;
77
- reg : physical base address and size of the device memory mapped
88
registers;

trunk/Documentation/devicetree/bindings/net/macb.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ Required properties:
44
- compatible: Should be "cdns,[<chip>-]{macb|gem}"
55
Use "cdns,at91sam9260-macb" Atmel at91sam9260 and at91sam9263 SoCs.
66
Use "cdns,at32ap7000-macb" for other 10/100 usage or use the generic form: "cdns,macb".
7-
Use "cnds,pc302-gem" for Picochip picoXcell pc302 and later devices based on
7+
Use "cdns,pc302-gem" for Picochip picoXcell pc302 and later devices based on
88
the Cadence GEM, or the generic form: "cdns,gem".
99
- reg: Address and length of the register set for the device
1010
- interrupts: Should contain macb interrupt

trunk/Documentation/devicetree/bindings/rtc/atmel,at91rm9200-rtc.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
Atmel AT91RM9200 Real Time Clock
22

33
Required properties:
4-
- compatible: should be: "atmel,at91rm9200-rtc"
4+
- compatible: should be: "atmel,at91rm9200-rtc" or "atmel,at91sam9x5-rtc"
55
- reg: physical base address of the controller and length of memory mapped
66
region.
77
- interrupts: rtc alarm/event interrupt
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
Simple Framebuffer
2+
3+
A simple frame-buffer describes a raw memory region that may be rendered to,
4+
with the assumption that the display hardware has already been set up to scan
5+
out from that buffer.
6+
7+
Required properties:
8+
- compatible: "simple-framebuffer"
9+
- reg: Should contain the location and size of the framebuffer memory.
10+
- width: The width of the framebuffer in pixels.
11+
- height: The height of the framebuffer in pixels.
12+
- stride: The number of bytes in each line of the framebuffer.
13+
- format: The format of the framebuffer surface. Valid values are:
14+
- r5g6b5 (16-bit pixels, d[15:11]=r, d[10:5]=g, d[4:0]=b).
15+
16+
Example:
17+
18+
framebuffer {
19+
compatible = "simple-framebuffer";
20+
reg = <0x1d385000 (1600 * 1200 * 2)>;
21+
width = <1600>;
22+
height = <1200>;
23+
stride = <(1600 * 2)>;
24+
format = "r5g6b5";
25+
};

trunk/Documentation/dmatest.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ command:
3434
After a while you will start to get messages about current status or error like
3535
in the original code.
3636

37-
Note that running a new test will stop any in progress test.
37+
Note that running a new test will not stop any in progress test.
3838

3939
The following command should return actual state of the test.
4040
% cat /sys/kernel/debug/dmatest/run
@@ -52,8 +52,8 @@ To wait for test done the user may perform a busy loop that checks the state.
5252

5353
The module parameters that is supplied to the kernel command line will be used
5454
for the first performed test. After user gets a control, the test could be
55-
interrupted or re-run with same or different parameters. For the details see
56-
the above section "Part 2 - When dmatest is built as a module..."
55+
re-run with the same or different parameters. For the details see the above
56+
section "Part 2 - When dmatest is built as a module..."
5757

5858
In both cases the module parameters are used as initial values for the test case.
5959
You always could check them at run-time by running

trunk/Documentation/filesystems/xfs.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,9 @@ When mounting an XFS filesystem, the following options are accepted.
3333
removing extended attributes) the on-disk superblock feature
3434
bit field will be updated to reflect this format being in use.
3535

36+
CRC enabled filesystems always use the attr2 format, and so
37+
will reject the noattr2 mount option if it is set.
38+
3639
barrier
3740
Enables the use of block layer write barriers for writes into
3841
the journal and unwritten extent conversion. This allows for

trunk/Documentation/kernel-parameters.txt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3351,9 +3351,6 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
33513351
plus one apbt timer for broadcast timer.
33523352
x86_mrst_timer=apbt_only | lapic_and_apbt
33533353

3354-
xd= [HW,XT] Original XT pre-IDE (RLL encoded) disks.
3355-
xd_geo= See header of drivers/block/xd.c.
3356-
33573354
xen_emul_unplug= [HW,X86,XEN]
33583355
Unplug Xen emulated devices
33593356
Format: [unplug0,][unplug1]

trunk/Documentation/m68k/kernel-options.txt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,6 @@ Valid names are:
8080
/dev/sdd: -> 0x0830 (forth SCSI disk)
8181
/dev/sde: -> 0x0840 (fifth SCSI disk)
8282
/dev/fd : -> 0x0200 (floppy disk)
83-
/dev/xda: -> 0x0c00 (first XT disk, unused in Linux/m68k)
84-
/dev/xdb: -> 0x0c40 (second XT disk, unused in Linux/m68k)
8583

8684
The name must be followed by a decimal number, that stands for the
8785
partition number. Internally, the value of the number is just

trunk/Documentation/powerpc/transactional_memory.txt

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,25 @@ Example signal handler:
147147
fix_the_problem(ucp->dar);
148148
}
149149

150+
When in an active transaction that takes a signal, we need to be careful with
151+
the stack. It's possible that the stack has moved back up after the tbegin.
152+
The obvious case here is when the tbegin is called inside a function that
153+
returns before a tend. In this case, the stack is part of the checkpointed
154+
transactional memory state. If we write over this non transactionally or in
155+
suspend, we are in trouble because if we get a tm abort, the program counter and
156+
stack pointer will be back at the tbegin but our in memory stack won't be valid
157+
anymore.
158+
159+
To avoid this, when taking a signal in an active transaction, we need to use
160+
the stack pointer from the checkpointed state, rather than the speculated
161+
state. This ensures that the signal context (written tm suspended) will be
162+
written below the stack required for the rollback. The transaction is aborted
163+
becuase of the treclaim, so any memory written between the tbegin and the
164+
signal will be rolled back anyway.
165+
166+
For signals taken in non-TM or suspended mode, we use the
167+
normal/non-checkpointed stack pointer.
168+
150169

151170
Failure cause codes used by kernel
152171
==================================
@@ -155,14 +174,18 @@ These are defined in <asm/reg.h>, and distinguish different reasons why the
155174
kernel aborted a transaction:
156175

157176
TM_CAUSE_RESCHED Thread was rescheduled.
177+
TM_CAUSE_TLBI Software TLB invalide.
158178
TM_CAUSE_FAC_UNAV FP/VEC/VSX unavailable trap.
159179
TM_CAUSE_SYSCALL Currently unused; future syscalls that must abort
160180
transactions for consistency will use this.
161181
TM_CAUSE_SIGNAL Signal delivered.
162182
TM_CAUSE_MISC Currently unused.
183+
TM_CAUSE_ALIGNMENT Alignment fault.
184+
TM_CAUSE_EMULATE Emulation that touched memory.
163185

164-
These can be checked by the user program's abort handler as TEXASR[0:7].
165-
186+
These can be checked by the user program's abort handler as TEXASR[0:7]. If
187+
bit 7 is set, it indicates that the error is consider persistent. For example
188+
a TM_CAUSE_ALIGNMENT will be persistent while a TM_CAUSE_RESCHED will not.q
166189

167190
GDB
168191
===

trunk/Documentation/rapidio/rapidio.txt

Lines changed: 117 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -79,20 +79,63 @@ master port that is used to communicate with devices within the network.
7979
In order to initialize the RapidIO subsystem, a platform must initialize and
8080
register at least one master port within the RapidIO network. To register mport
8181
within the subsystem controller driver initialization code calls function
82-
rio_register_mport() for each available master port. After all active master
83-
ports are registered with a RapidIO subsystem, the rio_init_mports() routine
84-
is called to perform enumeration and discovery.
82+
rio_register_mport() for each available master port.
8583

86-
In the current PowerPC-based implementation a subsys_initcall() is specified to
87-
perform controller initialization and mport registration. At the end it directly
88-
calls rio_init_mports() to execute RapidIO enumeration and discovery.
84+
RapidIO subsystem uses subsys_initcall() or device_initcall() to perform
85+
controller initialization (depending on controller device type).
86+
87+
After all active master ports are registered with a RapidIO subsystem,
88+
an enumeration and/or discovery routine may be called automatically or
89+
by user-space command.
8990

9091
4. Enumeration and Discovery
9192
----------------------------
9293

93-
When rio_init_mports() is called it scans a list of registered master ports and
94-
calls an enumeration or discovery routine depending on the configured role of a
95-
master port: host or agent.
94+
4.1 Overview
95+
------------
96+
97+
RapidIO subsystem configuration options allow users to specify enumeration and
98+
discovery methods as statically linked components or loadable modules.
99+
An enumeration/discovery method implementation and available input parameters
100+
define how any given method can be attached to available RapidIO mports:
101+
simply to all available mports OR individually to the specified mport device.
102+
103+
Depending on selected enumeration/discovery build configuration, there are
104+
several methods to initiate an enumeration and/or discovery process:
105+
106+
(a) Statically linked enumeration and discovery process can be started
107+
automatically during kernel initialization time using corresponding module
108+
parameters. This was the original method used since introduction of RapidIO
109+
subsystem. Now this method relies on enumerator module parameter which is
110+
'rio-scan.scan' for existing basic enumeration/discovery method.
111+
When automatic start of enumeration/discovery is used a user has to ensure
112+
that all discovering endpoints are started before the enumerating endpoint
113+
and are waiting for enumeration to be completed.
114+
Configuration option CONFIG_RAPIDIO_DISC_TIMEOUT defines time that discovering
115+
endpoint waits for enumeration to be completed. If the specified timeout
116+
expires the discovery process is terminated without obtaining RapidIO network
117+
information. NOTE: a timed out discovery process may be restarted later using
118+
a user-space command as it is described later if the given endpoint was
119+
enumerated successfully.
120+
121+
(b) Statically linked enumeration and discovery process can be started by
122+
a command from user space. This initiation method provides more flexibility
123+
for a system startup compared to the option (a) above. After all participating
124+
endpoints have been successfully booted, an enumeration process shall be
125+
started first by issuing a user-space command, after an enumeration is
126+
completed a discovery process can be started on all remaining endpoints.
127+
128+
(c) Modular enumeration and discovery process can be started by a command from
129+
user space. After an enumeration/discovery module is loaded, a network scan
130+
process can be started by issuing a user-space command.
131+
Similar to the option (b) above, an enumerator has to be started first.
132+
133+
(d) Modular enumeration and discovery process can be started by a module
134+
initialization routine. In this case an enumerating module shall be loaded
135+
first.
136+
137+
When a network scan process is started it calls an enumeration or discovery
138+
routine depending on the configured role of a master port: host or agent.
96139

97140
Enumeration is performed by a master port if it is configured as a host port by
98141
assigning a host device ID greater than or equal to zero. A host device ID is
@@ -104,8 +147,58 @@ for it.
104147
The enumeration and discovery routines use RapidIO maintenance transactions
105148
to access the configuration space of devices.
106149

107-
The enumeration process is implemented according to the enumeration algorithm
108-
outlined in the RapidIO Interconnect Specification: Annex I [1].
150+
4.2 Automatic Start of Enumeration and Discovery
151+
------------------------------------------------
152+
153+
Automatic enumeration/discovery start method is applicable only to built-in
154+
enumeration/discovery RapidIO configuration selection. To enable automatic
155+
enumeration/discovery start by existing basic enumerator method set use boot
156+
command line parameter "rio-scan.scan=1".
157+
158+
This configuration requires synchronized start of all RapidIO endpoints that
159+
form a network which will be enumerated/discovered. Discovering endpoints have
160+
to be started before an enumeration starts to ensure that all RapidIO
161+
controllers have been initialized and are ready to be discovered. Configuration
162+
parameter CONFIG_RAPIDIO_DISC_TIMEOUT defines time (in seconds) which
163+
a discovering endpoint will wait for enumeration to be completed.
164+
165+
When automatic enumeration/discovery start is selected, basic method's
166+
initialization routine calls rio_init_mports() to perform enumeration or
167+
discovery for all known mport devices.
168+
169+
Depending on RapidIO network size and configuration this automatic
170+
enumeration/discovery start method may be difficult to use due to the
171+
requirement for synchronized start of all endpoints.
172+
173+
4.3 User-space Start of Enumeration and Discovery
174+
-------------------------------------------------
175+
176+
User-space start of enumeration and discovery can be used with built-in and
177+
modular build configurations. For user-space controlled start RapidIO subsystem
178+
creates the sysfs write-only attribute file '/sys/bus/rapidio/scan'. To initiate
179+
an enumeration or discovery process on specific mport device, a user needs to
180+
write mport_ID (not RapidIO destination ID) into that file. The mport_ID is a
181+
sequential number (0 ... RIO_MAX_MPORTS) assigned during mport device
182+
registration. For example for machine with single RapidIO controller, mport_ID
183+
for that controller always will be 0.
184+
185+
To initiate RapidIO enumeration/discovery on all available mports a user may
186+
write '-1' (or RIO_MPORT_ANY) into the scan attribute file.
187+
188+
4.4 Basic Enumeration Method
189+
----------------------------
190+
191+
This is an original enumeration/discovery method which is available since
192+
first release of RapidIO subsystem code. The enumeration process is
193+
implemented according to the enumeration algorithm outlined in the RapidIO
194+
Interconnect Specification: Annex I [1].
195+
196+
This method can be configured as statically linked or loadable module.
197+
The method's single parameter "scan" allows to trigger the enumeration/discovery
198+
process from module initialization routine.
199+
200+
This enumeration/discovery method can be started only once and does not support
201+
unloading if it is built as a module.
109202

110203
The enumeration process traverses the network using a recursive depth-first
111204
algorithm. When a new device is found, the enumerator takes ownership of that
@@ -160,6 +253,19 @@ time period. If this wait time period expires before enumeration is completed,
160253
an agent skips RapidIO discovery and continues with remaining kernel
161254
initialization.
162255

256+
4.5 Adding New Enumeration/Discovery Method
257+
-------------------------------------------
258+
259+
RapidIO subsystem code organization allows addition of new enumeration/discovery
260+
methods as new configuration options without significant impact to to the core
261+
RapidIO code.
262+
263+
A new enumeration/discovery method has to be attached to one or more mport
264+
devices before an enumeration/discovery process can be started. Normally,
265+
method's module initialization routine calls rio_register_scan() to attach
266+
an enumerator to a specified mport device (or devices). The basic enumerator
267+
implementation demonstrates this process.
268+
163269
5. References
164270
-------------
165271

0 commit comments

Comments
 (0)