From: David S. Miller Date: Sat, 5 Dec 2009 23:22:26 +0000 (-0800) Subject: Merge branch 'master' of /home/davem/src/GIT/linux-2.6/ X-Git-Tag: v6.6-pxa1908~36825^2 X-Git-Url: https://git.dujemihanovic.xyz/?a=commitdiff_plain;h=28b4d5cc17c20786848cdc07b7ea237a309776bb;p=linux.git Merge branch 'master' of /home/davem/src/GIT/linux-2.6/ Conflicts: drivers/net/pcmcia/fmvj18x_cs.c drivers/net/pcmcia/nmclan_cs.c drivers/net/pcmcia/xirc2ps_cs.c drivers/net/wireless/ray_cs.c --- 28b4d5cc17c20786848cdc07b7ea237a309776bb diff --cc drivers/net/pcmcia/fmvj18x_cs.c index a6961215cd56,6e3e1ced6db4..8ad8384fc1c0 --- a/drivers/net/pcmcia/fmvj18x_cs.c +++ b/drivers/net/pcmcia/fmvj18x_cs.c @@@ -262,10 -255,8 +255,8 @@@ static int fmvj18x_probe(struct pcmcia_ link->io.IOAddrLines = 5; /* Interrupt setup */ - link->irq.Attributes = IRQ_TYPE_DYNAMIC_SHARING|IRQ_HANDLE_PRESENT; - link->irq.IRQInfo1 = IRQ_LEVEL_ID; + link->irq.Attributes = IRQ_TYPE_DYNAMIC_SHARING; - link->irq.Handler = &fjn_interrupt; + link->irq.Handler = fjn_interrupt; - link->irq.Instance = dev; /* General socket configuration */ link->conf.Attributes = CONF_ENABLE_IRQ; diff --cc drivers/net/pcmcia/nmclan_cs.c index b12e69592d18,dae5ef6b2609..8a5ae3b182ed --- a/drivers/net/pcmcia/nmclan_cs.c +++ b/drivers/net/pcmcia/nmclan_cs.c @@@ -477,10 -463,8 +463,8 @@@ static int nmclan_probe(struct pcmcia_d link->io.NumPorts1 = 32; link->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO; link->io.IOAddrLines = 5; - link->irq.Attributes = IRQ_TYPE_EXCLUSIVE | IRQ_HANDLE_PRESENT; - link->irq.IRQInfo1 = IRQ_LEVEL_ID; + link->irq.Attributes = IRQ_TYPE_EXCLUSIVE; - link->irq.Handler = &mace_interrupt; + link->irq.Handler = mace_interrupt; - link->irq.Instance = dev; link->conf.Attributes = CONF_ENABLE_IRQ; link->conf.IntType = INT_MEMORY_AND_IO; link->conf.ConfigIndex = 1; diff --cc drivers/net/pcmcia/smc91c92_cs.c index 117b083a10cb,9e0da370912e..cc4853bc0253 --- a/drivers/net/pcmcia/smc91c92_cs.c +++ b/drivers/net/pcmcia/smc91c92_cs.c @@@ -524,38 -478,40 +478,40 @@@ static int mhz_mfc_config(struct pcmcia mem.CardOffset = mem.Page = 0; if (smc->manfid == MANFID_MOTOROLA) mem.CardOffset = link->conf.ConfigBase; - i = pcmcia_map_mem_page(link->win, &mem); + i = pcmcia_map_mem_page(link, link->win, &mem); - if ((i == 0) - && (smc->manfid == MANFID_MEGAHERTZ) - && (smc->cardid == PRODID_MEGAHERTZ_EM3288)) - mhz_3288_power(link); + if ((i == 0) && + (smc->manfid == MANFID_MEGAHERTZ) && + (smc->cardid == PRODID_MEGAHERTZ_EM3288)) + mhz_3288_power(link); - free_cfg_mem: - kfree(cfg_mem); - return -ENODEV; + return 0; } - static int mhz_setup(struct pcmcia_device *link) + static int pcmcia_get_versmac(struct pcmcia_device *p_dev, + tuple_t *tuple, + void *priv) { - struct net_device *dev = link->priv; - struct smc_cfg_mem *cfg_mem; - tuple_t *tuple; - cisparse_t *parse; - u_char *buf, *station_addr; - int rc; + struct net_device *dev = priv; + cisparse_t parse; - cfg_mem = kmalloc(sizeof(struct smc_cfg_mem), GFP_KERNEL); - if (!cfg_mem) - return -1; + if (pcmcia_parse_tuple(tuple, &parse)) + return -EINVAL; - tuple = &cfg_mem->tuple; - parse = &cfg_mem->parse; - buf = cfg_mem->buf; + if ((parse.version_1.ns > 3) && + (cvt_ascii_address(dev, + (parse.version_1.str + parse.version_1.ofs[3])))) + return 0; - tuple->Attributes = tuple->TupleOffset = 0; - tuple->TupleData = (cisdata_t *)buf; - tuple->TupleDataMax = 255; + return -EINVAL; + }; + + static int mhz_setup(struct pcmcia_device *link) + { + struct net_device *dev = link->priv; + size_t len; + u8 *buf; + int rc; /* Read the station address from the CIS. It is stored as the last (fourth) string in the Version 1 Version/ID tuple. */