mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-15 22:41:38 +00:00
Merge tag 'drm-msm-fixes-2023-01-16' into msm-fixes
Back-merge of previous cycles msm-fixes for kexec fix (to avoid merge conflict) Signed-off-by: Rob Clark <robdclark@chromium.org>
This commit is contained in:
@@ -551,13 +551,14 @@ static int adreno_bind(struct device *dev, struct device *master, void *data)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int adreno_system_suspend(struct device *dev);
|
||||
static void adreno_unbind(struct device *dev, struct device *master,
|
||||
void *data)
|
||||
{
|
||||
struct msm_drm_private *priv = dev_get_drvdata(master);
|
||||
struct msm_gpu *gpu = dev_to_gpu(dev);
|
||||
|
||||
pm_runtime_force_suspend(dev);
|
||||
WARN_ON_ONCE(adreno_system_suspend(dev));
|
||||
gpu->funcs->destroy(gpu);
|
||||
|
||||
priv->gpu_pdev = NULL;
|
||||
@@ -609,7 +610,7 @@ static int adreno_remove(struct platform_device *pdev)
|
||||
|
||||
static void adreno_shutdown(struct platform_device *pdev)
|
||||
{
|
||||
pm_runtime_force_suspend(&pdev->dev);
|
||||
WARN_ON_ONCE(adreno_system_suspend(&pdev->dev));
|
||||
}
|
||||
|
||||
static const struct of_device_id dt_match[] = {
|
||||
|
||||
@@ -352,6 +352,8 @@ int adreno_set_param(struct msm_gpu *gpu, struct msm_file_private *ctx,
|
||||
/* Ensure string is null terminated: */
|
||||
str[len] = '\0';
|
||||
|
||||
mutex_lock(&gpu->lock);
|
||||
|
||||
if (param == MSM_PARAM_COMM) {
|
||||
paramp = &ctx->comm;
|
||||
} else {
|
||||
@@ -361,6 +363,8 @@ int adreno_set_param(struct msm_gpu *gpu, struct msm_file_private *ctx,
|
||||
kfree(*paramp);
|
||||
*paramp = str;
|
||||
|
||||
mutex_unlock(&gpu->lock);
|
||||
|
||||
return 0;
|
||||
}
|
||||
case MSM_PARAM_SYSPROF:
|
||||
|
||||
@@ -335,6 +335,8 @@ static void get_comm_cmdline(struct msm_gem_submit *submit, char **comm, char **
|
||||
struct msm_file_private *ctx = submit->queue->ctx;
|
||||
struct task_struct *task;
|
||||
|
||||
WARN_ON(!mutex_is_locked(&submit->gpu->lock));
|
||||
|
||||
/* Note that kstrdup will return NULL if argument is NULL: */
|
||||
*comm = kstrdup(ctx->comm, GFP_KERNEL);
|
||||
*cmd = kstrdup(ctx->cmdline, GFP_KERNEL);
|
||||
|
||||
@@ -375,10 +375,18 @@ struct msm_file_private {
|
||||
*/
|
||||
int sysprof;
|
||||
|
||||
/** comm: Overridden task comm, see MSM_PARAM_COMM */
|
||||
/**
|
||||
* comm: Overridden task comm, see MSM_PARAM_COMM
|
||||
*
|
||||
* Accessed under msm_gpu::lock
|
||||
*/
|
||||
char *comm;
|
||||
|
||||
/** cmdline: Overridden task cmdline, see MSM_PARAM_CMDLINE */
|
||||
/**
|
||||
* cmdline: Overridden task cmdline, see MSM_PARAM_CMDLINE
|
||||
*
|
||||
* Accessed under msm_gpu::lock
|
||||
*/
|
||||
char *cmdline;
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user