• Home
  • Raw
  • Download

Lines Matching refs:dev_priv

86 psb_enable_pipestat(struct drm_psb_private *dev_priv, int pipe, u32 mask)  in psb_enable_pipestat()  argument
88 if ((dev_priv->pipestat[pipe] & mask) != mask) { in psb_enable_pipestat()
90 dev_priv->pipestat[pipe] |= mask; in psb_enable_pipestat()
92 if (gma_power_begin(dev_priv->dev, false)) { in psb_enable_pipestat()
97 gma_power_end(dev_priv->dev); in psb_enable_pipestat()
103 psb_disable_pipestat(struct drm_psb_private *dev_priv, int pipe, u32 mask) in psb_disable_pipestat() argument
105 if ((dev_priv->pipestat[pipe] & mask) != 0) { in psb_disable_pipestat()
107 dev_priv->pipestat[pipe] &= ~mask; in psb_disable_pipestat()
108 if (gma_power_begin(dev_priv->dev, false)) { in psb_disable_pipestat()
113 gma_power_end(dev_priv->dev); in psb_disable_pipestat()
118 static void mid_enable_pipe_event(struct drm_psb_private *dev_priv, int pipe) in mid_enable_pipe_event() argument
120 if (gma_power_begin(dev_priv->dev, false)) { in mid_enable_pipe_event()
122 dev_priv->vdc_irq_mask |= pipe_event; in mid_enable_pipe_event()
123 PSB_WVDC32(~dev_priv->vdc_irq_mask, PSB_INT_MASK_R); in mid_enable_pipe_event()
124 PSB_WVDC32(dev_priv->vdc_irq_mask, PSB_INT_ENABLE_R); in mid_enable_pipe_event()
125 gma_power_end(dev_priv->dev); in mid_enable_pipe_event()
129 static void mid_disable_pipe_event(struct drm_psb_private *dev_priv, int pipe) in mid_disable_pipe_event() argument
131 if (dev_priv->pipestat[pipe] == 0) { in mid_disable_pipe_event()
132 if (gma_power_begin(dev_priv->dev, false)) { in mid_disable_pipe_event()
134 dev_priv->vdc_irq_mask &= ~pipe_event; in mid_disable_pipe_event()
135 PSB_WVDC32(~dev_priv->vdc_irq_mask, PSB_INT_MASK_R); in mid_disable_pipe_event()
136 PSB_WVDC32(dev_priv->vdc_irq_mask, PSB_INT_ENABLE_R); in mid_disable_pipe_event()
137 gma_power_end(dev_priv->dev); in mid_disable_pipe_event()
148 struct drm_psb_private *dev_priv = in mid_pipe_event_handler() local
153 uint32_t pipe_enable = dev_priv->pipestat[pipe]; in mid_pipe_event_handler()
154 uint32_t pipe_status = dev_priv->pipestat[pipe] >> 16; in mid_pipe_event_handler()
158 spin_lock(&dev_priv->irqmask_lock); in mid_pipe_event_handler()
164 spin_unlock(&dev_priv->irqmask_lock); in mid_pipe_event_handler()
208 struct drm_psb_private *dev_priv = dev->dev_private; in psb_sgx_interrupt() local
258 struct drm_psb_private *dev_priv = dev->dev_private; in psb_irq_handler() local
263 spin_lock(&dev_priv->irqmask_lock); in psb_irq_handler()
280 vdc_stat &= dev_priv->vdc_irq_mask; in psb_irq_handler()
281 spin_unlock(&dev_priv->irqmask_lock); in psb_irq_handler()
297 if (hotplug_int && dev_priv->ops->hotplug) { in psb_irq_handler()
298 handled = dev_priv->ops->hotplug(dev); in psb_irq_handler()
314 struct drm_psb_private *dev_priv = in psb_irq_preinstall() local
318 spin_lock_irqsave(&dev_priv->irqmask_lock, irqflags); in psb_irq_preinstall()
328 dev_priv->vdc_irq_mask |= _PSB_VSYNC_PIPEA_FLAG; in psb_irq_preinstall()
330 dev_priv->vdc_irq_mask |= _PSB_VSYNC_PIPEB_FLAG; in psb_irq_preinstall()
340 if (dev_priv->ops->hotplug) in psb_irq_preinstall()
341 dev_priv->vdc_irq_mask |= _PSB_IRQ_DISP_HOTSYNC; in psb_irq_preinstall()
342 dev_priv->vdc_irq_mask |= _PSB_IRQ_ASLE | _PSB_IRQ_SGX_FLAG; in psb_irq_preinstall()
345 PSB_WVDC32(~dev_priv->vdc_irq_mask, PSB_INT_MASK_R); in psb_irq_preinstall()
346 spin_unlock_irqrestore(&dev_priv->irqmask_lock, irqflags); in psb_irq_preinstall()
351 struct drm_psb_private *dev_priv = dev->dev_private; in psb_irq_postinstall() local
354 spin_lock_irqsave(&dev_priv->irqmask_lock, irqflags); in psb_irq_postinstall()
362 PSB_WVDC32(dev_priv->vdc_irq_mask, PSB_INT_ENABLE_R); in psb_irq_postinstall()
366 psb_enable_pipestat(dev_priv, 0, PIPE_VBLANK_INTERRUPT_ENABLE); in psb_irq_postinstall()
368 psb_disable_pipestat(dev_priv, 0, PIPE_VBLANK_INTERRUPT_ENABLE); in psb_irq_postinstall()
371 psb_enable_pipestat(dev_priv, 1, PIPE_VBLANK_INTERRUPT_ENABLE); in psb_irq_postinstall()
373 psb_disable_pipestat(dev_priv, 1, PIPE_VBLANK_INTERRUPT_ENABLE); in psb_irq_postinstall()
376 psb_enable_pipestat(dev_priv, 2, PIPE_VBLANK_INTERRUPT_ENABLE); in psb_irq_postinstall()
378 psb_disable_pipestat(dev_priv, 2, PIPE_VBLANK_INTERRUPT_ENABLE); in psb_irq_postinstall()
380 if (dev_priv->ops->hotplug_enable) in psb_irq_postinstall()
381 dev_priv->ops->hotplug_enable(dev, true); in psb_irq_postinstall()
383 spin_unlock_irqrestore(&dev_priv->irqmask_lock, irqflags); in psb_irq_postinstall()
389 struct drm_psb_private *dev_priv = dev->dev_private; in psb_irq_uninstall() local
392 spin_lock_irqsave(&dev_priv->irqmask_lock, irqflags); in psb_irq_uninstall()
394 if (dev_priv->ops->hotplug_enable) in psb_irq_uninstall()
395 dev_priv->ops->hotplug_enable(dev, false); in psb_irq_uninstall()
400 psb_disable_pipestat(dev_priv, 0, PIPE_VBLANK_INTERRUPT_ENABLE); in psb_irq_uninstall()
403 psb_disable_pipestat(dev_priv, 1, PIPE_VBLANK_INTERRUPT_ENABLE); in psb_irq_uninstall()
406 psb_disable_pipestat(dev_priv, 2, PIPE_VBLANK_INTERRUPT_ENABLE); in psb_irq_uninstall()
408 dev_priv->vdc_irq_mask &= _PSB_IRQ_SGX_FLAG | in psb_irq_uninstall()
413 PSB_WVDC32(~dev_priv->vdc_irq_mask, PSB_INT_MASK_R); in psb_irq_uninstall()
414 PSB_WVDC32(dev_priv->vdc_irq_mask, PSB_INT_ENABLE_R); in psb_irq_uninstall()
420 spin_unlock_irqrestore(&dev_priv->irqmask_lock, irqflags); in psb_irq_uninstall()
425 struct drm_psb_private *dev_priv = in psb_irq_turn_on_dpst() local
443 psb_enable_pipestat(dev_priv, 0, PIPE_DPST_EVENT_ENABLE); in psb_irq_turn_on_dpst()
458 struct drm_psb_private *dev_priv = in psb_irq_enable_dpst() local
462 spin_lock_irqsave(&dev_priv->irqmask_lock, irqflags); in psb_irq_enable_dpst()
465 mid_enable_pipe_event(dev_priv, 0); in psb_irq_enable_dpst()
468 spin_unlock_irqrestore(&dev_priv->irqmask_lock, irqflags); in psb_irq_enable_dpst()
474 struct drm_psb_private *dev_priv = in psb_irq_turn_off_dpst() local
483 psb_disable_pipestat(dev_priv, 0, PIPE_DPST_EVENT_ENABLE); in psb_irq_turn_off_dpst()
496 struct drm_psb_private *dev_priv = in psb_irq_disable_dpst() local
500 spin_lock_irqsave(&dev_priv->irqmask_lock, irqflags); in psb_irq_disable_dpst()
502 mid_disable_pipe_event(dev_priv, 0); in psb_irq_disable_dpst()
505 spin_unlock_irqrestore(&dev_priv->irqmask_lock, irqflags); in psb_irq_disable_dpst()
515 struct drm_psb_private *dev_priv = dev->dev_private; in psb_enable_vblank() local
533 spin_lock_irqsave(&dev_priv->irqmask_lock, irqflags); in psb_enable_vblank()
536 dev_priv->vdc_irq_mask |= _PSB_VSYNC_PIPEA_FLAG; in psb_enable_vblank()
538 dev_priv->vdc_irq_mask |= _PSB_VSYNC_PIPEB_FLAG; in psb_enable_vblank()
540 PSB_WVDC32(~dev_priv->vdc_irq_mask, PSB_INT_MASK_R); in psb_enable_vblank()
541 PSB_WVDC32(dev_priv->vdc_irq_mask, PSB_INT_ENABLE_R); in psb_enable_vblank()
542 psb_enable_pipestat(dev_priv, pipe, PIPE_VBLANK_INTERRUPT_ENABLE); in psb_enable_vblank()
544 spin_unlock_irqrestore(&dev_priv->irqmask_lock, irqflags); in psb_enable_vblank()
554 struct drm_psb_private *dev_priv = dev->dev_private; in psb_disable_vblank() local
559 spin_lock_irqsave(&dev_priv->irqmask_lock, irqflags); in psb_disable_vblank()
562 dev_priv->vdc_irq_mask &= ~_PSB_VSYNC_PIPEA_FLAG; in psb_disable_vblank()
564 dev_priv->vdc_irq_mask &= ~_PSB_VSYNC_PIPEB_FLAG; in psb_disable_vblank()
566 PSB_WVDC32(~dev_priv->vdc_irq_mask, PSB_INT_MASK_R); in psb_disable_vblank()
567 PSB_WVDC32(dev_priv->vdc_irq_mask, PSB_INT_ENABLE_R); in psb_disable_vblank()
568 psb_disable_pipestat(dev_priv, pipe, PIPE_VBLANK_INTERRUPT_ENABLE); in psb_disable_vblank()
570 spin_unlock_irqrestore(&dev_priv->irqmask_lock, irqflags); in psb_disable_vblank()
578 struct drm_psb_private *dev_priv = in mdfld_enable_te() local
592 spin_lock_irqsave(&dev_priv->irqmask_lock, irqflags); in mdfld_enable_te()
594 mid_enable_pipe_event(dev_priv, pipe); in mdfld_enable_te()
595 psb_enable_pipestat(dev_priv, pipe, PIPE_TE_ENABLE); in mdfld_enable_te()
597 spin_unlock_irqrestore(&dev_priv->irqmask_lock, irqflags); in mdfld_enable_te()
607 struct drm_psb_private *dev_priv = in mdfld_disable_te() local
611 if (!dev_priv->dsr_enable) in mdfld_disable_te()
614 spin_lock_irqsave(&dev_priv->irqmask_lock, irqflags); in mdfld_disable_te()
616 mid_disable_pipe_event(dev_priv, pipe); in mdfld_disable_te()
617 psb_disable_pipestat(dev_priv, pipe, PIPE_TE_ENABLE); in mdfld_disable_te()
619 spin_unlock_irqrestore(&dev_priv->irqmask_lock, irqflags); in mdfld_disable_te()