[Pommed-commits] r520 - in trunk: . pommed/mactel
jblache at alioth.debian.org
jblache at alioth.debian.org
Thu Dec 11 13:44:15 UTC 2008
Author: jblache
Date: 2008-12-11 13:44:15 +0000 (Thu, 11 Dec 2008)
New Revision: 520
Modified:
trunk/ChangeLog
trunk/pommed.conf.mactel
trunk/pommed/mactel/nv8600mgt_backlight.c
Log:
Add support for the LCD backlight on late 2008 machines (MacBook5,1, MacBookPro5,1, MacBookAir2,1).
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2008-11-10 10:17:09 UTC (rev 519)
+++ trunk/ChangeLog 2008-12-11 13:44:15 UTC (rev 520)
@@ -2,6 +2,7 @@
--------------------
version 1.23:
+ - pommed: add backlight support for late 2008 laptops.
version 1.22:
- pommed: do not probe for LMU controller on pmac machines that do
Modified: trunk/pommed/mactel/nv8600mgt_backlight.c
===================================================================
--- trunk/pommed/mactel/nv8600mgt_backlight.c 2008-11-10 10:17:09 UTC (rev 519)
+++ trunk/pommed/mactel/nv8600mgt_backlight.c 2008-12-11 13:44:15 UTC (rev 520)
@@ -7,7 +7,7 @@
*
* Copyright (C) 2006 Nicolas Boichat <nicolas @boichat.ch>
* Copyright (C) 2006 Felipe Alfaro Solana <felipe_alfaro @linuxmail.org>
- * Copyright (C) 2007 Julien BLACHE <jb at jblache.org>
+ * Copyright (C) 2007-2008 Julien BLACHE <jb at jblache.org>
* + Adapted for pommed
*
* This program is free software; you can redistribute it and/or modify
@@ -56,6 +56,7 @@
static int nv8600mgt_inited = 0;
+static unsigned int bl_port;
static unsigned char
@@ -66,10 +67,10 @@
if (nv8600mgt_inited == 0)
return 0;
- outb(0x03, 0xB3);
- outb(0xBF, 0xB2);
+ outb(0x03, bl_port + 1);
+ outb(0xbf, bl_port);
- value = inb(0xB3) >> 4;
+ value = inb(bl_port + 1) >> 4;
return value;
}
@@ -80,8 +81,8 @@
if (nv8600mgt_inited == 0)
return;
- outb(0x04 | (value << 4), 0xB3);
- outb(0xBF, 0xB2);
+ outb(0x04 | (value << 4), bl_port + 1);
+ outb(0xbf, bl_port);
}
@@ -164,14 +165,17 @@
#define PCI_ID_VENDOR_NVIDIA 0x10de
#define PCI_ID_PRODUCT_8600MGT 0x0407
+#define PCI_ID_PRODUCT_9400M 0x0863
+#define PCI_ID_PRODUCT_9600MGT 0x0647
-/* Look for an nVidia GeForce 8600M GT */
+/* Look for an nVidia GeForce 8600M GT, 9400M or 9600M GT */
int
nv8600mgt_backlight_probe(void)
{
struct pci_access *pacc;
struct pci_dev *dev;
int nv_found = 0;
+ int ret;
pacc = pci_alloc();
if (pacc == NULL)
@@ -184,12 +188,14 @@
pci_scan_bus(pacc);
/* Iterate over all devices */
- for(dev = pacc->devices; dev; dev = dev->next)
+ for (dev = pacc->devices; dev; dev = dev->next)
{
pci_fill_info(dev, PCI_FILL_IDENT);
/* nVidia GeForce 8600M GT */
if ((dev->vendor_id == PCI_ID_VENDOR_NVIDIA)
- && (dev->device_id == PCI_ID_PRODUCT_8600MGT))
+ && ((dev->device_id == PCI_ID_PRODUCT_8600MGT)
+ || (dev->device_id == PCI_ID_PRODUCT_9400M)
+ || (dev->device_id == PCI_ID_PRODUCT_9600MGT)))
{
nv_found = 1;
@@ -201,15 +207,35 @@
if (!nv_found)
{
- logdebug("Failed to detect nVidia GeForce 8600M GT, aborting...\n");
+ logdebug("Failed to detect nVidia GeForce 8600M GT/9400M/9600M GT, aborting...\n");
return -1;
}
+ /* Determine backlight I/O port */
+ switch (mops->type)
+ {
+ case MACHINE_MACBOOKPRO_3:
+ case MACHINE_MACBOOKPRO_4:
+ bl_port = 0xb2; /* 0xb2 - 0xb3 */
+ break;
+
+ case MACHINE_MACBOOKPRO_5:
+ case MACHINE_MACBOOK_5:
+ case MACHINE_MACBOOKAIR_2:
+ bl_port = 0x52e; /* 0x52e - 0x52f */
+ break;
+
+ default:
+ logmsg(LOG_ERR, "nv8600mgt LCD backlight support not supported on this hardware\n");
+ return -1;
+ }
+
lcd_bck_info.max = NV8600MGT_BACKLIGHT_MAX;
- if (ioperm(0xB2, 0xB3, 1) < 0)
+ ret = iopl(3);
+ if (ret < 0)
{
- logmsg(LOG_ERR, "ioperm() failed: %s", strerror(errno));
+ logmsg(LOG_ERR, "iopl() failed: %s", strerror(errno));
lcd_bck_info.level = 0;
Modified: trunk/pommed.conf.mactel
===================================================================
--- trunk/pommed.conf.mactel 2008-11-10 10:17:09 UTC (rev 519)
+++ trunk/pommed.conf.mactel 2008-12-11 13:44:15 UTC (rev 520)
@@ -19,7 +19,7 @@
on_batt = 80
}
-# Intel 945GM, 965GM backlight control (MacBook, MacBook Air)
+# Intel 945GM, 965GM backlight control (MacBook v1-v4, MacBook Air v1)
lcd_gma950 {
# initial backlight level [0x6f] (0x1f - 0x94 usually, -1 to disable)
init = -1
@@ -29,7 +29,7 @@
on_batt = 0x40
}
-# nVidia GeForce 8600M GT backlight control (MacBook Pro v3 & v4)
+# nVidia GeForce 8600M GT/9400M/9600M GT backlight control (MacBook Pro v3-v5, MacBook v5, MacBook v2)
lcd_nv8600mgt {
# initial backlight level [12] (0 - 15, -1 to disable)
init = -1
More information about the Pommed-commits
mailing list