···693693 if (perf->control_register.space_id == ACPI_ADR_SPACE_FIXED_HARDWARE &&694694 policy->cpuinfo.transition_latency > 20 * 1000) {695695 policy->cpuinfo.transition_latency = 20 * 1000;696696- printk_once(KERN_INFO "Capping off P-state tranision"697697- " latency at 20 uS\n");696696+ printk_once(KERN_INFO697697+ "P-state transition latency capped at 20 uS\n");698698 }699699700700 /* table init */
+6-18
drivers/acpi/pci_bind.c
···116116 struct acpi_pci_data *pdata;117117 struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL };118118 acpi_handle handle;119119- struct pci_dev *dev;120120- struct pci_bus *bus;121121-122119123120 if (!device || !device->parent)124121 return -EINVAL;···173176 * Locate matching device in PCI namespace. If it doesn't exist174177 * this typically means that the device isn't currently inserted175178 * (e.g. docking station, port replicator, etc.).176176- * We cannot simply search the global pci device list, since177177- * PCI devices are added to the global pci list when the root178178- * bridge start ops are run, which may not have happened yet.179179 */180180- bus = pci_find_bus(data->id.segment, data->id.bus);181181- if (bus) {182182- list_for_each_entry(dev, &bus->devices, bus_list) {183183- if (dev->devfn == PCI_DEVFN(data->id.device,184184- data->id.function)) {185185- data->dev = dev;186186- break;187187- }188188- }189189- }180180+ data->dev = pci_get_slot(pdata->bus,181181+ PCI_DEVFN(data->id.device, data->id.function));190182 if (!data->dev) {191183 ACPI_DEBUG_PRINT((ACPI_DB_INFO,192184 "Device %04x:%02x:%02x.%d not present in PCI namespace\n",···245259246260 end:247261 kfree(buffer.pointer);248248- if (result)262262+ if (result) {263263+ pci_dev_put(data->dev);249264 kfree(data);250250-265265+ }251266 return result;252267}253268···290303 if (data->dev->subordinate) {291304 acpi_pci_irq_del_prt(data->id.segment, data->bus->number);292305 }306306+ pci_dev_put(data->dev);293307 kfree(data);294308295309 end:
+7-1
drivers/acpi/processor_idle.c
···148148 if (cpu_has(&cpu_data(pr->id), X86_FEATURE_ARAT))149149 return;150150151151+ if (boot_cpu_has(X86_FEATURE_AMDC1E))152152+ type = ACPI_STATE_C1;153153+151154 /*152155 * Check, if one of the previous states already marked the lapic153156 * unstable···614611 switch (cx->type) {615612 case ACPI_STATE_C1:616613 cx->valid = 1;614614+ acpi_timer_check_state(i, pr, cx);617615 break;618616619617 case ACPI_STATE_C2:···834830835831 /* Do not access any ACPI IO ports in suspend path */836832 if (acpi_idle_suspend) {837837- acpi_safe_halt();838833 local_irq_enable();834834+ cpu_relax();839835 return 0;840836 }841837838838+ acpi_state_timer_broadcast(pr, cx, 1);842839 kt1 = ktime_get_real();843840 acpi_idle_do_entry(cx);844841 kt2 = ktime_get_real();···847842848843 local_irq_enable();849844 cx->usage++;845845+ acpi_state_timer_broadcast(pr, cx, 0);850846851847 return idle_time;852848}
+9-3
drivers/acpi/processor_perflib.c
···309309 (u32) px->bus_master_latency,310310 (u32) px->control, (u32) px->status));311311312312- if (!px->core_frequency) {313313- printk(KERN_ERR PREFIX314314- "Invalid _PSS data: freq is zero\n");312312+ /*313313+ * Check that ACPI's u64 MHz will be valid as u32 KHz in cpufreq314314+ */315315+ if (!px->core_frequency ||316316+ ((u32)(px->core_frequency * 1000) !=317317+ (px->core_frequency * 1000))) {318318+ printk(KERN_ERR FW_BUG PREFIX319319+ "Invalid BIOS _PSS frequency: 0x%llx MHz\n",320320+ px->core_frequency);315321 result = -EFAULT;316322 kfree(pr->performance->states);317323 goto end;
+1-1
drivers/acpi/processor_throttling.c
···840840 state = acpi_get_throttling_state(pr, value);841841 if (state == -1) {842842 ACPI_WARNING((AE_INFO,843843- "Invalid throttling state, reset\n"));843843+ "Invalid throttling state, reset"));844844 state = 0;845845 ret = acpi_processor_set_throttling(pr, state);846846 if (ret)
···6767 will load the correct one.68686969config DRM_I9157070+ tristate "i915 driver"7071 select FB_CFB_FILLRECT7172 select FB_CFB_COPYAREA7273 select FB_CFB_IMAGEBLIT7374 select FB7475 select FRAMEBUFFER_CONSOLE if !EMBEDDED7575- tristate "i915 driver"7676+ # i915 depends on ACPI_VIDEO when ACPI is enabled7777+ # but for select to work, need to select ACPI_VIDEO's dependencies, ick7878+ select VIDEO_OUTPUT_CONTROL if ACPI7979+ select BACKLIGHT_CLASS_DEVICE if ACPI8080+ select INPUT if ACPI8181+ select ACPI_VIDEO if ACPI7682 help7783 Choose this option if you have a system that has Intel 830M, 845G,7884 852GM, 855GM 865G or 915G integrated graphics. If M is selected, the···9084config DRM_I915_KMS9185 bool "Enable modesetting on intel by default"9286 depends on DRM_I9159393- # i915 KMS depends on ACPI_VIDEO when ACPI is enabled9494- # but for select to work, need to select ACPI_VIDEO's dependencies, ick9595- select VIDEO_OUTPUT_CONTROL if ACPI9696- select BACKLIGHT_CLASS_DEVICE if ACPI9797- select INPUT if ACPI9898- select ACPI_VIDEO if ACPI9987 help10088 Choose this option if you want kernel modesetting enabled by default,10189 and you have a new enough userspace to support this. Running old
+5-1
drivers/idle/i7300_idle.c
···4141module_param_named(debug, debug, uint, 0644);4242MODULE_PARM_DESC(debug, "Enable debug printks in this driver");43434444+static int forceload;4545+module_param_named(forceload, forceload, uint, 0644);4646+MODULE_PARM_DESC(debug, "Enable driver testing on unvalidated i5000");4747+4448#define dprintk(fmt, arg...) \4549 do { if (debug) printk(KERN_INFO I7300_PRINT fmt, ##arg); } while (0)4650···556552 cpus_clear(idle_cpumask);557553 total_us = 0;558554559559- if (i7300_idle_platform_probe(&fbd_dev, &ioat_dev))555555+ if (i7300_idle_platform_probe(&fbd_dev, &ioat_dev, forceload))560556 return -ENODEV;561557562558 if (i7300_idle_thrt_save())
+10-10
include/linux/i7300_idle.h
···1616struct fbd_ioat {1717 unsigned int vendor;1818 unsigned int ioat_dev;1919+ unsigned int enabled;1920};20212122/*2223 * The i5000 chip-set has the same hooks as the i73002323- * but support is disabled by default because this driver2424- * has not been validated on that platform.2424+ * but it is not enabled by default and must be manually2525+ * manually enabled with "forceload=1" because it is2626+ * only lightly validated.2527 */2626-#define SUPPORT_I5000 027282829static const struct fbd_ioat fbd_ioat_list[] = {2929- {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_IOAT_CNB},3030-#if SUPPORT_I50003131- {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_IOAT},3232-#endif3030+ {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_IOAT_CNB, 1},3131+ {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_IOAT, 0},3332 {0, 0}3433};35343635/* table of devices that work with this driver */3736static const struct pci_device_id pci_tbl[] = {3837 { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_FBD_CNB) },3939-#if SUPPORT_I50004038 { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_5000_ERR) },4141-#endif4239 { } /* Terminating entry */4340};44414542/* Check for known platforms with I/O-AT */4643static inline int i7300_idle_platform_probe(struct pci_dev **fbd_dev,4747- struct pci_dev **ioat_dev)4444+ struct pci_dev **ioat_dev,4545+ int enable_all)4846{4947 int i;5048 struct pci_dev *memdev, *dmadev;···6769 for (i = 0; fbd_ioat_list[i].vendor != 0; i++) {6870 if (dmadev->vendor == fbd_ioat_list[i].vendor &&6971 dmadev->device == fbd_ioat_list[i].ioat_dev) {7272+ if (!(fbd_ioat_list[i].enabled || enable_all))7373+ continue;7074 if (fbd_dev)7175 *fbd_dev = memdev;7276 if (ioat_dev)