Thread (1 message) 1 message, 1 author, 2004-03-27

[PATCH 4/8] 2.6.5-rc2 - sis190 update

DORMANTno replies

From: Francois Romieu <romieu@fr.zoreil.com>
Date: 2004-03-27 02:13:51

New helpers (shamelessly stolen from r8169 driver):
- sis190_mark_as_last_descriptor;
- sis190_give_to_asic.


 drivers/net/sis190.c |   20 ++++++++++++++------
 1 files changed, 14 insertions(+), 6 deletions(-)

diff -puN drivers/net/sis190.c~sis190-dma-api-rx-buffers-00 drivers/net/sis190.c
--- linux-2.6.5-rc2/drivers/net/sis190.c~sis190-dma-api-rx-buffers-00	2004-03-27 02:35:56.000000000 +0100
+++ linux-2.6.5-rc2-fr/drivers/net/sis190.c	2004-03-27 02:36:46.000000000 +0100
@@ -806,6 +806,17 @@ SiS190_hw_start(struct net_device *dev)
 
 }
 
+static inline void sis190_mark_as_last_descriptor(struct RxDesc *desc)
+{
+	desc->buf_Len |= cpu_to_le32(ENDbit);
+}
+
+static inline void sis190_give_to_asic(struct RxDesc *desc, dma_addr_t mapping)
+{
+	desc->buf_addr = cpu_to_le32(mapping);
+	desc->status |= cpu_to_le32(OWNbit | INTbit);
+}
+
 static int SiS190_init_ring(struct net_device *dev)
 {
 	struct sis190_private *tp = dev->priv;
@@ -828,19 +839,16 @@ static int SiS190_init_ring(struct net_d
 	for (i = 0; i < NUM_RX_DESC; i++) {
 		struct RxDesc *desc = tp->RxDescArray + i;
 		dma_addr_t mapping;
-		u32 len;
 
 		desc->PSize = 0x0;
-
-		len = RX_BUF_SIZE + ENDbit * !((i + 1) % NUM_RX_DESC);
+		desc->buf_Len = cpu_to_le32(RX_BUF_SIZE);
 
 		tp->RxBufferRing[i] = tp->RxBufferRings + i * RX_BUF_SIZE;
 		mapping = pci_map_single(tp->pci_dev,
 			tp->RxBufferRing[i], RX_BUF_SIZE, PCI_DMA_FROMDEVICE);
-		desc->buf_addr = cpu_to_le32(mapping);
-		desc->buf_Len = cpu_to_le32(len);
-		desc->status = cpu_to_le32(OWNbit | INTbit);
+		sis190_give_to_asic(desc, mapping);
 	}
+	sis190_mark_as_last_descriptor(tp->RxDescArray + NUM_RX_DESC - 1);
 
 	return 0;
 
_
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help