diff options
author | Russell King <rmk+kernel@armlinux.org.uk> | 2017-12-29 12:15:28 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-01-02 21:45:32 -0500 |
commit | f10fcbcf91006a3223cffbc413b5abe17cf46937 (patch) | |
tree | b33bde0471067834d32d6e7c8950191804efe3f3 /include/linux/sfp.h | |
parent | 9962acf7fb8c5c5a28e137d2102ee81b51b4111b (diff) | |
download | linux-stable-f10fcbcf91006a3223cffbc413b5abe17cf46937.tar.gz linux-stable-f10fcbcf91006a3223cffbc413b5abe17cf46937.tar.bz2 linux-stable-f10fcbcf91006a3223cffbc413b5abe17cf46937.zip |
sfp: improve support for direct-attach copper cables
Improve the support for direct-attach copper so that we avoid kernel
warning messages, and report the appropriate PORT_DA type to userspace.
Direct Attach cables can use a number of protocols depending on their
range of speeds.
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux/sfp.h')
-rw-r--r-- | include/linux/sfp.h | 36 |
1 files changed, 35 insertions, 1 deletions
diff --git a/include/linux/sfp.h b/include/linux/sfp.h index 0c5c5f6ae1ec..e724d5a3dd80 100644 --- a/include/linux/sfp.h +++ b/include/linux/sfp.h @@ -165,7 +165,41 @@ struct sfp_eeprom_base { char vendor_rev[4]; union { __be16 optical_wavelength; - u8 cable_spec; + __be16 cable_compliance; + struct { +#if defined __BIG_ENDIAN_BITFIELD + u8 reserved60_2:6; + u8 fc_pi_4_app_h:1; + u8 sff8431_app_e:1; + u8 reserved61:8; +#elif defined __LITTLE_ENDIAN_BITFIELD + u8 sff8431_app_e:1; + u8 fc_pi_4_app_h:1; + u8 reserved60_2:6; + u8 reserved61:8; +#else +#error Unknown Endian +#endif + } __packed passive; + struct { +#if defined __BIG_ENDIAN_BITFIELD + u8 reserved60_4:4; + u8 fc_pi_4_lim:1; + u8 sff8431_lim:1; + u8 fc_pi_4_app_h:1; + u8 sff8431_app_e:1; + u8 reserved61:8; +#elif defined __LITTLE_ENDIAN_BITFIELD + u8 sff8431_app_e:1; + u8 fc_pi_4_app_h:1; + u8 sff8431_lim:1; + u8 fc_pi_4_lim:1; + u8 reserved60_4:4; + u8 reserved61:8; +#else +#error Unknown Endian +#endif + } __packed active; } __packed; u8 reserved62; u8 cc_base; |