Commit graph

1330 commits

Author SHA1 Message Date
abeykun
1f2fc9ec18 drm/msm/sde: move pixel format flags to bitmap
Patch changes type of pixel format flags from u32 to bitmap.

Change-Id: I117f3737d78d22b9bd6d78abdb8e96f52fc4e874
Signed-off-by: Alexander Beykun <abeykun@codeaurora.org>
2017-06-26 17:32:57 -07:00
abeykun
bedc84f4f8 drm/msm/sde: add tp10 compressed format support
Add MOD_QCOM_TIGHT modifier on top of DRM_FORMAT_NV12
base pixel format and update plane size calculation
to support compressed tp10 buffers.

Change-Id: I12eb9fecfd34d488eda92f6217b6ca51e466c6f6
Signed-off-by: Alexander Beykun <abeykun@codeaurora.org>
2017-06-26 17:31:54 -07:00
abeykun
be55dab201 drm/msm/sde: add p010 format support in sde
Add MOD_QCOM_DX modifier on top of DRM_FORMAT_NV12
base format and update plane size calculation to support
linear and compressed p010 buffers.

Change-Id: I93bd9557e5c4a4a038891f24730edbbec1dba262
Signed-off-by: Alexander Beykun <abeykun@codeaurora.org>
2017-06-26 17:29:59 -07:00
Srikanth Rajagopalan
1be46f2985 drm/msm: add sink capabilities for HDR support
Populate HDR sink capabilities to a DRM blob.

These capabilities shall be used by the userspace
to calculate the sink HDR properties and setting them.

Change-Id: I7c2dbca375c456052ad73889b011553090bcf8f1
Signed-off-by: Srikanth Rajagopalan <rasrik@codeaurora.org>
2017-06-26 12:01:55 -07:00
Linux Build Service Account
e5b8aadd07 Merge "drm: msm: add support for a custom hotplug event" 2017-06-22 23:41:17 -07:00
Linux Build Service Account
c9b4dc7067 Merge "Merge branch 'android-4.4@e76c0fa' into branch 'msm-4.4'" 2017-06-22 23:41:14 -07:00
Linux Build Service Account
a21b8a6a89 Merge "drm/msm: add PLL_ENABLE property to support clock recovery" 2017-06-22 23:41:10 -07:00
Linux Build Service Account
8b2a2a4d4f Merge "drm/msm: gracefully handle NULL return from setup_pagetable()" 2017-06-22 23:40:58 -07:00
Tatenda Chipeperekwa
0aedc43f0b drm: msm: add support for a custom hotplug event
Add support for a custom hotplug event that is triggered when the
status of the connector has changed. The event string of the
custom event will be in the following format:
	"name=<connector name> status=<connector status>"
For example, when the DisplayPort connector has its status
updated to connected then the event string that is used as part
of the hotplug event will be as follows:
	"name=DP-1 status=connected"
If the connector name is not known or is invalid at the time that
the event is triggered then the name will be reported as "unknown".

Change-Id: I5d6164d1e8e651cb05527733d68fa86fefb9e6ce
Signed-off-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
2017-06-22 17:11:45 -07:00
Linux Build Service Account
9419a8a284 Merge "drm/msm: Move memptrs to msm_gpu and reorganize" 2017-06-22 14:00:12 -07:00
Ray Zhang
2178b8d80d drm/msm: add PLL_ENABLE property to support clock recovery
PLL_ENABLE property is used to enable or disable the PLL
update function. With this property PLL update function
only works when PLL_ENABLE is set, and all changes done
to hardware will be discarded once PLL_ENABLE is cleared.

