Lines Matching refs:this

104 	struct lsdc_pixpll *this = (struct lsdc_pixpll *)data;
106 iounmap(this->mmio);
108 kfree(this->priv);
116 * @this: point to the object where this function is called from
118 static int lsdc_pixel_pll_setup(struct lsdc_pixpll * const this)
122 this->mmio = ioremap(this->reg_base, this->reg_size);
123 if (!this->mmio)
128 iounmap(this->mmio);
134 this->priv = pparms;
136 return drmm_add_action_or_reset(this->ddev, lsdc_pixel_pll_free, this);
143 * @this: point to the object where this function is called from
149 static int lsdc_pixpll_find(struct lsdc_pixpll * const this,
169 drm_dbg_kms(this->ddev, "pixel clock %u: miss\n", clock);
185 * @this: point to the object from where this function is called
192 static int lsdc_pixel_pll_compute(struct lsdc_pixpll * const this,
196 struct lsdc_pixpll_parms *pparms = this->priv;
203 if (!lsdc_pixpll_find(this, clock, pout))
244 drm_dbg(this->ddev, "can't find suitable params for %u khz\n", clock);
251 static void __pixpll_rreg(struct lsdc_pixpll *this,
255 dst->d = readq(this->mmio);
257 dst->w[0] = readl(this->mmio);
258 dst->w[1] = readl(this->mmio + 4);
262 static void __pixpll_wreg(struct lsdc_pixpll *this,
266 writeq(src->d, this->mmio);
268 writel(src->w[0], this->mmio);
269 writel(src->w[1], this->mmio + 4);
273 static void __pixpll_ops_powerup(struct lsdc_pixpll * const this)
277 __pixpll_rreg(this, &pixpll_reg);
281 __pixpll_wreg(this, &pixpll_reg);
284 static void __pixpll_ops_powerdown(struct lsdc_pixpll * const this)
288 __pixpll_rreg(this, &pixpll_reg);
292 __pixpll_wreg(this, &pixpll_reg);
295 static void __pixpll_ops_on(struct lsdc_pixpll * const this)
299 __pixpll_rreg(this, &pixpll_reg);
303 __pixpll_wreg(this, &pixpll_reg);
306 static void __pixpll_ops_off(struct lsdc_pixpll * const this)
310 __pixpll_rreg(this, &pixpll_reg);
314 __pixpll_wreg(this, &pixpll_reg);
317 static void __pixpll_ops_bypass(struct lsdc_pixpll * const this)
321 __pixpll_rreg(this, &pixpll_reg);
325 __pixpll_wreg(this, &pixpll_reg);
328 static void __pixpll_ops_unbypass(struct lsdc_pixpll * const this)
332 __pixpll_rreg(this, &pixpll_reg);
336 __pixpll_wreg(this, &pixpll_reg);
339 static void __pixpll_ops_untoggle_param(struct lsdc_pixpll * const this)
343 __pixpll_rreg(this, &pixpll_reg);
347 __pixpll_wreg(this, &pixpll_reg);
350 static void __pixpll_ops_set_param(struct lsdc_pixpll * const this,
355 __pixpll_rreg(this, &pixpll_reg);
361 __pixpll_wreg(this, &pixpll_reg);
364 static void __pixpll_ops_toggle_param(struct lsdc_pixpll * const this)
368 __pixpll_rreg(this, &pixpll_reg);
372 __pixpll_wreg(this, &pixpll_reg);
375 static void __pixpll_ops_wait_locked(struct lsdc_pixpll * const this)
381 __pixpll_rreg(this, &pixpll_reg);
389 drm_dbg(this->ddev, "%u loop waited\n", counter);
395 * @this: point to the object from which this function is called
400 static int lsdc_pixpll_update(struct lsdc_pixpll * const this,
403 __pixpll_ops_bypass(this);
405 __pixpll_ops_off(this);
407 __pixpll_ops_powerdown(this);
409 __pixpll_ops_toggle_param(this);
411 __pixpll_ops_set_param(this, pin);
413 __pixpll_ops_untoggle_param(this);
415 __pixpll_ops_powerup(this);
419 __pixpll_ops_wait_locked(this);
421 __pixpll_ops_on(this);
423 __pixpll_ops_unbypass(this);
428 static unsigned int lsdc_pixpll_get_freq(struct lsdc_pixpll * const this)
430 struct lsdc_pixpll_parms *ppar = this->priv;
434 __pixpll_rreg(this, &pix_pll_reg);
445 static void lsdc_pixpll_print(struct lsdc_pixpll * const this,
448 struct lsdc_pixpll_parms *parms = this->priv;
456 * we take this as default, create a new instance if a different model is
469 int lsdc_pixpll_init(struct lsdc_pixpll * const this,
477 this->ddev = ddev;
478 this->reg_size = 8;
479 this->reg_base = gfx->conf_reg_base + gfx->pixpll[index].reg_offset;
480 this->funcs = &__pixpll_default_funcs;
482 return this->funcs->setup(this);