mirror of
https://github.com/torvalds/linux.git
synced 2024-11-27 06:31:52 +00:00
[SCSI] lpfc 8.1.12 : Added support for 8G speed and new HBAs
Added support for 8G speed and new HBAs. Signed-off-by: James Smart <James.Smart@emulex.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
This commit is contained in:
parent
47a8617c7d
commit
b87eab38be
@ -985,9 +985,10 @@ LPFC_ATTR_RW(topology, 0, 0, 6, "Select Fibre Channel topology");
|
||||
# 1 = 1 Gigabaud
|
||||
# 2 = 2 Gigabaud
|
||||
# 4 = 4 Gigabaud
|
||||
# Value range is [0,4]. Default value is 0.
|
||||
# 8 = 8 Gigabaud
|
||||
# Value range is [0,8]. Default value is 0.
|
||||
*/
|
||||
LPFC_ATTR_R(link_speed, 0, 0, 4, "Select link speed");
|
||||
LPFC_ATTR_R(link_speed, 0, 0, 8, "Select link speed");
|
||||
|
||||
/*
|
||||
# lpfc_fcp_class: Determines FC class to use for the FCP protocol.
|
||||
@ -1559,6 +1560,9 @@ lpfc_get_host_speed(struct Scsi_Host *shost)
|
||||
case LA_4GHZ_LINK:
|
||||
fc_host_speed(shost) = FC_PORTSPEED_4GBIT;
|
||||
break;
|
||||
case LA_8GHZ_LINK:
|
||||
fc_host_speed(shost) = FC_PORTSPEED_8GBIT;
|
||||
break;
|
||||
default:
|
||||
fc_host_speed(shost) = FC_PORTSPEED_UNKNOWN;
|
||||
break;
|
||||
|
@ -1038,6 +1038,9 @@ lpfc_fdmi_cmd(struct lpfc_hba * phba, struct lpfc_nodelist * ndlp, int cmdcode)
|
||||
case LA_4GHZ_LINK:
|
||||
ae->un.PortSpeed = HBA_PORTSPEED_4GBIT;
|
||||
break;
|
||||
case LA_8GHZ_LINK:
|
||||
ae->un.PortSpeed = HBA_PORTSPEED_8GBIT;
|
||||
break;
|
||||
default:
|
||||
ae->un.PortSpeed =
|
||||
HBA_PORTSPEED_UNKNOWN;
|
||||
|
@ -723,6 +723,9 @@ lpfc_mbx_process_link_up(struct lpfc_hba *phba, READ_LA_VAR *la)
|
||||
case LA_4GHZ_LINK:
|
||||
phba->fc_linkspeed = LA_4GHZ_LINK;
|
||||
break;
|
||||
case LA_8GHZ_LINK:
|
||||
phba->fc_linkspeed = LA_8GHZ_LINK;
|
||||
break;
|
||||
default:
|
||||
phba->fc_linkspeed = LA_UNKNW_LINK;
|
||||
break;
|
||||
|
@ -1078,6 +1078,8 @@ typedef struct {
|
||||
/* Start FireFly Register definitions */
|
||||
#define PCI_VENDOR_ID_EMULEX 0x10df
|
||||
#define PCI_DEVICE_ID_FIREFLY 0x1ae5
|
||||
#define PCI_DEVICE_ID_SAT_SMB 0xf011
|
||||
#define PCI_DEVICE_ID_SAT_MID 0xf015
|
||||
#define PCI_DEVICE_ID_RFLY 0xf095
|
||||
#define PCI_DEVICE_ID_PFLY 0xf098
|
||||
#define PCI_DEVICE_ID_LP101 0xf0a1
|
||||
@ -1089,6 +1091,9 @@ typedef struct {
|
||||
#define PCI_DEVICE_ID_NEPTUNE 0xf0f5
|
||||
#define PCI_DEVICE_ID_NEPTUNE_SCSP 0xf0f6
|
||||
#define PCI_DEVICE_ID_NEPTUNE_DCSP 0xf0f7
|
||||
#define PCI_DEVICE_ID_SAT 0xf100
|
||||
#define PCI_DEVICE_ID_SAT_SCSP 0xf111
|
||||
#define PCI_DEVICE_ID_SAT_DCSP 0xf112
|
||||
#define PCI_DEVICE_ID_SUPERFLY 0xf700
|
||||
#define PCI_DEVICE_ID_DRAGONFLY 0xf800
|
||||
#define PCI_DEVICE_ID_CENTAUR 0xf900
|
||||
@ -1098,6 +1103,7 @@ typedef struct {
|
||||
#define PCI_DEVICE_ID_LP10000S 0xfc00
|
||||
#define PCI_DEVICE_ID_LP11000S 0xfc10
|
||||
#define PCI_DEVICE_ID_LPE11000S 0xfc20
|
||||
#define PCI_DEVICE_ID_SAT_S 0xfc40
|
||||
#define PCI_DEVICE_ID_HELIOS 0xfd00
|
||||
#define PCI_DEVICE_ID_HELIOS_SCSP 0xfd11
|
||||
#define PCI_DEVICE_ID_HELIOS_DCSP 0xfd12
|
||||
@ -1118,6 +1124,7 @@ typedef struct {
|
||||
#define HELIOS_JEDEC_ID 0x0364
|
||||
#define ZEPHYR_JEDEC_ID 0x0577
|
||||
#define VIPER_JEDEC_ID 0x4838
|
||||
#define SATURN_JEDEC_ID 0x1004
|
||||
|
||||
#define JEDEC_ID_MASK 0x0FFFF000
|
||||
#define JEDEC_ID_SHIFT 12
|
||||
@ -1565,7 +1572,7 @@ typedef struct {
|
||||
#define LINK_SPEED_1G 1 /* 1 Gigabaud */
|
||||
#define LINK_SPEED_2G 2 /* 2 Gigabaud */
|
||||
#define LINK_SPEED_4G 4 /* 4 Gigabaud */
|
||||
#define LINK_SPEED_8G 8 /* 4 Gigabaud */
|
||||
#define LINK_SPEED_8G 8 /* 8 Gigabaud */
|
||||
#define LINK_SPEED_10G 16 /* 10 Gigabaud */
|
||||
|
||||
} INIT_LINK_VAR;
|
||||
|
@ -903,6 +903,24 @@ lpfc_get_hba_model_desc(struct lpfc_hba * phba, uint8_t * mdp, uint8_t * descp)
|
||||
m = (typeof(m)){"LPe11000-S", max_speed,
|
||||
"PCIe"};
|
||||
break;
|
||||
case PCI_DEVICE_ID_SAT:
|
||||
m = (typeof(m)){"LPe12000", max_speed, "PCIe"};
|
||||
break;
|
||||
case PCI_DEVICE_ID_SAT_MID:
|
||||
m = (typeof(m)){"LPe1250", max_speed, "PCIe"};
|
||||
break;
|
||||
case PCI_DEVICE_ID_SAT_SMB:
|
||||
m = (typeof(m)){"LPe121", max_speed, "PCIe"};
|
||||
break;
|
||||
case PCI_DEVICE_ID_SAT_DCSP:
|
||||
m = (typeof(m)){"LPe12002-SP", max_speed, "PCIe"};
|
||||
break;
|
||||
case PCI_DEVICE_ID_SAT_SCSP:
|
||||
m = (typeof(m)){"LPe12000-SP", max_speed, "PCIe"};
|
||||
break;
|
||||
case PCI_DEVICE_ID_SAT_S:
|
||||
m = (typeof(m)){"LPe12000-S", max_speed, "PCIe"};
|
||||
break;
|
||||
default:
|
||||
m = (typeof(m)){ NULL };
|
||||
break;
|
||||
@ -1889,6 +1907,18 @@ static struct pci_device_id lpfc_id_table[] = {
|
||||
PCI_ANY_ID, PCI_ANY_ID, },
|
||||
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_LPE11000S,
|
||||
PCI_ANY_ID, PCI_ANY_ID, },
|
||||
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_SAT,
|
||||
PCI_ANY_ID, PCI_ANY_ID, },
|
||||
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_SAT_MID,
|
||||
PCI_ANY_ID, PCI_ANY_ID, },
|
||||
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_SAT_SMB,
|
||||
PCI_ANY_ID, PCI_ANY_ID, },
|
||||
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_SAT_DCSP,
|
||||
PCI_ANY_ID, PCI_ANY_ID, },
|
||||
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_SAT_SCSP,
|
||||
PCI_ANY_ID, PCI_ANY_ID, },
|
||||
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_SAT_S,
|
||||
PCI_ANY_ID, PCI_ANY_ID, },
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
|
@ -212,6 +212,7 @@ lpfc_init_link(struct lpfc_hba * phba,
|
||||
case LINK_SPEED_1G:
|
||||
case LINK_SPEED_2G:
|
||||
case LINK_SPEED_4G:
|
||||
case LINK_SPEED_8G:
|
||||
mb->un.varInitLnk.link_flags |=
|
||||
FLAGS_LINK_SPEED;
|
||||
mb->un.varInitLnk.link_speed = linkspeed;
|
||||
|
Loading…
Reference in New Issue
Block a user