forked from mirrors/linux
		
	 008d3825a8
			
		
	
	
		008d3825a8
		
	
	
	
	
		
			
			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>
		
			
				
	
	
		
			27 lines
		
	
	
	
		
			715 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			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 */
 |