Commit 810f2aa8 authored by Takashi Sakamoto's avatar Takashi Sakamoto

firewire: core: record card index in async_phy_outbound_complete tracepoints event

The asynchronous transmission of phy packet is initiated on one of 1394
OHCI controller, however the existing tracepoints events has the lack of
data about it.

This commit adds card_index member into event structure to store the index
of host controller in use, and prints it.

Link: https://lore.kernel.org/r/20240613131440.431766-6-o-takashi@sakamocchi.jpSigned-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
parent 3cb44a72
...@@ -1559,7 +1559,7 @@ static void outbound_phy_packet_callback(struct fw_packet *packet, ...@@ -1559,7 +1559,7 @@ static void outbound_phy_packet_callback(struct fw_packet *packet,
struct client *e_client = e->client; struct client *e_client = e->client;
u32 rcode; u32 rcode;
trace_async_phy_outbound_complete((uintptr_t)packet, status, packet->generation, trace_async_phy_outbound_complete((uintptr_t)packet, card->index, status, packet->generation,
packet->timestamp); packet->timestamp);
switch (status) { switch (status) {
......
...@@ -464,7 +464,7 @@ static DECLARE_COMPLETION(phy_config_done); ...@@ -464,7 +464,7 @@ static DECLARE_COMPLETION(phy_config_done);
static void transmit_phy_packet_callback(struct fw_packet *packet, static void transmit_phy_packet_callback(struct fw_packet *packet,
struct fw_card *card, int status) struct fw_card *card, int status)
{ {
trace_async_phy_outbound_complete((uintptr_t)packet, packet->generation, status, trace_async_phy_outbound_complete((uintptr_t)packet, card->index, packet->generation, status,
packet->timestamp); packet->timestamp);
complete(&phy_config_done); complete(&phy_config_done);
} }
......
...@@ -244,23 +244,26 @@ TRACE_EVENT(async_phy_outbound_initiate, ...@@ -244,23 +244,26 @@ TRACE_EVENT(async_phy_outbound_initiate,
); );
TRACE_EVENT(async_phy_outbound_complete, TRACE_EVENT(async_phy_outbound_complete,
TP_PROTO(u64 packet, unsigned int generation, unsigned int status, unsigned int timestamp), TP_PROTO(u64 packet, unsigned int card_index, unsigned int generation, unsigned int status, unsigned int timestamp),
TP_ARGS(packet, generation, status, timestamp), TP_ARGS(packet, card_index, generation, status, timestamp),
TP_STRUCT__entry( TP_STRUCT__entry(
__field(u64, packet) __field(u64, packet)
__field(u8, card_index)
__field(u8, generation) __field(u8, generation)
__field(u8, status) __field(u8, status)
__field(u16, timestamp) __field(u16, timestamp)
), ),
TP_fast_assign( TP_fast_assign(
__entry->packet = packet; __entry->packet = packet;
__entry->card_index = card_index;
__entry->generation = generation; __entry->generation = generation;
__entry->status = status; __entry->status = status;
__entry->timestamp = timestamp; __entry->timestamp = timestamp;
), ),
TP_printk( TP_printk(
"packet=0x%llx generation=%u status=%u timestamp=0x%04x", "packet=0x%llx card_index=%u generation=%u status=%u timestamp=0x%04x",
__entry->packet, __entry->packet,
__entry->card_index,
__entry->generation, __entry->generation,
__entry->status, __entry->status,
__entry->timestamp __entry->timestamp
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment