Lines Matching defs:par
87 static void simplefb_clocks_destroy(struct simplefb_par *par);
88 static void simplefb_regulators_destroy(struct simplefb_par *par);
96 struct simplefb_par *par = info->par;
97 struct resource *mem = par->mem;
99 simplefb_regulators_destroy(info->par);
100 simplefb_clocks_destroy(info->par);
218 static int simplefb_clocks_get(struct simplefb_par *par,
228 par->clk_count = of_clk_get_parent_count(np);
229 if (!par->clk_count)
232 par->clks = kcalloc(par->clk_count, sizeof(struct clk *), GFP_KERNEL);
233 if (!par->clks)
236 for (i = 0; i < par->clk_count; i++) {
241 clk_put(par->clks[i]);
243 kfree(par->clks);
250 par->clks[i] = clock;
256 static void simplefb_clocks_enable(struct simplefb_par *par,
261 for (i = 0; i < par->clk_count; i++) {
262 if (par->clks[i]) {
263 ret = clk_prepare_enable(par->clks[i]);
268 clk_put(par->clks[i]);
269 par->clks[i] = NULL;
273 par->clks_enabled = true;
276 static void simplefb_clocks_destroy(struct simplefb_par *par)
280 if (!par->clks)
283 for (i = 0; i < par->clk_count; i++) {
284 if (par->clks[i]) {
285 if (par->clks_enabled)
286 clk_disable_unprepare(par->clks[i]);
287 clk_put(par->clks[i]);
291 kfree(par->clks);
294 static int simplefb_clocks_get(struct simplefb_par *par,
296 static void simplefb_clocks_enable(struct simplefb_par *par,
298 static void simplefb_clocks_destroy(struct simplefb_par *par) { }
324 static int simplefb_regulators_get(struct simplefb_par *par,
346 par->regulators = devm_kcalloc(&pdev->dev, count,
348 if (!par->regulators)
369 par->regulators[i++] = regulator;
371 par->regulator_count = i;
376 static void simplefb_regulators_enable(struct simplefb_par *par,
382 for (i = 0; i < par->regulator_count; i++) {
383 ret = regulator_enable(par->regulators[i]);
388 devm_regulator_put(par->regulators[i]);
389 par->regulators[i] = NULL;
392 par->regulators_enabled = true;
395 static void simplefb_regulators_destroy(struct simplefb_par *par)
399 if (!par->regulators || !par->regulators_enabled)
402 for (i = 0; i < par->regulator_count; i++)
403 if (par->regulators[i])
404 regulator_disable(par->regulators[i]);
407 static int simplefb_regulators_get(struct simplefb_par *par,
409 static void simplefb_regulators_enable(struct simplefb_par *par,
411 static void simplefb_regulators_destroy(struct simplefb_par *par) { }
419 struct simplefb_par *par;
458 par = info->par;
476 par->base = info->fix.smem_start;
477 par->size = info->fix.smem_len;
486 info->pseudo_palette = par->palette;
488 ret = simplefb_clocks_get(par, pdev);
492 ret = simplefb_regulators_get(par, pdev);
496 simplefb_clocks_enable(par, pdev);
497 simplefb_regulators_enable(par, pdev);
507 par->mem = mem; /* release in clean-up handler */
509 ret = devm_aperture_acquire_for_platform_device(pdev, par->base, par->size);
525 simplefb_regulators_destroy(par);
527 simplefb_clocks_destroy(par);