CRs-Fixed: 2042852
Change-Id: Ia321918382b8622101cff566049284810833f63e
Signed-off-by: Ray Zhang <rayz@codeaurora.org>
2017-06-22 09:08:28 +08:00
Blagovest Kolenichev
e0a0b484bf Merge branch 'android-4.4@e76c0fa' into branch 'msm-4.4'
* refs/heads/tmp-e76c0fa
  Linux 4.4.72
  arm64: ensure extension of smp_store_release value
  arm64: armv8_deprecated: ensure extension of addr
  usercopy: Adjust tests to deal with SMAP/PAN
  RDMA/qib,hfi1: Fix MR reference count leak on write with immediate
  arm64: entry: improve data abort handling of tagged pointers
  arm64: hw_breakpoint: fix watchpoint matching for tagged pointers
  Make __xfs_xattr_put_listen preperly report errors.
  NFSv4: Don't perform cached access checks before we've OPENed the file
  NFS: Ensure we revalidate attributes before using execute_ok()
  mm: consider memblock reservations for deferred memory initialization sizing
  net: better skb->sender_cpu and skb->napi_id cohabitation
  serial: sh-sci: Fix panic when serial console and DMA are enabled
  tty: Drop krefs for interrupted tty lock
  drivers: char: mem: Fix wraparound check to allow mappings up to the end
  ASoC: Fix use-after-free at card unregistration
  ALSA: timer: Fix missing queue indices reset at SNDRV_TIMER_IOCTL_SELECT
  ALSA: timer: Fix race between read and ioctl
  drm/nouveau/tmr: fully separate alarm execution/pending lists
  drm/vmwgfx: Make sure backup_handle is always valid
  drm/vmwgfx: limit the number of mip levels in vmw_gb_surface_define_ioctl()
  drm/vmwgfx: Handle vmalloc() failure in vmw_local_fifo_reserve()
  perf/core: Drop kernel samples even though :u is specified
  powerpc/hotplug-mem: Fix missing endian conversion of aa_index
  powerpc/numa: Fix percpu allocations to be NUMA aware
  powerpc/eeh: Avoid use after free in eeh_handle_special_event()
  scsi: qla2xxx: don't disable a not previously enabled PCI device
  KVM: arm/arm64: Handle possible NULL stage2 pud when ageing pages
  btrfs: fix memory leak in update_space_info failure path
  btrfs: use correct types for page indices in btrfs_page_exists_in_range
  cxl: Fix error path on bad ioctl
  ufs_getfrag_block(): we only grab ->truncate_mutex on block creation path
  ufs_extend_tail(): fix the braino in calling conventions of ufs_new_fragments()
  ufs: set correct ->s_maxsize
  ufs: restore maintaining ->i_blocks
  fix ufs_isblockset()
  ufs: restore proper tail allocation
  fs: add i_blocksize()
  cpuset: consider dying css as offline
  Input: elantech - add Fujitsu Lifebook E546/E557 to force crc_enabled
  drm/msm: Expose our reservation object when exporting a dmabuf.
  target: Re-add check to reject control WRITEs with overflow data
  cpufreq: cpufreq_register_driver() should return -ENODEV if init fails
  stackprotector: Increase the per-task stack canary's random range from 32 bits to 64 bits on 64-bit platforms
  random: properly align get_random_int_hash
  drivers: char: random: add get_random_long()
  iio: proximity: as3935: fix AS3935_INT mask
  iio: light: ltr501 Fix interchanged als/ps register field
  staging/lustre/lov: remove set_fs() call from lov_getstripe()
  usb: chipidea: debug: check before accessing ci_role
  usb: chipidea: udc: fix NULL pointer dereference if udc_start failed
  usb: gadget: f_mass_storage: Serialize wake and sleep execution
  ext4: fix fdatasync(2) after extent manipulation operations
  ext4: keep existing extra fields when inode expands
  ext4: fix SEEK_HOLE
  xen-netfront: cast grant table reference first to type int
  xen-netfront: do not cast grant table reference to signed short
  xen/privcmd: Support correctly 64KB page granularity when mapping memory
  dmaengine: ep93xx: Always start from BASE0
  dmaengine: usb-dmac: Fix DMAOR AE bit definition
  KVM: async_pf: avoid async pf injection when in guest mode
  arm: KVM: Allow unaligned accesses at HYP
  KVM: cpuid: Fix read/write out-of-bounds vulnerability in cpuid emulation
  kvm: async_pf: fix rcu_irq_enter() with irqs enabled
  nfsd: Fix up the "supattr_exclcreat" attributes
  nfsd4: fix null dereference on replay
  drm/amdgpu/ci: disable mclk switching for high refresh rates (v2)
  crypto: gcm - wait for crypto op not signal safe
  KEYS: fix freeing uninitialized memory in key_update()
  KEYS: fix dereferencing NULL payload with nonzero length
  ptrace: Properly initialize ptracer_cred on fork
  serial: ifx6x60: fix use-after-free on module unload
  arch/sparc: support NR_CPUS = 4096
  sparc64: delete old wrap code
  sparc64: new context wrap
  sparc64: add per-cpu mm of secondary contexts
  sparc64: redefine first version
  sparc64: combine activate_mm and switch_mm
  sparc64: reset mm cpumask after wrap
  sparc: Machine description indices can vary
  sparc64: mm: fix copy_tsb to correctly copy huge page TSBs
  net: bridge: start hello timer only if device is up
  net: ethoc: enable NAPI before poll may be scheduled
  net: ping: do not abuse udp_poll()
  ipv6: Fix leak in ipv6_gso_segment().
  vxlan: fix use-after-free on deletion
  tcp: disallow cwnd undo when switching congestion control
  cxgb4: avoid enabling napi twice to the same queue
  ipv6: xfrm: Handle errors reported by xfrm6_find_1stfragopt()
  bnx2x: Fix Multi-Cos
  ANDROID: uid_sys_stats: check previous uid_entry before call find_or_register_uid
  ANDROID: sdcardfs: d_splice_alias can return error values

