Difference between revisions of "Code/ibm-acpi-0.11-2.6.13-fan.patch"
(Undo corruption) |
(Everything in a pre block so it's readable.) |
||
Line 1: | Line 1: | ||
+ | <pre> | ||
--- ibm-acpi-0.11-orig/ibm_acpi.c 2005-03-17 12:06:16.000000000 +0200 | --- ibm-acpi-0.11-orig/ibm_acpi.c 2005-03-17 12:06:16.000000000 +0200 | ||
+++ ibm-acpi-0.11/ibm_acpi.c 2005-10-26 06:21:57.000000000 +0200 | +++ ibm-acpi-0.11/ibm_acpi.c 2005-10-26 06:21:57.000000000 +0200 | ||
Line 89: | Line 90: | ||
if (ret < 0) { | if (ret < 0) { | ||
printk(IBM_ERR "acpi_bus_register_driver(%s) failed: %d\n", | printk(IBM_ERR "acpi_bus_register_driver(%s) failed: %d\n", | ||
+ | </pre> |
Latest revision as of 09:20, 11 April 2025
--- ibm-acpi-0.11-orig/ibm_acpi.c 2005-03-17 12:06:16.000000000 +0200 +++ ibm-acpi-0.11/ibm_acpi.c 2005-10-26 06:21:57.000000000 +0200 @@ -1488,11 +1488,18 @@ static int fan_read(char *p) } else { /* all except 570, 600e/x, 770e, 770x */ if (!acpi_ec_read(fan_status_offset, &status)) len += sprintf(p + len, "status:\t\tunreadable\n"); - else + else { len += sprintf(p + len, "status:\t\t%s\n", - enabled(status, 7)); + status ? "enabled" : "disabled"); + if (status & 0x40) + len += sprintf(p + len, "level:\t\tdisengaged\n"); + else if (status & 0x80) + len += sprintf(p + len, "level:\t\tauto\n"); + else + len += sprintf(p + len, "level:\t\t%d\n", status); + } if (!acpi_ec_read(fan_rpm_offset, &lo) || !acpi_ec_read(fan_rpm_offset + 1, &hi)) len += sprintf(p + len, "speed:\t\tunreadable\n"); @@ -1506,9 +1513,12 @@ static int fan_read(char *p) len += sprintf(p + len, "commands:\tlevel <level>" " (<level> is 0-7)\n"); if (!gfan_handle) /* all except 570, 600e/x, 770e, 770x */ - len += sprintf(p + len, "commands:\tenable, disable\n"); + len += sprintf(p + len, + "commands:\tenable, disable, level <level>\n" + " \t(<level> is 0-7, auto" + "or disengaged)\n"); if (fans_handle) /* X31, X40 */ len += sprintf(p + len, "commands:\tspeed <speed>" " (<speed> is 0-65535)\n"); @@ -1528,17 +1538,29 @@ static int fan_write(char *buf) /* 570, 770x-JL */ if (!acpi_evalf(sfan_handle, NULL, NULL, "vd", level)) return -EIO; } else if (!gfan_handle && - strlencmp(cmd, "enable") == 0) { + ( (strlencmp(cmd, "enable") == 0) || + (strlencmp(cmd, "level auto") == 0) ) ) { /* all except 570, 600e/x, 770e, 770x */ if (!acpi_ec_write(fan_status_offset, 0x80)) return -EIO; } else if (!gfan_handle && strlencmp(cmd, "disable") == 0) { /* all except 570, 600e/x, 770e, 770x */ if (!acpi_ec_write(fan_status_offset, 0x00)) return -EIO; + } else if (!gfan_handle && + strlencmp(cmd, "level disengaged") == 0) { + /* all except 570, 600e/x, 770e, 770x */ + if (!acpi_ec_write(fan_status_offset, 0x40)) + return -EIO; + } else if (!gfan_handle && + sscanf(cmd, "level %d", &level) == 1 && + level >=0 && level <= 7) { + /* all except 570, 600e/x, 770e, 770x */ + if (!acpi_ec_write(fan_status_offset, level)) + return -EIO; } else if (fans_handle && sscanf(cmd, "speed %d", &speed) == 1 && speed >= 0 && speed <= 65535) { /* X31, X40 */ @@ -1751,9 +1773,9 @@ static int __init setup_notify(struct ib return 0; } -static int device_add(struct acpi_device *device) +static int ibmacpi_device_add(struct acpi_device *device) { return 0; } @@ -1769,9 +1791,9 @@ static int __init register_driver(struct memset(ibm->driver, 0, sizeof(struct acpi_driver)); sprintf(ibm->driver->name, "%s/%s", IBM_NAME, ibm->name); ibm->driver->ids = ibm->hid; - ibm->driver->ops.add = &device_add; + ibm->driver->ops.add = &ibmacpi_device_add; ret = acpi_bus_register_driver(ibm->driver); if (ret < 0) { printk(IBM_ERR "acpi_bus_register_driver(%s) failed: %d\n",