SOURCES: ueagle-atm4-rev326.patch (NEW) - upstream

paszczus paszczus at pld-linux.org
Sun Jul 1 14:36:03 CEST 2007


Author: paszczus                     Date: Sun Jul  1 12:36:03 2007 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- upstream

---- Files affected:
SOURCES:
   ueagle-atm4-rev326.patch (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: SOURCES/ueagle-atm4-rev326.patch
diff -u /dev/null SOURCES/ueagle-atm4-rev326.patch:1.1
--- /dev/null	Sun Jul  1 14:36:03 2007
+++ SOURCES/ueagle-atm4-rev326.patch	Sun Jul  1 14:35:58 2007
@@ -0,0 +1,288 @@
+--- ueagle-atm4.old/driver/ueagle-atm.c	2006-11-23 21:13:28.000000000 +0100
++++ ueagle-atm4/ueagle-atm.c	2007-07-01 14:25:17.300691905 +0200
+@@ -64,8 +64,13 @@
+ #include <linux/kthread.h>
+ #include <linux/version.h>
+ #include <linux/mutex.h>
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20)
++#include <linux/freezer.h>
++#endif
++
+ #include <asm/unaligned.h>
+ 
++
+ #include "usbatm.h"
+ 
+ #define EAGLEUSBVERSION "ueagle 1.4"
+@@ -337,12 +342,24 @@
+ 	 ((a) & 0xff) << 8  |						\
+ 	 ((b) & 0xff))
+ 
++#if 0
+ #define SA_CNTL MAKESA('C', 'N', 'T', 'L')
+ #define SA_DIAG MAKESA('D', 'I', 'A', 'G')
+ #define SA_INFO MAKESA('I', 'N', 'F', 'O')
+ #define SA_OPTN MAKESA('O', 'P', 'T', 'N')
+ #define SA_RATE MAKESA('R', 'A', 'T', 'E')
+ #define SA_STAT MAKESA('S', 'T', 'A', 'T')
++#else
++/* from windows cmv */
++#define SA_CNTL 1
++#define SA_STAT 2
++#define SA_INFO 3
++#define SA_TEST 4
++#define SA_OPTN 5
++#define SA_RATE 6
++#define SA_DIAG 7
++#define SA_CNFG 8
++#endif
+ 
+ 	//XXX merge Address and Index
+ 	__be16 wOffset;
+@@ -736,7 +753,11 @@
+  */
+ static void uea_load_page(void *xsc)
+ {
++#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,19)
+ 	struct uea_softc *sc = xsc;
++#else
++	struct uea_softc *sc = container_of(xsc, struct uea_softc, task);
++#endif
+ 	u8 pageno = sc->pageno;
+ 	int i;
+ 	struct block_info bi;
+@@ -936,7 +957,7 @@
+ 	data = sc->stats.phy.state;
+ 
+ 	/* XXX only need to be done before operationnal... */
+-	ret = uea_read_cmv(sc, 1, 2, 0, 0, &sc->stats.phy.state);
++	ret = uea_read_cmv(sc, 1, SA_STAT, 0, 0, &sc->stats.phy.state);
+ 	if (ret < 0)
+ 		return ret;
+ 
+@@ -1014,7 +1035,7 @@
+ 	 * we should find the equivalent of eagle3- CMV
+ 	 */
+ 	/* check flags */
+-	ret = uea_read_cmv(sc, 1, 7, 0, 0, &sc->stats.phy.flags);
++	ret = uea_read_cmv(sc, 1, SA_DIAG, 0, 0, &sc->stats.phy.flags);
+ 	if (ret < 0)
+ 		return ret;
+ 	sc->stats.phy.mflags |= sc->stats.phy.flags;
+@@ -1032,12 +1053,12 @@
+ 		return 0;
+ 	}
+ 
+-	ret = uea_read_cmv(sc, 4, 6, 0, 0, &data);
++	ret = uea_read_cmv(sc, 4, SA_RATE, 0, 0, &data);
+ 	if (ret < 0)
+ 		return ret;
+ 	sc->stats.phy.usrate = data / 1000;
+ 
+-	ret = uea_read_cmv(sc, 4, 6, 1, 0, &data);
++	ret = uea_read_cmv(sc, 4, SA_RATE, 1, 0, &data);
+ 	if (ret < 0)
+ 		return ret;
+ 
+@@ -1060,25 +1081,25 @@
+ 	sc->stats.phy.dsrate = data / 1000;
+ 	UPDATE_ATM_STAT(link_rate, sc->stats.phy.dsrate * 1000 / 424);
+ 
+-	ret = uea_read_cmv(sc, 1, 3, 68, 1, &data);
++	ret = uea_read_cmv(sc, 1, SA_INFO, 68, 1, &data);
+ 	if (ret < 0)
+ 		return ret;
+ 	sc->stats.phy.dsattenuation = data / 10;
+ 
+-	ret = uea_read_cmv(sc, 1, 3, 69, 1, &data);
++	ret = uea_read_cmv(sc, 1, SA_INFO, 69, 1, &data);
+ 	if (ret < 0)
+ 		return ret;
+ 	sc->stats.phy.usattenuation = data / 10;
+ 
+-	ret = uea_read_cmv(sc, 1, 3, 68, 3, &data);
++	ret = uea_read_cmv(sc, 1, SA_INFO, 68, 3, &data);
+ 	if (ret < 0)
+ 		return ret;
+-	sc->stats.phy.dsmargin = data / 10;
++	sc->stats.phy.dsmargin = data / 2;
+ 
+-	ret = uea_read_cmv(sc, 1, 3, 69, 3, &data);
++	ret = uea_read_cmv(sc, 1, SA_INFO, 69, 3, &data);
+ 	if (ret < 0)
+ 		return ret;
+-	sc->stats.phy.usmargin = data / 2;
++	sc->stats.phy.usmargin = data / 10;
+ 
+ #if 0
+ 	ret = uea_read_cmv(sc, SA_DIAG, 51, &sc->stats.phy.rxflow);
+@@ -1221,72 +1242,126 @@
+ 	/* XXX try to use a generic format for all CMV ? */
+ 	//old firmware : pots xxxx
+ #if 0
+-	ret = uea_write_cmv(sc, 1, 5, 13, 0, 0x1);
++	ret = uea_write_cmv(sc, 1, SA_OPTN, 13, 0, 0x1);
++	if (ret < 0)
++		return ret;
++	ret = uea_write_cmv(sc, 1, SA_OPTN, 0, 0, 0x9104);
++	if (ret < 0)
++		return ret;
++	ret = uea_write_cmv(sc, 1, SA_OPTN, 3, 0, 0x100);
+ 	if (ret < 0)
+ 		return ret;
+-	ret = uea_write_cmv(sc, 1, 5, 0, 0, 0x9104);
++	ret = uea_write_cmv(sc, 1, SA_TEST, 31, 0, 0x602);
+ 	if (ret < 0)
+ 		return ret;
+-	ret = uea_write_cmv(sc, 1, 5, 3, 0, 0x100);
++	ret = uea_write_cmv(sc, 1, SA_INFO, 97, 9, 0xf);
+ 	if (ret < 0)
+ 		return ret;
+-	ret = uea_write_cmv(sc, 1, 4, 31, 0, 0x602);
++	ret = uea_write_cmv(sc, 1, SA_CNFG, 34, 8, 0x3E8);
+ 	if (ret < 0)
+ 		return ret;
+-	ret = uea_write_cmv(sc, 1, 3, 97, 9, 0xf);
++	ret = uea_write_cmv(sc, 1, SA_CNFG, 0, 8, 0x7D0);
+ 	if (ret < 0)
+ 		return ret;
+-	ret = uea_write_cmv(sc, 1, 8, 34, 8, 0x3E8);
++	ret = uea_write_cmv(sc, 1, SA_CNTL, 0, 0, 0x2);
+ 	if (ret < 0)
+ 		return ret;
+-	ret = uea_write_cmv(sc, 1, 8, 0, 8, 0x7D0);
++#elif defined(SAPO)
++//CMV from sapo (portugal) windows driver
++	ret = uea_write_cmv(sc, 1, SA_OPTN, 13, 0, 0x1);
+ 	if (ret < 0)
+ 		return ret;
+-	ret = uea_write_cmv(sc, 1, 1, 0, 0, 0x2);
++	ret = uea_write_cmv(sc, 1, SA_OPTN, 0, 0, 0x4);
+ 	if (ret < 0)
+ 		return ret;
++	ret = uea_write_cmv(sc, 1, SA_OPTN, 1, 0, 0x2103);
++	if (ret < 0)
++		return ret;
++	ret = uea_write_cmv(sc, 1, SA_OPTN, 20, 0, 0x40);
++	if (ret < 0)
++		return ret;
++	ret = uea_write_cmv(sc, 1, SA_OPTN, 21, 0, 0x40);
++	if (ret < 0)
++		return ret;
++	ret = uea_write_cmv(sc, 1, SA_TEST, 33, 0, 0xfffe);
++	if (ret < 0)
++		return ret;
++	ret = uea_write_cmv(sc, 1, SA_TEST, 32, 0, 0xa0);
++	if (ret < 0)
++		return ret;
++	ret = uea_write_cmv(sc, 1, SA_TEST, 31, 0, 0x602);
++	if (ret < 0)
++		return ret;
++	ret = uea_write_cmv(sc, 1, SA_INFO, 97, 9, 0xf);
++	if (ret < 0)
++		return ret;
++	ret = uea_write_cmv(sc, 1, SA_CNFG, 34, 8, 0x3e8);
++	if (ret < 0)
++		return ret;
++	ret = uea_write_cmv(sc, 1, SA_CNFG, 0, 8, 0x7d0);
++	if (ret < 0)
++		return ret;
++	ret = uea_write_cmv(sc, 1, SA_INFO, 60, 0, 0xb5);
++	if (ret < 0)
++		return ret;
++	ret = uea_write_cmv(sc, 1, SA_INFO, 60, 1, 0x4153);
++	if (ret < 0)
++		return ret;
++	ret = uea_write_cmv(sc, 1, SA_INFO, 60, 2, 0x4d47);
++	if (ret < 0)
++		return ret;
++	ret = uea_write_cmv(sc, 1, SA_INFO, 61, 0, 0x400);
++	if (ret < 0)
++		return ret;
++	ret = uea_write_cmv(sc, 1, SA_INFO, 61, 1, 0x505);
++	if (ret < 0)
++		return ret;
++	ret = uea_write_cmv(sc, 1, SA_CNTL, 0, 0, 0x2);
++	if (ret < 0)
++		return ret;
++
+ #else
+ 	//CMV for 0x0a10050b/3.0.15
+-	ret = uea_write_cmv(sc, 1, 5, 13, 0, 0x1);
++	ret = uea_write_cmv(sc, 1, SA_OPTN, 13, 0, 0x1);
+ 	if (ret < 0)
+ 		return ret;
+-	ret = uea_write_cmv(sc, 1, 5, 0, 0, 0x1104);
++	ret = uea_write_cmv(sc, 1, SA_OPTN, 0, 0, 0x1104);
+ 	if (ret < 0)
+ 		return ret;
+-	ret = uea_write_cmv(sc, 1, 5, 1, 0, 0x2103);
++	ret = uea_write_cmv(sc, 1, SA_OPTN, 1, 0, 0x2103);
+ 	if (ret < 0)
+ 		return ret;
+-	ret = uea_write_cmv(sc, 1, 5, 16, 0, 0x20);
++	ret = uea_write_cmv(sc, 1, SA_OPTN, 16, 0, 0x20);
+ 	if (ret < 0)
+ 		return ret;
+-	ret = uea_write_cmv(sc, 1, 5, 20, 0, 0x40);
++	ret = uea_write_cmv(sc, 1, SA_OPTN, 20, 0, 0x40);
+ 	if (ret < 0)
+ 		return ret;
+-	ret = uea_write_cmv(sc, 1, 5, 21, 0, 0x40);
++	ret = uea_write_cmv(sc, 1, SA_OPTN, 21, 0, 0x40);
+ 	if (ret < 0)
+ 		return ret;
+-	ret = uea_write_cmv(sc, 1, 4, 33, 0, 0xfffe);
++	ret = uea_write_cmv(sc, 1, SA_TEST, 33, 0, 0xfffe);
+ 	if (ret < 0)
+ 		return ret;
+-	ret = uea_write_cmv(sc, 1, 4, 32, 0, 0xa0);
++	ret = uea_write_cmv(sc, 1, SA_TEST, 32, 0, 0xa0);
+ 	if (ret < 0)
+ 		return ret;
+-	ret = uea_write_cmv(sc, 1, 4, 31, 0, 0x602);
++	ret = uea_write_cmv(sc, 1, SA_TEST, 31, 0, 0x602);
+ 	if (ret < 0)
+ 		return ret;
+-	ret = uea_write_cmv(sc, 1, 3, 97, 9, 0xf);
++	ret = uea_write_cmv(sc, 1, SA_INFO, 97, 9, 0xf);
+ 	if (ret < 0)
+ 		return ret;
+-	ret = uea_write_cmv(sc, 1, 8, 34, 8, 0x3e8);
++	ret = uea_write_cmv(sc, 1, SA_CNFG, 34, 8, 0x3e8);
+ 	if (ret < 0)
+ 		return ret;
+-	ret = uea_write_cmv(sc, 1, 8, 0, 8, 0x7d0);
++	ret = uea_write_cmv(sc, 1, SA_CNFG, 0, 8, 0x7d0);
+ 	if (ret < 0)
+ 		return ret;
+-	ret = uea_write_cmv(sc, 1, 3, 60, 0, 0xb5);
++	ret = uea_write_cmv(sc, 1, SA_INFO, 60, 0, 0xb5);
+ 	if (ret < 0)
+ 		return ret;
+-	ret = uea_write_cmv(sc, 1, 1, 0, 0, 0x2);
++	ret = uea_write_cmv(sc, 1, SA_CNTL, 0, 0, 0x2);
+ 	if (ret < 0)
+ 		return ret;
+ 
+@@ -1301,7 +1376,7 @@
+ 
+ 	/* Dump firmware version */
+ 	/* XXX don't read the 3th byte as it is always 6 */
+-	ret = uea_read_cmv(sc, 2, 3, 55, 0, &sc->stats.phy.firmid);
++	ret = uea_read_cmv(sc, 2, SA_INFO, 55, 0, &sc->stats.phy.firmid);
+ 	if (ret < 0)
+ 		return ret;
+ 	uea_info(INS_TO_USBDEV(sc), "ATU-R firmware version : %x\n",
+@@ -1511,7 +1586,11 @@
+ 
+ 	uea_enters(INS_TO_USBDEV(sc));
+ 
++#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,19)
+ 	INIT_WORK(&sc->task, uea_load_page, sc);
++#else
++	INIT_WORK(&sc->task, uea_load_page);
++#endif
+ 	init_waitqueue_head(&sc->sync_q);
+ 	init_waitqueue_head(&sc->cmv_ack_wait);
+ 
================================================================


More information about the pld-cvs-commit mailing list