summaryrefslogtreecommitdiff
path: root/usr/src/uts/common
diff options
context:
space:
mode:
authorJerry Jelinek <jerry.jelinek@joyent.com>2020-03-20 11:22:02 +0000
committerJerry Jelinek <jerry.jelinek@joyent.com>2020-03-20 11:22:02 +0000
commit40d25872298b262cf460a358f6bff838cc254149 (patch)
tree337b7339538d1138bbc7e7b1d397c99f21664b1d /usr/src/uts/common
parent9f9bdc6d9964c15e63aa7abeb78eff3f478b0cfc (diff)
parent278de290aa274ca244c25d81b2940211c15ab7e5 (diff)
downloadillumos-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.c8
-rw-r--r--usr/src/uts/common/io/e1000api/README.illumos2
-rw-r--r--usr/src/uts/common/io/e1000api/e1000_api.c14
-rw-r--r--usr/src/uts/common/io/e1000api/e1000_hw.h18
-rw-r--r--usr/src/uts/common/io/e1000api/e1000_ich8lan.c7
-rw-r--r--usr/src/uts/common/io/e1000g/e1000g_main.c4
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