Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0e170c72 authored by Maik Broemme's avatar Maik Broemme Committed by Linus Torvalds
Browse files

fbdev: intelfb: add support for the Intel Integrated Graphics Controller 965G/965GM



Add support for the 965G and 965GM graphic chipsets to the intelfb driver.  I
have a notebook with an Intel Mobile GM965/GL960 Integrated Graphics
Controller and with the attached patch the framebuffer comes up.  I have
tested it a bit with DirectFB to make sure it is working stable.

I also have an Intel Mobile GM945 and I compared the results, the programming
interface of the 9xx series from Intel is mostly the same, so I think the
patch should add all the functionality which the 945GM has.

Signed-off-by: default avatarMaik Broemme <mbroemme@plusserver.de>
Cc: Dave Airlie <airlied@linux.ie>
Cc: Antonino Daplas <adaplas@pol.net>
Cc: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com>
Cc: Krzysztof Halasa <khc@pm.waw.pl>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 0aa16341
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -14,6 +14,8 @@ graphics devices. These would include:
	Intel 915GM
	Intel 945G
	Intel 945GM
	Intel 965G
	Intel 965GM

B.  List of available options

+2 −2
Original line number Diff line number Diff line
@@ -1119,7 +1119,7 @@ config FB_CARILLO_RANCH
	  This driver supports the LE80578 (Carillo Ranch) board

config FB_INTEL
	tristate "Intel 830M/845G/852GM/855GM/865G/915G/945G support (EXPERIMENTAL)"
	tristate "Intel 830M/845G/852GM/855GM/865G/915G/945G/945GM/965G/965GM support (EXPERIMENTAL)"
	depends on FB && EXPERIMENTAL && PCI && X86
	select AGP
	select AGP_INTEL
@@ -1129,7 +1129,7 @@ config FB_INTEL
	select FB_CFB_IMAGEBLIT
	help
	  This driver supports the on-board graphics built in to the Intel
          830M/845G/852GM/855GM/865G/915G/915GM/945G/945GM chipsets.
          830M/845G/852GM/855GM/865G/915G/915GM/945G/945GM/965G/965GM chipsets.
          Say Y if you have and plan to use such a board.

	  If you say Y here and want DDC/I2C support you must first say Y to
+9 −3
Original line number Diff line number Diff line
@@ -12,9 +12,9 @@
#endif

/*** Version/name ***/
#define INTELFB_VERSION			"0.9.4"
#define INTELFB_VERSION			"0.9.5"
#define INTELFB_MODULE_NAME		"intelfb"
#define SUPPORTED_CHIPSETS		"830M/845G/852GM/855GM/865G/915G/915GM/945G/945GM"
#define SUPPORTED_CHIPSETS		"830M/845G/852GM/855GM/865G/915G/915GM/945G/945GM/965G/965GM"


/*** Debug/feature defines ***/
@@ -58,6 +58,8 @@
#define PCI_DEVICE_ID_INTEL_915GM	0x2592
#define PCI_DEVICE_ID_INTEL_945G	0x2772
#define PCI_DEVICE_ID_INTEL_945GM	0x27A2
#define PCI_DEVICE_ID_INTEL_965G	0x29A2
#define PCI_DEVICE_ID_INTEL_965GM	0x2A02

/* Size of MMIO region */
#define INTEL_REG_SIZE			0x80000
@@ -158,6 +160,8 @@ enum intel_chips {
	INTEL_915GM,
	INTEL_945G,
	INTEL_945GM,
	INTEL_965G,
	INTEL_965GM,
};

struct intelfb_hwstate {
@@ -358,7 +362,9 @@ struct intelfb_info {
#define IS_I9XX(dinfo) (((dinfo)->chipset == INTEL_915G) ||	\
			((dinfo)->chipset == INTEL_915GM) ||	\
			((dinfo)->chipset == INTEL_945G) ||	\
			((dinfo)->chipset==INTEL_945GM))
			((dinfo)->chipset == INTEL_945GM) ||	\
			((dinfo)->chipset == INTEL_965G) ||	\
			((dinfo)->chipset == INTEL_965GM))

#ifndef FBIO_WAITFORVSYNC
#define FBIO_WAITFORVSYNC	_IOW('F', 0x20, __u32)
+2 −0
Original line number Diff line number Diff line
@@ -169,6 +169,8 @@ void intelfb_create_i2c_busses(struct intelfb_info *dinfo)
		/* has some LVDS + tv-out */
	case INTEL_945G:
	case INTEL_945GM:
	case INTEL_965G:
	case INTEL_965GM:
		/* SDVO ports have a single control bus - 2 devices */
		dinfo->output[i].type = INTELFB_OUTPUT_SDVO;
		intelfb_setup_i2c_bus(dinfo, &dinfo->output[i].i2c_bus,
+10 −2
Original line number Diff line number Diff line
@@ -2,7 +2,7 @@
 * intelfb
 *
 * Linux framebuffer driver for Intel(R) 830M/845G/852GM/855GM/865G/915G/915GM/
 * 945G/945GM integrated graphics chips.
 * 945G/945GM/965G/965GM integrated graphics chips.
 *
 * Copyright © 2002, 2003 David Dawes <dawes@xfree86.org>
 *                   2004 Sylvain Meyer
@@ -99,6 +99,9 @@
 *              Add vram option to reserve more memory than stolen by BIOS
 *              Fix intelfbhw_pan_display typo
 *              Add __initdata annotations
 *
 *    04/2008 - Version 0.9.5
 *              Add support for 965G/965GM. (Maik Broemme <mbroemme@plusserver.de>)
 */

#include <linux/module.h>
@@ -180,6 +183,8 @@ static struct pci_device_id intelfb_pci_table[] __devinitdata = {
	{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_915GM, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, INTELFB_CLASS_MASK, INTEL_915GM },
	{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_945G, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, INTELFB_CLASS_MASK, INTEL_945G },
	{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_945GM, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, INTELFB_CLASS_MASK, INTEL_945GM },
	{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_965G, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, INTELFB_CLASS_MASK, INTEL_965G },
	{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_965GM, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, INTELFB_CLASS_MASK, INTEL_965GM },
	{ 0, }
};

@@ -549,7 +554,10 @@ static int __devinit intelfb_pci_register(struct pci_dev *pdev,
	if ((ent->device == PCI_DEVICE_ID_INTEL_915G) ||
	    (ent->device == PCI_DEVICE_ID_INTEL_915GM) ||
	    (ent->device == PCI_DEVICE_ID_INTEL_945G)  ||
	    (ent->device == PCI_DEVICE_ID_INTEL_945GM)) {
	    (ent->device == PCI_DEVICE_ID_INTEL_945GM) ||
	    (ent->device == PCI_DEVICE_ID_INTEL_965G) ||
	    (ent->device == PCI_DEVICE_ID_INTEL_965GM)) {

		aperture_bar = 2;
		mmio_bar = 0;
	}
Loading