Arnd Bergmann
08b2a9bb54
drm/msm/dsi: fix 32-bit clang warning
...
clang is a little overzealous with warning about a constant conversion
in an untaken branch of a ternary expression:
drivers/gpu/drm/msm/dsi/phy/dsi_phy_7nm.c:975:48: error: implicit conversion from 'unsigned long long' to 'unsigned long' changes value from 5000000000 to 705032704 [-Werror,-Wconstant-conversion]
.max_pll_rate = (5000000000ULL < ULONG_MAX) ? 5000000000UL : ULONG_MAX,
^~~~~~~~~~~~
Rewrite this to use a preprocessor conditional instead to avoid the
warning.
Fixes: 076437c9e3 ("drm/msm/dsi: move min/max PLL rate to phy config")
Signed-off-by: Arnd Bergmann <arnd@arndb.de >
Link: https://lore.kernel.org/r/20210514213032.575161-1-arnd@kernel.org
Reviewed-by: Nathan Chancellor <nathan@kernel.org >
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Signed-off-by: Rob Clark <robdclark@chromium.org >
2021-06-23 07:33:53 -07:00
Bernard Zhao
7d21fb8af5
drm/msm: remove unneeded variable ret
...
This patch fix coccicheck warning:
drivers/gpu/drm/msm/dp/dp_link.c:848:5-8: Unneeded variable: "ret". Return "0" on line 880
Also remove unneeded function return value check.
Signed-off-by: Bernard Zhao <bernard@vivo.com >
Link: https://lore.kernel.org/r/20210407130654.3387-1-bernard@vivo.com
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Signed-off-by: Rob Clark <robdclark@chromium.org >
2021-06-23 07:33:53 -07:00
Zhen Lei
614f94b541
drm/msm/dpu: remove unused local variable 'cmd_enc'
...
Fixes the following W=1 kernel build warning:
drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_cmd.c: In function ‘dpu_encoder_phys_cmd_wait_for_commit_done’:
drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_cmd.c:688:31: warning: variable ‘cmd_enc’ set but not used [-Wunused-but-set-variable]
Fixes: fe286893ed ("drm/msm/dpu: Remove unused call in wait_for_commit_done")
Reported-by: Hulk Robot <hulkci@huawei.com >
Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com >
Link: https://lore.kernel.org/r/20210407083334.2762-1-thunder.leizhen@huawei.com
Reviewed-by: Abhinav Kumar <abhinavk@codeaurora.org >
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Signed-off-by: Rob Clark <robdclark@chromium.org >
2021-06-23 07:33:53 -07:00
Lee Jones
0c86f88511
drm/msm/dp/dp_display: Remove unused variable 'hpd'
...
Fixes the following W=1 kernel build warning(s):
drivers/gpu/drm/msm/dp/dp_display.c: In function ‘dp_display_usbpd_attention_cb’:
drivers/gpu/drm/msm/dp/dp_display.c:496:19: warning: variable ‘hpd’ set but not used [-Wunused-but-set-variable]
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: Kuogee Hsieh <khsieh@codeaurora.org >
Cc: linux-arm-msm@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Cc: freedreno@lists.freedesktop.org
Signed-off-by: Lee Jones <lee.jones@linaro.org >
Link: https://lore.kernel.org/r/20210303134319.3160762-4-lee.jones@linaro.org
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Signed-off-by: Rob Clark <robdclark@chromium.org >
2021-06-23 07:33:53 -07:00
zuoqilin
48c305808d
drm/msm: Remove unneeded variable: "rc"
...
Remove unneeded variable: "rc".
Signed-off-by: zuoqilin <zuoqilin@yulong.com >
Link: https://lore.kernel.org/r/20210318032422.1285-1-zuoqilin1@163.com
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Signed-off-by: Rob Clark <robdclark@chromium.org >
2021-06-23 07:33:53 -07:00
Yangtao Li
11120e9351
drm/msm: Convert to use resource-managed OPP API
...
Use resource-managed OPP API to simplify code.
Signed-off-by: Yangtao Li <tiny.windzz@gmail.com >
Signed-off-by: Dmitry Osipenko <digetx@gmail.com >
Link: https://lore.kernel.org/r/20210314163408.22292-12-digetx@gmail.com
Reviewed-by: Viresh Kumar <viresh.kumar@linaro.org >
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Signed-off-by: Rob Clark <robdclark@chromium.org >
2021-06-23 07:33:52 -07:00
Bhaskar Chowdhury
4618835230
drm/msm/dp: Fixed couple of typos
...
s/modueles/modules/ ....two different places
Signed-off-by: Bhaskar Chowdhury <unixbhaskar@gmail.com >
Link: https://lore.kernel.org/r/20210318062650.19886-1-unixbhaskar@gmail.com
Acked-by: Randy Dunlap <rdunlap@infradead.org >
Reviewed-by: Stephen Boyd <swboyd@chromium.org >
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Signed-off-by: Rob Clark <robdclark@chromium.org >
2021-06-23 07:33:52 -07:00
Bhaskar Chowdhury
d2dfd21fcb
drm/msm/dpu: Fix a typo
...
s/poiner/pointer/
Signed-off-by: Bhaskar Chowdhury <unixbhaskar@gmail.com >
Link: https://lore.kernel.org/r/20210322120601.2086438-1-unixbhaskar@gmail.com
Acked-by: Randy Dunlap <rdunlap@infradead.org >
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Signed-off-by: Rob Clark <robdclark@chromium.org >
2021-06-23 07:33:52 -07:00
Bhaskar Chowdhury
6bac5b13b4
drm/msm/dpu: Fix a typo
...
s/struture/structure/
Signed-off-by: Bhaskar Chowdhury <unixbhaskar@gmail.com >
Link: https://lore.kernel.org/r/20210322062723.3215931-1-unixbhaskar@gmail.com
Acked-by: Randy Dunlap <rdunlap@infradead.org >
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Signed-off-by: Rob Clark <robdclark@chromium.org >
2021-06-23 07:33:52 -07:00
Zhen Lei
e020ac961c
drm/msm/dpu: Fix error return code in dpu_mdss_init()
...
The error code returned by platform_get_irq() is stored in 'irq', it's
forgotten to be copied to 'ret' before being returned. As a result, the
value 0 of 'ret' is returned incorrectly.
After the above fix is completed, initializing the local variable 'ret'
to 0 is no longer needed, remove it.
In addition, when dpu_mdss_init() is successfully returned, the value of
'ret' is always 0. Therefore, replace "return ret" with "return 0" to make
the code clearer.
Fixes: 070e64dc1b ("drm/msm/dpu: Convert to a chained irq chip")
Reported-by: Hulk Robot <hulkci@huawei.com >
Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com >
Link: https://lore.kernel.org/r/20210510063805.3262-2-thunder.leizhen@huawei.com
Reviewed-by: Stephen Boyd <swboyd@chromium.org >
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Signed-off-by: Rob Clark <robdclark@chromium.org >
2021-06-23 07:33:52 -07:00
Zhen Lei
a1c9b1e3bd
drm/msm: Fix error return code in msm_drm_init()
...
Fix to return a negative error code from the error handling case instead
of 0, as done elsewhere in this function.
Fixes: 7f9743abaa ("drm/msm: validate display and event threads")
Reported-by: Hulk Robot <hulkci@huawei.com >
Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com >
Link: https://lore.kernel.org/r/20210508022836.1777-1-thunder.leizhen@huawei.com
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Signed-off-by: Rob Clark <robdclark@chromium.org >
2021-06-23 07:33:44 -07:00
Rob Clark
8c08c7b51a
Merge branch 'msm-fixes-v5.13-rc6' into msm-next-redo
...
Syncing up with -rc6 fixes to avoid conflicts with a660 patches.
Signed-off-by: Rob Clark <robdclark@chromium.org >
2021-06-23 07:32:59 -07:00
Krishna Manikandan
a1f2ba60ea
drm/msm/disp/dpu1: avoid perf update in frame done event
...
Crtc perf update from frame event work can result in
wrong bandwidth and clock update from dpu if the work
is scheduled after the swap state has happened.
Avoid such issues by moving perf update to complete
commit once the frame is accepted by the hardware.
Fixes: a29c8c0241 ("drm/msm/disp/dpu1: fix display underruns during modeset")
Signed-off-by: Krishna Manikandan <mkrishn@codeaurora.org >
Tested-by: Douglas Anderson <dianders@chromium.org >
Link: https://lore.kernel.org/r/1622092076-5100-1-git-send-email-mkrishn@codeaurora.org
Signed-off-by: Rob Clark <robdclark@chromium.org >
2021-06-23 07:32:16 -07:00
Stephen Boyd
5b702d787b
drm/msm/disp: Move various debug logs to atomic bucket
...
These prints flood the logs with drm debugging set to enable kms and
driver logging (DRM_UT_KMS and DRM_UT_DRIVER). Let's move these prints
to the atomic bucket (DRM_UT_ATOMIC) as they're related to the atomic
paths.
Cc: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Cc: Abhinav Kumar <abhinavk@codeaurora.org >
Cc: Kuogee Hsieh <khsieh@codeaurora.org >
Cc: aravindh@codeaurora.org
Cc: Sean Paul <sean@poorly.run >
Signed-off-by: Stephen Boyd <swboyd@chromium.org >
Link: https://lore.kernel.org/r/20210430193104.1770538-7-swboyd@chromium.org
Reviewed-by: Abhinav Kumar <abhinavk@codeaurora.org >
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Signed-off-by: Rob Clark <robdclark@chromium.org >
2021-06-23 07:32:16 -07:00
Stephen Boyd
f6bc4e1d51
drm/msm/disp: Use plane debug print helper
...
Use the DPU_DEBUG_PLANE() helper to print the plane number instead of
open coding it.
Cc: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Cc: Abhinav Kumar <abhinavk@codeaurora.org >
Cc: Kuogee Hsieh <khsieh@codeaurora.org >
Cc: aravindh@codeaurora.org
Cc: Sean Paul <sean@poorly.run >
Signed-off-by: Stephen Boyd <swboyd@chromium.org >
Link: https://lore.kernel.org/r/20210430193104.1770538-6-swboyd@chromium.org
Reviewed-by: Abhinav Kumar <abhinavk@codeaurora.org >
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Signed-off-by: Rob Clark <robdclark@chromium.org >
2021-06-23 07:32:16 -07:00
Stephen Boyd
7cb017db18
drm/msm: Move FB debug prints to drm_dbg_state()
...
These are verbose prints that tell us about the framebuffer state. Let's
move them to drm_dbg_state() so that they're only printed if we're
interested in verbose state logging while drm debugging.
Cc: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Cc: Abhinav Kumar <abhinavk@codeaurora.org >
Cc: Kuogee Hsieh <khsieh@codeaurora.org >
Cc: aravindh@codeaurora.org
Cc: Sean Paul <sean@poorly.run >
Signed-off-by: Stephen Boyd <swboyd@chromium.org >
Link: https://lore.kernel.org/r/20210430193104.1770538-5-swboyd@chromium.org
Reviewed-by: Abhinav Kumar <abhinavk@codeaurora.org >
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Signed-off-by: Rob Clark <robdclark@chromium.org >
2021-06-23 07:32:15 -07:00
Stephen Boyd
e45b40ab9b
drm/msm/dp: Drop malformed debug print
...
This print is missing a newline, and doesn't really provide any value.
Drop it.
Cc: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Cc: Abhinav Kumar <abhinavk@codeaurora.org >
Cc: Kuogee Hsieh <khsieh@codeaurora.org >
Cc: aravindh@codeaurora.org
Cc: Sean Paul <sean@poorly.run >
Signed-off-by: Stephen Boyd <swboyd@chromium.org >
Link: https://lore.kernel.org/r/20210430193104.1770538-4-swboyd@chromium.org
Reviewed-by: Abhinav Kumar <abhinavk@codeaurora.org >
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Signed-off-by: Rob Clark <robdclark@chromium.org >
2021-06-23 07:32:15 -07:00
Stephen Boyd
721c6e0c6a
drm/msm: Move vblank debug prints to drm_dbg_vbl()
...
Put these debug prints in the vblank code into the appropriate vblank
category via drm_dbg_vbl().
Cc: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Cc: Abhinav Kumar <abhinavk@codeaurora.org >
Cc: Kuogee Hsieh <khsieh@codeaurora.org >
Cc: aravindh@codeaurora.org
Cc: Sean Paul <sean@poorly.run >
Signed-off-by: Stephen Boyd <swboyd@chromium.org >
Link: https://lore.kernel.org/r/20210430193104.1770538-2-swboyd@chromium.org
Reviewed-by: Abhinav Kumar <abhinavk@codeaurora.org >
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Signed-off-by: Rob Clark <robdclark@chromium.org >
2021-06-23 07:32:15 -07:00
Dmitry Baryshkov
d94fc8f36f
drm/msm/dpu: simplify IRQ enabling/disabling
...
Merge dpu_core_irq_enable() into dpu_core_irq_register_callback() and
dpu_core_irq_disable() into dpu_core_irq_unregister_callback(), because
they are called in pairs. There is no need to have separate
enable/disable pair, we can enable hardware IRQ when first callback is
registered and when the last callback is unregistered.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Reviewed-by: Abhinav Kumar <abhinavk@codeaurora.org >
Link: https://lore.kernel.org/r/20210516202910.2141079-7-dmitry.baryshkov@linaro.org
[fixup tracepoint compile warns]
Signed-off-by: Rob Clark <robdclark@chromium.org >
2021-06-23 07:32:15 -07:00
Dmitry Baryshkov
18b20ac0ec
drm/msm/dpu: drop remains of old irq lookup subsystem
...
There is no more need for the dpu_intr_type types, dpu_irq_map table,
individual intr defines and obsolete_irq field. Drop all of them now.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Reviewed-by: Abhinav Kumar <abhinavk@codeaurora.org >
Link: https://lore.kernel.org/r/20210516202910.2141079-6-dmitry.baryshkov@linaro.org
Signed-off-by: Rob Clark <robdclark@chromium.org >
2021-06-23 07:32:15 -07:00
Dmitry Baryshkov
667e9985ee
drm/msm/dpu: replace IRQ lookup with the data in hw catalog
...
The IRQ table in the dpu_hw_interrupts.h is big, ugly, and hard to
maintain. There are only few interrupts used from that table. Newer
generations use different IRQ locations. Move this data to hw catalog.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Reviewed-by: Abhinav Kumar <abhinavk@codeaurora.org >
Link: https://lore.kernel.org/r/20210516202910.2141079-5-dmitry.baryshkov@linaro.org
[fixup tracepoint compile warns/err]
Signed-off-by: Rob Clark <robdclark@chromium.org >
2021-06-23 07:32:15 -07:00
Dmitry Baryshkov
597762d5bf
drm/msm/dpu: define interrupt register names
...
In order to make mdss_irqs readable (and error-prone) define names for
interrupt register indices.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Reviewed-by: Abhinav Kumar <abhinavk@codeaurora.org >
Link: https://lore.kernel.org/r/20210516202910.2141079-4-dmitry.baryshkov@linaro.org
Signed-off-by: Rob Clark <robdclark@chromium.org >
2021-06-23 07:32:15 -07:00
Dmitry Baryshkov
98fbe6bb5b
drm/msm/dpu: hw_intr: always call dpu_hw_intr_clear_intr_status_nolock
...
Always call dpu_hw_intr_clear_intr_status_nolock() from the
dpu_hw_intr_dispatch_irqs(). This simplifies the callback function
(which call clears the interrupts anyway) and enforces clearing the hw
interrupt status.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org >
Reviewed-by: Abhinav Kumar <abhinavk@codeaurora.org >
Link: https://lore.kernel.org/r/20210516202910.2141079-3-dmitry.baryshkov@linaro.org
Signed-off-by: Rob Clark <robdclark@chromium.org >
2021-06-23 07:32:15 -07:00
Dmitry Baryshkov
09e3a2b442
drm/msm/dpu: merge dpu_hw_intr_get_interrupt_statuses into dpu_hw_intr_dispatch_irqs
...
There is little sense in reading interrupt statuses and right after that
going after the array of statuses to dispatch them. Merge both loops
into single function doing read and dispatch.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org >
Reviewed-by: Abhinav Kumar <abhinavk@codeaurora.org >
Link: https://lore.kernel.org/r/20210516202910.2141079-2-dmitry.baryshkov@linaro.org
Signed-off-by: Rob Clark <robdclark@chromium.org >
2021-06-23 07:32:15 -07:00
Stephen Boyd
e305f678e9
drm/msm/dp: Handle aux timeouts, nacks, defers
...
Let's look at the irq status bits after a transfer and see if we got a
nack or a defer or a timeout, instead of telling drm layers that
everything was fine, while still printing an error message. I wasn't
sure about NACK+DEFER so I lumped all those various errors along with a
nack so that the drm core can figure out that things are just not going
well. The important thing is that we're now returning -ETIMEDOUT when
the message times out and nacks for bad addresses.
Cc: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Cc: Abhinav Kumar <abhinavk@codeaurora.org >
Cc: Kuogee Hsieh <khsieh@codeaurora.org >
Cc: aravindh@codeaurora.org
Cc: Sean Paul <sean@poorly.run >
Signed-off-by: Stephen Boyd <swboyd@chromium.org >
Reviewed-by: Kuogee Hsieh <khsieh@codeaurora.org >
Link: https://lore.kernel.org/r/20210507212505.1224111-4-swboyd@chromium.org
Signed-off-by: Rob Clark <robdclark@chromium.org >
2021-06-23 07:32:15 -07:00
Stephen Boyd
47327fdd7e
drm/msm/dp: Shrink locking area of dp_aux_transfer()
...
We don't need to hold the lock to inspect the message we're going to
transfer, and we don't need to clear the busy flag either. Take the lock
later and bail out earlier if conditions aren't met.
Cc: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Cc: Abhinav Kumar <abhinavk@codeaurora.org >
Cc: Kuogee Hsieh <khsieh@codeaurora.org >
Cc: aravindh@codeaurora.org
Cc: Sean Paul <sean@poorly.run >
Signed-off-by: Stephen Boyd <swboyd@chromium.org >
Reviewed-by: Kuogee Hsieh <khsieh@codeaurora.org >
Link: https://lore.kernel.org/r/20210507212505.1224111-3-swboyd@chromium.org
Signed-off-by: Rob Clark <robdclark@chromium.org >
2021-06-23 07:32:15 -07:00
Stephen Boyd
24c7861b81
drm/msm/dp: Simplify aux irq handling code
...
We don't need to stash away 'isr' in the aux structure to pass to two
functions. Let's use a local variable instead. And we can complete the
completion variable in one place instead of two to simplify the code.
Cc: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Cc: Abhinav Kumar <abhinavk@codeaurora.org >
Cc: Kuogee Hsieh <khsieh@codeaurora.org >
Cc: aravindh@codeaurora.org
Cc: Sean Paul <sean@poorly.run >
Signed-off-by: Stephen Boyd <swboyd@chromium.org >
Reviewed-by: Kuogee Hsieh <khsieh@codeaurora.org >
Link: https://lore.kernel.org/r/20210507212505.1224111-2-swboyd@chromium.org
Signed-off-by: Rob Clark <robdclark@chromium.org >
2021-06-23 07:32:14 -07:00
Dmitry Baryshkov
53e231705e
drm/msm: fix display snapshotting if DP or DSI is disabled
...
Fix following warnings generated when either DP or DSI support is
disabled:
drivers/gpu/drm/msm/disp/msm_disp_snapshot_util.c:141:3: error: implicit declaration of function 'msm_dp_snapshot'; did you mean 'msm_dsi_snapshot'? [-Werror=implicit-function-declaration]
drivers/gpu/drm/msm/msm_kms.h:127:26: warning: 'struct msm_disp_state' declared inside parameter list will not be visible outside of this definition or declaration
drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c:867:21: error: initialization of 'void (*)(struct msm_disp_state *, struct msm_kms *)' from incompatible pointer type 'void (*)(struct msm_disp_state *, struct msm_kms *)' [-Werror=incompatible-pointer-types]
drivers/gpu/drm/msm/dsi/dsi.h:94:30: warning: 'struct msm_disp_state' declared inside parameter list will not be visible outside of this definition or declaration
Reported-by: kernel test robot <lkp@intel.com >
Cc: Abhinav Kumar <abhinavk@codeaurora.org >
Fixes: 1c3b7ac1a71d ("drm/msm: pass dump state as a function argument")
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Reviewed-by: Abhinav Kumar <abhinavk@codeaurora.org >
Link: https://lore.kernel.org/r/20210527220330.3364716-1-dmitry.baryshkov@linaro.org
Signed-off-by: Rob Clark <robdclark@chromium.org >
2021-06-23 07:32:14 -07:00
Jonathan Marek
9ef364432d
drm/msm: deprecate MSM_BO_UNCACHED (map as writecombine instead)
...
There shouldn't be any reason to ever use uncached over writecombine,
so just use writecombine for MSM_BO_UNCACHED.
Note: userspace never used MSM_BO_UNCACHED anyway
Signed-off-by: Jonathan Marek <jonathan@marek.ca >
Acked-by: Jordan Crouse <jordan@cosmicpenguin.net >
Link: https://lore.kernel.org/r/20210423190833.25319-6-jonathan@marek.ca
Signed-off-by: Rob Clark <robdclark@chromium.org >
2021-06-23 07:32:14 -07:00
Jonathan Marek
d12e339044
drm/msm: add MSM_BO_CACHED_COHERENT
...
Add a new cache mode for creating coherent host-cached BOs.
Signed-off-by: Jonathan Marek <jonathan@marek.ca >
Reviewed-by: Jordan Crouse <jcrouse@codeaurora.org >
Link: https://lore.kernel.org/r/20210423190833.25319-5-jonathan@marek.ca
Signed-off-by: Rob Clark <robdclark@chromium.org >
2021-06-23 07:32:14 -07:00
Jonathan Marek
af9b354707
drm/msm: use the right pgprot when mapping BOs in the kernel
...
Use the same logic as the userspace mapping.
This fixes msm_rd with cached BOs.
Signed-off-by: Jonathan Marek <jonathan@marek.ca >
Acked-by: Jordan Crouse <jordan@cosmicpenguin.net >
Link: https://lore.kernel.org/r/20210423190833.25319-4-jonathan@marek.ca
Signed-off-by: Rob Clark <robdclark@chromium.org >
2021-06-23 07:32:14 -07:00
Jonathan Marek
a5fc7aa901
drm/msm: replace MSM_BO_UNCACHED with MSM_BO_WC for internal objects
...
msm_gem_get_vaddr() currently always maps as writecombine, so use the right
flag instead of relying on broken behavior (things don't actually work if
they are mapped as uncached).
Signed-off-by: Jonathan Marek <jonathan@marek.ca >
Acked-by: Jordan Crouse <jordan@cosmicpenguin.net >
Link: https://lore.kernel.org/r/20210423190833.25319-3-jonathan@marek.ca
Signed-off-by: Rob Clark <robdclark@chromium.org >
2021-06-23 07:32:14 -07:00
Jonathan Marek
8eaf9b02ac
drm/msm: remove unnecessary mmap logic for cached BOs
...
No one knows what this is for anymore, so just remove it.
Signed-off-by: Jonathan Marek <jonathan@marek.ca >
Acked-by: Jordan Crouse <jordan@cosmicpenguin.net >
Link: https://lore.kernel.org/r/20210423190833.25319-2-jonathan@marek.ca
Signed-off-by: Rob Clark <robdclark@chromium.org >
2021-06-23 07:32:14 -07:00
Dmitry Baryshkov
d91940e289
drm/msm/dsi: add DSI PHY registers to snapshot data
...
Add DSI PHY registers to the msm state snapshots to be able to check
their contents.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Reviewed-by: Abhinav Kumar <abhinavk@codeaurora.org >
Link: https://lore.kernel.org/r/20210427001828.2375555-5-dmitry.baryshkov@linaro.org
Signed-off-by: Rob Clark <robdclark@chromium.org >
2021-06-23 07:32:14 -07:00
Dmitry Baryshkov
bac2c6a62e
drm/msm: get rid of msm_iomap_size
...
Instead of looping throught the resources each time to get the DSI CTRL
area size, get it at the ioremap time.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Reviewed-by: Abhinav Kumar <abhinavk@codeaurora.org >
Link: https://lore.kernel.org/r/20210427001828.2375555-4-dmitry.baryshkov@linaro.org
Signed-off-by: Rob Clark <robdclark@chromium.org >
2021-06-23 07:32:14 -07:00
Dmitry Baryshkov
2503003cb2
drm/msm: make msm_disp_state transient data struct
...
Instead of allocating snapshotting structure at the driver probe time
and later handling concurrent access, actual state, etc, make
msm_disp_state transient struct. Allocate one when snapshotting happens
and free it after coredump data is read by userspace.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Reviewed-by: Abhinav Kumar <abhinavk@codeaurora.org >
Link: https://lore.kernel.org/r/20210427001828.2375555-3-dmitry.baryshkov@linaro.org
Signed-off-by: Rob Clark <robdclark@chromium.org >
2021-06-23 07:32:14 -07:00
Dmitry Baryshkov
eb9d6c7ebe
drm/msm: pass dump state as a function argument
...
Instead of always getting the disp_state from drm device, pass it as an
argument.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Reviewed-by: Abhinav Kumar <abhinavk@codeaurora.org >
Link: https://lore.kernel.org/r/20210427001828.2375555-2-dmitry.baryshkov@linaro.org
Signed-off-by: Rob Clark <robdclark@chromium.org >
2021-06-23 07:32:14 -07:00
Abhinav Kumar
2ec5b3dc18
drm/msm: add disp snapshot points across dpu driver
...
Add snapshot points across dpu driver to trigger dumps when critical
errors are hit.
changes in v5:
- change the callers to use the snapshot function directly
Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org >
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Link: https://lore.kernel.org/r/1618606645-19695-8-git-send-email-abhinavk@codeaurora.org
Signed-off-by: Rob Clark <robdclark@chromium.org >
2021-06-23 07:32:14 -07:00
Abhinav Kumar
d87fe031bf
drm/msm: add support to take dsi, dp and dpu snapshot
...
Add support to take the register snapshot of dsi, dp and dpu
modules.
Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org >
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Link: https://lore.kernel.org/r/1618606645-19695-7-git-send-email-abhinavk@codeaurora.org
Signed-off-by: Rob Clark <robdclark@chromium.org >
2021-06-23 07:32:13 -07:00
Abhinav Kumar
a698b5cdfe
drm/msm/disp/dpu1: add API to take DPU register snapshot
...
Add an API to take a snapshot of DPU controller registers. This API
will be used by the msm_disp_snapshot module to capture the DPU
snapshot.
Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org >
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Link: https://lore.kernel.org/r/1618606645-19695-6-git-send-email-abhinavk@codeaurora.org
Signed-off-by: Rob Clark <robdclark@chromium.org >
2021-06-23 07:32:13 -07:00
Abhinav Kumar
0f6090f37f
drm/msm/dp: add API to take DP register snapshot
...
Add an API to take a snapshot of DP controller registers. This API
will be used by the msm_disp_snapshot module to capture the DP
snapshot.
Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org >
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Link: https://lore.kernel.org/r/1618606645-19695-5-git-send-email-abhinavk@codeaurora.org
Signed-off-by: Rob Clark <robdclark@chromium.org >
2021-06-23 07:32:13 -07:00
Abhinav Kumar
9d30a4bcf4
drm/msm/dsi: add API to take DSI register snapshot
...
Add an API to take a snapshot of DSI controller registers. This API
will be used by the msm_disp_snapshot module to capture the DSI
snapshot.
Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org >
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Link: https://lore.kernel.org/r/1618606645-19695-4-git-send-email-abhinavk@codeaurora.org
Signed-off-by: Rob Clark <robdclark@chromium.org >
2021-06-23 07:32:13 -07:00
Abhinav Kumar
98659487b8
drm/msm: add support to take dpu snapshot
...
Add the msm_disp_snapshot module which adds supports to dump dpu
registers and capture the drm atomic state which can be used in
case of error conditions.
changes in v5:
- start storing disp_state in msm_kms instead of dpu_kms
- get rid of MSM_DISP_SNAPSHOT_IN_* enum by simplifying the functions
- move snprintf inside the snapshot core by using varargs
- get rid of some stale code comments
- allow snapshot module for non-DPU targets
Reported-by: kernel test robot <lkp@intel.com >
Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org >
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Link: https://lore.kernel.org/r/1618606645-19695-3-git-send-email-abhinavk@codeaurora.org
Signed-off-by: Rob Clark <robdclark@chromium.org >
2021-06-23 07:32:13 -07:00
Abhinav Kumar
a4324a7a1c
drm: allow drm_atomic_print_state() to accept any drm_printer
...
Currently drm_atomic_print_state() internally allocates and uses a
drm_info printer. Allow it to accept any drm_printer type so that
the API can be leveraged even for taking drm snapshot.
Rename the drm_atomic_print_state() to drm_atomic_print_new_state()
so that it reflects its functionality better.
changes in v5:
- none
Reported-by: kernel test robot <lkp@intel.com >
Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org >
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Link: https://lore.kernel.org/r/1618606645-19695-2-git-send-email-abhinavk@codeaurora.org
Signed-off-by: Rob Clark <robdclark@chromium.org >
2021-06-23 07:32:13 -07:00
Kuogee Hsieh
f21c8a276c
drm/msm/dp: handle irq_hpd with sink_count = 0 correctly
...
irq_hpd interrupt should be handled after dongle plugged in and
before dongle unplugged. Hence irq_hpd interrupt is enabled at
the end of the plugin handle and disabled at the beginning of
unplugged handle. Current irq_hpd with sink_count = 0 is wrongly
handled same as the dongle unplugged which tears down the mainlink
and disables the phy. This patch fixes this problem by only tearing
down the mainlink but keeping phy enabled at irq_hpd with
sink_count = 0 handle so that next irq_hpd with sink_count =1 can be
handled by setup mainlink only. This patch also set dongle into D3
(power off) state at end of handling irq_hpd with sink_count = 0.
Changes in v2:
-- add ctrl->phy_Power_count
Changes in v3:
-- del ctrl->phy_Power_count
-- add phy_power_off to dp_ctrl_off_link_stream()
Changes in v4:
-- return immediately if clock disable failed at dp_ctrl_off_link_stream()
Changes in v5:
-- set dongle to D3 (power off) state at dp_ctrl_off_link_stream()
Changes in v6:
-- add Fixes tag
Fixes: ea9f337ce8 ("drm/msm/dp: reset dp controller only at boot up and pm_resume")
Signed-off-by: Kuogee Hsieh <khsieh@codeaurora.org >
Tested-by: Stephen Boyd <swboyd@chromium.org >
Reviewed-by: Stephen Boyd <swboyd@chromium.org >
Link: https://lore.kernel.org/r/1621635930-30161-1-git-send-email-khsieh@codeaurora.org
Signed-off-by: Rob Clark <robdclark@chromium.org >
2021-06-23 07:32:05 -07:00
Ville Syrjälä
8b95b28047
drm/i915: Deduplicate icl DP HBR2 vs. eDP HBR3 table
...
The icl combo phy DP HBR2 is identical to the eDP HBR3 table.
Get rid of one redundant copy.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20210608073603.2408-14-ville.syrjala@linux.intel.com
Reviewed-by: Jani Nikula <jani.nikula@intel.com >
2021-06-23 15:34:29 +03:00
Ville Syrjälä
5aca4881f3
drm/i915: Fix dg1 buf trans tables
...
For some reason the dg1 buf trans tables have been stuffed into
icl_get_combo_buf_trans_edp() which doesn't even get called
on dg1. Split them out into a proper dg1 specific function,
and also make sure we use the proper buf trans tables for
DP as well as eDP.
v2: Add the hobl stuff
Reviewed-by: Jani Nikula <jani.nikula@intel.com >
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20210608073603.2408-13-ville.syrjala@linux.intel.com
2021-06-23 15:33:38 +03:00
Ville Syrjälä
299d49542c
drm/i915: Introduce rkl_get_combo_buf_trans()
...
Give RKL its own get_buf_trans() func.
v2: Drop the FIXME since the spec was clarified to
indicate that TGL values are used for the HDMI/eDP cases.
Reviewed-by: Jani Nikula <jani.nikula@intel.com >
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20210608073603.2408-12-ville.syrjala@linux.intel.com
2021-06-23 15:32:53 +03:00
Maxime Ripard
91e99e1139
drm/vc4: hdmi: Register HDMI codec
...
The hdmi-codec brings a lot of advanced features, including the HDMI
channel mapping. Let's use it in our driver instead of our own codec.
Signed-off-by: Maxime Ripard <maxime@cerno.tech >
Reviewed-by: Nicolas Saenz Julienne <nsaenz@kernel.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20210525132354.297468-11-maxime@cerno.tech
2021-06-23 14:32:28 +02:00
Dom Cobley
8434111ccf
drm/vc4: hdmi: Remove firmware logic for MAI threshold setting
...
This was a workaround for bugs in hardware on earlier Pi models
and wasn't totally successful.
It makes audio quality worse on a Pi4 at the higher sample rates
Signed-off-by: Dom Cobley <popcornmix@gmail.com >
Signed-off-by: Maxime Ripard <maxime@cerno.tech >
Link: https://patchwork.freedesktop.org/patch/msgid/20210525132354.297468-10-maxime@cerno.tech
2021-06-23 14:32:28 +02:00