@@ -337,6 +337,17 @@ void t4_os_portmod_changed(const struct adapter *adap, int port_id)
337337 netdev_info (dev , "port module unplugged\n" );
338338 else if (pi -> mod_type < ARRAY_SIZE (mod_str ))
339339 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 );
340351}
341352
342353int dbfifo_int_thresh = 10 ; /* 10 == 640 entry threshold */
@@ -504,7 +515,7 @@ EXPORT_SYMBOL(cxgb4_dcb_enabled);
504515static void dcb_rpl (struct adapter * adap , const struct fw_port_cmd * pcmd )
505516{
506517 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 ] ];
508519 int old_dcb_enabled = cxgb4_dcb_enabled (dev );
509520 int new_dcb_enabled ;
510521
@@ -634,7 +645,8 @@ static int fwevtq_handler(struct sge_rspq *q, const __be64 *rsp,
634645 action == FW_PORT_ACTION_GET_PORT_INFO ) {
635646 int port = FW_PORT_CMD_PORTID_G (
636647 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 ]];
638650 int state_input = ((pcmd -> u .info .dcbxdis_pkd &
639651 FW_PORT_CMD_DCBXDIS_F )
640652 ? CXGB4_DCB_INPUT_FW_DISABLED
@@ -3738,7 +3750,10 @@ static int adap_init0(struct adapter *adap)
37383750 * is excessively mismatched relative to the driver.)
37393751 */
37403752 t4_get_fw_version (adap , & adap -> params .fw_vers );
3753+ t4_get_bs_version (adap , & adap -> params .bs_vers );
37413754 t4_get_tp_version (adap , & adap -> params .tp_vers );
3755+ t4_get_exprom_version (adap , & adap -> params .er_vers );
3756+
37423757 ret = t4_check_fw_version (adap );
37433758 /* If firmware is too old (not supported by driver) force an update. */
37443759 if (ret )
@@ -4652,6 +4667,68 @@ static void cxgb4_check_pcie_caps(struct adapter *adap)
46524667 "suggested for optimal performance.\n" );
46534668}
46544669
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+
46554732static void print_port_info (const struct net_device * dev )
46564733{
46574734 char buf [80 ];
@@ -4679,14 +4756,8 @@ static void print_port_info(const struct net_device *dev)
46794756 -- bufp ;
46804757 sprintf (bufp , "BASE-%s" , t4_get_port_type_description (pi -> port_type ));
46814758
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 );
46904761}
46914762
46924763static 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)
48444915 adapter -> regs = regs ;
48454916 adapter -> pdev = pdev ;
48464917 adapter -> pdev_dev = & pdev -> dev ;
4918+ adapter -> name = pci_name (pdev );
48474919 adapter -> mbox = func ;
48484920 adapter -> pf = func ;
48494921 adapter -> msg_enable = dflt_msg_enable ;
@@ -5074,6 +5146,8 @@ static int init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
50745146 if (is_offload (adapter ))
50755147 attach_ulds (adapter );
50765148
5149+ print_adapter_info (adapter );
5150+
50775151sriov :
50785152#ifdef CONFIG_PCI_IOV
50795153 if (func < ARRAY_SIZE (num_vf ) && num_vf [func ] > 0 )
0 commit comments