From 4580763b4608706b5be467e67f9242716f10ea09 Mon Sep 17 00:00:00 2001 From: David Nieto Date: Thu, 27 Apr 2017 13:11:26 -0700 Subject: gpu: nvgpu: fix K4.9 sparse messages Fix issues related with wrong storage type for 64 bit variables. (1) Fixed width of HZ_TO_MHZ constant (2) changed fence_wait timeout to store unsigned long bug 200299572 Change-Id: Ie8f2386b738f3aafce75fc2440947e36befac273 Signed-off-by: David Nieto Reviewed-on: http://git-master/r/1471611 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Terje Bergstrom --- drivers/gpu/nvgpu/common/linux/ioctl_ctrl.c | 2 +- drivers/gpu/nvgpu/gk20a/fence_gk20a.c | 5 +++-- drivers/gpu/nvgpu/gk20a/fence_gk20a.h | 3 ++- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/nvgpu/common/linux/ioctl_ctrl.c b/drivers/gpu/nvgpu/common/linux/ioctl_ctrl.c index 97e911b9..17090291 100644 --- a/drivers/gpu/nvgpu/common/linux/ioctl_ctrl.c +++ b/drivers/gpu/nvgpu/common/linux/ioctl_ctrl.c @@ -32,7 +32,7 @@ #include -#define HZ_TO_MHZ(a) ((a > 0xF414F9CD7) ? 0xffff : (a >> 32) ? \ +#define HZ_TO_MHZ(a) ((a > 0xF414F9CD7ULL) ? 0xffff : (a >> 32) ? \ (u32) ((a * 0x10C8ULL) >> 32) : (u16) ((u32) a/MHZ)) #define MHZ_TO_HZ(a) ((u64)a * MHZ) diff --git a/drivers/gpu/nvgpu/gk20a/fence_gk20a.c b/drivers/gpu/nvgpu/gk20a/fence_gk20a.c index 92698745..87c4f6be 100644 --- a/drivers/gpu/nvgpu/gk20a/fence_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/fence_gk20a.c @@ -82,11 +82,12 @@ static inline bool gk20a_fence_is_valid(struct gk20a_fence *f) return valid; } -int gk20a_fence_wait(struct gk20a *g, struct gk20a_fence *f, int timeout) +int gk20a_fence_wait(struct gk20a *g, struct gk20a_fence *f, + unsigned long timeout) { if (f && gk20a_fence_is_valid(f)) { if (!nvgpu_platform_is_silicon(g)) - timeout = (u32)MAX_SCHEDULE_TIMEOUT; + timeout = MAX_SCHEDULE_TIMEOUT; return f->ops->wait(f, timeout); } return 0; diff --git a/drivers/gpu/nvgpu/gk20a/fence_gk20a.h b/drivers/gpu/nvgpu/gk20a/fence_gk20a.h index c26cd250..87fa9fdb 100644 --- a/drivers/gpu/nvgpu/gk20a/fence_gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/fence_gk20a.h @@ -85,7 +85,8 @@ void gk20a_init_fence(struct gk20a_fence *f, /* Fence operations */ void gk20a_fence_put(struct gk20a_fence *f); struct gk20a_fence *gk20a_fence_get(struct gk20a_fence *f); -int gk20a_fence_wait(struct gk20a *g, struct gk20a_fence *f, int timeout); +int gk20a_fence_wait(struct gk20a *g, struct gk20a_fence *f, + unsigned long timeout); bool gk20a_fence_is_expired(struct gk20a_fence *f); int gk20a_fence_install_fd(struct gk20a_fence *f); -- cgit v1.2.2