Hi there,
ok I found a patch that was kind of ok somewhere on a freebsd mailing list.
The patch works and I can ping without any problem, initializing a ssh session 
also works.
However at some time after switching wlan on and transferring a file i.e. the 
system simply freezes.
No dropping to kernel debug console or the like.
Any ideas on that one ?

Greetings,
Tobias

--- if_anreg.h  2005-07-28 18:52:44.000000000 +0200
+++ if_anreg.h  2008-05-17 22:30:39.042056810 +0200
@@ -395,13 +395,16 @@ struct an_txframe_802_3 {
 #define AN_PAYLOADTYPE_ETHER   0x0000
 #define AN_PAYLOADTYPE_LLC     0x0010
 
-#define AN_TXCTL_80211 \
-       (AN_TXCTL_TXOK_INTR|AN_TXCTL_TXERR_INTR|AN_HEADERTYPE_80211|    \
-       AN_PAYLOADTYPE_LLC|AN_TXCTL_NORELEASE)
-
-#define AN_TXCTL_8023  \
-       (AN_TXCTL_TXOK_INTR|AN_TXCTL_TXERR_INTR|AN_HEADERTYPE_8023|     \
-       AN_PAYLOADTYPE_ETHER|AN_TXCTL_NORELEASE)
+#define AN_TXCTL_80211         (AN_HEADERTYPE_80211|AN_PAYLOADTYPE_LLC)
+
+#define AN_TXCTL_8023          (AN_HEADERTYPE_8023|AN_PAYLOADTYPE_ETHER)
+
+/* 
+ * Additions to transmit control bits for MPI350
+ */
+
+#define AN_TXCTL_HW(x)         ( x ? (AN_TXCTL_NORELEASE) : \
+       (AN_TXCTL_TXOK_INTR|AN_TXCTL_TXERR_INTR|AN_TXCTL_NORELEASE))
 
 #define AN_TXGAP_80211         0
 #define AN_TXGAP_8023          0

--- if_an.c     2007-04-07 13:01:06.000000000 +0200
+++ if_an.c     2008-05-17 22:29:04.536671228 +0200
@@ -2529,7 +2529,7 @@ an_start(struct ifnet *ifp)
                                   tx_frame_802_3.an_tx_802_3_payload_len,
                                   (caddr_t)&sc->an_txbuf);
 
-                       txcontrol = AN_TXCTL_8023;
+                       txcontrol = AN_TXCTL_8023 | AN_TXCTL_HW(sc->mpi350);
                        /* write the txcontrol only */
                        an_write_data(sc, id, 0x08, (caddr_t)&txcontrol,
                                      sizeof(txcontrol));
@@ -2588,7 +2588,7 @@ an_start(struct ifnet *ifp)
                                   tx_frame_802_3.an_tx_802_3_payload_len,
                                   (caddr_t)&sc->an_txbuf);
 
-                       txcontrol = AN_TXCTL_8023;
+                       txcontrol = AN_TXCTL_8023 | AN_TXCTL_HW(sc->mpi350);
                        /* write the txcontrol only */
                        bcopy((caddr_t)&txcontrol, &buf[0x08],
                              sizeof(txcontrol));


-- 
Jost Tobias Springenberg <[EMAIL PROTECTED]>

Reply via email to