Commit d4536e93 authored by Len Brown's avatar Len Brown

Merge intel.com:/home/lenb/bk/linux-2.6.0

into intel.com:/home/lenb/bk/linux-acpi-test-2.6.0
parents bde5c490 da136c4d
......@@ -166,7 +166,6 @@ int module_probe_snum(module_t *m, nasid_t nasid)
{
lboard_t *board;
klmod_serial_num_t *comp;
char * bcopy(const char * src, char * dest, int count);
char serial_number[16];
/*
......@@ -215,9 +214,9 @@ int module_probe_snum(module_t *m, nasid_t nasid)
#endif
if (comp->snum.snum_str[0] != '\0') {
bcopy(comp->snum.snum_str,
m->sys_snum,
MAX_SERIAL_NUM_SIZE);
memcpy(m->sys_snum,
comp->snum.snum_str,
MAX_SERIAL_NUM_SIZE);
m->sys_snum_valid = 1;
}
}
......
......@@ -29,8 +29,6 @@
#include <asm/sn/io.h>
#include <asm/sn/sn_private.h>
extern char *bcopy(const char * src, char * dest, int count);
#define PCI_BUS_NO_1 1
......@@ -51,7 +49,7 @@ pic_bus1_inventory_dup(vertex_hdl_t conn_v, vertex_hdl_t peer_conn_v)
(arbitrary_info_t *)&pinv) == GRAPH_SUCCESS)
{
NEW(peer_pinv);
bcopy((const char *)pinv, (char *)peer_pinv, sizeof(inventory_t));
memcpy(peer_pinv, pinv, sizeof(inventory_t));
if (hwgraph_info_add_LBL(peer_conn_v, INFO_LBL_INVENT,
(arbitrary_info_t)peer_pinv) != GRAPH_SUCCESS) {
DEL(peer_pinv);
......
......@@ -636,9 +636,11 @@ static int cciss_ioctl(struct inode *inode, struct file *filep,
{
return -EINVAL;
}
#if 0 /* 'buf_size' member is 16-bits, and always smaller than kmalloc limit */
/* Check kmalloc limits */
if(iocommand.buf_size > 128000)
return -EINVAL;
#endif
if(iocommand.buf_size > 0)
{
buff = kmalloc(iocommand.buf_size, GFP_KERNEL);
......
......@@ -39,7 +39,7 @@
#include <linux/genhd.h>
#include <linux/ps2esdi.h>
#include <linux/blkdev.h>
#include <linux/mca.h>
#include <linux/mca-legacy.h>
#include <linux/init.h>
#include <linux/ioport.h>
#include <linux/module.h>
......
......@@ -91,9 +91,9 @@ static int amd64_insert_memory(struct agp_memory *mem, off_t pg_start, int type)
for (i = 0, j = pg_start; i < mem->page_count; i++, j++) {
tmp = agp_bridge->driver->mask_memory(mem->memory[i], mem->type);
BUG_ON(tmp & 0xffffff0000000ffc);
pte = (tmp & 0x000000ff00000000) >> 28;
pte |=(tmp & 0x00000000fffff000);
BUG_ON(tmp & 0xffffff0000000ffcULL);
pte = (tmp & 0x000000ff00000000ULL) >> 28;
pte |=(tmp & 0x00000000fffff000ULL);
pte |= GPTE_VALID | GPTE_COHERENT;
agp_bridge->gatt_table[j] = pte;
......
......@@ -304,22 +304,16 @@ int __init ide_probe_for_pdc4030(void)
#ifndef MODULE
if (enable_promise_support == 0)
return;
return 0;
#endif
for (index = 0; index < MAX_HWIFS; index++) {
hwif = &ide_hwifs[index];
if (hwif->chipset == ide_unknown && detect_pdc4030(hwif)) {
#ifndef MODULE
setup_pdc4030(hwif);
#else
if (hwif->chipset == ide_unknown && detect_pdc4030(hwif))
return setup_pdc4030(hwif);
#endif
}
}
#ifdef MODULE
return 0;
#endif
}
static void __exit release_pdc4030(ide_hwif_t *hwif, ide_hwif_t *mate)
......
......@@ -28,7 +28,7 @@
#include <linux/module.h>
#include <linux/device.h>
#include <linux/mca.h>
#include <linux/mca-legacy.h>
#include <asm/io.h>
/* NOTE: This structure is stack allocated */
......
......@@ -120,12 +120,13 @@ static int mca_default_procfn(char* buf, struct mca_device *mca_dev)
len += sprintf(buf+len, "Id: %02x%02x\n",
mca_dev->pos[1], mca_dev->pos[0]);
len += sprintf(buf+len, "Enabled: %s\nPOS: ",
mca_isenabled(slot) ? "Yes" : "No");
mca_device_status(mca_dev) == MCA_ADAPTER_NORMAL ?
"Yes" : "No");
for(i=0; i<8; i++) {
len += sprintf(buf+len, "%02x ", mca_dev->pos[i]);
}
len += sprintf(buf+len, "\nDriver Installed: %s",
mca_is_adapter_used(slot) ? "Yes" : "No");
mca_device_claimed(mca_dev) ? "Yes" : "No");
buf[len++] = '\n';
buf[len] = 0;
......@@ -189,6 +190,7 @@ void __init mca_do_proc_init(void)
/* Initialize /proc/mca entries for existing adapters */
for(i = 0; i < MCA_NUMADAPTERS; i++) {
enum MCA_AdapterStatus status;
mca_dev = mca_find_device_by_slot(i);
if(!mca_dev)
continue;
......@@ -200,7 +202,10 @@ void __init mca_do_proc_init(void)
else if(i == MCA_INTEGSCSI) sprintf(mca_dev->procname,"scsi");
else if(i == MCA_MOTHERBOARD) sprintf(mca_dev->procname,"planar");
if(!mca_isadapter(i)) continue;
status = mca_device_status(mca_dev);
if (status != MCA_ADAPTER_NORMAL &&
status != MCA_ADAPTER_DISABLED)
continue;
node = create_proc_read_entry(mca_dev->procname, 0, proc_mca,
mca_read_proc, (void *)mca_dev);
......
......@@ -102,7 +102,7 @@
#include <linux/slab.h>
#include <linux/interrupt.h>
#include <linux/delay.h>
#include <linux/mca.h>
#include <linux/mca-legacy.h>
#include <linux/ethtool.h>
#include <asm/uaccess.h>
......
......@@ -92,7 +92,7 @@ DRV_NAME ".c:v" DRV_VERSION " " DRV_RELDATE " Richard Proctor (rnp@netlink.co.nz
#include <linux/types.h>
#include <linux/fcntl.h>
#include <linux/interrupt.h>
#include <linux/mca.h>
#include <linux/mca-legacy.h>
#include <linux/ioport.h>
#include <linux/in.h>
#include <linux/skbuff.h>
......
......@@ -67,7 +67,6 @@ extern int elplus_probe(struct net_device *);
extern int ac3200_probe(struct net_device *);
extern int es_probe(struct net_device *);
extern int lne390_probe(struct net_device *);
extern int ne3210_probe(struct net_device *);
extern int e2100_probe(struct net_device *);
extern int ni5010_probe(struct net_device *);
extern int ni52_probe(struct net_device *);
......@@ -154,9 +153,6 @@ static struct devprobe eisa_probes[] __initdata = {
#endif
#ifdef CONFIG_LNE390
{lne390_probe, 0},
#endif
#ifdef CONFIG_NE3210
{ne3210_probe, 0},
#endif
{NULL, 0},
};
......
......@@ -43,7 +43,7 @@
#include <linux/errno.h>
#include <linux/netdevice.h>
#include <linux/etherdevice.h>
#include <linux/mca.h>
#include <linux/mca-legacy.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/types.h>
......
......@@ -113,7 +113,6 @@
#include <linux/etherdevice.h>
#include <linux/skbuff.h>
#include <linux/slab.h>
#include <linux/mca.h>
#include <linux/mca-legacy.h>
#include <linux/spinlock.h>
......
......@@ -82,7 +82,7 @@ special acknowledgements to:
#include <linux/interrupt.h>
#include <linux/delay.h>
#include <linux/time.h>
#include <linux/mca.h>
#include <linux/mca-legacy.h>
#include <linux/module.h>
#include <linux/netdevice.h>
#include <linux/etherdevice.h>
......
......@@ -70,7 +70,7 @@ static const char *version = "ne2.c:v0.91 Nov 16 1998 Wim Dumon <wimpie@kotnet.o
#include <linux/string.h>
#include <linux/errno.h>
#include <linux/init.h>
#include <linux/mca.h>
#include <linux/mca-legacy.h>
#include <linux/netdevice.h>
#include <linux/etherdevice.h>
#include <linux/skbuff.h>
......
......@@ -23,6 +23,7 @@
This driver WILL NOT WORK FOR THE NE3200 - it is completely different
and does not use an 8390 at all.
Updated to EISA probing API 5/2003 by Marc Zyngier.
*/
static const char *version =
......@@ -44,9 +45,6 @@ static const char *version =
#include "8390.h"
int ne3210_probe(struct net_device *dev);
static int ne3210_probe1(struct net_device *dev, int ioaddr);
static int ne3210_open(struct net_device *dev);
static int ne3210_close(struct net_device *dev);
......@@ -59,7 +57,6 @@ static void ne3210_block_output(struct net_device *dev, int count, const unsigne
#define NE3210_START_PG 0x00 /* First page of TX buffer */
#define NE3210_STOP_PG 0x80 /* Last page +1 of RX ring */
#define NE3210_ID_PORT 0xc80 /* Same for all EISA cards */
#define NE3210_IO_EXTENT 0x20
#define NE3210_SA_PROM 0x16 /* Start of e'net addr. */
#define NE3210_RESET_PORT 0xc84
......@@ -69,10 +66,9 @@ static void ne3210_block_output(struct net_device *dev, int count, const unsigne
#define NE3210_ADDR1 0x00
#define NE3210_ADDR2 0x1b
#define NE3210_ID 0x0118cc3a /* 0x3acc = 1110 10110 01100 = nvl */
#define NE3210_CFG1 0xc84 /* NB: 0xc84 is also "reset" port. */
#define NE3210_CFG2 0xc90
#define NE3210_CFG_EXTENT (NE3210_CFG2 - NE3210_CFG1 + 1)
/*
* You can OR any of the following bits together and assign it
......@@ -89,152 +85,108 @@ static void ne3210_block_output(struct net_device *dev, int count, const unsigne
static unsigned char irq_map[] __initdata = {15, 12, 11, 10, 9, 7, 5, 3};
static unsigned int shmem_map[] __initdata = {0xff0, 0xfe0, 0xfff0, 0xd8, 0xffe0, 0xffc0, 0xd0, 0x0};
/*
* Probe for the card. The best way is to read the EISA ID if it
* is known. Then we can check the prefix of the station address
* PROM for a match against the value assigned to Novell.
*/
int __init ne3210_probe(struct net_device *dev)
static const char *ifmap[] __initdata = {"UTP", "?", "BNC", "AUI"};
static int ifmap_val[] __initdata = {
IF_PORT_10BASET,
IF_PORT_UNKNOWN,
IF_PORT_10BASE2,
IF_PORT_AUI,
};
static int __init ne3210_eisa_probe (struct device *device)
{
unsigned short ioaddr = dev->base_addr;
SET_MODULE_OWNER(dev);
if (ioaddr > 0x1ff) /* Check a single specified location. */
return ne3210_probe1(dev, ioaddr);
else if (ioaddr > 0) /* Don't probe at all. */
return -ENXIO;
unsigned long ioaddr, phys_mem;
int i, retval, port_index;
struct eisa_device *edev = to_eisa_device (device);
struct net_device *dev;
if (!EISA_bus) {
#if NE3210_DEBUG & NE3210_D_PROBE
printk("ne3210-debug: Not an EISA bus. Not probing high ports.\n");
#endif
return -ENXIO;
/* Allocate dev->priv and fill in 8390 specific dev fields. */
if (!(dev = alloc_ei_netdev ())) {
printk ("ne3210.c: unable to allocate memory for dev!\n");
return -ENOMEM;
}
/* EISA spec allows for up to 16 slots, but 8 is typical. */
for (ioaddr = 0x1000; ioaddr < 0x9000; ioaddr += 0x1000)
if (ne3210_probe1(dev, ioaddr) == 0)
return 0;
return -ENODEV;
}
static int __init ne3210_probe1(struct net_device *dev, int ioaddr)
{
int i, retval;
unsigned long eisa_id;
const char *ifmap[] = {"UTP", "?", "BNC", "AUI"};
if (!request_region(dev->base_addr, NE3210_IO_EXTENT, dev->name))
return -EBUSY;
SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, device);
device->driver_data = dev;
ioaddr = edev->base_addr;
if (inb_p(ioaddr + NE3210_ID_PORT) == 0xff) {
retval = -ENODEV;
if (ethdev_init (dev)) {
printk ("ne3210.c: unable to allocate memory for dev->priv!\n");
retval = -ENOMEM;
goto out;
}
#if NE3210_DEBUG & NE3210_D_PROBE
printk("ne3210-debug: probe at %#x, ID %#8x\n", ioaddr, inl(ioaddr + NE3210_ID_PORT));
printk("ne3210-debug: config regs: %#x %#x\n",
inb(ioaddr + NE3210_CFG1), inb(ioaddr + NE3210_CFG2));
#endif
/* Check the EISA ID of the card. */
eisa_id = inl(ioaddr + NE3210_ID_PORT);
if (eisa_id != NE3210_ID) {
retval = -ENODEV;
if (!request_region(ioaddr, NE3210_IO_EXTENT, dev->name)) {
retval = -EBUSY;
goto out;
}
#if 0
/* Check the vendor ID as well. Not really required. */
if (inb(ioaddr + NE3210_SA_PROM + 0) != NE3210_ADDR0
|| inb(ioaddr + NE3210_SA_PROM + 1) != NE3210_ADDR1
|| inb(ioaddr + NE3210_SA_PROM + 2) != NE3210_ADDR2 ) {
printk("ne3210.c: card not found");
for(i = 0; i < ETHER_ADDR_LEN; i++)
printk(" %02x", inb(ioaddr + NE3210_SA_PROM + i));
printk(" (invalid prefix).\n");
retval = -ENODEV;
goto out;
if (!request_region(ioaddr + NE3210_CFG1,
NE3210_CFG_EXTENT, dev->name)) {
retval = -EBUSY;
goto out1;
}
#if NE3210_DEBUG & NE3210_D_PROBE
printk("ne3210-debug: probe at %#x, ID %s\n", ioaddr, edev->id.sig);
printk("ne3210-debug: config regs: %#x %#x\n",
inb(ioaddr + NE3210_CFG1), inb(ioaddr + NE3210_CFG2));
#endif
/* Allocate dev->priv and fill in 8390 specific dev fields. */
if (ethdev_init(dev)) {
printk ("ne3210.c: unable to allocate memory for dev->priv!\n");
retval = -ENOMEM;
goto out;
}
port_index = inb(ioaddr + NE3210_CFG2) >> 6;
printk("ne3210.c: NE3210 in EISA slot %d, media: %s, addr:",
ioaddr/0x1000, ifmap[inb(ioaddr + NE3210_CFG2) >> 6]);
edev->slot, ifmap[port_index]);
for(i = 0; i < ETHER_ADDR_LEN; i++)
printk(" %02x", (dev->dev_addr[i] = inb(ioaddr + NE3210_SA_PROM + i)));
printk(".\nne3210.c: ");
/* Snarf the interrupt now. CFG file has them all listed as `edge' with share=NO */
if (dev->irq == 0) {
unsigned char irq_reg = inb(ioaddr + NE3210_CFG2) >> 3;
dev->irq = irq_map[irq_reg & 0x07];
printk("using");
} else {
/* This is useless unless we reprogram the card here too */
if (dev->irq == 2) dev->irq = 9; /* Doh! */
printk("assigning");
}
printk(" IRQ %d,", dev->irq);
dev->irq = irq_map[(inb(ioaddr + NE3210_CFG2) >> 3) & 0x07];
printk(".\nne3210.c: using IRQ %d, ", dev->irq);
retval = request_irq(dev->irq, ei_interrupt, 0, dev->name, dev);
if (retval) {
printk (" unable to get IRQ %d.\n", dev->irq);
goto out1;
goto out2;
}
if (dev->mem_start == 0) {
unsigned char mem_reg = inb(ioaddr + NE3210_CFG2) & 0x07;
dev->mem_start = shmem_map[mem_reg] * 0x1000;
printk(" using ");
} else {
/* Should check for value in shmem_map and reprogram the card to use it */
dev->mem_start &= 0xfff8000;
printk(" assigning ");
}
printk("%dkB memory at physical address %#lx\n",
NE3210_STOP_PG/4, dev->mem_start);
phys_mem = shmem_map[inb(ioaddr + NE3210_CFG2) & 0x07] * 0x1000;
/*
BEWARE!! Some dain-bramaged EISA SCUs will allow you to put
the card mem within the region covered by `normal' RAM !!!
*/
if (dev->mem_start > 1024*1024) { /* phys addr > 1MB */
if (dev->mem_start < virt_to_phys(high_memory)) {
if (phys_mem > 1024*1024) { /* phys addr > 1MB */
if (phys_mem < virt_to_phys(high_memory)) {
printk(KERN_CRIT "ne3210.c: Card RAM overlaps with normal memory!!!\n");
printk(KERN_CRIT "ne3210.c: Use EISA SCU to set card memory below 1MB,\n");
printk(KERN_CRIT "ne3210.c: or to an address above 0x%lx.\n", virt_to_phys(high_memory));
printk(KERN_CRIT "ne3210.c: Driver NOT installed.\n");
retval = -EINVAL;
goto out2;
goto out3;
}
dev->mem_start = (unsigned long)ioremap(dev->mem_start, NE3210_STOP_PG*0x100);
if (dev->mem_start == 0) {
printk(KERN_ERR "ne3210.c: Unable to remap card memory above 1MB !!\n");
printk(KERN_ERR "ne3210.c: Try using EISA SCU to set memory below 1MB.\n");
printk(KERN_ERR "ne3210.c: Driver NOT installed.\n");
retval = -EAGAIN;
goto out2;
}
ei_status.reg0 = 1; /* Use as remap flag */
printk("ne3210.c: remapped %dkB card memory to virtual address %#lx\n",
NE3210_STOP_PG/4, dev->mem_start);
}
if (!request_mem_region (phys_mem, NE3210_STOP_PG*0x100, dev->name)) {
printk ("ne3210.c: Unable to request shared memory at physical address %#lx\n",
phys_mem);
goto out3;
}
printk("%dkB memory at physical address %#lx\n",
NE3210_STOP_PG/4, phys_mem);
dev->mem_start = (unsigned long)ioremap(phys_mem, NE3210_STOP_PG*0x100);
if (dev->mem_start == 0) {
printk(KERN_ERR "ne3210.c: Unable to remap card memory !!\n");
printk(KERN_ERR "ne3210.c: Driver NOT installed.\n");
retval = -EAGAIN;
goto out4;
}
printk("ne3210.c: remapped %dkB card memory to virtual address %#lx\n",
NE3210_STOP_PG/4, dev->mem_start);
dev->mem_end = ei_status.rmem_end = dev->mem_start
+ (NE3210_STOP_PG - NE3210_START_PG)*256;
ei_status.rmem_start = dev->mem_start + TX_PAGES*256;
......@@ -247,6 +199,7 @@ static int __init ne3210_probe1(struct net_device *dev, int ioaddr)
ei_status.rx_start_page = NE3210_START_PG + TX_PAGES;
ei_status.stop_page = NE3210_STOP_PG;
ei_status.word16 = 1;
ei_status.priv = phys_mem;
if (ei_debug > 0)
printk(version);
......@@ -258,18 +211,46 @@ static int __init ne3210_probe1(struct net_device *dev, int ioaddr)
dev->open = &ne3210_open;
dev->stop = &ne3210_close;
dev->if_port = ifmap_val[port_index];
if ((retval = register_netdev (dev)))
goto out5;
NS8390_init(dev, 0);
return 0;
out2:
free_irq(dev->irq, dev);
out1:
kfree(dev->priv);
dev->priv = NULL;
out:
release_region(ioaddr, NE3210_IO_EXTENT);
out5:
iounmap((void *)dev->mem_start);
out4:
release_mem_region (phys_mem, NE3210_STOP_PG*0x100);
out3:
free_irq (dev->irq, dev);
out2:
release_region (ioaddr + NE3210_CFG1, NE3210_CFG_EXTENT);
out1:
release_region (ioaddr, NE3210_IO_EXTENT);
out:
free_netdev (dev);
return retval;
}
static int __devexit ne3210_eisa_remove (struct device *device)
{
struct net_device *dev = device->driver_data;
unsigned long ioaddr = to_eisa_device (device)->base_addr;
unregister_netdev (dev);
iounmap((void *)dev->mem_start);
release_mem_region (ei_status.priv, NE3210_STOP_PG*0x100);
free_irq (dev->irq, dev);
release_region (ioaddr + NE3210_CFG1, NE3210_CFG_EXTENT);
release_region (ioaddr, NE3210_IO_EXTENT);
free_netdev (dev);
return 0;
}
/*
* Reset by toggling the "Board Enable" bits (bit 2 and 0).
*/
......@@ -309,7 +290,7 @@ static void
ne3210_get_8390_hdr(struct net_device *dev, struct e8390_pkt_hdr *hdr, int ring_page)
{
unsigned long hdr_start = dev->mem_start + ((ring_page - NE3210_START_PG)<<8);
isa_memcpy_fromio(hdr, hdr_start, sizeof(struct e8390_pkt_hdr));
memcpy_fromio(hdr, hdr_start, sizeof(struct e8390_pkt_hdr));
hdr->count = (hdr->count + 3) & ~3; /* Round up allocation. */
}
......@@ -327,12 +308,12 @@ static void ne3210_block_input(struct net_device *dev, int count, struct sk_buff
if (xfer_start + count > ei_status.rmem_end) {
/* Packet wraps over end of ring buffer. */
int semi_count = ei_status.rmem_end - xfer_start;
isa_memcpy_fromio(skb->data, xfer_start, semi_count);
memcpy_fromio(skb->data, xfer_start, semi_count);
count -= semi_count;
isa_memcpy_fromio(skb->data + semi_count, ei_status.rmem_start, count);
memcpy_fromio(skb->data + semi_count, ei_status.rmem_start, count);
} else {
/* Packet is in one chunk. */
isa_memcpy_fromio(skb->data, xfer_start, count);
memcpy_fromio(skb->data, xfer_start, count);
}
}
......@@ -342,7 +323,7 @@ static void ne3210_block_output(struct net_device *dev, int count,
unsigned long shmem = dev->mem_start + ((start_page - NE3210_START_PG)<<8);
count = (count + 3) & ~3; /* Round up to doubleword */
isa_memcpy_toio(shmem, buf, count);
memcpy_toio(shmem, buf, count);
}
static int ne3210_open(struct net_device *dev)
......@@ -361,7 +342,23 @@ static int ne3210_close(struct net_device *dev)
return 0;
}
static struct eisa_device_id ne3210_ids[] = {
{ "EGL0101" },
{ "NVL1801" },
{ "" },
};
static struct eisa_driver ne3210_eisa_driver = {
.id_table = ne3210_ids,
.driver = {
.name = "ne3210",
.probe = ne3210_eisa_probe,
.remove = __devexit_p (ne3210_eisa_remove),
},
};
#ifdef MODULE
#if 0
#define MAX_NE3210_CARDS 4 /* Max number of NE3210 cards per module */
static struct net_device dev_ne3210[MAX_NE3210_CARDS];
static int io[MAX_NE3210_CARDS];
......@@ -374,50 +371,22 @@ MODULE_PARM(mem, "1-" __MODULE_STRING(MAX_NE3210_CARDS) "i");
MODULE_PARM_DESC(io, "I/O base address(es)");
MODULE_PARM_DESC(irq, "IRQ number(s)");
MODULE_PARM_DESC(mem, "memory base address(es)");
#endif
#endif /* MODULE */
MODULE_DESCRIPTION("NE3210 EISA Ethernet driver");
MODULE_LICENSE("GPL");
int init_module(void)
int ne3210_init(void)
{
int this_dev, found = 0;
for (this_dev = 0; this_dev < MAX_NE3210_CARDS; this_dev++) {
struct net_device *dev = &dev_ne3210[this_dev];
dev->irq = irq[this_dev];
dev->base_addr = io[this_dev];
dev->mem_start = mem[this_dev];
dev->init = ne3210_probe;
/* Default is to only install one card. */
if (io[this_dev] == 0 && this_dev != 0) break;
if (register_netdev(dev) != 0) {
printk(KERN_WARNING "ne3210.c: No NE3210 card found (i/o = 0x%x).\n", io[this_dev]);
if (found != 0) { /* Got at least one. */
return 0;
}
return -ENXIO;
}
found++;
}
return 0;
return eisa_driver_register (&ne3210_eisa_driver);
}
void cleanup_module(void)
void ne3210_cleanup(void)
{
int this_dev;
for (this_dev = 0; this_dev < MAX_NE3210_CARDS; this_dev++) {
struct net_device *dev = &dev_ne3210[this_dev];
if (dev->priv != NULL) {
free_irq(dev->irq, dev);
release_region(dev->base_addr, NE3210_IO_EXTENT);
if (ei_status.reg0)
iounmap((void *)dev->mem_start);
unregister_netdev(dev);
kfree(dev->priv);
dev->priv = NULL;
}
}
eisa_driver_unregister (&ne3210_eisa_driver);
}
#endif /* MODULE */
module_init (ne3210_init);
module_exit (ne3210_cleanup);
......@@ -89,7 +89,7 @@ paper sources:
#include <linux/interrupt.h>
#include <linux/delay.h>
#include <linux/time.h>
#include <linux/mca.h>
#include <linux/mca-legacy.h>
#include <linux/init.h>
#include <linux/module.h>
#include <linux/version.h>
......
......@@ -20,7 +20,7 @@
static const char version[] = "madgemc.c: v0.91 23/01/2000 by Adam Fritzler\n";
#include <linux/module.h>
#include <linux/mca.h>
#include <linux/mca-legacy.h>
#include <linux/kernel.h>
#include <linux/errno.h>
#include <linux/pci.h>
......
......@@ -43,7 +43,7 @@
#include <linux/errno.h>
#include <linux/init.h>
#include <linux/pci.h>
#include <linux/mca.h>
#include <linux/mca-legacy.h>
#include <linux/delay.h>
#include <linux/netdevice.h>
#include <linux/etherdevice.h>
......
......@@ -721,9 +721,9 @@ static int arlan_hw_tx(struct net_device *dev, char *buf, int length)
else
{
netif_stop_queue (dev);
return -1;
IFDEBUG(ARLAN_DEBUG_TX_CHAIN)
printk(KERN_ERR "TX TAIL & HEAD full, return, tailStart %d headEnd %d\n", tailStarts, headEnds);
return -1;
}
priv->out_bytes += length;
priv->out_bytes10 += length;
......@@ -1881,6 +1881,8 @@ int __init arlan_probe(struct net_device *dev)
#ifdef MODULE
static int probe = probeUNKNOWN;
static int __init arlan_find_devices(void)
{
int m;
......
......@@ -7757,7 +7757,7 @@ static void ncr_init_ccb(ncb_p np, ccb_p cp)
cp->start.schedule.l_cmd = cpu_to_scr(SCR_JUMP);
cp->start.p_phys = cpu_to_scr(CCB_PHYS(cp, phys));
bcopy(&cp->start, &cp->restart, sizeof(cp->restart));
memcpy(&cp->restart, &cp->start, sizeof(cp->restart));
cp->start.schedule.l_paddr = cpu_to_scr(NCB_SCRIPT_PHYS (np, idle));
cp->restart.schedule.l_paddr = cpu_to_scr(NCB_SCRIPTH_PHYS (np, abort));
......
......@@ -70,10 +70,6 @@
#include <scsi/scsi_host.h>
#include "../scsi.h" /* XXX: DID_* */
#ifndef bcopy
#define bcopy(s, d, n) memcpy((d), (s), (n))
#endif
#ifndef bzero
#define bzero(d, n) memset((d), 0, (n))
#endif
......
......@@ -5889,9 +5889,9 @@ int sym_hcb_attach(hcb_p np, struct sym_fw *fw)
/*
* Copy scripts to controller instance.
*/
bcopy(fw->a_base, np->scripta0, np->scripta_sz);
bcopy(fw->b_base, np->scriptb0, np->scriptb_sz);
bcopy(fw->z_base, np->scriptz0, np->scriptz_sz);
memcpy(np->scripta0, fw->a_base, np->scripta_sz);
memcpy(np->scriptb0, fw->b_base, np->scriptb_sz);
memcpy(np->scriptz0, fw->z_base, np->scriptz_sz);
/*
* Setup variable parts in scripts and compute
......
......@@ -225,7 +225,7 @@ void sym_announce_transfer_rate(hcb_p np, int target)
*/
void sym_update_trans_settings(hcb_p np, tcb_p tp)
{
bcopy(&tp->tinfo.user, &tp->tinfo.goal, sizeof(tp->tinfo.goal));
memcpy(&tp->tinfo.goal, &tp->tinfo.user, sizeof(tp->tinfo.goal));
if (tp->inq_version >= 4) {
switch(tp->inq_byte56 & INQ56_CLOCKING) {
......
......@@ -88,10 +88,6 @@
#define u_int unsigned int
#define u_long unsigned long
#ifndef bcopy
#define bcopy(s, d, n) memcpy((d), (s), (n))
#endif
#ifndef bcmp
#define bcmp(s, d, n) memcmp((d), (s), (n))
#endif
......
......@@ -838,7 +838,7 @@ int diWrite(tid_t tid, struct inode *ip)
*/
if (S_ISDIR(ip->i_mode)
&& (ip->i_ipmnt->i_mntflag & JFS_DASD_ENABLED))
bcopy(&ip->i_DASD, &dp->di_DASD, sizeof(struct dasd));
memcpy(&dp->di_DASD, &ip->i_DASD, sizeof(struct dasd));
#endif /* _JFS_FASTDASD */
/* release the buffer holding the updated on-disk inode.
......
......@@ -359,11 +359,11 @@ static inline int hdlcdrv_ptt(struct hdlcdrv_state *s)
void hdlcdrv_receiver(struct net_device *, struct hdlcdrv_state *);
void hdlcdrv_transmitter(struct net_device *, struct hdlcdrv_state *);
void hdlcdrv_arbitrate(struct net_device *, struct hdlcdrv_state *);
int hdlcdrv_register_hdlcdrv(struct net_device *dev, const struct hdlcdrv_ops *ops,
unsigned int privsize, char *ifname,
unsigned int baseaddr, unsigned int irq,
unsigned int dma);
int hdlcdrv_unregister_hdlcdrv(struct net_device *dev);
struct net_device *hdlcdrv_register(const struct hdlcdrv_ops *ops,
unsigned int privsize, const char *ifname,
unsigned int baseaddr, unsigned int irq,
unsigned int dma);
void hdlcdrv_unregister(struct net_device *dev);
/* -------------------------------------------------------------------- */
......
......@@ -7,6 +7,8 @@
#ifndef _LINUX_MCA_LEGACY_H
#define _LINUX_MCA_LEGACY_H
#include <linux/mca.h>
#warning "MCA legacy - please move your driver to the new sysfs api"
/* MCA_NOTFOUND is an error condition. The other two indicate
......
......@@ -136,10 +136,6 @@ extern void mca_unregister_driver(struct mca_driver *drv);
/* WARNING: only called by the boot time device setup */
extern int mca_register_device(int bus, struct mca_device *mca_dev);
#ifdef CONFIG_MCA_LEGACY
#include <linux/mca-legacy.h>
#endif
#ifdef CONFIG_MCA_PROC_FS
extern void mca_do_proc_init(void);
extern void mca_set_adapter_procfn(int slot, MCA_ProcFn, void* dev);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment