diff options
author | Nathan Fontenot <nfont@linux.vnet.ibm.com> | 2015-02-10 14:43:24 -0500 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2015-03-16 19:57:44 -0400 |
commit | 366d395c8dd8f1d92f967e4a7691dadd9b9ae1bb (patch) | |
tree | 75a529db8b90b3d789e1e427bd35ab78b3471761 /arch/powerpc | |
parent | 9eccca0843205f87c00404b663188b88eb248051 (diff) |
powerpc/pseries: Define rtas hotplug event sections
In order to handle device hotplug in the kernel on pseries the hotplug
request will be communicated in the kernel in the form of a
rtas hotplug event. This patch adds the definition of rtas hotplug event
sections.
Signed-off-by: Nathan Fontenot <nfont@linux.vnet.ibm.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc')
-rw-r--r-- | arch/powerpc/include/asm/rtas.h | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/arch/powerpc/include/asm/rtas.h b/arch/powerpc/include/asm/rtas.h index 2e23e92a4372..eddc8469543a 100644 --- a/arch/powerpc/include/asm/rtas.h +++ b/arch/powerpc/include/asm/rtas.h | |||
@@ -273,6 +273,7 @@ inline uint32_t rtas_ext_event_company_id(struct rtas_ext_event_log_v6 *ext_log) | |||
273 | #define PSERIES_ELOG_SECT_ID_MANUFACT_INFO (('M' << 8) | 'I') | 273 | #define PSERIES_ELOG_SECT_ID_MANUFACT_INFO (('M' << 8) | 'I') |
274 | #define PSERIES_ELOG_SECT_ID_CALL_HOME (('C' << 8) | 'H') | 274 | #define PSERIES_ELOG_SECT_ID_CALL_HOME (('C' << 8) | 'H') |
275 | #define PSERIES_ELOG_SECT_ID_USER_DEF (('U' << 8) | 'D') | 275 | #define PSERIES_ELOG_SECT_ID_USER_DEF (('U' << 8) | 'D') |
276 | #define PSERIES_ELOG_SECT_ID_HOTPLUG (('H' << 8) | 'P') | ||
276 | 277 | ||
277 | /* Vendor specific Platform Event Log Format, Version 6, section header */ | 278 | /* Vendor specific Platform Event Log Format, Version 6, section header */ |
278 | struct pseries_errorlog { | 279 | struct pseries_errorlog { |
@@ -296,6 +297,31 @@ inline uint16_t pseries_errorlog_length(struct pseries_errorlog *sect) | |||
296 | return be16_to_cpu(sect->length); | 297 | return be16_to_cpu(sect->length); |
297 | } | 298 | } |
298 | 299 | ||
300 | /* RTAS pseries hotplug errorlog section */ | ||
301 | struct pseries_hp_errorlog { | ||
302 | u8 resource; | ||
303 | u8 action; | ||
304 | u8 id_type; | ||
305 | u8 reserved; | ||
306 | union { | ||
307 | __be32 drc_index; | ||
308 | __be32 drc_count; | ||
309 | char drc_name[1]; | ||
310 | } _drc_u; | ||
311 | }; | ||
312 | |||
313 | #define PSERIES_HP_ELOG_RESOURCE_CPU 1 | ||
314 | #define PSERIES_HP_ELOG_RESOURCE_MEM 2 | ||
315 | #define PSERIES_HP_ELOG_RESOURCE_SLOT 3 | ||
316 | #define PSERIES_HP_ELOG_RESOURCE_PHB 4 | ||
317 | |||
318 | #define PSERIES_HP_ELOG_ACTION_ADD 1 | ||
319 | #define PSERIES_HP_ELOG_ACTION_REMOVE 2 | ||
320 | |||
321 | #define PSERIES_HP_ELOG_ID_DRC_NAME 1 | ||
322 | #define PSERIES_HP_ELOG_ID_DRC_INDEX 2 | ||
323 | #define PSERIES_HP_ELOG_ID_DRC_COUNT 3 | ||
324 | |||
299 | struct pseries_errorlog *get_pseries_errorlog(struct rtas_error_log *log, | 325 | struct pseries_errorlog *get_pseries_errorlog(struct rtas_error_log *log, |
300 | uint16_t section_id); | 326 | uint16_t section_id); |
301 | 327 | ||