Lines Matching refs:rdev
44 struct radeon_device *rdev = dev->dev_private; in avivo_crtc_load_lut() local
78 struct radeon_device *rdev = dev->dev_private; in dce4_crtc_load_lut() local
108 struct radeon_device *rdev = dev->dev_private; in dce5_crtc_load_lut() local
161 if (ASIC_IS_DCE8(rdev)) { in dce5_crtc_load_lut()
174 struct radeon_device *rdev = dev->dev_private; in legacy_crtc_load_lut() local
197 struct radeon_device *rdev = dev->dev_private; in radeon_crtc_load_lut() local
202 if (ASIC_IS_DCE5(rdev)) in radeon_crtc_load_lut()
204 else if (ASIC_IS_DCE4(rdev)) in radeon_crtc_load_lut()
206 else if (ASIC_IS_AVIVO(rdev)) in radeon_crtc_load_lut()
286 void radeon_crtc_handle_vblank(struct radeon_device *rdev, int crtc_id) in radeon_crtc_handle_vblank() argument
288 struct radeon_crtc *radeon_crtc = rdev->mode_info.crtcs[crtc_id]; in radeon_crtc_handle_vblank()
306 if ((radeon_use_pflipirq == 2) && ASIC_IS_DCE4(rdev)) in radeon_crtc_handle_vblank()
309 spin_lock_irqsave(&rdev->ddev->event_lock, flags); in radeon_crtc_handle_vblank()
315 spin_unlock_irqrestore(&rdev->ddev->event_lock, flags); in radeon_crtc_handle_vblank()
319 update_pending = radeon_page_flip_pending(rdev, crtc_id); in radeon_crtc_handle_vblank()
325 (DRM_SCANOUTPOS_VALID & radeon_get_crtc_scanoutpos(rdev->ddev, in radeon_crtc_handle_vblank()
329 &rdev->mode_info.crtcs[crtc_id]->base.hwmode)) && in radeon_crtc_handle_vblank()
330 ((vpos >= (99 * rdev->mode_info.crtcs[crtc_id]->base.hwmode.crtc_vdisplay)/100) || in radeon_crtc_handle_vblank()
331 (vpos < 0 && !ASIC_IS_AVIVO(rdev)))) { in radeon_crtc_handle_vblank()
340 spin_unlock_irqrestore(&rdev->ddev->event_lock, flags); in radeon_crtc_handle_vblank()
342 radeon_crtc_handle_flip(rdev, crtc_id); in radeon_crtc_handle_vblank()
353 void radeon_crtc_handle_flip(struct radeon_device *rdev, int crtc_id) in radeon_crtc_handle_flip() argument
355 struct radeon_crtc *radeon_crtc = rdev->mode_info.crtcs[crtc_id]; in radeon_crtc_handle_flip()
363 spin_lock_irqsave(&rdev->ddev->event_lock, flags); in radeon_crtc_handle_flip()
370 spin_unlock_irqrestore(&rdev->ddev->event_lock, flags); in radeon_crtc_handle_flip()
380 drm_send_vblank_event(rdev->ddev, crtc_id, work->event); in radeon_crtc_handle_flip()
382 spin_unlock_irqrestore(&rdev->ddev->event_lock, flags); in radeon_crtc_handle_flip()
384 drm_vblank_put(rdev->ddev, radeon_crtc->crtc_id); in radeon_crtc_handle_flip()
385 radeon_irq_kms_pflip_irq_put(rdev, work->crtc_id); in radeon_crtc_handle_flip()
400 struct radeon_device *rdev = work->rdev; in radeon_flip_work_func() local
401 struct radeon_crtc *radeon_crtc = rdev->mode_info.crtcs[work->crtc_id]; in radeon_flip_work_func()
410 down_read(&rdev->exclusive_lock); in radeon_flip_work_func()
415 if (fence && fence->rdev == rdev) { in radeon_flip_work_func()
418 up_read(&rdev->exclusive_lock); in radeon_flip_work_func()
420 r = radeon_gpu_reset(rdev); in radeon_flip_work_func()
422 down_read(&rdev->exclusive_lock); in radeon_flip_work_func()
443 radeon_irq_kms_pflip_irq_get(rdev, radeon_crtc->crtc_id); in radeon_flip_work_func()
463 stat = radeon_get_crtc_scanoutpos(rdev->ddev, work->crtc_id, in radeon_flip_work_func()
493 radeon_page_flip(rdev, radeon_crtc->crtc_id, work->base); in radeon_flip_work_func()
497 up_read(&rdev->exclusive_lock); in radeon_flip_work_func()
506 struct radeon_device *rdev = dev->dev_private; in radeon_crtc_page_flip() local
525 work->rdev = rdev; in radeon_crtc_page_flip()
552 ASIC_IS_AVIVO(rdev) ? 0 : 1 << 27, &base); in radeon_crtc_page_flip()
563 if (!ASIC_IS_AVIVO(rdev)) { in radeon_crtc_page_flip()
569 if (ASIC_IS_R300(rdev)) { in radeon_crtc_page_flip()
650 struct radeon_device *rdev; in radeon_crtc_set_config() local
672 rdev = dev->dev_private; in radeon_crtc_set_config()
675 if (active && !rdev->have_disp_power_ref) { in radeon_crtc_set_config()
676 rdev->have_disp_power_ref = true; in radeon_crtc_set_config()
681 if (!active && rdev->have_disp_power_ref) { in radeon_crtc_set_config()
683 rdev->have_disp_power_ref = false; in radeon_crtc_set_config()
701 struct radeon_device *rdev = dev->dev_private; in radeon_crtc_init() local
714 rdev->mode_info.crtcs[index] = radeon_crtc; in radeon_crtc_init()
716 if (rdev->family >= CHIP_BONAIRE) { in radeon_crtc_init()
738 if (rdev->is_atom_bios && (ASIC_IS_AVIVO(rdev) || radeon_r4xx_atom)) in radeon_crtc_init()
872 struct radeon_device *rdev = dev->dev_private; in radeon_setup_enc_conn() local
875 if (rdev->bios) { in radeon_setup_enc_conn()
876 if (rdev->is_atom_bios) { in radeon_setup_enc_conn()
886 if (!ASIC_IS_AVIVO(rdev)) in radeon_setup_enc_conn()
1395 struct radeon_device *rdev = dev->dev_private; in radeon_output_poll_changed() local
1396 radeon_fb_output_poll_changed(rdev); in radeon_output_poll_changed()
1445 static int radeon_modeset_create_props(struct radeon_device *rdev) in radeon_modeset_create_props() argument
1449 if (rdev->is_atom_bios) { in radeon_modeset_create_props()
1450 rdev->mode_info.coherent_mode_property = in radeon_modeset_create_props()
1451 drm_property_create_range(rdev->ddev, 0 , "coherent", 0, 1); in radeon_modeset_create_props()
1452 if (!rdev->mode_info.coherent_mode_property) in radeon_modeset_create_props()
1456 if (!ASIC_IS_AVIVO(rdev)) { in radeon_modeset_create_props()
1458 rdev->mode_info.tmds_pll_property = in radeon_modeset_create_props()
1459 drm_property_create_enum(rdev->ddev, 0, in radeon_modeset_create_props()
1464 rdev->mode_info.load_detect_property = in radeon_modeset_create_props()
1465 drm_property_create_range(rdev->ddev, 0, "load detection", 0, 1); in radeon_modeset_create_props()
1466 if (!rdev->mode_info.load_detect_property) in radeon_modeset_create_props()
1469 drm_mode_create_scaling_mode_property(rdev->ddev); in radeon_modeset_create_props()
1472 rdev->mode_info.tv_std_property = in radeon_modeset_create_props()
1473 drm_property_create_enum(rdev->ddev, 0, in radeon_modeset_create_props()
1478 rdev->mode_info.underscan_property = in radeon_modeset_create_props()
1479 drm_property_create_enum(rdev->ddev, 0, in radeon_modeset_create_props()
1483 rdev->mode_info.underscan_hborder_property = in radeon_modeset_create_props()
1484 drm_property_create_range(rdev->ddev, 0, in radeon_modeset_create_props()
1486 if (!rdev->mode_info.underscan_hborder_property) in radeon_modeset_create_props()
1489 rdev->mode_info.underscan_vborder_property = in radeon_modeset_create_props()
1490 drm_property_create_range(rdev->ddev, 0, in radeon_modeset_create_props()
1492 if (!rdev->mode_info.underscan_vborder_property) in radeon_modeset_create_props()
1496 rdev->mode_info.audio_property = in radeon_modeset_create_props()
1497 drm_property_create_enum(rdev->ddev, 0, in radeon_modeset_create_props()
1502 rdev->mode_info.dither_property = in radeon_modeset_create_props()
1503 drm_property_create_enum(rdev->ddev, 0, in radeon_modeset_create_props()
1508 rdev->mode_info.output_csc_property = in radeon_modeset_create_props()
1509 drm_property_create_enum(rdev->ddev, 0, in radeon_modeset_create_props()
1516 void radeon_update_display_priority(struct radeon_device *rdev) in radeon_update_display_priority() argument
1526 if ((ASIC_IS_R300(rdev) || (rdev->family == CHIP_RV515)) && in radeon_update_display_priority()
1527 !(rdev->flags & RADEON_IS_IGP)) in radeon_update_display_priority()
1528 rdev->disp_priority = 2; in radeon_update_display_priority()
1530 rdev->disp_priority = 0; in radeon_update_display_priority()
1532 rdev->disp_priority = radeon_disp_priority; in radeon_update_display_priority()
1539 static void radeon_afmt_init(struct radeon_device *rdev) in radeon_afmt_init() argument
1544 rdev->mode_info.afmt[i] = NULL; in radeon_afmt_init()
1546 if (ASIC_IS_NODCE(rdev)) { in radeon_afmt_init()
1548 } else if (ASIC_IS_DCE4(rdev)) { in radeon_afmt_init()
1564 if (ASIC_IS_DCE8(rdev)) in radeon_afmt_init()
1566 else if (ASIC_IS_DCE6(rdev)) in radeon_afmt_init()
1568 else if (ASIC_IS_DCE5(rdev)) in radeon_afmt_init()
1570 else if (ASIC_IS_DCE41(rdev)) in radeon_afmt_init()
1577 rdev->mode_info.afmt[i] = kzalloc(sizeof(struct radeon_afmt), GFP_KERNEL); in radeon_afmt_init()
1578 if (rdev->mode_info.afmt[i]) { in radeon_afmt_init()
1579 rdev->mode_info.afmt[i]->offset = eg_offsets[i]; in radeon_afmt_init()
1580 rdev->mode_info.afmt[i]->id = i; in radeon_afmt_init()
1583 } else if (ASIC_IS_DCE3(rdev)) { in radeon_afmt_init()
1585 rdev->mode_info.afmt[0] = kzalloc(sizeof(struct radeon_afmt), GFP_KERNEL); in radeon_afmt_init()
1586 if (rdev->mode_info.afmt[0]) { in radeon_afmt_init()
1587 rdev->mode_info.afmt[0]->offset = DCE3_HDMI_OFFSET0; in radeon_afmt_init()
1588 rdev->mode_info.afmt[0]->id = 0; in radeon_afmt_init()
1590 rdev->mode_info.afmt[1] = kzalloc(sizeof(struct radeon_afmt), GFP_KERNEL); in radeon_afmt_init()
1591 if (rdev->mode_info.afmt[1]) { in radeon_afmt_init()
1592 rdev->mode_info.afmt[1]->offset = DCE3_HDMI_OFFSET1; in radeon_afmt_init()
1593 rdev->mode_info.afmt[1]->id = 1; in radeon_afmt_init()
1595 } else if (ASIC_IS_DCE2(rdev)) { in radeon_afmt_init()
1597 rdev->mode_info.afmt[0] = kzalloc(sizeof(struct radeon_afmt), GFP_KERNEL); in radeon_afmt_init()
1598 if (rdev->mode_info.afmt[0]) { in radeon_afmt_init()
1599 rdev->mode_info.afmt[0]->offset = DCE2_HDMI_OFFSET0; in radeon_afmt_init()
1600 rdev->mode_info.afmt[0]->id = 0; in radeon_afmt_init()
1603 if (rdev->family >= CHIP_R600) { in radeon_afmt_init()
1604 rdev->mode_info.afmt[1] = kzalloc(sizeof(struct radeon_afmt), GFP_KERNEL); in radeon_afmt_init()
1605 if (rdev->mode_info.afmt[1]) { in radeon_afmt_init()
1606 rdev->mode_info.afmt[1]->offset = DCE2_HDMI_OFFSET1; in radeon_afmt_init()
1607 rdev->mode_info.afmt[1]->id = 1; in radeon_afmt_init()
1613 static void radeon_afmt_fini(struct radeon_device *rdev) in radeon_afmt_fini() argument
1618 kfree(rdev->mode_info.afmt[i]); in radeon_afmt_fini()
1619 rdev->mode_info.afmt[i] = NULL; in radeon_afmt_fini()
1623 int radeon_modeset_init(struct radeon_device *rdev) in radeon_modeset_init() argument
1628 drm_mode_config_init(rdev->ddev); in radeon_modeset_init()
1629 rdev->mode_info.mode_config_initialized = true; in radeon_modeset_init()
1631 rdev->ddev->mode_config.funcs = &radeon_mode_funcs; in radeon_modeset_init()
1633 if (ASIC_IS_DCE5(rdev)) { in radeon_modeset_init()
1634 rdev->ddev->mode_config.max_width = 16384; in radeon_modeset_init()
1635 rdev->ddev->mode_config.max_height = 16384; in radeon_modeset_init()
1636 } else if (ASIC_IS_AVIVO(rdev)) { in radeon_modeset_init()
1637 rdev->ddev->mode_config.max_width = 8192; in radeon_modeset_init()
1638 rdev->ddev->mode_config.max_height = 8192; in radeon_modeset_init()
1640 rdev->ddev->mode_config.max_width = 4096; in radeon_modeset_init()
1641 rdev->ddev->mode_config.max_height = 4096; in radeon_modeset_init()
1644 rdev->ddev->mode_config.preferred_depth = 24; in radeon_modeset_init()
1645 rdev->ddev->mode_config.prefer_shadow = 1; in radeon_modeset_init()
1647 rdev->ddev->mode_config.fb_base = rdev->mc.aper_base; in radeon_modeset_init()
1649 ret = radeon_modeset_create_props(rdev); in radeon_modeset_init()
1655 radeon_i2c_init(rdev); in radeon_modeset_init()
1658 if (!rdev->is_atom_bios) { in radeon_modeset_init()
1660 radeon_combios_check_hardcoded_edid(rdev); in radeon_modeset_init()
1664 for (i = 0; i < rdev->num_crtc; i++) { in radeon_modeset_init()
1665 radeon_crtc_init(rdev->ddev, i); in radeon_modeset_init()
1669 ret = radeon_setup_enc_conn(rdev->ddev); in radeon_modeset_init()
1675 if (rdev->is_atom_bios) { in radeon_modeset_init()
1676 radeon_atom_encoder_init(rdev); in radeon_modeset_init()
1677 radeon_atom_disp_eng_pll_init(rdev); in radeon_modeset_init()
1681 radeon_hpd_init(rdev); in radeon_modeset_init()
1684 radeon_afmt_init(rdev); in radeon_modeset_init()
1686 radeon_fbdev_init(rdev); in radeon_modeset_init()
1687 drm_kms_helper_poll_init(rdev->ddev); in radeon_modeset_init()
1690 ret = radeon_pm_late_init(rdev); in radeon_modeset_init()
1695 void radeon_modeset_fini(struct radeon_device *rdev) in radeon_modeset_fini() argument
1697 radeon_fbdev_fini(rdev); in radeon_modeset_fini()
1698 kfree(rdev->mode_info.bios_hardcoded_edid); in radeon_modeset_fini()
1700 if (rdev->mode_info.mode_config_initialized) { in radeon_modeset_fini()
1701 radeon_afmt_fini(rdev); in radeon_modeset_fini()
1702 drm_kms_helper_poll_fini(rdev->ddev); in radeon_modeset_fini()
1703 radeon_hpd_fini(rdev); in radeon_modeset_fini()
1704 drm_mode_config_cleanup(rdev->ddev); in radeon_modeset_fini()
1705 rdev->mode_info.mode_config_initialized = false; in radeon_modeset_fini()
1708 radeon_i2c_fini(rdev); in radeon_modeset_fini()
1728 struct radeon_device *rdev = dev->dev_private; in radeon_crtc_scaling_mode_fixup() local
1767 if (ASIC_IS_AVIVO(rdev) && in radeon_crtc_scaling_mode_fixup()
1862 struct radeon_device *rdev = dev->dev_private; in radeon_get_crtc_scanoutpos() local
1870 if (ASIC_IS_DCE4(rdev)) { in radeon_get_crtc_scanoutpos()
1913 } else if (ASIC_IS_AVIVO(rdev)) { in radeon_get_crtc_scanoutpos()
1992 vbl_start -= rdev->mode_info.crtcs[pipe]->lb_vblank_lead_lines; in radeon_get_crtc_scanoutpos()