@@ -337,6 +337,17 @@ void t4_os_portmod_changed(const struct adapter *adap, int port_id)
337
337
netdev_info (dev , "port module unplugged\n" );
338
338
else if (pi -> mod_type < ARRAY_SIZE (mod_str ))
339
339
netdev_info (dev , "%s module inserted\n" , mod_str [pi -> mod_type ]);
340
+ else if (pi -> mod_type == FW_PORT_MOD_TYPE_NOTSUPPORTED )
341
+ netdev_info (dev , "%s: unsupported port module inserted\n" ,
342
+ dev -> name );
343
+ else if (pi -> mod_type == FW_PORT_MOD_TYPE_UNKNOWN )
344
+ netdev_info (dev , "%s: unknown port module inserted\n" ,
345
+ dev -> name );
346
+ else if (pi -> mod_type == FW_PORT_MOD_TYPE_ERROR )
347
+ netdev_info (dev , "%s: transceiver module error\n" , dev -> name );
348
+ else
349
+ netdev_info (dev , "%s: unknown module type %d inserted\n" ,
350
+ dev -> name , pi -> mod_type );
340
351
}
341
352
342
353
int dbfifo_int_thresh = 10 ; /* 10 == 640 entry threshold */
@@ -504,7 +515,7 @@ EXPORT_SYMBOL(cxgb4_dcb_enabled);
504
515
static void dcb_rpl (struct adapter * adap , const struct fw_port_cmd * pcmd )
505
516
{
506
517
int port = FW_PORT_CMD_PORTID_G (ntohl (pcmd -> op_to_portid ));
507
- struct net_device * dev = adap -> port [port ];
518
+ struct net_device * dev = adap -> port [adap -> chan_map [ port ] ];
508
519
int old_dcb_enabled = cxgb4_dcb_enabled (dev );
509
520
int new_dcb_enabled ;
510
521
@@ -634,7 +645,8 @@ static int fwevtq_handler(struct sge_rspq *q, const __be64 *rsp,
634
645
action == FW_PORT_ACTION_GET_PORT_INFO ) {
635
646
int port = FW_PORT_CMD_PORTID_G (
636
647
be32_to_cpu (pcmd -> op_to_portid ));
637
- struct net_device * dev = q -> adap -> port [port ];
648
+ struct net_device * dev =
649
+ q -> adap -> port [q -> adap -> chan_map [port ]];
638
650
int state_input = ((pcmd -> u .info .dcbxdis_pkd &
639
651
FW_PORT_CMD_DCBXDIS_F )
640
652
? CXGB4_DCB_INPUT_FW_DISABLED
@@ -3738,7 +3750,10 @@ static int adap_init0(struct adapter *adap)
3738
3750
* is excessively mismatched relative to the driver.)
3739
3751
*/
3740
3752
t4_get_fw_version (adap , & adap -> params .fw_vers );
3753
+ t4_get_bs_version (adap , & adap -> params .bs_vers );
3741
3754
t4_get_tp_version (adap , & adap -> params .tp_vers );
3755
+ t4_get_exprom_version (adap , & adap -> params .er_vers );
3756
+
3742
3757
ret = t4_check_fw_version (adap );
3743
3758
/* If firmware is too old (not supported by driver) force an update. */
3744
3759
if (ret )
@@ -4652,6 +4667,68 @@ static void cxgb4_check_pcie_caps(struct adapter *adap)
4652
4667
"suggested for optimal performance.\n" );
4653
4668
}
4654
4669
4670
+ /* Dump basic information about the adapter */
4671
+ static void print_adapter_info (struct adapter * adapter )
4672
+ {
4673
+ /* Device information */
4674
+ dev_info (adapter -> pdev_dev , "Chelsio %s rev %d\n" ,
4675
+ adapter -> params .vpd .id ,
4676
+ CHELSIO_CHIP_RELEASE (adapter -> params .chip ));
4677
+ dev_info (adapter -> pdev_dev , "S/N: %s, P/N: %s\n" ,
4678
+ adapter -> params .vpd .sn , adapter -> params .vpd .pn );
4679
+
4680
+ /* Firmware Version */
4681
+ if (!adapter -> params .fw_vers )
4682
+ dev_warn (adapter -> pdev_dev , "No firmware loaded\n" );
4683
+ else
4684
+ dev_info (adapter -> pdev_dev , "Firmware version: %u.%u.%u.%u\n" ,
4685
+ FW_HDR_FW_VER_MAJOR_G (adapter -> params .fw_vers ),
4686
+ FW_HDR_FW_VER_MINOR_G (adapter -> params .fw_vers ),
4687
+ FW_HDR_FW_VER_MICRO_G (adapter -> params .fw_vers ),
4688
+ FW_HDR_FW_VER_BUILD_G (adapter -> params .fw_vers ));
4689
+
4690
+ /* Bootstrap Firmware Version. (Some adapters don't have Bootstrap
4691
+ * Firmware, so dev_info() is more appropriate here.)
4692
+ */
4693
+ if (!adapter -> params .bs_vers )
4694
+ dev_info (adapter -> pdev_dev , "No bootstrap loaded\n" );
4695
+ else
4696
+ dev_info (adapter -> pdev_dev , "Bootstrap version: %u.%u.%u.%u\n" ,
4697
+ FW_HDR_FW_VER_MAJOR_G (adapter -> params .bs_vers ),
4698
+ FW_HDR_FW_VER_MINOR_G (adapter -> params .bs_vers ),
4699
+ FW_HDR_FW_VER_MICRO_G (adapter -> params .bs_vers ),
4700
+ FW_HDR_FW_VER_BUILD_G (adapter -> params .bs_vers ));
4701
+
4702
+ /* TP Microcode Version */
4703
+ if (!adapter -> params .tp_vers )
4704
+ dev_warn (adapter -> pdev_dev , "No TP Microcode loaded\n" );
4705
+ else
4706
+ dev_info (adapter -> pdev_dev ,
4707
+ "TP Microcode version: %u.%u.%u.%u\n" ,
4708
+ FW_HDR_FW_VER_MAJOR_G (adapter -> params .tp_vers ),
4709
+ FW_HDR_FW_VER_MINOR_G (adapter -> params .tp_vers ),
4710
+ FW_HDR_FW_VER_MICRO_G (adapter -> params .tp_vers ),
4711
+ FW_HDR_FW_VER_BUILD_G (adapter -> params .tp_vers ));
4712
+
4713
+ /* Expansion ROM version */
4714
+ if (!adapter -> params .er_vers )
4715
+ dev_info (adapter -> pdev_dev , "No Expansion ROM loaded\n" );
4716
+ else
4717
+ dev_info (adapter -> pdev_dev ,
4718
+ "Expansion ROM version: %u.%u.%u.%u\n" ,
4719
+ FW_HDR_FW_VER_MAJOR_G (adapter -> params .er_vers ),
4720
+ FW_HDR_FW_VER_MINOR_G (adapter -> params .er_vers ),
4721
+ FW_HDR_FW_VER_MICRO_G (adapter -> params .er_vers ),
4722
+ FW_HDR_FW_VER_BUILD_G (adapter -> params .er_vers ));
4723
+
4724
+ /* Software/Hardware configuration */
4725
+ dev_info (adapter -> pdev_dev , "Configuration: %sNIC %s, %s capable\n" ,
4726
+ is_offload (adapter ) ? "R" : "" ,
4727
+ ((adapter -> flags & USING_MSIX ) ? "MSI-X" :
4728
+ (adapter -> flags & USING_MSI ) ? "MSI" : "" ),
4729
+ is_offload (adapter ) ? "Offload" : "non-Offload" );
4730
+ }
4731
+
4655
4732
static void print_port_info (const struct net_device * dev )
4656
4733
{
4657
4734
char buf [80 ];
@@ -4679,14 +4756,8 @@ static void print_port_info(const struct net_device *dev)
4679
4756
-- bufp ;
4680
4757
sprintf (bufp , "BASE-%s" , t4_get_port_type_description (pi -> port_type ));
4681
4758
4682
- netdev_info (dev , "Chelsio %s rev %d %s %sNIC %s\n" ,
4683
- adap -> params .vpd .id ,
4684
- CHELSIO_CHIP_RELEASE (adap -> params .chip ), buf ,
4685
- is_offload (adap ) ? "R" : "" ,
4686
- (adap -> flags & USING_MSIX ) ? " MSI-X" :
4687
- (adap -> flags & USING_MSI ) ? " MSI" : "" );
4688
- netdev_info (dev , "S/N: %s, P/N: %s\n" ,
4689
- adap -> params .vpd .sn , adap -> params .vpd .pn );
4759
+ netdev_info (dev , "%s: Chelsio %s (%s) %s\n" ,
4760
+ dev -> name , adap -> params .vpd .id , adap -> name , buf );
4690
4761
}
4691
4762
4692
4763
static void enable_pcie_relaxed_ordering (struct pci_dev * dev )
@@ -4844,6 +4915,7 @@ static int init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
4844
4915
adapter -> regs = regs ;
4845
4916
adapter -> pdev = pdev ;
4846
4917
adapter -> pdev_dev = & pdev -> dev ;
4918
+ adapter -> name = pci_name (pdev );
4847
4919
adapter -> mbox = func ;
4848
4920
adapter -> pf = func ;
4849
4921
adapter -> msg_enable = dflt_msg_enable ;
@@ -5074,6 +5146,8 @@ static int init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
5074
5146
if (is_offload (adapter ))
5075
5147
attach_ulds (adapter );
5076
5148
5149
+ print_adapter_info (adapter );
5150
+
5077
5151
sriov :
5078
5152
#ifdef CONFIG_PCI_IOV
5079
5153
if (func < ARRAY_SIZE (num_vf ) && num_vf [func ] > 0 )
0 commit comments