Re: [PATCH] myri10ge: update the firmware download URL in Kconfig

2006-09-06 Thread Jeff Garzik

Brice Goglin wrote:

Jeff,

Could you please push the following patch to Linus before 2.6.18?
It updates the firmware download URL in Kconfig to match the header
in drivers/net/myri10ge/myri10ge.c.

Thanks!
Brice Goglin


In future patches, please ensure comments such as the above quoted 
always follow the "---" terminator line.  Otherwise, I must hand-edit 
out these comments, before running git-applymbox to apply your patch(es).


applied


-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] myri10ge: update the firmware download URL in Kconfig

2006-09-05 Thread Brice Goglin
Jeff,

Could you please push the following patch to Linus before 2.6.18?
It updates the firmware download URL in Kconfig to match the header
in drivers/net/myri10ge/myri10ge.c.

Thanks!
Brice Goglin



From: Brice Goglin <[EMAIL PROTECTED]>

[PATCH] myri10ge: update the firmware download URL in Kconfig

Update the firmware download URL in Kconfig to match the header
in drivers/net/myri10ge/myri10ge.c.

Signed-off-by: Brice Goglin <[EMAIL PROTECTED]>
---
 drivers/net/Kconfig |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Index: linux-rc/drivers/net/Kconfig
===
--- linux-rc.orig/drivers/net/Kconfig   2006-09-05 11:19:37.0 -0400
+++ linux-rc/drivers/net/Kconfig2006-09-05 11:19:49.0 -0400
@@ -2393,7 +2393,7 @@
  you will need a newer firmware image.
  You may get this image or more information, at:
 
- <http://www.myri.com/Myri-10G/>
+ <http://www.myri.com/scs/download-Myri10GE.html>
 
  To compile this driver as a module, choose M here and read
  .  The module


-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] myri10ge update

2006-06-08 Thread Brice Goglin
The following patch updates the myri10ge to 1.0.0, with the following changes:
* Switch to dma_alloc_coherent API.
* Avoid PCI burst when writing the firmware on chipset with unaligned 
completions.
* Use ethtool_op_set_tx_hw_csum instead of ethtool_op_set_tx_csum.
* Include linux/dma-mapping.h to bring DMA_32/64BIT_MASK on all architectures
  (was missing at least on alpha).
* Some typo and warning fixes.

Please apply.

Note that Andrew's myri10ge-alpha-build-fix.patch would conflict,
but it does not seem to have been merged in netdev-2.6 anyway.

Thanks.

Signed-off-by: Brice Goglin <[EMAIL PROTECTED]>
Signed-off-by: Andrew J. Gallatin <[EMAIL PROTECTED]>

 drivers/net/myri10ge/myri10ge.c |   57 +++---
 1 file changed, 37 insertions(+), 20 deletions(-)

diff -urNp linux-mm.old/drivers/net/myri10ge/myri10ge.c 
linux-mm/drivers/net/myri10ge/myri10ge.c
--- linux-mm.old/drivers/net/myri10ge/myri10ge.c2006-06-04 
08:51:00.0 -0400
+++ linux-mm/drivers/net/myri10ge/myri10ge.c2006-06-07 11:28:20.0 
-0400
@@ -44,6 +44,7 @@
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -62,7 +63,6 @@
 #include 
 #include 
 #include 
-#include 
 #include 
 #ifdef CONFIG_MTRR
 #include 
@@ -71,7 +71,7 @@
 #include "myri10ge_mcp.h"
 #include "myri10ge_mcp_gen_header.h"
 
-#define MYRI10GE_VERSION_STR "0.9.0"
+#define MYRI10GE_VERSION_STR "1.0.0"
 
 MODULE_DESCRIPTION("Myricom 10G driver (10GbE)");
 MODULE_AUTHOR("Maintainer: [EMAIL PROTECTED]");
@@ -480,7 +478,19 @@ static int myri10ge_load_hotplug_firmwar
goto abort_with_fw;
 
crc = crc32(~0, fw->data, fw->size);
-   memcpy_toio(mgp->sram + MYRI10GE_FW_OFFSET, fw->data, fw->size);
+   if (mgp->tx.boundary == 2048) {
+   /* Avoid PCI burst on chipset with unaligned completions. */
+   int i;
+   __iomem u32 *ptr = (__iomem u32 *) (mgp->sram +
+   MYRI10GE_FW_OFFSET);
+   for (i = 0; i < fw->size / 4; i++) {
+   __raw_writel(((u32 *) fw->data)[i], ptr + i);
+   wmb();
+   }
+   } else {
+   myri10ge_pio_copy(mgp->sram + MYRI10GE_FW_OFFSET, fw->data,
+ fw->size);
+   }
/* corruption checking is good for parity recovery and buggy chipset */
memcpy_fromio(fw->data, mgp->sram + MYRI10GE_FW_OFFSET, fw->size);
reread_crc = crc32(~0, fw->data, fw->size);
@@ -536,6 +548,7 @@ static int myri10ge_load_firmware(struct
u32 dma_low, dma_high, size;
int status, i;
 
+   size = 0;
status = myri10ge_load_hotplug_firmware(mgp, &size);
if (status) {
dev_warn(&mgp->pdev->dev, "hotplug firmware loading failed\n");
@@ -778,7 +791,7 @@ myri10ge_submit_8rx(struct mcp_kreq_ethe
 }
 
 /*
- * Set of routunes to get a new receive buffer.  Any buffer which
+ * Set of routines to get a new receive buffer.  Any buffer which
  * crosses a 4KB boundary must start on a 4KB boundary due to PCIe
  * wdma restrictions. We also try to align any smaller allocation to
  * at least a 16 byte boundary for efficiency.  We assume the linux
@@ -1349,7 +1362,7 @@ static struct ethtool_ops myri10ge_ethto
.get_rx_csum = myri10ge_get_rx_csum,
.set_rx_csum = myri10ge_set_rx_csum,
.get_tx_csum = ethtool_op_get_tx_csum,
-   .set_tx_csum = ethtool_op_set_tx_csum,
+   .set_tx_csum = ethtool_op_set_tx_hw_csum,
.get_sg = ethtool_op_get_sg,
.set_sg = ethtool_op_set_sg,
 #ifdef NETIF_F_TSO
@@ -2615,12 +2628,13 @@ static int myri10ge_probe(struct pci_dev
dev_err(&pdev->dev, "Error %d setting DMA mask\n", status);
goto abort_with_netdev;
}
-   mgp->cmd = pci_alloc_consistent(pdev, sizeof(*mgp->cmd), &mgp->cmd_bus);
+   mgp->cmd = dma_alloc_coherent(&pdev->dev, sizeof(*mgp->cmd),
+ &mgp->cmd_bus, GFP_KERNEL);
if (mgp->cmd == NULL)
goto abort_with_netdev;
 
-   mgp->fw_stats = pci_alloc_consistent(pdev, sizeof(*mgp->fw_stats),
-&mgp->fw_stats_bus);
+   mgp->fw_stats = dma_alloc_coherent(&pdev->dev, sizeof(*mgp->fw_stats),
+  &mgp->fw_stats_bus, GFP_KERNEL);
if (mgp->fw_stats == NULL)
goto abort_with_cmd;
 
@@ -2659,8 +2673,8 @@ static int myri10ge_probe(struct pci_dev
 
/* allocate rx done ring */
bytes = myri10ge_max_intr_slots * sizeof(*mgp->rx_done.entry);
-   mgp->rx_done.entry =
-   pci_alloc_consistent(pdev, bytes, &mgp->rx_done.bus);
+   mgp->rx_done.entry = dma_alloc_coherent(&pdev->dev, bytes,
+   &mgp->rx_done.bus, GFP_KERNEL);
if (mgp->rx_done.entry == NULL)
goto abort_with_ioremap