diff options
author | Sathya Perla <sathya.perla@emulex.com> | 2012-11-06 12:48:56 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-11-07 16:59:52 -0500 |
commit | ca34fe38f06da0f508543539419ff5faa5d81e1c (patch) | |
tree | 049b17b282475c13e13c23f857ff6f96f2e9e3b1 /drivers | |
parent | 5727f841dcd8f7a06dd85d76c0aba4a0e30a70a8 (diff) |
be2net: fix wrong usage of adapter->generation
adapter->generation was being incorrectly set as BE_GEN3 for Skyhawk-R.
Replace generation usage with XXX_chip() macros to identify the chip.
Signed-off-by: Sathya Perla <sathya.perla@emulex.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/ethernet/emulex/benet/be.h | 18 | ||||
-rw-r--r-- | drivers/net/ethernet/emulex/benet/be_cmds.c | 6 | ||||
-rw-r--r-- | drivers/net/ethernet/emulex/benet/be_cmds.h | 27 | ||||
-rw-r--r-- | drivers/net/ethernet/emulex/benet/be_main.c | 134 |
4 files changed, 92 insertions, 93 deletions
diff --git a/drivers/net/ethernet/emulex/benet/be.h b/drivers/net/ethernet/emulex/benet/be.h index f920a6521ce7..82f74f8594f5 100644 --- a/drivers/net/ethernet/emulex/benet/be.h +++ b/drivers/net/ethernet/emulex/benet/be.h | |||
@@ -410,7 +410,6 @@ struct be_adapter { | |||
410 | u32 rx_fc; /* Rx flow control */ | 410 | u32 rx_fc; /* Rx flow control */ |
411 | u32 tx_fc; /* Tx flow control */ | 411 | u32 tx_fc; /* Tx flow control */ |
412 | bool stats_cmd_sent; | 412 | bool stats_cmd_sent; |
413 | u8 generation; /* BladeEngine ASIC generation */ | ||
414 | u32 if_type; | 413 | u32 if_type; |
415 | struct { | 414 | struct { |
416 | u8 __iomem *base; /* Door Bell */ | 415 | u8 __iomem *base; /* Door Bell */ |
@@ -458,19 +457,22 @@ struct be_adapter { | |||
458 | for (i = 0, vf_cfg = &adapter->vf_cfg[i]; i < adapter->num_vfs; \ | 457 | for (i = 0, vf_cfg = &adapter->vf_cfg[i]; i < adapter->num_vfs; \ |
459 | i++, vf_cfg++) | 458 | i++, vf_cfg++) |
460 | 459 | ||
461 | /* BladeEngine Generation numbers */ | ||
462 | #define BE_GEN2 2 | ||
463 | #define BE_GEN3 3 | ||
464 | #define SH_HW 4 | ||
465 | |||
466 | #define ON 1 | 460 | #define ON 1 |
467 | #define OFF 0 | 461 | #define OFF 0 |
468 | #define lancer_chip(adapter) ((adapter->pdev->device == OC_DEVICE_ID3) || \ | 462 | |
469 | (adapter->pdev->device == OC_DEVICE_ID4)) | 463 | #define lancer_chip(adapter) (adapter->pdev->device == OC_DEVICE_ID3 || \ |
464 | adapter->pdev->device == OC_DEVICE_ID4) | ||
470 | 465 | ||
471 | #define skyhawk_chip(adapter) (adapter->pdev->device == OC_DEVICE_ID5 || \ | 466 | #define skyhawk_chip(adapter) (adapter->pdev->device == OC_DEVICE_ID5 || \ |
472 | adapter->pdev->device == OC_DEVICE_ID6) | 467 | adapter->pdev->device == OC_DEVICE_ID6) |
473 | 468 | ||
469 | #define BE3_chip(adapter) (adapter->pdev->device == BE_DEVICE_ID2 || \ | ||
470 | adapter->pdev->device == OC_DEVICE_ID2) | ||
471 | |||
472 | #define BE2_chip(adapter) (adapter->pdev->device == BE_DEVICE_ID1 || \ | ||
473 | adapter->pdev->device == OC_DEVICE_ID1) | ||
474 | |||
475 | #define BEx_chip(adapter) (BE3_chip(adapter) || BE2_chip(adapter)) | ||
474 | 476 | ||
475 | #define be_roce_supported(adapter) ((adapter->if_type == SLI_INTF_TYPE_3 || \ | 477 | #define be_roce_supported(adapter) ((adapter->if_type == SLI_INTF_TYPE_3 || \ |
476 | adapter->sli_family == SKYHAWK_SLI_FAMILY) && \ | 478 | adapter->sli_family == SKYHAWK_SLI_FAMILY) && \ |
diff --git a/drivers/net/ethernet/emulex/benet/be_cmds.c b/drivers/net/ethernet/emulex/benet/be_cmds.c index 7ea1ea4ff242..1768cfa53208 100644 --- a/drivers/net/ethernet/emulex/benet/be_cmds.c +++ b/drivers/net/ethernet/emulex/benet/be_cmds.c | |||
@@ -1362,7 +1362,8 @@ int be_cmd_get_stats(struct be_adapter *adapter, struct be_dma_mem *nonemb_cmd) | |||
1362 | be_wrb_cmd_hdr_prepare(hdr, CMD_SUBSYSTEM_ETH, | 1362 | be_wrb_cmd_hdr_prepare(hdr, CMD_SUBSYSTEM_ETH, |
1363 | OPCODE_ETH_GET_STATISTICS, nonemb_cmd->size, wrb, nonemb_cmd); | 1363 | OPCODE_ETH_GET_STATISTICS, nonemb_cmd->size, wrb, nonemb_cmd); |
1364 | 1364 | ||
1365 | if (adapter->generation == BE_GEN3) | 1365 | /* version 1 of the cmd is not supported only by BE2 */ |
1366 | if (!BE2_chip(adapter)) | ||
1366 | hdr->version = 1; | 1367 | hdr->version = 1; |
1367 | 1368 | ||
1368 | be_mcc_notify(adapter); | 1369 | be_mcc_notify(adapter); |
@@ -1452,7 +1453,8 @@ int be_cmd_link_status_query(struct be_adapter *adapter, u16 *link_speed, | |||
1452 | be_wrb_cmd_hdr_prepare(&req->hdr, CMD_SUBSYSTEM_COMMON, | 1453 | be_wrb_cmd_hdr_prepare(&req->hdr, CMD_SUBSYSTEM_COMMON, |
1453 | OPCODE_COMMON_NTWK_LINK_STATUS_QUERY, sizeof(*req), wrb, NULL); | 1454 | OPCODE_COMMON_NTWK_LINK_STATUS_QUERY, sizeof(*req), wrb, NULL); |
1454 | 1455 | ||
1455 | if (adapter->generation == BE_GEN3 || lancer_chip(adapter)) | 1456 | /* version 1 of the cmd is not supported only by BE2 */ |
1457 | if (!BE2_chip(adapter)) | ||
1456 | req->hdr.version = 1; | 1458 | req->hdr.version = 1; |
1457 | 1459 | ||
1458 | req->hdr.domain = dom; | 1460 | req->hdr.domain = dom; |
diff --git a/drivers/net/ethernet/emulex/benet/be_cmds.h b/drivers/net/ethernet/emulex/benet/be_cmds.h index 06fc22738b9d..d6552e19ffee 100644 --- a/drivers/net/ethernet/emulex/benet/be_cmds.h +++ b/drivers/net/ethernet/emulex/benet/be_cmds.h | |||
@@ -1656,33 +1656,6 @@ struct be_cmd_resp_get_stats_v1 { | |||
1656 | struct be_hw_stats_v1 hw_stats; | 1656 | struct be_hw_stats_v1 hw_stats; |
1657 | }; | 1657 | }; |
1658 | 1658 | ||
1659 | static inline void *hw_stats_from_cmd(struct be_adapter *adapter) | ||
1660 | { | ||
1661 | if (adapter->generation == BE_GEN3) { | ||
1662 | struct be_cmd_resp_get_stats_v1 *cmd = adapter->stats_cmd.va; | ||
1663 | |||
1664 | return &cmd->hw_stats; | ||
1665 | } else { | ||
1666 | struct be_cmd_resp_get_stats_v0 *cmd = adapter->stats_cmd.va; | ||
1667 | |||
1668 | return &cmd->hw_stats; | ||
1669 | } | ||
1670 | } | ||
1671 | |||
1672 | static inline void *be_erx_stats_from_cmd(struct be_adapter *adapter) | ||
1673 | { | ||
1674 | if (adapter->generation == BE_GEN3) { | ||
1675 | struct be_hw_stats_v1 *hw_stats = hw_stats_from_cmd(adapter); | ||
1676 | |||
1677 | return &hw_stats->erx; | ||
1678 | } else { | ||
1679 | struct be_hw_stats_v0 *hw_stats = hw_stats_from_cmd(adapter); | ||
1680 | |||
1681 | return &hw_stats->erx; | ||
1682 | } | ||
1683 | } | ||
1684 | |||
1685 | |||
1686 | /************** get fat capabilites *******************/ | 1659 | /************** get fat capabilites *******************/ |
1687 | #define MAX_MODULES 27 | 1660 | #define MAX_MODULES 27 |
1688 | #define MAX_MODES 4 | 1661 | #define MAX_MODES 4 |
diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c index d982cb09149b..e0e826a38b57 100644 --- a/drivers/net/ethernet/emulex/benet/be_main.c +++ b/drivers/net/ethernet/emulex/benet/be_main.c | |||
@@ -285,7 +285,35 @@ err: | |||
285 | return status; | 285 | return status; |
286 | } | 286 | } |
287 | 287 | ||
288 | static void populate_be2_stats(struct be_adapter *adapter) | 288 | /* BE2 supports only v0 cmd */ |
289 | static void *hw_stats_from_cmd(struct be_adapter *adapter) | ||
290 | { | ||
291 | if (BE2_chip(adapter)) { | ||
292 | struct be_cmd_resp_get_stats_v0 *cmd = adapter->stats_cmd.va; | ||
293 | |||
294 | return &cmd->hw_stats; | ||
295 | } else { | ||
296 | struct be_cmd_resp_get_stats_v1 *cmd = adapter->stats_cmd.va; | ||
297 | |||
298 | return &cmd->hw_stats; | ||
299 | } | ||
300 | } | ||
301 | |||
302 | /* BE2 supports only v0 cmd */ | ||
303 | static void *be_erx_stats_from_cmd(struct be_adapter *adapter) | ||
304 | { | ||
305 | if (BE2_chip(adapter)) { | ||
306 | struct be_hw_stats_v0 *hw_stats = hw_stats_from_cmd(adapter); | ||
307 | |||
308 | return &hw_stats->erx; | ||
309 | } else { | ||
310 | struct be_hw_stats_v1 *hw_stats = hw_stats_from_cmd(adapter); | ||
311 | |||
312 | return &hw_stats->erx; | ||
313 | } | ||
314 | } | ||
315 | |||
316 | static void populate_be_v0_stats(struct be_adapter *adapter) | ||
289 | { | 317 | { |
290 | struct be_hw_stats_v0 *hw_stats = hw_stats_from_cmd(adapter); | 318 | struct be_hw_stats_v0 *hw_stats = hw_stats_from_cmd(adapter); |
291 | struct be_pmem_stats *pmem_sts = &hw_stats->pmem; | 319 | struct be_pmem_stats *pmem_sts = &hw_stats->pmem; |
@@ -334,7 +362,7 @@ static void populate_be2_stats(struct be_adapter *adapter) | |||
334 | adapter->drv_stats.eth_red_drops = pmem_sts->eth_red_drops; | 362 | adapter->drv_stats.eth_red_drops = pmem_sts->eth_red_drops; |
335 | } | 363 | } |
336 | 364 | ||
337 | static void populate_be3_stats(struct be_adapter *adapter) | 365 | static void populate_be_v1_stats(struct be_adapter *adapter) |
338 | { | 366 | { |
339 | struct be_hw_stats_v1 *hw_stats = hw_stats_from_cmd(adapter); | 367 | struct be_hw_stats_v1 *hw_stats = hw_stats_from_cmd(adapter); |
340 | struct be_pmem_stats *pmem_sts = &hw_stats->pmem; | 368 | struct be_pmem_stats *pmem_sts = &hw_stats->pmem; |
@@ -436,28 +464,25 @@ void be_parse_stats(struct be_adapter *adapter) | |||
436 | struct be_rx_obj *rxo; | 464 | struct be_rx_obj *rxo; |
437 | int i; | 465 | int i; |
438 | 466 | ||
439 | if (adapter->generation == BE_GEN3) { | 467 | if (lancer_chip(adapter)) { |
440 | if (lancer_chip(adapter)) | 468 | populate_lancer_stats(adapter); |
441 | populate_lancer_stats(adapter); | ||
442 | else | ||
443 | populate_be3_stats(adapter); | ||
444 | } else { | 469 | } else { |
445 | populate_be2_stats(adapter); | 470 | if (BE2_chip(adapter)) |
446 | } | 471 | populate_be_v0_stats(adapter); |
447 | 472 | else | |
448 | if (lancer_chip(adapter)) | 473 | /* for BE3 and Skyhawk */ |
449 | goto done; | 474 | populate_be_v1_stats(adapter); |
450 | 475 | ||
451 | /* as erx_v1 is longer than v0, ok to use v1 defn for v0 access */ | 476 | /* as erx_v1 is longer than v0, ok to use v1 for v0 access */ |
452 | for_all_rx_queues(adapter, rxo, i) { | 477 | for_all_rx_queues(adapter, rxo, i) { |
453 | /* below erx HW counter can actually wrap around after | 478 | /* below erx HW counter can actually wrap around after |
454 | * 65535. Driver accumulates a 32-bit value | 479 | * 65535. Driver accumulates a 32-bit value |
455 | */ | 480 | */ |
456 | accumulate_16bit_val(&rx_stats(rxo)->rx_drops_no_frags, | 481 | accumulate_16bit_val(&rx_stats(rxo)->rx_drops_no_frags, |
457 | (u16)erx->rx_drops_no_fragments[rxo->q.id]); | 482 | (u16)erx->rx_drops_no_fragments \ |
483 | [rxo->q.id]); | ||
484 | } | ||
458 | } | 485 | } |
459 | done: | ||
460 | return; | ||
461 | } | 486 | } |
462 | 487 | ||
463 | static struct rtnl_link_stats64 *be_get_stats64(struct net_device *netdev, | 488 | static struct rtnl_link_stats64 *be_get_stats64(struct net_device *netdev, |
@@ -1874,7 +1899,7 @@ static int be_num_txqs_want(struct be_adapter *adapter) | |||
1874 | if ((!lancer_chip(adapter) && sriov_want(adapter)) || | 1899 | if ((!lancer_chip(adapter) && sriov_want(adapter)) || |
1875 | be_is_mc(adapter) || | 1900 | be_is_mc(adapter) || |
1876 | (!lancer_chip(adapter) && !be_physfn(adapter)) || | 1901 | (!lancer_chip(adapter) && !be_physfn(adapter)) || |
1877 | adapter->generation == BE_GEN2) | 1902 | BE2_chip(adapter)) |
1878 | return 1; | 1903 | return 1; |
1879 | else | 1904 | else |
1880 | return adapter->max_tx_queues; | 1905 | return adapter->max_tx_queues; |
@@ -3046,7 +3071,7 @@ static bool is_comp_in_ufi(struct be_adapter *adapter, | |||
3046 | int i = 0, img_type = 0; | 3071 | int i = 0, img_type = 0; |
3047 | struct flash_section_info_g2 *fsec_g2 = NULL; | 3072 | struct flash_section_info_g2 *fsec_g2 = NULL; |
3048 | 3073 | ||
3049 | if (adapter->generation != BE_GEN3) | 3074 | if (BE2_chip(adapter)) |
3050 | fsec_g2 = (struct flash_section_info_g2 *)fsec; | 3075 | fsec_g2 = (struct flash_section_info_g2 *)fsec; |
3051 | 3076 | ||
3052 | for (i = 0; i < MAX_FLASH_COMP; i++) { | 3077 | for (i = 0; i < MAX_FLASH_COMP; i++) { |
@@ -3120,7 +3145,8 @@ static int be_flash(struct be_adapter *adapter, const u8 *img, | |||
3120 | return 0; | 3145 | return 0; |
3121 | } | 3146 | } |
3122 | 3147 | ||
3123 | static int be_flash_data(struct be_adapter *adapter, | 3148 | /* For BE2 and BE3 */ |
3149 | static int be_flash_BEx(struct be_adapter *adapter, | ||
3124 | const struct firmware *fw, | 3150 | const struct firmware *fw, |
3125 | struct be_dma_mem *flash_cmd, | 3151 | struct be_dma_mem *flash_cmd, |
3126 | int num_of_images) | 3152 | int num_of_images) |
@@ -3175,7 +3201,7 @@ static int be_flash_data(struct be_adapter *adapter, | |||
3175 | FLASH_IMAGE_MAX_SIZE_g2, IMAGE_FIRMWARE_BACKUP_FCoE} | 3201 | FLASH_IMAGE_MAX_SIZE_g2, IMAGE_FIRMWARE_BACKUP_FCoE} |
3176 | }; | 3202 | }; |
3177 | 3203 | ||
3178 | if (adapter->generation == BE_GEN3) { | 3204 | if (BE3_chip(adapter)) { |
3179 | pflashcomp = gen3_flash_types; | 3205 | pflashcomp = gen3_flash_types; |
3180 | filehdr_size = sizeof(struct flash_file_hdr_g3); | 3206 | filehdr_size = sizeof(struct flash_file_hdr_g3); |
3181 | num_comp = ARRAY_SIZE(gen3_flash_types); | 3207 | num_comp = ARRAY_SIZE(gen3_flash_types); |
@@ -3184,6 +3210,7 @@ static int be_flash_data(struct be_adapter *adapter, | |||
3184 | filehdr_size = sizeof(struct flash_file_hdr_g2); | 3210 | filehdr_size = sizeof(struct flash_file_hdr_g2); |
3185 | num_comp = ARRAY_SIZE(gen2_flash_types); | 3211 | num_comp = ARRAY_SIZE(gen2_flash_types); |
3186 | } | 3212 | } |
3213 | |||
3187 | /* Get flash section info*/ | 3214 | /* Get flash section info*/ |
3188 | fsec = get_fsec_info(adapter, filehdr_size + img_hdrs_size, fw); | 3215 | fsec = get_fsec_info(adapter, filehdr_size + img_hdrs_size, fw); |
3189 | if (!fsec) { | 3216 | if (!fsec) { |
@@ -3431,20 +3458,21 @@ lancer_fw_exit: | |||
3431 | return status; | 3458 | return status; |
3432 | } | 3459 | } |
3433 | 3460 | ||
3434 | static int be_get_ufi_gen(struct be_adapter *adapter, | 3461 | #define UFI_TYPE2 2 |
3435 | struct flash_file_hdr_g2 *fhdr) | 3462 | #define UFI_TYPE3 3 |
3463 | #define UFI_TYPE4 4 | ||
3464 | static int be_get_ufi_type(struct be_adapter *adapter, | ||
3465 | struct flash_file_hdr_g2 *fhdr) | ||
3436 | { | 3466 | { |
3437 | if (fhdr == NULL) | 3467 | if (fhdr == NULL) |
3438 | goto be_get_ufi_exit; | 3468 | goto be_get_ufi_exit; |
3439 | 3469 | ||
3440 | if (adapter->generation == BE_GEN3) { | 3470 | if (skyhawk_chip(adapter) && fhdr->build[0] == '4') |
3441 | if (skyhawk_chip(adapter) && fhdr->build[0] == '4') | 3471 | return UFI_TYPE4; |
3442 | return SH_HW; | 3472 | else if (BE3_chip(adapter) && fhdr->build[0] == '3') |
3443 | else if (!skyhawk_chip(adapter) && fhdr->build[0] == '3') | 3473 | return UFI_TYPE3; |
3444 | return BE_GEN3; | 3474 | else if (BE2_chip(adapter) && fhdr->build[0] == '2') |
3445 | } else if (adapter->generation == BE_GEN2 && fhdr->build[0] == '2') { | 3475 | return UFI_TYPE2; |
3446 | return BE_GEN2; | ||
3447 | } | ||
3448 | 3476 | ||
3449 | be_get_ufi_exit: | 3477 | be_get_ufi_exit: |
3450 | dev_err(&adapter->pdev->dev, | 3478 | dev_err(&adapter->pdev->dev, |
@@ -3474,7 +3502,7 @@ static int be_fw_download(struct be_adapter *adapter, const struct firmware* fw) | |||
3474 | p = fw->data; | 3502 | p = fw->data; |
3475 | fhdr = (struct flash_file_hdr_g2 *)p; | 3503 | fhdr = (struct flash_file_hdr_g2 *)p; |
3476 | 3504 | ||
3477 | ufi_type = be_get_ufi_gen(adapter, fhdr); | 3505 | ufi_type = be_get_ufi_type(adapter, fhdr); |
3478 | 3506 | ||
3479 | fhdr3 = (struct flash_file_hdr_g3 *)fw->data; | 3507 | fhdr3 = (struct flash_file_hdr_g3 *)fw->data; |
3480 | num_imgs = le32_to_cpu(fhdr3->num_imgs); | 3508 | num_imgs = le32_to_cpu(fhdr3->num_imgs); |
@@ -3483,17 +3511,17 @@ static int be_fw_download(struct be_adapter *adapter, const struct firmware* fw) | |||
3483 | (sizeof(struct flash_file_hdr_g3) + | 3511 | (sizeof(struct flash_file_hdr_g3) + |
3484 | i * sizeof(struct image_hdr))); | 3512 | i * sizeof(struct image_hdr))); |
3485 | if (le32_to_cpu(img_hdr_ptr->imageid) == 1) { | 3513 | if (le32_to_cpu(img_hdr_ptr->imageid) == 1) { |
3486 | if (ufi_type == SH_HW) | 3514 | if (ufi_type == UFI_TYPE4) |
3487 | status = be_flash_skyhawk(adapter, fw, | 3515 | status = be_flash_skyhawk(adapter, fw, |
3488 | &flash_cmd, num_imgs); | 3516 | &flash_cmd, num_imgs); |
3489 | else if (ufi_type == BE_GEN3) | 3517 | else if (ufi_type == UFI_TYPE3) |
3490 | status = be_flash_data(adapter, fw, | 3518 | status = be_flash_BEx(adapter, fw, &flash_cmd, |
3491 | &flash_cmd, num_imgs); | 3519 | num_imgs); |
3492 | } | 3520 | } |
3493 | } | 3521 | } |
3494 | 3522 | ||
3495 | if (ufi_type == BE_GEN2) | 3523 | if (ufi_type == UFI_TYPE2) |
3496 | status = be_flash_data(adapter, fw, &flash_cmd, 0); | 3524 | status = be_flash_BEx(adapter, fw, &flash_cmd, 0); |
3497 | else if (ufi_type == -1) | 3525 | else if (ufi_type == -1) |
3498 | status = -1; | 3526 | status = -1; |
3499 | 3527 | ||
@@ -3644,7 +3672,7 @@ static int be_map_pci_bars(struct be_adapter *adapter) | |||
3644 | adapter->csr = addr; | 3672 | adapter->csr = addr; |
3645 | } | 3673 | } |
3646 | 3674 | ||
3647 | if (adapter->generation == BE_GEN2) { | 3675 | if (BE2_chip(adapter)) { |
3648 | db_reg = 4; | 3676 | db_reg = 4; |
3649 | } else { | 3677 | } else { |
3650 | if (be_physfn(adapter)) | 3678 | if (be_physfn(adapter)) |
@@ -3751,14 +3779,14 @@ static int be_stats_init(struct be_adapter *adapter) | |||
3751 | { | 3779 | { |
3752 | struct be_dma_mem *cmd = &adapter->stats_cmd; | 3780 | struct be_dma_mem *cmd = &adapter->stats_cmd; |
3753 | 3781 | ||
3754 | if (adapter->generation == BE_GEN2) { | 3782 | if (lancer_chip(adapter)) |
3783 | cmd->size = sizeof(struct lancer_cmd_req_pport_stats); | ||
3784 | else if (BE2_chip(adapter)) | ||
3755 | cmd->size = sizeof(struct be_cmd_req_get_stats_v0); | 3785 | cmd->size = sizeof(struct be_cmd_req_get_stats_v0); |
3756 | } else { | 3786 | else |
3757 | if (lancer_chip(adapter)) | 3787 | /* BE3 and Skyhawk */ |
3758 | cmd->size = sizeof(struct lancer_cmd_req_pport_stats); | 3788 | cmd->size = sizeof(struct be_cmd_req_get_stats_v1); |
3759 | else | 3789 | |
3760 | cmd->size = sizeof(struct be_cmd_req_get_stats_v1); | ||
3761 | } | ||
3762 | cmd->va = dma_alloc_coherent(&adapter->pdev->dev, cmd->size, &cmd->dma, | 3790 | cmd->va = dma_alloc_coherent(&adapter->pdev->dev, cmd->size, &cmd->dma, |
3763 | GFP_KERNEL); | 3791 | GFP_KERNEL); |
3764 | if (cmd->va == NULL) | 3792 | if (cmd->va == NULL) |
@@ -3878,11 +3906,9 @@ static int be_dev_type_check(struct be_adapter *adapter) | |||
3878 | switch (pdev->device) { | 3906 | switch (pdev->device) { |
3879 | case BE_DEVICE_ID1: | 3907 | case BE_DEVICE_ID1: |
3880 | case OC_DEVICE_ID1: | 3908 | case OC_DEVICE_ID1: |
3881 | adapter->generation = BE_GEN2; | ||
3882 | break; | 3909 | break; |
3883 | case BE_DEVICE_ID2: | 3910 | case BE_DEVICE_ID2: |
3884 | case OC_DEVICE_ID2: | 3911 | case OC_DEVICE_ID2: |
3885 | adapter->generation = BE_GEN3; | ||
3886 | break; | 3912 | break; |
3887 | case OC_DEVICE_ID3: | 3913 | case OC_DEVICE_ID3: |
3888 | case OC_DEVICE_ID4: | 3914 | case OC_DEVICE_ID4: |
@@ -3898,7 +3924,6 @@ static int be_dev_type_check(struct be_adapter *adapter) | |||
3898 | } | 3924 | } |
3899 | adapter->sli_family = ((sli_intf & SLI_INTF_FAMILY_MASK) >> | 3925 | adapter->sli_family = ((sli_intf & SLI_INTF_FAMILY_MASK) >> |
3900 | SLI_INTF_FAMILY_SHIFT); | 3926 | SLI_INTF_FAMILY_SHIFT); |
3901 | adapter->generation = BE_GEN3; | ||
3902 | break; | 3927 | break; |
3903 | case OC_DEVICE_ID5: | 3928 | case OC_DEVICE_ID5: |
3904 | case OC_DEVICE_ID6: | 3929 | case OC_DEVICE_ID6: |
@@ -3909,10 +3934,7 @@ static int be_dev_type_check(struct be_adapter *adapter) | |||
3909 | } | 3934 | } |
3910 | adapter->sli_family = ((sli_intf & SLI_INTF_FAMILY_MASK) >> | 3935 | adapter->sli_family = ((sli_intf & SLI_INTF_FAMILY_MASK) >> |
3911 | SLI_INTF_FAMILY_SHIFT); | 3936 | SLI_INTF_FAMILY_SHIFT); |
3912 | adapter->generation = BE_GEN3; | ||
3913 | break; | 3937 | break; |
3914 | default: | ||
3915 | adapter->generation = 0; | ||
3916 | } | 3938 | } |
3917 | 3939 | ||
3918 | pci_read_config_dword(adapter->pdev, SLI_INTF_REG_OFFSET, &sli_intf); | 3940 | pci_read_config_dword(adapter->pdev, SLI_INTF_REG_OFFSET, &sli_intf); |