Lines Matching refs:hdev
10 void goya_set_pll_profile(struct hl_device *hdev, enum hl_pll_frequency freq) in goya_set_pll_profile() argument
12 struct goya_device *goya = hdev->asic_specific; in goya_set_pll_profile()
16 hl_set_frequency(hdev, HL_GOYA_MME_PLL, hdev->high_pll); in goya_set_pll_profile()
17 hl_set_frequency(hdev, HL_GOYA_TPC_PLL, hdev->high_pll); in goya_set_pll_profile()
18 hl_set_frequency(hdev, HL_GOYA_IC_PLL, hdev->high_pll); in goya_set_pll_profile()
21 hl_set_frequency(hdev, HL_GOYA_MME_PLL, GOYA_PLL_FREQ_LOW); in goya_set_pll_profile()
22 hl_set_frequency(hdev, HL_GOYA_TPC_PLL, GOYA_PLL_FREQ_LOW); in goya_set_pll_profile()
23 hl_set_frequency(hdev, HL_GOYA_IC_PLL, GOYA_PLL_FREQ_LOW); in goya_set_pll_profile()
26 hl_set_frequency(hdev, HL_GOYA_MME_PLL, goya->mme_clk); in goya_set_pll_profile()
27 hl_set_frequency(hdev, HL_GOYA_TPC_PLL, goya->tpc_clk); in goya_set_pll_profile()
28 hl_set_frequency(hdev, HL_GOYA_IC_PLL, goya->ic_clk); in goya_set_pll_profile()
31 dev_err(hdev->dev, "unknown frequency setting\n"); in goya_set_pll_profile()
35 int goya_get_clk_rate(struct hl_device *hdev, u32 *cur_clk, u32 *max_clk) in goya_get_clk_rate() argument
39 if (!hl_device_operational(hdev, NULL)) in goya_get_clk_rate()
42 value = hl_get_frequency(hdev, HL_GOYA_MME_PLL, false); in goya_get_clk_rate()
45 dev_err(hdev->dev, "Failed to retrieve device max clock %ld\n", in goya_get_clk_rate()
52 value = hl_get_frequency(hdev, HL_GOYA_MME_PLL, true); in goya_get_clk_rate()
55 dev_err(hdev->dev, in goya_get_clk_rate()
69 struct hl_device *hdev = dev_get_drvdata(dev); in mme_clk_show() local
72 if (!hl_device_operational(hdev, NULL)) in mme_clk_show()
75 value = hl_get_frequency(hdev, HL_GOYA_MME_PLL, false); in mme_clk_show()
86 struct hl_device *hdev = dev_get_drvdata(dev); in mme_clk_store() local
87 struct goya_device *goya = hdev->asic_specific; in mme_clk_store()
91 if (!hl_device_operational(hdev, NULL)) { in mme_clk_store()
96 if (hdev->pm_mng_profile == PM_AUTO) { in mme_clk_store()
108 hl_set_frequency(hdev, HL_GOYA_MME_PLL, value); in mme_clk_store()
118 struct hl_device *hdev = dev_get_drvdata(dev); in tpc_clk_show() local
121 if (!hl_device_operational(hdev, NULL)) in tpc_clk_show()
124 value = hl_get_frequency(hdev, HL_GOYA_TPC_PLL, false); in tpc_clk_show()
135 struct hl_device *hdev = dev_get_drvdata(dev); in tpc_clk_store() local
136 struct goya_device *goya = hdev->asic_specific; in tpc_clk_store()
140 if (!hl_device_operational(hdev, NULL)) { in tpc_clk_store()
145 if (hdev->pm_mng_profile == PM_AUTO) { in tpc_clk_store()
157 hl_set_frequency(hdev, HL_GOYA_TPC_PLL, value); in tpc_clk_store()
167 struct hl_device *hdev = dev_get_drvdata(dev); in ic_clk_show() local
170 if (!hl_device_operational(hdev, NULL)) in ic_clk_show()
173 value = hl_get_frequency(hdev, HL_GOYA_IC_PLL, false); in ic_clk_show()
184 struct hl_device *hdev = dev_get_drvdata(dev); in ic_clk_store() local
185 struct goya_device *goya = hdev->asic_specific; in ic_clk_store()
189 if (!hl_device_operational(hdev, NULL)) { in ic_clk_store()
194 if (hdev->pm_mng_profile == PM_AUTO) { in ic_clk_store()
206 hl_set_frequency(hdev, HL_GOYA_IC_PLL, value); in ic_clk_store()
216 struct hl_device *hdev = dev_get_drvdata(dev); in mme_clk_curr_show() local
219 if (!hl_device_operational(hdev, NULL)) in mme_clk_curr_show()
222 value = hl_get_frequency(hdev, HL_GOYA_MME_PLL, true); in mme_clk_curr_show()
233 struct hl_device *hdev = dev_get_drvdata(dev); in tpc_clk_curr_show() local
236 if (!hl_device_operational(hdev, NULL)) in tpc_clk_curr_show()
239 value = hl_get_frequency(hdev, HL_GOYA_TPC_PLL, true); in tpc_clk_curr_show()
250 struct hl_device *hdev = dev_get_drvdata(dev); in ic_clk_curr_show() local
253 if (!hl_device_operational(hdev, NULL)) in ic_clk_curr_show()
256 value = hl_get_frequency(hdev, HL_GOYA_IC_PLL, true); in ic_clk_curr_show()
267 struct hl_device *hdev = dev_get_drvdata(dev); in pm_mng_profile_show() local
269 if (!hl_device_operational(hdev, NULL)) in pm_mng_profile_show()
273 (hdev->pm_mng_profile == PM_AUTO) ? "auto" : in pm_mng_profile_show()
274 (hdev->pm_mng_profile == PM_MANUAL) ? "manual" : in pm_mng_profile_show()
281 struct hl_device *hdev = dev_get_drvdata(dev); in pm_mng_profile_store() local
283 if (!hl_device_operational(hdev, NULL)) { in pm_mng_profile_store()
288 mutex_lock(&hdev->fpriv_list_lock); in pm_mng_profile_store()
290 if (hdev->compute_ctx) { in pm_mng_profile_store()
291 dev_err(hdev->dev, in pm_mng_profile_store()
299 if (hdev->pm_mng_profile == PM_MANUAL) { in pm_mng_profile_store()
300 hdev->curr_pll_profile = PLL_HIGH; in pm_mng_profile_store()
301 hdev->pm_mng_profile = PM_AUTO; in pm_mng_profile_store()
302 hl_device_set_frequency(hdev, PLL_LOW); in pm_mng_profile_store()
305 if (hdev->pm_mng_profile == PM_AUTO) { in pm_mng_profile_store()
311 hdev->pm_mng_profile = PM_MANUAL; in pm_mng_profile_store()
313 mutex_unlock(&hdev->fpriv_list_lock); in pm_mng_profile_store()
318 flush_delayed_work(&hdev->work_freq); in pm_mng_profile_store()
323 dev_err(hdev->dev, "value should be auto or manual\n"); in pm_mng_profile_store()
328 mutex_unlock(&hdev->fpriv_list_lock); in pm_mng_profile_store()
336 struct hl_device *hdev = dev_get_drvdata(dev); in high_pll_show() local
338 if (!hl_device_operational(hdev, NULL)) in high_pll_show()
341 return sprintf(buf, "%u\n", hdev->high_pll); in high_pll_show()
347 struct hl_device *hdev = dev_get_drvdata(dev); in high_pll_store() local
351 if (!hl_device_operational(hdev, NULL)) { in high_pll_store()
363 hdev->high_pll = value; in high_pll_store()
390 void goya_add_device_attr(struct hl_device *hdev, in goya_add_device_attr() argument