Loading drivers/acpi/pci_link.c +20 −11 Original line number Diff line number Diff line Loading @@ -113,19 +113,22 @@ acpi_pci_link_check_possible(struct acpi_resource *resource, void *context) switch (resource->type) { case ACPI_RESOURCE_TYPE_START_DEPENDENT: case ACPI_RESOURCE_TYPE_END_TAG: return AE_OK; case ACPI_RESOURCE_TYPE_IRQ: { struct acpi_resource_irq *p = &resource->data.irq; if (!p || !p->interrupt_count) { printk(KERN_WARNING PREFIX "Blank IRQ resource\n"); ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Blank _PRS IRQ resource\n")); return AE_OK; } for (i = 0; (i < p->interrupt_count && i < ACPI_PCI_LINK_MAX_POSSIBLE); i++) { if (!p->interrupts[i]) { printk(KERN_WARNING PREFIX "Invalid IRQ %d\n", printk(KERN_WARNING PREFIX "Invalid _PRS IRQ %d\n", p->interrupts[i]); continue; } Loading @@ -143,14 +146,15 @@ acpi_pci_link_check_possible(struct acpi_resource *resource, void *context) &resource->data.extended_irq; if (!p || !p->interrupt_count) { printk(KERN_WARNING PREFIX "Blank EXT IRQ resource\n"); "Blank _PRS EXT IRQ resource\n"); return AE_OK; } for (i = 0; (i < p->interrupt_count && i < ACPI_PCI_LINK_MAX_POSSIBLE); i++) { if (!p->interrupts[i]) { printk(KERN_WARNING PREFIX "Invalid IRQ %d\n", printk(KERN_WARNING PREFIX "Invalid _PRS IRQ %d\n", p->interrupts[i]); continue; } Loading @@ -163,7 +167,8 @@ acpi_pci_link_check_possible(struct acpi_resource *resource, void *context) break; } default: printk(KERN_ERR PREFIX "Resource is not an IRQ entry\n"); printk(KERN_ERR PREFIX "_PRS resource type 0x%x isn't an IRQ\n", resource->type); return AE_OK; } Loading Loading @@ -199,6 +204,9 @@ acpi_pci_link_check_current(struct acpi_resource *resource, void *context) switch (resource->type) { case ACPI_RESOURCE_TYPE_START_DEPENDENT: case ACPI_RESOURCE_TYPE_END_TAG: return AE_OK; case ACPI_RESOURCE_TYPE_IRQ: { struct acpi_resource_irq *p = &resource->data.irq; Loading @@ -208,7 +216,7 @@ acpi_pci_link_check_current(struct acpi_resource *resource, void *context) * particularly those those w/ _STA disabled */ ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Blank IRQ resource\n")); "Blank _CRS IRQ resource\n")); return AE_OK; } *irq = p->interrupts[0]; Loading @@ -224,7 +232,7 @@ acpi_pci_link_check_current(struct acpi_resource *resource, void *context) * return at least 1 IRQ */ printk(KERN_WARNING PREFIX "Blank EXT IRQ resource\n"); "Blank _CRS EXT IRQ resource\n"); return AE_OK; } *irq = p->interrupts[0]; Loading @@ -232,10 +240,11 @@ acpi_pci_link_check_current(struct acpi_resource *resource, void *context) } break; default: printk(KERN_ERR PREFIX "Resource %d isn't an IRQ\n", resource->type); case ACPI_RESOURCE_TYPE_END_TAG: printk(KERN_ERR PREFIX "_CRS resource type 0x%x isn't an IRQ\n", resource->type); return AE_OK; } return AE_CTRL_TERMINATE; } Loading drivers/acpi/thermal.c +43 −0 Original line number Diff line number Diff line Loading @@ -769,6 +769,47 @@ static void acpi_thermal_run(unsigned long data) acpi_os_execute(OSL_GPE_HANDLER, acpi_thermal_check, (void *)data); } static void acpi_thermal_active_off(void *data) { int result = 0; struct acpi_thermal *tz = data; int i = 0; int j = 0; struct acpi_thermal_active *active = NULL; if (!tz) { printk(KERN_ERR PREFIX "Invalid (NULL) context\n"); return; } result = acpi_thermal_get_temperature(tz); if (result) return; for (i = 0; i < ACPI_THERMAL_MAX_ACTIVE; i++) { active = &(tz->trips.active[i]); if (!active || !active->flags.valid) break; if (tz->temperature >= active->temperature) { /* * If the thermal temperature is greater than the * active threshod, unnecessary to turn off the * the active cooling device. */ continue; } /* * Below Threshold? * ---------------- * Turn OFF all cooling devices associated with this * threshold. */ for (j = 0; j < active->devices.count; j++) result = acpi_bus_set_power(active->devices.handles[j], ACPI_STATE_D3); } } static void acpi_thermal_check(void *data) { int result = 0; Loading Loading @@ -1624,6 +1665,8 @@ static int acpi_thermal_add(struct acpi_device *device) init_timer(&tz->timer); acpi_thermal_active_off(tz); acpi_thermal_check(tz); status = acpi_install_notify_handler(device->handle, Loading drivers/acpi/video.c +12 −2 Original line number Diff line number Diff line Loading @@ -741,7 +741,7 @@ static void acpi_video_device_find_cap(struct acpi_video_device *device) max_level = acpi_video_init_brightness(device); if (device->cap._BCL && device->cap._BCM && device->cap._BQC && max_level > 0){ if (device->cap._BCL && device->cap._BCM && max_level > 0) { int result; static int count = 0; char *name; Loading @@ -753,7 +753,17 @@ static void acpi_video_device_find_cap(struct acpi_video_device *device) device->backlight = backlight_device_register(name, NULL, device, &acpi_backlight_ops); device->backlight->props.max_brightness = device->brightness->count-3; device->backlight->props.brightness = acpi_video_get_brightness(device->backlight); /* * If there exists the _BQC object, the _BQC object will be * called to get the current backlight brightness. Otherwise * the brightness will be set to the maximum. */ if (device->cap._BQC) device->backlight->props.brightness = acpi_video_get_brightness(device->backlight); else device->backlight->props.brightness = device->backlight->props.max_brightness; backlight_update_status(device->backlight); kfree(name); Loading Loading
drivers/acpi/pci_link.c +20 −11 Original line number Diff line number Diff line Loading @@ -113,19 +113,22 @@ acpi_pci_link_check_possible(struct acpi_resource *resource, void *context) switch (resource->type) { case ACPI_RESOURCE_TYPE_START_DEPENDENT: case ACPI_RESOURCE_TYPE_END_TAG: return AE_OK; case ACPI_RESOURCE_TYPE_IRQ: { struct acpi_resource_irq *p = &resource->data.irq; if (!p || !p->interrupt_count) { printk(KERN_WARNING PREFIX "Blank IRQ resource\n"); ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Blank _PRS IRQ resource\n")); return AE_OK; } for (i = 0; (i < p->interrupt_count && i < ACPI_PCI_LINK_MAX_POSSIBLE); i++) { if (!p->interrupts[i]) { printk(KERN_WARNING PREFIX "Invalid IRQ %d\n", printk(KERN_WARNING PREFIX "Invalid _PRS IRQ %d\n", p->interrupts[i]); continue; } Loading @@ -143,14 +146,15 @@ acpi_pci_link_check_possible(struct acpi_resource *resource, void *context) &resource->data.extended_irq; if (!p || !p->interrupt_count) { printk(KERN_WARNING PREFIX "Blank EXT IRQ resource\n"); "Blank _PRS EXT IRQ resource\n"); return AE_OK; } for (i = 0; (i < p->interrupt_count && i < ACPI_PCI_LINK_MAX_POSSIBLE); i++) { if (!p->interrupts[i]) { printk(KERN_WARNING PREFIX "Invalid IRQ %d\n", printk(KERN_WARNING PREFIX "Invalid _PRS IRQ %d\n", p->interrupts[i]); continue; } Loading @@ -163,7 +167,8 @@ acpi_pci_link_check_possible(struct acpi_resource *resource, void *context) break; } default: printk(KERN_ERR PREFIX "Resource is not an IRQ entry\n"); printk(KERN_ERR PREFIX "_PRS resource type 0x%x isn't an IRQ\n", resource->type); return AE_OK; } Loading Loading @@ -199,6 +204,9 @@ acpi_pci_link_check_current(struct acpi_resource *resource, void *context) switch (resource->type) { case ACPI_RESOURCE_TYPE_START_DEPENDENT: case ACPI_RESOURCE_TYPE_END_TAG: return AE_OK; case ACPI_RESOURCE_TYPE_IRQ: { struct acpi_resource_irq *p = &resource->data.irq; Loading @@ -208,7 +216,7 @@ acpi_pci_link_check_current(struct acpi_resource *resource, void *context) * particularly those those w/ _STA disabled */ ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Blank IRQ resource\n")); "Blank _CRS IRQ resource\n")); return AE_OK; } *irq = p->interrupts[0]; Loading @@ -224,7 +232,7 @@ acpi_pci_link_check_current(struct acpi_resource *resource, void *context) * return at least 1 IRQ */ printk(KERN_WARNING PREFIX "Blank EXT IRQ resource\n"); "Blank _CRS EXT IRQ resource\n"); return AE_OK; } *irq = p->interrupts[0]; Loading @@ -232,10 +240,11 @@ acpi_pci_link_check_current(struct acpi_resource *resource, void *context) } break; default: printk(KERN_ERR PREFIX "Resource %d isn't an IRQ\n", resource->type); case ACPI_RESOURCE_TYPE_END_TAG: printk(KERN_ERR PREFIX "_CRS resource type 0x%x isn't an IRQ\n", resource->type); return AE_OK; } return AE_CTRL_TERMINATE; } Loading
drivers/acpi/thermal.c +43 −0 Original line number Diff line number Diff line Loading @@ -769,6 +769,47 @@ static void acpi_thermal_run(unsigned long data) acpi_os_execute(OSL_GPE_HANDLER, acpi_thermal_check, (void *)data); } static void acpi_thermal_active_off(void *data) { int result = 0; struct acpi_thermal *tz = data; int i = 0; int j = 0; struct acpi_thermal_active *active = NULL; if (!tz) { printk(KERN_ERR PREFIX "Invalid (NULL) context\n"); return; } result = acpi_thermal_get_temperature(tz); if (result) return; for (i = 0; i < ACPI_THERMAL_MAX_ACTIVE; i++) { active = &(tz->trips.active[i]); if (!active || !active->flags.valid) break; if (tz->temperature >= active->temperature) { /* * If the thermal temperature is greater than the * active threshod, unnecessary to turn off the * the active cooling device. */ continue; } /* * Below Threshold? * ---------------- * Turn OFF all cooling devices associated with this * threshold. */ for (j = 0; j < active->devices.count; j++) result = acpi_bus_set_power(active->devices.handles[j], ACPI_STATE_D3); } } static void acpi_thermal_check(void *data) { int result = 0; Loading Loading @@ -1624,6 +1665,8 @@ static int acpi_thermal_add(struct acpi_device *device) init_timer(&tz->timer); acpi_thermal_active_off(tz); acpi_thermal_check(tz); status = acpi_install_notify_handler(device->handle, Loading
drivers/acpi/video.c +12 −2 Original line number Diff line number Diff line Loading @@ -741,7 +741,7 @@ static void acpi_video_device_find_cap(struct acpi_video_device *device) max_level = acpi_video_init_brightness(device); if (device->cap._BCL && device->cap._BCM && device->cap._BQC && max_level > 0){ if (device->cap._BCL && device->cap._BCM && max_level > 0) { int result; static int count = 0; char *name; Loading @@ -753,7 +753,17 @@ static void acpi_video_device_find_cap(struct acpi_video_device *device) device->backlight = backlight_device_register(name, NULL, device, &acpi_backlight_ops); device->backlight->props.max_brightness = device->brightness->count-3; device->backlight->props.brightness = acpi_video_get_brightness(device->backlight); /* * If there exists the _BQC object, the _BQC object will be * called to get the current backlight brightness. Otherwise * the brightness will be set to the maximum. */ if (device->cap._BQC) device->backlight->props.brightness = acpi_video_get_brightness(device->backlight); else device->backlight->props.brightness = device->backlight->props.max_brightness; backlight_update_status(device->backlight); kfree(name); Loading