From: Linus Torvalds Date: Mon, 13 Oct 2008 21:12:40 +0000 (-0700) Subject: Merge git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6 X-Git-Tag: v2.6.28-rc1~600 X-Git-Url: http://git.cascardo.eti.br/?a=commitdiff_plain;h=2be4ff2f084842839b041b793ed6237e8d1d315a;p=cascardo%2Flinux.git Merge git://git./linux/kernel/git/brodo/pcmcia-2.6 * git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6: (49 commits) pcmcia: ioctl-internal definitions pcmcia: cistpl header cleanup pcmcia: remove unused argument to pcmcia_parse_tuple() pcmcia: card services header cleanup pcmcia: device_id header cleanup pcmcia: encapsulate ioaddr_t pcmcia: cleanup device driver header file pcmcia: cleanup socket services header file pcmcia: merge ds_internal.h into cs_internal.h pcmcia: cleanup cs_internal.h pcmcia: cs_internal.h is internal pcmcia: use dev_printk for cs_error() pcmcia: remove CS_ error codes alltogether pcmcia: deprecate CS_BAD_TUPLE pcmcia: deprecate CS_BAD_ARGS pcmcia: deprecate CS_BAD_BASE, CS_BAD_IRQ, CS_BAD_OFFSET and CS_BAD_SIZE pcmcia: deprecate CS_BAD_ATTRIBUTE, CS_BAD_TYPE and CS_BAD_PAGE pcmcia: deprecate CS_NO_MORE_ITEMS pcmcia: deprecate CS_IN_USE pcmcia: deprecate CS_CONFIGURATION_LOCKED ... Fix trivial conflict in drivers/pcmcia/ds.c manually --- 2be4ff2f084842839b041b793ed6237e8d1d315a diff --cc drivers/pcmcia/ds.c index 34c83d3ca0fa,604249a170c5..795660255490 --- a/drivers/pcmcia/ds.c +++ b/drivers/pcmcia/ds.c @@@ -427,20 -394,7 +394,19 @@@ static int pcmcia_device_probe(struct d p_drv = to_pcmcia_drv(dev->driver); s = p_dev->socket; + /* The PCMCIA code passes the match data in via dev->driver_data + * which is an ugly hack. Once the driver probe is called it may + * and often will overwrite the match data so we must save it first + * + * handle pseudo multifunction devices: + * there are at most two pseudo multifunction devices. + * if we're matching against the first, schedule a + * call which will then check whether there are two + * pseudo devices, and if not, add the second one. + */ + did = p_dev->dev.driver_data; + - ds_dbg(1, "trying to bind %s to %s\n", p_dev->dev.bus_id, - p_drv->drv.name); + ds_dev_dbg(1, dev, "trying to bind to %s\n", p_drv->drv.name); if ((!p_drv->probe) || (!p_dev->function_config) || (!try_module_get(p_drv->owner))) { diff --cc drivers/pcmcia/soc_common.c index da3972153226,89edcbc3bfd2..f49ac6666153 --- a/drivers/pcmcia/soc_common.c +++ b/drivers/pcmcia/soc_common.c @@@ -51,10 -51,10 +51,10 @@@ /* FIXME: platform dependent resource declaration has to move out of this file */ #ifdef CONFIG_ARCH_PXA -#include +#include #endif - #ifdef DEBUG + #ifdef CONFIG_PCMCIA_DEBUG static int pc_debug; module_param(pc_debug, int, 0644);