diff options
author | Phil Endecott <phil_wueww_endecott@chezphil.org> | 2008-10-16 01:03:35 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-10-16 14:21:42 -0400 |
commit | 3f7a26b4b9768fe31597d1af35106aa512dc3742 (patch) | |
tree | 943974f632e931c107868e896f1441fad24010e7 /drivers/video | |
parent | 3b25613c276d390d1dd1d69f238ee779611ccc6c (diff) |
intelfb: support 945GME (as used in ASUS Eee 901)
Add support for Intel's 945GME graphics chip to the intelfb driver. I
have assumed that the 945GME is identical to the already-supported 945GM
apart from its PCI IDs; this is based on a quick look at the X driver for
these chips which seems to treat them identically.
The 945GME is used in the ASUS Eee 901, and I coded this in the hope that
I'd be able to use it to get a console at the native 1024x600 resolution
which is not known to the BIOS. I realised too late that the intelfb
driver does not support mode changing on laptops, so it won't be any
use for me.
Signed-off-by: Phil Endecott <spam_from_intelfb@chezphil.org>
Acked-by: Krzysztof Helt <krzysztof.h1@wp.pl>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/video')
-rw-r--r-- | drivers/video/intelfb/intelfb.h | 7 | ||||
-rw-r--r-- | drivers/video/intelfb/intelfb_i2c.c | 1 | ||||
-rw-r--r-- | drivers/video/intelfb/intelfbdrv.c | 7 | ||||
-rw-r--r-- | drivers/video/intelfb/intelfbhw.c | 7 |
4 files changed, 19 insertions, 3 deletions
diff --git a/drivers/video/intelfb/intelfb.h b/drivers/video/intelfb/intelfb.h index 3325fbd68ab3..a50bea614804 100644 --- a/drivers/video/intelfb/intelfb.h +++ b/drivers/video/intelfb/intelfb.h | |||
@@ -12,9 +12,9 @@ | |||
12 | #endif | 12 | #endif |
13 | 13 | ||
14 | /*** Version/name ***/ | 14 | /*** Version/name ***/ |
15 | #define INTELFB_VERSION "0.9.5" | 15 | #define INTELFB_VERSION "0.9.6" |
16 | #define INTELFB_MODULE_NAME "intelfb" | 16 | #define INTELFB_MODULE_NAME "intelfb" |
17 | #define SUPPORTED_CHIPSETS "830M/845G/852GM/855GM/865G/915G/915GM/945G/945GM/965G/965GM" | 17 | #define SUPPORTED_CHIPSETS "830M/845G/852GM/855GM/865G/915G/915GM/945G/945GM/945GME/965G/965GM" |
18 | 18 | ||
19 | 19 | ||
20 | /*** Debug/feature defines ***/ | 20 | /*** Debug/feature defines ***/ |
@@ -58,6 +58,7 @@ | |||
58 | #define PCI_DEVICE_ID_INTEL_915GM 0x2592 | 58 | #define PCI_DEVICE_ID_INTEL_915GM 0x2592 |
59 | #define PCI_DEVICE_ID_INTEL_945G 0x2772 | 59 | #define PCI_DEVICE_ID_INTEL_945G 0x2772 |
60 | #define PCI_DEVICE_ID_INTEL_945GM 0x27A2 | 60 | #define PCI_DEVICE_ID_INTEL_945GM 0x27A2 |
61 | #define PCI_DEVICE_ID_INTEL_945GME 0x27AE | ||
61 | #define PCI_DEVICE_ID_INTEL_965G 0x29A2 | 62 | #define PCI_DEVICE_ID_INTEL_965G 0x29A2 |
62 | #define PCI_DEVICE_ID_INTEL_965GM 0x2A02 | 63 | #define PCI_DEVICE_ID_INTEL_965GM 0x2A02 |
63 | 64 | ||
@@ -160,6 +161,7 @@ enum intel_chips { | |||
160 | INTEL_915GM, | 161 | INTEL_915GM, |
161 | INTEL_945G, | 162 | INTEL_945G, |
162 | INTEL_945GM, | 163 | INTEL_945GM, |
164 | INTEL_945GME, | ||
163 | INTEL_965G, | 165 | INTEL_965G, |
164 | INTEL_965GM, | 166 | INTEL_965GM, |
165 | }; | 167 | }; |
@@ -363,6 +365,7 @@ struct intelfb_info { | |||
363 | ((dinfo)->chipset == INTEL_915GM) || \ | 365 | ((dinfo)->chipset == INTEL_915GM) || \ |
364 | ((dinfo)->chipset == INTEL_945G) || \ | 366 | ((dinfo)->chipset == INTEL_945G) || \ |
365 | ((dinfo)->chipset == INTEL_945GM) || \ | 367 | ((dinfo)->chipset == INTEL_945GM) || \ |
368 | ((dinfo)->chipset == INTEL_945GME) || \ | ||
366 | ((dinfo)->chipset == INTEL_965G) || \ | 369 | ((dinfo)->chipset == INTEL_965G) || \ |
367 | ((dinfo)->chipset == INTEL_965GM)) | 370 | ((dinfo)->chipset == INTEL_965GM)) |
368 | 371 | ||
diff --git a/drivers/video/intelfb/intelfb_i2c.c b/drivers/video/intelfb/intelfb_i2c.c index fcf9fadbf572..5d896b81f4e0 100644 --- a/drivers/video/intelfb/intelfb_i2c.c +++ b/drivers/video/intelfb/intelfb_i2c.c | |||
@@ -171,6 +171,7 @@ void intelfb_create_i2c_busses(struct intelfb_info *dinfo) | |||
171 | /* has some LVDS + tv-out */ | 171 | /* has some LVDS + tv-out */ |
172 | case INTEL_945G: | 172 | case INTEL_945G: |
173 | case INTEL_945GM: | 173 | case INTEL_945GM: |
174 | case INTEL_945GME: | ||
174 | case INTEL_965G: | 175 | case INTEL_965G: |
175 | case INTEL_965GM: | 176 | case INTEL_965GM: |
176 | /* SDVO ports have a single control bus - 2 devices */ | 177 | /* SDVO ports have a single control bus - 2 devices */ |
diff --git a/drivers/video/intelfb/intelfbdrv.c b/drivers/video/intelfb/intelfbdrv.c index e44303f9bc52..a09e23649357 100644 --- a/drivers/video/intelfb/intelfbdrv.c +++ b/drivers/video/intelfb/intelfbdrv.c | |||
@@ -2,7 +2,7 @@ | |||
2 | * intelfb | 2 | * intelfb |
3 | * | 3 | * |
4 | * Linux framebuffer driver for Intel(R) 830M/845G/852GM/855GM/865G/915G/915GM/ | 4 | * Linux framebuffer driver for Intel(R) 830M/845G/852GM/855GM/865G/915G/915GM/ |
5 | * 945G/945GM/965G/965GM integrated graphics chips. | 5 | * 945G/945GM/945GME/965G/965GM integrated graphics chips. |
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 |
@@ -102,6 +102,9 @@ | |||
102 | * | 102 | * |
103 | * 04/2008 - Version 0.9.5 | 103 | * 04/2008 - Version 0.9.5 |
104 | * Add support for 965G/965GM. (Maik Broemme <mbroemme@plusserver.de>) | 104 | * Add support for 965G/965GM. (Maik Broemme <mbroemme@plusserver.de>) |
105 | * | ||
106 | * 08/2008 - Version 0.9.6 | ||
107 | * Add support for 945GME. (Phil Endecott <spam_from_intelfb@chezphil.org>) | ||
105 | */ | 108 | */ |
106 | 109 | ||
107 | #include <linux/module.h> | 110 | #include <linux/module.h> |
@@ -183,6 +186,7 @@ static struct pci_device_id intelfb_pci_table[] __devinitdata = { | |||
183 | { 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 }, | 186 | { 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 }, |
184 | { 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 }, | 187 | { 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 }, |
185 | { 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 }, | 188 | { 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 }, |
189 | { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_945GME, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, INTELFB_CLASS_MASK, INTEL_945GME }, | ||
186 | { 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 }, | 190 | { 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 }, |
187 | { 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 }, | 191 | { 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 }, |
188 | { 0, } | 192 | { 0, } |
@@ -555,6 +559,7 @@ static int __devinit intelfb_pci_register(struct pci_dev *pdev, | |||
555 | (ent->device == PCI_DEVICE_ID_INTEL_915GM) || | 559 | (ent->device == PCI_DEVICE_ID_INTEL_915GM) || |
556 | (ent->device == PCI_DEVICE_ID_INTEL_945G) || | 560 | (ent->device == PCI_DEVICE_ID_INTEL_945G) || |
557 | (ent->device == PCI_DEVICE_ID_INTEL_945GM) || | 561 | (ent->device == PCI_DEVICE_ID_INTEL_945GM) || |
562 | (ent->device == PCI_DEVICE_ID_INTEL_945GME) || | ||
558 | (ent->device == PCI_DEVICE_ID_INTEL_965G) || | 563 | (ent->device == PCI_DEVICE_ID_INTEL_965G) || |
559 | (ent->device == PCI_DEVICE_ID_INTEL_965GM)) { | 564 | (ent->device == PCI_DEVICE_ID_INTEL_965GM)) { |
560 | 565 | ||
diff --git a/drivers/video/intelfb/intelfbhw.c b/drivers/video/intelfb/intelfbhw.c index 8e6d6a4db0ad..8b26b27c2db6 100644 --- a/drivers/video/intelfb/intelfbhw.c +++ b/drivers/video/intelfb/intelfbhw.c | |||
@@ -143,6 +143,12 @@ int intelfbhw_get_chipset(struct pci_dev *pdev, struct intelfb_info *dinfo) | |||
143 | dinfo->mobile = 1; | 143 | dinfo->mobile = 1; |
144 | dinfo->pll_index = PLLS_I9xx; | 144 | dinfo->pll_index = PLLS_I9xx; |
145 | return 0; | 145 | return 0; |
146 | case PCI_DEVICE_ID_INTEL_945GME: | ||
147 | dinfo->name = "Intel(R) 945GME"; | ||
148 | dinfo->chipset = INTEL_945GME; | ||
149 | dinfo->mobile = 1; | ||
150 | dinfo->pll_index = PLLS_I9xx; | ||
151 | return 0; | ||
146 | case PCI_DEVICE_ID_INTEL_965G: | 152 | case PCI_DEVICE_ID_INTEL_965G: |
147 | dinfo->name = "Intel(R) 965G"; | 153 | dinfo->name = "Intel(R) 965G"; |
148 | dinfo->chipset = INTEL_965G; | 154 | dinfo->chipset = INTEL_965G; |
@@ -186,6 +192,7 @@ int intelfbhw_get_memory(struct pci_dev *pdev, int *aperture_size, | |||
186 | case PCI_DEVICE_ID_INTEL_915GM: | 192 | case PCI_DEVICE_ID_INTEL_915GM: |
187 | case PCI_DEVICE_ID_INTEL_945G: | 193 | case PCI_DEVICE_ID_INTEL_945G: |
188 | case PCI_DEVICE_ID_INTEL_945GM: | 194 | case PCI_DEVICE_ID_INTEL_945GM: |
195 | case PCI_DEVICE_ID_INTEL_945GME: | ||
189 | case PCI_DEVICE_ID_INTEL_965G: | 196 | case PCI_DEVICE_ID_INTEL_965G: |
190 | case PCI_DEVICE_ID_INTEL_965GM: | 197 | case PCI_DEVICE_ID_INTEL_965GM: |
191 | /* 915, 945 and 965 chipsets support a 256MB aperture. | 198 | /* 915, 945 and 965 chipsets support a 256MB aperture. |