.. | .. |
---|
916 | 916 | pm_runtime_set_autosuspend_delay(dev, |
---|
917 | 917 | adreno_gpu->info->inactive_period); |
---|
918 | 918 | pm_runtime_use_autosuspend(dev); |
---|
919 | | - pm_runtime_enable(dev); |
---|
920 | 919 | |
---|
921 | 920 | ret = msm_gpu_init(drm, pdev, &adreno_gpu->base, &funcs->base, |
---|
922 | 921 | adreno_gpu->info->name, &adreno_gpu_config); |
---|
.. | .. |
---|
954 | 953 | void adreno_gpu_cleanup(struct adreno_gpu *adreno_gpu) |
---|
955 | 954 | { |
---|
956 | 955 | struct msm_gpu *gpu = &adreno_gpu->base; |
---|
957 | | - struct msm_drm_private *priv = gpu->dev->dev_private; |
---|
| 956 | + struct msm_drm_private *priv = gpu->dev ? gpu->dev->dev_private : NULL; |
---|
958 | 957 | unsigned int i; |
---|
959 | 958 | |
---|
960 | 959 | for (i = 0; i < ARRAY_SIZE(adreno_gpu->info->fw); i++) |
---|
961 | 960 | release_firmware(adreno_gpu->fw[i]); |
---|
962 | 961 | |
---|
963 | | - if (pm_runtime_enabled(&priv->gpu_pdev->dev)) |
---|
| 962 | + if (priv && pm_runtime_enabled(&priv->gpu_pdev->dev)) |
---|
964 | 963 | pm_runtime_disable(&priv->gpu_pdev->dev); |
---|
965 | 964 | |
---|
966 | 965 | msm_gpu_cleanup(&adreno_gpu->base); |
---|