[PATCH 1/1] drm/xe/oa: Combined diff of changes between v14 and v15
Ashutosh Dixit
ashutosh.dixit at intel.com
Mon May 27 01:36:55 UTC 2024
Because Xe OA changes between successive revisions are distributed across
multiple patches, provide a combined diff of all changes in a single patch
to help with code review.
These changes pertain to: https://patchwork.freedesktop.org/series/121084/
This patch will not compile, it's purpose is to just provide the diff.
* Fix 32 bit build issues
Signed-off-by: Ashutosh Dixit <ashutosh.dixit at intel.com>
---
drivers/gpu/drm/xe/xe_oa.c | 16 +++++++---------
drivers/gpu/drm/xe/xe_oa.h | 9 +++------
drivers/gpu/drm/xe/xe_perf.c | 6 +++---
3 files changed, 13 insertions(+), 18 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_oa.c b/drivers/gpu/drm/xe/xe_oa.c
index 38e6364a60b1..3ed4ca19f9cd 100644
--- a/drivers/gpu/drm/xe/xe_oa.c
+++ b/drivers/gpu/drm/xe/xe_oa.c
@@ -401,7 +401,7 @@ static void xe_oa_init_oa_buffer(struct xe_oa_stream *stream)
static u32 __format_to_oactrl(const struct xe_oa_format *format, int counter_sel_mask)
{
- return ((format->counter_select << __bf_shf(counter_sel_mask)) & counter_sel_mask) |
+ return ((format->counter_select << (ffs(counter_sel_mask) - 1)) & counter_sel_mask) |
REG_FIELD_PREP(OA_OACONTROL_REPORT_BC_MASK, format->bc_report) |
REG_FIELD_PREP(OA_OACONTROL_COUNTER_SIZE_MASK, format->counter_size);
}
@@ -1698,7 +1698,7 @@ static int xe_oa_user_extensions(struct xe_oa *oa, u64 extension, int ext_number
return 0;
}
-int xe_oa_stream_open_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
+int xe_oa_stream_open_ioctl(struct drm_device *dev, u64 data, struct drm_file *file)
{
struct xe_oa *oa = &to_xe_device(dev)->oa;
struct xe_file *xef = to_xe_file(file);
@@ -1712,7 +1712,7 @@ int xe_oa_stream_open_ioctl(struct drm_device *dev, void *data, struct drm_file
return -ENODEV;
}
- ret = xe_oa_user_extensions(oa, (u64)data, 0, ¶m);
+ ret = xe_oa_user_extensions(oa, data, 0, ¶m);
if (ret)
return ret;
@@ -1963,8 +1963,7 @@ static int create_dynamic_oa_sysfs_entry(struct xe_oa *oa,
return sysfs_create_group(oa->metrics_kobj, &oa_config->sysfs_metric);
}
-int xe_oa_add_config_ioctl(struct drm_device *dev, void *data,
- struct drm_file *file)
+int xe_oa_add_config_ioctl(struct drm_device *dev, u64 data, struct drm_file *file)
{
struct xe_oa *oa = &to_xe_device(dev)->oa;
struct drm_xe_oa_config param;
@@ -1983,7 +1982,7 @@ int xe_oa_add_config_ioctl(struct drm_device *dev, void *data,
return -EACCES;
}
- err = __copy_from_user(¶m, data, sizeof(param));
+ err = __copy_from_user(¶m, u64_to_user_ptr(data), sizeof(param));
if (XE_IOCTL_DBG(oa->xe, err))
return -EFAULT;
@@ -2059,12 +2058,11 @@ int xe_oa_add_config_ioctl(struct drm_device *dev, void *data,
return err;
}
-int xe_oa_remove_config_ioctl(struct drm_device *dev, void *data,
- struct drm_file *file)
+int xe_oa_remove_config_ioctl(struct drm_device *dev, u64 data, struct drm_file *file)
{
struct xe_oa *oa = &to_xe_device(dev)->oa;
struct xe_oa_config *oa_config;
- u64 arg, *ptr = data;
+ u64 arg, *ptr = u64_to_user_ptr(data);
int ret;
if (!oa->xe) {
diff --git a/drivers/gpu/drm/xe/xe_oa.h b/drivers/gpu/drm/xe/xe_oa.h
index 6308aa1829bd..d2f50c3accf3 100644
--- a/drivers/gpu/drm/xe/xe_oa.h
+++ b/drivers/gpu/drm/xe/xe_oa.h
@@ -18,12 +18,9 @@ int xe_oa_init(struct xe_device *xe);
void xe_oa_fini(struct xe_device *xe);
void xe_oa_register(struct xe_device *xe);
void xe_oa_unregister(struct xe_device *xe);
-int xe_oa_stream_open_ioctl(struct drm_device *dev, void *data,
- struct drm_file *file);
-int xe_oa_add_config_ioctl(struct drm_device *dev, void *data,
- struct drm_file *file);
-int xe_oa_remove_config_ioctl(struct drm_device *dev, void *data,
- struct drm_file *file);
+int xe_oa_stream_open_ioctl(struct drm_device *dev, u64 data, struct drm_file *file);
+int xe_oa_add_config_ioctl(struct drm_device *dev, u64 data, struct drm_file *file);
+int xe_oa_remove_config_ioctl(struct drm_device *dev, u64 data, struct drm_file *file);
u32 xe_oa_timestamp_frequency(struct xe_gt *gt);
u16 xe_oa_unit_id(struct xe_hw_engine *hwe);
diff --git a/drivers/gpu/drm/xe/xe_perf.c b/drivers/gpu/drm/xe/xe_perf.c
index 2c0615481b7d..06739787d0e7 100644
--- a/drivers/gpu/drm/xe/xe_perf.c
+++ b/drivers/gpu/drm/xe/xe_perf.c
@@ -17,11 +17,11 @@ static int xe_oa_ioctl(struct drm_device *dev, struct drm_xe_perf_param *arg,
{
switch (arg->perf_op) {
case DRM_XE_PERF_OP_STREAM_OPEN:
- return xe_oa_stream_open_ioctl(dev, (void *)arg->param, file);
+ return xe_oa_stream_open_ioctl(dev, arg->param, file);
case DRM_XE_PERF_OP_ADD_CONFIG:
- return xe_oa_add_config_ioctl(dev, (void *)arg->param, file);
+ return xe_oa_add_config_ioctl(dev, arg->param, file);
case DRM_XE_PERF_OP_REMOVE_CONFIG:
- return xe_oa_remove_config_ioctl(dev, (void *)arg->param, file);
+ return xe_oa_remove_config_ioctl(dev, arg->param, file);
default:
return -EINVAL;
}
--
2.41.0
More information about the Intel-xe
mailing list