tree: git://anongit.freedesktop.org/drm-intel topic/core-for-CI head: b573fba52f339dc4fadef7282af4a9413fd6173d commit: b573fba52f339dc4fadef7282af4a9413fd6173d [15/15] ICL HACK: Disable ACPI idle driver config: arm64-defconfig (attached as .config) compiler: aarch64-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross git checkout b573fba52f339dc4fadef7282af4a9413fd6173d # save the attached .config to linux build tree GCC_VERSION=7.2.0 make.cross ARCH=arm64 All errors (new ones prefixed by >>): drivers/acpi/processor_driver.c:67:23: error: 'X86_VENDOR_INTEL' undeclared here (not in a function); did you mean 'X86_VENDOR_ANY'? #define ICPU(model) { X86_VENDOR_INTEL, 6, model, X86_FEATURE_ANY, } ^ drivers/acpi/processor_driver.c:69:2: note: in expansion of macro 'ICPU' ICPU(INTEL_FAM6_ICELAKE_MOBILE), /* ICL */ ^~~~ >> drivers/acpi/processor_driver.c:69:7: error: 'INTEL_FAM6_ICELAKE_MOBILE' undeclared here (not in a function) ICPU(INTEL_FAM6_ICELAKE_MOBILE), /* ICL */ ^ drivers/acpi/processor_driver.c:67:44: note: in definition of macro 'ICPU' #define ICPU(model) { X86_VENDOR_INTEL, 6, model, X86_FEATURE_ANY, } ^~~~~ drivers/acpi/processor_driver.c: In function '__acpi_processor_start': >> drivers/acpi/processor_driver.c:256:7: error: implicit declaration of function 'x86_match_cpu'; did you mean 'on_each_cpu'? [-Werror=implicit-function-declaration] id = x86_match_cpu(intel_cpu_ids); ^~~~~~~~~~~~~ on_each_cpu drivers/acpi/processor_driver.c:256:5: warning: assignment makes pointer from integer without a cast [-Wint-conversion] id = x86_match_cpu(intel_cpu_ids); ^ cc1: some warnings being treated as errors vim +/INTEL_FAM6_ICELAKE_MOBILE +69 drivers/acpi/processor_driver.c 66 > 67 #define ICPU(model) { X86_VENDOR_INTEL, 6, model, X86_FEATURE_ANY, } 68 static const struct x86_cpu_id intel_cpu_ids[] = { > 69 ICPU(INTEL_FAM6_ICELAKE_MOBILE), /* ICL */ 70 {} 71 }; 72 MODULE_DEVICE_TABLE(x86cpu, intel_cpu_ids); 73 74 static struct device_driver acpi_processor_driver = { 75 .name = "processor", 76 .bus = &cpu_subsys, 77 .acpi_match_table = processor_device_ids, 78 .probe = acpi_processor_start, 79 .remove = acpi_processor_stop, 80 }; 81 82 static void acpi_processor_notify(acpi_handle handle, u32 event, void *data) 83 { 84 struct acpi_device *device = data; 85 struct acpi_processor *pr; 86 int saved; 87 88 if (device->handle != handle) 89 return; 90 91 pr = acpi_driver_data(device); 92 if (!pr) 93 return; 94 95 switch (event) { 96 case ACPI_PROCESSOR_NOTIFY_PERFORMANCE: 97 saved = pr->performance_platform_limit; 98 acpi_processor_ppc_has_changed(pr, 1); 99 if (saved == pr->performance_platform_limit) 100 break; 101 acpi_bus_generate_netlink_event(device->pnp.device_class, 102 dev_name(&device->dev), event, 103 pr->performance_platform_limit); 104 break; 105 case ACPI_PROCESSOR_NOTIFY_POWER: 106 acpi_processor_power_state_has_changed(pr); 107 acpi_bus_generate_netlink_event(device->pnp.device_class, 108 dev_name(&device->dev), event, 0); 109 break; 110 case ACPI_PROCESSOR_NOTIFY_THROTTLING: 111 acpi_processor_tstate_has_changed(pr); 112 acpi_bus_generate_netlink_event(device->pnp.device_class, 113 dev_name(&device->dev), event, 0); 114 break; 115 default: 116 ACPI_DEBUG_PRINT((ACPI_DB_INFO, 117 "Unsupported event [0x%x]\n", event)); 118 break; 119 } 120 121 return; 122 } 123 124 static int __acpi_processor_start(struct acpi_device *device); 125 126 static int acpi_soft_cpu_online(unsigned int cpu) 127 { 128 struct acpi_processor *pr = per_cpu(processors, cpu); 129 struct acpi_device *device; 130 131 if (!pr || acpi_bus_get_device(pr->handle, &device)) 132 return 0; 133 /* 134 * CPU got physically hotplugged and onlined for the first time: 135 * Initialize missing things. 136 */ 137 if (pr->flags.need_hotplug_init) { 138 int ret; 139 140 pr_info("Will online and init hotplugged CPU: %d\n", 141 pr->id); 142 pr->flags.need_hotplug_init = 0; 143 ret = __acpi_processor_start(device); 144 WARN(ret, "Failed to start CPU: %d\n", pr->id); 145 } else { 146 /* Normal CPU soft online event. */ 147 acpi_processor_ppc_has_changed(pr, 0); 148 acpi_processor_hotplug(pr); 149 acpi_processor_reevaluate_tstate(pr, false); 150 acpi_processor_tstate_has_changed(pr); 151 } 152 return 0; 153 } 154 155 static int acpi_soft_cpu_dead(unsigned int cpu) 156 { 157 struct acpi_processor *pr = per_cpu(processors, cpu); 158 struct acpi_device *device; 159 160 if (!pr || acpi_bus_get_device(pr->handle, &device)) 161 return 0; 162 163 acpi_processor_reevaluate_tstate(pr, true); 164 return 0; 165 } 166 167 #ifdef CONFIG_ACPI_CPU_FREQ_PSS 168 static int acpi_pss_perf_init(struct acpi_processor *pr, 169 struct acpi_device *device) 170 { 171 int result = 0; 172 173 acpi_processor_ppc_has_changed(pr, 0); 174 175 acpi_processor_get_throttling_info(pr); 176 177 if (pr->flags.throttling) 178 pr->flags.limit = 1; 179 180 pr->cdev = thermal_cooling_device_register("Processor", device, 181 &processor_cooling_ops); 182 if (IS_ERR(pr->cdev)) { 183 result = PTR_ERR(pr->cdev); 184 return result; 185 } 186 187 dev_dbg(&device->dev, "registered as cooling_device%d\n", 188 pr->cdev->id); 189 190 result = sysfs_create_link(&device->dev.kobj, 191 &pr->cdev->device.kobj, 192 "thermal_cooling"); 193 if (result) { 194 dev_err(&device->dev, 195 "Failed to create sysfs link 'thermal_cooling'\n"); 196 goto err_thermal_unregister; 197 } 198 199 result = sysfs_create_link(&pr->cdev->device.kobj, 200 &device->dev.kobj, 201 "device"); 202 if (result) { 203 dev_err(&pr->cdev->device, 204 "Failed to create sysfs link 'device'\n"); 205 goto err_remove_sysfs_thermal; 206 } 207 208 return 0; 209 210 err_remove_sysfs_thermal: 211 sysfs_remove_link(&device->dev.kobj, "thermal_cooling"); 212 err_thermal_unregister: 213 thermal_cooling_device_unregister(pr->cdev); 214 215 return result; 216 } 217 218 static void acpi_pss_perf_exit(struct acpi_processor *pr, 219 struct acpi_device *device) 220 { 221 if (pr->cdev) { 222 sysfs_remove_link(&device->dev.kobj, "thermal_cooling"); 223 sysfs_remove_link(&pr->cdev->device.kobj, "device"); 224 thermal_cooling_device_unregister(pr->cdev); 225 pr->cdev = NULL; 226 } 227 } 228 #else 229 static inline int acpi_pss_perf_init(struct acpi_processor *pr, 230 struct acpi_device *device) 231 { 232 return 0; 233 } 234 235 static inline void acpi_pss_perf_exit(struct acpi_processor *pr, 236 struct acpi_device *device) {} 237 #endif /* CONFIG_ACPI_CPU_FREQ_PSS */ 238 239 static int __acpi_processor_start(struct acpi_device *device) 240 { 241 struct acpi_processor *pr = acpi_driver_data(device); 242 const struct x86_cpu_id *id; 243 acpi_status status; 244 int result = 0; 245 246 if (!pr) 247 return -ENODEV; 248 249 if (pr->flags.need_hotplug_init) 250 return 0; 251 252 result = acpi_cppc_processor_probe(pr); 253 if (result && !IS_ENABLED(CONFIG_ACPI_CPU_FREQ_PSS)) 254 dev_dbg(&device->dev, "CPPC data invalid or not present\n"); 255 > 256 id = x86_match_cpu(intel_cpu_ids); 257 if (!id && (!cpuidle_get_driver() || cpuidle_get_driver() == 258 &acpi_idle_driver)) 259 acpi_processor_power_init(pr); 260 261 result = acpi_pss_perf_init(pr, device); 262 if (result) 263 goto err_power_exit; 264 265 status = acpi_install_notify_handler(device->handle, ACPI_DEVICE_NOTIFY, 266 acpi_processor_notify, device); 267 if (ACPI_SUCCESS(status)) 268 return 0; 269 270 result = -ENODEV; 271 acpi_pss_perf_exit(pr, device); 272 273 err_power_exit: 274 acpi_processor_power_exit(pr); 275 return result; 276 } 277 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Attachment:
.config.gz
Description: application/gzip
_______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx