diff mbox

SEEPROM test patch

Message ID 20090414172123.GA12319@xw6200.broadcom.net
State RFC, archived
Delegated to: David Miller
Headers show

Commit Message

Matt Carlson April 14, 2009, 5:21 p.m. UTC
James, Robin.  I looked through the patches again and found that the
SEEPROM routines were not being adjusted correctly along with the flash
NVRAM access routines.  The patch below should shore up the difference.
The patch works on both BE and LE systems.

Can you apply the patch below and see if it fixes your problem?  (You
may have to back out David's changes for the mac addresses to be
restored, but 'eeprom -e' dumps should be fixed.)  If it does, I'll
post a replacement patch that documents why the code is doing what it's
doing.



--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

James Bottomley April 14, 2009, 5:44 p.m. UTC | #1
On Tue, 2009-04-14 at 10:21 -0700, Matt Carlson wrote:
> James, Robin.  I looked through the patches again and found that the
> SEEPROM routines were not being adjusted correctly along with the flash
> NVRAM access routines.  The patch below should shore up the difference.
> The patch works on both BE and LE systems.
> 
> Can you apply the patch below and see if it fixes your problem?  (You
> may have to back out David's changes for the mac addresses to be
> restored, but 'eeprom -e' dumps should be fixed.)  If it does, I'll
> post a replacement patch that documents why the code is doing what it's
> doing.

Yes, that seems to work better:  both the mac address and ethtool -e
output are back to what 2.6.29 reports.

James


--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
holt@sgi.com April 14, 2009, 6:22 p.m. UTC | #2
On Tue, Apr 14, 2009 at 05:44:17PM +0000, James Bottomley wrote:
> On Tue, 2009-04-14 at 10:21 -0700, Matt Carlson wrote:
> > James, Robin.  I looked through the patches again and found that the
> > SEEPROM routines were not being adjusted correctly along with the flash
> > NVRAM access routines.  The patch below should shore up the difference.
> > The patch works on both BE and LE systems.
> > 
> > Can you apply the patch below and see if it fixes your problem?  (You
> > may have to back out David's changes for the mac addresses to be
> > restored, but 'eeprom -e' dumps should be fixed.)  If it does, I'll
> > post a replacement patch that documents why the code is doing what it's
> > doing.
> 
> Yes, that seems to work better:  both the mac address and ethtool -e
> output are back to what 2.6.29 reports.

Works for me as well.

Thanks,
Robin
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c
index 6a736dd..3ef43c2 100644
--- a/drivers/net/tg3.c
+++ b/drivers/net/tg3.c
@@ -2190,7 +2190,10 @@  static int tg3_nvram_read_using_eeprom(struct tg3 *tp,
 	if (!(tmp & EEPROM_ADDR_COMPLETE))
 		return -EBUSY;
 
-	*val = tr32(GRC_EEPROM_DATA);
+	tmp = tr32(GRC_EEPROM_DATA);
+
+	*val = swab32(tmp);
+
 	return 0;
 }
 
@@ -10657,13 +10660,13 @@  static int tg3_nvram_write_block_using_eeprom(struct tg3 *tp,
 
 	for (i = 0; i < len; i += 4) {
 		u32 addr;
-		__be32 data;
+		__le32 data;
 
 		addr = offset + i;
 
 		memcpy(&data, buf + i, 4);
 
-		tw32(GRC_EEPROM_DATA, be32_to_cpu(data));
+		tw32(GRC_EEPROM_DATA, le32_to_cpu(data));
 
 		val = tr32(GRC_EEPROM_ADDR);
 		tw32(GRC_EEPROM_ADDR, val | EEPROM_ADDR_COMPLETE);