| From 413d5e09caa5a11da9c7d72401ba0588466a04c0 Mon Sep 17 00:00:00 2001 |
| From: Nikita Danilov <ndanilov@aquantia.com> |
| Date: Mon, 29 Nov 2021 05:28:26 -0800 |
| Subject: atlantic: Add missing DIDs and fix 115c. |
| |
| From: Nikita Danilov <ndanilov@aquantia.com> |
| |
| commit 413d5e09caa5a11da9c7d72401ba0588466a04c0 upstream. |
| |
| At the late production stages new dev ids were introduced. These are |
| now in production, so its important for the driver to recognize these. |
| And also fix the board caps for AQC115C adapter. |
| |
| Fixes: b3f0c79cba206 ("net: atlantic: A2 hw_ops skeleton") |
| Signed-off-by: Nikita Danilov <ndanilov@aquantia.com> |
| Signed-off-by: Sudarsana Reddy Kalluru <skalluru@marvell.com> |
| Signed-off-by: Igor Russkikh <irusskikh@marvell.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/net/ethernet/aquantia/atlantic/aq_common.h | 2 + |
| drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c | 7 +++++- |
| drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2.c | 17 +++++++++++++++ |
| drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2.h | 2 + |
| 4 files changed, 27 insertions(+), 1 deletion(-) |
| |
| --- a/drivers/net/ethernet/aquantia/atlantic/aq_common.h |
| +++ b/drivers/net/ethernet/aquantia/atlantic/aq_common.h |
| @@ -40,10 +40,12 @@ |
| |
| #define AQ_DEVICE_ID_AQC113DEV 0x00C0 |
| #define AQ_DEVICE_ID_AQC113CS 0x94C0 |
| +#define AQ_DEVICE_ID_AQC113CA 0x34C0 |
| #define AQ_DEVICE_ID_AQC114CS 0x93C0 |
| #define AQ_DEVICE_ID_AQC113 0x04C0 |
| #define AQ_DEVICE_ID_AQC113C 0x14C0 |
| #define AQ_DEVICE_ID_AQC115C 0x12C0 |
| +#define AQ_DEVICE_ID_AQC116C 0x11C0 |
| |
| #define HW_ATL_NIC_NAME "Marvell (aQuantia) AQtion 10Gbit Network Adapter" |
| |
| --- a/drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c |
| +++ b/drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c |
| @@ -49,6 +49,8 @@ static const struct pci_device_id aq_pci |
| { PCI_VDEVICE(AQUANTIA, AQ_DEVICE_ID_AQC113), }, |
| { PCI_VDEVICE(AQUANTIA, AQ_DEVICE_ID_AQC113C), }, |
| { PCI_VDEVICE(AQUANTIA, AQ_DEVICE_ID_AQC115C), }, |
| + { PCI_VDEVICE(AQUANTIA, AQ_DEVICE_ID_AQC113CA), }, |
| + { PCI_VDEVICE(AQUANTIA, AQ_DEVICE_ID_AQC116C), }, |
| |
| {} |
| }; |
| @@ -85,7 +87,10 @@ static const struct aq_board_revision_s |
| { AQ_DEVICE_ID_AQC113CS, AQ_HWREV_ANY, &hw_atl2_ops, &hw_atl2_caps_aqc113, }, |
| { AQ_DEVICE_ID_AQC114CS, AQ_HWREV_ANY, &hw_atl2_ops, &hw_atl2_caps_aqc113, }, |
| { AQ_DEVICE_ID_AQC113C, AQ_HWREV_ANY, &hw_atl2_ops, &hw_atl2_caps_aqc113, }, |
| - { AQ_DEVICE_ID_AQC115C, AQ_HWREV_ANY, &hw_atl2_ops, &hw_atl2_caps_aqc113, }, |
| + { AQ_DEVICE_ID_AQC115C, AQ_HWREV_ANY, &hw_atl2_ops, &hw_atl2_caps_aqc115c, }, |
| + { AQ_DEVICE_ID_AQC113CA, AQ_HWREV_ANY, &hw_atl2_ops, &hw_atl2_caps_aqc113, }, |
| + { AQ_DEVICE_ID_AQC116C, AQ_HWREV_ANY, &hw_atl2_ops, &hw_atl2_caps_aqc116c, }, |
| + |
| }; |
| |
| MODULE_DEVICE_TABLE(pci, aq_pci_tbl); |
| --- a/drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2.c |
| +++ b/drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2.c |
| @@ -72,6 +72,23 @@ const struct aq_hw_caps_s hw_atl2_caps_a |
| AQ_NIC_RATE_10M_HALF, |
| }; |
| |
| +const struct aq_hw_caps_s hw_atl2_caps_aqc115c = { |
| + DEFAULT_BOARD_BASIC_CAPABILITIES, |
| + .media_type = AQ_HW_MEDIA_TYPE_TP, |
| + .link_speed_msk = AQ_NIC_RATE_2G5 | |
| + AQ_NIC_RATE_1G | |
| + AQ_NIC_RATE_100M | |
| + AQ_NIC_RATE_10M, |
| +}; |
| + |
| +const struct aq_hw_caps_s hw_atl2_caps_aqc116c = { |
| + DEFAULT_BOARD_BASIC_CAPABILITIES, |
| + .media_type = AQ_HW_MEDIA_TYPE_TP, |
| + .link_speed_msk = AQ_NIC_RATE_1G | |
| + AQ_NIC_RATE_100M | |
| + AQ_NIC_RATE_10M, |
| +}; |
| + |
| static u32 hw_atl2_sem_act_rslvr_get(struct aq_hw_s *self) |
| { |
| return hw_atl_reg_glb_cpu_sem_get(self, HW_ATL2_FW_SM_ACT_RSLVR); |
| --- a/drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2.h |
| +++ b/drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2.h |
| @@ -9,6 +9,8 @@ |
| #include "aq_common.h" |
| |
| extern const struct aq_hw_caps_s hw_atl2_caps_aqc113; |
| +extern const struct aq_hw_caps_s hw_atl2_caps_aqc115c; |
| +extern const struct aq_hw_caps_s hw_atl2_caps_aqc116c; |
| extern const struct aq_hw_ops hw_atl2_ops; |
| |
| #endif /* HW_ATL2_H */ |