diff options
author | Jerry Jelinek <jerry.jelinek@joyent.com> | 2020-03-20 11:22:02 +0000 |
---|---|---|
committer | Jerry Jelinek <jerry.jelinek@joyent.com> | 2020-03-20 11:22:02 +0000 |
commit | 40d25872298b262cf460a358f6bff838cc254149 (patch) | |
tree | 337b7339538d1138bbc7e7b1d397c99f21664b1d /usr/src/uts/common | |
parent | 9f9bdc6d9964c15e63aa7abeb78eff3f478b0cfc (diff) | |
parent | 278de290aa274ca244c25d81b2940211c15ab7e5 (diff) | |
download | illumos-joyent-40d25872298b262cf460a358f6bff838cc254149.tar.gz |
[illumos-gate merge]
commit 278de290aa274ca244c25d81b2940211c15ab7e5
12368 asy: variable may be used uninitialized
commit f9c7ecc9013918bf789e154e2ed5f2e8fb6ce24c
12320 librsc: NULL pointer errors
commit 528737823843346cf95a4a701612f82089135554
12379 e1000g: Need support for Intel I219 v10-v15
commit 1bff1300cebf1ea8e11ce928b10e208097e67f24
12378 ata: variable may be used uninitialized
Diffstat (limited to 'usr/src/uts/common')
-rw-r--r-- | usr/src/uts/common/io/asy.c | 8 | ||||
-rw-r--r-- | usr/src/uts/common/io/e1000api/README.illumos | 2 | ||||
-rw-r--r-- | usr/src/uts/common/io/e1000api/e1000_api.c | 14 | ||||
-rw-r--r-- | usr/src/uts/common/io/e1000api/e1000_hw.h | 18 | ||||
-rw-r--r-- | usr/src/uts/common/io/e1000api/e1000_ich8lan.c | 7 | ||||
-rw-r--r-- | usr/src/uts/common/io/e1000g/e1000g_main.c | 4 |
6 files changed, 45 insertions, 8 deletions
diff --git a/usr/src/uts/common/io/asy.c b/usr/src/uts/common/io/asy.c index cebc10fee4..a13ae799d5 100644 --- a/usr/src/uts/common/io/asy.c +++ b/usr/src/uts/common/io/asy.c @@ -322,7 +322,7 @@ static int asyattach(dev_info_t *, ddi_attach_cmd_t); static int asydetach(dev_info_t *, ddi_detach_cmd_t); static int asyquiesce(dev_info_t *); -static struct cb_ops cb_asy_ops = { +static struct cb_ops cb_asy_ops = { nodev, /* cb_open */ nodev, /* cb_close */ nodev, /* cb_strategy */ @@ -1548,8 +1548,8 @@ asyopen(queue_t *rq, dev_t *dev, int flag, int sflag, cred_t *cr) struct asyncline *async; int mcr; int unit; - int len; - struct termios *termiosp; + int len; + struct termios *termiosp; unit = UNIT(*dev); DEBUGCONT1(ASY_DEBUG_CLOSE, "asy%dopen\n", unit); @@ -1990,7 +1990,7 @@ asy_waiteot(struct asycom *asy) static void asy_reset_fifo(struct asycom *asy, uchar_t flush) { - uchar_t lcr; + uchar_t lcr = 0; /* On a 16750, we have to set DLAB in order to set FIFOEXTRA. */ diff --git a/usr/src/uts/common/io/e1000api/README.illumos b/usr/src/uts/common/io/e1000api/README.illumos index 37cecd0d4d..d00891614d 100644 --- a/usr/src/uts/common/io/e1000api/README.illumos +++ b/usr/src/uts/common/io/e1000api/README.illumos @@ -45,7 +45,7 @@ are. DO NOT just blindly copy over new common code. There is more work that needs to be done in terms of changed interfaces and expectations for the drivers. -# Support for Ice Lake and Cannon Lake +# Support for Ice Lake, Cannon Lake, and Tiger Lake Due to several changes that have been made to the core e1000 code in FreeBSD that's specific to changes for iflib, a whole sale update was diff --git a/usr/src/uts/common/io/e1000api/e1000_api.c b/usr/src/uts/common/io/e1000api/e1000_api.c index 45dbbfc817..a6e8d2378d 100644 --- a/usr/src/uts/common/io/e1000api/e1000_api.c +++ b/usr/src/uts/common/io/e1000api/e1000_api.c @@ -318,8 +318,21 @@ s32 e1000_set_mac_type(struct e1000_hw *hw) case E1000_DEV_ID_PCH_ICP_I219_V8: case E1000_DEV_ID_PCH_ICP_I219_LM9: case E1000_DEV_ID_PCH_ICP_I219_V9: + case E1000_DEV_ID_PCH_CMP_I219_LM10: + case E1000_DEV_ID_PCH_CMP_I219_V10: + case E1000_DEV_ID_PCH_CMP_I219_LM11: + case E1000_DEV_ID_PCH_CMP_I219_V11: + case E1000_DEV_ID_PCH_CMP_I219_LM12: + case E1000_DEV_ID_PCH_CMP_I219_V12: mac->type = e1000_pch_cnp; break; + case E1000_DEV_ID_PCH_TGP_I219_LM13: + case E1000_DEV_ID_PCH_TGP_I219_V13: + case E1000_DEV_ID_PCH_TGP_I219_LM14: + case E1000_DEV_ID_PCH_TGP_I219_V14: + case E1000_DEV_ID_PCH_TGP_I219_LM15: + mac->type = e1000_pch_tgp; + break; case E1000_DEV_ID_82575EB_COPPER: case E1000_DEV_ID_82575EB_FIBER_SERDES: case E1000_DEV_ID_82575GB_QUAD_COPPER: @@ -472,6 +485,7 @@ s32 e1000_setup_init_funcs(struct e1000_hw *hw, bool init_device) case e1000_pch_lpt: case e1000_pch_spt: case e1000_pch_cnp: + case e1000_pch_tgp: e1000_init_function_pointers_ich8lan(hw); break; case e1000_82575: diff --git a/usr/src/uts/common/io/e1000api/e1000_hw.h b/usr/src/uts/common/io/e1000api/e1000_hw.h index ff9f1ff442..a9bb3cef75 100644 --- a/usr/src/uts/common/io/e1000api/e1000_hw.h +++ b/usr/src/uts/common/io/e1000api/e1000_hw.h @@ -154,6 +154,17 @@ struct e1000_hw; #define E1000_DEV_ID_PCH_ICP_I219_V8 0x15E0 #define E1000_DEV_ID_PCH_ICP_I219_LM9 0x15E1 #define E1000_DEV_ID_PCH_ICP_I219_V9 0x15E2 +#define E1000_DEV_ID_PCH_CMP_I219_LM10 0x0D4E +#define E1000_DEV_ID_PCH_CMP_I219_V10 0x0D4F +#define E1000_DEV_ID_PCH_CMP_I219_LM11 0x0D4C +#define E1000_DEV_ID_PCH_CMP_I219_V11 0x0D4D +#define E1000_DEV_ID_PCH_CMP_I219_LM12 0x0D53 +#define E1000_DEV_ID_PCH_CMP_I219_V12 0x0D55 +#define E1000_DEV_ID_PCH_TGP_I219_LM13 0x15FB +#define E1000_DEV_ID_PCH_TGP_I219_V13 0x15FC +#define E1000_DEV_ID_PCH_TGP_I219_LM14 0x15F9 +#define E1000_DEV_ID_PCH_TGP_I219_V14 0x15FA +#define E1000_DEV_ID_PCH_TGP_I219_LM15 0x15F4 #define E1000_DEV_ID_82576 0x10C9 #define E1000_DEV_ID_82576_FIBER 0x10E6 #define E1000_DEV_ID_82576_SERDES 0x10E7 @@ -243,9 +254,9 @@ enum e1000_mac_type { /* * The following MACs all share the ich8 style of hardware and are * implemented in ich8, though some are a little more different than - * others. The pch_lpt, pch_spt, and pch_cnp family are a bit more - * different than the others and just have slight variants in behavior - * between them. They are ordered based on release. + * others. The pch_lpt, pch_spt, pch_cnp, and pch_tgp families are a bit + * more different than the others and just have slight variants in + * behavior between them. They are ordered based on release. */ e1000_ich8lan, e1000_ich9lan, @@ -255,6 +266,7 @@ enum e1000_mac_type { e1000_pch_lpt, e1000_pch_spt, e1000_pch_cnp, + e1000_pch_tgp, /* * After this point all MACs are used by the igb(7D) driver as opposed * to e1000g(7D). If a new MAC is specific to e1000g series of devices, diff --git a/usr/src/uts/common/io/e1000api/e1000_ich8lan.c b/usr/src/uts/common/io/e1000api/e1000_ich8lan.c index 966e176afd..57f03e211b 100644 --- a/usr/src/uts/common/io/e1000api/e1000_ich8lan.c +++ b/usr/src/uts/common/io/e1000api/e1000_ich8lan.c @@ -345,6 +345,7 @@ static s32 e1000_init_phy_workarounds_pchlan(struct e1000_hw *hw) case e1000_pch_lpt: case e1000_pch_spt: case e1000_pch_cnp: + case e1000_pch_tgp: if (e1000_phy_is_accessible_pchlan(hw)) break; @@ -494,6 +495,7 @@ static s32 e1000_init_phy_params_pchlan(struct e1000_hw *hw) case e1000_pch_lpt: case e1000_pch_spt: case e1000_pch_cnp: + case e1000_pch_tgp: /* In case the PHY needs to be in mdio slow mode, * set slow mode and try to get the PHY id again. */ @@ -796,6 +798,7 @@ static s32 e1000_init_mac_params_ich8lan(struct e1000_hw *hw) case e1000_pch_lpt: case e1000_pch_spt: case e1000_pch_cnp: + case e1000_pch_tgp: /* multicast address update for pch2 */ mac->ops.update_mc_addr_list = e1000_update_mc_addr_list_pch2lan; @@ -1828,6 +1831,7 @@ void e1000_init_function_pointers_ich8lan(struct e1000_hw *hw) case e1000_pch_lpt: case e1000_pch_spt: case e1000_pch_cnp: + case e1000_pch_tgp: hw->phy.ops.init_params = e1000_init_phy_params_pchlan; break; default: @@ -2293,6 +2297,7 @@ static s32 e1000_sw_lcd_config_ich8lan(struct e1000_hw *hw) case e1000_pch_lpt: case e1000_pch_spt: case e1000_pch_cnp: + case e1000_pch_tgp: sw_cfg_mask = E1000_FEXTNVM_SW_CONFIG_ICH8M; break; default: @@ -3411,6 +3416,7 @@ static s32 e1000_valid_nvm_bank_detect_ich8lan(struct e1000_hw *hw, u32 *bank) switch (hw->mac.type) { case e1000_pch_spt: case e1000_pch_cnp: + case e1000_pch_tgp: bank1_offset = nvm->flash_bank_size; act_offset = E1000_ICH_NVM_SIG_WORD; @@ -4386,6 +4392,7 @@ static s32 e1000_validate_nvm_checksum_ich8lan(struct e1000_hw *hw) case e1000_pch_lpt: case e1000_pch_spt: case e1000_pch_cnp: + case e1000_pch_tgp: word = NVM_COMPAT; valid_csum_mask = NVM_COMPAT_VALID_CSUM; break; diff --git a/usr/src/uts/common/io/e1000g/e1000g_main.c b/usr/src/uts/common/io/e1000g/e1000g_main.c index bcbc90abc0..7d55a00682 100644 --- a/usr/src/uts/common/io/e1000g/e1000g_main.c +++ b/usr/src/uts/common/io/e1000g/e1000g_main.c @@ -712,6 +712,7 @@ e1000g_regs_map(struct e1000g *Adapter) break; case e1000_pch_spt: case e1000_pch_cnp: + case e1000_pch_tgp: /* * On the SPT, the device flash is actually in BAR0, not a * separate BAR. Therefore we end up setting the @@ -911,6 +912,7 @@ e1000g_setup_max_mtu(struct e1000g *Adapter) case e1000_pch_lpt: case e1000_pch_spt: case e1000_pch_cnp: + case e1000_pch_tgp: Adapter->max_mtu = MAXIMUM_MTU_9K; break; /* types with a special limit */ @@ -1490,6 +1492,8 @@ e1000g_init(struct e1000g *Adapter) pba = E1000_PBA_26K; } else if (hw->mac.type == e1000_pch_cnp) { pba = E1000_PBA_26K; + } else if (hw->mac.type == e1000_pch_tgp) { + pba = E1000_PBA_26K; } else { /* * Total FIFO is 40K |