parisc: Add wrapper for pdc_instr() firmware function
Helge Deller
maintainerPATCH 1/1 parisc: Add wrapper for pdc_instr() firmware function
Signed-off-by Helge Deller <[email protected]>
arch/parisc/include/asm/pdc.h +1 -0
@@ -280,6 +280,7 @@ void setup_pdc(void); /* in inventory.c *//* wrapper-functions from pdc.c */ int pdc_add_valid (unsigned long address); +int pdc_instr (unsigned int *instr);int pdc_chassis_info (struct pdc_chassis_info *chassis_info,void *led_info,unsigned long len);int pdc_chassis_disp (unsigned long disp);int pdc_chassis_warn (unsigned long *warn);
arch/parisc/kernel/firmware.c +20 -0
@@ -233,6 +233,26 @@ int pdc_add_valid(unsigned long address)EXPORT_SYMBOL (pdc_add_valid);/** +* pdc_instr - Get instruction that invokes PDCE_CHECK in HPMC handler. +* @instr: Pointer to variable which will get instruction opcode. +* +* The return value is PDC_OK (0) in case call succeeded. +*/ +int __init pdc_instr (unsigned int *instr) +{ +int retval; +unsigned long flags; + +spin_lock_irqsave (&pdc_lock, flags); + retval =mem_pdc_call (PDC_INSTR ,0UL ,__pa (pdc_result)); +convert_to_wide (pdc_result); + *instr = pdc_result[0 ]; +spin_unlock_irqrestore (&pdc_lock, flags); + +return retval; +} + +/** * pdc_chassis_info - Return chassis information. * @result: The return buffer. * @chassis_info: The memory buffer address.