- 16 9月, 2020 1 次提交
-
-
由 Chandan Uddaraju 提交于
Add the needed displayPort files to enable DP driver on msm target. "dp_display" module is the main module that calls into other sub-modules. "dp_drm" file represents the interface between DRM framework and DP driver. Changes in v12: -- Add support of pm ops in display port driver -- Clear bpp depth bits before writing to MISC register -- Fix edid read Previous Change log: https://lkml.kernel.org/lkml/20200818051137.21478-3-tanmay@codeaurora.org/Signed-off-by: NChandan Uddaraju <chandanu@codeaurora.org> Signed-off-by: NVara Reddy <varar@codeaurora.org> Signed-off-by: NTanmay Shah <tanmay@codeaurora.org> Co-developed-by: NAbhinav Kumar <abhinavk@codeaurora.org> Signed-off-by: NAbhinav Kumar <abhinavk@codeaurora.org> Co-developed-by: NKuogee Hsieh <khsieh@codeaurora.org> Signed-off-by: NKuogee Hsieh <khsieh@codeaurora.org> Co-developed-by: NGuenter Roeck <groeck@chromium.org> Signed-off-by: NGuenter Roeck <groeck@chromium.org> Co-developed-by: NStephen Boyd <swboyd@chromium.org> Signed-off-by: NStephen Boyd <swboyd@chromium.org> Signed-off-by: NRob Clark <robdclark@chromium.org>
-
- 18 8月, 2020 1 次提交
-
-
由 Kalyan Thota 提交于
In TEST_ONLY commit, rm global_state will duplicate the object and request for new reservations, once they pass then the new state will be swapped with the old and will be available for the Atomic Commit. This patch fixes some of missing links in the resource reservation sequence mentioned above. 1) Creation of duplicate state in test_only commit (Rob) 2) Allocate and release the resources on every modeset. 3) Avoid allocation only when active is false. In a modeset operation, swap state happens well before disable. Hence clearing reservations in disable will cause failures in modeset enable. Allow reservations to be cleared/allocated before swap, such that only newly committed resources are pushed to HW. Changes in v1: - Move the rm release to atomic_check. - Ensure resource allocation and free happens when active is not changed i.e only when mode is changed.(Rob) Changes in v2: - Handle dpu_kms_get_global_state API failure as it may return EDEADLK (swboyd). Signed-off-by: NKalyan Thota <kalyan_t@codeaurora.org> Signed-off-by: NRob Clark <robdclark@chromium.org>
-
- 31 7月, 2020 3 次提交
-
-
由 Jonathan Marek 提交于
Update the UBWC registers to the right values for sm8150 and sm8250. This removes broken dpu_hw_reset_ubwc, which doesn't work because the "force blk offset to zero to access beginning of register region" hack is copied from downstream, where mapped region starts 0x1000 below what is used in the upstream driver. Also simplifies the overly complicated change that was introduced in e4f9bbe9 to work around dpu_hw_reset_ubwc being broken. Signed-off-by: NJonathan Marek <jonathan@marek.ca> Signed-off-by: NRob Clark <robdclark@chromium.org>
-
由 Rob Clark 提交于
If split-lm is used (for ex, on sdm845), we can have multiple ping- pongs, but only a single phys encoder. We need to configure dithering on each of them. Signed-off-by: NRob Clark <robdclark@chromium.org> Tested-by: NSteev Klimaszewski <steev@kali.org> Reviewed-by: NKalyan Thota <kalyan_t@codeaurora.org> Signed-off-by: NRob Clark <robdclark@chromium.org>
-
由 Kalyan Thota 提交于
This change enables dither block for primary interface in display. Enabled for 6bpc in the current version. Changes in v1: - Remove redundant error checks (Rob). Signed-off-by: NKalyan Thota <kalyan_t@codeaurora.org> Tested-by: NDouglas Anderson <dianders@chromium.org> Tested-by: NKristian H. Kristensen <hoegsberg@google.com> Signed-off-by: NRob Clark <robdclark@chromium.org>
-
- 12 6月, 2020 3 次提交
-
-
由 Krishna Manikandan 提交于
In the current implementation, mutex initialization for encoder mutex locks are done during encoder setup. This can lead to scenarios where the lock is used before it is initialized. Move mutex_init to dpu_encoder_init to avoid this. Signed-off-by: NKrishna Manikandan <mkrishn@codeaurora.org> Signed-off-by: NRob Clark <robdclark@chromium.org>
-
由 Chen Tao 提交于
Fix to return negative error code -ENOMEM with the use of ERR_PTR from dpu_encoder_init. Fixes: 25fdd593 ("drm/msm: Add SDM845 DPU support") Signed-off-by: NChen Tao <chentao107@huawei.com> Signed-off-by: NRob Clark <robdclark@chromium.org>
-
由 Kalyan Thota 提交于
Request for color processing blocks only if they are available in the display hw catalog and they are sufficient in number for the selection. Signed-off-by: NKalyan Thota <kalyan_t@codeaurora.org> Fixes: e47616df ("drm/msm/dpu: add support for color processing Tested-by: NJohn Stultz <john.stultz@linaro.org> Signed-off-by: NRob Clark <robdclark@chromium.org>
-
- 27 5月, 2020 1 次提交
-
-
由 Ville Syrjälä 提交于
The driver never sets mode->private_flags so copying it back and forth is entirely pointless. Stop doing it. Also drop private_flags from the tracepoint. Cc: Rob Clark <robdclark@gmail.com> Cc: Sean Paul <sean@poorly.run> Cc: linux-arm-msm@vger.kernel.org Cc: freedreno@lists.freedesktop.org Reviewed-by: NEmil Velikov <emil.velikov@collabora.com> Signed-off-by: NVille Syrjälä <ville.syrjala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20200428171940.19552-5-ville.syrjala@linux.intel.com
-
- 19 5月, 2020 1 次提交
-
-
由 Kalyan Thota 提交于
This change adds support to configure dspp blocks in the dpu driver. Macro description of the changes coming in this patch. 1) Add dspp definitions in the hw catalog. 2) Add capability to reserve dspp blocks in the display data path. 3) Attach the reserved block to the encoder. Signed-off-by: NKalyan Thota <kalyan_t@codeaurora.org> Tested-by: NFritz Koenig <frkoenig@google.com> Signed-off-by: NRob Clark <robdclark@chromium.org>
-
- 20 3月, 2020 3 次提交
-
-
由 Zheng Bin 提交于
Fixes coccicheck warning: drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c:464:56-57: WARNING comparing pointer to 0 drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c:571:15-16: WARNING comparing pointer to 0 drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c:571:32-33: WARNING comparing pointer to 0 drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c:571:49-50: WARNING comparing pointer to 0 drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c:1968:17-18: WARNING comparing pointer to 0 drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c:1981:17-18: WARNING comparing pointer to 0 drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c:2012:51-52: WARNING comparing pointer to 0 Reported-by: NHulk Robot <hulkci@huawei.com> Signed-off-by: NZheng Bin <zhengbin13@huawei.com> Signed-off-by: NRob Clark <robdclark@chromium.org>
-
由 Drew Davenport 提交于
Move mapping of resources to encoder ids from the resource manager to a new dpu_global_state struct. Store this struct in global atomic state. Before this patch, atomic test would be performed by modifying global state (resource manager), and backing out any changes if the test fails. By using drm atomic global state, this is not necessary as any changes to the global state will be discarded if the test fails. Signed-off-by: NDrew Davenport <ddavenport@chromium.org> Signed-off-by: NRob Clark <robdclark@chromium.org>
-
由 Drew Davenport 提交于
Make iterator implementation private, and add function to query resources assigned to an encoder. Signed-off-by: NDrew Davenport <ddavenport@chromium.org> Signed-off-by: NRob Clark <robdclark@chromium.org>
-
- 16 2月, 2020 1 次提交
-
-
由 Sam Ravnborg 提交于
drm_display_mode.private was only referenced in one place where is was copied but never assigned. Drop the copy and drop the field in drm_display_mode. Adjust the comment of private_flags as is referred to the comment for private. Signed-off-by: NSam Ravnborg <sam@ravnborg.org> Reviewed-by: NDaniel Vetter <daniel.vetter@ffwll.ch> Cc: Sean Paul <seanpaul@chromium.org> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20200215183503.GA17310@ravnborg.org
-
- 03 1月, 2020 4 次提交
-
-
由 zhengbin 提交于
Fixes coccicheck warning: drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c:2260:3-4: Unneeded semicolon Reported-by: NHulk Robot <hulkci@huawei.com> Signed-off-by: Nzhengbin <zhengbin13@huawei.com> Reviewed-by: NJordan Crouse <jcrouse@codeaurora.org> Signed-off-by: NRob Clark <robdclark@chromium.org>
-
由 Drew Davenport 提交于
dpu_encoder_virt.phys_encs[0:num_phys_encs-1] will not be NULL so don't check. Also fix multiline strings that caused checkpatch warning. Signed-off-by: NDrew Davenport <ddavenport@chromium.org> Signed-off-by: NRob Clark <robdclark@chromium.org>
-
由 Drew Davenport 提交于
dpu_hw_ctl* is checked for NULL when passed as an argument to several functions. It will never be NULL, so remove the checks. Signed-off-by: NDrew Davenport <ddavenport@chromium.org> Signed-off-by: NRob Clark <robdclark@chromium.org>
-
由 Kalyan Thota 提交于
mixer selection in the display topology is based on multiple factors 1) mixers available in the hw 2) interfaces to be enabled 3) merge capability change will pickup mixer as per the topology need. Signed-off-by: NKalyan Thota <kalyan_t@codeaurora.org> Signed-off-by: NRob Clark <robdclark@chromium.org>
-
- 08 10月, 2019 1 次提交
-
-
由 zhengbin 提交于
Fixes gcc '-Wunused-but-set-variable' warning: drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c: In function dpu_encoder_virt_disable: drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c:1199:27: warning: variable mode set but not used [-Wunused-but-set-variable] drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c: In function _dpu_encoder_init_debugfs: drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c:1963:18: warning: variable dpu_kms set but not used [-Wunused-but-set-variable] drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c: In function dpu_encoder_frame_done_timeout: drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c:2183:26: warning: variable priv set but not used [-Wunused-but-set-variable] They are not used since commit 25fdd593 ("drm/msm: Add SDM845 DPU support") Reported-by: NHulk Robot <hulkci@huawei.com> Signed-off-by: Nzhengbin <zhengbin13@huawei.com> Signed-off-by: NRob Clark <robdclark@chromium.org>
-
- 07 10月, 2019 3 次提交
-
-
由 Drew Davenport 提交于
msm_drm_private.kms will only be NULL in the dummy headless case, so there is no need to check it in the dpu display driver. Signed-off-by: NDrew Davenport <ddavenport@chromium.org> Signed-off-by: NRob Clark <robdclark@chromium.org>
-
由 Drew Davenport 提交于
drm_device.dev_private is set to a non-NULL msm_drm_private struct in msm_drm_init. Successful initialization of msm means that dev_private is non-NULL so there is no need to check it everywhere. Signed-off-by: NDrew Davenport <ddavenport@chromium.org> Signed-off-by: NRob Clark <robdclark@chromium.org>
-
由 Drew Davenport 提交于
Signed-off-by: NDrew Davenport <ddavenport@chromium.org> Signed-off-by: NRob Clark <robdclark@chromium.org>
-
- 04 9月, 2019 5 次提交
-
-
由 Rob Clark 提交于
In addition, moving to kms->flush_commit() lets us drop the only user of kms->commit(). Signed-off-by: NRob Clark <robdclark@chromium.org> Reviewed-by: NSean Paul <sean@poorly.run>
-
由 Rob Clark 提交于
It attempted to avoid fps drops in the presence of cursor updates. But it is racing, and can result in hw updates after flush before vblank, which leads to underruns. Signed-off-by: NRob Clark <robdclark@chromium.org> Reviewed-by: NSean Paul <sean@poorly.run> Signed-off-by: NRob Clark <robdclark@chromium.org>
-
由 Rob Clark 提交于
Signed-off-by: NRob Clark <robdclark@chromium.org>
-
由 Rob Clark 提交于
I'm sure there is plenty more to remove.. this is just some of the ones I noticed. Signed-off-by: NRob Clark <robdclark@chromium.org>
-
由 Sam Ravnborg 提交于
Drop the deprecated drmP.h header file, and trim msm_drv.h to the relevant include files. This resulted in a suprisingly many edits as many files relied on headers included via msm_drv.h. But msm_drv.h is not supposed to carry include files it do not need, so the individual files have to include what extra they needs. v2: - Rebased on top of https://gitlab.freedesktop.org/drm/msm.git msm-next Signed-off-by: NSam Ravnborg <sam@ravnborg.org> Cc: Rob Clark <robdclark@gmail.com> Cc: Sean Paul <sean@poorly.run> Cc: David Airlie <airlied@linux.ie> Cc: Daniel Vetter <daniel@ffwll.ch> Cc: Jordan Crouse <jcrouse@codeaurora.org> Cc: Jeykumar Sankaran <jsanka@codeaurora.org> Cc: Bruce Wang <bzwang@chromium.org> Cc: Shayenne Moura <shayenneluzmoura@gmail.com> Cc: Mamta Shukla <mamtashukla555@gmail.com> Cc: Jonathan Marek <jonathan@marek.ca> Cc: Carsten Behling <carsten.behling@googlemail.com> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Cc: Maxime Ripard <maxime.ripard@bootlin.com> Cc: Paul Kocialkowski <paul.kocialkowski@bootlin.com> Cc: Sibi Sankar <sibis@codeaurora.org> Cc: Todor Tomov <todor.tomov@linaro.org> Cc: linux-arm-msm@vger.kernel.org Cc: freedreno@lists.freedesktop.org Signed-off-by: NSean Paul <seanpaul@chromium.org> Link: https://patchwork.freedesktop.org/patch/msgid/20190804065551.GA5211@ravnborg.org
-
- 23 7月, 2019 1 次提交
-
-
由 Shubhashree Dhar 提交于
dpu encoder spinlock should be initialized during dpu encoder init instead of dpu encoder setup which is part of modeset init. Signed-off-by: NShubhashree Dhar <dhar@codeaurora.org> [seanpaul resolved conflict in old init removal and revised the commit message] Signed-off-by: NSean Paul <seanpaul@chromium.org> Link: https://patchwork.freedesktop.org/patch/msgid/1561357632-15361-1-git-send-email-dhar@codeaurora.org
-
- 21 6月, 2019 1 次提交
-
-
由 Sean Paul 提交于
Now that mode_fixup has been removed, we can just rely on the call from drm_helper_probe_single_connector_modes(), Reviewed-by: NRob Clark <robdclark@chromium.org> Signed-off-by: NSean Paul <seanpaul@chromium.org> Link: https://patchwork.freedesktop.org/patch/msgid/20190617200405.131843-1-sean@poorly.run
-
- 19 6月, 2019 2 次提交
-
-
由 Thomas Gleixner 提交于
Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not see http www gnu org licenses extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 503 file(s). Signed-off-by: NThomas Gleixner <tglx@linutronix.de> Reviewed-by: NAlexios Zavras <alexios.zavras@intel.com> Reviewed-by: NAllison Randal <allison@lohutok.net> Reviewed-by: NEnrico Weigelt <info@metux.net> Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190602204653.811534538@linutronix.deSigned-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 Greg Kroah-Hartman 提交于
When calling debugfs functions, there is no need to ever check the return value. The function can work or not, but the code logic should never do something different based on this. Cc: Rob Clark <robdclark@gmail.com> Cc: Sean Paul <sean@poorly.run> Cc: David Airlie <airlied@linux.ie> Cc: Daniel Vetter <daniel@ffwll.ch> Cc: Jeykumar Sankaran <jsanka@codeaurora.org> Cc: Jordan Crouse <jcrouse@codeaurora.org> Cc: Abhinav Kumar <abhinavk@codeaurora.org> Cc: Bruce Wang <bzwang@chromium.org> Cc: Sravanthi Kollukuduru <skolluku@codeaurora.org> Cc: Fritz Koenig <frkoenig@google.com> Cc: Chandan Uddaraju <chandanu@codeaurora.org> Cc: linux-arm-msm@vger.kernel.org Cc: dri-devel@lists.freedesktop.org Cc: freedreno@lists.freedesktop.org Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: NRob Clark <robdclark@chromium.org>
-
- 19 4月, 2019 9 次提交
-
-
由 Jeykumar Sankaran 提交于
Iterate and assign HW intf block to physical encoders in encoder modeset. Moving all the HW block assignments to encoder modeset to allow easy switching to state based resource management. Signed-off-by: NJeykumar Sankaran <jsanka@codeaurora.org> Signed-off-by: NSean Paul <seanpaul@chromium.org> Link: https://patchwork.freedesktop.org/patch/msgid/1550107156-17625-7-git-send-email-jsanka@codeaurora.orgSigned-off-by: NRob Clark <robdclark@chromium.org>
-
由 Jeykumar Sankaran 提交于
After resource allocation, iterate and populate mixer/ctl hw blocks in encoder modeset thereby centralizing all the resource mapping to the CRTC. This change is made for easy switching to state based allocation using private objects later in this series. Signed-off-by: NJeykumar Sankaran <jsanka@codeaurora.org> Signed-off-by: NSean Paul <seanpaul@chromium.org> Link: https://patchwork.freedesktop.org/patch/msgid/1550107156-17625-6-git-send-email-jsanka@codeaurora.orgSigned-off-by: NRob Clark <robdclark@chromium.org>
-
由 Jeykumar Sankaran 提交于
encoder->crtc is not really meaningful for atomic path. Use crtc->encoder_mask to identify the crtc attached with an encoder. Signed-off-by: NJeykumar Sankaran <jsanka@codeaurora.org> Signed-off-by: NSean Paul <seanpaul@chromium.org> Link: https://patchwork.freedesktop.org/patch/msgid/1550107156-17625-5-git-send-email-jsanka@codeaurora.orgSigned-off-by: NRob Clark <robdclark@chromium.org>
-
由 Jeykumar Sankaran 提交于
release resources allocated in mode_set if any of the hw check fails. Most of these checks are not necessary and they will be removed in the follow up patches with state based resource allocations. Signed-off-by: NJeykumar Sankaran <jsanka@codeaurora.org> Signed-off-by: NSean Paul <seanpaul@chromium.org> Link: https://patchwork.freedesktop.org/patch/msgid/1550107156-17625-4-git-send-email-jsanka@codeaurora.orgSigned-off-by: NRob Clark <robdclark@chromium.org>
-
由 Sean Paul 提交于
The frame_busy mask is used in frame_done event handling, which is not invoked for async commits. So an async commit will leave the frame_busy mask populated after it completes and future commits will start with the busy mask incorrect. This showed up on disable after cursor move. I was hitting the "this should not happen" comment in the frame event worker since frame_busy was set, we queued the event, but there were no frames pending (since async also doesn't set that). Reviewed-by: NFritz Koenig <frkoenig@google.com> Signed-off-by: NSean Paul <seanpaul@chromium.org> Link: https://patchwork.freedesktop.org/patch/msgid/20190130163220.138637-1-sean@poorly.runSigned-off-by: NRob Clark <robdclark@chromium.org>
-
由 Sean Paul 提交于
In the case of an async/cursor update, we don't wait for the frame_done event, which means handle_frame_done is never called, and the frame_done watchdog isn't canceled. Currently, this results in a frame_done timeout every time the cursor moves without a synchronous frame following it up before the timeout expires. Since we don't wait for frame_done, and don't handle it, we shouldn't modify the watchdog. Reviewed-by: NFritz Koenig <frkoenig@google.com> Signed-off-by: NSean Paul <seanpaul@chromium.org> Link: https://patchwork.freedesktop.org/patch/msgid/20190128204306.95076-4-sean@poorly.runSigned-off-by: NRob Clark <robdclark@chromium.org>
-
由 Sean Paul 提交于
There exists a bunch of confusion as to what the actual units of frame_done is: - The definition states it's in # of frames - CRTC treats it like it's ms - frame_done_timeout comment thinks it's Hz, but it stores ms - frame_done timer is setup such that it _should_ be in frames, but the timeout is super long So this patch tries to interpret what the driver really wants. I've de-centralized the #define since the consumers are expecting different units. For crtc, we just use 60ms since that's what it was doing before. Perhaps we could get fancy and scale with vrefresh, but that's for another time. For encoder, fix the comments and rename frame_done_timeout so it's obvious what the units are. In practice, frame_done_timeout is really just checked against 0 || !0, which I guess is why the units being wrong didn't matter. I've also dropped the timeout from the previous 60 frames to 5. That seems like more than enough time to give up on a frame, and my guess is that no one intended for the timeout to _actually_ be 60 frames. Reviewed-by: NFritz Koenig <frkoenig@google.com> Signed-off-by: NSean Paul <seanpaul@chromium.org> Link: https://patchwork.freedesktop.org/patch/msgid/20190128204306.95076-3-sean@poorly.runSigned-off-by: NRob Clark <robdclark@chromium.org>
-
由 Sean Paul 提交于
Instead of setting the timeout and then immediately reading it back (along with the hand-rolled msecs_to_jiffies calculation), just calculate it once and set it in both places at the same time. Reviewed-by: NAbhinav Kumar <abhinavk@codeaurora.org> Signed-off-by: NSean Paul <seanpaul@chromium.org> Link: https://patchwork.freedesktop.org/patch/msgid/20190128204306.95076-2-sean@poorly.runSigned-off-by: NRob Clark <robdclark@chromium.org>
-
由 Sean Paul 提交于
Use the drm_mode_vrefresh helper where we need refresh rate in case vrefresh is empty. Reviewed-by: NAbhinav Kumar <abhinavk@codeaurora.org> Signed-off-by: NSean Paul <seanpaul@chromium.org> Link: https://patchwork.freedesktop.org/patch/msgid/20190128204306.95076-1-sean@poorly.runSigned-off-by: NRob Clark <robdclark@chromium.org>
-