parisc: Add wrapper for pdc_instr() firmware function
Signed-off-by: Helge Deller <deller@gmx.de>hifive-unleashed-5.1
parent
08b8a99b2c
commit
77089c5274
|
@ -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);
|
||||
|
|
|
@ -232,6 +232,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.
|
||||
|
|
Loading…
Reference in New Issue