aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2024-02-27drm/i915/dp: Use drm_dp_max_dprx_data_rate()Imre Deak4-57/+10
Instead of intel_dp_max_data_rate() use the equivalent drm_dp_max_dprx_data_rate() which was copied from the former one in a previous patch. Reviewed-by: Uma Shankar <[email protected]> Reviewed-by: Ville Syrjälä <[email protected]> Signed-off-by: Imre Deak <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
2024-02-27drm/i915/dp: Add support to notify MST connectors to retry modesetsImre Deak5-6/+55
On shared (Thunderbolt) links with DP tunnels, the modeset may need to be retried on all connectors on the link due to a link BW limitation arising only after the atomic check phase. To support this add a helper function queuing a work to retry the modeset on a given port's connector and at the same time any MST connector with streams through the same port. A follow-up change enabling the DP tunnel Bandwidth Allocation Mode will take this into use. v2: - Send the uevent only to enabled MST connectors. (Jouni) Cc: Jouni Högander <[email protected]> Reviewed-by: Uma Shankar <[email protected]> Reviewed-by: Ville Syrjälä <[email protected]> Signed-off-by: Imre Deak <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
2024-02-27drm/i915: Fix display bpp limit computation during system resumeImre Deak3-7/+20
The system resume display mode restoration should happen with an output configuration matching that of the suspend time saved mode. Since the restored mode configuration is subject to the bpp fallback logic, starting out with an unlimited bpp and reducing the bpp as required by any (MST) link BW limit, the resulting bpp will match the one during suspend only if the BW limit checks during suspend and resume are applied in an identical way. The latter is not guaranteed at the moment, since the pre-suspend MST topology may not be in place during resume (for instance if the MST sink was disconnected while being suspended), which makes the MST link BW check accept the unlimited bpp mode configuration unconditionally without ensuring that the required BW fits into the available MST link BW. To fix the above, initialize the bpp fallback logic with the max link bpp / force-FEC limits left behind by the suspend time mode save. Reviewed-by: Uma Shankar <[email protected]> Reviewed-by: Ville Syrjälä <[email protected]> Signed-off-by: Imre Deak <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
2024-02-27drm/dp: Add support for DP tunnelingImre Deak5-0/+2280
Add support for Display Port tunneling. For now this includes the support for Bandwidth Allocation Mode (BWA), leaving adding Panel Replay support for later. BWA allows using displays that share the same (Thunderbolt) link with their maximum resolution. Atm, this may not be possible due to the coarse granularity of partitioning the link BW among the displays on the link: the BW allocation policy is in a SW/FW/HW component on the link (on Thunderbolt it's the SW or FW Connection Manager), independent of the driver. This policy will set the DPRX maximum rate and lane count DPCD registers the GFX driver will see (0x00000, 0x00001, 0x02200, 0x02201) based on the available link BW. The granularity of the current BW allocation policy is coarse, based on the required link rate in the 1.62Gbs..8.1Gbps range and it may prevent using higher resolutions all together: the display connected first will get a share of the link BW which corresponds to its full DPRX capability (regardless of the actual mode it uses). A subsequent display connected will only get the remaining BW, which could be well below its full capability. BWA solves the above coarse granularity (reducing it to a 250Mbs..1Gps range) and first-come/first-served issues by letting the driver request the BW for each display on a link which reflects the actual modes the displays use. This patch adds the DRM core helper functions, while a follow-up change in the patchset takes them into use in the i915 driver. v2: - Fix prepare_to_wait vs. wake-up cond check order in allocate_tunnel_bw(). (Ville) - Move tunnel==NULL checks from callers in drivers to here. (Ville) - Avoid var inits in declaration blocks that can fail or have side-effects. (Ville) - Use u8 for driver and group IDs. (Ville) - Simplify API removing drm_dp_tunnel_get/put_untracked(). (Ville) - Reuse str_yes_no() instead of a local yes_no_chr(). (Ville) - s/drm_dp_tunnel_atomic_clear_state()/free_tunnel_state() and unexport the function. (Ville) - s/clear_tunnel_group_state()/free_group_state() and move kfree() to this function. (Ville) - Add separate group_free_bw() helper and describe what the tunnel estimated BW includes. (Ville) - Improve help text for CONFIG_DRM_DISPLAY_DP_TUNNEL. (Ville) - Add code comment explaining the purpose of DPCD reg read helpers. (Ville) - Add code comment describing the tunnel group name prefix format. (Ville) - Report the allocated BW as undetermined until the first allocation request. - Skip allocation requests matching the previous request. - Clear any stale BW request status flags before a new request. - Add missing error return check of drm_dp_tunnel_atomic_get_group_state() in drm_dp_tunnel_atomic_set_stream_bw(). - Add drm_dp_tunnel_get_allocated_bw(). - s/drm_dp_tunnel_atomic_get_tunnel_bw/drm_dp_tunnel_atomic_get_required_bw - Fix return value description in function doc of drm_dp_tunnel_detect(). - Add function documentation to all exported functions. v3: - Improve grouping of fields in drm_dp_tunnel_group struct. (Uma) - Fix validating the BW granularity DPCD reg value. (Uma) - Document return value of check_and_clear_status_change(). (Uma) - Fix resetting drm_dp_tunnel_ref::tunnel in drm_dp_tunnel_ref_put(). (Ville) - Allow for ALLOCATED_BW to change after a BWA enable/disable sequence. Cc: Ville Syrjälä <[email protected]> Reviewed-by: Uma Shankar <[email protected]> Reviewed-by: Ville Syrjälä <[email protected]> Signed-off-by: Imre Deak <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
2024-02-27drm/dp: Add drm_dp_max_dprx_data_rate()Imre Deak2-0/+31
Copy intel_dp_max_data_rate() to DRM core. It will be needed by a follow-up DP tunnel patch, checking the maximum rate the DPRX (sink) supports. Accordingly use the drm_dp_max_dprx_data_rate() name for clarity. This patchset will also switch calling the new DRM function in i915 instead of intel_dp_max_data_rate(). While at it simplify the function documentation/comments, removing parts described already by drm_dp_bw_channel_coding_efficiency(). v2: (Ville) - Remove max_link_rate_kbps. - Simplify the function documentation. v3: - Rebased on latest drm-tip. Cc: Ville Syrjälä <[email protected]> Reviewed-by: Uma Shankar <[email protected]> Reviewed-by: Ville Syrjälä <[email protected]> Signed-off-by: Imre Deak <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
2024-02-27MAINTAINERS: Update drm.git URLMaxime Ripard1-2/+2
Now that the main DRM tree has moved to Gitlab, adjust the MAINTAINERS git trees to reflect the location change. Reviewed-by: Javier Martinez Canillas <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Maxime Ripard <[email protected]> Signed-off-by: Daniel Vetter <[email protected]>
2024-02-27firmware/sysfb: fix an error code in sysfb_init()Dan Carpenter1-1/+3
This error path accidentally returns success when it should preserve the error code from sysfb_parent_dev(). Fixes: 4e754597d603 ("firmware/sysfb: Create firmware device only for enabled PCI devices") Reviewed-by: Thomas Zimmermann <[email protected]> Signed-off-by: Dan Carpenter <[email protected]> Signed-off-by: Thomas Zimmermann <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
2024-02-27drm/i915/hdcp: Read Rxcaps for robustibilitySuraj Kandpal1-9/+20
We see some monitors and docks report incorrect hdcp version and capability in first few reads so we read rx_caps three times before we conclude the monitor's or docks HDCP capability --v2 -Add comment to justify the 3 time read loop for hdcp capability[Ankit] Signed-off-by: Suraj Kandpal <[email protected]> Reviewed-by: Ankit Nautiyal <[email protected]> Signed-off-by: Ankit Nautiyal <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
2024-02-27drm/i915/hdcp: Allocate stream id after HDCP AKE stageSuraj Kandpal1-72/+65
Allocate stream id after HDCP AKE stage and not before so that it can also be done during link integrity check. Right now for MST scenarios LIC fails after hdcp enablement for this reason. --v2 -no need for else block in prepare_streams function [Ankit] --v3 -remove intel_hdcp argument from required_content_stream function [Ankit] Signed-off-by: Suraj Kandpal <[email protected]> Reviewed-by: Ankit Nautiyal <[email protected]> Signed-off-by: Ankit Nautiyal <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
2024-02-27drm/i915/hdcp: Don't enable HDCP1.4 directly from check_linkSuraj Kandpal1-9/+3
Whenever LIC fails instead of moving from ENABLED to DESIRED CP property we directly enable HDCP1.4 without informing the userspace of this failure in link integrity check. Now we will just update the value to DESIRED send the event to userspace and then continue with the normal flow of HDCP enablement. Signed-off-by: Suraj Kandpal <[email protected]> Reviewed-by: Ankit Nautiyal <[email protected]> Signed-off-by: Ankit Nautiyal <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
2024-02-27drm/i915/hdcp: Don't enable HDCP2.2 directly from check_linkSuraj Kandpal1-23/+2
Whenever LIC fails instead of moving from ENABLED to DESIRED CP property we directly enable HDCP2.2 without informing the userspace of this failure in link integrity check. Now we will just update the value to DESIRED send the event to userspace and then continue with the normal flow of HDCP enablement. --v2 -Don't change the function prototype in this function [Ankit] Signed-off-by: Suraj Kandpal <[email protected]> Reviewed-by: Ankit Nautiyal <[email protected]> Signed-off-by: Ankit Nautiyal <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
2024-02-27drm/i915/hdcp: Extract hdcp structure from correct connectorSuraj Kandpal1-2/+5
Currently intel_hdcp is not being extracted from primary connector this patch fixes that. Fixes: 524240b231ea ("drm/i915/hdcp: Propagate aux info in DP HDCP functions") Signed-off-by: Suraj Kandpal <[email protected]> Reviewed-by: Ankit Nautiyal <[email protected]> Signed-off-by: Ankit Nautiyal <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
2024-02-27drm/mediatek: Filter modes according to hardware capabilityHsiao Chien Sung6-0/+116
We found a stability issue on MT8188 when connecting an external monitor in 2560x1440@144Hz mode. Checked with the designer, there is a function called "prefetch" which is working during VBP (triggered by VSYNC). If the duration of VBP is too short, the throughput requirement could increase more than 3 times and lead to stability issues. The mode settings that VDOSYS supports are mainly affected by clock rate and throughput, display driver should filter these settings according to the SoC's limitation to avoid unstable conditions. Since currently the mode filter is only available on MT8195 and MT8188 and they share the same compatible name, the reference number (8250) is hard coded instead of in the driver data. Signed-off-by: Hsiao Chien Sung <[email protected]> Reviewed-by: CK Hu <[email protected]> Link: https://patchwork.kernel.org/project/dri-devel/patch/[email protected]/ Signed-off-by: Chun-Kuang Hu <[email protected]>
2024-02-26drm/amdkfd: Add partition id field to location_idLijo Lazar1-2/+3
On devices which have multi-partition nodes, keep partition id in location_id[31:28]. Signed-off-by: Lijo Lazar <[email protected]> Reviewed-by: Jonathan Kim <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
2024-02-26drm/amdgpu: reserve more memory for MES runtime DRAMTim Huang1-3/+10
This patch fixes a MES firmware boot failure issue when backdoor loading the MES firmware. MES firmware runtime DRAM size is changed to 512k, the driver needs to reserve this amount of memory in FB, otherwise adjacent memory will be overwritten by the MES firmware startup code. Signed-off-by: Tim Huang <[email protected]> Reviewed-by: Yifan Zhang <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
2024-02-26drm/amdgpu: Enable gpu reset for S3 abort cases on Raven seriesPrike Liang1-20/+25
Currently, GPU resets can now be performed successfully on the Raven series. While GPU reset is required for the S3 suspend abort case. So now can enable gpu reset for S3 abort cases on the Raven series. Signed-off-by: Prike Liang <[email protected]> Acked-by: Alex Deucher <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
2024-02-26drm/amdgpu/pm: Fix the power1_min_cap valueMa Jun5-25/+20
It's unreasonable to use 0 as the power1_min_cap when OD is disabled. So, use the same lower limit as the value used when OD is enabled. Fixes: 1958946858a6 ("drm/amd/pm: Support for getting power1_cap_min value") Signed-off-by: Ma Jun <[email protected]> Acked-by: Alex Deucher <[email protected]> Acked-by: Christian König <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
2024-02-26drm/amdgpu: Do not program SQ_TIMEOUT_CONFIG in SRIOVVictor Lu1-0/+3
VF should not program this register. Signed-off-by: Victor Lu <[email protected]> Reviewed-by: Zhigang Luo <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
2024-02-26drm/amdgpu: Fix ineffective ras_mask settingsStanley.Yang1-0/+1
Check amdgpu_ras_mask to fix ineffective ras_mask setting due to special asic without sram ecc enable but with poison supported. Signed-off-by: Stanley.Yang <[email protected]> Reviewed-by: Tao Zhou <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
2024-02-26drm/amdkfd: Skip packet submission on fatal errorLijo Lazar6-7/+23
If fatal error is detected, packet submission won't go through. Return error in such cases. Also, avoid waiting for fence when fatal error is detected. Signed-off-by: Lijo Lazar <[email protected]> Reviewed-by: Asad Kamal <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
2024-02-26drm/amdgpu: Add fatal error detected flagLijo Lazar3-0/+39
For a RAS error that needs a full reset to recover, set the fatal error status. Clear the status once the device is reset. Signed-off-by: Lijo Lazar <[email protected]> Reviewed-by: Asad Kamal <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
2024-02-26drm/amd/display: Prevent potential buffer overflow in map_hw_resourcesSrinivasan Shanmugam1-0/+5
Adds a check in the map_hw_resources function to prevent a potential buffer overflow. The function was accessing arrays using an index that could potentially be greater than the size of the arrays, leading to a buffer overflow. Adds a check to ensure that the index is within the bounds of the arrays. If the index is out of bounds, an error message is printed and break it will continue execution with just ignoring extra data early to prevent the buffer overflow. Reported by smatch: drivers/gpu/drm/amd/amdgpu/../display/dc/dml2/dml2_wrapper.c:79 map_hw_resources() error: buffer overflow 'dml2->v20.scratch.dml_to_dc_pipe_mapping.disp_cfg_to_stream_id' 6 <= 7 drivers/gpu/drm/amd/amdgpu/../display/dc/dml2/dml2_wrapper.c:81 map_hw_resources() error: buffer overflow 'dml2->v20.scratch.dml_to_dc_pipe_mapping.disp_cfg_to_plane_id' 6 <= 7 Fixes: 7966f319c66d ("drm/amd/display: Introduce DML2") Cc: Rodrigo Siqueira <[email protected]> Cc: Roman Li <[email protected]> Cc: Qingqing Zhuo <[email protected]> Cc: Aurabindo Pillai <[email protected]> Cc: Tom Chung <[email protected]> Signed-off-by: Srinivasan Shanmugam <[email protected]> Suggested-by: Roman Li <[email protected]> Reviewed-by: Roman Li <[email protected]> Reviewed-by: Rodrigo Siqueira <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
2024-02-26drm/amdgpu: Fix the runtime resume failure issueMa Jun1-0/+3
Don't set power state flag when system enter runtime suspend, or it may cause runtime resume failure issue. Fixes: 3a9626c816db ("drm/amd: Stop evicting resources on APUs in suspend") Signed-off-by: Ma Jun <[email protected]> Reviewed-by: Mario Limonciello <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
2024-02-26drm/mgag200: Add a workaround for low-latencyJocelyn Falempe3-0/+37
We found a regression in v5.10 on real-time server, using the rt-kernel and the mgag200 driver. It's some really specialized workload, with <10us latency expectation on isolated core. After the v5.10, the real time tasks missed their <10us latency when something prints on the screen (fbcon or printk) The regression has been bisected to 2 commits: commit 0b34d58b6c32 ("drm/mgag200: Enable caching for SHMEM pages") commit 4862ffaec523 ("drm/mgag200: Move vmap out of commit tail") The first one changed the system memory framebuffer from Write-Combine to the default caching. Before the second commit, the mgag200 driver used to unmap the framebuffer after each frame, which implicitly does a cache flush. Both regressions are fixed by this commit, which restore WC mapping for the framebuffer in system memory, and add a cache flush. This is only needed on x86_64, for low-latency workload, so the new kconfig DRM_MGAG200_IOBURST_WORKAROUND depends on PREEMPT_RT and X86. For more context, the whole thread can be found here [1] Signed-off-by: Jocelyn Falempe <[email protected]> Link: https://lore.kernel.org/dri-devel/[email protected]/ # 1 Acked-by: Thomas Zimmermann <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
2024-02-26drm/msm/adreno: Add A702 supportKonrad Dybcio3-9/+117
The A702 is a weird mix of 600 and 700 series.. Perhaps even a testing ground for some A7xx features with good ol' A6xx silicon. It's basically A610 that's been beefed up with some new registers and hw features (like APRIV!), that was then cut back in size, memory bus and some other ways. Add support for it, tested with QCM2290 / RB1. Signed-off-by: Konrad Dybcio <[email protected]> Patchwork: https://patchwork.freedesktop.org/patch/579752/ Signed-off-by: Rob Clark <[email protected]>
2024-02-26drm/msm: Fix page fault client detection on a660 family and a7xxConnor Abbott1-10/+85
Signed-off-by: Connor Abbott <[email protected]> Patchwork: https://patchwork.freedesktop.org/patch/575918/ Signed-off-by: Rob Clark <[email protected]>
2024-02-26drm/msm: More fully implement devcoredump for a7xxConnor Abbott4-632/+1462
Use the vendor-provided snapshot headers to dump the contextless registers, shader blocks, and cluster registers. Still unimplemented are the GMU registers and "external core" registers, which would require more work because they use register spaces we don't have described in devicetree and dump registers from multiple spaces in a single list. Signed-off-by: Connor Abbott <[email protected]> Patchwork: https://patchwork.freedesktop.org/patch/575919/ Signed-off-by: Rob Clark <[email protected]>
2024-02-26drm/msm: Fix snapshotting a7xx indexed regsConnor Abbott1-2/+2
We were overwriting the last indexed reg (CP_ROQ) and we were snapshotting the same CP_MEMPOOL block twice instead of snapshotting CP_BV_MEMPOOL as intended. Signed-off-by: Connor Abbott <[email protected]> Patchwork: https://patchwork.freedesktop.org/patch/575920/ Signed-off-by: Rob Clark <[email protected]>
2024-02-26drm/msm: Import a7xx crashdump register lists from kgslConnor Abbott2-0/+1681
This imports these files as-is, the following commits will have to make slight changes to get them to compile because downstream uses un-namespaced enums that conflict with a6xx. However we should try as much as possible to stick to downstream's format to make importing new gens easier. Signed-off-by: Connor Abbott <[email protected]> Patchwork: https://patchwork.freedesktop.org/patch/575921/ Signed-off-by: Rob Clark <[email protected]>
2024-02-26drm/msm: add support for A750 GPUNeil Armstrong4-5/+49
Add support for the A750 GPU found on the SM8650 platform Unlike the the very close A740 GPU on the SM8550 SoC, the A750 GPU doesn't have an HWCFG block but a separate register set. The A750 GPU info are added under the adreno_is_a750() macro and the ADRENO_7XX_GEN3 family id. Reviewed-by: Konrad Dybcio <[email protected]> Signed-off-by: Neil Armstrong <[email protected]> Patchwork: https://patchwork.freedesktop.org/patch/578693/ Signed-off-by: Rob Clark <[email protected]>
2024-02-26dt-bindings: arm-smmu: Document SM8650 GPU SMMUNeil Armstrong1-2/+4
Document the GPU SMMU found on the SM8650 platform. Signed-off-by: Neil Armstrong <[email protected]> Reviewed-by: Krzysztof Kozlowski <[email protected]> Patchwork: https://patchwork.freedesktop.org/patch/578685/ Signed-off-by: Rob Clark <[email protected]>
2024-02-26dt-bindings: arm-smmu: fix SM8[45]50 GPU SMMU if conditionNeil Armstrong1-2/+11
The if condition for the SM8[45]50 GPU SMMU is too large, add the other compatible strings to the condition to only allow the clocks for the GPU SMMU nodes. Fixes: 4fff78dc2490 ("dt-bindings: arm-smmu: Document SM8[45]50 GPU SMMU") Suggested-by: Dmitry Baryshkov <[email protected]> Signed-off-by: Neil Armstrong <[email protected]> Reviewed-by: Krzysztof Kozlowski <[email protected]> Patchwork: https://patchwork.freedesktop.org/patch/578686/ Signed-off-by: Rob Clark <[email protected]>
2024-02-26dt-bindings: display/msm/gmu: Document Adreno 750 GMUNeil Armstrong1-0/+1
Document the Adreno 750 GMU found on the SM8650 platform. Reviewed-by: Konrad Dybcio <[email protected]> Acked-by: Conor Dooley <[email protected]> Signed-off-by: Neil Armstrong <[email protected]> Patchwork: https://patchwork.freedesktop.org/patch/578684/ Signed-off-by: Rob Clark <[email protected]>
2024-02-26drm/msm/adreno: Add A305B supportLuca Weiss3-7/+26
Add support for the Adreno 305B GPU that is found in MSM8226(v2) SoC. Previously this was mistakenly claimed to be supported but using wrong a configuration. In MSM8226v1 there's also a A305B but with chipid 0x03000510 which should work with the same configuration but due to lack of hardware for testing this is not added. Reviewed-by: Konrad Dybcio <[email protected]> Signed-off-by: Luca Weiss <[email protected]> Reviewed-by: David Heidelberg <[email protected]> Patchwork: https://patchwork.freedesktop.org/patch/575274/ Signed-off-by: Rob Clark <[email protected]>
2024-02-26dt-bindings: display/msm: gpu: Allow multiple digits for patchidLuca Weiss1-3/+3
Some GPUs like the Adreno A305B has a patchid higher than 9, in this case 18. Make sure the regexes can account for that. Acked-by: Krzysztof Kozlowski <[email protected]> Signed-off-by: Luca Weiss <[email protected]> Reviewed-by: David Heidelberg <[email protected]> Patchwork: https://patchwork.freedesktop.org/patch/575272/ Signed-off-by: Rob Clark <[email protected]>
2024-02-26drm/msm/a7xx: Fix LLC typoRob Clark1-1/+1
We'd miss actually activating LLC. Signed-off-by: Rob Clark <[email protected]> Reviewed-by: Konrad Dybcio <[email protected]> Fixes: af66706accdf ("drm/msm/a6xx: Add skeleton A7xx support") Patchwork: https://patchwork.freedesktop.org/patch/573043/
2024-02-26drm/msm/adreno: Update generated headersRob Clark9-1738/+5589
This updates the GPU headers to latest from mesa, using gen_header.py (which is used to generate headers at bulid time for mesa), rather than headergen2 (which doesn't have proper support for A6XX vs A7XX register variants). Mostly just uninteresting churn, but there are a couple spots in a7xx paths which update REG_A6XX_foo to REG_A7XX_foo for registers which are a7xx specific. Cc: Connor Abbott <[email protected]> Signed-off-by: Rob Clark <[email protected]> Acked-by: Konrad Dybcio <[email protected]> Patchwork: https://patchwork.freedesktop.org/patch/574880/
2024-02-26drm/msm/adreno: Add support for SM7150 SoC machineDanila Tikhonov1-0/+22
SM7150 has 5 power levels which correspond to 5 speed-bin values: 0, 128, 146, 167, 172. Speed-bin value is calulated as FMAX/4.8MHz round up to zero decimal places. Also a618 on SM7150 uses a615 zapfw. Add a squashed version (.mbn). Add this as machine = "qcom,sm7150", because speed-bin values are different from atoll (sc7180/sm7125). Signed-off-by: Danila Tikhonov <[email protected]> Reviewed-by: Konrad Dybcio <[email protected]> Patchwork: https://patchwork.freedesktop.org/patch/578902/ Signed-off-by: Rob Clark <[email protected]>
2024-02-26drm/msm/a6xx: specify UBWC config for sc7180Dmitry Baryshkov1-2/+1
Historically the Adreno driver has not been updating memory configuration registers on a618 (SC7180 platform) implying that the default configuration is fine. After the rework performed in the commit 8814455a0e54 ("drm/msm: Refactor UBWC config setting") the function a6xx_calc_ubwc_config() still contained this shortcut and did not calculate UBWC configuration. However the function which now actually updates hardware registers, a6xx_set_ubwc_config(), doesn't contain such check. Rather than adding the check to a6xx_set_ubwc_config(), fill in the UBWC config for a618 (based on readings from SC7180). Reported-by: Leonard Lausen <[email protected]> Link: https://gitlab.freedesktop.org/drm/msm/-/issues/49 Fixes: 8814455a0e54 ("drm/msm: Refactor UBWC config setting") Cc: Connor Abbott <[email protected]> Signed-off-by: Dmitry Baryshkov <[email protected]> Reviewed-by: Connor Abbott <[email protected]> Patchwork: https://patchwork.freedesktop.org/patch/579113/ Signed-off-by: Rob Clark <[email protected]>
2024-02-26Merge drm/drm-next into drm-misc-next-fixesThomas Zimmermann1748-10927/+47790
Backmerging from drm/drm-next to prepare drm-misc-next-fixes for the rest of the release cycle. Signed-off-by: Thomas Zimmermann <[email protected]>
2024-02-26Merge drm/drm-next into drm-misc-nextThomas Zimmermann1748-10927/+47790
Backmerging to get drm-misc-next up to v6.8-rc6. Signed-off-by: Thomas Zimmermann <[email protected]>
2024-02-26drm/edid/firmware: Remove built-in EDIDsMaxime Ripard12-759/+19
The EDID firmware loading mechanism introduced a few built-in EDIDs that could be forced on any connector, bypassing the EDIDs it exposes. While convenient, this limited set of EDIDs doesn't take into account the connector type, and we can end up with an EDID that is completely invalid for a given connector. For example, the edid/800x600.bin file matches the following EDID: edid-decode (hex): 00 ff ff ff ff ff ff 00 31 d8 00 00 00 00 00 00 05 16 01 03 6d 1b 14 78 ea 5e c0 a4 59 4a 98 25 20 50 54 01 00 00 45 40 01 01 01 01 01 01 01 01 01 01 01 01 01 01 a0 0f 20 00 31 58 1c 20 28 80 14 00 15 d0 10 00 00 1e 00 00 00 ff 00 4c 69 6e 75 78 20 23 30 0a 20 20 20 20 00 00 00 fd 00 3b 3d 24 26 05 00 0a 20 20 20 20 20 20 00 00 00 fc 00 4c 69 6e 75 78 20 53 56 47 41 0a 20 20 00 c2 ---------------- Block 0, Base EDID: EDID Structure Version & Revision: 1.3 Vendor & Product Identification: Manufacturer: LNX Model: 0 Made in: week 5 of 2012 Basic Display Parameters & Features: Analog display Signal Level Standard: 0.700 : 0.000 : 0.700 V p-p Blank level equals black level Sync: Separate Composite Serration Maximum image size: 27 cm x 20 cm Gamma: 2.20 DPMS levels: Standby Suspend Off RGB color display First detailed timing is the preferred timing Color Characteristics: Red : 0.6416, 0.3486 Green: 0.2919, 0.5957 Blue : 0.1474, 0.1250 White: 0.3125, 0.3281 Established Timings I & II: DMT 0x09: 800x600 60.316541 Hz 4:3 37.879 kHz 40.000000 MHz Standard Timings: DMT 0x09: 800x600 60.316541 Hz 4:3 37.879 kHz 40.000000 MHz Detailed Timing Descriptors: DTD 1: 800x600 60.316541 Hz 4:3 37.879 kHz 40.000000 MHz (277 mm x 208 mm) Hfront 40 Hsync 128 Hback 88 Hpol P Vfront 1 Vsync 4 Vback 23 Vpol P Display Product Serial Number: 'Linux #0' Display Range Limits: Monitor ranges (GTF): 59-61 Hz V, 36-38 kHz H, max dotclock 50 MHz Display Product Name: 'Linux SVGA' Checksum: 0xc2 So, an analog monitor EDID. However, if the connector was an HDMI monitor for example, it breaks the HDMI specification that requires, among other things, a digital display, the VIC 1 mode and an HDMI Forum Vendor Specific Data Block in an CTA-861 extension. We thus end up with a completely invalid EDID, which thus might confuse HDMI-related code that could parse it. After some discussions on IRC, we identified mainly two ways to fix this: - We can either create more EDIDs for each connector type to provide a built-in EDID that matches the resolution passed in the name, and still be a sensible EDID for that connector type; - Or we can just prevent the EDID to be exposed to userspace if it's built-in. Or possibly both. However, the conclusion was that maybe we just don't need the built-in EDIDs at all and we should just get rid of them. So here we are. Acked-by: Daniel Vetter <[email protected]> Acked-by: Jani Nikula <[email protected]> Acked-by: Pekka Paalanen <[email protected]> Acked-by: Thomas Zimmermann <[email protected]> Signed-off-by: Maxime Ripard <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
2024-02-26Merge v6.8-rc6 into drm-nextDaniel Vetter1110-5044/+9605
Thomas Zimmermann asked to backmerge -rc6 for drm-misc branches, there's a few same-area-changed conflicts (xe and amdgpu mostly) that are getting a bit too annoying. Signed-off-by: Daniel Vetter <[email protected]>
2024-02-26Merge tag 'drm-habanalabs-next-2024-02-26' of ↵Daniel Vetter21-510/+1008
https://git.kernel.org/pub/scm/linux/kernel/git/ogabbay/linux into drm-next This tag contains habanalabs driver and accel changes for v6.9. The notable changes are: - New features and improvements: - Configure interrupt affinity according to NUMA nodes for the MSI-X interrupts that are assigned to the userspace application which acquires the device. - Move the HBM MMU page tables to reside inside the HBM to minimize latency when doing page-walks. - Improve the device reset mechanism when consecutive heartbeat failures occur (firmware fails to ack on heartbeat message). - Check also extended errors in the PCIe addr_dec interrupt information. - Rate limit the error messages that can be printed to dmesg log by userspace actions. - Firmware related fixes: - Handle requests from firmware to reserve device memory - Bug fixes and code cleanups: - constify the struct device_type usage in accel (accel_sysfs_device_minor). - Fix the PCI health check by reading uncached register. - Fix reporting of drain events. - Fix debugfs files permissions. - Fix calculation of DRAM BAR base address. Signed-off-by: Daniel Vetter <[email protected]> From: Oded Gabbay <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
2024-02-26Merge tag 'drm-xe-next-2024-02-25' of ↵Daniel Vetter141-1187/+6518
ssh://gitlab.freedesktop.org/drm/xe/kernel into drm-next drm/xe feature pull for v6.9: UAPI Changes: - New query to the GuC firmware submission version. (José Roberto de Souza) - Remove unused persistent exec_queues (Thomas Hellström) - Add vram frequency sysfs attributes (Sujaritha Sundaresan, Rodrigo Vivi) - Add the flag XE_VM_BIND_FLAG_DUMPABLE to notify devcoredump that mapping should be dumped (Maarten Lankhorst) Cross-drivers Changes: - Make sure intel_wakeref_t is treated as opaque type on i915-display and fix its type on xe Driver Changes: - Drop pre-production workarounds (Matt Roper) - Drop kunit tests for unsuported platforms: PVC and pre-production DG2 (Lucas De Marchi) - Start pumbling SR-IOV support with memory based interrupts for VF (Michal Wajdeczko) - Allow to map BO in GGTT with PAT index corresponding to XE_CACHE_UC to work with memory based interrupts (Michal Wajdeczko) - Improve logging with GT-oriented drm_printers (Michal Wajdeczko) - Add GuC Doorbells Manager as prep work SR-IOV during VF provisioning ((Michal Wajdeczko) - Refactor fake device handling in kunit integration ((Michal Wajdeczko) - Implement additional workarounds for xe2 and MTL (Tejas Upadhyay, Lucas De Marchi, Shekhar Chauhan, Karthik Poosa) - Program a few registers according to perfomance guide spec for Xe2 (Shekhar Chauhan) - Add error handling for non-blocking communication with GuC (Daniele Ceraolo Spurio) - Fix remaining 32b build issues and enable it back (Lucas De Marchi) - Fix build with CONFIG_DEBUG_FS=n (Jani Nikula) - Fix warnings from GuC ABI headers (Matthew Brost) - Introduce Relay Communication for SR-IOV for VF <-> GuC <-> PF (Michal Wajdeczko) - Add mocs reset kunit (Ruthuvikas Ravikumar) - Fix spellings (Colin Ian King) - Disable mid-thread preemption when not properly supported by hardware (Nirmoy Das) - Release mmap mappings on rpm suspend (Badal Nilawar) - Fix BUG_ON on xe_exec by moving fence reservation to the validate stage (Matthew Auld) - Fix xe_exec by reserving extra fence slot for CPU bind (Matthew Brost) - Fix xe_exec with full long running exec queue, now returning -EWOULDBLOCK to userspace (Matthew Brost) - Fix CT irq handler when CT is disabled (Matthew Brost) - Fix VM_BIND_OP_UNMAP_ALL without any bound vmas (Thomas Hellström) - Fix missing __iomem annotations (Thomas Hellström) - Fix exec queue priority handling with GuC (Brian Welty) - Fix setting SLPC flag to GuC when it's not supported (Vinay Belgaumkar) - Fix C6 disabling without SLPC (Matt Roper) - Drop -Wstringop-overflow to fix build with GCC11 (Paul E. McKenney) - Circumvent bogus -Wstringop-overflow in one case (Arnd Bergmann) - Refactor exec_queue user extensions handling and fix USM attributes being applied too late (Brian Welty) - Use circ_buf head/tail convention (Matthew Brost) - Fail build if circ_buf-related defines are modified with incompatible values (Matthew Brost) - Fix several error paths (Dan Carpenter) - Fix CCS copy for small VRAM copy chunks (Thomas Hellström) - Rework driver initialization order and paths to account for driver running in VF mode (Michal Wajdeczko) - Initialize GuC earlier during probe to handle driver in VF mode (Michał Winiarski) - Fix migration use of MI_STORE_DATA_IMM to write PTEs (Matt Roper) - Fix bounds checking in __xe_bo_placement_for_flags (Brian Welty) - Drop display dependency on CONFIG_EXPERT (Jani Nikula) - Do not hand-roll kstrdup when creating snapshot (Michal Wajdeczko) - Stop creating one kunit module per kunit suite (Lucas De Marchi) - Reduce scope and constify variables (Thomas Hellström, Jani Nikula, Michal Wajdeczko) - Improve and document xe_guc_ct_send_recv() (Michal Wajdeczko) - Add proxy communication between CSME and GSC uC (Daniele Ceraolo Spurio) - Fix size calculation when writing pgtable (Fei Yang) - Make sure cfb is page size aligned in stolen memory (Vinod Govindapillai) - Stop printing guc log to dmesg when waiting for GuC fails (Rodrigo Vivi) - Use XE_CACHE_WB instead of XE_CACHE_NONE for cpu coherency on migration (Himal Prasad Ghimiray) - Fix error path in xe_vm_create (Moti Haimovski) - Fix warnings in doc generation (Thomas Hellström, Badal Nilawar) - Improve devcoredump content for mesa debugging (José Roberto de Souza) - Fix crash in trace_dma_fence_init() (José Roberto de Souza) - Improve CT state change handling (Matthew Brost) - Toggle USM support for Xe2 (Lucas De Marchi) - Reduces code duplication to emit PIPE_CONTROL (José Roberto de Souza) - Canonicalize addresses where needed for Xe2 and add to devcoredump (José Roberto de Souza) - Only allow 1 ufence per exec / bind IOCTL (Matthew Brost) - Move all display code to display/ (Jani Nikula) - Fix sparse warnings by correctly using annotations (Thomas Hellström) - Warn on job timeouts instead of using asserts (Matt Roper) - Prefix macros to avoid clashes with sparc (Matthew Brost) - Fix -Walloc-size by subclassing instead of allocating size smaller than struct (Thomas Hellström) - Add status check during gsc header readout (Suraj Kandpal) - Fix infinite loop in vm_bind_ioctl_ops_unwind() (Matthew Brost) - Fix fence refcounting (Matthew Brost) - Fix picking incorrect userptr VMA (Matthew Brost) - Fix USM on integrated by mapping both mem.kernel_bb_pool and usm.bb_pool (Matthew Brost) - Fix double initialization of display power domains (Xiaoming Wang) - Check expected uC versions by major.minor.patch instead of just major.minor (John Harrison) - Bump minimum GuC version to 70.19.2 for all platforms under force-probe (John Harrison) - Add GuC firmware loading for Lunar Lake (John Harrison) - Use kzalloc() instead of hand-rolled alloc + memset (Nirmoy Das) - Fix max page size of VMA during a REMAP (Matthew Brost) - Don't ignore error when pinning pages in kthread (Matthew Auld) - Refactor xe hwmon (Karthik Poosa) - Add debug logs for D3cold (Riana Tauro) - Remove broken TEST_VM_ASYNC_OPS_ERROR (Matthew Brost) - Always allow to override firmware blob with module param and improve log when no firmware is found (Lucas De Marchi) - Fix shift-out-of-bounds due to xe_vm_prepare_vma() accepting zero fences (Thomas Hellström) - Fix shift-out-of-bounds by distinguishing xe_pt/xe_pt_dir subclass (Thomas Hellström) - Fail driver bind if platform supports MSIX, but fails to allocate all of them (Dani Liberman) - Fix intel_fbdev thinking memory is backed by shmem (Matthew Auld) - Prefer drm_dbg() over dev_dbg() (Jani Nikula) - Avoid function cast warnings with clang-16 (Arnd Bergmann) - Enhance xe_bo_move trace (Priyanka Dandamudi) - Fix xe_vma_set_pte_size() not setting the right gpuva.flags for 4K size (Matthew Brost) - Add XE_VMA_PTE_64K VMA flag (Matthew Brost) - Return 2MB page size for compact 64k PTEs (Matthew Brost) - Remove usage of the deprecated ida_simple_xx() API (Christophe JAILLET) - Fix modpost warning on xe_mocs live kunit module (Ashutosh Dixit) - Drop extra newline in from sysfs files (Ashutosh Dixit) - Implement VM snapshot support for BO's and userptr (Maarten Lankhorst) - Add debug logs when skipping rebinds (Matthew Brost) - Fix code generation when mixing build directories (Dafna Hirschfeld) - Prefer struct_size over open coded arithmetic (Erick Archer) Signed-off-by: Daniel Vetter <[email protected]> From: Lucas De Marchi <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/dbdkrwmcoqqlwftuc3olbauazc3pbamj26wa34puztowsnauoh@i3zms7ut4yuw
2024-02-26drm/sun4i: hdmi: Consolidate atomic_check and mode_validMaxime Ripard1-27/+47
atomic_check and mode_valid do not check for the same things which can lead to surprising result if the userspace commits a mode that didn't go through mode_valid. Let's merge the two implementations into a function called by both. Acked-by: Sui Jingfeng <[email protected]> Reviewed-by: Jernej Skrabec <[email protected]> Signed-off-by: Maxime Ripard <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
2024-02-26drm/sun4i: hdmi: Switch to container_of_constMaxime Ripard1-12/+4
container_of_const() allows to preserve the pointer constness and is thus more flexible than inline functions. Let's switch all our instances of container_of() to container_of_const(). Reviewed-by: Sui Jingfeng <[email protected]> Reviewed-by: Jernej Skrabec <[email protected]> Signed-off-by: Maxime Ripard <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
2024-02-26drm/sun4i: hdmi: Move mode_set into enableMaxime Ripard1-24/+14
We're not doing anything special in atomic_mode_set so we can simply merge it into atomic_enable. Acked-by: Sui Jingfeng <[email protected]> Reviewed-by: Jernej Skrabec <[email protected]> Signed-off-by: Maxime Ripard <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
2024-02-26drm/sun4i: hdmi: Convert encoder to atomicMaxime Ripard1-7/+10
The sun4i_hdmi driver still uses the non-atomic variants of the encoder hooks, so let's convert to their atomic equivalents. Acked-by: Sui Jingfeng <[email protected]> Reviewed-by: Jernej Skrabec <[email protected]> Signed-off-by: Maxime Ripard <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
2024-02-26Merge tag 'drm-misc-next-2024-02-22' of ↵Daniel Vetter70-1279/+3748
git://anongit.freedesktop.org/drm/drm-misc into drm-next drm-misc-next for v6.9: UAPI Changes: - changes to fdinfo stats Cross-subsystem Changes: agp: - remove unused type field from struct agp_bridge_data Core Changes: ci: - update test names - cleanups gem: - add stats for shared buffers plus updates to amdgpu, i915, xe Documentation: - fixes syncobj: - fixes to waiting and sleeping Driver Changes: bridge: - adv7511: fix crash on irq during probe - dw_hdmi: set bridge type host1x: - cleanups ivpu: - updates to firmware API - refactor BO allocation meson: - fix error handling in probe panel: - revert "drm/panel-edp: Add auo_b116xa3_mode" - add Himax HX83112A plus DT bindings - ltk500hd1829: add support for ltk101b4029w and admatec 9904370 - simple: add BOE BP082WX1-100 8.2" panel plus DT bindungs renesas: - add RZ/G2L DU support plus DT bindings Signed-off-by: Daniel Vetter <[email protected]> From: Thomas Zimmermann <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]