From: Buttchereit, A. (XL) <XL@XLsigned.net> - 2005-01-29 05:11:25
|
Add (partial) support for 915G No HW cursor at the moment Screen is blanked but signal/sync is not switched off Mostly derived from XFree86/Xorg driver Pass "vesa_modes" and VESA_MODEDB_SIZE in call to "fb_find_mode()" to allow loading as module. Makes "vesa_modes" also the default "modedb" when linking statically into the kernel. Change PREFERRED_MODE to more reasonable value "1024x768-32@70" Signed-off-by: Axel Buttchereit <XL@XLsigned.net> diff -ru linux.orig/drivers/video/intelfb/intelfbdrv.c linux/drivers/video/intelfb/intelfbdrv.c --- linux.orig/drivers/video/intelfb/intelfbdrv.c 2005-01-29 05:16:44.372522436 +0100 +++ linux/drivers/video/intelfb/intelfbdrv.c 2005-01-29 05:40:29.566548604 +0100 @@ -1,7 +1,7 @@ /* * intelfb * - * Linux framebuffer driver for Intel(R) 830M/845G/852GM/855GM/865G + * Linux framebuffer driver for Intel(R) 830M/845G/852GM/855GM/865G/915G * integrated graphics chips. * * Copyright © 2002, 2003 David Dawes <da...@xf...> @@ -153,6 +153,7 @@ { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_845G, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, INTELFB_CLASS_MASK, INTEL_845G }, { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_85XGM, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, INTELFB_CLASS_MASK, INTEL_85XGM }, { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_865G, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, INTELFB_CLASS_MASK, INTEL_865G }, + { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_915G, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, INTELFB_CLASS_MASK, INTEL_915G }, { 0, } }; @@ -470,6 +471,8 @@ struct agp_kern_info gtt_info; int agp_memtype; const char *s; + int aperture_bar = 0; + int mmio_bar = 1; DBG_MSG("intelfb_pci_register\n"); @@ -516,13 +519,20 @@ } /* Set base addresses. */ - dinfo->aperture.physical = pci_resource_start(pdev, 0); - dinfo->aperture.size = pci_resource_len(pdev, 0); - dinfo->mmio_base_phys = pci_resource_start(pdev, 1); - + if (ent->device == PCI_DEVICE_ID_INTEL_915G) { + aperture_bar = 2; + mmio_bar = 0; + /* Disable HW cursor on 915G (not implemented yet) */ + hwcursor = 0; + } + dinfo->aperture.physical = pci_resource_start(pdev, aperture_bar); + dinfo->aperture.size = pci_resource_len(pdev, aperture_bar); + dinfo->mmio_base_phys = pci_resource_start(pdev, mmio_bar); DBG_MSG("fb aperture: 0x%lx/0x%lx, MMIO region: 0x%lx/0x%lx\n", - pci_resource_start(pdev, 0), pci_resource_len(pdev, 0), - pci_resource_start(pdev, 1), pci_resource_len(pdev, 1)); + pci_resource_start(pdev, aperture_bar), + pci_resource_len(pdev, aperture_bar), + pci_resource_start(pdev, mmio_bar), + pci_resource_len(pdev, mmio_bar)); /* Reserve the fb and MMIO regions */ if (!request_mem_region(dinfo->aperture.physical, dinfo->aperture.size, @@ -989,13 +999,15 @@ } else { if (mode) { msrc = fb_find_mode(var, dinfo->info, mode, - NULL, 0, NULL, 0); + vesa_modes, VESA_MODEDB_SIZE, + NULL, 0); if (msrc) msrc |= 8; } if (!msrc) { msrc = fb_find_mode(var, dinfo->info, PREFERRED_MODE, - NULL, 0, NULL, 0); + vesa_modes, VESA_MODEDB_SIZE, + NULL, 0); } } diff -ru linux.orig/drivers/video/intelfb/intelfbdrv.h linux/drivers/video/intelfb/intelfbdrv.h --- linux.orig/drivers/video/intelfb/intelfbdrv.h 2005-01-29 05:16:44.373522137 +0100 +++ linux/drivers/video/intelfb/intelfbdrv.h 2005-01-29 03:33:52.021728146 +0100 @@ -5,7 +5,7 @@ ****************************************************************************** * intelfb * - * Linux framebuffer driver for Intel(R) 830M/845G/852GM/855GM/865G + * Linux framebuffer driver for Intel(R) 830M/845G/852GM/855GM/865G/915G * integrated graphics chips. * * Copyright © 2004 Sylvain Meyer diff -ru linux.orig/drivers/video/intelfb/intelfb.h linux/drivers/video/intelfb/intelfb.h --- linux.orig/drivers/video/intelfb/intelfb.h 2005-01-29 05:16:44.360526028 +0100 +++ linux/drivers/video/intelfb/intelfb.h 2005-01-29 05:22:04.356713430 +0100 @@ -10,7 +10,7 @@ /*** Version/name ***/ #define INTELFB_VERSION "0.9.2" #define INTELFB_MODULE_NAME "intelfb" -#define SUPPORTED_CHIPSETS "830M/845G/852GM/855GM/865G" +#define SUPPORTED_CHIPSETS "830M/845G/852GM/855GM/865G/915G" /*** Debug/feature defines ***/ @@ -36,7 +36,7 @@ #endif #ifndef PREFERRED_MODE -#define PREFERRED_MODE "1024x768-16@60" +#define PREFERRED_MODE "1024x768-32@70" #endif /*** hw-related values ***/ @@ -46,6 +46,7 @@ #define PCI_DEVICE_ID_INTEL_845G 0x2562 #define PCI_DEVICE_ID_INTEL_85XGM 0x3582 #define PCI_DEVICE_ID_INTEL_865G 0x2572 +#define PCI_DEVICE_ID_INTEL_915G 0x2582 /* Size of MMIO region */ #define INTEL_REG_SIZE 0x80000 @@ -117,7 +118,8 @@ INTEL_852GME, INTEL_855GM, INTEL_855GME, - INTEL_865G + INTEL_865G, + INTEL_915G }; struct intelfb_hwstate { diff -ru linux.orig/drivers/video/intelfb/intelfbhw.c linux/drivers/video/intelfb/intelfbhw.c --- linux.orig/drivers/video/intelfb/intelfbhw.c 2005-01-29 05:16:44.381519742 +0100 +++ linux/drivers/video/intelfb/intelfbhw.c 2005-01-29 03:40:41.971680927 +0100 @@ -98,6 +98,11 @@ *chipset = INTEL_865G; *mobile = 0; return 0; + case PCI_DEVICE_ID_INTEL_915G: + *name = "Intel(R) 915G"; + *chipset = INTEL_915G; + *mobile = 0; + return 0; default: return 1; } @@ -169,6 +174,12 @@ case INTEL_855_GMCH_GMS_STOLEN_32M: *stolen_size = MB(32) - KB(132); return 0; + case INTEL_915G_GMCH_GMS_STOLEN_48M: + *stolen_size = MB(48) - KB(132); + return 0; + case INTEL_915G_GMCH_GMS_STOLEN_64M: + *stolen_size = MB(64) - KB(132); + return 0; case INTEL_855_GMCH_GMS_DISABLED: ERR_MSG("video memory is disabled\n"); return 0; diff -ru linux.orig/drivers/video/intelfb/intelfbhw.h linux/drivers/video/intelfb/intelfbhw.h --- linux.orig/drivers/video/intelfb/intelfbhw.h 2005-01-29 05:16:44.395515551 +0100 +++ linux/drivers/video/intelfb/intelfbhw.h 2005-01-29 03:37:01.004941554 +0100 @@ -46,6 +46,9 @@ #define INTEL_855_GMCH_GMS_STOLEN_16M (0x4 << 4) #define INTEL_855_GMCH_GMS_STOLEN_32M (0x5 << 4) +#define INTEL_915G_GMCH_GMS_STOLEN_48M (0x6 << 4) +#define INTEL_915G_GMCH_GMS_STOLEN_64M (0x7 << 4) + /* HW registers */ /* Fence registers */ |
From: Antonino A. D. <ad...@ho...> - 2005-01-29 12:05:13
|
On Saturday 29 January 2005 13:11, Buttchereit, Axel (XL) wrote: > Add (partial) support for 915G > No HW cursor at the moment > Screen is blanked but signal/sync is not switched off Is the driver usable? If not, make it work with your machine at least. Tony |
From: Buttchereit, A. (XL) <XL@XLsigned.net> - 2005-01-29 15:52:37
|
Antonino A. Daplas wrote: > On Saturday 29 January 2005 13:11, Buttchereit, Axel (XL) wrote: > >>Add (partial) support for 915G >> No HW cursor at the moment >> Screen is blanked but signal/sync is not switched off > > > Is the driver usable? If not, make it work with your machine at least. > The driver works with my machine. Both as a module and statically linked. Support is partial/incomplete, because - hwcursor does not work, i. e. I haven't managed yet to derive the special code for hwcursor on 915G from the XFree86/Xorg-code. That is why I'm hard-wiring the value of hwcusror to "0" on 915G. - DPMS does nor work properly, but I do not know whether this is because of my incomplete patch, because of my hardware or because of the kernel (version). Furthermore I think that support for the mobila variant 915GM, should be inlcuded, but I haven't got the hardware. I would be happy to get feedback from a user that has tried the patched and the unpatched "intelfb" with current 2.6.10 on 830/855/865 to see what is wrong with DPMS and from a user that has the 915GM. The "final" patch should support "hwcusor", "DPMS" and 915GM. Cheers --Axel |
From: Antonino A. D. <ad...@ho...> - 2005-02-02 12:32:17
|
On Saturday 29 January 2005 13:11, Buttchereit, Axel (XL) wrote: > Add (partial) support for 915G > No HW cursor at the moment > Screen is blanked but signal/sync is not switched off > Mostly derived from XFree86/Xorg driver > Pass "vesa_modes" and VESA_MODEDB_SIZE in call to "fb_find_mode()" > to allow loading as module. Makes "vesa_modes" also the default > "modedb" when linking statically into the kernel. > Change PREFERRED_MODE to more reasonable value "1024x768-32@70" > Can you resend? Patch is malformed. Tony |
From: Buttchereit, A. (XL) <XL@XLsigned.net> - 2005-02-02 16:40:23
|
Antonino A. Daplas wrote: > On Saturday 29 January 2005 13:11, Buttchereit, Axel (XL) wrote: > >>Add (partial) support for 915G >> No HW cursor at the moment >> Screen is blanked but signal/sync is not switched off >>Mostly derived from XFree86/Xorg driver >>Pass "vesa_modes" and VESA_MODEDB_SIZE in call to "fb_find_mode()" >> to allow loading as module. Makes "vesa_modes" also the default >> "modedb" when linking statically into the kernel. >>Change PREFERRED_MODE to more reasonable value "1024x768-32@70" >> > > > Can you resend? Patch is malformed. Sure! But it would be much easier for me, if I know what's wrong with my patch. I assume that the kernel source version I was using is wrong (outdated), i. e. I have to make my patch base on (at least) version 2.6.11-rc2. I would like to know, if the following statements are true: @2.6.10 = kernel/v2.6/linux-2.6.10.tar.bz2 @2.6.11-rc1 = @2.6.10 + kernel/v2.6/testing/patch-2.6.11-rc1.bz2 @2.6.11-rc2 = @2.6.10 + kernel/v2.6/testing/patch-2.6.11-rc2.bz2 @2.6.11-rc2-bk1 = @2.6.11-rc2 + kernel/v2.6/snapshots/patch-2.6.11-rc2-bk1.bz2 @2.6.11-rc2-bk2 = @2.6.11-rc2 + kernel/v2.6/snapshots/patch-2.6.11-rc2-bk2.bz2 ... @2.6.11-rc1-mm1 = @2.6.11-rc1 + kernel/people/akpm/patches/2.6/2.6.11-rc1/2.6.11-rc1-mm1/2.6.11-rc1-mm1.bz2 @2.6.11-rc1-mm2 = @2.6.11-rc1 + kernel/people/akpm/patches/2.6/2.6.11-rc1/2.6.11-rc1-mm2/2.6.11-rc1-mm2.bz2 @2.6.11-rc2-mm1 = @2.6.11-rc2 + kernel/people/akpm/patches/2.6/2.6.11-rc2/2.6.11-rc2-mm1/2.6.11-rc2-mm1.bz2 @2.6.11-rc2-mm2 = @2.6.11-rc2 + kernel/people/akpm/patches/2.6/2.6.11-rc2/2.6.11-rc2-mm2/2.6.11-rc2-mm2.bz2 The "2.6.11-rc[V]-bk[W]" are maintained by Linus who integrates patches from Andrews's mm-tree, i. e. "patch-2.6.11-rc[V]-bk[W]" is a subset (selected patches) from Andrew's current "2.6.11-rc2-mm[I]" patchset. Right? (What about the "-ac" patches? Are they also running into "2.6.11-rc[V]-bk[W]") Thanks for your patience --Axel |
From: Antonino A. D. <ad...@sw...> - 2005-02-03 05:23:55
|
On Thursday 03 February 2005 00:40, Buttchereit, Axel (XL) wrote: > Antonino A. Daplas wrote: > > On Saturday 29 January 2005 13:11, Buttchereit, Axel (XL) wrote: > >>Add (partial) support for 915G > >> No HW cursor at the moment > >> Screen is blanked but signal/sync is not switched off > >>Mostly derived from XFree86/Xorg driver > >>Pass "vesa_modes" and VESA_MODEDB_SIZE in call to "fb_find_mode()" > >> to allow loading as module. Makes "vesa_modes" also the default > >> "modedb" when linking statically into the kernel. > >>Change PREFERRED_MODE to more reasonable value "1024x768-32@70" > > > > Can you resend? Patch is malformed. > > Sure! > But it would be much easier for me, if I know what's wrong with my patch. It's line-wrapped, I think, your mailer probably mangled it. You can resend the patch as a text attachment. > > I assume that the kernel source version I was using is wrong (outdated), > i. e. I have to make my patch base on (at least) version 2.6.11-rc2. The source tree is not a problem, you can use any kernel >= 2.6.10. Tony |
From: Buttchereit, A. (XL) <XL@XLsigned.net> - 2005-02-07 04:10:51
Attachments:
intelfb-915G.patch
|
Antonino A. Daplas wrote: > On Thursday 03 February 2005 00:40, Buttchereit, Axel (XL) wrote: > >>Antonino A. Daplas wrote: >> >>>On Saturday 29 January 2005 13:11, Buttchereit, Axel (XL) wrote: >>> >>>>Add (partial) support for 915G >>>> No HW cursor at the moment >>>> Screen is blanked but signal/sync is not switched off >>>>Mostly derived from XFree86/Xorg driver >>>>Pass "vesa_modes" and VESA_MODEDB_SIZE in call to "fb_find_mode()" >>>> to allow loading as module. Makes "vesa_modes" also the default >>>> "modedb" when linking statically into the kernel. >>>>Change PREFERRED_MODE to more reasonable value "1024x768-32@70" >>> >>>Can you resend? Patch is malformed. >> >>Sure! >>But it would be much easier for me, if I know what's wrong with my patch. > > > It's line-wrapped, I think, your mailer probably mangled it. You can resend > the patch as a text attachment. > > >>I assume that the kernel source version I was using is wrong (outdated), >>i. e. I have to make my patch base on (at least) version 2.6.11-rc2. > > > The source tree is not a problem, you can use any kernel >= 2.6.10. > > Tony Sorry for my late response, but I was quite busy with "subversioning the kernel", i. e. I'm now able to (semi-)automatically update my subversion repository using (downloaded) patches from kernel.org (mirrors). I have attached the same patch I've send before, though I do not understand why it was mangled. (I've tested this by sendind myself an email containing the patch...) For the patch was build on 2.6.10 with gentoo-patches already applied, I have verified that my patch works on 2.6.11-rc3 from kernel.org, too. It works! (The patching, i. e. I've not built a 2.6.11-rc3-kernel yet) Hope that I'm able to remove the "partial" soon. Cheers, Axel |