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, crtc_id, 0, in radeon_crtc_handle_vblank()
327 ((vpos >= (99 * rdev->mode_info.crtcs[crtc_id]->base.hwmode.crtc_vdisplay)/100) || in radeon_crtc_handle_vblank()
328 (vpos < 0 && !ASIC_IS_AVIVO(rdev)))) { in radeon_crtc_handle_vblank()
337 spin_unlock_irqrestore(&rdev->ddev->event_lock, flags); in radeon_crtc_handle_vblank()
339 radeon_crtc_handle_flip(rdev, crtc_id); in radeon_crtc_handle_vblank()
350 void radeon_crtc_handle_flip(struct radeon_device *rdev, int crtc_id) in radeon_crtc_handle_flip() argument
352 struct radeon_crtc *radeon_crtc = rdev->mode_info.crtcs[crtc_id]; in radeon_crtc_handle_flip()
360 spin_lock_irqsave(&rdev->ddev->event_lock, flags); in radeon_crtc_handle_flip()
367 spin_unlock_irqrestore(&rdev->ddev->event_lock, flags); in radeon_crtc_handle_flip()
377 drm_send_vblank_event(rdev->ddev, crtc_id, work->event); in radeon_crtc_handle_flip()
379 spin_unlock_irqrestore(&rdev->ddev->event_lock, flags); in radeon_crtc_handle_flip()
381 drm_vblank_put(rdev->ddev, radeon_crtc->crtc_id); in radeon_crtc_handle_flip()
382 radeon_irq_kms_pflip_irq_put(rdev, work->crtc_id); in radeon_crtc_handle_flip()
397 struct radeon_device *rdev = work->rdev; in radeon_flip_work_func() local
398 struct radeon_crtc *radeon_crtc = rdev->mode_info.crtcs[work->crtc_id]; in radeon_flip_work_func()
404 down_read(&rdev->exclusive_lock); in radeon_flip_work_func()
409 if (fence && fence->rdev == rdev) { in radeon_flip_work_func()
412 up_read(&rdev->exclusive_lock); in radeon_flip_work_func()
414 r = radeon_gpu_reset(rdev); in radeon_flip_work_func()
416 down_read(&rdev->exclusive_lock); in radeon_flip_work_func()
437 radeon_irq_kms_pflip_irq_get(rdev, radeon_crtc->crtc_id); in radeon_flip_work_func()
440 radeon_page_flip(rdev, radeon_crtc->crtc_id, work->base); in radeon_flip_work_func()
444 up_read(&rdev->exclusive_lock); in radeon_flip_work_func()
453 struct radeon_device *rdev = dev->dev_private; in radeon_crtc_page_flip() local
472 work->rdev = rdev; in radeon_crtc_page_flip()
499 ASIC_IS_AVIVO(rdev) ? 0 : 1 << 27, &base); in radeon_crtc_page_flip()
510 if (!ASIC_IS_AVIVO(rdev)) { in radeon_crtc_page_flip()
516 if (ASIC_IS_R300(rdev)) { in radeon_crtc_page_flip()
597 struct radeon_device *rdev; in radeon_crtc_set_config() local
619 rdev = dev->dev_private; in radeon_crtc_set_config()
622 if (active && !rdev->have_disp_power_ref) { in radeon_crtc_set_config()
623 rdev->have_disp_power_ref = true; in radeon_crtc_set_config()
628 if (!active && rdev->have_disp_power_ref) { in radeon_crtc_set_config()
630 rdev->have_disp_power_ref = false; in radeon_crtc_set_config()
648 struct radeon_device *rdev = dev->dev_private; in radeon_crtc_init() local
661 rdev->mode_info.crtcs[index] = radeon_crtc; in radeon_crtc_init()
663 if (rdev->family >= CHIP_BONAIRE) { in radeon_crtc_init()
685 if (rdev->is_atom_bios && (ASIC_IS_AVIVO(rdev) || radeon_r4xx_atom)) in radeon_crtc_init()
819 struct radeon_device *rdev = dev->dev_private; in radeon_setup_enc_conn() local
822 if (rdev->bios) { in radeon_setup_enc_conn()
823 if (rdev->is_atom_bios) { in radeon_setup_enc_conn()
833 if (!ASIC_IS_AVIVO(rdev)) in radeon_setup_enc_conn()
1342 struct radeon_device *rdev = dev->dev_private; in radeon_output_poll_changed() local
1343 radeon_fb_output_poll_changed(rdev); in radeon_output_poll_changed()
1392 static int radeon_modeset_create_props(struct radeon_device *rdev) in radeon_modeset_create_props() argument
1396 if (rdev->is_atom_bios) { in radeon_modeset_create_props()
1397 rdev->mode_info.coherent_mode_property = in radeon_modeset_create_props()
1398 drm_property_create_range(rdev->ddev, 0 , "coherent", 0, 1); in radeon_modeset_create_props()
1399 if (!rdev->mode_info.coherent_mode_property) in radeon_modeset_create_props()
1403 if (!ASIC_IS_AVIVO(rdev)) { in radeon_modeset_create_props()
1405 rdev->mode_info.tmds_pll_property = in radeon_modeset_create_props()
1406 drm_property_create_enum(rdev->ddev, 0, in radeon_modeset_create_props()
1411 rdev->mode_info.load_detect_property = in radeon_modeset_create_props()
1412 drm_property_create_range(rdev->ddev, 0, "load detection", 0, 1); in radeon_modeset_create_props()
1413 if (!rdev->mode_info.load_detect_property) in radeon_modeset_create_props()
1416 drm_mode_create_scaling_mode_property(rdev->ddev); in radeon_modeset_create_props()
1419 rdev->mode_info.tv_std_property = in radeon_modeset_create_props()
1420 drm_property_create_enum(rdev->ddev, 0, in radeon_modeset_create_props()
1425 rdev->mode_info.underscan_property = in radeon_modeset_create_props()
1426 drm_property_create_enum(rdev->ddev, 0, in radeon_modeset_create_props()
1430 rdev->mode_info.underscan_hborder_property = in radeon_modeset_create_props()
1431 drm_property_create_range(rdev->ddev, 0, in radeon_modeset_create_props()
1433 if (!rdev->mode_info.underscan_hborder_property) in radeon_modeset_create_props()
1436 rdev->mode_info.underscan_vborder_property = in radeon_modeset_create_props()
1437 drm_property_create_range(rdev->ddev, 0, in radeon_modeset_create_props()
1439 if (!rdev->mode_info.underscan_vborder_property) in radeon_modeset_create_props()
1443 rdev->mode_info.audio_property = in radeon_modeset_create_props()
1444 drm_property_create_enum(rdev->ddev, 0, in radeon_modeset_create_props()
1449 rdev->mode_info.dither_property = in radeon_modeset_create_props()
1450 drm_property_create_enum(rdev->ddev, 0, in radeon_modeset_create_props()
1455 rdev->mode_info.output_csc_property = in radeon_modeset_create_props()
1456 drm_property_create_enum(rdev->ddev, 0, in radeon_modeset_create_props()
1463 void radeon_update_display_priority(struct radeon_device *rdev) in radeon_update_display_priority() argument
1473 if ((ASIC_IS_R300(rdev) || (rdev->family == CHIP_RV515)) && in radeon_update_display_priority()
1474 !(rdev->flags & RADEON_IS_IGP)) in radeon_update_display_priority()
1475 rdev->disp_priority = 2; in radeon_update_display_priority()
1477 rdev->disp_priority = 0; in radeon_update_display_priority()
1479 rdev->disp_priority = radeon_disp_priority; in radeon_update_display_priority()
1486 static void radeon_afmt_init(struct radeon_device *rdev) in radeon_afmt_init() argument
1491 rdev->mode_info.afmt[i] = NULL; in radeon_afmt_init()
1493 if (ASIC_IS_NODCE(rdev)) { in radeon_afmt_init()
1495 } else if (ASIC_IS_DCE4(rdev)) { in radeon_afmt_init()
1511 if (ASIC_IS_DCE8(rdev)) in radeon_afmt_init()
1513 else if (ASIC_IS_DCE6(rdev)) in radeon_afmt_init()
1515 else if (ASIC_IS_DCE5(rdev)) in radeon_afmt_init()
1517 else if (ASIC_IS_DCE41(rdev)) in radeon_afmt_init()
1524 rdev->mode_info.afmt[i] = kzalloc(sizeof(struct radeon_afmt), GFP_KERNEL); in radeon_afmt_init()
1525 if (rdev->mode_info.afmt[i]) { in radeon_afmt_init()
1526 rdev->mode_info.afmt[i]->offset = eg_offsets[i]; in radeon_afmt_init()
1527 rdev->mode_info.afmt[i]->id = i; in radeon_afmt_init()
1530 } else if (ASIC_IS_DCE3(rdev)) { in radeon_afmt_init()
1532 rdev->mode_info.afmt[0] = kzalloc(sizeof(struct radeon_afmt), GFP_KERNEL); in radeon_afmt_init()
1533 if (rdev->mode_info.afmt[0]) { in radeon_afmt_init()
1534 rdev->mode_info.afmt[0]->offset = DCE3_HDMI_OFFSET0; in radeon_afmt_init()
1535 rdev->mode_info.afmt[0]->id = 0; in radeon_afmt_init()
1537 rdev->mode_info.afmt[1] = kzalloc(sizeof(struct radeon_afmt), GFP_KERNEL); in radeon_afmt_init()
1538 if (rdev->mode_info.afmt[1]) { in radeon_afmt_init()
1539 rdev->mode_info.afmt[1]->offset = DCE3_HDMI_OFFSET1; in radeon_afmt_init()
1540 rdev->mode_info.afmt[1]->id = 1; in radeon_afmt_init()
1542 } else if (ASIC_IS_DCE2(rdev)) { in radeon_afmt_init()
1544 rdev->mode_info.afmt[0] = kzalloc(sizeof(struct radeon_afmt), GFP_KERNEL); in radeon_afmt_init()
1545 if (rdev->mode_info.afmt[0]) { in radeon_afmt_init()
1546 rdev->mode_info.afmt[0]->offset = DCE2_HDMI_OFFSET0; in radeon_afmt_init()
1547 rdev->mode_info.afmt[0]->id = 0; in radeon_afmt_init()
1550 if (rdev->family >= CHIP_R600) { in radeon_afmt_init()
1551 rdev->mode_info.afmt[1] = kzalloc(sizeof(struct radeon_afmt), GFP_KERNEL); in radeon_afmt_init()
1552 if (rdev->mode_info.afmt[1]) { in radeon_afmt_init()
1553 rdev->mode_info.afmt[1]->offset = DCE2_HDMI_OFFSET1; in radeon_afmt_init()
1554 rdev->mode_info.afmt[1]->id = 1; in radeon_afmt_init()
1560 static void radeon_afmt_fini(struct radeon_device *rdev) in radeon_afmt_fini() argument
1565 kfree(rdev->mode_info.afmt[i]); in radeon_afmt_fini()
1566 rdev->mode_info.afmt[i] = NULL; in radeon_afmt_fini()
1570 int radeon_modeset_init(struct radeon_device *rdev) in radeon_modeset_init() argument
1575 drm_mode_config_init(rdev->ddev); in radeon_modeset_init()
1576 rdev->mode_info.mode_config_initialized = true; in radeon_modeset_init()
1578 rdev->ddev->mode_config.funcs = &radeon_mode_funcs; in radeon_modeset_init()
1580 if (ASIC_IS_DCE5(rdev)) { in radeon_modeset_init()
1581 rdev->ddev->mode_config.max_width = 16384; in radeon_modeset_init()
1582 rdev->ddev->mode_config.max_height = 16384; in radeon_modeset_init()
1583 } else if (ASIC_IS_AVIVO(rdev)) { in radeon_modeset_init()
1584 rdev->ddev->mode_config.max_width = 8192; in radeon_modeset_init()
1585 rdev->ddev->mode_config.max_height = 8192; in radeon_modeset_init()
1587 rdev->ddev->mode_config.max_width = 4096; in radeon_modeset_init()
1588 rdev->ddev->mode_config.max_height = 4096; in radeon_modeset_init()
1591 rdev->ddev->mode_config.preferred_depth = 24; in radeon_modeset_init()
1592 rdev->ddev->mode_config.prefer_shadow = 1; in radeon_modeset_init()
1594 rdev->ddev->mode_config.fb_base = rdev->mc.aper_base; in radeon_modeset_init()
1596 ret = radeon_modeset_create_props(rdev); in radeon_modeset_init()
1602 radeon_i2c_init(rdev); in radeon_modeset_init()
1605 if (!rdev->is_atom_bios) { in radeon_modeset_init()
1607 radeon_combios_check_hardcoded_edid(rdev); in radeon_modeset_init()
1611 for (i = 0; i < rdev->num_crtc; i++) { in radeon_modeset_init()
1612 radeon_crtc_init(rdev->ddev, i); in radeon_modeset_init()
1616 ret = radeon_setup_enc_conn(rdev->ddev); in radeon_modeset_init()
1622 if (rdev->is_atom_bios) { in radeon_modeset_init()
1623 radeon_atom_encoder_init(rdev); in radeon_modeset_init()
1624 radeon_atom_disp_eng_pll_init(rdev); in radeon_modeset_init()
1628 radeon_hpd_init(rdev); in radeon_modeset_init()
1631 radeon_afmt_init(rdev); in radeon_modeset_init()
1633 radeon_fbdev_init(rdev); in radeon_modeset_init()
1634 drm_kms_helper_poll_init(rdev->ddev); in radeon_modeset_init()
1637 ret = radeon_pm_late_init(rdev); in radeon_modeset_init()
1642 void radeon_modeset_fini(struct radeon_device *rdev) in radeon_modeset_fini() argument
1644 radeon_fbdev_fini(rdev); in radeon_modeset_fini()
1645 kfree(rdev->mode_info.bios_hardcoded_edid); in radeon_modeset_fini()
1647 if (rdev->mode_info.mode_config_initialized) { in radeon_modeset_fini()
1648 radeon_afmt_fini(rdev); in radeon_modeset_fini()
1649 drm_kms_helper_poll_fini(rdev->ddev); in radeon_modeset_fini()
1650 radeon_hpd_fini(rdev); in radeon_modeset_fini()
1651 drm_mode_config_cleanup(rdev->ddev); in radeon_modeset_fini()
1652 rdev->mode_info.mode_config_initialized = false; in radeon_modeset_fini()
1655 radeon_i2c_fini(rdev); in radeon_modeset_fini()
1675 struct radeon_device *rdev = dev->dev_private; in radeon_crtc_scaling_mode_fixup() local
1714 if (ASIC_IS_AVIVO(rdev) && in radeon_crtc_scaling_mode_fixup()
1798 struct radeon_device *rdev = dev->dev_private; in radeon_get_crtc_scanoutpos() local
1806 if (ASIC_IS_DCE4(rdev)) { in radeon_get_crtc_scanoutpos()
1849 } else if (ASIC_IS_AVIVO(rdev)) { in radeon_get_crtc_scanoutpos()
1907 vbl_start = rdev->mode_info.crtcs[crtc]->base.hwmode.crtc_vdisplay; in radeon_get_crtc_scanoutpos()
1923 vtotal = rdev->mode_info.crtcs[crtc]->base.hwmode.crtc_vtotal; in radeon_get_crtc_scanoutpos()
1945 vbl_start = rdev->mode_info.crtcs[crtc]->base.hwmode.crtc_vdisplay; in radeon_get_crtc_scanoutpos()
1946 vtotal = rdev->mode_info.crtcs[crtc]->base.hwmode.crtc_vtotal; in radeon_get_crtc_scanoutpos()