diff options
Diffstat (limited to 'drivers/video/intelfb/intelfbdrv.c')
-rw-r--r-- | drivers/video/intelfb/intelfbdrv.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/drivers/video/intelfb/intelfbdrv.c b/drivers/video/intelfb/intelfbdrv.c index ce45a684bbea..b96001b5d947 100644 --- a/drivers/video/intelfb/intelfbdrv.c +++ b/drivers/video/intelfb/intelfbdrv.c | |||
@@ -6,6 +6,7 @@ | |||
6 | * | 6 | * |
7 | * Copyright © 2002, 2003 David Dawes <dawes@xfree86.org> | 7 | * Copyright © 2002, 2003 David Dawes <dawes@xfree86.org> |
8 | * 2004 Sylvain Meyer | 8 | * 2004 Sylvain Meyer |
9 | * 2006 David Airlie | ||
9 | * | 10 | * |
10 | * This driver consists of two parts. The first part (intelfbdrv.c) provides | 11 | * This driver consists of two parts. The first part (intelfbdrv.c) provides |
11 | * the basic fbdev interfaces, is derived in part from the radeonfb and | 12 | * the basic fbdev interfaces, is derived in part from the radeonfb and |
@@ -551,8 +552,6 @@ intelfb_pci_register(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
551 | (ent->device == PCI_DEVICE_ID_INTEL_945G)) { | 552 | (ent->device == PCI_DEVICE_ID_INTEL_945G)) { |
552 | aperture_bar = 2; | 553 | aperture_bar = 2; |
553 | mmio_bar = 0; | 554 | mmio_bar = 0; |
554 | /* Disable HW cursor on 9x5G/M (not implemented yet) */ | ||
555 | hwcursor = 0; | ||
556 | } | 555 | } |
557 | dinfo->aperture.physical = pci_resource_start(pdev, aperture_bar); | 556 | dinfo->aperture.physical = pci_resource_start(pdev, aperture_bar); |
558 | dinfo->aperture.size = pci_resource_len(pdev, aperture_bar); | 557 | dinfo->aperture.size = pci_resource_len(pdev, aperture_bar); |
@@ -1468,7 +1467,7 @@ static int | |||
1468 | intelfb_cursor(struct fb_info *info, struct fb_cursor *cursor) | 1467 | intelfb_cursor(struct fb_info *info, struct fb_cursor *cursor) |
1469 | { | 1468 | { |
1470 | struct intelfb_info *dinfo = GET_DINFO(info); | 1469 | struct intelfb_info *dinfo = GET_DINFO(info); |
1471 | 1470 | int ret; | |
1472 | #if VERBOSE > 0 | 1471 | #if VERBOSE > 0 |
1473 | DBG_MSG("intelfb_cursor\n"); | 1472 | DBG_MSG("intelfb_cursor\n"); |
1474 | #endif | 1473 | #endif |
@@ -1479,7 +1478,12 @@ intelfb_cursor(struct fb_info *info, struct fb_cursor *cursor) | |||
1479 | intelfbhw_cursor_hide(dinfo); | 1478 | intelfbhw_cursor_hide(dinfo); |
1480 | 1479 | ||
1481 | /* If XFree killed the cursor - restore it */ | 1480 | /* If XFree killed the cursor - restore it */ |
1482 | if (INREG(CURSOR_A_BASEADDR) != dinfo->cursor.offset << 12) { | 1481 | if (dinfo->mobile || IS_I9xx(dinfo)) |
1482 | ret = (INREG(CURSOR_A_BASEADDR) != dinfo->cursor.physical); | ||
1483 | else | ||
1484 | ret = (INREG(CURSOR_A_BASEADDR) != dinfo->cursor.offset << 12); | ||
1485 | |||
1486 | if (ret) { | ||
1483 | u32 fg, bg; | 1487 | u32 fg, bg; |
1484 | 1488 | ||
1485 | DBG_MSG("the cursor was killed - restore it !!\n"); | 1489 | DBG_MSG("the cursor was killed - restore it !!\n"); |