Age | Commit message (Collapse) | Author |
|
If the IH ring buffer overflows, it's possible that fence signal events
were lost. Check each ring for progress to prevent job timeouts/GPU
hangs due to the fences staying unsignaled despite the work being done.
Cc: Joshua Ashton <joshua@froggi.es>
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: Christian König <christian.koenig@amd.com>
Cc: stable@vger.kernel.org
Signed-off-by: Friedrich Vock <friedrich.vock@gmx.de>
|
|
Allows us to detect subsequent IH ring buffer overflows as well.
Cc: Joshua Ashton <joshua@froggi.es>
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: Christian König <christian.koenig@amd.com>
Cc: stable@vger.kernel.org
Signed-off-by: Friedrich Vock <friedrich.vock@gmx.de>
|
|
Seems more reliable.
Signed-off-by: Joshua Ashton <joshua@froggi.es>
|
|
Otherwise we are determining this timeout based on a time before we go into some spinlock, which is bad.
Signed-off-by: Joshua Ashton <joshua@froggi.es>
|
|
|
|
Signed-off-by: cnssbldsw <cnssbldsw@qualcomm.com>
|
|
without PSR
The check for sending the vsc infopacket to the display was gated behind
PSR (Panel Self Refresh) being enabled.
The vsc infopacket also contains the colorimetry (specifically the
container color gamut) information for the stream on modern DP.
PSR is typically only supported on mobile phone eDP displays, thus this
was not getting sent for typical desktop monitors or TV screens.
This functionality is needed for proper HDR10 functionality on DP as it
wants BT2020 RGB/YCbCr for the container color space.
Signed-off-by: Joshua Ashton <joshua@froggi.es>
|
|
Signed-off-by: cnssbldsw <cnssbldsw@qualcomm.com>
(cherry picked from commit 1c2b795d3e39b17476a3fb5b028fec1375d5a323)
|
|
Add VID and PID to the xpad_device table to allow driver to use the PXN
V900 steering wheel, which is XTYPE_XBOX360 compatible in xinput mode.
Signed-off-by: Matthias Berndt <matthias_berndt@gmx.de>
Link: https://lore.kernel.org/r/4932699.31r3eYUQgx@fedora
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
(cherry picked from commit a65cd7ef5a864bdbbe037267c327786b7759d4c6)
Signed-off-by: Vicki Pfau <vi@endrift.com>
|
|
Add HyperX controller support to xpad_device and xpad_table.
Suggested-by: Chris Toledanes <chris.toledanes@hp.com>
Reviewed-by: Carl Ng <carl.ng@hp.com>
Signed-off-by: Max Nguyen <maxwell.nguyen@hp.com>
Reviewed-by: Rahul Rameshbabu <rrameshbabu@nvidia.com>
Link: https://lore.kernel.org/r/20230906231514.4291-1-hphyperxdev@gmail.com
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
(cherry picked from commit e28a0974d749e5105d77233c0a84d35c37da047e)
Signed-off-by: Vicki Pfau <vi@endrift.com>
|
|
This reverts commit f476acbd4e6c9ce0ee397e993dd21a5d6fbb10d5.
|
|
Signed-off-by: Guilherme G. Piccoli <gpiccoli@igalia.com>
|
|
This improves latency if the GPU is already busy with other work.
This is useful for VR compositors that submit highly latency-sensitive
compositing work on high-priority compute queues while the GPU is busy
rendering the next frame.
Userspace merge request:
https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26462
Signed-off-by: Friedrich Vock <friedrich.vock@gmx.de>
|
|
Fixes frame timings on some non)-VRR external displays going all whacky.
This makes us not use the late vblank irq handler (backporch line 0) and instead send the vblank event immediately on page flip when we know where the vblank is going to be.
Should also improve latency/stutter on internal display potentially too.
|
|
There exists a race condition where closing a uinput device while
another thread is preparing a request can lead to the request being
submitted and waiting until it times out as the queue had already been
flushed in preparation of destroying the udev object. While the request
will eventually time out, it would ideally not be submitted in the first
place and error out beforehand.
By holding the mutex, we can guarantee that the device is actually
properly destroyed before the request gets prepared, and thus is
correctly seen as unavailable for requests.
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=218183
Signed-off-by: Vicki Pfau <vi@endrift.com>
(cherry picked from commit 7cc7c60b27cc550ad7af0b83a57f542637372681)
|
|
Currently, uinput_request_submit will only fail if the request wait times out.
However, in other places this wait is interruptable, and in this specific
location it can lead to issues, such as causing system suspend to hang until
the request times out. Since the timeout is so long, this can cause the
appearance of a total system freeze. Making the wait interruptable resolves
this and possibly further issues.
Signed-off-by: Vicki Pfau <vi@endrift.com>
(cherry picked from commit 15ca4637d3a9b38fe154555999d7f87fd73a0b2f)
|
|
As of version 118 Deck's BIOS implements "SCBP" method that allows
gating power of the controller board (VBUS). Add a basic WO method to
our root MFD device to allow toggling that.
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
(cherry picked from commit f97f32718acc10cbb51fef925842392e80904d74)
|
|
Add support for LED birghtness multiplier exposed via custom sysfs
attribute (led_brightness_multiplier).
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
(cherry picked from commit c4ea057992e189ec8821cde3a65e2cc0529a5088)
|
|
|
|
wifi: ath11k: remove extra warning message, move to debug
See merge request jupiter/linux-integration!30
|
|
This reverts commit a4904c47fcd7fc9152b6b04409feac1130e2033d.
This results in some USB devices to fail to enumerate. Revert pending
further investigation.
|
|
|
|
|
|
<Change Type>: FR(Feature Request)
<<< Test Notes >>>
<Test-Proposal>:
1)BT function(power on/restart/connect/disconnect/iop)
2)BT BR/EDR gamepad wakeup function
3)BT BLE gamepad wakeup function
<Stress-Test>: Y
|
|
500k uNits * 65k max brightness range overflows in the conversion code.
Scale back brightness range to 12bit max.
|
|
This reverts commit f1f63fbd6a31efad6165f4b35b20ba65f25f877b.
|
|
(cherry picked from commit 36301114e8a32e7f13985cbbeff7282d4c599aed)
|
|
amdgpu_dm_plane_set_color_properties
Pure luck we didn't run into this before.
Could be a newly allocated dc_plane_state.
Signed-off-by: Joshua Ashton <joshua@froggi.es>
|
|
This was done on the new copy rather the old one, so it was never actually duplicating any of this state.
Signed-off-by: Joshua Ashton <joshua@froggi.es>
|
|
Signed-off-by: Joshua Ashton <joshua@froggi.es>
|
|
Otherwise we can end up with a frame on unsuspend where color management
is not applied when userspace has not committed themselves.
Fixes re-applying color management on Steam Deck/Gamescope on S3 resume.
Signed-off-by: Joshua Ashton <joshua@froggi.es>
|
|
We are seeing below error randomly in one MSI case:
kernel: ath11k_pci 0000:03:00.0: wmi command 16387 timeout
The reason is, currently, in ath11k_pcic_ext_irq_enable(),
ATH11K_FLAG_EXT_IRQ_ENABLED is set before NAPI is enabled,
this results in a race condition: after
ATH11K_FLAG_EXT_IRQ_ENABLED is set but before NAPI enabled,
CE interrupt breaks in, in one MSI case, since IRQ is shared,
ath11k_pcic_ext_interrupt_handler() is called where IRQ is
disabled. Because NAPI is not enaled at that time, it is
not scheduled, meaning ath11k_pcic_ext_grp_napi_poll() will
not be called at last, so we have no chance to enable IRQ
and finally get above error.
Fix it by setting ATH11K_FLAG_EXT_IRQ_ENABLED after all
NAPI and IRQ work are done.
Signed-off-by: cnssbldsw <cnssbldsw@qualcomm.com>
|
|
[Why]
Currently, we are adding various common modes to drm_connector for DP
and eDP connection even if they aren't part of EDID. This results in
unsupported modes getting added to eDP connector.
[How]
Add common modes to drm_connector only for DP connection.
Signed-off-by: Swapnil Patel <swapnil.patel@amd.com>
|
|
|
|
This reverts commit 3bcc6695165be2fee1e2a2b0216b890348436ac3.
Reverting debugging commits
|
|
mhi_intvec_threaded_handler"
This reverts commit 4cb8ca7274de547cfa8f3bb42e4a0164a91de952.
Reverting debugging commits~
|
|
Firmwares advertising the support of triggering 11d algorithm on the
scan results of a regular scan expects driver to send
WMI_11D_SCAN_START_CMDID before sending WMI_START_SCAN_CMDID.
Triggering 11d algorithm on the scan results of a normal scan helps
in completely avoiding a separate 11d scan for determining regdomain.
This indirectly helps in speeding up connections on station
interfaces on the chipsets supporting 11D scan.
To enable this feature, send WMI_11D_SCAN_START_CMDID just before
sending WMI_START_SCAN_CMDID if the firmware advertises
WMI_TLV_SERVICE_SUPPORT_11D_FOR_HOST_SCAN service flag.
WCN6750 & WCN6855 supports this feature.
Tested-on: WCN6750 hw1.0 AHB WLAN.MSL.1.0.1-01160-QCAMSLSWPLZ-1
Tested-on: WCN6855 hw2.1 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.23
Signed-off-by: Manikanta Pubbisetty <quic_mpubbise@quicinc.com>
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
Link: https://lore.kernel.org/r/20230315161817.29627-1-quic_mpubbise@quicinc.com
|
|
This reverts commit 047982b7295b07ed26fd877d5cdec203d018cb01.
|
|
porch time
Changing refresh rates on OLED displays works differently to typical
LCD panels in that instead of changing the clock, the vertical porch
is extended significantly for lower rates.
This can mean that the vertical porch can be incredibly large for
non-base refresh rates eg. 60Hz on a 90Hz display.
This isn't an issue for X11/typical compositors as their present slop
is 1/2th of the refresh interval so the issue never manifests.
However in Gamescope, the present slop very small and tuned to be
optimal in real-time to try and reduce display latency significantly.
This results in us queueing up the atomic commit inside the vertical
porch region which, due to legacy X11/sync control reasons, means that
AMDGPU must target the next vblank.
This patch changes that behaviour to make FRR displays match what occurs
on VRR/Freesync displays where the vertical porch time is not included
in determining what vblank to target and solves the issue.
This means that smarter compositors can get large input latency
reductions when using OLED displays at lower than base refresh rates.
For upstreaming this patch, it will need to be considered what the best
solution is to enable this behaviour from the userspace side.
Obviously the X11/legacy stuff probably cannot change here -- so we
either need to enable this new behaviour globally for all DRM atomic
clients (ie. basically Wayland compositors) or have a
new DRM_MODE_ATOMIC flag.
Signed-off-by: Joshua Ashton <joshua@froggi.es>
|
|
|
|
|
|
The CSIB command pocket was sent to GFX block while amdgpu driver
loading or S3 resuming time.
PREAMBLE_CNTL packet coming in the ring after PG event where the RLC
already sent its copy of CSIB, send another CSIB pocket will cause
Gfx IB testing timeout when system resume from S3.
And ME FW is jumping to the next Program Stream from the ring that is IB1.
when the INDIRCET_BUFFER packet comes from the test PFP jumps to IB1, but
ME was already in IB1 and jumps to IB2. So they are not aligned anymore.
Driver change is only sending PREAMBLE_CNTL packet once at booting time.
no need to send it during S3 resume.
Error dmesg log:
amdgpu 0000:04:00.0: [drm:amdgpu_ib_ring_tests [amdgpu]] *ERROR* IB test failed on gfx_0.0.0 (-110).
[drm:amdgpu_device_delayed_init_work_handler [amdgpu]] *ERROR* ib ring test failed (-110).
PM: resume of devices complete after 2373.995 msecs
PM: Finishing wakeup.
Signed-off-by: Perry Yuan <perry.yuan@amd.com>
|
|
Signed-off-by: Perry Yuan <perry.yuan@amd.com>
|
|
|
|
|
|
Peer rx_tid is locally copied thrice during peer_rx_tid_cleanup to
send REO_CMD_UPDATE_RX_QUEUE followed by REO_CMD_FLUSH_CACHE to flush
all aged REO descriptors from HW cache.
When sending REO_CMD_FLUSH_CACHE fails, we do dma unmap of already
mapped rx_tid->vaddr and free it. This is not checked during
reo_cmd_list_cleanup() and dp_reo_cmd_free() before trying to free and
unmap again.
Fix this by setting rx_tid->vaddr NULL in rx tid delete and also
wherever freeing it to check in reo_cmd_list_cleanup() and
reo_cmd_free() before trying to free again.
Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1
Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1
Signed-off-by: Sathishkumar Muruganandam <quic_murugana@quicinc.com>
Signed-off-by: Harshitha Prem <quic_hprem@quicinc.com>
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
Link: https://lore.kernel.org/r/20230403182420.23375-2-quic_hprem@quicinc.com
|
|
"__fls" would have an undefined behavior if the argument is passed
as "0". Hence, added changes to handle the same.
Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1
Signed-off-by: Harshitha Prem <quic_hprem@quicinc.com>
Signed-off-by: Nagarajan Maran <quic_nmaran@quicinc.com>
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
Link: https://lore.kernel.org/r/20230403184155.8670-3-quic_nmaran@quicinc.com
|
|
The WMI management rx event has multiple arrays of TLVs, however the common
WMI TLV parser won't handle multiple TLV tags of same type.
So the multiple array tags of WMI management rx TLV is parsed incorrectly
and the length calculated becomes wrong when the target sends multiple
array tags.
Add separate TLV parser to handle multiple arrays for WMI management rx
TLV. This fixes invalid length issue when the target sends multiple array
tags.
Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1
Signed-off-by: Bhagavathi Perumal S <quic_bperumal@quicinc.com>
Co-developed-by: Nagarajan Maran <quic_nmaran@quicinc.com>
Signed-off-by: Nagarajan Maran <quic_nmaran@quicinc.com>
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
Link: https://lore.kernel.org/r/20230320133840.30162-1-quic_nmaran@quicinc.com
|
|
Currently after the hardware restart triggered from the driver, the
station interface connection remains intact, since a disconnect trigger
is not sent to userspace. This can lead to a problem in targets where
the wifi mac sequence is added by the firmware.
After the target restart, its wifi mac sequence number gets reset to
zero. Hence AP to which our device is connected will receive frames with
a wifi mac sequence number jump to the past, thereby resulting in the
AP dropping all these frames, until the frame arrives with a wifi mac
sequence number which AP was expecting.
To avoid such frame drops, its better to trigger a station disconnect
upon target hardware restart which can be done with API
ieee80211_reconfig_disconnect exposed to mac80211.
The other targets are not affected by this change, since the hardware
params flag is not set.
Reported-by: kernel test robot <lkp@intel.com>
Tested-on: WCN6750 hw1.0 AHB WLAN.MSL.1.0.1-00887-QCAMSLSWPLZ-1
Signed-off-by: Youghandhar Chintala <quic_youghand@quicinc.com>
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
Link: https://lore.kernel.org/r/20221104085403.11025-1-quic_youghand@quicinc.com
accepted upstream changes
|
|
Current code does not wait for vdev delete completion on vdev create
failures and tries to send another vdev create followed by vdev set
param to firmware with same vdev id. This causes firmware crash.
Fix this crash by waiting for vdev delete completion on vdev
create failures.
Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.6.0.1-00905-QCAHKSWPL_SILICONZ-1
Signed-off-by: Sowmiya Sree Elavalagan <quic_ssreeela@quicinc.com>
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
Link: https://lore.kernel.org/r/20221011095346.3901-1-quic_ssreeela@quicinc.com
|