Commit 6354cc95 authored by Takashi Sakamoto's avatar Takashi Sakamoto
Browse files

firewire: ohci: remove obsolete debug logging for AT/AR results

Between v6.11 and v6.12, a set of tracepoints was added to record
asynchronous communication events:

- firewire:async_phy_inbound
- firewire:async_phy_outbound_initiate
- firewire:async_phy_outbound_complete
- firewire:async_response_inbound
- firewire:async_response_outbound_initiate
- firewire:async_response_outbound_complete
- firewire:async_request_inbound
- firewire:async_request_outbound_initiate
- firewire:async_request_outbound_complete

These tracepoints cover the functionality of the existing debug logging.
This commit removes the logging.

Link: https://lore.kernel.org/r/20250821003017.186752-4-o-takashi@sakamocchi.jp


Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
parent c579f1fe
Loading
Loading
Loading
Loading
+19 −113
Original line number Diff line number Diff line
@@ -393,123 +393,15 @@ MODULE_PARM_DESC(quirks, "Chip quirks (default = 0"
	", IR wake unreliable = "	__stringify(QUIRK_IR_WAKE)
	")");

#define OHCI_PARAM_DEBUG_AT_AR		1

static int param_debug;
module_param_named(debug, param_debug, int, 0644);
MODULE_PARM_DESC(debug, "Verbose logging, deprecated in v6.11 kernel or later. (default = 0"
	", AT/AR events = "	__stringify(OHCI_PARAM_DEBUG_AT_AR)
	", or a combination, or all = -1)");

static bool param_remote_dma;
module_param_named(remote_dma, param_remote_dma, bool, 0444);
MODULE_PARM_DESC(remote_dma, "Enable unfiltered remote DMA (default = N)");

static const char *evts[] = {
	[0x00] = "evt_no_status",	[0x01] = "-reserved-",
	[0x02] = "evt_long_packet",	[0x03] = "evt_missing_ack",
	[0x04] = "evt_underrun",	[0x05] = "evt_overrun",
	[0x06] = "evt_descriptor_read",	[0x07] = "evt_data_read",
	[0x08] = "evt_data_write",	[0x09] = "evt_bus_reset",
	[0x0a] = "evt_timeout",		[0x0b] = "evt_tcode_err",
	[0x0c] = "-reserved-",		[0x0d] = "-reserved-",
	[0x0e] = "evt_unknown",		[0x0f] = "evt_flushed",
	[0x10] = "-reserved-",		[0x11] = "ack_complete",
	[0x12] = "ack_pending ",	[0x13] = "-reserved-",
	[0x14] = "ack_busy_X",		[0x15] = "ack_busy_A",
	[0x16] = "ack_busy_B",		[0x17] = "-reserved-",
	[0x18] = "-reserved-",		[0x19] = "-reserved-",
	[0x1a] = "-reserved-",		[0x1b] = "ack_tardy",
	[0x1c] = "-reserved-",		[0x1d] = "ack_data_error",
	[0x1e] = "ack_type_error",	[0x1f] = "-reserved-",
	[0x20] = "pending/cancelled",
};

static void log_ar_at_event(struct fw_ohci *ohci,
			    char dir, int speed, u32 *header, int evt)
{
	static const char *const tcodes[] = {
		[TCODE_WRITE_QUADLET_REQUEST]	= "QW req",
		[TCODE_WRITE_BLOCK_REQUEST]	= "BW req",
		[TCODE_WRITE_RESPONSE]		= "W resp",
		[0x3]				= "-reserved-",
		[TCODE_READ_QUADLET_REQUEST]	= "QR req",
		[TCODE_READ_BLOCK_REQUEST]	= "BR req",
		[TCODE_READ_QUADLET_RESPONSE]	= "QR resp",
		[TCODE_READ_BLOCK_RESPONSE]	= "BR resp",
		[TCODE_CYCLE_START]		= "cycle start",
		[TCODE_LOCK_REQUEST]		= "Lk req",
		[TCODE_STREAM_DATA]		= "async stream packet",
		[TCODE_LOCK_RESPONSE]		= "Lk resp",
		[0xc]				= "-reserved-",
		[0xd]				= "-reserved-",
		[TCODE_LINK_INTERNAL]		= "link internal",
		[0xf]				= "-reserved-",
	};
	int tcode = async_header_get_tcode(header);
	char specific[12];

	if (likely(!(param_debug & OHCI_PARAM_DEBUG_AT_AR)))
		return;

	if (unlikely(evt >= ARRAY_SIZE(evts)))
		evt = 0x1f;

	if (evt == OHCI1394_evt_bus_reset) {
		ohci_notice(ohci, "A%c evt_bus_reset, generation %d\n",
			    dir, (header[2] >> 16) & 0xff);
		return;
	}

	switch (tcode) {
	case TCODE_WRITE_QUADLET_REQUEST:
	case TCODE_READ_QUADLET_RESPONSE:
	case TCODE_CYCLE_START:
		snprintf(specific, sizeof(specific), " = %08x",
			 be32_to_cpu((__force __be32)header[3]));
		break;
	case TCODE_WRITE_BLOCK_REQUEST:
	case TCODE_READ_BLOCK_REQUEST:
	case TCODE_READ_BLOCK_RESPONSE:
	case TCODE_LOCK_REQUEST:
	case TCODE_LOCK_RESPONSE:
		snprintf(specific, sizeof(specific), " %x,%x",
			 async_header_get_data_length(header),
			 async_header_get_extended_tcode(header));
		break;
	default:
		specific[0] = '\0';
	}

	switch (tcode) {
	case TCODE_STREAM_DATA:
		ohci_notice(ohci, "A%c %s, %s\n",
			    dir, evts[evt], tcodes[tcode]);
		break;
	case TCODE_LINK_INTERNAL:
		ohci_notice(ohci, "A%c %s, PHY %08x %08x\n",
			    dir, evts[evt], header[1], header[2]);
		break;
	case TCODE_WRITE_QUADLET_REQUEST:
	case TCODE_WRITE_BLOCK_REQUEST:
	case TCODE_READ_QUADLET_REQUEST:
	case TCODE_READ_BLOCK_REQUEST:
	case TCODE_LOCK_REQUEST:
		ohci_notice(ohci,
			    "A%c spd %x tl %02x, %04x -> %04x, %s, %s, %012llx%s\n",
			    dir, speed, async_header_get_tlabel(header),
			    async_header_get_source(header), async_header_get_destination(header),
			    evts[evt], tcodes[tcode], async_header_get_offset(header), specific);
		break;
	default:
		ohci_notice(ohci,
			    "A%c spd %x tl %02x, %04x -> %04x, %s, %s%s\n",
			    dir, speed, async_header_get_tlabel(header),
			    async_header_get_source(header), async_header_get_destination(header),
			    evts[evt], tcodes[tcode], specific);
	}
}

static inline void reg_write(const struct fw_ohci *ohci, int offset, u32 data)
{
	writel(data, ohci->registers + offset);
@@ -855,8 +747,6 @@ static __le32 *handle_ar_packet(struct ar_context *ctx, __le32 *buffer)
	p.timestamp  = status & 0xffff;
	p.generation = ohci->request_generation;

	log_ar_at_event(ohci, 'R', p.speed, p.header, evt);

	/*
	 * Several controllers, notably from NEC and VIA, forget to
	 * write ack_complete status at PHY packet reception.
@@ -1464,8 +1354,6 @@ static int handle_at_packet(struct context *context,
	evt = le16_to_cpu(last->transfer_status) & 0x1f;
	packet->timestamp = le16_to_cpu(last->res_count);

	log_ar_at_event(ohci, 'T', packet->speed, packet->header, evt);

	switch (evt) {
	case OHCI1394_evt_timeout:
		/* Async response transmit timed out. */
@@ -1670,6 +1558,25 @@ static void at_context_transmit(struct at_context *ctx, struct fw_packet *packet
static void detect_dead_context(struct fw_ohci *ohci,
				const char *name, unsigned int regs)
{
	static const char *const evts[] = {
		[0x00] = "evt_no_status",	[0x01] = "-reserved-",
		[0x02] = "evt_long_packet",	[0x03] = "evt_missing_ack",
		[0x04] = "evt_underrun",	[0x05] = "evt_overrun",
		[0x06] = "evt_descriptor_read",	[0x07] = "evt_data_read",
		[0x08] = "evt_data_write",	[0x09] = "evt_bus_reset",
		[0x0a] = "evt_timeout",		[0x0b] = "evt_tcode_err",
		[0x0c] = "-reserved-",		[0x0d] = "-reserved-",
		[0x0e] = "evt_unknown",		[0x0f] = "evt_flushed",
		[0x10] = "-reserved-",		[0x11] = "ack_complete",
		[0x12] = "ack_pending ",	[0x13] = "-reserved-",
		[0x14] = "ack_busy_X",		[0x15] = "ack_busy_A",
		[0x16] = "ack_busy_B",		[0x17] = "-reserved-",
		[0x18] = "-reserved-",		[0x19] = "-reserved-",
		[0x1a] = "-reserved-",		[0x1b] = "ack_tardy",
		[0x1c] = "-reserved-",		[0x1d] = "ack_data_error",
		[0x1e] = "ack_type_error",	[0x1f] = "-reserved-",
		[0x20] = "pending/cancelled",
	};
	u32 ctl;

	ctl = reg_read(ohci, CONTROL_SET(regs));
@@ -2601,7 +2508,6 @@ static int ohci_cancel_packet(struct fw_card *card, struct fw_packet *packet)
		dma_unmap_single(ohci->card.device, packet->payload_bus,
				 packet->payload_length, DMA_TO_DEVICE);

	log_ar_at_event(ohci, 'T', packet->speed, packet->header, 0x20);
	driver_data->packet = NULL;
	packet->ack = RCODE_CANCELLED;