drivers/gpu/drm/loongson/lsdc_drv.c | 2 +- drivers/gpu/drm/loongson/lsdc_gem.c | 16 ---------------- drivers/gpu/drm/loongson/lsdc_gem.h | 5 ----- 3 files changed, 1 insertion(+), 22 deletions(-)
From: Zhuoheng Li <lizhuoheng@kylinos.cn>
Replace the open-coded mmap offset calculation in the LSDC
driver with the drm_gem_dumb_map_offset() helper. This avoids
code duplication and ensures consistency with other DRM
drivers.
No functional changes intended.
Signed-off-by: Zhuoheng Li <lizhuoheng@kylinos.cn>
---
drivers/gpu/drm/loongson/lsdc_drv.c | 2 +-
drivers/gpu/drm/loongson/lsdc_gem.c | 16 ----------------
drivers/gpu/drm/loongson/lsdc_gem.h | 5 -----
3 files changed, 1 insertion(+), 22 deletions(-)
diff --git a/drivers/gpu/drm/loongson/lsdc_drv.c b/drivers/gpu/drm/loongson/lsdc_drv.c
index 12193d2a301a..7638cb6dd9b2 100644
--- a/drivers/gpu/drm/loongson/lsdc_drv.c
+++ b/drivers/gpu/drm/loongson/lsdc_drv.c
@@ -44,7 +44,7 @@ static const struct drm_driver lsdc_drm_driver = {
.debugfs_init = lsdc_debugfs_init,
.dumb_create = lsdc_dumb_create,
- .dumb_map_offset = lsdc_dumb_map_offset,
+ .dumb_map_offset = drm_gem_dumb_map_offset,
.gem_prime_import_sg_table = lsdc_prime_import_sg_table,
DRM_FBDEV_TTM_DRIVER_OPS,
};
diff --git a/drivers/gpu/drm/loongson/lsdc_gem.c b/drivers/gpu/drm/loongson/lsdc_gem.c
index a720d8f53209..107efd240756 100644
--- a/drivers/gpu/drm/loongson/lsdc_gem.c
+++ b/drivers/gpu/drm/loongson/lsdc_gem.c
@@ -246,22 +246,6 @@ int lsdc_dumb_create(struct drm_file *file, struct drm_device *ddev,
return 0;
}
-int lsdc_dumb_map_offset(struct drm_file *filp, struct drm_device *ddev,
- u32 handle, uint64_t *offset)
-{
- struct drm_gem_object *gobj;
-
- gobj = drm_gem_object_lookup(filp, handle);
- if (!gobj)
- return -ENOENT;
-
- *offset = drm_vma_node_offset_addr(&gobj->vma_node);
-
- drm_gem_object_put(gobj);
-
- return 0;
-}
-
void lsdc_gem_init(struct drm_device *ddev)
{
struct lsdc_device *ldev = to_lsdc(ddev);
diff --git a/drivers/gpu/drm/loongson/lsdc_gem.h b/drivers/gpu/drm/loongson/lsdc_gem.h
index 92cbb10e6e13..f79f06874286 100644
--- a/drivers/gpu/drm/loongson/lsdc_gem.h
+++ b/drivers/gpu/drm/loongson/lsdc_gem.h
@@ -14,11 +14,6 @@ lsdc_prime_import_sg_table(struct drm_device *ddev,
struct dma_buf_attachment *attach,
struct sg_table *sg);
-int lsdc_dumb_map_offset(struct drm_file *file,
- struct drm_device *dev,
- u32 handle,
- uint64_t *offset);
-
int lsdc_dumb_create(struct drm_file *file,
struct drm_device *ddev,
struct drm_mode_create_dumb *args);
--
2.34.1
Hi, On 2025/8/12 20:44, 15620332615@163.com wrote: > From: Zhuoheng Li <lizhuoheng@kylinos.cn> > > Replace the open-coded mmap offset calculation in the LSDC > driver with the drm_gem_dumb_map_offset() helper. This avoids > code duplication and ensures consistency with other DRM > drivers. OK, thank you. > No functional changes intended. There is a *small* functional change though. The drm_gem_dumb_map_offset() don't allow imported objects to be mapped. While, our driver could, in theory, import a dmabuf and create a GTT object base on it. Then, we could do some software rendering with the CPU. > Signed-off-by: Zhuoheng Li <lizhuoheng@kylinos.cn> > Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de> > --- > drivers/gpu/drm/loongson/lsdc_drv.c | 2 +- > drivers/gpu/drm/loongson/lsdc_gem.c | 16 ---------------- > drivers/gpu/drm/loongson/lsdc_gem.h | 5 ----- > 3 files changed, 1 insertion(+), 22 deletions(-) > > diff --git a/drivers/gpu/drm/loongson/lsdc_drv.c b/drivers/gpu/drm/loongson/lsdc_drv.c > index 12193d2a301a..7638cb6dd9b2 100644 > --- a/drivers/gpu/drm/loongson/lsdc_drv.c > +++ b/drivers/gpu/drm/loongson/lsdc_drv.c > @@ -44,7 +44,7 @@ static const struct drm_driver lsdc_drm_driver = { > > .debugfs_init = lsdc_debugfs_init, > .dumb_create = lsdc_dumb_create, > - .dumb_map_offset = lsdc_dumb_map_offset, > + .dumb_map_offset = drm_gem_dumb_map_offset, > .gem_prime_import_sg_table = lsdc_prime_import_sg_table, > DRM_FBDEV_TTM_DRIVER_OPS, > }; > diff --git a/drivers/gpu/drm/loongson/lsdc_gem.c b/drivers/gpu/drm/loongson/lsdc_gem.c > index a720d8f53209..107efd240756 100644 > --- a/drivers/gpu/drm/loongson/lsdc_gem.c > +++ b/drivers/gpu/drm/loongson/lsdc_gem.c > @@ -246,22 +246,6 @@ int lsdc_dumb_create(struct drm_file *file, struct drm_device *ddev, > return 0; > } > > -int lsdc_dumb_map_offset(struct drm_file *filp, struct drm_device *ddev, > - u32 handle, uint64_t *offset) > -{ > - struct drm_gem_object *gobj; > - > - gobj = drm_gem_object_lookup(filp, handle); > - if (!gobj) > - return -ENOENT; > - > - *offset = drm_vma_node_offset_addr(&gobj->vma_node); > - > - drm_gem_object_put(gobj); > - > - return 0; > -} > - > void lsdc_gem_init(struct drm_device *ddev) > { > struct lsdc_device *ldev = to_lsdc(ddev); > diff --git a/drivers/gpu/drm/loongson/lsdc_gem.h b/drivers/gpu/drm/loongson/lsdc_gem.h > index 92cbb10e6e13..f79f06874286 100644 > --- a/drivers/gpu/drm/loongson/lsdc_gem.h > +++ b/drivers/gpu/drm/loongson/lsdc_gem.h > @@ -14,11 +14,6 @@ lsdc_prime_import_sg_table(struct drm_device *ddev, > struct dma_buf_attachment *attach, > struct sg_table *sg); > > -int lsdc_dumb_map_offset(struct drm_file *file, > - struct drm_device *dev, > - u32 handle, > - uint64_t *offset); > - > int lsdc_dumb_create(struct drm_file *file, > struct drm_device *ddev, > struct drm_mode_create_dumb *args);
Am 12.08.25 um 14:44 schrieb 15620332615@163.com: > From: Zhuoheng Li <lizhuoheng@kylinos.cn> > > Replace the open-coded mmap offset calculation in the LSDC > driver with the drm_gem_dumb_map_offset() helper. This avoids > code duplication and ensures consistency with other DRM > drivers. > > No functional changes intended. > > Signed-off-by: Zhuoheng Li <lizhuoheng@kylinos.cn> Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de> > --- > drivers/gpu/drm/loongson/lsdc_drv.c | 2 +- > drivers/gpu/drm/loongson/lsdc_gem.c | 16 ---------------- > drivers/gpu/drm/loongson/lsdc_gem.h | 5 ----- > 3 files changed, 1 insertion(+), 22 deletions(-) > > diff --git a/drivers/gpu/drm/loongson/lsdc_drv.c b/drivers/gpu/drm/loongson/lsdc_drv.c > index 12193d2a301a..7638cb6dd9b2 100644 > --- a/drivers/gpu/drm/loongson/lsdc_drv.c > +++ b/drivers/gpu/drm/loongson/lsdc_drv.c > @@ -44,7 +44,7 @@ static const struct drm_driver lsdc_drm_driver = { > > .debugfs_init = lsdc_debugfs_init, > .dumb_create = lsdc_dumb_create, > - .dumb_map_offset = lsdc_dumb_map_offset, > + .dumb_map_offset = drm_gem_dumb_map_offset, > .gem_prime_import_sg_table = lsdc_prime_import_sg_table, > DRM_FBDEV_TTM_DRIVER_OPS, > }; > diff --git a/drivers/gpu/drm/loongson/lsdc_gem.c b/drivers/gpu/drm/loongson/lsdc_gem.c > index a720d8f53209..107efd240756 100644 > --- a/drivers/gpu/drm/loongson/lsdc_gem.c > +++ b/drivers/gpu/drm/loongson/lsdc_gem.c > @@ -246,22 +246,6 @@ int lsdc_dumb_create(struct drm_file *file, struct drm_device *ddev, > return 0; > } > > -int lsdc_dumb_map_offset(struct drm_file *filp, struct drm_device *ddev, > - u32 handle, uint64_t *offset) > -{ > - struct drm_gem_object *gobj; > - > - gobj = drm_gem_object_lookup(filp, handle); > - if (!gobj) > - return -ENOENT; > - > - *offset = drm_vma_node_offset_addr(&gobj->vma_node); > - > - drm_gem_object_put(gobj); > - > - return 0; > -} > - > void lsdc_gem_init(struct drm_device *ddev) > { > struct lsdc_device *ldev = to_lsdc(ddev); > diff --git a/drivers/gpu/drm/loongson/lsdc_gem.h b/drivers/gpu/drm/loongson/lsdc_gem.h > index 92cbb10e6e13..f79f06874286 100644 > --- a/drivers/gpu/drm/loongson/lsdc_gem.h > +++ b/drivers/gpu/drm/loongson/lsdc_gem.h > @@ -14,11 +14,6 @@ lsdc_prime_import_sg_table(struct drm_device *ddev, > struct dma_buf_attachment *attach, > struct sg_table *sg); > > -int lsdc_dumb_map_offset(struct drm_file *file, > - struct drm_device *dev, > - u32 handle, > - uint64_t *offset); > - > int lsdc_dumb_create(struct drm_file *file, > struct drm_device *ddev, > struct drm_mode_create_dumb *args); -- -- Thomas Zimmermann Graphics Driver Developer SUSE Software Solutions Germany GmbH Frankenstrasse 146, 90461 Nuernberg, Germany GF: Ivo Totev, Andrew Myers, Andrew McDonald, Boudien Moerman HRB 36809 (AG Nuernberg)
© 2016 - 2025 Red Hat, Inc.