Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   1) /* SPDX-License-Identifier: GPL-2.0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   3)  *  linux/drivers/message/fusion/mptdebug.h
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   4)  *      For use with LSI PCI chip/adapter(s)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   5)  *      running LSI Fusion MPT (Message Passing Technology) firmware.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   6)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   7)  *  Copyright (c) 1999-2008 LSI Corporation
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   8)  *  (mailto:DL-MPTFusionLinux@lsi.com)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   9)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  10)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  11) /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  12) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  13) #ifndef MPTDEBUG_H_INCLUDED
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  14) #define MPTDEBUG_H_INCLUDED
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  15) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  16) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  17)  * debug level can be programmed on the fly via SysFS (hex values)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  18)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  19)  * Example:  (programming for MPT_DEBUG_EVENTS on host 5)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  20)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  21)  * echo 8 > /sys/class/scsi_host/host5/debug_level
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  22)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  23)  * --------------------------------------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  24)  * mpt_debug_level - command line parameter
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  25)  * this allow enabling debug at driver load time (for all iocs)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  26)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  27)  * Example  (programming for MPT_DEBUG_EVENTS)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  28)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  29)  * insmod mptbase.ko mpt_debug_level=8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  30)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  31)  * --------------------------------------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  32)  * CONFIG_FUSION_LOGGING - enables compiling debug into driver
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  33)  * this can be enabled in the driver Makefile
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  34)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  35)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  36)  * --------------------------------------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  37)  * Please note most debug prints are set to logging priority = debug
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  38)  * This is the lowest level, and most verbose.  Please refer to manual
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  39)  * pages for syslogd or syslogd-ng on how to configure this.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  40)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  41) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  42) #define MPT_DEBUG			0x00000001
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  43) #define MPT_DEBUG_MSG_FRAME		0x00000002
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  44) #define MPT_DEBUG_SG			0x00000004
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  45) #define MPT_DEBUG_EVENTS		0x00000008
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  46) #define MPT_DEBUG_VERBOSE_EVENTS	0x00000010
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  47) #define MPT_DEBUG_INIT			0x00000020
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  48) #define MPT_DEBUG_EXIT			0x00000040
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  49) #define MPT_DEBUG_FAIL			0x00000080
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  50) #define MPT_DEBUG_TM			0x00000100
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  51) #define MPT_DEBUG_DV			0x00000200
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  52) #define MPT_DEBUG_REPLY			0x00000400
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  53) #define MPT_DEBUG_HANDSHAKE		0x00000800
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  54) #define MPT_DEBUG_CONFIG		0x00001000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  55) #define MPT_DEBUG_DL			0x00002000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  56) #define MPT_DEBUG_RESET			0x00008000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  57) #define MPT_DEBUG_SCSI			0x00010000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  58) #define MPT_DEBUG_IOCTL			0x00020000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  59) #define MPT_DEBUG_FC			0x00080000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  60) #define MPT_DEBUG_SAS			0x00100000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  61) #define MPT_DEBUG_SAS_WIDE		0x00200000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  62) #define MPT_DEBUG_36GB_MEM              0x00400000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  63) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  64) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  65)  * CONFIG_FUSION_LOGGING - enabled in Kconfig
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  66)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  67) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  68) #ifdef CONFIG_FUSION_LOGGING
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  69) #define MPT_CHECK_LOGGING(IOC, CMD, BITS)			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  70) {								\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  71) 	if (IOC->debug_level & BITS)				\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  72) 		CMD;						\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  73) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  74) #else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  75) #define MPT_CHECK_LOGGING(IOC, CMD, BITS)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  76) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  77) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  78) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  79) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  80)  * debug macros
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  81)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  82) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  83) #define dprintk(IOC, CMD)			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  84) 	MPT_CHECK_LOGGING(IOC, CMD, MPT_DEBUG)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  85) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  86) #define dsgprintk(IOC, CMD)			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  87) 	MPT_CHECK_LOGGING(IOC, CMD, MPT_DEBUG_SG)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  88) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  89) #define devtprintk(IOC, CMD)			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  90) 	MPT_CHECK_LOGGING(IOC, CMD, MPT_DEBUG_EVENTS)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  91) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  92) #define devtverboseprintk(IOC, CMD)		\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  93) 	MPT_CHECK_LOGGING(IOC, CMD, MPT_DEBUG_VERBOSE_EVENTS)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  94) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  95) #define dinitprintk(IOC, CMD)			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  96) 	MPT_CHECK_LOGGING(IOC, CMD, MPT_DEBUG_INIT)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  97) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  98) #define dexitprintk(IOC, CMD)			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  99) 	MPT_CHECK_LOGGING(IOC, CMD, MPT_DEBUG_EXIT)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) #define dfailprintk(IOC, CMD)			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) 	MPT_CHECK_LOGGING(IOC, CMD, MPT_DEBUG_FAIL)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) #define dtmprintk(IOC, CMD)			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) 	MPT_CHECK_LOGGING(IOC, CMD, MPT_DEBUG_TM)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) #define ddvprintk(IOC, CMD)			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) 	MPT_CHECK_LOGGING(IOC, CMD, MPT_DEBUG_DV)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) #define dreplyprintk(IOC, CMD)			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) 	MPT_CHECK_LOGGING(IOC, CMD, MPT_DEBUG_REPLY)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) #define dhsprintk(IOC, CMD)			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) 	MPT_CHECK_LOGGING(IOC, CMD, MPT_DEBUG_HANDSHAKE)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) #define dcprintk(IOC, CMD)			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) 	MPT_CHECK_LOGGING(IOC, CMD, MPT_DEBUG_CONFIG)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) #define ddlprintk(IOC, CMD)			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) 	MPT_CHECK_LOGGING(IOC, CMD, MPT_DEBUG_DL)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) #define drsprintk(IOC, CMD)			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) 	MPT_CHECK_LOGGING(IOC, CMD, MPT_DEBUG_RESET)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) #define dsprintk(IOC, CMD)			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) 	MPT_CHECK_LOGGING(IOC, CMD, MPT_DEBUG_SCSI)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) #define dctlprintk(IOC, CMD)			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) 	MPT_CHECK_LOGGING(IOC, CMD, MPT_DEBUG_IOCTL)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) #define dfcprintk(IOC, CMD)			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) 	MPT_CHECK_LOGGING(IOC, CMD, MPT_DEBUG_FC)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) #define dsasprintk(IOC, CMD)			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) 	MPT_CHECK_LOGGING(IOC, CMD, MPT_DEBUG_SAS)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) #define dsaswideprintk(IOC, CMD)		\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) 	MPT_CHECK_LOGGING(IOC, CMD, MPT_DEBUG_SAS_WIDE)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) #define d36memprintk(IOC, CMD)		\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) 	MPT_CHECK_LOGGING(IOC, CMD, MPT_DEBUG_36GB_MEM)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145)  * Verbose logging
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) #if defined(MPT_DEBUG_VERBOSE) && defined(CONFIG_FUSION_LOGGING)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) static inline void
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) DBG_DUMP_FW_DOWNLOAD(MPT_ADAPTER *ioc, u32  *mfp, int numfrags)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) 	int i;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) 	if (!(ioc->debug_level & MPT_DEBUG))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) 		return;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) 	printk(KERN_DEBUG "F/W download request:\n");
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) 	for (i=0; i < 7+numfrags*2; i++)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) 		printk(" %08x", le32_to_cpu(mfp[i]));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) 	printk("\n");
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) static inline void
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) DBG_DUMP_PUT_MSG_FRAME(MPT_ADAPTER *ioc, u32 *mfp)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) 	int	 ii, n;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) 	if (!(ioc->debug_level & MPT_DEBUG_MSG_FRAME))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) 		return;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) 	printk(KERN_DEBUG "%s: About to Put msg frame @ %p:\n",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) 		ioc->name, mfp);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) 	n = ioc->req_sz/4 - 1;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) 	while (mfp[n] == 0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) 		n--;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) 	for (ii=0; ii<=n; ii++) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) 		if (ii && ((ii%8)==0))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) 			printk("\n");
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) 		printk(" %08x", le32_to_cpu(mfp[ii]));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) 	}
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) 	printk("\n");
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) static inline void
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) DBG_DUMP_FW_REQUEST_FRAME(MPT_ADAPTER *ioc, u32 *mfp)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) 	int  i, n;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186) 	if (!(ioc->debug_level & MPT_DEBUG_MSG_FRAME))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) 		return;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) 	n = 10;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) 	printk(KERN_INFO " ");
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) 	for (i = 0; i < n; i++)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) 		printk(" %08x", le32_to_cpu(mfp[i]));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) 	printk("\n");
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) static inline void
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196) DBG_DUMP_REQUEST_FRAME(MPT_ADAPTER *ioc, u32 *mfp)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198) 	int  i, n;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) 	if (!(ioc->debug_level & MPT_DEBUG_MSG_FRAME))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) 		return;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202) 	n = 24;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203) 	for (i=0; i<n; i++) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204) 		if (i && ((i%8)==0))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205) 			printk("\n");
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206) 		printk("%08x ", le32_to_cpu(mfp[i]));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207) 	}
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208) 	printk("\n");
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211) static inline void
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212) DBG_DUMP_REPLY_FRAME(MPT_ADAPTER *ioc, u32 *mfp)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214) 	int  i, n;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216) 	if (!(ioc->debug_level & MPT_DEBUG_MSG_FRAME))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217) 		return;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218) 	n = (le32_to_cpu(mfp[0]) & 0x00FF0000) >> 16;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219) 	printk(KERN_INFO " ");
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220) 	for (i=0; i<n; i++)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221) 		printk(" %08x", le32_to_cpu(mfp[i]));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222) 	printk("\n");
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225) static inline void
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226) DBG_DUMP_REQUEST_FRAME_HDR(MPT_ADAPTER *ioc, u32 *mfp)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228) 	int  i, n;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230) 	if (!(ioc->debug_level & MPT_DEBUG_MSG_FRAME))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231) 		return;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232) 	n = 3;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233) 	printk(KERN_INFO " ");
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234) 	for (i=0; i<n; i++)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235) 		printk(" %08x", le32_to_cpu(mfp[i]));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236) 	printk("\n");
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239) static inline void
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240) DBG_DUMP_TM_REQUEST_FRAME(MPT_ADAPTER *ioc, u32 *mfp)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242) 	int  i, n;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 243) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 244) 	if (!(ioc->debug_level & MPT_DEBUG_TM))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 245) 		return;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 246) 	n = 13;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 247) 	printk(KERN_DEBUG "TM_REQUEST:\n");
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 248) 	for (i=0; i<n; i++) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 249) 		if (i && ((i%8)==0))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 250) 			printk("\n");
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 251) 		printk("%08x ", le32_to_cpu(mfp[i]));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 252) 	}
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 253) 	printk("\n");
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 254) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 255) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 256) static inline void
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 257) DBG_DUMP_TM_REPLY_FRAME(MPT_ADAPTER *ioc, u32 *mfp)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 258) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 259) 	int  i, n;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 260) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 261) 	if (!(ioc->debug_level & MPT_DEBUG_TM))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 262) 		return;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 263) 	n = (le32_to_cpu(mfp[0]) & 0x00FF0000) >> 16;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 264) 	printk(KERN_DEBUG "TM_REPLY MessageLength=%d:\n", n);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 265) 	for (i=0; i<n; i++) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 266) 		if (i && ((i%8)==0))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 267) 			printk("\n");
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 268) 		printk(" %08x", le32_to_cpu(mfp[i]));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 269) 	}
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 270) 	printk("\n");
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 271) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 272) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 273) #define dmfprintk(IOC, CMD)			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 274) 	MPT_CHECK_LOGGING(IOC, CMD, MPT_DEBUG_MSG_FRAME)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 275) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 276) # else /* ifdef MPT_DEBUG_MF */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 277) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 278) #define DBG_DUMP_FW_DOWNLOAD(IOC, mfp, numfrags)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 279) #define DBG_DUMP_PUT_MSG_FRAME(IOC, mfp)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 280) #define DBG_DUMP_FW_REQUEST_FRAME(IOC, mfp)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 281) #define DBG_DUMP_REQUEST_FRAME(IOC, mfp)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 282) #define DBG_DUMP_REPLY_FRAME(IOC, mfp)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 283) #define DBG_DUMP_REQUEST_FRAME_HDR(IOC, mfp)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 284) #define DBG_DUMP_TM_REQUEST_FRAME(IOC, mfp)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 285) #define DBG_DUMP_TM_REPLY_FRAME(IOC, mfp)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 286) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 287) #define dmfprintk(IOC, CMD)			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 288) 	MPT_CHECK_LOGGING(IOC, CMD, MPT_DEBUG_MSG_FRAME)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 289) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 290) #endif /* defined(MPT_DEBUG_VERBOSE) && defined(CONFIG_FUSION_LOGGING) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 291) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 292) #endif /* ifndef MPTDEBUG_H_INCLUDED */