summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/msm (follow)
Commit message (Collapse)AuthorAge
...
* | | | | | Merge "drm/msm/sde: count null character for blob length"Linux Build Service Account2017-08-30
|\ \ \ \ \ \
| * | | | | | drm/msm/sde: count null character for blob lengthSachin Bhayare2017-08-21
| | |_|_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Return value of snprintf doesn't account for the terminating null character it appends to the end of every string. So this change adds one extra character length to the blob size to avoid over reading from the client end. Change-Id: I8919f0b01dcbcad9300c28e070e9b9ca64368db2 Signed-off-by: Narendra Muppalla <NarendraM@codeaurora.org> Signed-off-by: Sachin Bhayare <sachin.bhayare@codeaurora.org>
* | | | | | Merge "msm: sde: fix deadlock issue in concurrency test"Linux Build Service Account2017-08-30
|\ \ \ \ \ \ | |_|/ / / / |/| | | | |
| * | | | | msm: sde: fix deadlock issue in concurrency testGuchun Chen2017-08-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When enabling early display, disabling weston service and launching DRM_test, system looks to hang when DRM_test wants to open drm node. The hang is caused by mutex deadlock. So refine the code and remove the mutex lock to fix the problem. Change-Id: I91d0c4e4418afde38c98a6294e49491403cdfe74 Signed-off-by: Guchun Chen <guchunc@codeaurora.org> Signed-off-by: Yujun Zhang <yujunzhang@codeaurora.org>
* | | | | | Merge "drm/msm: add kconfig for enabling event log"Linux Build Service Account2017-08-29
|\ \ \ \ \ \
| * | | | | | drm/msm: add kconfig for enabling event logLloyd Atkinson2017-08-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add Kconfig entry for enabling the SDE event logm which enables event logging by default on boot. Change-Id: I8d6efac588b9f8c818d6385b8399660a8a47c6de Signed-off-by: Lloyd Atkinson <latkinso@codeaurora.org> Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
| * | | | | | drm/msm/sde: move sde irq printing out of drm_debug areaLloyd Atkinson2017-08-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Move the debug print in the sde core irq out of the general DRM DEBUG log area and into pr_debug directly to avoid flooding the DRM general logs. CRs-Fixed: 2005394 Change-Id: Ib9456bb49ed1d8c045f353b4a41f43575fc3fd03 Signed-off-by: Lloyd Atkinson <latkinso@codeaurora.org> Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
| * | | | | | drm/msm/sde: check for missed frame done after waitingLloyd Atkinson2017-08-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix disable callflow in sde encoder so that the physical encoder has a chance to wait for the frame done first, before the virtual encoder declares an error for a missed frame done event in the encoder disable case. Change-Id: Ifc6cad708ad98324eef31435e709ad763059abbf Signed-off-by: Lloyd Atkinson <latkinso@codeaurora.org> Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
| * | | | | | drm/msm/sde: wait for ctl reset before kickoff in video modeLloyd Atkinson2017-08-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Need to check for and wait for the unlikely event of a hardware initiated CTL reset in video mode. Need to wait for the reset to complete before initiating the next kickoff. If CTL reset fails to complete, initiate a panic. CRs-Fixed: 2005394 Change-Id: I27dfaf602a9c2ba2faacabe723a9593a39ed891e Signed-off-by: Lloyd Atkinson <latkinso@codeaurora.org> Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
| * | | | | | drm/msm/sde: check in video encoder irq if ctl was flushedLloyd Atkinson2017-08-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add logic in the SDE video encoder vblank irq handler to verify that the hardware actually flushed before decrementing the pending flush counter. This prevents incorrectly signaling that the buffer was flipped. Change-Id: Idd723f80a8a7f5f596654a784c3a76abe75c4f19 Signed-off-by: Lloyd Atkinson <latkinso@codeaurora.org> Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
| * | | | | | drm/msm/sde: add rectangle utility functions to sdeLloyd Atkinson2017-08-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add rectangle intersection and other utility functions to the sde kms utilities. Change-Id: I10a1f60480df10a93541990b3efa347264c6432f Signed-off-by: Lloyd Atkinson <latkinso@codeaurora.org> Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
| * | | | | | drm/msm/sde: enforce pipe priority restrictionsLloyd Atkinson2017-08-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Need to consider hardware pipe priority when validating an atomic commit. Hardware requires certain source pipes to be left-most compared to other source pipes when in source split configurations. CRs-Fixed: 2005394 Change-Id: I4a19fbe9f78db8e557720ef7973034fdbd2f8a58 Signed-off-by: Lloyd Atkinson <latkinso@codeaurora.org> Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
| * | | | | | drm/msm/sde: fix register debug range printingLloyd Atkinson2017-08-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add checks to sde debug facility to reject poorly formed register block ranges. Add names for dsc and vbif register blocks. Register the vbif hw block under the vbif base register. Fix the names of the printed register blocks to be 0 based as expected. Fix the DSC register length initialization. Sort register ranges before printing. Register mdp top block address before dumping the sde debug bus. Change-Id: I0179d59543de52537937abcc7d556f79569e9c55 Signed-off-by: Lloyd Atkinson <latkinso@codeaurora.org> Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
| * | | | | | drm/msm: fix issue dumping sde registersLloyd Atkinson2017-08-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Check register length before printing to avoid extraneous error print. Change va_args checks to avoid incorrect failure to parse all dump areas print. Change-Id: Icd057ed7aabb17d1211432a512ff80828f80f2c3 Signed-off-by: Lloyd Atkinson <latkinso@codeaurora.org> Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
| * | | | | | drm/msm/sde: add sde debug bus dump supportLloyd Atkinson2017-08-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add support for dumping the sde and vbif debug buses. Can be triggered via sysfs, or via the SDE_DBG_DUMP macros by providing "dbg_bus" or "vbif_dbg_bus" strings in the dump area list. Change-Id: I8b3261a7bdc0161e77729ed0d05bf90cf9214298 Signed-off-by: Lloyd Atkinson <latkinso@codeaurora.org> Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
| * | | | | | drm/msm: add register dumping facility to sde debugLloyd Atkinson2017-08-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Need the capability to dump the content of sde registers during panic and other scenarios. Add debugfs facility for triggering register dumping. Add registration of sde and vbif as base hardware blocks. Add the blocks within the sde as named register dumping ranges. CRs-Fixed: 2005394 Change-Id: I410c4e5270447d4d3a8364287fa61748ead5410f Signed-off-by: Lloyd Atkinson <latkinso@codeaurora.org> Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
| * | | | | | drm/msm/sde: populate block names and lengths in catalogLloyd Atkinson2017-08-26
| |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Need to read register block length from the DTSI and populate into the catalog to support register debug dumping. Also add a name string to each of the blocks for debug purposes. CRs-Fixed: 2005394 Change-Id: Ia2299a51d649942b9335bc023d098d9c4882f1de Signed-off-by: Lloyd Atkinson <latkinso@codeaurora.org> Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
* | | | | | drm/msm/sde: add connector support for power modesRay Zhang2017-08-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change enables a new LP property to specify panel specific low power modes. This is needed to differentiate between normal panel "on" and "on but low power" scenarios, something that is not available through the standard DRM DPMS property. The sde connector calculates a consolidated "power mode" setting between the DPMS and LP properties and provides a callback to the underlying display driver(s) whenever one of them is updated. CRs-Fixed: 2071893 Change-Id: If5c80ac9eefbf1f119bcae5513ae18c7be6f618d Signed-off-by: Clarence Ip <cip@codeaurora.org> Signed-off-by: Ray Zhang <rayz@codeaurora.org>
* | | | | | drm/msm/sde: toggle vblank using enable state in display threadRay Zhang2017-08-27
|/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add enabled flag to the CRTC to be able to track the enabled or disabled status in the display thread instead of the atomic state. The atomic state is swapped prior to the display thread dispatch. This is before the display thread executes the enable or disable operation, so the state is not properly reflected for a running VSYNC work item. Also, simplify the CRTC VBLANK function structure to use a single common function call to update the CRTC's VBLANK registration with the encoder to avoid extra refs and unrefs. CRs-Fixed: 2071893 Change-Id: I9b473becec15427b03b5ebf0333e10e4911dfd9b Signed-off-by: Lloyd Atkinson <latkinso@codeaurora.org> Signed-off-by: Ray Zhang <rayz@codeaurora.org>
* | | | | Merge "drm/msm: fix hdcp 1x module for repeater test cases"Linux Build Service Account2017-08-22
|\ \ \ \ \ | |/ / / / |/| | | |
| * | | | drm/msm: fix hdcp 1x module for repeater test casesAbhinav Kumar2017-08-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove the incorrect Ainfo transfer to the sink during the start of repeater test cases for the HDMI HDCP 1x module. This causes incorrect results from sinks which are repeaters. Fix the logic to disable software DDC before going into part3 of HDCP 1x authentication. Change-Id: Iddf1c5804162ecd3919a0d4fedc9102e3b1778ed Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
| * | | | drm/msm: clear deep color mode flags when updating modesAbhinav Kumar2017-08-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, deep color mode flags are not being cleared across connect-disconnect of HDMI cable. This leads to stale information being present on the next successful connection. Clear the stale deep color mode flags before updating the modes during a connection event. Change-Id: I90d494a67dfb1c3fd464f1e1ffb24592bd712702 Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
* | | | | Merge "drm/msm: Disable clocks when GPU is inactive"Linux Build Service Account2017-08-21
|\ \ \ \ \
| * | | | | drm/msm: Disable clocks when GPU is inactiveSharat Masetty2017-08-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch addresses an issue in the GPU init sequence where the clocks are turned on during the process but after the init is complete the clocks are not turned off. Due to this, the GPU clocks always have a refcount delta of 1 and never get disabled later even when explicitly requested. Change-Id: I40fa9a25cd86f5d39fbe6f6e3f83d6ab467d615f Signed-off-by: Sharat Masetty <smasetty@codeaurora.org>
| * | | | | drm/msm: Set memory retention flags on the GPU core clockSharat Masetty2017-08-18
| |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After enabling the GPU clocks, the GPU can pagefault when trying to access memory(example the ringbuffer). This patch addresses the pagefault issue by enabling the memory retention flags on the GPU core clock. Change-Id: Ibabecba77501d6a3b188b19c90c172de7d667c8c Signed-off-by: Sharat Masetty <smasetty@codeaurora.org>
* | | | | Merge "msm: sde: remove boot warning of drm AD properties"Linux Build Service Account2017-08-21
|\ \ \ \ \
| * | | | | msm: sde: remove boot warning of drm AD propertiesDaocai.yang2017-07-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | drm_property_create prints WARN_ON while passing parameter DRM_MODE_PROP_IMMUTABLE, so replace it with drm_property_create_range Change-Id: I48e02125f751c29c94bf9f734bff84352359c001 Signed-off-by: Daocai.yang <c_daocai@qti.qualcomm.com>
* | | | | | Merge "msm: sde: fix page freeing error when handing off early display"Linux Build Service Account2017-08-21
|\ \ \ \ \ \
| * | | | | | msm: sde: fix page freeing error when handing off early displayGuchun Chen2017-08-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Sometimes, after user space is up and starts the handoff for early animation/display, page freeing error happens like below. The error happens in a very small possibility, but will lead to device rebooting. Call trace: dump_backtrace+0x0/0x1b8 show_stack+0x14/0x1c dump_stack+0xa8/0xe0 bad_page+0xf0/0x118 free_pages_prepare+0x100/0x2cc free_hot_cold_page+0x38/0x1a0 __free_pages+0x34/0x48 _sde_splash_free_bootup_memory_to_system+0x78/0x9c sde_splash_clean_up_free_resource+0xbc/0x1f0 sde_crtc_complete_commit+0x114/0x14c sde_kms_complete_commit+0x50/0x98 complete_commit+0x684/0x6b0 _msm_drm_commit_work_cb+0x30/0x38 kthread_worker_fn+0xcc/0x170 kthread+0xf8/0x100 ret_from_fork+0x10/0x20 The issue is caused by race competition. In async commit mode, the first is, mutex lock should be involved to ensure the member of splash_info structure can be protected to read/write in multiple threads. And the second is, 2 DSI connectors are available in kernel, and the coming sequent commits may happen on one DSI or on two DSI respectively. Because DSI interfaces shares the same resource in LK, if the consecutive commits are for one DSI, DSI resources could not be released, as another DSI is still visiting and using these resources. So till confirming the commits for different DSIs have been done, it's safe to release DSI resource. Change-Id: Ie6386e3e58d5320cd4e2caab9a07b4e659eb8780 Signed-off-by: Guchun Chen <guchunc@codeaurora.org> Signed-off-by: Yujun Zhang <yujunzhang@codeaurora.org>
* | | | | | | drm/msm: Map buffers on demand on the submit pathSushmita Susheelendra2017-08-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Map and pin buffers on demand on the submission path. This ensures that we only map buffers whose iova are actually needed for submission as opposed to all buffers in the buffer list. For instance, the command buffers, and the reloc buffers for processing relocs. Also remove unused member valid from the struct msm_gem_submit. Change-Id: I644f44f202552d14762ffe1d1761b98ed5961020 Signed-off-by: Sushmita Susheelendra <ssusheel@codeaurora.org>
* | | | | | | drm/msm: Map command buffers to kernel only if requiredSushmita Susheelendra2017-08-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Map command buffers to the kernel address space only if relocs are specified for the submission. This reduces some overhead on the submission path. Change-Id: I32ca3c7fe2147c835a328e0c8937b45f2f3d59b9 Signed-off-by: Sushmita Susheelendra <ssusheel@codeaurora.org>
* | | | | | | drm/msm: Free all allocated resources in case hardware init failsDeepak Kumar2017-08-14
| |_|/ / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Turn off the GPU power and free all resources allocated during GPU init in case hardware init fails in adreno_gpu_load. This is required to make sure further tries to load the GPU again doesn't fail because of invalid GPU state. Change-Id: I1d0d68f62be751d76274975e098364131712ca38 Signed-off-by: Deepak Kumar <dkumar@codeaurora.org>
* | | | | | Merge "drm/msm: update HDMI AVI infoframe during HDR playback"Linux Build Service Account2017-08-11
|\ \ \ \ \ \
| * | | | | | drm/msm: update HDMI AVI infoframe during HDR playbackAbhinav Kumar2017-08-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add support to update the HDMI AVI infoframe to use BT2020 encoding during HDR video playback. This is required as per the spec to ensure that the AVI infoframe correctly indicates the content being shown. Also make sure to change and restore the YCC quantization bits in case of override. Change-Id: Iadacc2fac6252b5f5cbfcc39a122118f738d3113 Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
* | | | | | | Merge "drm/msm: update CSC matrix during HDR playback"Linux Build Service Account2017-08-11
|\| | | | | |
| * | | | | | drm/msm: update CSC matrix during HDR playbackAbhinav Kumar2017-08-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The CSC matrix used in the CDM block should be updated to BT2020 format from the default value during HDR video playback. Add support in the SDE driver to enable switching CSC matrix of CDM block to BT2020 during start of HDR playback and restore it at the stop of the playback to the default CSC. Change-Id: Ic589380188ddef8ada2c8bbc0ca945bb1f319c85 Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
| * | | | | | drn/msm/sde: add BT709, BT2020 CSC matrix definitionsAbhinav Kumar2017-08-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently only BT601 CSC matrix is available for use in the SDE driver. Add BT709, BT2020 CSC matrix definitions to SDE driver. These shall be used during different use-cases such as HDR video playback by switching the CSC matrix based on the use-case. Change-Id: I70a543193d08217cbdb6c4af739b3777dde4a25d Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
* | | | | | | Merge "drm/msm: change CSC matrix selection logic for CDM block"Linux Build Service Account2017-08-11
|\| | | | | |
| * | | | | | drm/msm: change CSC matrix selection logic for CDM blockAbhinav Kumar2017-08-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | CDM block is always using a limited quantization range matrix. This can be overridden to use a full range matrix if the sink supports override capability or the mode is a non-CEA mode. Adjust the matrix selection logic to accommodate these conditions. Change-Id: I708412a923fb0d47e798f35ebe14b4c2f1a72fc9 Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
* | | | | | | drm/msm: only set need cdm for INTF3Yuan Zhao2017-08-09
|/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Only HDMI INTF3 should need cdm block, other INTFs do not need cdm. Change-Id: Iff355dae456ed432efd84dff72ec85b83dbb93f2 Signed-off-by: Yuan Zhao <yzhao@codeaurora.org>
* | | | | | Merge "drm/msm: free the IRQ during GPU cleanup"Linux Build Service Account2017-08-08
|\ \ \ \ \ \
| * | | | | | drm/msm: free the IRQ during GPU cleanupDeepak Kumar2017-07-27
| | |/ / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Free the IRQ in msm_gpu_cleanup. This is required to avoid failures from devm_request_irq on subsequent retries to load the GPU in case the previous attempt failed somewhere after successful call to devm_request_irq. Change-Id: I90d98199a1d7867e3f7b51f8e2293fa28e4612fa Signed-off-by: Deepak Kumar <dkumar@codeaurora.org>
* | | | | | drm/msm: reset TMDS clock ratio bit when disabling scramblerAbhinav Kumar2017-08-07
| |/ / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, when scrambler is disabled the TMDS clock ratio bit is left untouched. Ideally the sink should reset this bit during hot plug OR no-signal cases. However, the HDMI spec requires this bit to be explicitly reset by the source. Add support to reset this bit during scrambler disable. Change-Id: I092f6cae84653940e2bdb9100df5e384084cf938 Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
* | | | | Merge "drm/msm: Fix race condition in the submit path"Linux Build Service Account2017-08-03
|\ \ \ \ \
| * | | | | drm/msm: Fix race condition in the submit pathSharat Masetty2017-08-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is a race condition issue between the IRQ context trying to trigger preemption and the user context trying to submit commands to the GPU. The check in a5xx_flush() API only updates the wptr if the GPU is not in preemption. In the cases where we move from PREEMPT_START to PREEMPT_NONE there is a small window where the preempt state is still in START but the CPU context switches to the user thread which is in the a5xx_flush() call to update the wptr, but fails to update the wptr to the GPU since the preempt state is not PREEMPT_NONE. This leads to a GPU stall. Introduce a new intermediate state PREEMPT_ABORT and change preempt_trigger() to use gpu's current ring instead of the ring retrieved from get_next_ring() while in this state. Change-Id: I333e9de19824bd373901bbc8afc829de04635017 CRs-Fixed: 2081164 Signed-off-by: Sharat Masetty <smasetty@codeaurora.org>
* | | | | | msm: sde: move early splash's node parsing code for msm8996 autoGuchun Chen2017-08-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change is to move specific node parsing code to other place for early splash feature on auto platform, not impacting kernel booting process of other platforms. Change-Id: I6deed1a75545c82ee777d9b4269f1420ab2eb07a Signed-off-by: Guchun Chen <guchunc@codeaurora.org>
* | | | | | Merge "msm: sde: release LK's pool when LK exits"Linux Build Service Account2017-07-31
|\ \ \ \ \ \
| * | | | | | msm: sde: release LK's pool when LK exitsGuchun Chen2017-07-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | LK's pool is reserved for running on its code stack. So once LK exits, the memory region it stays on should be released and reused by system. Change-Id: Iec5af69573eb633de48c931a052bd596f5ed3bda Signed-off-by: Guchun Chen <guchunc@codeaurora.org>
* | | | | | | Merge "msm: sde: add early display handoff feature"Linux Build Service Account2017-07-28
|\| | | | | |
| * | | | | | msm: sde: add early display handoff featureGuchun Chen2017-07-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When enabling animation/static splash in LK, drm/kms driver needs to involve handoff code to support smooth transition. In display driver's probe, it will do following items: 1. Check the status in LK for early splash. 2. Add data bus bandwidth voting in function sde_splash_init. 2. Handle SMMU mapping issue to avoid SMMU fault problem. 3. Bypass hardware reset to avoid glitch. And after user's space is up, when first commit's vblank comes, it will call functions to: 1. Tell LK to stop static/animation display and to exit. 2. Set early_domain_map_attr to 1 to enable stage 1 translation in iommu driver. 3. Check the property of commit.If it's for HDMI, release HDMI resource. If for DSI, release DSI resource. 4. Recycle the memory to be available to system. 5. Withdraw the bus bandwidth voting. Change-Id: If425f044e2c40301eed57375a33a26ec1970abd5 Signed-off-by: Guchun Chen <guchunc@codeaurora.org>