Add support for using a single layer mixer to drive two video
or command mode interfaces. This configuration frees up one of
the layer mixer paths for other use cases/displays.
Change-Id: I3a0ca07e37f121bf56ea8984c0cca25af7bc647e
Signed-off-by: Clarence Ip <cip@codeaurora.org>
Fix stride corruption issue due to panel portswap observed when
some video layers cross panel split boundaries. Fix is to
initialize panel with the imgswap feature enabled, and then
modify the DSI CTRL horizontal tiling mapping to undo the swap.
Change-Id: I34ba42a0cb61d560629dc8e4c5a27fa5847f4e20
Signed-off-by: Lloyd Atkinson <latkinso@codeaurora.org>
This patch removes the previous limit of MAX_BLOCKS from the
number of recognized key entries, and cleans up the catalog
parsing logic to remove a number of arrays from the call stack.
Change-Id: I926367296960daaf82978b0c4ce53f67dcb36ed2
Signed-off-by: Clarence Ip <cip@codeaurora.org>
Update the way in which the virtual encoder requests the physical
encoder enables so that the master physical encoder is always
enabled last. This is done so that all of the slaves are fully
prepared when the master is enabled, and also allows the master
to update any necessary configuration during its enable callback.
Change-Id: Iff0d9cd08f8589889b50974fbc9819d96a15ab63
Signed-off-by: Clarence Ip <cip@codeaurora.org>
Need to take the control path out of any source split or other
configuration at the end of a use case to prepare for the next
client.
Change-Id: I9a2fb57dcafc576a23a13da1906a44e9992aeb74
Signed-off-by: Lloyd Atkinson <latkinso@codeaurora.org>
During device probe virtual crtcs are created with no hardware attached.
Color processing(cp) properties can be attached to the virtual crtc by
looking at the hardware catalog. If user-space client sets property cp
driver will check if hardware has been allocated for crtc. If there is
no hardware allocated it will return error for set property
Change-Id: I9662ebb51a4a9f79b6a1e8769f01391eaf06e313
Signed-off-by: Gopikrishnaiah Anandan <agopik@codeaurora.org>
The color processing blocks for SSPP and DSPP share the same register
programming sequences. This change moves the current DSPP and SSPP
functionality to a common location and uses the helper function for
common code.
Change-Id: I0f41453a977ba2d3b4ce12cc622706619c48280c
Signed-off-by: Benet Clark <benetc@codeaurora.org>
Add support for skin, sky, and foliage memory color hardware in
planes which have color processing hardwares.
Change-Id: I9ec72f44f36939cae90215bc668f3186d140e8b8
Signed-off-by: Benet Clark <benetc@codeaurora.org>
Add support for hue, saturation, intensity, and contrast adjustment
in planes that have color processing support.
Change-Id: I4c794deb7a5a1c0cc30cc0d64fbffd967eb1d399
Signed-off-by: Benet Clark <benetc@codeaurora.org>
Provide a basic implementation of msm_smmu_detach. Check
that smmu client_dev exists before doing
platform_device_unregister.
Change-Id: Ied1481003d878af452d3b00b950b234c6b7dd698
Signed-off-by: Lloyd Atkinson <latkinso@codeaurora.org>
Rework physical encoder kickoff counting logic to address issues
where an interrupt could be missed, or completion could get out
of sync due to a race condition between kickoff count and irq
enable. It also generalizes the kickoff count across the video
and command interfaces.
Change-Id: Id88f5b2859f74ee1aced8fbd7552e9023155d01c
Signed-off-by: Lloyd Atkinson <latkinso@codeaurora.org>
Start SDE clock rate at maximum value to be compatible with
generic clients who do not have capability to set per-use case
fine tuned clock values.
Change-Id: I7afaa9e7358fe750d45e86eebc40f47f18f486c8
Signed-off-by: Lloyd Atkinson <latkinso@codeaurora.org>
Fix the pipe scaler phase calculations to use the width and
height after decimation is taken into account. This fixes
issues where decimation is required to scale past what is
possible with scaler alone.
Change-Id: I813fae32625ae3e85489ad96540599efcf5a1a29
Signed-off-by: Lloyd Atkinson <latkinso@codeaurora.org>
Callbacks from the upper layer expect hardware initialization
logic to reside within the hw_init callback. Consolidate all hw
initialization to the hw_init callback and update the deinit and
destroy callbacks to match it.
Change-Id: I2ab32edae0e8586ddb4701b3d8c5cfde9e611cad
Signed-off-by: Clarence Ip <cip@codeaurora.org>
Modify the way that the waiting for previous kickoffs is handled
for the command encoder case. Instead of doing waiting in the
virtual encoder, do the waiting in the command encoder directly.
That way we can check whether we have missed the IRQ. Also
allows waiting for idle before disabling the encoder.
Change-Id: I6cdb9c961a0ffd8e9ea2aaf1ad9686757edd7142
Signed-off-by: Lloyd Atkinson <latkinso@codeaurora.org>
Make fixes to support probe deferral in msm_drv, display
manager, and sde_kms. Move initialization logic out of msm_drv
probe and into load call so it is paired with unload.
Change-Id: I9330d61de8f6188cb0e9769d569d5cff841cb159
Signed-off-by: Lloyd Atkinson <latkinso@codeaurora.org>
Fix iounmap usage to properly use devm_iounmap. Fix clearing of
pointers in failure callflows of sde_kms init.
Change-Id: Ib42134ee972c578070ac513c3e4da37faec7d0cd
Signed-off-by: Lloyd Atkinson <latkinso@codeaurora.org>
Improve sde kms error detection and handling during
initialization.
Make naming of functions consistent within sde_kms file.
Change-Id: Ia8946752e7d89d811a46cd4725b2e43e02b9fd39
Signed-off-by: Lloyd Atkinson <latkinso@codeaurora.org>
Fix previous merge conflict that disabled the pingpong done irq
on vblank off instead of the pingpong read pointer as intended.
Change-Id: I707437b54f2878d0da7b0d3b5618fdafa0ff38d5
Signed-off-by: Lloyd Atkinson <latkinso@codeaurora.org>
Maximum value of zpos should be maxblendstages-1 and not max
blend stages.
Change-Id: I0d991dea29c77cff672f5fd5564e750cafd18e60
Signed-off-by: Clarence Ip <cip@codeaurora.org>
The maximum number of properties that can be created for a DRM
object needs to be increased.
Change-Id: Ic0f6d9ec73a6071dbb397b924a4389a9afb81bdc
Signed-off-by: Benet Clark <benetc@codeaurora.org>
Add facility to trigger a dump of logs, and optionally trigger
a panic. To be used on detection of unrecoverable error detected
from within the SDE driver.
Change-Id: If1b48b1dcba21d9747cf85a5de027d694ae4a645
Signed-off-by: Lloyd Atkinson <latkinso@codeaurora.org>
Upgrade event log facility with xlog feature set which supports
variable arguments and other features required. evtlog now
registers debugfs at /sys/kernel/debug/dri/0/evtlog. It can be
enabled by echo 1 into the enable node, and dumped using the
dump node. Move evtlog support into sde layer since only sde
uses it.
Change-Id: I51f8577a0e626ab53601e07a16cefe8da90125e1
Signed-off-by: Lloyd Atkinson <latkinso@codeaurora.org>
This change adds a debugfs node to enable the misr
crc generation in batch mode. Once this is enabled,
driver will collect the crc numbers during each of
the interfaces interrupt.
To enable/disable the crc generation, respectively:
echo 1 16 > /d/dri0/encoder18/misr_data
echo 0 16 > /d/dri0/encoder18/misr_data
Inputs here represents enable and number of frame in batch.
Maximum batch size supported is 16.
To collect the crc data generated:
cat /d/dri0/encoder18/misr_data
Change-Id: I0a431b1ceff0425bec10d8739ad07a7b706b5f57
Signed-off-by: Jayant Shekhar <jshekhar@codeaurora.org>
This change adds the capability for parsing a device tree subnode
of the SDE. For example, the DSPP's will be enumerated in the SDE
top-level DTSI node. The hardware blocks inside the DSPP will be
enumerated in a subnode in the DTSI.
Change-Id: If0cf37fac2388ab385b0bf416f40436e12d9395b
Signed-off-by: Benet Clark <benetc@codeaurora.org>
This change creates separate threads for commit on each
display, so that one display commit is not blocked on
other display's commit. Hence improving performance in
multi display use cases.
Change-Id: Ibd0dae1da53ec3a72de8b96c3c03ce51830cb4f9
Signed-off-by: Sandeep Panda <spanda@codeaurora.org>
Add backlight class support for sde drm driver which provides
sysfs interface to userspace to control display brightness.
Change-Id: I4f777618e8f2ff61e72beddb7a5bd1fa6e9dd5df
Signed-off-by: Vishnuvardhan Prodduturi <vproddut@codeaurora.org>
Create common debug folder to collect sde debug information.
Change-Id: I899ee56a0e97c33c622c46977232ddf70938fba8
Signed-off-by: Alan Kwong <akwong@codeaurora.org>
DRM and other components are using trace log for event capture.
In order to correlate events between DRM and SDE, route evtlog
capture to trace log for combined tracing.
Change-Id: I910111c4b79953edb2dbc4548bceff8d4d56728a
Signed-off-by: Alan Kwong <akwong@codeaurora.org>
Add systrace compatible trace macro to log begin/end
and counter events. This is useful for correlating
user mode and kernel events.
Change-Id: I6c5108fb8ddacc36b51ba2541d32541dd28856e2
Signed-off-by: Alan Kwong <akwong@codeaurora.org>
Currently, plane/encoder/crtc function prototypes reside in the
kms header. To improve code separation and reduce overlap changes,
separate plane/encoder/crtc functions from kms header into their
corresponding headers.
Change-Id: Id3a7098ada887538ac0635f381c553a516237e7a
Signed-off-by: Alan Kwong <akwong@codeaurora.org>
Source pipe color space conversion block is used to convert YUV to RGB.
Patch adds logic to apply default 10-bit or 8-bit limited Rec601
matrix when user space doesn`t specify csc matrix. 10 or 8 bit matrix
is applied based on hw capabilities.
Change-Id: Iac805e1474223cd2840d2d928b5c71f5d47ce014
Signed-off-by: abeykun <abeykun@codeaurora.org>