182f6aea8STaku Izumi /* 282f6aea8STaku Izumi * FUJITSU Extended Socket Network Device driver 382f6aea8STaku Izumi * Copyright (c) 2015-2016 FUJITSU LIMITED 482f6aea8STaku Izumi * 582f6aea8STaku Izumi * This program is free software; you can redistribute it and/or modify it 682f6aea8STaku Izumi * under the terms and conditions of the GNU General Public License, 782f6aea8STaku Izumi * version 2, as published by the Free Software Foundation. 882f6aea8STaku Izumi * 982f6aea8STaku Izumi * This program is distributed in the hope it will be useful, but WITHOUT 1082f6aea8STaku Izumi * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 1182f6aea8STaku Izumi * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 1282f6aea8STaku Izumi * more details. 1382f6aea8STaku Izumi * 1482f6aea8STaku Izumi * You should have received a copy of the GNU General Public License along with 1582f6aea8STaku Izumi * this program; if not, see <http://www.gnu.org/licenses/>. 1682f6aea8STaku Izumi * 1782f6aea8STaku Izumi * The full GNU General Public License is included in this distribution in 1882f6aea8STaku Izumi * the file called "COPYING". 1982f6aea8STaku Izumi * 2082f6aea8STaku Izumi */ 2182f6aea8STaku Izumi 2282f6aea8STaku Izumi #if !defined(FJES_TRACE_H_) || defined(TRACE_HEADER_MULTI_READ) 2382f6aea8STaku Izumi #define FJES_TRACE_H_ 2482f6aea8STaku Izumi 2582f6aea8STaku Izumi #include <linux/types.h> 2682f6aea8STaku Izumi #include <linux/tracepoint.h> 2782f6aea8STaku Izumi 2882f6aea8STaku Izumi #undef TRACE_SYSTEM 2982f6aea8STaku Izumi #define TRACE_SYSTEM fjes 3082f6aea8STaku Izumi 3182f6aea8STaku Izumi /* tracepoints for fjes_hw.c */ 3282f6aea8STaku Izumi 3382f6aea8STaku Izumi TRACE_EVENT(fjes_hw_issue_request_command, 3482f6aea8STaku Izumi TP_PROTO(union REG_CR *cr, union REG_CS *cs, int timeout, 3582f6aea8STaku Izumi enum fjes_dev_command_response_e ret), 3682f6aea8STaku Izumi TP_ARGS(cr, cs, timeout, ret), 3782f6aea8STaku Izumi TP_STRUCT__entry( 3882f6aea8STaku Izumi __field(u16, cr_req) 3982f6aea8STaku Izumi __field(u8, cr_error) 4082f6aea8STaku Izumi __field(u16, cr_err_info) 4182f6aea8STaku Izumi __field(u8, cr_req_start) 4282f6aea8STaku Izumi __field(u16, cs_req) 4382f6aea8STaku Izumi __field(u8, cs_busy) 4482f6aea8STaku Izumi __field(u8, cs_complete) 4582f6aea8STaku Izumi __field(int, timeout) 4682f6aea8STaku Izumi __field(int, ret); 4782f6aea8STaku Izumi ), 4882f6aea8STaku Izumi TP_fast_assign( 4982f6aea8STaku Izumi __entry->cr_req = cr->bits.req_code; 5082f6aea8STaku Izumi __entry->cr_error = cr->bits.error; 5182f6aea8STaku Izumi __entry->cr_err_info = cr->bits.err_info; 5282f6aea8STaku Izumi __entry->cr_req_start = cr->bits.req_start; 5382f6aea8STaku Izumi __entry->cs_req = cs->bits.req_code; 5482f6aea8STaku Izumi __entry->cs_busy = cs->bits.busy; 5582f6aea8STaku Izumi __entry->cs_complete = cs->bits.complete; 5682f6aea8STaku Izumi __entry->timeout = timeout; 5782f6aea8STaku Izumi __entry->ret = ret; 5882f6aea8STaku Izumi ), 5982f6aea8STaku Izumi TP_printk("CR=[req=%04x, error=%u, err_info=%04x, req_start=%u], CS=[req=%04x, busy=%u, complete=%u], timeout=%d, ret=%d", 6082f6aea8STaku Izumi __entry->cr_req, __entry->cr_error, __entry->cr_err_info, 6182f6aea8STaku Izumi __entry->cr_req_start, __entry->cs_req, __entry->cs_busy, 6282f6aea8STaku Izumi __entry->cs_complete, __entry->timeout, __entry->ret) 6382f6aea8STaku Izumi ); 6482f6aea8STaku Izumi 6582f6aea8STaku Izumi TRACE_EVENT(fjes_hw_request_info, 6682f6aea8STaku Izumi TP_PROTO(struct fjes_hw *hw, union fjes_device_command_res *res_buf), 6782f6aea8STaku Izumi TP_ARGS(hw, res_buf), 6882f6aea8STaku Izumi TP_STRUCT__entry( 6982f6aea8STaku Izumi __field(int, length) 7082f6aea8STaku Izumi __field(int, code) 7182f6aea8STaku Izumi __dynamic_array(u8, zone, hw->max_epid) 7282f6aea8STaku Izumi __dynamic_array(u8, status, hw->max_epid) 7382f6aea8STaku Izumi ), 7482f6aea8STaku Izumi TP_fast_assign( 7582f6aea8STaku Izumi int x; 7682f6aea8STaku Izumi 7782f6aea8STaku Izumi __entry->length = res_buf->info.length; 7882f6aea8STaku Izumi __entry->code = res_buf->info.code; 7982f6aea8STaku Izumi for (x = 0; x < hw->max_epid; x++) { 8082f6aea8STaku Izumi *((u8 *)__get_dynamic_array(zone) + x) = 8182f6aea8STaku Izumi res_buf->info.info[x].zone; 8282f6aea8STaku Izumi *((u8 *)__get_dynamic_array(status) + x) = 8382f6aea8STaku Izumi res_buf->info.info[x].es_status; 8482f6aea8STaku Izumi } 8582f6aea8STaku Izumi ), 8682f6aea8STaku Izumi TP_printk("res_buf=[length=%d, code=%d, es_zones=%s, es_status=%s]", 8782f6aea8STaku Izumi __entry->length, __entry->code, 8882f6aea8STaku Izumi __print_array(__get_dynamic_array(zone), 8982f6aea8STaku Izumi __get_dynamic_array_len(zone) / sizeof(u8), 9082f6aea8STaku Izumi sizeof(u8)), 9182f6aea8STaku Izumi __print_array(__get_dynamic_array(status), 9282f6aea8STaku Izumi __get_dynamic_array_len(status) / sizeof(u8), 9382f6aea8STaku Izumi sizeof(u8))) 9482f6aea8STaku Izumi ); 9582f6aea8STaku Izumi 9682f6aea8STaku Izumi TRACE_EVENT(fjes_hw_request_info_err, 9782f6aea8STaku Izumi TP_PROTO(char *err), 9882f6aea8STaku Izumi TP_ARGS(err), 9982f6aea8STaku Izumi TP_STRUCT__entry( 10082f6aea8STaku Izumi __string(err, err) 10182f6aea8STaku Izumi ), 10282f6aea8STaku Izumi TP_fast_assign( 10382f6aea8STaku Izumi __assign_str(err, err); 10482f6aea8STaku Izumi ), 10582f6aea8STaku Izumi TP_printk("%s", __get_str(err)) 10682f6aea8STaku Izumi ); 10782f6aea8STaku Izumi 10882f6aea8STaku Izumi TRACE_EVENT(fjes_hw_register_buff_addr_req, 10982f6aea8STaku Izumi TP_PROTO(union fjes_device_command_req *req_buf, 11082f6aea8STaku Izumi struct ep_share_mem_info *buf_pair), 11182f6aea8STaku Izumi TP_ARGS(req_buf, buf_pair), 11282f6aea8STaku Izumi TP_STRUCT__entry( 11382f6aea8STaku Izumi __field(int, length) 11482f6aea8STaku Izumi __field(int, epid) 11582f6aea8STaku Izumi __field(u64, tx) 11682f6aea8STaku Izumi __field(size_t, tx_size) 11782f6aea8STaku Izumi __field(u64, rx) 11882f6aea8STaku Izumi __field(size_t, rx_size) 11982f6aea8STaku Izumi ), 12082f6aea8STaku Izumi TP_fast_assign( 12182f6aea8STaku Izumi void *tx, *rx; 12282f6aea8STaku Izumi 12382f6aea8STaku Izumi tx = (void *)buf_pair->tx.buffer; 12482f6aea8STaku Izumi rx = (void *)buf_pair->rx.buffer; 12582f6aea8STaku Izumi __entry->length = req_buf->share_buffer.length; 12682f6aea8STaku Izumi __entry->epid = req_buf->share_buffer.epid; 12782f6aea8STaku Izumi __entry->tx_size = buf_pair->tx.size; 12882f6aea8STaku Izumi __entry->rx_size = buf_pair->rx.size; 12982f6aea8STaku Izumi __entry->tx = page_to_phys(vmalloc_to_page(tx)) + 13082f6aea8STaku Izumi offset_in_page(tx); 13182f6aea8STaku Izumi __entry->rx = page_to_phys(vmalloc_to_page(rx)) + 13282f6aea8STaku Izumi offset_in_page(rx); 13382f6aea8STaku Izumi ), 13482f6aea8STaku Izumi TP_printk("req_buf=[length=%d, epid=%d], TX=[phy=0x%016llx, size=%zu], RX=[phy=0x%016llx, size=%zu]", 13582f6aea8STaku Izumi __entry->length, __entry->epid, __entry->tx, __entry->tx_size, 13682f6aea8STaku Izumi __entry->rx, __entry->rx_size) 13782f6aea8STaku Izumi ); 13882f6aea8STaku Izumi 13982f6aea8STaku Izumi TRACE_EVENT(fjes_hw_register_buff_addr, 14082f6aea8STaku Izumi TP_PROTO(union fjes_device_command_res *res_buf, int timeout), 14182f6aea8STaku Izumi TP_ARGS(res_buf, timeout), 14282f6aea8STaku Izumi TP_STRUCT__entry( 14382f6aea8STaku Izumi __field(int, length) 14482f6aea8STaku Izumi __field(int, code) 14582f6aea8STaku Izumi __field(int, timeout) 14682f6aea8STaku Izumi ), 14782f6aea8STaku Izumi TP_fast_assign( 14882f6aea8STaku Izumi __entry->length = res_buf->share_buffer.length; 14982f6aea8STaku Izumi __entry->code = res_buf->share_buffer.code; 15082f6aea8STaku Izumi __entry->timeout = timeout; 15182f6aea8STaku Izumi ), 15282f6aea8STaku Izumi TP_printk("res_buf=[length=%d, code=%d], timeout=%d", 15382f6aea8STaku Izumi __entry->length, __entry->code, __entry->timeout) 15482f6aea8STaku Izumi ); 15582f6aea8STaku Izumi 15682f6aea8STaku Izumi TRACE_EVENT(fjes_hw_register_buff_addr_err, 15782f6aea8STaku Izumi TP_PROTO(char *err), 15882f6aea8STaku Izumi TP_ARGS(err), 15982f6aea8STaku Izumi TP_STRUCT__entry( 16082f6aea8STaku Izumi __string(err, err) 16182f6aea8STaku Izumi ), 16282f6aea8STaku Izumi TP_fast_assign( 16382f6aea8STaku Izumi __assign_str(err, err); 16482f6aea8STaku Izumi ), 16582f6aea8STaku Izumi TP_printk("%s", __get_str(err)) 16682f6aea8STaku Izumi ); 16782f6aea8STaku Izumi 16882f6aea8STaku Izumi TRACE_EVENT(fjes_hw_unregister_buff_addr_req, 16982f6aea8STaku Izumi TP_PROTO(union fjes_device_command_req *req_buf), 17082f6aea8STaku Izumi TP_ARGS(req_buf), 17182f6aea8STaku Izumi TP_STRUCT__entry( 17282f6aea8STaku Izumi __field(int, length) 17382f6aea8STaku Izumi __field(int, epid) 17482f6aea8STaku Izumi ), 17582f6aea8STaku Izumi TP_fast_assign( 17682f6aea8STaku Izumi __entry->length = req_buf->unshare_buffer.length; 17782f6aea8STaku Izumi __entry->epid = req_buf->unshare_buffer.epid; 17882f6aea8STaku Izumi ), 17982f6aea8STaku Izumi TP_printk("req_buf=[length=%d, epid=%d]", 18082f6aea8STaku Izumi __entry->length, __entry->epid) 18182f6aea8STaku Izumi ); 18282f6aea8STaku Izumi 18382f6aea8STaku Izumi TRACE_EVENT(fjes_hw_unregister_buff_addr, 18482f6aea8STaku Izumi TP_PROTO(union fjes_device_command_res *res_buf, int timeout), 18582f6aea8STaku Izumi TP_ARGS(res_buf, timeout), 18682f6aea8STaku Izumi TP_STRUCT__entry( 18782f6aea8STaku Izumi __field(int, length) 18882f6aea8STaku Izumi __field(int, code) 18982f6aea8STaku Izumi __field(int, timeout) 19082f6aea8STaku Izumi ), 19182f6aea8STaku Izumi TP_fast_assign( 19282f6aea8STaku Izumi __entry->length = res_buf->unshare_buffer.length; 19382f6aea8STaku Izumi __entry->code = res_buf->unshare_buffer.code; 19482f6aea8STaku Izumi __entry->timeout = timeout; 19582f6aea8STaku Izumi ), 19682f6aea8STaku Izumi TP_printk("res_buf=[length=%d, code=%d], timeout=%d", 19782f6aea8STaku Izumi __entry->length, __entry->code, __entry->timeout) 19882f6aea8STaku Izumi ); 19982f6aea8STaku Izumi 20082f6aea8STaku Izumi TRACE_EVENT(fjes_hw_unregister_buff_addr_err, 20182f6aea8STaku Izumi TP_PROTO(char *err), 20282f6aea8STaku Izumi TP_ARGS(err), 20382f6aea8STaku Izumi TP_STRUCT__entry( 20482f6aea8STaku Izumi __string(err, err) 20582f6aea8STaku Izumi ), 20682f6aea8STaku Izumi TP_fast_assign( 20782f6aea8STaku Izumi __assign_str(err, err); 20882f6aea8STaku Izumi ), 20982f6aea8STaku Izumi TP_printk("%s", __get_str(err)) 21082f6aea8STaku Izumi ); 21182f6aea8STaku Izumi 212b6ba737dSTaku Izumi TRACE_EVENT(fjes_hw_start_debug_req, 213b6ba737dSTaku Izumi TP_PROTO(union fjes_device_command_req *req_buf), 214b6ba737dSTaku Izumi TP_ARGS(req_buf), 215b6ba737dSTaku Izumi TP_STRUCT__entry( 216b6ba737dSTaku Izumi __field(int, length) 217b6ba737dSTaku Izumi __field(int, mode) 218b6ba737dSTaku Izumi __field(phys_addr_t, buffer) 219b6ba737dSTaku Izumi ), 220b6ba737dSTaku Izumi TP_fast_assign( 221b6ba737dSTaku Izumi __entry->length = req_buf->start_trace.length; 222b6ba737dSTaku Izumi __entry->mode = req_buf->start_trace.mode; 223b6ba737dSTaku Izumi __entry->buffer = req_buf->start_trace.buffer[0]; 224b6ba737dSTaku Izumi ), 225ea939008SArnd Bergmann TP_printk("req_buf=[length=%d, mode=%d, buffer=%pap]", 226ea939008SArnd Bergmann __entry->length, __entry->mode, &__entry->buffer) 227b6ba737dSTaku Izumi ); 228b6ba737dSTaku Izumi 229b6ba737dSTaku Izumi TRACE_EVENT(fjes_hw_start_debug, 230b6ba737dSTaku Izumi TP_PROTO(union fjes_device_command_res *res_buf), 231b6ba737dSTaku Izumi TP_ARGS(res_buf), 232b6ba737dSTaku Izumi TP_STRUCT__entry( 233b6ba737dSTaku Izumi __field(int, length) 234b6ba737dSTaku Izumi __field(int, code) 235b6ba737dSTaku Izumi ), 236b6ba737dSTaku Izumi TP_fast_assign( 237b6ba737dSTaku Izumi __entry->length = res_buf->start_trace.length; 238b6ba737dSTaku Izumi __entry->code = res_buf->start_trace.code; 239b6ba737dSTaku Izumi ), 240b6ba737dSTaku Izumi TP_printk("res_buf=[length=%d, code=%d]", __entry->length, __entry->code) 241b6ba737dSTaku Izumi ); 242b6ba737dSTaku Izumi 243b6ba737dSTaku Izumi TRACE_EVENT(fjes_hw_start_debug_err, 244b6ba737dSTaku Izumi TP_PROTO(char *err), 245b6ba737dSTaku Izumi TP_ARGS(err), 246b6ba737dSTaku Izumi TP_STRUCT__entry( 247b6ba737dSTaku Izumi __string(err, err) 248b6ba737dSTaku Izumi ), 249b6ba737dSTaku Izumi TP_fast_assign( 250b6ba737dSTaku Izumi __assign_str(err, err) 251b6ba737dSTaku Izumi ), 252b6ba737dSTaku Izumi TP_printk("%s", __get_str(err)) 253b6ba737dSTaku Izumi ); 254b6ba737dSTaku Izumi 255b6ba737dSTaku Izumi TRACE_EVENT(fjes_hw_stop_debug, 256b6ba737dSTaku Izumi TP_PROTO(union fjes_device_command_res *res_buf), 257b6ba737dSTaku Izumi TP_ARGS(res_buf), 258b6ba737dSTaku Izumi TP_STRUCT__entry( 259b6ba737dSTaku Izumi __field(int, length) 260b6ba737dSTaku Izumi __field(int, code) 261b6ba737dSTaku Izumi ), 262b6ba737dSTaku Izumi TP_fast_assign( 263b6ba737dSTaku Izumi __entry->length = res_buf->stop_trace.length; 264b6ba737dSTaku Izumi __entry->code = res_buf->stop_trace.code; 265b6ba737dSTaku Izumi ), 266b6ba737dSTaku Izumi TP_printk("res_buf=[length=%d, code=%d]", __entry->length, __entry->code) 267b6ba737dSTaku Izumi ); 268b6ba737dSTaku Izumi 269b6ba737dSTaku Izumi TRACE_EVENT(fjes_hw_stop_debug_err, 270b6ba737dSTaku Izumi TP_PROTO(char *err), 271b6ba737dSTaku Izumi TP_ARGS(err), 272b6ba737dSTaku Izumi TP_STRUCT__entry( 273b6ba737dSTaku Izumi __string(err, err) 274b6ba737dSTaku Izumi ), 275b6ba737dSTaku Izumi TP_fast_assign( 276b6ba737dSTaku Izumi __assign_str(err, err) 277b6ba737dSTaku Izumi ), 278b6ba737dSTaku Izumi TP_printk("%s", __get_str(err)) 279b6ba737dSTaku Izumi ); 280b6ba737dSTaku Izumi 28182f6aea8STaku Izumi /* tracepoints for fjes_main.c */ 28282f6aea8STaku Izumi 28382f6aea8STaku Izumi TRACE_EVENT(fjes_txrx_stop_req_irq_pre, 28482f6aea8STaku Izumi TP_PROTO(struct fjes_hw *hw, int src_epid, 28582f6aea8STaku Izumi enum ep_partner_status status), 28682f6aea8STaku Izumi TP_ARGS(hw, src_epid, status), 28782f6aea8STaku Izumi TP_STRUCT__entry( 28882f6aea8STaku Izumi __field(int, src_epid) 28982f6aea8STaku Izumi __field(enum ep_partner_status, status) 29082f6aea8STaku Izumi __field(u8, ep_status) 29182f6aea8STaku Izumi __field(unsigned long, txrx_stop_req_bit) 29282f6aea8STaku Izumi __field(u16, rx_status) 29382f6aea8STaku Izumi ), 29482f6aea8STaku Izumi TP_fast_assign( 29582f6aea8STaku Izumi __entry->src_epid = src_epid; 29682f6aea8STaku Izumi __entry->status = status; 29782f6aea8STaku Izumi __entry->ep_status = hw->hw_info.share->ep_status[src_epid]; 29882f6aea8STaku Izumi __entry->txrx_stop_req_bit = hw->txrx_stop_req_bit; 29982f6aea8STaku Izumi __entry->rx_status = 30082f6aea8STaku Izumi hw->ep_shm_info[src_epid].tx.info->v1i.rx_status; 30182f6aea8STaku Izumi ), 30282f6aea8STaku Izumi TP_printk("epid=%d, partner_status=%d, ep_status=%x, txrx_stop_req_bit=%016lx, tx.rx_status=%08x", 30382f6aea8STaku Izumi __entry->src_epid, __entry->status, __entry->ep_status, 30482f6aea8STaku Izumi __entry->txrx_stop_req_bit, __entry->rx_status) 30582f6aea8STaku Izumi ); 30682f6aea8STaku Izumi 30782f6aea8STaku Izumi TRACE_EVENT(fjes_txrx_stop_req_irq_post, 30882f6aea8STaku Izumi TP_PROTO(struct fjes_hw *hw, int src_epid), 30982f6aea8STaku Izumi TP_ARGS(hw, src_epid), 31082f6aea8STaku Izumi TP_STRUCT__entry( 31182f6aea8STaku Izumi __field(int, src_epid) 31282f6aea8STaku Izumi __field(u8, ep_status) 31382f6aea8STaku Izumi __field(unsigned long, txrx_stop_req_bit) 31482f6aea8STaku Izumi __field(u16, rx_status) 31582f6aea8STaku Izumi ), 31682f6aea8STaku Izumi TP_fast_assign( 31782f6aea8STaku Izumi __entry->src_epid = src_epid; 31882f6aea8STaku Izumi __entry->ep_status = hw->hw_info.share->ep_status[src_epid]; 31982f6aea8STaku Izumi __entry->txrx_stop_req_bit = hw->txrx_stop_req_bit; 32082f6aea8STaku Izumi __entry->rx_status = hw->ep_shm_info[src_epid].tx.info->v1i.rx_status; 32182f6aea8STaku Izumi ), 32282f6aea8STaku Izumi TP_printk("epid=%d, ep_status=%x, txrx_stop_req_bit=%016lx, tx.rx_status=%08x", 32382f6aea8STaku Izumi __entry->src_epid, __entry->ep_status, 32482f6aea8STaku Izumi __entry->txrx_stop_req_bit, __entry->rx_status) 32582f6aea8STaku Izumi ); 32682f6aea8STaku Izumi 32782f6aea8STaku Izumi TRACE_EVENT(fjes_stop_req_irq_pre, 32882f6aea8STaku Izumi TP_PROTO(struct fjes_hw *hw, int src_epid, 32982f6aea8STaku Izumi enum ep_partner_status status), 33082f6aea8STaku Izumi TP_ARGS(hw, src_epid, status), 33182f6aea8STaku Izumi TP_STRUCT__entry( 33282f6aea8STaku Izumi __field(int, src_epid) 33382f6aea8STaku Izumi __field(enum ep_partner_status, status) 33482f6aea8STaku Izumi __field(u8, ep_status) 33582f6aea8STaku Izumi __field(unsigned long, txrx_stop_req_bit) 33682f6aea8STaku Izumi __field(u16, rx_status) 33782f6aea8STaku Izumi ), 33882f6aea8STaku Izumi TP_fast_assign( 33982f6aea8STaku Izumi __entry->src_epid = src_epid; 34082f6aea8STaku Izumi __entry->status = status; 34182f6aea8STaku Izumi __entry->ep_status = hw->hw_info.share->ep_status[src_epid]; 34282f6aea8STaku Izumi __entry->txrx_stop_req_bit = hw->txrx_stop_req_bit; 34382f6aea8STaku Izumi __entry->rx_status = 34482f6aea8STaku Izumi hw->ep_shm_info[src_epid].tx.info->v1i.rx_status; 34582f6aea8STaku Izumi ), 34682f6aea8STaku Izumi TP_printk("epid=%d, partner_status=%d, ep_status=%x, txrx_stop_req_bit=%016lx, tx.rx_status=%08x", 34782f6aea8STaku Izumi __entry->src_epid, __entry->status, __entry->ep_status, 34882f6aea8STaku Izumi __entry->txrx_stop_req_bit, __entry->rx_status) 34982f6aea8STaku Izumi ); 35082f6aea8STaku Izumi 35182f6aea8STaku Izumi TRACE_EVENT(fjes_stop_req_irq_post, 35282f6aea8STaku Izumi TP_PROTO(struct fjes_hw *hw, int src_epid), 35382f6aea8STaku Izumi TP_ARGS(hw, src_epid), 35482f6aea8STaku Izumi TP_STRUCT__entry( 35582f6aea8STaku Izumi __field(int, src_epid) 35682f6aea8STaku Izumi __field(u8, ep_status) 35782f6aea8STaku Izumi __field(unsigned long, txrx_stop_req_bit) 35882f6aea8STaku Izumi __field(u16, rx_status) 35982f6aea8STaku Izumi ), 36082f6aea8STaku Izumi TP_fast_assign( 36182f6aea8STaku Izumi __entry->src_epid = src_epid; 36282f6aea8STaku Izumi __entry->ep_status = hw->hw_info.share->ep_status[src_epid]; 36382f6aea8STaku Izumi __entry->txrx_stop_req_bit = hw->txrx_stop_req_bit; 36482f6aea8STaku Izumi __entry->rx_status = 36582f6aea8STaku Izumi hw->ep_shm_info[src_epid].tx.info->v1i.rx_status; 36682f6aea8STaku Izumi ), 36782f6aea8STaku Izumi TP_printk("epid=%d, ep_status=%x, txrx_stop_req_bit=%016lx, tx.rx_status=%08x", 36882f6aea8STaku Izumi __entry->src_epid, __entry->ep_status, 36982f6aea8STaku Izumi __entry->txrx_stop_req_bit, __entry->rx_status) 37082f6aea8STaku Izumi ); 37182f6aea8STaku Izumi 37282f6aea8STaku Izumi #endif /* FJES_TRACE_H_ */ 37382f6aea8STaku Izumi 37482f6aea8STaku Izumi #undef TRACE_INCLUDE_PATH 37582f6aea8STaku Izumi #undef TRACE_INCLUDE_FILE 37682f6aea8STaku Izumi #define TRACE_INCLUDE_PATH ../../../drivers/net/fjes 37782f6aea8STaku Izumi #define TRACE_INCLUDE_FILE fjes_trace 37882f6aea8STaku Izumi 37982f6aea8STaku Izumi /* This part must be outside protection */ 38082f6aea8STaku Izumi #include <trace/define_trace.h> 381