Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bfd60579 authored by Randy Dunlap's avatar Randy Dunlap Committed by Jeff Garzik
Browse files

From: Borislav Petkov <petkov@uni-muenster.de>



libata new debugging macro definitions

Signed-off-by: default avatarBorislav Petkov <petkov@uni-muenster.de>
Signed-off-by: default avatarRandy Dunlap <randy_d_dunlap@linux.intel.com>
parent 2664b250
Loading
Loading
Loading
Loading
+45 −7
Original line number Original line Diff line number Diff line
@@ -35,7 +35,8 @@
#include <linux/workqueue.h>
#include <linux/workqueue.h>


/*
/*
 * compile-time options
 * compile-time options: to be removed as soon as all the drivers are
 * converted to the new debugging mechanism
 */
 */
#undef ATA_DEBUG		/* debugging output */
#undef ATA_DEBUG		/* debugging output */
#undef ATA_VERBOSE_DEBUG	/* yet more debugging output */
#undef ATA_VERBOSE_DEBUG	/* yet more debugging output */
@@ -71,6 +72,38 @@
        }
        }
#endif
#endif


/* NEW: debug levels */
#define HAVE_LIBATA_MSG 1

enum {
	ATA_MSG_DRV	= 0x0001,
	ATA_MSG_INFO	= 0x0002,
	ATA_MSG_PROBE	= 0x0004,
	ATA_MSG_WARN	= 0x0008,
	ATA_MSG_MALLOC	= 0x0010,
	ATA_MSG_CTL	= 0x0020,
	ATA_MSG_INTR	= 0x0040,
	ATA_MSG_ERR	= 0x0080,
};

#define ata_msg_drv(p)    ((p)->msg_enable & ATA_MSG_DRV)
#define ata_msg_info(p)   ((p)->msg_enable & ATA_MSG_INFO)
#define ata_msg_probe(p)  ((p)->msg_enable & ATA_MSG_PROBE)
#define ata_msg_warn(p)   ((p)->msg_enable & ATA_MSG_WARN)
#define ata_msg_malloc(p) ((p)->msg_enable & ATA_MSG_MALLOC)
#define ata_msg_ctl(p)    ((p)->msg_enable & ATA_MSG_CTL)
#define ata_msg_intr(p)   ((p)->msg_enable & ATA_MSG_INTR)
#define ata_msg_err(p)    ((p)->msg_enable & ATA_MSG_ERR)

static inline u32 ata_msg_init(int dval, int default_msg_enable_bits)
{
	if (dval < 0 || dval >= (sizeof(u32) * 8))
		return default_msg_enable_bits; /* should be 0x1 - only driver info msgs */
	if (!dval)
		return 0;
	return (1 << dval) - 1;
}

/* defines only for the constants which don't work well as enums */
/* defines only for the constants which don't work well as enums */
#define ATA_TAG_POISON		0xfafbfcfdU
#define ATA_TAG_POISON		0xfafbfcfdU


@@ -356,6 +389,8 @@ struct ata_port {
	unsigned int		hsm_task_state;
	unsigned int		hsm_task_state;
	unsigned long		pio_task_timeout;
	unsigned long		pio_task_timeout;


	u32			msg_enable;

	void			*private_data;
	void			*private_data;
};
};


@@ -640,8 +675,8 @@ static inline u8 ata_wait_idle(struct ata_port *ap)


	if (status & (ATA_BUSY | ATA_DRQ)) {
	if (status & (ATA_BUSY | ATA_DRQ)) {
		unsigned long l = ap->ioaddr.status_addr;
		unsigned long l = ap->ioaddr.status_addr;
		printk(KERN_WARNING
		if (ata_msg_warn(ap))
		       "ATA: abnormal status 0x%X on port 0x%lX\n",
			printk(KERN_WARNING "ATA: abnormal status 0x%X on port 0x%lX\n",
				status, l);
				status, l);
	}
	}


@@ -734,7 +769,8 @@ static inline u8 ata_irq_ack(struct ata_port *ap, unsigned int chk_drq)


	status = ata_busy_wait(ap, bits, 1000);
	status = ata_busy_wait(ap, bits, 1000);
	if (status & bits)
	if (status & bits)
		DPRINTK("abnormal status 0x%X\n", status);
		if (ata_msg_err(ap))
			printk(KERN_ERR "abnormal status 0x%X\n", status);


	/* get controller status; clear intr, err bits */
	/* get controller status; clear intr, err bits */
	if (ap->flags & ATA_FLAG_MMIO) {
	if (ap->flags & ATA_FLAG_MMIO) {
@@ -752,7 +788,9 @@ static inline u8 ata_irq_ack(struct ata_port *ap, unsigned int chk_drq)
		post_stat = inb(ap->ioaddr.bmdma_addr + ATA_DMA_STATUS);
		post_stat = inb(ap->ioaddr.bmdma_addr + ATA_DMA_STATUS);
	}
	}


	VPRINTK("irq ack: host_stat 0x%X, new host_stat 0x%X, drv_stat 0x%X\n",
	if (ata_msg_intr(ap))
		printk(KERN_INFO "%s: irq ack: host_stat 0x%X, new host_stat 0x%X, drv_stat 0x%X\n",
			__FUNCTION__,
			host_stat, post_stat, status);
			host_stat, post_stat, status);


	return status;
	return status;