/* * ds.c -- 16-bit PCMCIA core support * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. * * The initial developer of the original code is David A. Hinds * <dahinds@users.sourceforge.net>. Portions created by David A. Hinds * are Copyright (C) 1999 David A. Hinds. All Rights Reserved. * * (C) 1999 David A. Hinds * (C) 2003 - 2010 Dominik Brodowski */#include<linux/kernel.h>#include<linux/module.h>#include<linux/init.h>#include<linux/errno.h>#include<linux/list.h>#include<linux/delay.h>#include<linux/workqueue.h>#include<linux/crc32.h>#include<linux/firmware.h>#include<linux/kref.h>#include<linux/dma-mapping.h>#include<linux/slab.h>#include<pcmcia/cistpl.h>#include<pcmcia/ds.h>#include<pcmcia/ss.h>#include"cs_internal.h"/*====================================================================*//* Module parameters */MODULE_AUTHOR("David Hinds <dahinds@users.sourceforge.net>");MODULE_DESCRIPTION("PCMCIA Driver Services");MODULE_LICENSE("GPL");/*====================================================================*/staticvoidpcmcia_check_driver(structpcmcia_driver*p_drv){conststructpcmcia_device_id*did=p_drv->id_table;unsignedinti;u32hash;if(!p_drv->probe||!p_drv->remove)printk(KERN_DEBUG"pcmcia: %s lacks a requisite callback ""function\n",p_drv->name);while(did&&did->match_flags){for(i=0;i<4;i++){if(!did->prod_id[i])continue;