From: Jeff Lightfoot <jeffml@pobox.com>

The following patch to net/sk98lin/skvpd.c was put together by Marc Bouget,
mbouget at club-internet.fr.

This patch works around a corrupt EEPROM (VPD?) in the ASUS K8V Deluxe SE
motherboard ethernet chipset and allows the network driver to work
correctly.  We have written to ASUS and the sk98lin maintainers but have
not heard anything back.
DESC
skvpd-build-fix
EDESC


---

 25-akpm/drivers/net/sk98lin/skvpd.c |   11 +++++++++++
 1 files changed, 11 insertions(+)

diff -puN drivers/net/sk98lin/skvpd.c~sk98lin-buggy-vpd-workaround drivers/net/sk98lin/skvpd.c
--- 25/drivers/net/sk98lin/skvpd.c~sk98lin-buggy-vpd-workaround	2004-04-07 20:30:04.000000000 -0700
+++ 25-akpm/drivers/net/sk98lin/skvpd.c	2004-04-07 21:38:50.932875760 -0700
@@ -468,6 +468,17 @@ SK_IOC	IoC)	/* IO Context */
 	
 	pAC->vpd.vpd_size = vpd_size;
 
+	/* Asus K8V Se Deluxe bugfix. Correct VPD content */
+	/* MBo April 2004 */
+	if (((unsigned char)pAC->vpd.vpd_buf[0x3f] == 0x38) &&
+	    ((unsigned char)pAC->vpd.vpd_buf[0x40] == 0x3c) &&
+	    ((unsigned char)pAC->vpd.vpd_buf[0x41] == 0x45)) {
+		printk("sk98lin: Asus mainboard with buggy VPD?"
+				"Correcting data.\n");
+		pAC->vpd.vpd_buf[0x40] = 0x38;
+	}
+
+
 	/* find the end tag of the RO area */
 	if (!(r = vpd_find_para(pAC, VPD_RV, &rp))) {
 		SK_DBG_MSG(pAC, SK_DBGMOD_VPD, SK_DBGCAT_ERR | SK_DBGCAT_FATAL,

_