drm/msm: Small submit cleanup
Move more initialization into submit_create(). Signed-off-by: Rob Clark <robdclark@chromium.org> Patchwork: https://patchwork.freedesktop.org/patch/496120/ Link: https://lore.kernel.org/r/20220802155152.1727594-3-robdclark@gmail.com
This commit is contained in:
parent
f0de40a131
commit
fc1dd04c38
@ -26,6 +26,7 @@ static struct msm_gem_submit *submit_create(struct drm_device *dev,
|
|||||||
struct msm_gpu_submitqueue *queue, uint32_t nr_bos,
|
struct msm_gpu_submitqueue *queue, uint32_t nr_bos,
|
||||||
uint32_t nr_cmds)
|
uint32_t nr_cmds)
|
||||||
{
|
{
|
||||||
|
static atomic_t ident = ATOMIC_INIT(0);
|
||||||
struct msm_gem_submit *submit;
|
struct msm_gem_submit *submit;
|
||||||
uint64_t sz;
|
uint64_t sz;
|
||||||
int ret;
|
int ret;
|
||||||
@ -52,9 +53,13 @@ static struct msm_gem_submit *submit_create(struct drm_device *dev,
|
|||||||
submit->gpu = gpu;
|
submit->gpu = gpu;
|
||||||
submit->cmd = (void *)&submit->bos[nr_bos];
|
submit->cmd = (void *)&submit->bos[nr_bos];
|
||||||
submit->queue = queue;
|
submit->queue = queue;
|
||||||
|
submit->pid = get_pid(task_pid(current));
|
||||||
submit->ring = gpu->rb[queue->ring_nr];
|
submit->ring = gpu->rb[queue->ring_nr];
|
||||||
submit->fault_dumped = false;
|
submit->fault_dumped = false;
|
||||||
|
|
||||||
|
/* Get a unique identifier for the submission for logging purposes */
|
||||||
|
submit->ident = atomic_inc_return(&ident) - 1;
|
||||||
|
|
||||||
INIT_LIST_HEAD(&submit->node);
|
INIT_LIST_HEAD(&submit->node);
|
||||||
|
|
||||||
return submit;
|
return submit;
|
||||||
@ -718,7 +723,6 @@ static void msm_process_post_deps(struct msm_submit_post_dep *post_deps,
|
|||||||
int msm_ioctl_gem_submit(struct drm_device *dev, void *data,
|
int msm_ioctl_gem_submit(struct drm_device *dev, void *data,
|
||||||
struct drm_file *file)
|
struct drm_file *file)
|
||||||
{
|
{
|
||||||
static atomic_t ident = ATOMIC_INIT(0);
|
|
||||||
struct msm_drm_private *priv = dev->dev_private;
|
struct msm_drm_private *priv = dev->dev_private;
|
||||||
struct drm_msm_gem_submit *args = data;
|
struct drm_msm_gem_submit *args = data;
|
||||||
struct msm_file_private *ctx = file->driver_priv;
|
struct msm_file_private *ctx = file->driver_priv;
|
||||||
@ -729,10 +733,9 @@ int msm_ioctl_gem_submit(struct drm_device *dev, void *data,
|
|||||||
struct msm_submit_post_dep *post_deps = NULL;
|
struct msm_submit_post_dep *post_deps = NULL;
|
||||||
struct drm_syncobj **syncobjs_to_reset = NULL;
|
struct drm_syncobj **syncobjs_to_reset = NULL;
|
||||||
int out_fence_fd = -1;
|
int out_fence_fd = -1;
|
||||||
struct pid *pid = get_pid(task_pid(current));
|
|
||||||
bool has_ww_ticket = false;
|
bool has_ww_ticket = false;
|
||||||
unsigned i;
|
unsigned i;
|
||||||
int ret, submitid;
|
int ret;
|
||||||
|
|
||||||
if (!gpu)
|
if (!gpu)
|
||||||
return -ENXIO;
|
return -ENXIO;
|
||||||
@ -764,12 +767,7 @@ int msm_ioctl_gem_submit(struct drm_device *dev, void *data,
|
|||||||
if (!queue)
|
if (!queue)
|
||||||
return -ENOENT;
|
return -ENOENT;
|
||||||
|
|
||||||
/* Get a unique identifier for the submission for logging purposes */
|
|
||||||
submitid = atomic_inc_return(&ident) - 1;
|
|
||||||
|
|
||||||
ring = gpu->rb[queue->ring_nr];
|
ring = gpu->rb[queue->ring_nr];
|
||||||
trace_msm_gpu_submit(pid_nr(pid), ring->id, submitid,
|
|
||||||
args->nr_bos, args->nr_cmds);
|
|
||||||
|
|
||||||
if (args->flags & MSM_SUBMIT_FENCE_FD_OUT) {
|
if (args->flags & MSM_SUBMIT_FENCE_FD_OUT) {
|
||||||
out_fence_fd = get_unused_fd_flags(O_CLOEXEC);
|
out_fence_fd = get_unused_fd_flags(O_CLOEXEC);
|
||||||
@ -783,13 +781,13 @@ int msm_ioctl_gem_submit(struct drm_device *dev, void *data,
|
|||||||
if (IS_ERR(submit))
|
if (IS_ERR(submit))
|
||||||
return PTR_ERR(submit);
|
return PTR_ERR(submit);
|
||||||
|
|
||||||
|
trace_msm_gpu_submit(pid_nr(submit->pid), ring->id, submit->ident,
|
||||||
|
args->nr_bos, args->nr_cmds);
|
||||||
|
|
||||||
ret = mutex_lock_interruptible(&queue->lock);
|
ret = mutex_lock_interruptible(&queue->lock);
|
||||||
if (ret)
|
if (ret)
|
||||||
goto out_post_unlock;
|
goto out_post_unlock;
|
||||||
|
|
||||||
submit->pid = pid;
|
|
||||||
submit->ident = submitid;
|
|
||||||
|
|
||||||
if (args->flags & MSM_SUBMIT_SUDO)
|
if (args->flags & MSM_SUBMIT_SUDO)
|
||||||
submit->in_rb = true;
|
submit->in_rb = true;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user