From: Antonio Borneo <antonio.borneo(a)st.com>
Current code does not properly computes the max length of LP
commands that can be send during H or V sync, and rely on static
values.
Limiting the max LP length to 4 byte during the V-sync is overly
conservative.
Relax the limit and allows longer LP commands (16 bytes) to be
sent during V-sync.
Signed-off-by: Antonio Borneo <antonio.borneo(a)st.com>
---
drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c | 17 +++++++++--------
1 file …
[View More]changed, 9 insertions(+), 8 deletions(-)
diff --git a/drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c b/drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c
index d580b2aa4ce9..1a24ea648ef8 100644
--- a/drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c
+++ b/drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c
@@ -360,6 +360,15 @@ static void dw_mipi_message_config(struct dw_mipi_dsi *dsi,
bool lpm = msg->flags & MIPI_DSI_MSG_USE_LPM;
u32 val = 0;
+ /*
+ * TODO dw drv improvements
+ * largest packet sizes during hfp or during vsa/vpb/vfp
+ * should be computed according to byte lane, lane number and only
+ * if sending lp cmds in high speed is enable (PHY_TXREQUESTCLKHS)
+ */
+ dsi_write(dsi, DSI_DPI_LP_CMD_TIM, OUTVACT_LPCMD_TIME(16)
+ | INVACT_LPCMD_TIME(4));
+
if (msg->flags & MIPI_DSI_MSG_REQ_ACK)
val |= ACK_RQST_EN;
if (lpm)
@@ -611,14 +620,6 @@ static void dw_mipi_dsi_dpi_config(struct dw_mipi_dsi *dsi,
dsi_write(dsi, DSI_DPI_VCID, DPI_VCID(dsi->channel));
dsi_write(dsi, DSI_DPI_COLOR_CODING, color);
dsi_write(dsi, DSI_DPI_CFG_POL, val);
- /*
- * TODO dw drv improvements
- * largest packet sizes during hfp or during vsa/vpb/vfp
- * should be computed according to byte lane, lane number and only
- * if sending lp cmds in high speed is enable (PHY_TXREQUESTCLKHS)
- */
- dsi_write(dsi, DSI_DPI_LP_CMD_TIM, OUTVACT_LPCMD_TIME(4)
- | INVACT_LPCMD_TIME(4));
}
static void dw_mipi_dsi_packet_handler_config(struct dw_mipi_dsi *dsi)
--
2.17.1
[View Less]
Make sure we can use this on mixed systems.
Signed-off-by: Kristian H. Kristensen <hoegsberg(a)google.com>
---
drivers/dma-buf/udmabuf.c | 3 +++
1 file changed, 3 insertions(+)
Sorry Gerd for all the spam. Once I finally got git send-email
working, I ended up sending a version with all ChromeOS decorations,
of course. Here's a normal upstream version.
Email based workflow - the barrier is real.
Kristian
diff --git a/drivers/dma-buf/udmabuf.c b/drivers/dma-buf/udmabuf.c
index …
[View More]9635897458a0..6f4ff6ede050 100644
--- a/drivers/dma-buf/udmabuf.c
+++ b/drivers/dma-buf/udmabuf.c
@@ -270,6 +270,9 @@ static long udmabuf_ioctl(struct file *filp, unsigned int ioctl,
static const struct file_operations udmabuf_fops = {
.owner = THIS_MODULE,
.unlocked_ioctl = udmabuf_ioctl,
+#ifdef CONFIG_COMPAT
+ .compat_ioctl = udmabuf_ioctl,
+#endif
};
static struct miscdevice udmabuf_misc = {
--
2.28.0.402.g5ffc5be6b7-goog
[View Less]
https://bugzilla.kernel.org/show_bug.cgi?id=209159
Bug ID: 209159
Summary: AMD Vega 20 framebuffer switch fails on 5.9rc2+
Product: Drivers
Version: 2.5
Kernel Version: 5.9-rc2/3
Hardware: x86-64
OS: Linux
Tree: Mainline
Status: NEW
Severity: normal
Priority: P1
Component: Video(DRI - non Intel)
Assignee: drivers_video-dri(a)kernel-bugs.osdl.org
…
[View More]Reporter: ryan(a)testtoast.com
Regression: No
Created attachment 292349
--> https://bugzilla.kernel.org/attachment.cgi?id=292349&action=edit
lspci
Vega 20 (Radeon VII) on X99 platform - boot freezes during FB switch. Booting
without quiet and with earlyprintk=efi,keep shows a stall immediately after
...
[ 1.941238] AMD-Vi: AMD IOMMUv2 driver by Joerg Roedel <jroedel(a)suse.de>
[ 1.941239] AMD-Vi: AMD IOMMUv2 functionality not available on this system
[ 1.948454] nvme nvme0: 20/0/0 default/read/poll queues
[ 1.953176] nvme0n1: p1 p2 p3 p4 p5 p6 p7
[ 1.956313] usb 1-14: new full-speed USB device number 5 using xhci_hcd
[ 1.989790] [drm] amdgpu kernel modesetting enabled.
[ 1.989849] CRAT table not found
[ 1.989850] Virtual CRAT table created for CPU
[ 1.989857] amdgpu: Topology: Add CPU node
[ 2.006244] checking generic (c0000000 300000) vs hw (c0000000 10000000)
[ 2.006246] fb0: switching to amdgpudrmfb from EFI VGA
On -rc1 boot continues normally with
...
[ 2.006315] amdgpu 0000:67:00.0: vgaarb: deactivate vga console
[ 2.006345] amdgpu 0000:67:00.0: enabling device (0106 -> 0107)
[ 2.006408] [drm] initializing kernel modesetting (VEGA20 0x1002:0x66AF
0x1002:0x081E 0xC1).
...
--
You are receiving this mail because:
You are watching the assignee of the bug.
[View Less]
Hi Dave and Daniel,
This small pull request fixes a Kconfig dependency issue introduced in
v5.9-rc1. Among the three patches required to fix the issue, the ASoC
fix has been merged in Linus' tree already. I haven't been able to get
the RapidIO patch reviewed by the subsystem maintainers, so I've
included it here as it's a dependency for the DRM patch.
The following changes since commit f75aef392f869018f78cfedf3c320a6b3fcfda6b:
Linux 5.9-rc3 (2020-08-30 16:01:54 -0700)
are available in the …
[View More]Git repository at:
git://linuxtv.org/pinchartl/media.git tags/drm-xlnx-dpsub-fixes-20200905
for you to fetch changes up to 3e8b2403545efd46c6347002e27eae4708205fd4:
drm: xlnx: dpsub: Fix DMADEVICES Kconfig dependency (2020-09-05 19:52:54 +0300)
----------------------------------------------------------------
Kconfig fixes for DRM_ZYNQMP_DPSUB DMA engine dependency
----------------------------------------------------------------
Laurent Pinchart (2):
rapidio: Replace 'select' DMAENGINES 'with depends on'
drm: xlnx: dpsub: Fix DMADEVICES Kconfig dependency
drivers/gpu/drm/xlnx/Kconfig | 1 +
drivers/rapidio/Kconfig | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)
--
Regards,
Laurent Pinchart
[View Less]
From: Rob Clark <robdclark(a)chromium.org>
NOTE: I have re-ordered the series, and propose that we could merge this
series in the following order:
1) 01-11 - merge via drm / msm-next
2) 12-15 - merge via iommu, no dependency on msm-next pull req
3) 16-18 - patch 16 has a dependency on 02 and 04, so it would
need to come post -rc1 or on following cycle, but I
think it would be unlikely to conflict with other
…
[View More]arm-smmu patches (other than Bjorn's smmu handover
series?)
4) 19-20 - dt bits should be safe to land in any order without
breaking anything
----
This series adds an Adreno SMMU implementation to arm-smmu to allow GPU hardware
pagetable switching.
The Adreno GPU has built in capabilities to switch the TTBR0 pagetable during
runtime to allow each individual instance or application to have its own
pagetable. In order to take advantage of the HW capabilities there are certain
requirements needed of the SMMU hardware.
This series adds support for an Adreno specific arm-smmu implementation. The new
implementation 1) ensures that the GPU domain is always assigned context bank 0,
2) enables split pagetable support (TTBR1) so that the instance specific
pagetable can be swapped while the global memory remains in place and 3) shares
the current pagetable configuration with the GPU driver to allow it to create
its own io-pgtable instances.
The series then adds the drm/msm code to enable these features. For targets that
support it allocate new pagetables using the io-pgtable configuration shared by
the arm-smmu driver and swap them in during runtime.
This version of the series merges the previous patchset(s) [1] and [2]
with the following improvements:
v16: (Respin by Rob)
- Fix indentation
- Re-order series to split drm and iommu parts
v15: (Respin by Rob)
- Adjust dt bindings to keep SoC specific compatible (Doug)
- Add dts workaround for cheza fw limitation
- Add missing 'select IOMMU_IO_PGTABLE' (Guenter)
v14: (Respin by Rob)
- Minor update to 16/20 (only force ASID to zero in one place)
- Addition of sc7180 dtsi patch.
v13: (Respin by Rob)
- Switch to a private interface between adreno-smmu and GPU driver,
dropping the custom domain attr (Will Deacon)
- Rework the SCTLR.HUPCF patch to add new fields in smmu_domain->cfg
rather than adding new impl hook (Will Deacon)
- Drop for_each_cfg_sme() in favor of plain for() loop (Will Deacon)
- Fix context refcnt'ing issue which was causing problems with GPU
crash recover stress testing.
- Spiff up $debugfs/gem to show process information associated with
VMAs
v12:
- Nitpick cleanups in gpu/drm/msm/msm_iommu.c (Rob Clark)
- Reorg in gpu/drm/msm/msm_gpu.c (Rob Clark)
- Use the default asid for the context bank so that iommu_tlb_flush_all works
- Flush the UCHE after a page switch
- Add the SCTLR.HUPCF patch at the end of the series
v11:
- Add implementation specific get_attr/set_attr functions (per Rob Clark)
- Fix context bank allocation (per Bjorn Andersson)
v10:
- arm-smmu: add implementation hook to allocate context banks
- arm-smmu: Match the GPU domain by stream ID instead of compatible string
- arm-smmu: Make DOMAIN_ATTR_PGTABLE_CFG bi-directional. The leaf driver
queries the configuration to create a pagetable and then sends the newly
created configuration back to the smmu-driver to enable TTBR0
- drm/msm: Add context reference counting for submissions
- drm/msm: Use dummy functions to skip TLB operations on per-instance
pagetables
[1] https://lists.linuxfoundation.org/pipermail/iommu/2020-June/045653.html
[2] https://lists.linuxfoundation.org/pipermail/iommu/2020-June/045659.html
Jordan Crouse (12):
drm/msm: Add a context pointer to the submitqueue
drm/msm: Drop context arg to gpu->submit()
drm/msm: Set the global virtual address range from the IOMMU domain
drm/msm: Add support to create a local pagetable
drm/msm: Add support for private address space instances
drm/msm/a6xx: Add support for per-instance pagetables
iommu/arm-smmu: Pass io-pgtable config to implementation specific
function
iommu/arm-smmu: Add support for split pagetables
iommu/arm-smmu: Prepare for the adreno-smmu implementation
iommu/arm-smmu-qcom: Add implementation for the adreno GPU SMMU
dt-bindings: arm-smmu: Add compatible string for Adreno GPU SMMU
arm: dts: qcom: sm845: Set the compatible string for the GPU SMMU
Rob Clark (8):
drm/msm: Remove dangling submitqueue references
drm/msm: Add private interface for adreno-smmu
drm/msm/gpu: Add dev_to_gpu() helper
drm/msm: Set adreno_smmu as gpu's drvdata
drm/msm: Show process names in gem_describe
iommu/arm-smmu: Constify some helpers
iommu/arm-smmu: Add a way for implementations to influence SCTLR
arm: dts: qcom: sc7180: Set the compatible string for the GPU SMMU
.../devicetree/bindings/iommu/arm,smmu.yaml | 9 +-
arch/arm64/boot/dts/qcom/sc7180.dtsi | 2 +-
arch/arm64/boot/dts/qcom/sdm845-cheza.dtsi | 9 +
arch/arm64/boot/dts/qcom/sdm845.dtsi | 2 +-
drivers/gpu/drm/msm/Kconfig | 1 +
drivers/gpu/drm/msm/adreno/a5xx_gpu.c | 12 +-
drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 68 +++++-
drivers/gpu/drm/msm/adreno/a6xx_gpu.h | 1 +
drivers/gpu/drm/msm/adreno/adreno_device.c | 12 +-
drivers/gpu/drm/msm/adreno/adreno_gpu.c | 18 +-
drivers/gpu/drm/msm/adreno/adreno_gpu.h | 3 +-
drivers/gpu/drm/msm/msm_drv.c | 16 +-
drivers/gpu/drm/msm/msm_drv.h | 25 +++
drivers/gpu/drm/msm/msm_gem.c | 25 ++-
drivers/gpu/drm/msm/msm_gem.h | 6 +
drivers/gpu/drm/msm/msm_gem_submit.c | 8 +-
drivers/gpu/drm/msm/msm_gem_vma.c | 10 +
drivers/gpu/drm/msm/msm_gpu.c | 41 +++-
drivers/gpu/drm/msm/msm_gpu.h | 21 +-
drivers/gpu/drm/msm/msm_gpummu.c | 2 +-
drivers/gpu/drm/msm/msm_iommu.c | 206 +++++++++++++++++-
drivers/gpu/drm/msm/msm_mmu.h | 16 +-
drivers/gpu/drm/msm/msm_ringbuffer.h | 1 +
drivers/gpu/drm/msm/msm_submitqueue.c | 7 +-
drivers/iommu/arm/arm-smmu/arm-smmu-impl.c | 6 +-
drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c | 155 ++++++++++++-
drivers/iommu/arm/arm-smmu/arm-smmu.c | 100 ++++-----
drivers/iommu/arm/arm-smmu/arm-smmu.h | 87 +++++++-
include/linux/adreno-smmu-priv.h | 36 +++
29 files changed, 771 insertions(+), 134 deletions(-)
create mode 100644 include/linux/adreno-smmu-priv.h
--
2.26.2
[View Less]
This is the V5 version of a series that introduces the writeback support
to VKMS. The first two patches of this series are a pre-work for the
latest patch that adds the writeback connector, this patchset can be seen
in two parts:
* A pre-work that aims to make vkms composer operations a little bit more
generic; these patches try to centralize the vkms framebuffer operations.
* The final patch enables the support for writeback in vkms.
In the previous review, Emil suggested multiple changes …
[View More]in the series. I
tried to apply most of the recommendations except for some suggestions
which I was not able to incorporate due to compilation issues, or other
suggestions that may complicate this series review. I left some changes
for future patches for keeping this patchset simple with the hope of
landing this feature soon in order to support VKMS user's requirements.
Emil, let me know if you want me to change any other thing.
It is important to highlight that from the previous series to the
current version of this patchset we had some changes in the VKMS that
made it unstable. In particular, our previous writeback series stopped
working properly due to changes in our commit tail. Thanks to Melissa
working in the instability issue and her latest fixes to VKMS, I finally
could update writeback and make it work again. The main update in the
latest patch is the use of vkms_set_composer when the writeback work
starts (enable composer) and after the writeback end (disable composer).
V6:
- Rebase and tiny fixes
Best regards
Rodrigo Siqueira (3):
drm/vkms: Decouple crc operations from composer
drm/vkms: Compute CRC without change input data
drm/vkms: Add support for writeback
drivers/gpu/drm/vkms/Makefile | 9 +-
drivers/gpu/drm/vkms/vkms_composer.c | 98 ++++++++++++------
drivers/gpu/drm/vkms/vkms_drv.h | 11 +-
drivers/gpu/drm/vkms/vkms_output.c | 4 +
drivers/gpu/drm/vkms/vkms_writeback.c | 142 ++++++++++++++++++++++++++
5 files changed, 228 insertions(+), 36 deletions(-)
create mode 100644 drivers/gpu/drm/vkms/vkms_writeback.c
--
2.28.0
[View Less]