Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

powerpc/rtas: export rtas_error_rc() for reuse.

Also, #define descriptive names for common rtas return codes and use it
instead of numeric values.

Signed-off-by: Mahesh Salgaonkar <mahesh@linux.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://msgid.link/169235811556.193557.1023625262204809514.stgit@jupiter

authored by

Mahesh Salgaonkar and committed by
Michael Ellerman
e160bf64 0ceef6e9

+24 -20
+3
arch/powerpc/include/asm/rtas.h
··· 202 202 #define RTAS_USER_REGION_SIZE (64 * 1024) 203 203 204 204 /* RTAS return status codes */ 205 + #define RTAS_HARDWARE_ERROR -1 /* Hardware Error */ 205 206 #define RTAS_BUSY -2 /* RTAS Busy */ 207 + #define RTAS_INVALID_PARAMETER -3 /* Invalid indicator/domain/sensor etc. */ 206 208 #define RTAS_EXTENDED_DELAY_MIN 9900 207 209 #define RTAS_EXTENDED_DELAY_MAX 9905 208 210 ··· 427 425 extern int rtas_set_indicator_fast(int indicator, int index, int new_value); 428 426 extern void rtas_progress(char *s, unsigned short hex); 429 427 int rtas_ibm_suspend_me(int *fw_status); 428 + int rtas_error_rc(int rtas_rc); 430 429 431 430 struct rtc_time; 432 431 extern time64_t rtas_get_boot_time(void);
+21 -20
arch/powerpc/kernel/rtas.c
··· 1330 1330 } 1331 1331 EXPORT_SYMBOL_GPL(rtas_busy_delay); 1332 1332 1333 - static int rtas_error_rc(int rtas_rc) 1333 + int rtas_error_rc(int rtas_rc) 1334 1334 { 1335 1335 int rc; 1336 1336 1337 1337 switch (rtas_rc) { 1338 - case -1: /* Hardware Error */ 1339 - rc = -EIO; 1340 - break; 1341 - case -3: /* Bad indicator/domain/etc */ 1342 - rc = -EINVAL; 1343 - break; 1344 - case -9000: /* Isolation error */ 1345 - rc = -EFAULT; 1346 - break; 1347 - case -9001: /* Outstanding TCE/PTE */ 1348 - rc = -EEXIST; 1349 - break; 1350 - case -9002: /* No usable slot */ 1351 - rc = -ENODEV; 1352 - break; 1353 - default: 1354 - pr_err("%s: unexpected error %d\n", __func__, rtas_rc); 1355 - rc = -ERANGE; 1356 - break; 1338 + case RTAS_HARDWARE_ERROR: /* Hardware Error */ 1339 + rc = -EIO; 1340 + break; 1341 + case RTAS_INVALID_PARAMETER: /* Bad indicator/domain/etc */ 1342 + rc = -EINVAL; 1343 + break; 1344 + case -9000: /* Isolation error */ 1345 + rc = -EFAULT; 1346 + break; 1347 + case -9001: /* Outstanding TCE/PTE */ 1348 + rc = -EEXIST; 1349 + break; 1350 + case -9002: /* No usable slot */ 1351 + rc = -ENODEV; 1352 + break; 1353 + default: 1354 + pr_err("%s: unexpected error %d\n", __func__, rtas_rc); 1355 + rc = -ERANGE; 1356 + break; 1357 1357 } 1358 1358 return rc; 1359 1359 } 1360 + EXPORT_SYMBOL_GPL(rtas_error_rc); 1360 1361 1361 1362 int rtas_get_power_level(int powerdomain, int *level) 1362 1363 {