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:
Sourabh Jain 2026-07-27 11:04:14 +05:30 committed by Madhavan Srinivasan
parent 884ea0283f
commit 516a254918
2 changed files with 59 additions and 52 deletions

View 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 */

View File

@ -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,