diff --git a/drivers/gpu/nvgpu/common/sim.c b/drivers/gpu/nvgpu/common/sim.c index 8261f2702..618e8ffb0 100644 --- a/drivers/gpu/nvgpu/common/sim.c +++ b/drivers/gpu/nvgpu/common/sim.c @@ -28,6 +28,7 @@ #include #include #include +#include #include "gk20a/gk20a.h" @@ -215,7 +216,7 @@ static int issue_rpc_and_wait(struct gk20a *g) return 0; } -static int nvgpu_sim_esc_readl(struct gk20a *g, +static void nvgpu_sim_esc_readl(struct gk20a *g, char *path, u32 index, u32 *data) { int err; @@ -232,9 +233,12 @@ static int nvgpu_sim_esc_readl(struct gk20a *g, err = issue_rpc_and_wait(g); - if (!err) + if (err == 0) { memcpy(data, sim_msg_param(g, data_offset), sizeof(u32)); - return err; + } else { + *data = 0xffffffff; + WARN(1, "issue_rpc_and_wait failed err=%d", err); + } } static void nvgpu_sim_init_late(struct gk20a *g) diff --git a/drivers/gpu/nvgpu/common/sim_pci.c b/drivers/gpu/nvgpu/common/sim_pci.c index edf2a4019..5f2344b40 100644 --- a/drivers/gpu/nvgpu/common/sim_pci.c +++ b/drivers/gpu/nvgpu/common/sim_pci.c @@ -27,6 +27,7 @@ #include #include #include +#include #include "gk20a/gk20a.h" @@ -183,7 +184,7 @@ static int issue_rpc_and_wait(struct gk20a *g) return 0; } -static int nvgpu_sim_esc_readl(struct gk20a *g, +static void nvgpu_sim_esc_readl(struct gk20a *g, char *path, u32 index, u32 *data) { int err; @@ -200,9 +201,12 @@ static int nvgpu_sim_esc_readl(struct gk20a *g, err = issue_rpc_and_wait(g); - if (!err) + if (err == 0) { memcpy(data, sim_msg_param(g, data_offset + 0xc), sizeof(u32)); - return err; + } else { + *data = 0xffffffff; + WARN(1, "issue_rpc_and_wait failed err=%d", err); + } } static void nvgpu_sim_init_late(struct gk20a *g) diff --git a/drivers/gpu/nvgpu/include/nvgpu/sim.h b/drivers/gpu/nvgpu/include/nvgpu/sim.h index fe8e8ac6e..41cee8d09 100644 --- a/drivers/gpu/nvgpu/include/nvgpu/sim.h +++ b/drivers/gpu/nvgpu/include/nvgpu/sim.h @@ -36,7 +36,7 @@ struct sim_nvgpu { struct nvgpu_mem msg_bfr; void (*sim_init_late)(struct gk20a *); void (*remove_support)(struct gk20a *); - int (*esc_readl)( + void (*esc_readl)( struct gk20a *g, char *path, u32 index, u32 *data); }; #ifdef __KERNEL__