Lines Matching full:bpmp
13 #include <soc/tegra/bpmp.h>
22 struct tegra_bpmp *bpmp; member
167 err = tegra_bpmp_transfer(emc->bpmp, &msg); in tegra186_emc_get_emc_dvfs_latency()
173 dev_err(emc->dev, "EMC DVFS MRQ failed: %d (BPMP error code)\n", msg.rx.ret); in tegra186_emc_get_emc_dvfs_latency()
225 * Do nothing here as info to BPMP-FW is now passed in the BW set function
226 * of the MC driver. BPMP-FW sets the final Freq based on the passed values.
323 emc->bpmp = tegra_bpmp_get(&pdev->dev); in tegra186_emc_probe()
324 if (IS_ERR(emc->bpmp)) in tegra186_emc_probe()
325 return dev_err_probe(&pdev->dev, PTR_ERR(emc->bpmp), "failed to get BPMP\n"); in tegra186_emc_probe()
337 if (tegra_bpmp_mrq_is_supported(emc->bpmp, MRQ_EMC_DVFS_LATENCY)) { in tegra186_emc_probe()
344 if (tegra_bpmp_mrq_is_supported(emc->bpmp, MRQ_BWMGR_INT)) { in tegra186_emc_probe()
348 * MC driver probe can't get BPMP reference as it gets probed in tegra186_emc_probe()
349 * earlier than BPMP. So, save the BPMP ref got from the EMC in tegra186_emc_probe()
350 * DT node in the mc->bpmp and use it in MC's icc_set hook. in tegra186_emc_probe()
352 mc->bpmp = emc->bpmp; in tegra186_emc_probe()
357 * Initialize the ICC even if BPMP-FW doesn't support 'MRQ_BWMGR_INT'. in tegra186_emc_probe()
359 * EINVAL instead of passing the request to BPMP-FW later when the BW in tegra186_emc_probe()
364 mc->bpmp = NULL; in tegra186_emc_probe()
372 tegra_bpmp_put(emc->bpmp); in tegra186_emc_probe()
383 mc->bpmp = NULL; in tegra186_emc_remove()
384 tegra_bpmp_put(emc->bpmp); in tegra186_emc_remove()