Skip to contentSkip to conversation

important fixes for ieee1394 subsystem

PATCH RESEND New Andreas Bombe 1 participant 1 message Feb 5, 2001

lore
Share & tools
lore
#0 lore raw

PATCH RESEND 1/1 important fixes for ieee1394 subsystem

I have sent the following patch three times to you during 2.4.1 prepatch time and you seem to have missed all of them (Jan 15, 19 and 25). I hope we can manage that for 2.4.2 and get the known bugs with fixes out of the ieee1394 subsystem. Finally.

Please, either show some sign of life by replying or making a 2.4.2-pre patch with this included this week. Thanks to the subsystem not being modified the same patch from 2.4.0 times applies to 2.4.2-pre1.

* It completes the adaption to the new task queue structure. Instead of plain INIT_LIST_HEAD internal macros are used to make backporting to 2.2 easy (fixes 1 oops, the rest makes initialization just clean).

* PCILynx bus reset handling was modified to make it much more robust with multiple bus resets in quick succession (fixes possible driver hangs).

* The definition of ohci_csr_rom was moved from ohci1394.h to ohci1394.c. The header file is also included in video1394.c (fixes build failure when neither ohci1394 nor video1394 are configured as module or not built). There is apparantly a different patch for this in Alan's tree.

* Five symbols in pcilynx.h were renamed to something more descriptive. Not a bug fix, but it's so small...

drivers/ieee1394/guid.c +1 -1
diff -ruN linux-2.4.orig/drivers/ieee1394/guid.c linux-2.4.linus/drivers/ieee1394/guid.c
@@ -163,7 +163,7 @@
                         return;
                 }
 
-                INIT_LIST_HEAD(&greq->tq.list);
+                INIT_TQ_LINK(greq->tq);
                 greq->tq.sync = 0;
                 greq->tq.routine = (void (*)(void*))pkt_complete;
                 greq->tq.data = greq;
drivers/ieee1394/hosts.c +1 -0
diff -ruN linux-2.4.orig/drivers/ieee1394/hosts.c linux-2.4.linus/drivers/ieee1394/hosts.c
@@ -106,6 +106,7 @@
         sema_init(&h->tlabel_count, 64);
         spin_lock_init(&h->tlabel_lock);
 
+        INIT_TQ_LINK(h->timeout_tq);
         h->timeout_tq.routine = (void (*)(void*))abort_timedouts;
         h->timeout_tq.data = h;
 
drivers/ieee1394/ieee1394_core.c +1 -0
diff -ruN linux-2.4.orig/drivers/ieee1394/ieee1394_core.c linux-2.4.linus/drivers/ieee1394/ieee1394_core.c
@@ -98,6 +98,7 @@
                 packet->data_size = data_size;
         }
 
+        INIT_TQ_HEAD(packet->complete_tq);
         INIT_LIST_HEAD(&packet->list);
         sema_init(&packet->state_change, 0);
         packet->state = unused;
drivers/ieee1394/ieee1394_types.h +3 -0
diff -ruN linux-2.4.orig/drivers/ieee1394/ieee1394_types.h linux-2.4.linus/drivers/ieee1394/ieee1394_types.h
@@ -15,6 +15,9 @@
 #define V22_COMPAT_MOD_INC_USE_COUNT do {} while (0)
 #define V22_COMPAT_MOD_DEC_USE_COUNT do {} while (0)
 #define OWNER_THIS_MODULE owner: THIS_MODULE,
+
+#define INIT_TQ_LINK(tq) INIT_LIST_HEAD(&(tq).list)
+#define INIT_TQ_HEAD(tq) INIT_LIST_HEAD(&(tq))
 #endif
 
 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,3,18)
drivers/ieee1394/ohci1394.c +77 -1

96 lines not on this page · raw message

drivers/ieee1394/ohci1394.h +0 -73

79 lines not on this page · raw message

drivers/ieee1394/pcilynx.c +68 -22

186 lines not on this page · raw message

drivers/ieee1394/pcilynx.h +7 -5
diff -ruN linux-2.4.orig/drivers/ieee1394/pcilynx.h linux-2.4.linus/drivers/ieee1394/pcilynx.h
@@ -80,6 +80,8 @@
         struct hpsb_host *host;
 
         int phyid, isroot;
+        int selfid_size;
+        int phy_reg0;
 
         spinlock_t phy_reg_lock;
 
@@ -248,9 +250,9 @@
 #define FIFO_SIZES                        0xa00
 
 #define FIFO_CONTROL                      0xa10
-#define GRF_FLUSH                         (1<<4)
-#define ITF_FLUSH                         (1<<3)
-#define ATF_FLUSH                         (1<<2)
+#define FIFO_CONTROL_GRF_FLUSH            (1<<4)
+#define FIFO_CONTROL_ITF_FLUSH            (1<<3)
+#define FIFO_CONTROL_ATF_FLUSH            (1<<2)
 
 #define FIFO_XMIT_THRESHOLD               0xa14
 
@@ -285,8 +287,8 @@
 #define DMA_WORD1_CMP_MATCH_OTHERBUS      (1<<15)
 #define DMA_WORD1_CMP_MATCH_BROADCAST     (1<<14)
 #define DMA_WORD1_CMP_MATCH_BUS_BCAST     (1<<13)
-#define DMA_WORD1_CMP_MATCH_NODE_BCAST    (1<<12)
-#define DMA_WORD1_CMP_MATCH_LOCAL         (1<<11)
+#define DMA_WORD1_CMP_MATCH_LOCAL_NODE    (1<<12)
+#define DMA_WORD1_CMP_MATCH_EXACT         (1<<11)
 #define DMA_WORD1_CMP_ENABLE_SELF_ID      (1<<10)
 #define DMA_WORD1_CMP_ENABLE_MASTER       (1<<8)
 
drivers/ieee1394/raw1394.c +1 -0
diff -ruN linux-2.4.orig/drivers/ieee1394/raw1394.c linux-2.4.linus/drivers/ieee1394/raw1394.c
@@ -64,6 +64,7 @@
         if (req != NULL) {
                 memset(req, 0, sizeof(struct pending_request));
                 INIT_LIST_HEAD(&req->list);
+                INIT_TQ_LINK(req->tq);
                 req->tq.routine = (void(*)(void*))queue_complete_cb;
         }
 
Signature · 6 lines
 Andreas E. Bombe <[email protected]>    DSA key 0x04880A44
http://home.pages.de/~andreas.bombe/    http://linux1394.sourceforge.net/
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/