diff options
author | Sucheta Chakraborty <sucheta.chakraborty@qlogic.com> | 2010-05-12 23:07:48 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-05-14 06:08:01 -0400 |
commit | b3a2464941e32ca58059cba68012105e35ce84af (patch) | |
tree | 1cd60c8732140819958f9acde18960c80586a3cc /drivers/net/qlcnic/qlcnic_init.c | |
parent | 96f8118c25ea812335986d96a68441c2bcb01fe0 (diff) |
qlcnic: check device class
pci-func class can be other than ethernet in Qlogic CNA device.
Signed-off-by: Sucheta Chakraborty <sucheta.chakraborty@qlogic.com>
Signed-off-by: Amit Kumar Salecha <amit.salecha@qlogic.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/qlcnic/qlcnic_init.c')
-rw-r--r-- | drivers/net/qlcnic/qlcnic_init.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/drivers/net/qlcnic/qlcnic_init.c b/drivers/net/qlcnic/qlcnic_init.c index c4bef57b9cd0..77bfdaba83e8 100644 --- a/drivers/net/qlcnic/qlcnic_init.c +++ b/drivers/net/qlcnic/qlcnic_init.c | |||
@@ -514,10 +514,22 @@ int qlcnic_pinit_from_rom(struct qlcnic_adapter *adapter) | |||
514 | return 0; | 514 | return 0; |
515 | } | 515 | } |
516 | 516 | ||
517 | void | 517 | int |
518 | qlcnic_setup_idc_param(struct qlcnic_adapter *adapter) { | 518 | qlcnic_setup_idc_param(struct qlcnic_adapter *adapter) { |
519 | 519 | ||
520 | int timeo; | 520 | int timeo; |
521 | u32 val; | ||
522 | |||
523 | val = QLCRD32(adapter, QLCNIC_CRB_DEV_PARTITION_INFO); | ||
524 | val = (val >> (adapter->portnum * 4)) & 0xf; | ||
525 | |||
526 | if ((val & 0x3) != 1) { | ||
527 | dev_err(&adapter->pdev->dev, "Not an Ethernet NIC func=%u\n", | ||
528 | val); | ||
529 | return -EIO; | ||
530 | } | ||
531 | |||
532 | adapter->physical_port = (val >> 2); | ||
521 | 533 | ||
522 | if (qlcnic_rom_fast_read(adapter, QLCNIC_ROM_DEV_INIT_TIMEOUT, &timeo)) | 534 | if (qlcnic_rom_fast_read(adapter, QLCNIC_ROM_DEV_INIT_TIMEOUT, &timeo)) |
523 | timeo = 30; | 535 | timeo = 30; |
@@ -528,6 +540,8 @@ qlcnic_setup_idc_param(struct qlcnic_adapter *adapter) { | |||
528 | timeo = 10; | 540 | timeo = 10; |
529 | 541 | ||
530 | adapter->reset_ack_timeo = timeo; | 542 | adapter->reset_ack_timeo = timeo; |
543 | |||
544 | return 0; | ||
531 | } | 545 | } |
532 | 546 | ||
533 | static int | 547 | static int |