netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/3] sky2 minor driver updates
@ 2010-03-29 17:36 Stephen Hemminger
  2010-03-29 17:36 ` [PATCH 1/3] sky2: support Yukon EC_U rev B1 and later Stephen Hemminger
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Stephen Hemminger @ 2010-03-29 17:36 UTC (permalink / raw)
  To: David S. Miller; +Cc: netdev

These are minor changes related to chip versions as described
in current Marvell driver.
-- 


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 1/3] sky2: support Yukon EC_U rev B1 and later
  2010-03-29 17:36 [PATCH 0/3] sky2 minor driver updates Stephen Hemminger
@ 2010-03-29 17:36 ` Stephen Hemminger
  2010-03-29 17:36 ` [PATCH 2/3] sky2: add XL revisions Stephen Hemminger
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Stephen Hemminger @ 2010-03-29 17:36 UTC (permalink / raw)
  To: David S. Miller; +Cc: netdev

[-- Attachment #1: sky2-ec-u-b1.patch --]
[-- Type: text/plain, Size: 2155 bytes --]

Need to change logic to support later versions of Yukon 2 EC_U chip.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>

--- a/drivers/net/sky2.c	2010-03-29 08:48:16.490429444 -0700
+++ b/drivers/net/sky2.c	2010-03-29 09:27:36.485594685 -0700
@@ -876,6 +876,10 @@ static void sky2_mac_init(struct sky2_hw
 
 	if (hw->dev[port]->mtu > ETH_DATA_LEN)
 		reg |= GM_SMOD_JUMBO_ENA;
+
+	if (hw->chip_id == CHIP_ID_YUKON_EC_U &&
+	    hw->chip_rev == CHIP_REV_YU_EC_U_B1)
+		reg |= GM_NEW_FLOW_CTRL;
 
 	gma_write16(hw, port, GM_SERIAL_MODE, reg);
 
@@ -1413,8 +1417,7 @@ static void sky2_rx_start(struct sky2_po
 	/* These chips have no ram buffer?
 	 * MAC Rx RAM Read is controlled by hardware */
 	if (hw->chip_id == CHIP_ID_YUKON_EC_U &&
-	    (hw->chip_rev == CHIP_REV_YU_EC_U_A1 ||
-	     hw->chip_rev == CHIP_REV_YU_EC_U_B0))
+	    hw->chip_rev > CHIP_REV_YU_EC_U_A0)
 		sky2_write32(hw, Q_ADDR(rxq, Q_TEST), F_M_RX_RAM_DIS);
 
 	sky2_prefetch_init(hw, rxq, sky2->rx_le_map, RX_LE_SIZE - 1);
--- a/drivers/net/sky2.h	2010-03-29 08:52:02.480429332 -0700
+++ b/drivers/net/sky2.h	2010-03-29 09:25:32.122900699 -0700
@@ -557,6 +557,7 @@ enum yukon_ec_u_rev {
 	CHIP_REV_YU_EC_U_A0  = 1,
 	CHIP_REV_YU_EC_U_A1  = 2,
 	CHIP_REV_YU_EC_U_B0  = 3,
+	CHIP_REV_YU_EC_U_B1  = 5,
 };
 enum yukon_fe_rev {
 	CHIP_REV_YU_FE_A1    = 1,
@@ -1775,10 +1776,13 @@ enum {
 /*	GM_SERIAL_MODE			16 bit r/w	Serial Mode Register */
 enum {
 	GM_SMOD_DATABL_MSK	= 0x1f<<11, /* Bit 15..11:	Data Blinder (r/o) */
-	GM_SMOD_LIMIT_4		= 1<<10, /* Bit 10:	4 consecutive Tx trials */
-	GM_SMOD_VLAN_ENA	= 1<<9,	/* Bit  9:	Enable VLAN  (Max. Frame Len) */
-	GM_SMOD_JUMBO_ENA	= 1<<8,	/* Bit  8:	Enable Jumbo (Max. Frame Len) */
-	 GM_SMOD_IPG_MSK	= 0x1f	/* Bit 4..0:	Inter-Packet Gap (IPG) */
+	GM_SMOD_LIMIT_4		= 1<<10, /* 4 consecutive Tx trials */
+	GM_SMOD_VLAN_ENA	= 1<<9,	 /* Enable VLAN  (Max. Frame Len) */
+	GM_SMOD_JUMBO_ENA	= 1<<8,	 /* Enable Jumbo (Max. Frame Len) */
+
+	GM_NEW_FLOW_CTRL	= 1<<6,	 /* Enable New Flow-Control */
+
+	GM_SMOD_IPG_MSK		= 0x1f	 /* Bit 4..0:	Inter-Packet Gap (IPG) */
 };
 
 #define DATA_BLIND_VAL(x)	(((x)<<11) & GM_SMOD_DATABL_MSK)

-- 


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 2/3] sky2: add XL revisions
  2010-03-29 17:36 [PATCH 0/3] sky2 minor driver updates Stephen Hemminger
  2010-03-29 17:36 ` [PATCH 1/3] sky2: support Yukon EC_U rev B1 and later Stephen Hemminger
