Lines Matching refs:drm

29 #include <drm/drm_atomic.h>
30 #include <drm/drm_atomic_helper.h>
31 #include <drm/drm_crtc_helper.h>
32 #include <drm/drm_fb_helper.h>
33 #include <drm/drm_fourcc.h>
34 #include <drm/drm_gem_framebuffer_helper.h>
35 #include <drm/drm_probe_helper.h>
36 #include <drm/drm_vblank.h>
131 nouveau_decode_mod(struct nouveau_drm *drm,
136 struct nouveau_display *disp = nouveau_display(drm->dev);
157 if (drm->client.device.info.chipset >= 0xc0)
168 struct nouveau_drm *drm = nouveau_drm(fb->dev);
170 nouveau_decode_mod(drm, fb->modifier, tile_mode, kind);
190 nouveau_validate_decode_mod(struct nouveau_drm *drm,
195 struct nouveau_display *disp = nouveau_display(drm->dev);
198 if (drm->client.device.info.family < NV_DEVICE_INFO_V0_TESLA) {
218 nouveau_decode_mod(drm, modifier, tile_mode, kind);
235 nouveau_get_height_in_blocks(struct nouveau_drm *drm,
242 BUG_ON(drm->client.device.info.family < NV_DEVICE_INFO_V0_TESLA);
244 if (drm->client.device.info.family < NV_DEVICE_INFO_V0_FERMI)
255 nouveau_check_bl_size(struct nouveau_drm *drm, struct nouveau_bo *nvbo,
262 BUG_ON(drm->client.device.info.family < NV_DEVICE_INFO_V0_TESLA);
264 if (drm->client.device.info.chipset >= 0xc0) {
273 if (drm->client.device.info.family < NV_DEVICE_INFO_V0_FERMI)
279 bh = nouveau_get_height_in_blocks(drm, h, tile_mode);
299 struct nouveau_drm *drm = nouveau_drm(dev);
309 if (drm->client.device.info.family < NV_DEVICE_INFO_V0_TESLA &&
326 if (nouveau_validate_decode_mod(drm, mode_cmd->modifier[0],
345 ret = nouveau_check_bl_size(drm, nvbo,
451 struct nouveau_drm *drm = nouveau_drm(dev);
453 spin_lock_irq(&drm->hpd_lock);
454 drm->hpd_pending = ~0;
455 spin_unlock_irq(&drm->hpd_lock);
457 schedule_work(&drm->hpd_work);
463 struct nouveau_drm *drm = container_of(work, typeof(*drm), hpd_work);
464 struct drm_device *dev = drm->dev;
473 spin_lock_irq(&drm->hpd_lock);
474 pending = drm->hpd_pending;
475 drm->hpd_pending = 0;
476 spin_unlock_irq(&drm->hpd_lock);
493 spin_lock_irq(&drm->hpd_lock);
496 spin_unlock_irq(&drm->hpd_lock);
537 pm_runtime_mark_last_busy(drm->dev->dev);
548 struct nouveau_drm *drm = container_of(nb, typeof(*drm), acpi_nb);
554 ret = pm_runtime_get(drm->dev->dev);
560 pm_runtime_put_autosuspend(drm->dev->dev);
566 NV_DEBUG(drm, "ACPI requested connector reprobe\n");
567 pm_runtime_put_noidle(drm->dev->dev);
569 NV_WARN(drm, "Dropped ACPI reprobe event due to RPM error: %d\n",
618 struct nouveau_drm *drm = nouveau_drm(dev);
639 cancel_work_sync(&drm->hpd_work);
684 struct nouveau_drm *drm = nouveau_drm(dev);
688 disp = drm->display = kzalloc(sizeof(*disp), GFP_KERNEL);
700 if (drm->client.device.info.family < NV_DEVICE_INFO_V0_CELSIUS) {
704 if (drm->client.device.info.family < NV_DEVICE_INFO_V0_TESLA) {
708 if (drm->client.device.info.family < NV_DEVICE_INFO_V0_FERMI) {
719 if (drm->client.device.info.chipset < 0x11)
728 ret = nvif_disp_ctor(&drm->client.device, "kmsDisp", 0, &disp->disp);
735 if (!ret && (disp->disp.outp_mask || drm->vbios.dcb.entries)) {
762 INIT_WORK(&drm->hpd_work, nouveau_display_hpd_work);
763 spin_lock_init(&drm->hpd_lock);
765 drm->acpi_nb.notifier_call = nouveau_display_acpi_ntfy;
766 register_acpi_notifier(&drm->acpi_nb);
783 struct nouveau_drm *drm = nouveau_drm(dev);
786 unregister_acpi_notifier(&drm->acpi_nb);
797 drm->display = NULL;