linux-stable/include/linux/fsi-occ.h
Eddie James 008d3825a8 fsi: occ: Use a large buffer for responses
Allocate a large buffer for each OCC to handle response data. This
removes memory allocation during an operation, and also allows for
the maximum amount of SBE FFDC.

Previously for the putsram and attn commands, only 32 words would have
been available, and for getsram, only up to the size of the transfer.
SBE FFDC might be up to 8Kb.

The SBE interface expects data to be specified in units of words (4
bytes), defined as OCC_MAX_RESP_WORDS.

This change allows the full FFDC capture to be implemented, where before
it was not available.

Signed-off-by: Eddie James <eajames@linux.ibm.com>
Link: https://lore.kernel.org/r/20211019205307.36946-2-eajames@linux.ibm.com
Signed-off-by: Joel Stanley <joel@jms.id.au>
2021-10-22 09:50:55 +10:30

27 lines
715 B
C

// SPDX-License-Identifier: GPL-2.0
#ifndef LINUX_FSI_OCC_H
#define LINUX_FSI_OCC_H
struct device;
#define OCC_RESP_CMD_IN_PRG 0xFF
#define OCC_RESP_SUCCESS 0
#define OCC_RESP_CMD_INVAL 0x11
#define OCC_RESP_CMD_LEN_INVAL 0x12
#define OCC_RESP_DATA_INVAL 0x13
#define OCC_RESP_CHKSUM_ERR 0x14
#define OCC_RESP_INT_ERR 0x15
#define OCC_RESP_BAD_STATE 0x16
#define OCC_RESP_CRIT_EXCEPT 0xE0
#define OCC_RESP_CRIT_INIT 0xE1
#define OCC_RESP_CRIT_WATCHDOG 0xE2
#define OCC_RESP_CRIT_OCB 0xE3
#define OCC_RESP_CRIT_HW 0xE4
#define OCC_MAX_RESP_WORDS 2048
int fsi_occ_submit(struct device *dev, const void *request, size_t req_len,
void *response, size_t *resp_len);
#endif /* LINUX_FSI_OCC_H */