mptdebug.h revision 5c1b91b9923d1b3d33576e391ff7b587bdff7a3e
15c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya/*
25c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya *  linux/drivers/message/fusion/mptdebug.h
35c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya *      For use with LSI PCI chip/adapter(s)
45c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya *      running LSI Fusion MPT (Message Passing Technology) firmware.
55c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya *
65c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya *  Copyright (c) 1999-2007 LSI Corporation
75c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya *  (mailto:DL-MPTFusionLinux@lsi.com)
85c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya *
95c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya */
105c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
115c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya
125c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya#ifndef MPTDEBUG_H_INCLUDED
135c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya#define MPTDEBUG_H_INCLUDED
145c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya
155c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya/*
165c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya * debug level can be programmed on the fly via SysFS (hex values)
175c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya *
185c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya * Example:  (programming for MPT_DEBUG_EVENTS on host 5)
195c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya *
205c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya * echo 8 > /sys/class/scsi_host/host5/debug_level
215c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya *
225c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya * --------------------------------------------------------
235c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya * mpt_debug_level - command line parameter
245c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya * this allow enabling debug at driver load time (for all iocs)
255c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya *
265c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya * Example  (programming for MPT_DEBUG_EVENTS)
275c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya *
285c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya * insmod mptbase.ko mpt_debug_level=8
295c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya *
305c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya * --------------------------------------------------------
315c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya * CONFIG_FUSION_LOGGING - enables compiling debug into driver
325c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya * this can be enabled in the driver Makefile
335c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya *
345c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya *
355c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya * --------------------------------------------------------
365c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya * Please note most debug prints are set to logging priority = debug
375c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya * This is the lowest level, and most verbose.  Please refer to manual
385c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya * pages for syslogd or syslogd-ng on how to configure this.
395c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya */
405c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya
415c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya#define MPT_DEBUG			0x00000001
425c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya#define MPT_DEBUG_MSG_FRAME		0x00000002
435c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya#define MPT_DEBUG_SG			0x00000004
445c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya#define MPT_DEBUG_EVENTS		0x00000008
455c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya#define MPT_DEBUG_VERBOSE_EVENTS	0x00000010
465c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya#define MPT_DEBUG_INIT			0x00000020
475c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya#define MPT_DEBUG_EXIT			0x00000040
485c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya#define MPT_DEBUG_FAIL			0x00000080
495c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya#define MPT_DEBUG_TM			0x00000100
505c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya#define MPT_DEBUG_DV			0x00000200
515c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya#define MPT_DEBUG_REPLY			0x00000400
525c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya#define MPT_DEBUG_HANDSHAKE		0x00000800
535c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya#define MPT_DEBUG_CONFIG		0x00001000
545c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya#define MPT_DEBUG_DL			0x00002000
555c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya#define MPT_DEBUG_RESET			0x00008000
565c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya#define MPT_DEBUG_SCSI			0x00010000
575c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya#define MPT_DEBUG_IOCTL			0x00020000
585c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya#define MPT_DEBUG_FC			0x00080000
595c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya#define MPT_DEBUG_SAS			0x00100000
605c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya#define MPT_DEBUG_SAS_WIDE		0x00200000
615c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya
625c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya/*
635c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya * CONFIG_FUSION_LOGGING - enabled in Kconfig
645c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya */
655c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya
665c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya#ifdef CONFIG_FUSION_LOGGING
675c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya#define MPT_CHECK_LOGGING(IOC, CMD, BITS)			\
685c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya{								\
695c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	if (IOC->debug_level & BITS)				\
705c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya		CMD;						\
715c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya}
725c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya#else
735c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya#define MPT_CHECK_LOGGING(IOC, CMD, BITS)
745c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya#endif
755c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya
765c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya
775c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya/*
785c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya * debug macros
795c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya */
805c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya
815c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya#define dprintk(IOC, CMD)			\
825c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	MPT_CHECK_LOGGING(IOC, CMD, MPT_DEBUG)
835c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya
845c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya#define dsgprintk(IOC, CMD)			\
855c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	MPT_CHECK_LOGGING(IOC, CMD, MPT_DEBUG_SG)
865c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya
875c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya#define devtprintk(IOC, CMD)			\
885c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	MPT_CHECK_LOGGING(IOC, CMD, MPT_DEBUG_EVENTS)
895c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya
905c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya#define devtverboseprintk(IOC, CMD)		\
915c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	MPT_CHECK_LOGGING(IOC, CMD, MPT_DEBUG_VERBOSE_EVENTS)
925c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya
935c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya#define dinitprintk(IOC, CMD)			\
945c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	MPT_CHECK_LOGGING(IOC, CMD, MPT_DEBUG_INIT)
955c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya
965c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya#define dexitprintk(IOC, CMD)			\
975c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	MPT_CHECK_LOGGING(IOC, CMD, MPT_DEBUG_EXIT)
985c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya
995c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya#define dfailprintk(IOC, CMD)			\
1005c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	MPT_CHECK_LOGGING(IOC, CMD, MPT_DEBUG_FAIL)
1015c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya
1025c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya#define dtmprintk(IOC, CMD)			\
1035c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	MPT_CHECK_LOGGING(IOC, CMD, MPT_DEBUG_TM)
1045c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya
1055c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya#define ddvprintk(IOC, CMD)			\
1065c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	MPT_CHECK_LOGGING(IOC, CMD, MPT_DEBUG_DV)
1075c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya
1085c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya#define dreplyprintk(IOC, CMD)			\
1095c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	MPT_CHECK_LOGGING(IOC, CMD, MPT_DEBUG_REPLY)
1105c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya
1115c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya#define dhsprintk(IOC, CMD)			\
1125c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	MPT_CHECK_LOGGING(IOC, CMD, MPT_DEBUG_HANDSHAKE)
1135c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya
1145c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya#define dcprintk(IOC, CMD)			\
1155c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	MPT_CHECK_LOGGING(IOC, CMD, MPT_DEBUG_CONFIG)
1165c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya
1175c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya#define ddlprintk(IOC, CMD)			\
1185c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	MPT_CHECK_LOGGING(IOC, CMD, MPT_DEBUG_DL)
1195c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya
1205c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya#define drsprintk(IOC, CMD)			\
1215c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	MPT_CHECK_LOGGING(IOC, CMD, MPT_DEBUG_RESET)
1225c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya
1235c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya#define dsprintk(IOC, CMD)			\
1245c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	MPT_CHECK_LOGGING(IOC, CMD, MPT_DEBUG_SCSI)
1255c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya
1265c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya#define dctlprintk(IOC, CMD)			\
1275c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	MPT_CHECK_LOGGING(IOC, CMD, MPT_DEBUG_IOCTL)
1285c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya
1295c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya#define dfcprintk(IOC, CMD)			\
1305c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	MPT_CHECK_LOGGING(IOC, CMD, MPT_DEBUG_FC)
1315c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya
1325c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya#define dsasprintk(IOC, CMD)			\
1335c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	MPT_CHECK_LOGGING(IOC, CMD, MPT_DEBUG_SAS)
1345c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya
1355c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya#define dsaswideprintk(IOC, CMD)		\
1365c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	MPT_CHECK_LOGGING(IOC, CMD, MPT_DEBUG_SAS_WIDE)
1375c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya
1385c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya
1395c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya
1405c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya/*
1415c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya * Verbose logging
1425c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya */
1435c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya#if defined(MPT_DEBUG_VERBOSE) && defined(CONFIG_FUSION_LOGGING)
1445c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathyastatic inline void
1455c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, SathyaDBG_DUMP_FW_DOWNLOAD(MPT_ADAPTER *ioc, u32  *mfp, int numfrags)
1465c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya{
1475c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	int i;
1485c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya
1495c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	if (!(ioc->debug_level & MPT_DEBUG))
1505c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya		return;
1515c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	printk(KERN_DEBUG "F/W download request:\n");
1525c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	for (i=0; i < 7+numfrags*2; i++)
1535c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya		printk(" %08x", le32_to_cpu(mfp[i]));
1545c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	printk("\n");
1555c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya}
1565c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya
1575c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathyastatic inline void
1585c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, SathyaDBG_DUMP_PUT_MSG_FRAME(MPT_ADAPTER *ioc, u32 *mfp)
1595c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya{
1605c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	int	 ii, n;
1615c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya
1625c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	if (!(ioc->debug_level & MPT_DEBUG_MSG_FRAME))
1635c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya		return;
1645c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	printk(KERN_DEBUG "%s: About to Put msg frame @ %p:\n",
1655c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya		ioc->name, mfp);
1665c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	n = ioc->req_sz/4 - 1;
1675c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	while (mfp[n] == 0)
1685c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya		n--;
1695c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	for (ii=0; ii<=n; ii++) {
1705c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya		if (ii && ((ii%8)==0))
1715c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya			printk("\n");
1725c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya		printk(" %08x", le32_to_cpu(mfp[ii]));
1735c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	}
1745c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	printk("\n");
1755c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya}
1765c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya
1775c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathyastatic inline void
1785c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, SathyaDBG_DUMP_FW_REQUEST_FRAME(MPT_ADAPTER *ioc, u32 *mfp)
1795c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya{
1805c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	int  i, n;
1815c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya
1825c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	if (!(ioc->debug_level & MPT_DEBUG_MSG_FRAME))
1835c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya		return;
1845c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	n = 10;
1855c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	printk(KERN_INFO " ");
1865c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	for (i = 0; i < n; i++)
1875c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya		printk(" %08x", le32_to_cpu(mfp[i]));
1885c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	printk("\n");
1895c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya}
1905c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya
1915c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathyastatic inline void
1925c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, SathyaDBG_DUMP_REQUEST_FRAME(MPT_ADAPTER *ioc, u32 *mfp)
1935c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya{
1945c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	int  i, n;
1955c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya
1965c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	if (!(ioc->debug_level & MPT_DEBUG_MSG_FRAME))
1975c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya		return;
1985c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	n = 24;
1995c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	for (i=0; i<n; i++) {
2005c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya		if (i && ((i%8)==0))
2015c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya			printk("\n");
2025c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya		printk("%08x ", le32_to_cpu(mfp[i]));
2035c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	}
2045c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	printk("\n");
2055c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya}
2065c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya
2075c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathyastatic inline void
2085c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, SathyaDBG_DUMP_REPLY_FRAME(MPT_ADAPTER *ioc, u32 *mfp)
2095c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya{
2105c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	int  i, n;
2115c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya
2125c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	if (!(ioc->debug_level & MPT_DEBUG_MSG_FRAME))
2135c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya		return;
2145c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	n = (le32_to_cpu(mfp[0]) & 0x00FF0000) >> 16;
2155c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	printk(KERN_INFO " ");
2165c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	for (i=0; i<n; i++)
2175c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya		printk(" %08x", le32_to_cpu(mfp[i]));
2185c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	printk("\n");
2195c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya}
2205c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya
2215c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathyastatic inline void
2225c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, SathyaDBG_DUMP_REQUEST_FRAME_HDR(MPT_ADAPTER *ioc, u32 *mfp)
2235c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya{
2245c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	int  i, n;
2255c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya
2265c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	if (!(ioc->debug_level & MPT_DEBUG_MSG_FRAME))
2275c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya		return;
2285c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	n = 3;
2295c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	printk(KERN_INFO " ");
2305c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	for (i=0; i<n; i++)
2315c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya		printk(" %08x", le32_to_cpu(mfp[i]));
2325c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	printk("\n");
2335c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya}
2345c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya
2355c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathyastatic inline void
2365c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, SathyaDBG_DUMP_TM_REQUEST_FRAME(MPT_ADAPTER *ioc, u32 *mfp)
2375c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya{
2385c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	int  i, n;
2395c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya
2405c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	if (!(ioc->debug_level & MPT_DEBUG_TM))
2415c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya		return;
2425c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	n = 13;
2435c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	printk(KERN_DEBUG "TM_REQUEST:\n");
2445c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	for (i=0; i<n; i++) {
2455c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya		if (i && ((i%8)==0))
2465c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya			printk("\n");
2475c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya		printk("%08x ", le32_to_cpu(mfp[i]));
2485c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	}
2495c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	printk("\n");
2505c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya}
2515c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya
2525c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathyastatic inline void
2535c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, SathyaDBG_DUMP_TM_REPLY_FRAME(MPT_ADAPTER *ioc, u32 *mfp)
2545c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya{
2555c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	int  i, n;
2565c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya
2575c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	if (!(ioc->debug_level & MPT_DEBUG_TM))
2585c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya		return;
2595c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	n = (le32_to_cpu(mfp[0]) & 0x00FF0000) >> 16;
2605c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	printk(KERN_DEBUG "TM_REPLY MessageLength=%d:\n", n);
2615c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	for (i=0; i<n; i++) {
2625c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya		if (i && ((i%8)==0))
2635c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya			printk("\n");
2645c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya		printk(" %08x", le32_to_cpu(mfp[i]));
2655c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	}
2665c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	printk("\n");
2675c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya}
2685c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya
2695c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya#define dmfprintk(IOC, CMD)			\
2705c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	MPT_CHECK_LOGGING(IOC, CMD, MPT_DEBUG_MSG_FRAME)
2715c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya
2725c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya# else /* ifdef MPT_DEBUG_MF */
2735c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya
2745c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya#define DBG_DUMP_FW_DOWNLOAD(IOC, mfp, numfrags)
2755c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya#define DBG_DUMP_PUT_MSG_FRAME(IOC, mfp)
2765c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya#define DBG_DUMP_FW_REQUEST_FRAME(IOC, mfp)
2775c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya#define DBG_DUMP_REQUEST_FRAME(IOC, mfp)
2785c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya#define DBG_DUMP_REPLY_FRAME(IOC, mfp)
2795c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya#define DBG_DUMP_REQUEST_FRAME_HDR(IOC, mfp)
2805c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya#define DBG_DUMP_TM_REQUEST_FRAME(IOC, mfp)
2815c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya#define DBG_DUMP_TM_REPLY_FRAME(IOC, mfp)
2825c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya
2835c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya#define dmfprintk(IOC, CMD)			\
2845c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya	MPT_CHECK_LOGGING(IOC, CMD, MPT_DEBUG_MSG_FRAME)
2855c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya
2865c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya#endif /* defined(MPT_DEBUG_VERBOSE) && defined(CONFIG_FUSION_LOGGING) */
2875c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya
2885c1b91b9923d1b3d33576e391ff7b587bdff7a3ePrakash, Sathya#endif /* ifndef MPTDEBUG_H_INCLUDED */
289