Skip to content

Commit bdf9b75

Browse files
committed
Merge branch 'sbc/tinkerboard/camera/Debian-9.0' into sbc/tinkerboard/asus/Debian-9.0
update kernel branch to RK release-4.4-miniarm branch Change-Id: I14faef68ebee2ade3e36a0ab14149c95f95cad99
2 parents 533c47a + 24ef89c commit bdf9b75

6,873 files changed

Lines changed: 2507952 additions & 273312 deletions

File tree

Some content is hidden

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

Documentation/ABI/testing/sysfs-class-pwm

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,3 +77,12 @@ Description:
7777
Enable/disable the PWM signal.
7878
0 is disabled
7979
1 is enabled
80+
81+
What: /sys/class/pwm/pwmchipN/pwmX/capture
82+
Date: June 2016
83+
KernelVersion: 4.8
84+
Contact: Lee Jones <lee.jones@linaro.org>
85+
Description:
86+
Capture information about a PWM signal. The output format is a
87+
pair unsigned integers (period and duty cycle), separated by a
88+
single space.

Documentation/DocBook/gpu.tmpl

Lines changed: 57 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2543,7 +2543,7 @@ void intel_crt_init(struct drm_device *dev)
25432543
<td valign="top" >Description/Restrictions</td>
25442544
</tr>
25452545
<tr>
2546-
<td rowspan="37" valign="top" >DRM</td>
2546+
<td rowspan="42" valign="top" >DRM</td>
25472547
<td valign="top" >Generic</td>
25482548
<td valign="top" >“rotation”</td>
25492549
<td valign="top" >BITMASK</td>
@@ -2795,7 +2795,7 @@ void intel_crt_init(struct drm_device *dev)
27952795
<td valign="top" >property to suggest an Y offset for a connector</td>
27962796
</tr>
27972797
<tr>
2798-
<td rowspan="3" valign="top" >Optional</td>
2798+
<td rowspan="8" valign="top" >Optional</td>
27992799
<td valign="top" >“scaling mode”</td>
28002800
<td valign="top" >ENUM</td>
28012801
<td valign="top" >{ "None", "Full", "Center", "Full aspect" }</td>
@@ -2819,6 +2819,61 @@ void intel_crt_init(struct drm_device *dev)
28192819
<td valign="top" >TBD</td>
28202820
</tr>
28212821
<tr>
2822+
<td valign="top" >“DEGAMMA_LUT”</td>
2823+
<td valign="top" >BLOB</td>
2824+
<td valign="top" >0</td>
2825+
<td valign="top" >CRTC</td>
2826+
<td valign="top" >DRM property to set the degamma lookup table
2827+
(LUT) mapping pixel data from the framebuffer before it is
2828+
given to the transformation matrix. The data is an interpreted
2829+
as an array of struct drm_color_lut elements. Hardware might
2830+
choose not to use the full precision of the LUT elements nor
2831+
use all the elements of the LUT (for example the hardware
2832+
might choose to interpolate between LUT[0] and LUT[4]). </td>
2833+
</tr>
2834+
<tr>
2835+
<td valign="top" >“DEGAMMA_LUT_SIZE”</td>
2836+
<td valign="top" >RANGE | IMMUTABLE</td>
2837+
<td valign="top" >Min=0, Max=UINT_MAX</td>
2838+
<td valign="top" >CRTC</td>
2839+
<td valign="top" >DRM property to gives the size of the lookup
2840+
table to be set on the DEGAMMA_LUT property (the size depends
2841+
on the underlying hardware).</td>
2842+
</tr>
2843+
<tr>
2844+
<td valign="top" >“CTM”</td>
2845+
<td valign="top" >BLOB</td>
2846+
<td valign="top" >0</td>
2847+
<td valign="top" >CRTC</td>
2848+
<td valign="top" >DRM property to set the current
2849+
transformation matrix (CTM) apply to pixel data after the
2850+
lookup through the degamma LUT and before the lookup through
2851+
the gamma LUT. The data is an interpreted as a struct
2852+
drm_color_ctm.</td>
2853+
</tr>
2854+
<tr>
2855+
<td valign="top" >“GAMMA_LUT”</td>
2856+
<td valign="top" >BLOB</td>
2857+
<td valign="top" >0</td>
2858+
<td valign="top" >CRTC</td>
2859+
<td valign="top" >DRM property to set the gamma lookup table
2860+
(LUT) mapping pixel data after to the transformation matrix to
2861+
data sent to the connector. The data is an interpreted as an
2862+
array of struct drm_color_lut elements. Hardware might choose
2863+
not to use the full precision of the LUT elements nor use all
2864+
the elements of the LUT (for example the hardware might choose
2865+
to interpolate between LUT[0] and LUT[4]).</td>
2866+
</tr>
2867+
<tr>
2868+
<td valign="top" >“GAMMA_LUT_SIZE”</td>
2869+
<td valign="top" >RANGE | IMMUTABLE</td>
2870+
<td valign="top" >Min=0, Max=UINT_MAX</td>
2871+
<td valign="top" >CRTC</td>
2872+
<td valign="top" >DRM property to gives the size of the lookup
2873+
table to be set on the GAMMA_LUT property (the size depends on
2874+
the underlying hardware).</td>
2875+
</tr>
2876+
<tr>
28222877
<td rowspan="20" valign="top" >i915</td>
28232878
<td rowspan="2" valign="top" >Generic</td>
28242879
<td valign="top" >"Broadcast RGB"</td>

Documentation/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
subdir-y := accounting auxdisplay blackfin connector \
2-
filesystems filesystems ia64 laptops mic misc-devices \
2+
filesystems filesystems ia64 laptops misc-devices \
33
networking pcmcia prctl ptp spi timers vDSO video4linux \
44
watchdog

Documentation/arm64/tagged-pointers.txt

Lines changed: 47 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -11,24 +11,56 @@ in AArch64 Linux.
1111
The kernel configures the translation tables so that translations made
1212
via TTBR0 (i.e. userspace mappings) have the top byte (bits 63:56) of
1313
the virtual address ignored by the translation hardware. This frees up
14-
this byte for application use, with the following caveats:
14+
this byte for application use.
1515

16-
(1) The kernel requires that all user addresses passed to EL1
17-
are tagged with tag 0x00. This means that any syscall
18-
parameters containing user virtual addresses *must* have
19-
their top byte cleared before trapping to the kernel.
2016

21-
(2) Non-zero tags are not preserved when delivering signals.
22-
This means that signal handlers in applications making use
23-
of tags cannot rely on the tag information for user virtual
24-
addresses being maintained for fields inside siginfo_t.
25-
One exception to this rule is for signals raised in response
26-
to watchpoint debug exceptions, where the tag information
27-
will be preserved.
17+
Passing tagged addresses to the kernel
18+
--------------------------------------
2819

29-
(3) Special care should be taken when using tagged pointers,
30-
since it is likely that C compilers will not hazard two
31-
virtual addresses differing only in the upper byte.
20+
All interpretation of userspace memory addresses by the kernel assumes
21+
an address tag of 0x00.
22+
23+
This includes, but is not limited to, addresses found in:
24+
25+
- pointer arguments to system calls, including pointers in structures
26+
passed to system calls,
27+
28+
- the stack pointer (sp), e.g. when interpreting it to deliver a
29+
signal,
30+
31+
- the frame pointer (x29) and frame records, e.g. when interpreting
32+
them to generate a backtrace or call graph.
33+
34+
Using non-zero address tags in any of these locations may result in an
35+
error code being returned, a (fatal) signal being raised, or other modes
36+
of failure.
37+
38+
For these reasons, passing non-zero address tags to the kernel via
39+
system calls is forbidden, and using a non-zero address tag for sp is
40+
strongly discouraged.
41+
42+
Programs maintaining a frame pointer and frame records that use non-zero
43+
address tags may suffer impaired or inaccurate debug and profiling
44+
visibility.
45+
46+
47+
Preserving tags
48+
---------------
49+
50+
Non-zero tags are not preserved when delivering signals. This means that
51+
signal handlers in applications making use of tags cannot rely on the
52+
tag information for user virtual addresses being maintained for fields
53+
inside siginfo_t. One exception to this rule is for signals raised in
54+
response to watchpoint debug exceptions, where the tag information will
55+
be preserved.
3256

3357
The architecture prevents the use of a tagged PC, so the upper byte will
3458
be set to a sign-extension of bit 55 on exception return.
59+
60+
61+
Other considerations
62+
--------------------
63+
64+
Special care should be taken when using tagged pointers, since it is
65+
likely that C compilers will not hazard two virtual addresses differing
66+
only in the upper byte.

Documentation/cgroups/blkio-controller.txt renamed to Documentation/cgroup-legacy/blkio-controller.txt

