* [PATCH v2 0/4] drm/msm: drm_gpuvm leftovers
@ 2025-09-03 10:51 Dmitry Baryshkov
2025-09-03 10:51 ` [PATCH v2 1/4] drm/msm/mdp4: stop supporting no-IOMMU configuration Dmitry Baryshkov
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: Dmitry Baryshkov @ 2025-09-03 10:51 UTC (permalink / raw)
To: Rob Clark, Dmitry Baryshkov, Abhinav Kumar, Jessica Zhang,
Sean Paul, Marijn Suijten, David Airlie, Simona Vetter,
Antonino Maniscalco, Konrad Dybcio
Cc: linux-arm-msm, dri-devel, freedreno, linux-kernel
After switching to drm_gpuvm, the IOMMU becomes a requirement even for
KMS-only devices (e.g. allocating a buffer for DSI commands now also
requires the IOMMU / GPUVM). Disallow non-IOMMU configurations.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
Changes in v2:
- Corrected error messages (Konrad)
- Changed msm_kms_init_vm() to take mdss_dev an argument (Rob)
- Made msm_iommu_new() / msm_iommu_disp_new() / msm_iommu_gpu_new() fail
instead of returning NULL if there is no IOMMU
- Link to v1: https://lore.kernel.org/r/20250706-msm-no-iommu-v1-0-9e8274b30c33@oss.qualcomm.com
---
Dmitry Baryshkov (4):
drm/msm/mdp4: stop supporting no-IOMMU configuration
drm/msm: stop supporting no-IOMMU configuration
drm/msm: don't return NULL from msm_iommu_new()
drm/msm/mdp4: use msm_kms_init_vm() instead of duplicating it
drivers/gpu/drm/msm/adreno/a6xx_gmu.c | 2 --
drivers/gpu/drm/msm/adreno/adreno_gpu.c | 4 +---
drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 2 +-
drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c | 27 +++++----------------------
drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c | 2 +-
drivers/gpu/drm/msm/msm_drv.h | 2 +-
drivers/gpu/drm/msm/msm_iommu.c | 6 +++---
drivers/gpu/drm/msm/msm_kms.c | 14 ++++++--------
8 files changed, 18 insertions(+), 41 deletions(-)
---
base-commit: 3cf6147f2b51a569761e1ef010efbd891e3a3a15
change-id: 20250706-msm-no-iommu-c15212a0e7ac
Best regards,
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v2 1/4] drm/msm/mdp4: stop supporting no-IOMMU configuration
2025-09-03 10:51 [PATCH v2 0/4] drm/msm: drm_gpuvm leftovers Dmitry Baryshkov
@ 2025-09-03 10:51 ` Dmitry Baryshkov
2025-09-03 10:51 ` [PATCH v2 2/4] drm/msm: " Dmitry Baryshkov
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: Dmitry Baryshkov @ 2025-09-03 10:51 UTC (permalink / raw)
To: Rob Clark, Dmitry Baryshkov, Abhinav Kumar, Jessica Zhang,
Sean Paul, Marijn Suijten, David Airlie, Simona Vetter,
Antonino Maniscalco, Konrad Dybcio
Cc: linux-arm-msm, dri-devel, freedreno, linux-kernel
With the switch to GPUVM the msm driver no longer supports the no-IOMMU
configurations (even without the actual GPU). Return an error in case we
face the lack of the IOMMU for an MDP4 device.
Fixes: 111fdd2198e6 ("drm/msm: drm_gpuvm conversion")
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c b/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c
index 0952c7f18abdca4a7e24e5af8a7132456bfec129..4d1ea9b2619170335ab4d2a2ee46f31e785b2c02 100644
--- a/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c
+++ b/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c
@@ -463,9 +463,9 @@ static int mdp4_kms_init(struct drm_device *dev)
ret = PTR_ERR(mmu);
goto fail;
} else if (!mmu) {
- DRM_DEV_INFO(dev->dev, "no iommu, fallback to phys "
- "contig buffers for scanout\n");
- vm = NULL;
+ DRM_DEV_INFO(dev->dev, "no IOMMU, bailing out\n");
+ ret = -ENODEV;
+ goto fail;
} else {
vm = msm_gem_vm_create(dev, mmu, "mdp4",
0x1000, 0x100000000 - 0x1000,
--
2.47.2
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH v2 2/4] drm/msm: stop supporting no-IOMMU configuration
2025-09-03 10:51 [PATCH v2 0/4] drm/msm: drm_gpuvm leftovers Dmitry Baryshkov
2025-09-03 10:51 ` [PATCH v2 1/4] drm/msm/mdp4: stop supporting no-IOMMU configuration Dmitry Baryshkov
@ 2025-09-03 10:51 ` Dmitry Baryshkov
2025-09-03 10:51 ` [PATCH v2 3/4] drm/msm: don't return NULL from msm_iommu_new() Dmitry Baryshkov
2025-09-03 10:51 ` [PATCH v2 4/4] drm/msm/mdp4: use msm_kms_init_vm() instead of duplicating it Dmitry Baryshkov
3 siblings, 0 replies; 5+ messages in thread
From: Dmitry Baryshkov @ 2025-09-03 10:51 UTC (permalink / raw)
To: Rob Clark, Dmitry Baryshkov, Abhinav Kumar, Jessica Zhang,
Sean Paul, Marijn Suijten, David Airlie, Simona Vetter,
Antonino Maniscalco, Konrad Dybcio
Cc: linux-arm-msm, dri-devel, freedreno, linux-kernel
With the switch to GPUVM the msm driver no longer supports the no-IOMMU
configurations (even without the actual GPU). Return an error in case we
face the lack of the IOMMU.
Fixes: 111fdd2198e6 ("drm/msm: drm_gpuvm conversion")
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
drivers/gpu/drm/msm/msm_kms.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/msm/msm_kms.c b/drivers/gpu/drm/msm/msm_kms.c
index 56828d218e88a5fa597755c8ea20da781929386c..4c4dcb095c4df97de42d0673aa2842010a249dca 100644
--- a/drivers/gpu/drm/msm/msm_kms.c
+++ b/drivers/gpu/drm/msm/msm_kms.c
@@ -195,14 +195,13 @@ struct drm_gpuvm *msm_kms_init_vm(struct drm_device *dev)
iommu_dev = mdp_dev;
else
iommu_dev = mdss_dev;
-
mmu = msm_iommu_disp_new(iommu_dev, 0);
if (IS_ERR(mmu))
return ERR_CAST(mmu);
if (!mmu) {
- drm_info(dev, "no IOMMU, fallback to phys contig buffers for scanout\n");
- return NULL;
+ drm_info(dev, "no IOMMU, bailing out\n");
+ return ERR_PTR(-ENODEV);
}
vm = msm_gem_vm_create(dev, mmu, "mdp_kms",
--
2.47.2
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH v2 3/4] drm/msm: don't return NULL from msm_iommu_new()
2025-09-03 10:51 [PATCH v2 0/4] drm/msm: drm_gpuvm leftovers Dmitry Baryshkov
2025-09-03 10:51 ` [PATCH v2 1/4] drm/msm/mdp4: stop supporting no-IOMMU configuration Dmitry Baryshkov
2025-09-03 10:51 ` [PATCH v2 2/4] drm/msm: " Dmitry Baryshkov
@ 2025-09-03 10:51 ` Dmitry Baryshkov
2025-09-03 10:51 ` [PATCH v2 4/4] drm/msm/mdp4: use msm_kms_init_vm() instead of duplicating it Dmitry Baryshkov
3 siblings, 0 replies; 5+ messages in thread
From: Dmitry Baryshkov @ 2025-09-03 10:51 UTC (permalink / raw)
To: Rob Clark, Dmitry Baryshkov, Abhinav Kumar, Jessica Zhang,
Sean Paul, Marijn Suijten, David Airlie, Simona Vetter,
Antonino Maniscalco, Konrad Dybcio
Cc: linux-arm-msm, dri-devel, freedreno, linux-kernel
As we've dropped no-IOMMU support, there is no reason to specially
handle the no-IOMMU case inside msm_iommu_new(). Make it return -ENODEV
if there is no IOMMU (instead of returning NULL) and simplify all
calling sites accordingly.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
drivers/gpu/drm/msm/adreno/a6xx_gmu.c | 2 --
drivers/gpu/drm/msm/adreno/adreno_gpu.c | 4 +---
drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c | 10 ++++++----
drivers/gpu/drm/msm/msm_iommu.c | 6 +++---
drivers/gpu/drm/msm/msm_kms.c | 12 ++++++------
5 files changed, 16 insertions(+), 18 deletions(-)
diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gmu.c b/drivers/gpu/drm/msm/adreno/a6xx_gmu.c
index 28e6705c6da682c7b41c748e375dda59a6551898..92958c73a5ee605a45314ebbcf2136754fe2fae7 100644
--- a/drivers/gpu/drm/msm/adreno/a6xx_gmu.c
+++ b/drivers/gpu/drm/msm/adreno/a6xx_gmu.c
@@ -1318,8 +1318,6 @@ static int a6xx_gmu_memory_probe(struct drm_device *drm, struct a6xx_gmu *gmu)
struct msm_mmu *mmu;
mmu = msm_iommu_new(gmu->dev, 0);
- if (!mmu)
- return -ENODEV;
if (IS_ERR(mmu))
return PTR_ERR(mmu);
diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.c b/drivers/gpu/drm/msm/adreno/adreno_gpu.c
index f1230465bf0d0840274a6eb03a10c4df3a7a68d3..21b4951b065ba51b2a4d1bcf63f912f220d3a1f0 100644
--- a/drivers/gpu/drm/msm/adreno/adreno_gpu.c
+++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.c
@@ -209,9 +209,7 @@ adreno_iommu_create_vm(struct msm_gpu *gpu,
u64 start, size;
mmu = msm_iommu_gpu_new(&pdev->dev, gpu, quirks);
- if (!mmu)
- return ERR_PTR(-ENODEV);
- else if (IS_ERR_OR_NULL(mmu))
+ if (IS_ERR(mmu))
return ERR_CAST(mmu);
geometry = msm_iommu_get_geometry(mmu);
diff --git a/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c b/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c
index 4d1ea9b2619170335ab4d2a2ee46f31e785b2c02..66bfa96965be275270751cba770521cfde2a7004 100644
--- a/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c
+++ b/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c
@@ -458,14 +458,16 @@ static int mdp4_kms_init(struct drm_device *dev)
mdp4_disable(mdp4_kms);
mdelay(16);
+ if (!device_iommu_mapped(&pdev->dev)) {
+ DRM_DEV_INFO(dev->dev, "no IOMMU, bailing out\n");
+ ret = -ENODEV;
+ goto fail;
+ }
+
mmu = msm_iommu_new(&pdev->dev, 0);
if (IS_ERR(mmu)) {
ret = PTR_ERR(mmu);
goto fail;
- } else if (!mmu) {
- DRM_DEV_INFO(dev->dev, "no IOMMU, bailing out\n");
- ret = -ENODEV;
- goto fail;
} else {
vm = msm_gem_vm_create(dev, mmu, "mdp4",
0x1000, 0x100000000 - 0x1000,
diff --git a/drivers/gpu/drm/msm/msm_iommu.c b/drivers/gpu/drm/msm/msm_iommu.c
index 76cdd5ea06a02eafa6f76e1c3fb03e0cdc7fd469..6b3d840d8d6786e60b0cb6670f62605969db6a9a 100644
--- a/drivers/gpu/drm/msm/msm_iommu.c
+++ b/drivers/gpu/drm/msm/msm_iommu.c
@@ -721,7 +721,7 @@ struct msm_mmu *msm_iommu_new(struct device *dev, unsigned long quirks)
int ret;
if (!device_iommu_mapped(dev))
- return NULL;
+ return ERR_PTR(-ENODEV);
domain = iommu_paging_domain_alloc(dev);
if (IS_ERR(domain))
@@ -756,7 +756,7 @@ struct msm_mmu *msm_iommu_disp_new(struct device *dev, unsigned long quirks)
struct msm_mmu *mmu;
mmu = msm_iommu_new(dev, quirks);
- if (IS_ERR_OR_NULL(mmu))
+ if (IS_ERR(mmu))
return mmu;
iommu = to_msm_iommu(mmu);
@@ -772,7 +772,7 @@ struct msm_mmu *msm_iommu_gpu_new(struct device *dev, struct msm_gpu *gpu, unsig
struct msm_mmu *mmu;
mmu = msm_iommu_new(dev, quirks);
- if (IS_ERR_OR_NULL(mmu))
+ if (IS_ERR(mmu))
return mmu;
iommu = to_msm_iommu(mmu);
diff --git a/drivers/gpu/drm/msm/msm_kms.c b/drivers/gpu/drm/msm/msm_kms.c
index 4c4dcb095c4df97de42d0673aa2842010a249dca..725367157d90e45854cb8a22ea25a3fa3bb218be 100644
--- a/drivers/gpu/drm/msm/msm_kms.c
+++ b/drivers/gpu/drm/msm/msm_kms.c
@@ -193,17 +193,17 @@ struct drm_gpuvm *msm_kms_init_vm(struct drm_device *dev)
*/
if (device_iommu_mapped(mdp_dev))
iommu_dev = mdp_dev;
- else
+ else if (device_iommu_mapped(mdss_dev))
iommu_dev = mdss_dev;
- mmu = msm_iommu_disp_new(iommu_dev, 0);
- if (IS_ERR(mmu))
- return ERR_CAST(mmu);
-
- if (!mmu) {
+ else {
drm_info(dev, "no IOMMU, bailing out\n");
return ERR_PTR(-ENODEV);
}
+ mmu = msm_iommu_disp_new(iommu_dev, 0);
+ if (IS_ERR(mmu))
+ return ERR_CAST(mmu);
+
vm = msm_gem_vm_create(dev, mmu, "mdp_kms",
0x1000, 0x100000000 - 0x1000, true);
if (IS_ERR(vm)) {
--
2.47.2
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH v2 4/4] drm/msm/mdp4: use msm_kms_init_vm() instead of duplicating it
2025-09-03 10:51 [PATCH v2 0/4] drm/msm: drm_gpuvm leftovers Dmitry Baryshkov
` (2 preceding siblings ...)
2025-09-03 10:51 ` [PATCH v2 3/4] drm/msm: don't return NULL from msm_iommu_new() Dmitry Baryshkov
@ 2025-09-03 10:51 ` Dmitry Baryshkov
3 siblings, 0 replies; 5+ messages in thread
From: Dmitry Baryshkov @ 2025-09-03 10:51 UTC (permalink / raw)
To: Rob Clark, Dmitry Baryshkov, Abhinav Kumar, Jessica Zhang,
Sean Paul, Marijn Suijten, David Airlie, Simona Vetter,
Antonino Maniscalco, Konrad Dybcio
Cc: linux-arm-msm, dri-devel, freedreno, linux-kernel
Use the msm_kms_init_vm() function to allocate memory manager instead of
hand-coding a copy of it. Although MDP4 platforms don't have MDSS
device, it's still safe to use the function as all MDP4 devices have
IOMMU and the parent of the MDP4 is the root SoC device.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 2 +-
drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c | 27 ++++-----------------------
drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c | 2 +-
drivers/gpu/drm/msm/msm_drv.h | 2 +-
drivers/gpu/drm/msm/msm_kms.c | 5 ++---
5 files changed, 9 insertions(+), 29 deletions(-)
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
index a306077647c317af9345eeff13082230906b5767..4e5a8ecd31f7570beb45fd1629a131e70aaefea8 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
@@ -1110,7 +1110,7 @@ static int _dpu_kms_mmu_init(struct dpu_kms *dpu_kms)
{
struct drm_gpuvm *vm;
- vm = msm_kms_init_vm(dpu_kms->dev);
+ vm = msm_kms_init_vm(dpu_kms->dev, dpu_kms->dev->dev->parent);
if (IS_ERR(vm))
return PTR_ERR(vm);
diff --git a/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c b/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c
index 66bfa96965be275270751cba770521cfde2a7004..1d2a1e4f6ce7d02516b9497a494bb1e46297f55a 100644
--- a/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c
+++ b/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c
@@ -391,11 +391,9 @@ static void read_mdp_hw_revision(struct mdp4_kms *mdp4_kms,
static int mdp4_kms_init(struct drm_device *dev)
{
- struct platform_device *pdev = to_platform_device(dev->dev);
struct msm_drm_private *priv = dev->dev_private;
struct mdp4_kms *mdp4_kms = to_mdp4_kms(to_mdp_kms(priv->kms));
struct msm_kms *kms = NULL;
- struct msm_mmu *mmu;
struct drm_gpuvm *vm;
int ret;
u32 major, minor;
@@ -458,30 +456,13 @@ static int mdp4_kms_init(struct drm_device *dev)
mdp4_disable(mdp4_kms);
mdelay(16);
- if (!device_iommu_mapped(&pdev->dev)) {
- DRM_DEV_INFO(dev->dev, "no IOMMU, bailing out\n");
- ret = -ENODEV;
+ vm = msm_kms_init_vm(mdp4_kms->dev, NULL);
+ if (IS_ERR(vm)) {
+ ret = PTR_ERR(vm);
goto fail;
}
- mmu = msm_iommu_new(&pdev->dev, 0);
- if (IS_ERR(mmu)) {
- ret = PTR_ERR(mmu);
- goto fail;
- } else {
- vm = msm_gem_vm_create(dev, mmu, "mdp4",
- 0x1000, 0x100000000 - 0x1000,
- true);
-
- if (IS_ERR(vm)) {
- if (!IS_ERR(mmu))
- mmu->funcs->destroy(mmu);
- ret = PTR_ERR(vm);
- goto fail;
- }
-
- kms->vm = vm;
- }
+ kms->vm = vm;
ret = modeset_init(mdp4_kms);
if (ret) {
diff --git a/drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c b/drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c
index 5b6ca8dd929e1870b7228af93da03886524f5f20..61edf6864092664afe474cc8d1fd097ca495ebb8 100644
--- a/drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c
+++ b/drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c
@@ -534,7 +534,7 @@ static int mdp5_kms_init(struct drm_device *dev)
}
mdelay(16);
- vm = msm_kms_init_vm(mdp5_kms->dev);
+ vm = msm_kms_init_vm(mdp5_kms->dev, pdev->dev.parent);
if (IS_ERR(vm)) {
ret = PTR_ERR(vm);
goto fail;
diff --git a/drivers/gpu/drm/msm/msm_drv.h b/drivers/gpu/drm/msm/msm_drv.h
index 9875ca62e9adb12dca9bcc74e2825b0364372a54..f4c20dc91cc600d8ab72bce002cbe6b9fdf9a720 100644
--- a/drivers/gpu/drm/msm/msm_drv.h
+++ b/drivers/gpu/drm/msm/msm_drv.h
@@ -229,7 +229,7 @@ void msm_crtc_disable_vblank(struct drm_crtc *crtc);
int msm_register_mmu(struct drm_device *dev, struct msm_mmu *mmu);
void msm_unregister_mmu(struct drm_device *dev, struct msm_mmu *mmu);
-struct drm_gpuvm *msm_kms_init_vm(struct drm_device *dev);
+struct drm_gpuvm *msm_kms_init_vm(struct drm_device *dev, struct device *mdss_dev);
bool msm_use_mmu(struct drm_device *dev);
int msm_ioctl_gem_submit(struct drm_device *dev, void *data,
diff --git a/drivers/gpu/drm/msm/msm_kms.c b/drivers/gpu/drm/msm/msm_kms.c
index 725367157d90e45854cb8a22ea25a3fa3bb218be..6e5e94f5c9a7474d014e73b0b7bd06a94939ed1e 100644
--- a/drivers/gpu/drm/msm/msm_kms.c
+++ b/drivers/gpu/drm/msm/msm_kms.c
@@ -177,12 +177,11 @@ static int msm_kms_fault_handler(void *arg, unsigned long iova, int flags, void
return -ENOSYS;
}
-struct drm_gpuvm *msm_kms_init_vm(struct drm_device *dev)
+struct drm_gpuvm *msm_kms_init_vm(struct drm_device *dev, struct device *mdss_dev)
{
struct drm_gpuvm *vm;
struct msm_mmu *mmu;
struct device *mdp_dev = dev->dev;
- struct device *mdss_dev = mdp_dev->parent;
struct msm_drm_private *priv = dev->dev_private;
struct msm_kms *kms = priv->kms;
struct device *iommu_dev;
@@ -193,7 +192,7 @@ struct drm_gpuvm *msm_kms_init_vm(struct drm_device *dev)
*/
if (device_iommu_mapped(mdp_dev))
iommu_dev = mdp_dev;
- else if (device_iommu_mapped(mdss_dev))
+ else if (mdss_dev && device_iommu_mapped(mdss_dev))
iommu_dev = mdss_dev;
else {
drm_info(dev, "no IOMMU, bailing out\n");
--
2.47.2
^ permalink raw reply related [flat|nested] 5+ messages in thread
end of thread, other threads:[~2025-09-03 10:52 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-09-03 10:51 [PATCH v2 0/4] drm/msm: drm_gpuvm leftovers Dmitry Baryshkov
2025-09-03 10:51 ` [PATCH v2 1/4] drm/msm/mdp4: stop supporting no-IOMMU configuration Dmitry Baryshkov
2025-09-03 10:51 ` [PATCH v2 2/4] drm/msm: " Dmitry Baryshkov
2025-09-03 10:51 ` [PATCH v2 3/4] drm/msm: don't return NULL from msm_iommu_new() Dmitry Baryshkov
2025-09-03 10:51 ` [PATCH v2 4/4] drm/msm/mdp4: use msm_kms_init_vm() instead of duplicating it Dmitry Baryshkov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).