Updated blob layout (Rob, Daniel, Kristian, xerpi)
v2:
* Removed __packed, and alignment (.+)
* Fix indent in drm_format_modifier fields (Liviu)
* Remove duplicated modifier > 64 check (Liviu)
* Change comment about modifier (Liviu)
* Remove arguments to blob creation, use plane instead (Liviu)
* Fix data types (Ben)
* Make the blob part of uapi (Daniel)
v3:
Remove unused ret field.
Change i, and j to unsigned int (Emil)
v4:
Use plane->modifier_count instead of recounting (Daniel)
v5:
Rename modifiers to modifiers_property (Ville)
Use sizeof(__u32) instead to reflect UAPI nature (Ville)
Make BUILD_BUG_ON for blob header size
Change-Id: Ibb2490b0510cbae9b5f4252483f8b1531fddf73f
Cc: Rob Clark <robdclark@gmail.com>
Cc: Kristian H. Kristensen <hoegsberg@gmail.com>
Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
Reviewed-by: Daniel Stone <daniels@collabora.com> (v2)
Reviewed-by: Liviu Dudau <liviu@dudau.co.uk> (v2)
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com> (v3)
Signed-off-by: Daniel Stone <daniels@collabora.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20170724034641.13369-2-ben@bwidawsk.net
This is the plumbing for supporting fb modifiers on planes. Modifiers
have already been introduced to some extent, but this series will extend
this to allow querying modifiers per plane. Based on this, the client to
enable optimal modifications for framebuffers.
This patch simply allows the DRM drivers to initialize their list of
supported modifiers upon initializing the plane.
v2: A minor addition from Daniel
v3:
* Updated commit message
* s/INVALID/DRM_FORMAT_MOD_INVALID (Liviu)
* Remove some excess newlines (Liviu)
* Update comment for > 64 modifiers (Liviu)
v4: Minor comment adjustments (Liviu)
v5: Some new platforms added due to rebase
v6: Add some missed plane inits (or maybe they're new - who knows at
this point) (Daniel)
Change-Id: I717e6240f729902af34c1419140bbf0b8c0a421d
Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
Reviewed-by: Daniel Stone <daniels@collabora.com> (v2)
Reviewed-by: Liviu Dudau <Liviu.Dudau@arm.com>
Signed-off-by: Daniel Stone <daniels@collabora.com>
It has been suggested that having per-plane modifiers is making life
more difficult for userspace, so let's just retire modifier[1-3] and
use modifier[0] to apply to the entire framebuffer.
Obviosuly this means that if individual planes need different tiling
layouts and whatnot we will need a new modifier for each combination
of planes with different tiling layouts.
For a bit of extra backwards compatilbilty the kernel will allow
non-zero modifier[1+] but it require that they will match modifier[0].
This in case there's existing userspace out there that sets
modifier[1+] to something non-zero with planar formats.
Mostly a cocci job, with a bit of manual stuff mixed in.
@@
struct drm_framebuffer *fb;
expression E;
@@
- fb->modifier[E]
+ fb->modifier
@@
struct drm_framebuffer fb;
expression E;
@@
- fb.modifier[E]
+ fb.modifier
Change-Id: Iebf536e81ea538e157d57eebed1ae3f9b3d912ce
Cc: Kristian Høgsberg <hoegsberg@gmail.com>
Cc: Ben Widawsky <benjamin.widawsky@intel.com>
Cc: Rob Clark <robdclark@gmail.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Tomeu Vizoso <tomeu@tomeuvizoso.net>
Cc: dczaplejewicz@collabora.co.uk
Suggested-by: Kristian Høgsberg <hoegsberg@gmail.com>
Acked-by: Ben Widawsky <ben@bwidawsk.net>
Acked-by: Daniel Stone <daniels@collabora.com>
Acked-by: Rob Clark <robdclark@gmail.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/1479295996-26246-1-git-send-email-ville.syrjala@linux.intel.com
And shuffle the kernel-doc structure a bit since drm_crtc.[hc] now
only contains CRTC-related functions and structures.
v2:
- rebase onto drm-misc
- don't forget to move drm_mode_config_cleanup.
- move 2 internal decls under the right heading (Chris)
Change-Id: Ia84e8ea0df4be681c2e6a7856e11ec4bf7edfcdb
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Signed-off-by: sky zhou <sky.zhou@amlogic.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
The format helpers have historically treated unsupported formats as part
of the default case, returning values that are likely wrong. We can't
change this behaviour now without risking breaking drivers in difficult
to detect ways, but we can WARN on unsupported formats to catch faulty
callers.
The only exception is the framebuffer_check() function that calls
drm_format_info() to validate the format passed from userspace. This is
a valid use case that shouldn't generate a warning.
Change-Id: I57ea2b59765006e9f160f0e85e77f019ab6b977a
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Signed-off-by: Archit Taneja <architt@codeaurora.org>
Link: http://patchwork.freedesktop.org/patch/msgid/1476744081-24485-5-git-send-email-laurent.pinchart@ideasonboard.com
PD#170175: drm: Centralize format information
Various pieces of information about DRM formats (number of planes, color
depth, chroma subsampling, ...) are scattered across different helper
functions in the DRM core. Callers of those functions often need to
access more than a single parameter of the format, leading to
inefficiencies due to multiple lookups.
Centralize all format information in a data structure and create a
function to look up information based on the format 4CC.
Change-Id: I25dc415450c89e5eb69726b3dda521c5800c4d68
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
Signed-off-by: Archit Taneja <architt@codeaurora.org>
Link: http://patchwork.freedesktop.org/patch/msgid/1476744081-24485-2-git-send-email-laurent.pinchart@ideasonboard.com
PD#159499: hdmirx: set rxsense sync with hpd for every port
Change-Id: Ief053dc7772b12516153ef733d057a6b9a02aca2
Signed-off-by: Hang Cheng <hang.cheng@amlogic.com>
PD#171500
WQ_WATCHDOG amd DETECT_HUNG_TASK are debug options to detect task/workqueue are
blocked for a long time. Sometimes, error messages are misreported.
Change-Id: Ia898429359b2ff4c656b8b9b009c4a7fa1888931
Signed-off-by: Jianxin <jianxin.pan@amlogic.com>
PD#146811
':' and extral message folling PD#xxxx is not a must in line three
Change-Id: Ibe115f6a64bc267730020aaa52f8b21adb2f66a5
Signed-off-by: Jianxin <jianxin.pan@amlogic.com>
PD#169652: add CONFIG_ARM64_A32 and CONFIG_COMPAT
add CONFIG_ARM64_A32 support and add missing
CONFIG_COMPAT
Change-Id: Id041292cccd39618ba9932d123a219f0583fd4c5
Signed-off-by: Ao Xu <ao.xu@amlogic.com>
PD#171618: update dts name g12a_s905d2_u220 to g12a_s905y2_u220
Rename the dts name for u220.[2/2]
Change-Id: I3a9dde9210772bb50f26b68a884d7bdc6346752c
Signed-off-by: Tong Li <tong.li@amlogic.com>
PD#170723: cec: support otp and enter source
1.get wakeup reason from stick register
2.add get wakeup reason from wakeup
Change-Id: Idb0e56980569d3092fde971c0dcb73a4684bff0b
Signed-off-by: Yong Qin <yong.qin@amlogic.com>
PD#171408: cec: auto power down function fail
1.reason: set auto pw down, disabled cec function
Change-Id: I554b085345bc144e6ff4166aae8c2d9d6620c524
Signed-off-by: Yong Qin <yong.qin@amlogic.com>
PD#168362: P211: emmc: upgrade gpt or ept based on priority
Change-Id: I0e7ea483ac5fc0a59ee24ae21d2e40e1c5d32465
Signed-off-by: Ruixuan Li <ruixuan.li@amlogic.com>
PD#171440: di: add mif enable after reset for g12
Change-Id: I61e3b7e96b88b8875d7de4948fa627c4882ab810
Signed-off-by: frank zhao <frank.zhao@amlogic.com>
PD#170791: by default, it is SCHED_NORMAL.
1a7a93bd33%5E!/
AOSP suggested to use SCHED_FIFO , 2, in Qcom platform.
there are another 2 sleeping point for osd_toggle_buffer.
need to adjust it still.
Change-Id: Ic94a4e1cfee218fc95b53358d2c2e72bbde7bfdd
Signed-off-by: Jiyu Yang <Jiyu.Yang@amlogic.com>
PD#169652: board: use do_div for divid operation
when dividend is 64bit number, divid operation should
use do_div, otherwise link stage will fail for 32bit
system.
Change-Id: Iff2fdc328e364cec6486ab64e2e0f630ccb8534d
Signed-off-by: Ao Xu <ao.xu@amlogic.com>
PD#171081: backlight: add step power on support
default disable with bl_step_on_flag = 0.
change bl_step_on_flag to 1 to enable step_on function:
echo 1 >/sys/class/aml_bl/step_on
the brightness will be level_default first,
then come to the system brightness value.
Change-Id: I47ae56c0f814b2e0e5989b71f151ed84ffee795b
Signed-off-by: Evoke Zhang <evoke.zhang@amlogic.com>
Commit 8844618d8a: "ext4: only look at the bg_flags field if it is
valid" will complain if block group zero does not have the
EXT4_BG_INODE_ZEROED flag set. Unfortunately, this is not correct,
since a freshly created file system has this flag cleared. It gets
almost immediately after the file system is mounted read-write --- but
the following somewhat unlikely sequence will end up triggering a
false positive report of a corrupted file system:
mkfs.ext4 /dev/vdc
mount -o ro /dev/vdc /vdc
mount -o remount,rw /dev/vdc
Instead, when initializing the inode table for block group zero, test
to make sure that itable_unused count is not too large, since that is
the case that will result in some or all of the reserved inodes
getting cleared.
This fixes the failures reported by Eric Whiteney when running
generic/230 and generic/231 in the the nojournal test case.
Change-Id: I3967036c1d84cc69798b7c948420735c623c9ae8
Fixes: 8844618d8a ("ext4: only look at the bg_flags field if it is valid")
Reported-by: Eric Whitney <enwlinux@gmail.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
PD#169652: board: fix ioremap call fail issue
for arm 32, ioremap will check if page is mapped
Change-Id: Icb5dda1b9de06d32e47c82a6bc45b62873332487
Signed-off-by: Ao Xu <ao.xu@amlogic.com>
PD#169652: board: fix stack overflow issue
it is better to use kmalloc to alloc buffer
instead of in stack buffer.
Change-Id: I6825d8acff19248f2f6c789ed2218af42ca4ffd3
Signed-off-by: Ao Xu <ao.xu@amlogic.com>
PD#170794: cec: add port info for mix mode
1.add port info for output and input mix mode
2.port number= input number + output number
3.r321 dts add 1 output number for mix mode
Change-Id: I17692f5fb4526b4f95474f5ea36c11213034724f
Signed-off-by: Yong Qin <yong.qin@amlogic.com>
Up until recently sync_file were create to export a single dma-fence to
userspace, and so we could canabalise a bit insie dma-fence to mark
whether or not we had enable polling for the sync_file itself. However,
with the advent of syncobj, we do allow userspace to create multiple
sync_files for a single dma-fence. (Similarly, that the sw-sync
validation framework also started returning multiple sync-files wrapping
a single dma-fence for a syncpt also triggering the problem.)
This patch reverts my suggestion in commit e241655373
("dma-buf/sync_file: only enable fence signalling on poll()") to use a
single bit in the shared dma-fence and restores the sync_file->flags for
tracking the bits individually.
Reported-by: Gustavo Padovan <gustavo.padovan@collabora.com>
Fixes: f1e8c67123 ("dma-buf/sw-sync: Use an rbtree to sort fences in the timeline")
Fixes: e9083420bb ("drm: introduce sync objects (v4)")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20170728212951.7818-1-chris@chris-wilson.co.uk
[astrachan: rediffed against changed context lines in 4.9]
Bug: 79383895
PD#170298 [1/3]
Change-Id: I70d1f19796c6cb33cd4c19e40276d7298aa4ba5d
Signed-off-by: Alistair Strachan <astrachan@google.com>
PD#170502: dts: update the gpio key node for atom and sei210
Change-Id: Ib92167c36c2a756a784494da5dbe73a13c63dff0
Signed-off-by: Yingyuan Zhu <yingyuan.zhu@amlogic.com>