@@ -2564,40 +2564,58 @@ static ssize_t mtip_hw_show_registers(struct device *dev,
2564
2564
int size = 0 ;
2565
2565
int n ;
2566
2566
2567
- size += sprintf (& buf [size ], "S ACTive:\n" );
2567
+ size += sprintf (& buf [size ], "Hardware\n--------\n" );
2568
+ size += sprintf (& buf [size ], "S ACTive : [ 0x" );
2568
2569
2569
- for (n = 0 ; n < dd -> slot_groups ; n ++ )
2570
- size += sprintf (& buf [size ], "0x%08x\n " ,
2570
+ for (n = dd -> slot_groups - 1 ; n >= 0 ; n -- )
2571
+ size += sprintf (& buf [size ], "%08X " ,
2571
2572
readl (dd -> port -> s_active [n ]));
2572
2573
2573
- size += sprintf (& buf [size ], "Command Issue:\n" );
2574
+ size += sprintf (& buf [size ], "]\n" );
2575
+ size += sprintf (& buf [size ], "Command Issue : [ 0x" );
2574
2576
2575
- for (n = 0 ; n < dd -> slot_groups ; n ++ )
2576
- size += sprintf (& buf [size ], "0x%08x\n " ,
2577
+ for (n = dd -> slot_groups - 1 ; n >= 0 ; n -- )
2578
+ size += sprintf (& buf [size ], "%08X " ,
2577
2579
readl (dd -> port -> cmd_issue [n ]));
2578
2580
2579
- size += sprintf (& buf [size ], "Allocated:\n" );
2581
+ size += sprintf (& buf [size ], "]\n" );
2582
+ size += sprintf (& buf [size ], "Completed : [ 0x" );
2580
2583
2581
- for (n = 0 ; n < dd -> slot_groups ; n ++ ) {
2584
+ for (n = dd -> slot_groups - 1 ; n >= 0 ; n -- )
2585
+ size += sprintf (& buf [size ], "%08X " ,
2586
+ readl (dd -> port -> completed [n ]));
2587
+
2588
+ size += sprintf (& buf [size ], "]\n" );
2589
+ size += sprintf (& buf [size ], "PORT IRQ STAT : [ 0x%08X ]\n" ,
2590
+ readl (dd -> port -> mmio + PORT_IRQ_STAT ));
2591
+ size += sprintf (& buf [size ], "HOST IRQ STAT : [ 0x%08X ]\n" ,
2592
+ readl (dd -> mmio + HOST_IRQ_STAT ));
2593
+ size += sprintf (& buf [size ], "\n" );
2594
+
2595
+ size += sprintf (& buf [size ], "Local\n-----\n" );
2596
+ size += sprintf (& buf [size ], "Allocated : [ 0x" );
2597
+
2598
+ for (n = dd -> slot_groups - 1 ; n >= 0 ; n -- ) {
2582
2599
if (sizeof (long ) > sizeof (u32 ))
2583
2600
group_allocated =
2584
2601
dd -> port -> allocated [n /2 ] >> (32 * (n & 1 ));
2585
2602
else
2586
2603
group_allocated = dd -> port -> allocated [n ];
2587
- size += sprintf (& buf [size ], "0x%08x\n" ,
2588
- group_allocated );
2604
+ size += sprintf (& buf [size ], "%08X " , group_allocated );
2589
2605
}
2606
+ size += sprintf (& buf [size ], "]\n" );
2590
2607
2591
- size += sprintf (& buf [size ], "Completed:\n " );
2608
+ size += sprintf (& buf [size ], "Commands in Q: [ 0x " );
2592
2609
2593
- for (n = 0 ; n < dd -> slot_groups ; n ++ )
2594
- size += sprintf (& buf [size ], "0x%08x\n" ,
2595
- readl (dd -> port -> completed [n ]));
2596
-
2597
- size += sprintf (& buf [size ], "PORT IRQ STAT : 0x%08x\n" ,
2598
- readl (dd -> port -> mmio + PORT_IRQ_STAT ));
2599
- size += sprintf (& buf [size ], "HOST IRQ STAT : 0x%08x\n" ,
2600
- readl (dd -> mmio + HOST_IRQ_STAT ));
2610
+ for (n = dd -> slot_groups - 1 ; n >= 0 ; n -- ) {
2611
+ if (sizeof (long ) > sizeof (u32 ))
2612
+ group_allocated =
2613
+ dd -> port -> cmds_to_issue [n /2 ] >> (32 * (n & 1 ));
2614
+ else
2615
+ group_allocated = dd -> port -> cmds_to_issue [n ];
2616
+ size += sprintf (& buf [size ], "%08X " , group_allocated );
2617
+ }
2618
+ size += sprintf (& buf [size ], "]\n" );
2601
2619
2602
2620
return size ;
2603
2621
}
@@ -2619,8 +2637,24 @@ static ssize_t mtip_hw_show_status(struct device *dev,
2619
2637
return size ;
2620
2638
}
2621
2639
2640
+ static ssize_t mtip_hw_show_flags (struct device * dev ,
2641
+ struct device_attribute * attr ,
2642
+ char * buf )
2643
+ {
2644
+ struct driver_data * dd = dev_to_disk (dev )-> private_data ;
2645
+ int size = 0 ;
2646
+
2647
+ size += sprintf (& buf [size ], "Flag in port struct : [ %08lX ]\n" ,
2648
+ dd -> port -> flags );
2649
+ size += sprintf (& buf [size ], "Flag in dd struct : [ %08lX ]\n" ,
2650
+ dd -> dd_flag );
2651
+
2652
+ return size ;
2653
+ }
2654
+
2622
2655
static DEVICE_ATTR (registers , S_IRUGO , mtip_hw_show_registers , NULL) ;
2623
2656
static DEVICE_ATTR (status , S_IRUGO , mtip_hw_show_status , NULL) ;
2657
+ static DEVICE_ATTR (flags , S_IRUGO , mtip_hw_show_flags , NULL) ;
2624
2658
2625
2659
/*
2626
2660
* Create the sysfs related attributes.
@@ -2643,6 +2677,9 @@ static int mtip_hw_sysfs_init(struct driver_data *dd, struct kobject *kobj)
2643
2677
if (sysfs_create_file (kobj , & dev_attr_status .attr ))
2644
2678
dev_warn (& dd -> pdev -> dev ,
2645
2679
"Error creating 'status' sysfs entry\n" );
2680
+ if (sysfs_create_file (kobj , & dev_attr_flags .attr ))
2681
+ dev_warn (& dd -> pdev -> dev ,
2682
+ "Error creating 'flags' sysfs entry\n" );
2646
2683
return 0 ;
2647
2684
}
2648
2685
@@ -2663,6 +2700,7 @@ static int mtip_hw_sysfs_exit(struct driver_data *dd, struct kobject *kobj)
2663
2700
2664
2701
sysfs_remove_file (kobj , & dev_attr_registers .attr );
2665
2702
sysfs_remove_file (kobj , & dev_attr_status .attr );
2703
+ sysfs_remove_file (kobj , & dev_attr_flags .attr );
2666
2704
2667
2705
return 0 ;
2668
2706
}
0 commit comments