Lines changed: 0 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -374,82 +374,3 @@ One can experience an overall throughput drop if you have created multiple
374374
groups and put applications in that group which are not driving enough
375375
IO to keep disk busy. In that case set group_idle=0, and CFQ will not idle
376376
on individual groups and throughput should improve.
377-
378-
Writeback
379-
=========
380-
381-
Page cache is dirtied through buffered writes and shared mmaps and
382-
written asynchronously to the backing filesystem by the writeback
383-
mechanism. Writeback sits between the memory and IO domains and
384-
regulates the proportion of dirty memory by balancing dirtying and
385-
write IOs.
386-
387-
On traditional cgroup hierarchies, relationships between different
388-
controllers cannot be established making it impossible for writeback
389-
to operate accounting for cgroup resource restrictions and all
390-
writeback IOs are attributed to the root cgroup.
391-
392-
If both the blkio and memory controllers are used on the v2 hierarchy
393-
and the filesystem supports cgroup writeback, writeback operations
394-
correctly follow the resource restrictions imposed by both memory and
395-
blkio controllers.
396-
397-
Writeback examines both system-wide and per-cgroup dirty memory status
398-
and enforces the more restrictive of the two. Also, writeback control
399-
parameters which are absolute values - vm.dirty_bytes and
400-
vm.dirty_background_bytes - are distributed across cgroups according
401-
to their current writeback bandwidth.
402-
403-
There's a peculiarity stemming from the discrepancy in ownership
404-
granularity between memory controller and writeback. While memory
405-
controller tracks ownership per page, writeback operates on inode
406-
basis. cgroup writeback bridges the gap by tracking ownership by
407-
inode but migrating ownership if too many foreign pages, pages which
408-
don't match the current inode ownership, have been encountered while
409-
writing back the inode.
410-
411-
This is a conscious design choice as writeback operations are
412-
inherently tied to inodes making strictly following page ownership
413-
complicated and inefficient. The only use case which suffers from
414-
this compromise is multiple cgroups concurrently dirtying disjoint
415-
regions of the same inode, which is an unlikely use case and decided
416-
to be unsupported. Note that as memory controller assigns page
417-
ownership on the first use and doesn't update it until the page is
418-
released, even if cgroup writeback strictly follows page ownership,
419-
multiple cgroups dirtying overlapping areas wouldn't work as expected.
420-
In general, write-sharing an inode across multiple cgroups is not well
421-
supported.
422-
423-
Filesystem support for cgroup writeback
424-
---------------------------------------
425-
426-
A filesystem can make writeback IOs cgroup-aware by updating
427-
address_space_operations->writepage[s]() to annotate bio's using the
428-
following two functions.
429-
430-
* wbc_init_bio(@wbc, @bio)
431-
432-
Should be called for each bio carrying writeback data and associates
433-
the bio with the inode's owner cgroup. Can be called anytime
434-
between bio allocation and submission.
435-
436-
* wbc_account_io(@wbc, @page, @bytes)
437-
438-
Should be called for each data segment being written out. While
439-
this function doesn't care exactly when it's called during the
440-
writeback session, it's the easiest and most natural to call it as
441-
data segments are added to a bio.
442-
443-
With writeback bio's annotated, cgroup support can be enabled per
444-
super_block by setting MS_CGROUPWB in ->s_flags. This allows for
445-
selective disabling of cgroup writeback support which is helpful when
446-
certain filesystem features, e.g. journaled data mode, are
447-
incompatible.
448-
449-
wbc_init_bio() binds the specified bio to its cgroup. Depending on
450-
the configuration, the bio may be executed at a lower priority and if
451-
the writeback session is holding shared resources, e.g. a journal
452-
entry, may lead to priority inversion. There is no one easy solution
453-
for the problem. Filesystems can try to work around specific problem
454-
cases by skipping wbc_init_bio() or using bio_associate_blkcg()
455-
directly.
Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -578,15 +578,6 @@ is completely unused; @cgrp->parent is still valid. (Note - can also
578578
be called for a newly-created cgroup if an error occurs after this
579579
subsystem's create() method has been called for the new cgroup).
580580

581-
int allow_attach(struct cgroup *cgrp, struct cgroup_taskset *tset)
582-
(cgroup_mutex held by caller)
583-
584-
Called prior to moving a task into a cgroup; if the subsystem
585-
returns an error, this will abort the attach operation. Used
586-
to extend the permission checks - if all subsystems in a cgroup
587-
return 0, the attach will be allowed to proceed, even if the
588-
default permission check (root or same user) fails.
589-
590581
int can_attach(struct cgroup *cgrp, struct cgroup_taskset *tset)
591582
(cgroup_mutex held by caller)
592583

0 commit comments

Comments
 (0)