@@ -2350,7 +2350,7 @@ qla2x00_stop_firmware(scsi_qla_host_t *ha)
23502350}
23512351
23522352int
2353- qla2x00_trace_control (scsi_qla_host_t * ha , uint16_t ctrl , dma_addr_t eft_dma ,
2353+ qla2x00_enable_eft_trace (scsi_qla_host_t * ha , dma_addr_t eft_dma ,
23542354 uint16_t buffers )
23552355{
23562356 int rval ;
@@ -2363,22 +2363,47 @@ qla2x00_trace_control(scsi_qla_host_t *ha, uint16_t ctrl, dma_addr_t eft_dma,
23632363 DEBUG11 (printk ("%s(%ld): entered.\n" , __func__ , ha -> host_no ));
23642364
23652365 mcp -> mb [0 ] = MBC_TRACE_CONTROL ;
2366- mcp -> mb [1 ] = ctrl ;
2367- mcp -> out_mb = MBX_1 |MBX_0 ;
2366+ mcp -> mb [1 ] = TC_EFT_ENABLE ;
2367+ mcp -> mb [2 ] = LSW (eft_dma );
2368+ mcp -> mb [3 ] = MSW (eft_dma );
2369+ mcp -> mb [4 ] = LSW (MSD (eft_dma ));
2370+ mcp -> mb [5 ] = MSW (MSD (eft_dma ));
2371+ mcp -> mb [6 ] = buffers ;
2372+ mcp -> mb [7 ] = TC_AEN_DISABLE ;
2373+ mcp -> out_mb = MBX_7 |MBX_6 |MBX_5 |MBX_4 |MBX_3 |MBX_2 |MBX_1 |MBX_0 ;
23682374 mcp -> in_mb = MBX_1 |MBX_0 ;
2369- if (ctrl == TC_ENABLE ) {
2370- mcp -> mb [2 ] = LSW (eft_dma );
2371- mcp -> mb [3 ] = MSW (eft_dma );
2372- mcp -> mb [4 ] = LSW (MSD (eft_dma ));
2373- mcp -> mb [5 ] = MSW (MSD (eft_dma ));
2374- mcp -> mb [6 ] = buffers ;
2375- mcp -> mb [7 ] = 0 ;
2376- mcp -> out_mb |= MBX_7 |MBX_6 |MBX_5 |MBX_4 |MBX_3 |MBX_2 ;
2377- }
23782375 mcp -> tov = 30 ;
23792376 mcp -> flags = 0 ;
23802377 rval = qla2x00_mailbox_command (ha , mcp );
2378+ if (rval != QLA_SUCCESS ) {
2379+ DEBUG2_3_11 (printk ("%s(%ld): failed=%x mb[0]=%x mb[1]=%x.\n" ,
2380+ __func__ , ha -> host_no , rval , mcp -> mb [0 ], mcp -> mb [1 ]));
2381+ } else {
2382+ DEBUG11 (printk ("%s(%ld): done.\n" , __func__ , ha -> host_no ));
2383+ }
2384+
2385+ return rval ;
2386+ }
23812387
2388+ int
2389+ qla2x00_disable_eft_trace (scsi_qla_host_t * ha )
2390+ {
2391+ int rval ;
2392+ mbx_cmd_t mc ;
2393+ mbx_cmd_t * mcp = & mc ;
2394+
2395+ if (!IS_FWI2_CAPABLE (ha ))
2396+ return QLA_FUNCTION_FAILED ;
2397+
2398+ DEBUG11 (printk ("%s(%ld): entered.\n" , __func__ , ha -> host_no ));
2399+
2400+ mcp -> mb [0 ] = MBC_TRACE_CONTROL ;
2401+ mcp -> mb [1 ] = TC_EFT_DISABLE ;
2402+ mcp -> out_mb = MBX_1 |MBX_0 ;
2403+ mcp -> in_mb = MBX_1 |MBX_0 ;
2404+ mcp -> tov = 30 ;
2405+ mcp -> flags = 0 ;
2406+ rval = qla2x00_mailbox_command (ha , mcp );
23822407 if (rval != QLA_SUCCESS ) {
23832408 DEBUG2_3_11 (printk ("%s(%ld): failed=%x mb[0]=%x mb[1]=%x.\n" ,
23842409 __func__ , ha -> host_no , rval , mcp -> mb [0 ], mcp -> mb [1 ]));
0 commit comments