Change-Id: I829ebf1a9271dcf0462c537e7bfcbcfde322f336
Signed-off-by: Blagovest Kolenichev <bkolenichev@codeaurora.org>
2017-06-20 14:55:15 -07:00
Linux Build Service Account
5f0a789229 Merge "drm/msm: use 13-bit mask for h_total and v_total" 2017-06-20 03:20:31 -07:00
Linux Build Service Account
d00b4e6e09 Merge "drm/msm: start secure domain va from non-zero address" 2017-06-20 03:20:30 -07:00
Linux Build Service Account
296e2f3d7e Merge "drm/msm: Remove superfluous hang check message" 2017-06-20 03:20:28 -07:00
Linux Build Service Account
c9e6118965 Merge "drm/msm: Add a submit queue flag to disable the QoS timer" 2017-06-20 03:20:27 -07:00
Linux Build Service Account
73a0e7ea49 Merge "drm/msm: Add submit queue queries" 2017-06-20 03:20:26 -07:00
Ray Zhang
49e5049a72 drm/msm: use 13-bit mask for h_total and v_total
HDMI TX controller can output 13-bit h_total and v_total
compare to 12-bit width of previous generation chipsets.
So use 13-bit mask for these HSYNC and VSYNC settings.

CRs-Fixed: 2052655
Change-Id: I2421a4e0a7646d10ba9e8f427807daa6a1bc1a21
Signed-off-by: Ray Zhang <rayz@codeaurora.org>
2017-06-20 08:57:51 +08:00
Linux Build Service Account
0045ec6f11 Merge "drm/msm : add hdcp debugfs nodes for DRM HDMI driver" 2017-06-19 16:42:05 -07:00
Jordan Crouse
180cb9a578 drm/msm: Move memptrs to msm_gpu and reorganize
Since most of the heavy lifting for managing submits lives in the
msm_gpu domain it makes sense to move the memptrs so that they are
globally visible and we can use them without relying on function
pointers.

Additionally, instead of having a single struct full of per-ring
arrays, reorganize the structure and assign a sub-allocation
to each ring. This simplifies all of the various macros and other
bits and allows us to make the size of the allocation dependent
on the acutal number of rings for the implementation.

Change-Id: Ic0dedbadc18ba1dc786c82b082c5030e13ff8012
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
2017-06-19 15:50:34 -06:00
Jordan Crouse
ae2cb03114 drm/msm: Attach the MMUs as soon as they are allocated
Currently the normal and secure MMUs are allocated when the
address space is created in msm_gpu_init() but not attached
until the end of adreno_gpu_init(). Since we can't map buffer
objects in the IOMMU without attaching it first this restricts
when we can allocate buffer objects in the sequence.

For arm-smmu based targets there isn't any reason why we can't
immediately attach the MMU after creating the address space -
this makes the whole system immediately available to map memory
and will facilitate moving around global allocations.

Change-Id: Ic0dedbad161396e9d095f3f3d1e4fca2d240a084
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
2017-06-19 15:50:33 -06:00
Jordan Crouse
1db3fbd43a drm/msm: Add a helper function for in-kernel buffer allocations
Nearly all of the buffer allocations for kernel allocate an buffer object,
virtual address and GPU iova at the same time. Make a helper function to
handle the details.

Change-Id: Ic0dedbad0ecd85d360895cc0d1e418277ba44c62
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
2017-06-19 15:50:33 -06:00
Jordan Crouse
53530e1644 drm/msm: Simplify ringbuffer cleanup
Cleanup and consolidate sanity checking on the ringbuffer
cleanup code.

Change-Id: Ic0dedbad551d36ca8ed3db56a4366a5008768791
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
2017-06-19 15:50:32 -06:00
Jordan Crouse
d8505d8307 drm/msm: Remove superfluous hang check message
There are plenty of log messages when a hang check and/or fault
occurs there isn't any need to add one more - recovery is
pretty much a given at this point.

Change-Id: Ic0dedbad392807591b726eb9d09af3ad29d7bc30
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
2017-06-19 15:50:31 -06:00
Jordan Crouse
b25ea02d22 drm/msm: Add a submit queue flag to disable the QoS timer
Allow priviliged (CAP_SYS_ADMIN) processes to disable the
hangcheck / quality of service timer to allow individual
submits to run for as long as they need.

Change-Id: Ic0dedbad1399ebe7c6db74ba374bfa3a6f72917a
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
2017-06-19 15:50:30 -06:00
Jordan Crouse
b674857b83 drm/msm: Add submit queue queries
Add the capability to query information from a submit queue.
The first available parameter is to query the number of GPU
faults that have been caused by the queue. The driver can
periodically query this value to see if it has caused a fault
and take action accordingly.

Change-Id: Ic0dedbadc68d5782c0b8b71d89722742aa6aaf1a
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
2017-06-19 15:50:26 -06:00
Linux Build Service Account
edac345d02 Merge "drm: msm: Enable asynchronous driver probing" 2017-06-19 00:27:04 -07:00
Linux Build Service Account
ea8783eb74 Merge "drm/msm : add utility function to dump HDMI registers" 2017-06-19 00:27:04 -07:00
Linux Build Service Account
126a5ffa55 Merge "drivers/misc: move hdcp sysfs nodes to misc hdcp driver" 2017-06-18 09:47:21 -07:00
Linux Build Service Account
03a11129eb Merge "drm/msm: add HDCP 2.2 module for DRM HDMI" 2017-06-18 09:47:20 -07:00
Abhijit Kulkarni
da010dffc2 drm/msm: start secure domain va from non-zero address
Zero address is considered invalid address, hence changing
the secure domain mapping space to start from a
non-zero address

CRs-Fixed: 2053654
Change-Id: I27300845fb3839372bc38be1d322a7ad0cd0472d
Signed-off-by: Abhijit Kulkarni <kabhijit@codeaurora.org>
2017-06-17 07:35:51 -07:00
Abhinav Kumar
75f79d6787 drm/msm : add hdcp debugfs nodes for DRM HDMI driver
Add debugfs nodes to indicate source/sink
HDCP support and authentication state accurately
for DRM HDMI driver.

Change-Id: Ia947c97708c99f23b7b4f23bcad75529b155a42c
Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
2017-06-16 20:22:39 -07:00
Abhinav Kumar
76dbbea975 drm/msm : add utility function to dump HDMI registers
Add a utility function to dump HDMI core registers to
command line. This will facilitate debugging issues by
just calling this API wherever necessary.

Change-Id: I4a6727dca34edf4bb1c240adc7b93f50a7530b98
Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
2017-06-16 19:03:35 -07:00
Sharat Masetty
b0f487c506 drm/msm: gracefully handle NULL return from setup_pagetable()
There is a possibility that load_gpu() can fail to initialize and turn
on the GPU successfully due to system level issues such as a clock or a
regulator not turning on. In such a case setup_pagetable() returns a
NULL pointer which is not handled correctly in msm_open(). This leads to
a crash in INIT_LIST_HEAD() which tries to access a NULL pointer. This
patch properly handles the NULL return and initializes the list head
only if the gpu load was successful, also adds missing NULL checks to
places in the code where the msm_file_private structure was being accessed.

Change-Id: I6eb85227d928a82c3cf2553fd6645affdd986473
Signed-off-by: Sharat Masetty <smasetty@codeaurora.org>
2017-06-16 15:59:47 +05:30
Linux Build Service Account
16a6dc2a06 Merge "drm/msm: add HDCP 1x module for MSM DRM driver" 2017-06-15 22:59:09 -07:00
Abhinav Kumar
ffc2849b61 drivers/misc: move hdcp sysfs nodes to misc hdcp driver
Currently the sysfs nodes for receiving minimum
encryption level reside within the SDE HDMI driver.

Move the nodes to the misc hdcp driver so that they
are available for use for targets using DRM SDE driver.

Change-Id: I94daa981536e56930f7b15eb0ca7b895b9bc9c44
Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
2017-06-15 21:19:08 -07:00
Abhinav Kumar
be53b222b4 drm/msm: add HDCP 2.2 module for DRM HDMI
Add the HDCP 2.2 module for DRM HDMI.

Call the HDCP 2.2 APIs from the SDE HDMI driver and
also invoke the HDCP 2.2 ISR routine from the parent
ISR routine of the SDE HDMI driver.

Change-Id: Ib9a427e5712c827fa93b91fc3a416af61ea83745
Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
2017-06-15 21:18:54 -07:00
Abhinav Kumar
9342afef9f drm/msm : add HDCP 2.2 helper functions to HDMI utils
HDCP 2.2 needs additional helper functions for handling
DDC transactions and interface specific calculations.

Add the necessary utility APIs and also move the necessary
ones to the HDMI utils file for better maintenance.

