mirror of
https://github.com/torvalds/linux.git
synced 2026-09-22 20:54:03 +02:00
powerpc/pseries: Move H_WATCHDOG definitions to a common header
The H_WATCHDOG input and output definitions are currently local to the pseries watchdog driver. The next patch in this series also needs these definitions to issue H_WATCHDOG hypercalls outside the watchdog driver. Move the H_WATCHDOG definitions to a new common header, asm/papr-watchdog.h, so they can be shared without duplicating the PAPR watchdog definitions. No functional changes. Cc: stable@vger.kernel.org Suggested-by: Ritesh Harjani (IBM) <ritesh.list@gmail.com> Signed-off-by: Sourabh Jain <sourabhjain@linux.ibm.com> Signed-off-by: Madhavan Srinivasan <maddy@linux.ibm.com> Link: https://patch.msgid.link/20260727053416.276317-2-sourabhjain@linux.ibm.com
This commit is contained in:
parent
884ea0283f
commit
516a254918
58
arch/powerpc/include/asm/papr-watchdog.h
Normal file
58
arch/powerpc/include/asm/papr-watchdog.h
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
|
||||
#ifndef _ASM_POWERPC_PAPR_WATCHDOG_H
|
||||
#define _ASM_POWERPC_PAPR_WATCHDOG_H
|
||||
|
||||
/*
|
||||
* H_WATCHDOG Input
|
||||
*
|
||||
* R4: "flags":
|
||||
*
|
||||
* Bits 48-55: "operation"
|
||||
*/
|
||||
#define PSERIES_WDTF_OP_START 0x100UL /* start timer */
|
||||
#define PSERIES_WDTF_OP_STOP 0x200UL /* stop timer */
|
||||
#define PSERIES_WDTF_OP_QUERY 0x300UL /* query timer capabilities */
|
||||
|
||||
/*
|
||||
* Bits 56-63: "timeoutAction" (for "Start Watchdog" only)
|
||||
*/
|
||||
#define PSERIES_WDTF_ACTION_HARD_POWEROFF 0x1UL /* poweroff */
|
||||
#define PSERIES_WDTF_ACTION_HARD_RESTART 0x2UL /* restart */
|
||||
#define PSERIES_WDTF_ACTION_DUMP_RESTART 0x3UL /* dump + restart */
|
||||
|
||||
/*
|
||||
* H_WATCHDOG Output
|
||||
*
|
||||
* R3: Return code
|
||||
*
|
||||
* H_SUCCESS The operation completed.
|
||||
*
|
||||
* H_BUSY The hypervisor is too busy; retry the operation.
|
||||
*
|
||||
* H_PARAMETER The given "flags" are somehow invalid. Either the
|
||||
* "operation" or "timeoutAction" is invalid, or a
|
||||
* reserved bit is set.
|
||||
*
|
||||
* H_P2 The given "watchdogNumber" is zero or exceeds the
|
||||
* supported maximum value.
|
||||
*
|
||||
* H_P3 The given "timeoutInMs" is below the supported
|
||||
* minimum value.
|
||||
*
|
||||
* H_NOOP The given "watchdogNumber" is already stopped.
|
||||
*
|
||||
* H_HARDWARE The operation failed for ineffable reasons.
|
||||
*
|
||||
* H_FUNCTION The H_WATCHDOG hypercall is not supported by this
|
||||
* hypervisor.
|
||||
*
|
||||
* R4:
|
||||
*
|
||||
* - For the "Query Watchdog Capabilities" operation, a 64-bit
|
||||
* structure:
|
||||
*/
|
||||
#define PSERIES_WDTQ_MIN_TIMEOUT(cap) (((cap) >> 48) & 0xffff)
|
||||
#define PSERIES_WDTQ_MAX_NUMBER(cap) (((cap) >> 32) & 0xffff)
|
||||
|
||||
#endif /* _ASM_POWERPC_PAPR_WATCHDOG_H */
|
||||
|
|
@ -12,61 +12,10 @@
|
|||
#include <linux/platform_device.h>
|
||||
#include <linux/time64.h>
|
||||
#include <linux/watchdog.h>
|
||||
#include <asm/papr-watchdog.h>
|
||||
|
||||
#define DRV_NAME "pseries-wdt"
|
||||
|
||||
/*
|
||||
* H_WATCHDOG Input
|
||||
*
|
||||
* R4: "flags":
|
||||
*
|
||||
* Bits 48-55: "operation"
|
||||
*/
|
||||
#define PSERIES_WDTF_OP_START 0x100UL /* start timer */
|
||||
#define PSERIES_WDTF_OP_STOP 0x200UL /* stop timer */
|
||||
#define PSERIES_WDTF_OP_QUERY 0x300UL /* query timer capabilities */
|
||||
|
||||
/*
|
||||
* Bits 56-63: "timeoutAction" (for "Start Watchdog" only)
|
||||
*/
|
||||
#define PSERIES_WDTF_ACTION_HARD_POWEROFF 0x1UL /* poweroff */
|
||||
#define PSERIES_WDTF_ACTION_HARD_RESTART 0x2UL /* restart */
|
||||
#define PSERIES_WDTF_ACTION_DUMP_RESTART 0x3UL /* dump + restart */
|
||||
|
||||
/*
|
||||
* H_WATCHDOG Output
|
||||
*
|
||||
* R3: Return code
|
||||
*
|
||||
* H_SUCCESS The operation completed.
|
||||
*
|
||||
* H_BUSY The hypervisor is too busy; retry the operation.
|
||||
*
|
||||
* H_PARAMETER The given "flags" are somehow invalid. Either the
|
||||
* "operation" or "timeoutAction" is invalid, or a
|
||||
* reserved bit is set.
|
||||
*
|
||||
* H_P2 The given "watchdogNumber" is zero or exceeds the
|
||||
* supported maximum value.
|
||||
*
|
||||
* H_P3 The given "timeoutInMs" is below the supported
|
||||
* minimum value.
|
||||
*
|
||||
* H_NOOP The given "watchdogNumber" is already stopped.
|
||||
*
|
||||
* H_HARDWARE The operation failed for ineffable reasons.
|
||||
*
|
||||
* H_FUNCTION The H_WATCHDOG hypercall is not supported by this
|
||||
* hypervisor.
|
||||
*
|
||||
* R4:
|
||||
*
|
||||
* - For the "Query Watchdog Capabilities" operation, a 64-bit
|
||||
* structure:
|
||||
*/
|
||||
#define PSERIES_WDTQ_MIN_TIMEOUT(cap) (((cap) >> 48) & 0xffff)
|
||||
#define PSERIES_WDTQ_MAX_NUMBER(cap) (((cap) >> 32) & 0xffff)
|
||||
|
||||
static const unsigned long pseries_wdt_action[] = {
|
||||
[0] = PSERIES_WDTF_ACTION_HARD_POWEROFF,
|
||||
[1] = PSERIES_WDTF_ACTION_HARD_RESTART,
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user