@ 2010-03-29 17:36 ` Stephen Hemminger
  2010-03-29 17:36 ` [PATCH 3/3] sky2: avoid duplicate link up on Optima chip Stephen Hemminger
  2010-03-31  2:45 ` [PATCH 0/3] sky2 minor driver updates David Miller
  3 siblings, 0 replies; 5+ messages in thread
From: Stephen Hemminger @ 2010-03-29 17:36 UTC (permalink / raw)
  To: David S. Miller; +Cc: netdev

[-- Attachment #1: sky2-xl-rev.patch --]
[-- Type: text/plain, Size: 2288 bytes --]

Add definitions for Yukon XL revisions.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>

--- a/drivers/net/sky2.h	2010-03-29 09:25:32.122900699 -0700
+++ b/drivers/net/sky2.h	2010-03-29 09:27:47.582049092 -0700
@@ -548,6 +548,14 @@ enum {
 	CHIP_ID_YUKON_UL_2 = 0xba, /* YUKON-2 Ultra 2 */
 	CHIP_ID_YUKON_OPT  = 0xbc, /* YUKON-2 Optima */
 };
+
+enum yukon_xl_rev {
+	CHIP_REV_YU_XL_A0  = 0,
+	CHIP_REV_YU_XL_A1  = 1,
+	CHIP_REV_YU_XL_A2  = 2,
+	CHIP_REV_YU_XL_A3  = 3,
+};
+
 enum yukon_ec_rev {
 	CHIP_REV_YU_EC_A1    = 0,  /* Chip Rev. for Yukon-EC A1/A0 */
 	CHIP_REV_YU_EC_A2    = 1,  /* Chip Rev. for Yukon-EC A2 */
--- a/drivers/net/sky2.c	2010-03-29 09:27:44.992064516 -0700
+++ b/drivers/net/sky2.c	2010-03-29 09:27:47.582049092 -0700
@@ -226,7 +226,7 @@ static void sky2_power_on(struct sky2_hw
 	/* disable Core Clock Division, */
 	sky2_write32(hw, B2_Y2_CLK_CTRL, Y2_CLK_DIV_DIS);
 
-	if (hw->chip_id == CHIP_ID_YUKON_XL && hw->chip_rev > 1)
+	if (hw->chip_id == CHIP_ID_YUKON_XL && hw->chip_rev > CHIP_REV_YU_XL_A1)
 		/* enable bits are inverted */
 		sky2_write8(hw, B2_Y2_CLK_GATE,
 			    Y2_PCI_CLK_LNK1_DIS | Y2_COR_CLK_LNK1_DIS |
@@ -268,7 +268,7 @@ static void sky2_power_on(struct sky2_hw
 
 static void sky2_power_aux(struct sky2_hw *hw)
 {
-	if (hw->chip_id == CHIP_ID_YUKON_XL && hw->chip_rev > 1)
+	if (hw->chip_id == CHIP_ID_YUKON_XL && hw->chip_rev > CHIP_REV_YU_XL_A1)
 		sky2_write8(hw, B2_Y2_CLK_GATE, 0);
 	else
 		/* enable bits are inverted */
@@ -651,7 +651,7 @@ static void sky2_phy_power_up(struct sky
 	reg1 = sky2_pci_read32(hw, PCI_DEV_REG1);
 	reg1 &= ~phy_power[port];
 
-	if (hw->chip_id == CHIP_ID_YUKON_XL && hw->chip_rev > 1)
+	if (hw->chip_id == CHIP_ID_YUKON_XL && hw->chip_rev > CHIP_REV_YU_XL_A1)
 		reg1 |= coma_mode[port];
 
 	sky2_pci_write32(hw, PCI_DEV_REG1, reg1);
@@ -823,7 +823,9 @@ static void sky2_mac_init(struct sky2_hw
 
 	sky2_write8(hw, SK_REG(port, GMAC_CTRL), GMC_RST_CLR);
 
-	if (hw->chip_id == CHIP_ID_YUKON_XL && hw->chip_rev == 0 && port == 1) {
+	if (hw->chip_id == CHIP_ID_YUKON_XL &&
+	    hw->chip_rev == CHIP_REV_YU_XL_A0 &&
+	    port == 1) {
 		/* WA DEV_472 -- looks like crossed wires on port 2 */
 		/* clear GMAC 1 Control reset */
 		sky2_write8(hw, SK_REG(0, GMAC_CTRL), GMC_RST_CLR);

-- 


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 3/3] sky2: avoid duplicate link up on Optima chip
  2010-03-29 17:36 [PATCH 0/3] sky2 minor driver updates Stephen Hemminger
  2010-03-29 17:36 ` [PATCH 1/3] sky2: support Yukon EC_U rev B1 and later Stephen Hemminger
  2010-03-29 17:36 ` [PATCH 2/3] sky2: add XL revisions Stephen Hemminger
@ 2010-03-29 17:36 ` Stephen Hemminger
  2010-03-31  2:45 ` [PATCH 0/3] sky2 minor driver updates David Miller
  3 siblings, 0 replies; 5+ messages in thread
From: Stephen Hemminger @ 2010-03-29 17:36 UTC (permalink / raw)
  To: David S. Miller; +Cc: netdev

[-- Attachment #1: sky2-ul-link-up.patch --]
[-- Type: text/plain, Size: 597 bytes --]

The Optima version has feature to detect link quickly without PHY interrupt,
but it causes duplicate link up events.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>

--- a/drivers/net/sky2.c	2010-03-29 10:29:17.530956219 -0700
+++ b/drivers/net/sky2.c	2010-03-29 10:29:18.261894374 -0700
@@ -2146,7 +2146,8 @@ static void sky2_phy_intr(struct sky2_hw
 		   istatus, phystat);
 
 	if (istatus & PHY_M_IS_AN_COMPL) {
-		if (sky2_autoneg_done(sky2, phystat) == 0)
+		if (sky2_autoneg_done(sky2, phystat) == 0 &&
+		    !netif_carrier_ok(dev))
 			sky2_link_up(sky2);
 		goto out;
 	}

-- 


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 0/3] sky2 minor driver updates
  2010-03-29 17:36 [PATCH 0/3] sky2 minor driver updates Stephen Hemminger
                   ` (2 preceding siblings ...)
  2010-03-29 17:36 ` [PATCH 3/3] sky2: avoid duplicate link up on Optima chip Stephen Hemminger
@ 2010-03-31  2:45 ` David Miller
  3 siblings, 0 replies; 5+ messages in thread
From: David Miller @ 2010-03-31  2:45 UTC (permalink / raw)
  To: shemminger; +Cc: netdev

From: Stephen Hemminger <shemminger@vyatta.com>
Date: Mon, 29 Mar 2010 10:36:17 -0700

> These are minor changes related to chip versions as described
> in current Marvell driver.

Applied to net-next-2.6, thanks.

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2010-03-31  2:45 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-03-29 17:36 [PATCH 0/3] sky2 minor driver updates Stephen Hemminger
2010-03-29 17:36 ` [PATCH 1/3] sky2: support Yukon EC_U rev B1 and later Stephen Hemminger
2010-03-29 17:36 ` [PATCH 2/3] sky2: add XL revisions Stephen Hemminger
2010-03-29 17:36 ` [PATCH 3/3] sky2: avoid duplicate link up on Optima chip Stephen Hemminger
2010-03-31  2:45 ` [PATCH 0/3] sky2 minor driver updates David Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).