Lines Matching +full:sm6125 +full:- +full:dpu

1 // SPDX-License-Identifier: GPL-2.0-only
3 * Copyright (C) 2013-2014 Red Hat
283 * There are (at least) three SoCs implementing A610: SM6125
561 if (info->machine && !of_machine_is_compatible(info->machine)) in adreno_info()
563 for (int j = 0; info->chip_ids[j]; j++) in adreno_info()
564 if (info->chip_ids[j] == chip_id) in adreno_info()
573 struct msm_drm_private *priv = dev->dev_private; in adreno_load_gpu()
574 struct platform_device *pdev = priv->gpu_pdev; in adreno_load_gpu()
580 gpu = dev_to_gpu(&pdev->dev); in adreno_load_gpu()
583 dev_err_once(dev->dev, "no GPU device was found\n"); in adreno_load_gpu()
599 if (gpu->funcs->ucode_load) { in adreno_load_gpu()
600 ret = gpu->funcs->ucode_load(gpu); in adreno_load_gpu()
609 pm_runtime_enable(&pdev->dev); in adreno_load_gpu()
611 ret = pm_runtime_get_sync(&pdev->dev); in adreno_load_gpu()
613 pm_runtime_put_noidle(&pdev->dev); in adreno_load_gpu()
614 DRM_DEV_ERROR(dev->dev, "Couldn't power up the GPU: %d\n", ret); in adreno_load_gpu()
618 mutex_lock(&gpu->lock); in adreno_load_gpu()
620 mutex_unlock(&gpu->lock); in adreno_load_gpu()
622 DRM_DEV_ERROR(dev->dev, "gpu hw init failed: %d\n", ret); in adreno_load_gpu()
626 pm_runtime_put_autosuspend(&pdev->dev); in adreno_load_gpu()
629 if (gpu->funcs->debugfs_init) { in adreno_load_gpu()
630 gpu->funcs->debugfs_init(gpu, dev->primary); in adreno_load_gpu()
631 gpu->funcs->debugfs_init(gpu, dev->render); in adreno_load_gpu()
638 pm_runtime_put_sync_suspend(&pdev->dev); in adreno_load_gpu()
640 pm_runtime_disable(&pdev->dev); in adreno_load_gpu()
647 struct device_node *node = dev->of_node; in find_chipid()
651 /* first search the compat strings for qcom,adreno-XYZ.W: */ in find_chipid()
656 if (sscanf(compat, "qcom,adreno-%u.%u", &r, &patch) == 2 || in find_chipid()
657 sscanf(compat, "amd,imageon-%u.%u", &r, &patch) == 2) { in find_chipid()
674 if (sscanf(compat, "qcom,adreno-%08x", chipid) == 1) in find_chipid()
695 struct drm_device *drm = priv->dev; in adreno_bind()
703 dev->platform_data = &config; in adreno_bind()
704 priv->gpu_pdev = to_platform_device(dev); in adreno_bind()
708 dev_warn(drm->dev, "Unknown GPU revision: %"ADRENO_CHIPID_FMT"\n", in adreno_bind()
710 return -ENXIO; in adreno_bind()
717 priv->is_a2xx = info->family < ADRENO_3XX; in adreno_bind()
718 priv->has_cached_coherent = in adreno_bind()
719 !!(info->quirks & ADRENO_QUIRK_HAS_CACHED_COHERENT); in adreno_bind()
721 gpu = info->init(drm); in adreno_bind()
723 dev_warn(drm->dev, "failed to load adreno gpu\n"); in adreno_bind()
743 gpu->funcs->destroy(gpu); in adreno_unbind()
745 priv->gpu_pdev = NULL; in adreno_unbind()
755 /* on imx5, we don't have a top-level mdp/dpu node in adreno_device_register_headless()
761 .id = -1, in adreno_device_register_headless()
776 ret = component_add(&pdev->dev, &a3xx_ops); in adreno_probe()
780 if (of_device_is_compatible(pdev->dev.of_node, "amd,imageon")) in adreno_probe()
788 component_del(&pdev->dev, &a3xx_ops); in adreno_remove()
793 WARN_ON_ONCE(adreno_system_suspend(&pdev->dev)); in adreno_shutdown()
798 { .compatible = "qcom,adreno-3xx" },
802 { .compatible = "qcom,kgsl-3d0" },
810 return gpu->funcs->pm_resume(gpu); in adreno_runtime_resume()
822 WARN_ON_ONCE(gpu->active_submits); in adreno_runtime_suspend()
824 return gpu->funcs->pm_suspend(gpu); in adreno_runtime_suspend()
839 * faulting/timed-out jobs. We can't really cancel any jobs in suspend_scheduler()
842 for (i = 0; i < gpu->nr_rings; i++) { in suspend_scheduler()
843 struct drm_gpu_scheduler *sched = &gpu->rb[i]->sched; in suspend_scheduler()
853 for (i = 0; i < gpu->nr_rings; i++) { in resume_scheduler()
854 struct drm_gpu_scheduler *sched = &gpu->rb[i]->sched; in resume_scheduler()
870 remaining = wait_event_timeout(gpu->retire_event, in adreno_system_suspend()
871 gpu->active_submits == 0, in adreno_system_suspend()
875 ret = -EBUSY; in adreno_system_suspend()