linux/Documentation
Lionel Landwerlin 9aeb1194e3 UPSTREAM: drm: introduce pipe color correction properties
Patch based on a previous series by Shashank Sharma.

This introduces optional properties to enable color correction at the
pipe level. It relies on 3 transformations applied to every pixels
displayed. First a lookup into a degamma table, then a multiplication
of the rgb components by a 3x3 matrix and finally another lookup into
a gamma table.

The following properties can be added to a pipe :
  - DEGAMMA_LUT : blob containing degamma LUT
  - DEGAMMA_LUT_SIZE : number of elements in DEGAMMA_LUT
  - CTM : transformation matrix applied after the degamma LUT
  - GAMMA_LUT : blob containing gamma LUT
  - GAMMA_LUT_SIZE : number of elements in GAMMA_LUT

DEGAMMA_LUT_SIZE and GAMMA_LUT_SIZE are read only properties, set by
the driver to tell userspace applications what sizes should be the
lookup tables in DEGAMMA_LUT and GAMMA_LUT.

A helper is also provided so legacy gamma correction is redirected
through these new properties.

v2: Register LUT size properties as range

v3: Fix round in drm_color_lut_get_value() helper
    More docs on how degamma/gamma properties are used

v4: Update contributors

v5: Rename CTM_MATRIX property to CTM (Doh!)
    Add legacy gamma_set atomic helper
    Describe CTM/LUT acronyms in the kernel doc

v6: Fix missing blob unref in drm_atomic_helper_crtc_reset

