lkml.org 
[lkml]   [2008]   [Aug]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    Subject[PATCH] intelfb: support 945GME (as used in ASUS Eee 901)
    From
    The following patch adds 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.

    Signed-off-by: Phil Endecott <spam_from_intelfb@chezphil.org>

    ---

    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. But rather than throw it away I will post it here as
    essentially "untested"; maybe someone who knows more about this driver,
    and with more useful hardware to test on, can pick it up.

    diff --git a/Documentation/fb/intelfb.txt b/Documentation/fb/intelfb.txt
    index 27a3160..dd9e944 100644
    --- a/Documentation/fb/intelfb.txt
    +++ b/Documentation/fb/intelfb.txt
    @@ -14,6 +14,7 @@ graphics devices. These would include:
    Intel 915GM
    Intel 945G
    Intel 945GM
    + Intel 945GME
    Intel 965G
    Intel 965GM

    diff --git a/drivers/video/intelfb/intelfb.h b/drivers/video/intelfb/intelfb.h
    index 3325fbd..a50bea6 100644
    --- a/drivers/video/intelfb/intelfb.h
    +++ b/drivers/video/intelfb/intelfb.h
    @@ -12,9 +12,9 @@
    #endif

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


    /*** Debug/feature defines ***/
    @@ -58,6 +58,7 @@
    #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_945GME 0x27AE
    #define PCI_DEVICE_ID_INTEL_965G 0x29A2
    #define PCI_DEVICE_ID_INTEL_965GM 0x2A02

    @@ -160,6 +161,7 @@ enum intel_chips {
    INTEL_915GM,
    INTEL_945G,
    INTEL_945GM,
    + INTEL_945GME,
    INTEL_965G,
    INTEL_965GM,
    };
    @@ -363,6 +365,7 @@ struct intelfb_info {
    ((dinfo)->chipset == INTEL_915GM) || \
    ((dinfo)->chipset == INTEL_945G) || \
    ((dinfo)->chipset == INTEL_945GM) || \
    + ((dinfo)->chipset == INTEL_945GME) || \
    ((dinfo)->chipset == INTEL_965G) || \
    ((dinfo)->chipset == INTEL_965GM))

    diff --git a/drivers/video/intelfb/intelfb_i2c.c b/drivers/video/intelfb/intelfb_i2c.c
    index fcf9fad..5d896b8 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)
    /* has some LVDS + tv-out */
    case INTEL_945G:
    case INTEL_945GM:
    + case INTEL_945GME:
    case INTEL_965G:
    case INTEL_965GM:
    /* SDVO ports have a single control bus - 2 devices */
    diff --git a/drivers/video/intelfb/intelfbdrv.c b/drivers/video/intelfb/intelfbdrv.c
    index e44303f..a09e236 100644
    --- a/drivers/video/intelfb/intelfbdrv.c
    +++ b/drivers/video/intelfb/intelfbdrv.c
    @@ -2,7 +2,7 @@
    * intelfb
    *
    * Linux framebuffer driver for Intel(R) 830M/845G/852GM/855GM/865G/915G/915GM/
    - * 945G/945GM/965G/965GM integrated graphics chips.
    + * 945G/945GM/945GME/965G/965GM integrated graphics chips.
    *
    * Copyright © 2002, 2003 David Dawes <dawes@xfree86.org>
    * 2004 Sylvain Meyer
    @@ -102,6 +102,9 @@
    *
    * 04/2008 - Version 0.9.5
    * Add support for 965G/965GM. (Maik Broemme <mbroemme@plusserver.de>)
    + *
    + * 08/2008 - Version 0.9.6
    + * Add support for 945GME. (Phil Endecott <spam_from_intelfb@chezphil.org>)
    */

    #include <linux/module.h>
    @@ -183,6 +186,7 @@ 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_945GME, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, INTELFB_CLASS_MASK, INTEL_945GME },
    { 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, }
    @@ -555,6 +559,7 @@ static int __devinit intelfb_pci_register(struct pci_dev *pdev,
    (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_945GME) ||
    (ent->device == PCI_DEVICE_ID_INTEL_965G) ||
    (ent->device == PCI_DEVICE_ID_INTEL_965GM)) {

    diff --git a/drivers/video/intelfb/intelfbhw.c b/drivers/video/intelfb/intelfbhw.c
    index 8e6d6a4..8b26b27 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)
    dinfo->mobile = 1;
    dinfo->pll_index = PLLS_I9xx;
    return 0;
    + case PCI_DEVICE_ID_INTEL_945GME:
    + dinfo->name = "Intel(R) 945GME";
    + dinfo->chipset = INTEL_945GME;
    + dinfo->mobile = 1;
    + dinfo->pll_index = PLLS_I9xx;
    + return 0;
    case PCI_DEVICE_ID_INTEL_965G:
    dinfo->name = "Intel(R) 965G";
    dinfo->chipset = INTEL_965G;
    @@ -186,6 +192,7 @@ int intelfbhw_get_memory(struct pci_dev *pdev, int *aperture_size,
    case PCI_DEVICE_ID_INTEL_915GM:
    case PCI_DEVICE_ID_INTEL_945G:
    case PCI_DEVICE_ID_INTEL_945GM:
    + case PCI_DEVICE_ID_INTEL_945GME:
    case PCI_DEVICE_ID_INTEL_965G:
    case PCI_DEVICE_ID_INTEL_965GM:
    /* 915, 945 and 965 chipsets support a 256MB aperture.



    \
     
     \ /
      Last update: 2008-08-29 13:53    [W:0.064 / U:123.924 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site