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@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to