p_drv = to_pcmcia_drv(dev->driver);
        s = p_dev->socket;
  
-       ds_dbg(1, "trying to bind %s to %s\n", p_dev->dev.bus_id,
-              p_drv->drv.name);
 +      /* 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_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))) {
 
  
  /* FIXME: platform dependent resource declaration has to move out of this file */
  #ifdef CONFIG_ARCH_PXA
 -#include <asm/arch/pxa-regs.h>
 +#include <mach/pxa-regs.h>
  #endif
  
- #ifdef DEBUG
+ #ifdef CONFIG_PCMCIA_DEBUG
  
  static int pc_debug;
  module_param(pc_debug, int, 0644);