Signed-off-by: Kumar, Kiran S <kiran.s.kumar@intel.com>
Signed-off-by: Kausal Malladi <kausalmalladi@gmail.com>
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
Acked-by: Rob Bradford <robert.bradford@intel.com>
[danvet: CrOS maintainers are also happy with the userspacde side:
https://codereview.chromium.org/1182063002/ ]
Reviewed-by: Daniel Stone <daniels@collabora.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/1456506302-640-4-git-send-email-lionel.g.landwerlin@intel.com
(cherry picked from commit 5488dc16fd)

Change-Id: I8952fa72998b669cf6d8a7e120a72ffb225b1ba1
Signed-off-by: Shashank Sharma <shashank.sharma@intel.com>
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
2017-07-07 19:09:13 +08:00
..
ABI UPSTREAM: pwm: sysfs: Add PWM capture support 2017-03-06 18:28:40 +08:00
accounting
acpi
aoe
arm ARM: dts: keystone: k2l: fix kernel crash when clk_ignore_unused is not in bootargs 2015-11-23 10:36:27 -08:00
arm64 Merge tag 'v4.4.70' into linux-linaro-lsk-v4.4 2017-05-26 12:03:27 +08:00
auxdisplay
backlight
blackfin
block ANDROID: mmc: Add CONFIG_MMC_SIMULATE_MAX_SPEED 2016-04-07 16:50:08 +05:30
blockdev rk: revert to v3.10 2015-11-11 15:57:28 +08:00
bus-devices
cdrom
cgroup-legacy cgroup: replace unified-hierarchy.txt with a proper cgroup v2 documentation 2016-11-29 15:25:30 +08:00
cma
connector
console
cpu-freq cpufreq: interactive: allow arbitrary speed / delay mappings 2016-02-16 13:52:53 -08:00
cpuidle
cris
crypto
development-process
device-mapper CHROMIUM: dm: boot time specification of dm= 2016-08-18 18:56:03 +05:30
devicetree arm64: dts: rockchip: Add PX5 Evaluation board 2017-07-06 11:05:44 +08:00
dmaengine UPSTREAM: dmaengine: Add transfer termination synchronization support 2016-06-16 20:45:35 +08:00
DocBook UPSTREAM: drm: introduce pipe color correction properties 2017-07-07 19:09:13 +08:00
driver-model
dvb
early-userspace
EDID
extcon
fault-injection
fb
features arm64: add support for ioremap() block mappings 2016-05-11 22:19:26 +08:00
filesystems Merge branch 'linux-linaro-lsk-v4.4' into linux-linaro-lsk-v4.4-android 2016-09-20 15:18:54 +08:00
firmware_class
fmc
fpga
frv
gpio There is a nice new document from Neil on how pathname lookups work and 2015-11-05 15:59:24 -08:00
hid
hwmon rk: revert to v3.10 2015-11-11 15:57:28 +08:00
i2c i2c: i801: add Intel Lewisburg device IDs 2015-11-20 16:22:21 +01:00
ia64
ide
infiniband
input rk: revert to v3.10 2015-11-11 15:57:28 +08:00
ioctl char/misc drivers for 4.4-rc1 2015-11-04 22:15:15 -08:00
isdn
ja_JP rk: revert to v3.10 2015-11-11 15:57:28 +08:00
kbuild
kdump
ko_KR
laptops
leds
locking
m68k
memory-devices
metag
mic samples: move mic/mpssd example code from Documentation 2017-03-12 06:37:23 +01:00
mips
misc-devices
mmc
mn10300
mtd
namespaces
netlabel
networking net: ipv6: Add sysctl for minimum prefix len acceptable in RIOs. 2017-04-10 13:12:16 +05:30
nfc
nios2
nvdimm libnvdimm: documentation clarifications 2015-11-12 09:55:23 -08:00
nvmem
parisc rk: revert to v3.10 2015-11-11 15:57:28 +08:00
PCI
pcmcia
phy
platform
power rk: temp revert rk change 2015-11-11 15:54:30 +08:00
powerpc
pps
prctl
pti
ptp
rapidio
RCU
s390
scheduler sched/tune: add detailed documentation 2016-09-14 14:58:22 +05:30
scsi scsi: fix race between simultaneous decrements of ->host_failed 2016-07-27 09:47:39 -07:00
security
serial Fix OpenSSH pty regression on close 2016-06-01 12:15:52 -07:00
sh
sound rk: revert to v3.10 2015-11-11 15:57:28 +08:00
spi
sysctl Merge branch 'linux-linaro-lsk-v4.4' into linux-linaro-lsk-v4.4-android 2017-05-04 12:01:39 +08:00
target
thermal rk: revert to v3.10 2015-11-11 15:57:28 +08:00
timers
tpm
trace UPSTREAM: trace: Update documentation for mono, mono_raw and boot clock 2016-12-01 15:18:44 +05:30
usb usb: core: lpm: fix usb3_hardware_lpm sysfs node 2016-01-31 11:28:58 -08:00
vDSO
video4linux rk: revert to v3.10 2015-11-11 15:57:28 +08:00
virtual KVM: PPC: Book3S HV: Save/restore XER in checkpointed register state 2017-01-09 08:07:49 +01:00
vm mm: make compound_head() robust 2015-11-06 17:50:42 -08:00
w1
watchdog
wimax
x86 Revert "x86/mm: Expand the exception table logic to allow new handling options" 2016-10-31 19:56:26 -06:00
xtensa
zh_CN rk: revert to v3.10 2015-11-11 15:57:28 +08:00
00-INDEX
adding-syscalls.txt
android.txt pstore: Update Documentation/android.txt 2016-02-16 13:54:10 -08:00
applying-patches.txt
assoc_array.txt
atomic_ops.txt
bad_memory.txt
basic_profiling.txt
bcache.txt
binfmt_misc.txt
braille-console.txt
bt8xxgpio.txt
btmrvl.txt
BUG-HUNTING
bus-virt-phys-mapping.txt
cachetlb.txt
cgroup.txt cgroup: replace unified-hierarchy.txt with a proper cgroup v2 documentation 2016-11-29 15:25:30 +08:00
Changes There is a nice new document from Neil on how pathname lookups work and 2015-11-05 15:59:24 -08:00
circular-buffers.txt
clk.txt rk: temp revert rk change 2015-11-11 15:54:30 +08:00
coccinelle.txt
CodeOfConflict
CodingStyle
cpu-hotplug.txt
cpu-load.txt
cputopology.txt
crc32.txt
dcdbas.txt
debugging-modules.txt
debugging-via-ohci1394.txt
dell_rbu.txt
devices.txt
digsig.txt
DMA-API-HOWTO.txt rk: revert to v3.10 2015-11-11 15:57:28 +08:00
DMA-API.txt rk: revert to v3.10 2015-11-11 15:57:28 +08:00
DMA-attributes.txt FROMLIST: common: DMA-mapping: add DMA_ATTR_ALLOC_SINGLE_PAGES attribute 2016-06-30 19:58:20 +08:00
dma-buf-sharing.txt UPSTREAM: dma-buf: Add ioctls to allow userspace to flush 2017-05-16 18:33:15 +08:00
DMA-ISA-LPC.txt
dontdiff Documentation: dontdiff: remove media from dontdiff 2015-11-11 10:08:07 -07:00
dynamic-debug-howto.txt
edac.txt
efi-stub.txt
eisa.txt
email-clients.txt A few more documentation patches that wandered in and have no reason to 2015-11-13 09:19:05 -08:00
flexible-arrays.txt
futex-requeue-pi.txt
gcov.txt rk: revert to v3.10 2015-11-11 15:57:28 +08:00
gdb-kernel-debugging.txt
highuid.txt
HOWTO
hsi.txt
hw_random.txt
hwspinlock.txt
init.txt
initrd.txt
intel_txt.txt
Intel-IOMMU.txt
io_ordering.txt
io-mapping.txt
iostats.txt
IPMI.txt ipmi watchdog : add panic_wdt_timeout parameter 2015-11-16 06:28:43 -06:00
IRQ-affinity.txt
IRQ-domain.txt
IRQ.txt
irqflags-tracing.txt
isapnp.txt
java.txt
kasan.txt mm, slub, kasan: enable user tracking by default with KASAN=y 2015-11-05 19:34:48 -08:00
kernel-doc-nano-HOWTO.txt
kernel-docs.txt
kernel-parameters.txt Merge branch 'linux-linaro-lsk-v4.4' into linux-linaro-lsk-v4.4-android 2017-02-27 12:00:54 +08:00
kernel-per-CPU-kthreads.txt
kmemcheck.txt
kmemleak.txt
kobject.txt
kprobes.txt
kref.txt
kselftest.txt
ldm.txt
local_ops.txt
lockup-watchdogs.txt kernel/watchdog.c: add sysctl knob hardlockup_panic 2015-11-05 19:34:48 -08:00
logo.gif
logo.txt
lzo.txt rk: revert to v3.10 2015-11-11 15:57:28 +08:00
magic-number.txt
mailbox.txt rk: revert to v3.10 2015-11-11 15:57:28 +08:00
Makefile samples: move mic/mpssd example code from Documentation 2017-03-12 06:37:23 +01:00
ManagementStyle
md-cluster.txt
md.txt
media-framework.txt
memory-barriers.txt
memory-hotplug.txt
men-chameleon-bus.txt
module-signing.txt Documentation/module-signing.txt: Note need for version info if reusing a key 2016-08-20 18:09:27 +02:00
mono.txt
nommu-mmap.txt
ntb.txt
numastat.txt
oops-tracing.txt
padata.txt
parport-lowlevel.txt
parport.txt
percpu-rw-semaphore.txt
phy.txt
pi-futex.txt
pie.txt
pinctrl.txt pinctrl: Flag strict is a field in struct pinmux_ops 2016-10-07 15:23:41 +02:00
pnp.txt
preempt-locking.txt
printk-formats.txt lib/vsprintf.c: update documentation 2015-11-06 17:50:42 -08:00
pwm.txt UPSTREAM: pwm: Update documentation 2017-03-06 18:28:40 +08:00
ramoops.txt FROMLIST: pstore-ram: add Device Tree bindings 2016-02-16 13:54:11 -08:00
rbtree.txt
remoteproc.txt
rfkill.txt
robust-futex-ABI.txt
robust-futexes.txt
rpmsg.txt
rtc.txt
SAK.txt
SecurityBugs
serial-console.txt
sgi-ioc4.txt
SM501.txt
smsc_ece1099.txt
sparse.txt
stable_api_nonsense.txt
stable_kernel_rules.txt rk: revert to v3.10 2015-11-11 15:57:28 +08:00
static-keys.txt
SubmitChecklist
SubmittingDrivers
SubmittingPatches A few more documentation patches that wandered in and have no reason to 2015-11-13 09:19:05 -08:00
svga.txt
sync.txt sync: add Documentation/sync.txt 2016-02-16 13:53:25 -08:00
sysfs-rules.txt
sysrq.txt
this_cpu_ops.txt
unaligned-memory-access.txt
unicode.txt
unshare.txt
vfio.txt
VGA-softcursor.txt
vgaarbiter.txt
video-output.txt
vme_api.txt
volatile-considered-harmful.txt
workqueue.txt
xillybus.txt
xz.txt
zorro.txt