Change-Id: I215f04991c6ff71ec3e1db7674024e85fbc922e8
Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
2017-06-15 21:18:35 -07:00
Abhinav Kumar
85e5cecb6f drm/msm: make sde hdcp 1x module use the new hdcp lib APIs
All sysfs nodes have been moved to the misc hdcp driver.
Make the sde hdcp 1x module interact with the misc hdcp
driver to keep the functionality of repeater topology
intact as its used by wi-fi display userspace module.

Change-Id: Iecf404330695369c17e4afeff864eb6d7b92e372
Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
2017-06-15 21:18:14 -07:00
Linux Build Service Account
085ef3652a Merge "drm/msm: add support for parsing hdmi/hdcp capabilities" 2017-06-15 16:10:57 -07:00
Linux Build Service Account
68717de447 Merge "drm/msm: Add per-instance submit queues" 2017-06-15 16:10:56 -07:00
Abhinav Kumar
02b2b76fb0 drm/msm: add HDCP 1x module for MSM DRM driver
This change adds the HDCP 1x module for MSM DRM
driver and also hooks it up with SDE HDMI driver.

Change-Id: Iaf53c398254f6838a1d3cae610e069c5dbe18138
Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
2017-06-15 02:23:38 -07:00
Abhinav Kumar
e4db249be7 drm/msm: add HDCP helper functions to DRM HDMI driver
Add useful helper functions to the DRM HDMI driver
to be used later when HDCP functionality gets added.

Also add and initialize necessary members to the
SDE HDMI controller to facilitate easier integration
of DRM HDCP module.

Change-Id: I699f6685327e674a871a404fe5cf3adebe823d46
Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
2017-06-15 00:18:29 -07:00
Abhinav Kumar
110b6748f9 drm/msm: clean up DDC handling for SDE HDMI driver
Separate out the DRM HDMI utility functions into a separate
module.

Make the DRM HDMI utility functions support self retry where
they shall try for an arbitrary number of times on failure
otherwise let the client call the API to retry the number of
times as warranted.

Add a SDE HDMI utility file which shall invoke the upstream
functions in a manner as required to maintain the functionality
of legacy drivers.

Change-Id: I64af3f997a16b2d9358ea867585aa12772d22599
Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
2017-06-14 23:39:39 -07:00
Abhinav Kumar
7c1f3156a7 drm/msm: add support for parsing hdmi/hdcp capabilities
Add support to parse the HDMI TX version and
HDCP support from the HDMI and QFPROM registers.

This information is used to decide which HDCP driver
module is to be initialized at boot time.

Change-Id: Ib598f3867f1cd2ef9adb7503c5907cbb1e4ba758
Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
2017-06-14 23:38:49 -07:00
Linux Build Service Account
d2c81e0602 Merge "msm: smmu: add re-route calling for specified iova when mapping" 2017-06-14 19:48:51 -07:00
Linux Build Service Account
cd4879ea0a Merge "drm/msm/sde: add support to select secure context bank" 2017-06-14 09:57:07 -07:00
Eric Anholt
ba9fe2e807 drm/msm: Expose our reservation object when exporting a dmabuf.
commit 43523eba79bda8f5b4c27f8ffe20ea078d20113a upstream.

Without this, polling on the dma-buf (and presumably other devices
synchronizing against our rendering) would return immediately, even
while the BO was busy.

Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Rob Clark <robdclark@gmail.com>
Cc: linux-arm-msm@vger.kernel.org
Cc: freedreno@lists.freedesktop.org
Reviewed-by: Rob Clark <robdclark@gmail.com>
Signed-off-by: Rob Clark <robdclark@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-06-14 13:16:23 +02:00
Guchun Chen
bdac1e68ba msm: smmu: add re-route calling for specified iova when mapping
When calling smmu mapping, if iova is specified directly by user, not
allocated dynamically in dma-mapping.c, smmu driver needs to provide
support for this. This is needed in early display case. In this scenario,
LK has set physical memory to display hardware for fetching, so if iova
is not explicitly specified in kernel, but instead dynamically produced
by "alloc_iova" in dma-mapping.c, display hardware has no chance to know
this new iova, then smmu fault will happen if enabling the iommu stage-1
translation.
To fix this smmu fault problem, add re-routing to the right path when
iova specified by user is not 0 in smmu map function.

Change-Id: I555fe7ae44464f25245d2d0a6740a2411a8624ba
Signed-off-by: Guchun Chen <guchunc@codeaurora.org>
2017-06-14 11:18:47 +08:00
Linux Build Service Account
f19eadaabe Merge "drm/msm: Use per-ring submit lists" 2017-06-13 16:29:03 -07:00