Merge git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6: pcmcia: avoid buffer overflow in pcmcia_setup_isa_irq pcmcia: do not request windows if you don't need to pcmcia: insert PCMCIA device resources into resource tree pcmcia: export resource information to sysfs pcmcia: use struct resource for PCMCIA devices, part 2 pcmcia: remove memreq_t pcmcia: move local definitions out of include/pcmcia/cs.h pcmcia: do not use io_req_t when calling pcmcia_request_io() pcmcia: do not use io_req_t after call to pcmcia_request_io() pcmcia: use struct resource for PCMCIA devices pcmcia: clean up cs.h pcmcia: use pcmica_{read,write}_config_byte pcmcia: remove cs_types.h pcmcia: remove unused flag, simplify headers pcmcia: remove obsolete CS_EVENT_ definitions pcmcia: split up central event handler pcmcia: simplify event callback pcmcia: remove obsolete ioctl Conflicts in: - drivers/staging/comedi/drivers/* - drivers/staging/wlags49_h2/wl_cs.c due to dev_info_t and whitespace changes
This commit is contained in:
@@ -20,7 +20,6 @@
|
||||
#include <asm/io.h>
|
||||
#include <asm/system.h>
|
||||
|
||||
#include <pcmcia/cs_types.h>
|
||||
#include <pcmcia/cs.h>
|
||||
#include <pcmcia/cistpl.h>
|
||||
#include <pcmcia/ciscode.h>
|
||||
@@ -76,9 +75,8 @@ static int avmcs_probe(struct pcmcia_device *p_dev)
|
||||
{
|
||||
|
||||
/* The io structure describes IO port mapping */
|
||||
p_dev->io.NumPorts1 = 16;
|
||||
p_dev->io.Attributes1 = IO_DATA_PATH_WIDTH_8;
|
||||
p_dev->io.NumPorts2 = 0;
|
||||
p_dev->resource[0]->end = 16;
|
||||
p_dev->resource[0]->flags |= IO_DATA_PATH_WIDTH_8;
|
||||
|
||||
/* General socket configuration */
|
||||
p_dev->conf.Attributes = CONF_ENABLE_IRQ;
|
||||
@@ -120,13 +118,9 @@ static int avmcs_configcheck(struct pcmcia_device *p_dev,
|
||||
if (cf->io.nwin <= 0)
|
||||
return -ENODEV;
|
||||
|
||||
p_dev->io.BasePort1 = cf->io.win[0].base;
|
||||
p_dev->io.NumPorts1 = cf->io.win[0].len;
|
||||
p_dev->io.NumPorts2 = 0;
|
||||
printk(KERN_INFO "avm_cs: testing i/o %#x-%#x\n",
|
||||
p_dev->io.BasePort1,
|
||||
p_dev->io.BasePort1+p_dev->io.NumPorts1-1);
|
||||
return pcmcia_request_io(p_dev, &p_dev->io);
|
||||
p_dev->resource[0]->start = cf->io.win[0].base;
|
||||
p_dev->resource[0]->end = cf->io.win[0].len;
|
||||
return pcmcia_request_io(p_dev);
|
||||
}
|
||||
|
||||
static int avmcs_config(struct pcmcia_device *link)
|
||||
@@ -192,9 +186,10 @@ static int avmcs_config(struct pcmcia_device *link)
|
||||
default:
|
||||
case AVM_CARDTYPE_B1: addcard = b1pcmcia_addcard_b1; break;
|
||||
}
|
||||
if ((i = (*addcard)(link->io.BasePort1, link->irq)) < 0) {
|
||||
dev_err(&link->dev, "avm_cs: failed to add AVM-Controller at i/o %#x, irq %d\n",
|
||||
link->io.BasePort1, link->irq);
|
||||
if ((i = (*addcard)(link->resource[0]->start, link->irq)) < 0) {
|
||||
dev_err(&link->dev,
|
||||
"avm_cs: failed to add AVM-Controller at i/o %#x, irq %d\n",
|
||||
(unsigned int) link->resource[0]->start, link->irq);
|
||||
avmcs_release(link);
|
||||
return -ENODEV;
|
||||
}
|
||||
@@ -212,7 +207,7 @@ static int avmcs_config(struct pcmcia_device *link)
|
||||
|
||||
static void avmcs_release(struct pcmcia_device *link)
|
||||
{
|
||||
b1pcmcia_delcard(link->io.BasePort1, link->irq);
|
||||
b1pcmcia_delcard(link->resource[0]->start, link->irq);
|
||||
pcmcia_disable_device(link);
|
||||
} /* avmcs_release */
|
||||
|
||||
|
Reference in New Issue
Block a user