Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d74472f0 authored by Finn Thain's avatar Finn Thain Committed by Linus Torvalds
Browse files

SONIC: small fix and cleanup



Fix a potential problem in the timeout handling: don't free the DMA buffers
before resetting the chip.

Also a trivial cleanup. Bring macsonic and jazzsonic into sync.

Signed-off-by: default avatarFinn Thain <fthain@telegraphics.com.au>
Signed-off-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 8b6aaab8
Loading
Loading
Loading
Loading
+8 −9
Original line number Diff line number Diff line
@@ -522,7 +522,7 @@ int __init mac_nubus_sonic_probe(struct net_device* dev)
	return macsonic_init(dev);
}

static int __init mac_sonic_probe(struct platform_device *device)
static int __init mac_sonic_probe(struct platform_device *pdev)
{
	struct net_device *dev;
	struct sonic_local *lp;
@@ -534,8 +534,8 @@ static int __init mac_sonic_probe(struct platform_device *device)
		return -ENOMEM;

	lp = netdev_priv(dev);
	lp->device = &device->dev;
	SET_NETDEV_DEV(dev, &device->dev);
	lp->device = &pdev->dev;
	SET_NETDEV_DEV(dev, &pdev->dev);
 	SET_MODULE_OWNER(dev);

	/* This will catch fatal stuff like -ENOMEM as well as success */
@@ -576,9 +576,9 @@ MODULE_PARM_DESC(sonic_debug, "macsonic debug level (1-4)");

#include "sonic.c"

static int __devexit mac_sonic_device_remove (struct platform_device *device)
static int __devexit mac_sonic_device_remove (struct platform_device *pdev)
{
	struct net_device *dev = platform_get_drvdata(device);
	struct net_device *dev = platform_get_drvdata(pdev);
	struct sonic_local* lp = netdev_priv(dev);

	unregister_netdev(dev);
@@ -607,9 +607,8 @@ static int __init mac_sonic_init_module(void)
	}

	mac_sonic_device = platform_device_alloc(mac_sonic_string, 0);
	if (!mac_sonic_device) {
	if (!mac_sonic_device)
		goto out_unregister;
	}

	if (platform_device_add(mac_sonic_device)) {
		platform_device_put(mac_sonic_device);
+6 −1
Original line number Diff line number Diff line
@@ -178,8 +178,13 @@ static void sonic_tx_timeout(struct net_device *dev)
{
	struct sonic_local *lp = netdev_priv(dev);
	int i;
	/* Stop the interrupts for this */
	/*
	 * put the Sonic into software-reset mode and
	 * disable all interrupts before releasing DMA buffers
	 */
	SONIC_WRITE(SONIC_IMR, 0);
	SONIC_WRITE(SONIC_ISR, 0x7fff);
	SONIC_WRITE(SONIC_CMD, SONIC_CR_RST);
	/* We could resend the original skbs. Easier to re-initialise. */
	for (i = 0; i < SONIC_NUM_TDS; i++) {
		if(lp->tx_laddr[i]) {
+2 −2

File changed.

Contains only whitespace changes.