tree: git://git.infradead.org/linux-platform-drivers-x86.git review-andy head: 60accc011af0ff869875b1ded81cbd0948267f05 commit: c3bfcd4c676238e198d5a798b50e5d424bf05497 [43/55] platform/x86: thinkpad_acpi: Add platform profile support config: i386-randconfig-r021-20210203 (attached as .config) compiler: gcc-9 (Debian 9.3.0-15) 9.3.0 reproduce (this is a W=1 build): git remote add platform-drivers-x86 git://git.infradead.org/linux-platform-drivers-x86.git git fetch --no-tags platform-drivers-x86 review-andy git checkout c3bfcd4c676238e198d5a798b50e5d424bf05497 # save the attached .config to linux build tree make W=1 ARCH=i386 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@xxxxxxxxx> All warnings (new ones prefixed by >>): >> drivers/platform/x86/thinkpad_acpi.c:10081:5: warning: no previous prototype for 'dytc_profile_get' [-Wmissing-prototypes] 10081 | int dytc_profile_get(struct platform_profile_handler *pprof, | ^~~~~~~~~~~~~~~~ >> drivers/platform/x86/thinkpad_acpi.c:10095:5: warning: no previous prototype for 'dytc_cql_command' [-Wmissing-prototypes] 10095 | int dytc_cql_command(int command, int *output) | ^~~~~~~~~~~~~~~~ >> drivers/platform/x86/thinkpad_acpi.c:10133:5: warning: no previous prototype for 'dytc_profile_set' [-Wmissing-prototypes] 10133 | int dytc_profile_set(struct platform_profile_handler *pprof, | ^~~~~~~~~~~~~~~~ vim +/dytc_profile_get +10081 drivers/platform/x86/thinkpad_acpi.c 10076 10077 /* 10078 * dytc_profile_get: Function to register with platform_profile 10079 * handler. Returns current platform profile. 10080 */ 10081 int dytc_profile_get(struct platform_profile_handler *pprof, 10082 enum platform_profile_option *profile) 10083 { 10084 *profile = dytc_current_profile; 10085 return 0; 10086 } 10087 10088 /* 10089 * Helper function - check if we are in CQL mode and if we are 10090 * - disable CQL, 10091 * - run the command 10092 * - enable CQL 10093 * If not in CQL mode, just run the command 10094 */ 10095 int dytc_cql_command(int command, int *output) 10096 { 10097 int err, cmd_err, dummy; 10098 int cur_funcmode; 10099 10100 /* Determine if we are in CQL mode. This alters the commands we do */ 10101 err = dytc_command(DYTC_CMD_GET, output); 10102 if (err) 10103 return err; 10104 10105 cur_funcmode = (*output >> DYTC_GET_FUNCTION_BIT) & 0xF; 10106 /* Check if we're OK to return immediately */ 10107 if ((command == DYTC_CMD_GET) && (cur_funcmode != DYTC_FUNCTION_CQL)) 10108 return 0; 10109 10110 if (cur_funcmode == DYTC_FUNCTION_CQL) { 10111 atomic_inc(&dytc_ignore_event); 10112 err = dytc_command(DYTC_DISABLE_CQL, &dummy); 10113 if (err) 10114 return err; 10115 } 10116 10117 cmd_err = dytc_command(command, output); 10118 /* Check return condition after we've restored CQL state */ 10119 10120 if (cur_funcmode == DYTC_FUNCTION_CQL) { 10121 err = dytc_command(DYTC_ENABLE_CQL, &dummy); 10122 if (err) 10123 return err; 10124 } 10125 10126 return cmd_err; 10127 } 10128 10129 /* 10130 * dytc_profile_set: Function to register with platform_profile 10131 * handler. Sets current platform profile. 10132 */ 10133 int dytc_profile_set(struct platform_profile_handler *pprof, 10134 enum platform_profile_option profile) 10135 { 10136 int output; 10137 int err; 10138 10139 if (!dytc_profile_available) 10140 return -ENODEV; 10141 10142 err = mutex_lock_interruptible(&dytc_mutex); 10143 if (err) 10144 return err; 10145 10146 if (profile == PLATFORM_PROFILE_BALANCED) { 10147 /* To get back to balanced mode we just issue a reset command */ 10148 err = dytc_command(DYTC_CMD_RESET, &output); 10149 if (err) 10150 goto unlock; 10151 } else { 10152 int perfmode; 10153 10154 err = convert_profile_to_dytc(profile, &perfmode); 10155 if (err) 10156 goto unlock; 10157 10158 /* Determine if we are in CQL mode. This alters the commands we do */ 10159 err = dytc_cql_command(DYTC_SET_COMMAND(DYTC_FUNCTION_MMC, perfmode, 1), &output); 10160 if (err) 10161 goto unlock; 10162 } 10163 /* Success - update current profile */ 10164 dytc_current_profile = profile; 10165 unlock: 10166 mutex_unlock(&dytc_mutex); 10167 return err; 10168 } 10169 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx
Attachment:
.config.gz
Description: application/gzip