~ubuntu-branches/ubuntu/precise/xserver-xorg-video-intel/precise

« back to all changes in this revision

Viewing changes to src/intel_display.c

  • Committer: Bazaar Package Importer
  • Author(s): Christopher James Halse Rogers, Timo Aaltonen, Christopher James Halse Rogers
  • Date: 2011-06-02 18:27:35 UTC
  • mfrom: (1.5.20 sid)
  • Revision ID: james.westby@ubuntu.com-20110602182735-ettcix23ikesyg79
Tags: 2:2.15.0-3ubuntu1
[ Timo Aaltonen ]
* Merge from Debian unstable, remaining changes:
  - 101_copy-fb.patch
    + Plymouth integration patch
  - 120_check_privates.patch
    + Check for null privates pointer on render_dest_picture.
  - debian/xserver-xorg-video-intel.preinst.in:
  - debian/xserver-xorg-video-intel.postinst.in:
    + Remove obsolete /etc/modprobe.d/i915-kms.conf file on upgrades.  
      KMS is the kernel default.
* Dropped patches:
  102_gen6_invalidate_texture_cache.patch
  107_solid_nullptr_check.patch
  108_undo_dmg_trans_before_append.patch
  109_dont_reconstruct_glyph_cache_on_rotate.patch
  111_fix_clipped_window_plane_offset.patch
  112_fix_error_in_4c4ad555.patch
  113_remove_broken_max_base_addresses.patch
  114_warnings_cleanup_part_2.patch
  115_quell_vblank_counter_failed.patch
  117_946gz_isreally_965g.patch
  119_disable_relaxed_fencing.path
  - all upstream.
[ Christopher James Halse Rogers ]
* debian/patches/101_copy-fb.patch
  - Refresh for new upstream.

Show diffs side-by-side

added added

removed removed

Lines of Context:
50
50
        int cpp;
51
51
 
52
52
        drmEventContext event_context;
53
 
        void *event_data;
 
53
        DRI2FrameEventPtr flip_info;
54
54
        int old_fb_id;
55
55
        int flip_count;
56
56
        unsigned int fe_frame;
70
70
        struct intel_mode *mode;
71
71
        drmModeModeInfo kmode;
72
72
        drmModeCrtcPtr mode_crtc;
 
73
        int pipe;
73
74
        dri_bo *cursor;
74
75
        dri_bo *rotate_bo;
75
76
        uint32_t rotate_pitch;
118
119
 * List of available kernel interfaces in priority order
119
120
 */
120
121
static const char *backlight_interfaces[] = {
121
 
        "intel", /* prefer our own native backlight driver */
122
122
        "asus-laptop",
123
123
        "eeepc",
124
124
        "thinkpad_screen",
128
128
        "samsung",
129
129
        "acpi_video1", /* finally fallback to the generic acpi drivers */
130
130
        "acpi_video0",
 
131
        "intel_backlight",
131
132
        NULL,
132
133
};
133
134
/*
450
451
        crtc->y = y;
451
452
        crtc->rotation = rotation;
452
453
 
453
 
        intel_batch_submit(crtc->scrn, TRUE);
 
454
        intel_batch_submit(crtc->scrn);
454
455
 
455
456
        mode_to_kmode(crtc->scrn, &intel_crtc->kmode, mode);
456
457
        ret = intel_crtc_apply(crtc);
678
679
        intel_crtc->mode = mode;
679
680
        crtc->driver_private = intel_crtc;
680
681
 
 
682
        intel_crtc->pipe = drm_intel_get_pipe_from_crtc_id(intel->bufmgr,
 
683
                                                           crtc_id(intel_crtc));
 
684
 
681
685
        intel_crtc->cursor = drm_intel_bo_alloc(intel->bufmgr, "ARGB cursor",
682
686
                                                HWCURSOR_SIZE_ARGB,
683
687
                                                GTT_PAGE_SIZE);
1359
1363
        if (scrn->virtualX == width && scrn->virtualY == height)
1360
1364
                return TRUE;
1361
1365
 
1362
 
        intel_batch_submit(scrn, TRUE);
 
1366
        intel_batch_submit(scrn);
1363
1367
 
1364
1368
        old_width = scrn->virtualX;
1365
1369
        old_height = scrn->virtualY;
1424
1428
Bool
1425
1429
intel_do_pageflip(intel_screen_private *intel,
1426
1430
                  dri_bo *new_front,
1427
 
                  void *data, int ref_crtc_hw_id)
 
1431
                  DRI2FrameEventPtr flip_info, int ref_crtc_hw_id)
1428
1432
{
1429
1433
        ScrnInfoPtr scrn = intel->scrn;
1430
1434
        xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(scrn);
1460
1464
                if (!config->crtc[i]->enabled)
1461
1465
                        continue;
1462
1466
 
1463
 
                mode->event_data = data;
 
1467
                mode->flip_info = flip_info;
1464
1468
                mode->flip_count++;
1465
1469
 
1466
1470
                crtc = config->crtc[i]->driver_private;
1508
1512
 
1509
1513
static void
1510
1514
intel_vblank_handler(int fd, unsigned int frame, unsigned int tv_sec,
1511
 
                       unsigned int tv_usec, void *event_data)
 
1515
                       unsigned int tv_usec, void *event)
1512
1516
{
1513
 
        I830DRI2FrameEventHandler(frame, tv_sec, tv_usec, event_data);
 
1517
        I830DRI2FrameEventHandler(frame, tv_sec, tv_usec, event);
1514
1518
}
1515
1519
 
1516
1520
static void
1537
1541
        /* Release framebuffer */
1538
1542
        drmModeRmFB(mode->fd, mode->old_fb_id);
1539
1543
 
1540
 
        if (mode->event_data == NULL)
 
1544
        if (mode->flip_info == NULL)
1541
1545
                return;
1542
1546
 
1543
1547
        /* Deliver cached msc, ust from reference crtc to flip event handler */
1544
1548
        I830DRI2FlipEventHandler(mode->fe_frame, mode->fe_tv_sec,
1545
 
                                 mode->fe_tv_usec, mode->event_data);
 
1549
                                 mode->fe_tv_usec, mode->flip_info);
1546
1550
}
1547
1551
 
1548
1552
static void
1671
1675
        intel->modes = NULL;
1672
1676
}
1673
1677
 
1674
 
int
1675
 
intel_get_pipe_from_crtc_id(drm_intel_bufmgr *bufmgr, xf86CrtcPtr crtc)
1676
 
{
1677
 
        return drm_intel_get_pipe_from_crtc_id(bufmgr,
1678
 
                                                crtc_id(crtc->driver_private));
1679
 
}
1680
 
 
1681
1678
/* for the mode overlay */
1682
1679
int
1683
1680
intel_crtc_id(xf86CrtcPtr crtc)
1684
1681
{
1685
1682
        return crtc_id(crtc->driver_private);
1686
1683
}
 
1684
 
 
1685
int intel_crtc_to_pipe(xf86CrtcPtr crtc)
 
1686
{
 
1687
        struct intel_crtc *intel_crtc = crtc->driver_private;
 
1688
        return intel_crtc->pipe;
 
1689
}