mtd/drivers/mtd/maps pcmciamtd.c,1.48,1.49
David Woodhouse
dwmw2 at infradead.org
Mon Jul 12 10:37:00 EDT 2004
Update of /home/cvs/mtd/drivers/mtd/maps
In directory phoenix.infradead.org:/tmp/cvs-serv24796
Modified Files:
pcmciamtd.c
Log Message:
Merge from 2.6
Index: pcmciamtd.c
===================================================================
RCS file: /home/cvs/mtd/drivers/mtd/maps/pcmciamtd.c,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -r1.48 -r1.49
--- pcmciamtd.c 24 Jun 2003 07:14:38 -0000 1.48
+++ pcmciamtd.c 12 Jul 2004 14:36:58 -0000 1.49
@@ -107,18 +107,7 @@
MODULE_PARM_DESC(mem_type, "Set Memory type (0=Flash, 1=RAM, 2=ROM, default=0)");
-
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,69)
-static inline void cs_error(client_handle_t handle, int func, int ret)
-{
- error_info_t err = { func, ret };
- CardServices(ReportError, handle, &err);
-}
-#endif
-
-
/* read/write{8,16} copy_{from,to} routines with window remapping to access whole card */
-
static caddr_t remap_window(struct map_info *map, unsigned long to)
{
struct pcmciamtd_dev *dev = (struct pcmciamtd_dev *)map->map_priv_1;
@@ -136,7 +125,7 @@
DEBUG(2, "Remapping window from 0x%8.8x to 0x%8.8x",
dev->offset, mrq.CardOffset);
mrq.Page = 0;
- if( (ret = CardServices(MapMemPage, win, &mrq)) != CS_SUCCESS) {
+ if( (ret = pcmcia_map_mem_page(win, &mrq)) != CS_SUCCESS) {
cs_error(dev->link.handle, MapMemPage, ret);
return NULL;
}
@@ -343,7 +332,7 @@
mod.Vpp1 = mod.Vpp2 = on ? dev->vpp : 0;
DEBUG(2, "dev = %p on = %d vpp = %d\n", dev, on, dev->vpp);
- ret = CardServices(ModifyConfiguration, link->handle, &mod);
+ ret = pcmcia_modify_configuration(link->handle, &mod);
if(ret != CS_SUCCESS) {
cs_error(link->handle, ModifyConfiguration, ret);
}
@@ -355,9 +344,8 @@
* still open, this will be postponed until it is closed.
*/
-static void pcmciamtd_release(u_long arg)
+static void pcmciamtd_release(dev_link_t *link)
{
- dev_link_t *link = (dev_link_t *)arg;
struct pcmciamtd_dev *dev = link->priv;
DEBUG(3, "link = 0x%p", link);
@@ -367,9 +355,9 @@
iounmap(dev->win_base);
dev->win_base = NULL;
}
- CardServices(ReleaseWindow, link->win);
+ pcmcia_release_window(link->win);
}
- CardServices(ReleaseConfiguration, link->handle);
+ pcmcia_release_configuration(link->handle);
link->state &= ~DEV_CONFIG;
}
@@ -387,14 +375,14 @@
tuple.TupleOffset = 0;
tuple.DesiredTuple = RETURN_FIRST_TUPLE;
- rc = CardServices(GetFirstTuple, link->handle, &tuple);
+ rc = pcmcia_get_first_tuple(link->handle, &tuple);
while(rc == CS_SUCCESS) {
- rc = CardServices(GetTupleData, link->handle, &tuple);
+ rc = pcmcia_get_tuple_data(link->handle, &tuple);
if(rc != CS_SUCCESS) {
cs_error(link->handle, GetTupleData, rc);
break;
}
- rc = CardServices(ParseTuple, link->handle, &tuple, &parse);
+ rc = pcmcia_parse_tuple(link->handle, &tuple, &parse);
if(rc != CS_SUCCESS) {
cs_error(link->handle, ParseTuple, rc);
break;
@@ -467,7 +455,7 @@
DEBUG(2, "Unknown tuple code %d", tuple.TupleCode);
}
- rc = CardServices(GetNextTuple, link->handle, &tuple, &parse);
+ rc = pcmcia_get_next_tuple(link->handle, &tuple);
}
if(!dev->pcmcia_map.size)
dev->pcmcia_map.size = MAX_PCMCIA_ADDR;
@@ -501,8 +489,8 @@
* MTD device available to the system.
*/
-#define CS_CHECK(fn, args...) \
-while ((last_ret=CardServices(last_fn=(fn), args))!=0) goto cs_failed
+#define CS_CHECK(fn, ret) \
+do { last_fn = (fn); if ((last_ret = (ret)) != 0) goto cs_failed; } while (0)
static void pcmciamtd_config(dev_link_t *link)
{
@@ -524,7 +512,7 @@
link->state |= DEV_CONFIG;
DEBUG(2, "Validating CIS");
- ret = CardServices(ValidateCIS, link->handle, &cisinfo);
+ ret = pcmcia_validate_cis(link->handle, &cisinfo);
if(ret != CS_SUCCESS) {
cs_error(link->handle, GetTupleData, ret);
} else {
@@ -559,8 +547,7 @@
int ret;
DEBUG(2, "requesting window with size = %dKiB memspeed = %d",
req.Size >> 10, req.AccessSpeed);
- link->win = (window_handle_t)link->handle;
- ret = CardServices(RequestWindow, &link->win, &req);
+ ret = pcmcia_request_window(&link->handle, &req, &link->win);
DEBUG(2, "ret = %d dev->win_size = %d", ret, dev->win_size);
if(ret) {
req.Size >>= 1;
@@ -575,19 +562,19 @@
if(!dev->win_size) {
err("Cant allocate memory window");
- pcmciamtd_release((u_long)link);
+ pcmciamtd_release(link);
return;
}
DEBUG(1, "Allocated a window of %dKiB", dev->win_size >> 10);
/* Get write protect status */
- CS_CHECK(GetStatus, link->handle, &status);
+ CS_CHECK(GetStatus, pcmcia_get_status(link->handle, &status));
DEBUG(2, "status value: 0x%x window handle = 0x%8.8lx",
status.CardState, (unsigned long)link->win);
dev->win_base = ioremap(req.Base, req.Size);
if(!dev->win_base) {
err("ioremap(%lu, %u) failed", req.Base, req.Size);
- pcmciamtd_release((u_long)link);
+ pcmciamtd_release(link);
return;
}
DEBUG(1, "mapped window dev = %p req.base = 0x%lx base = %p size = 0x%x",
@@ -598,7 +585,7 @@
dev->pcmcia_map.map_priv_2 = (unsigned long)link->win;
DEBUG(2, "Getting configuration");
- CS_CHECK(GetConfigurationInfo, link->handle, &t);
+ CS_CHECK(GetConfigurationInfo, pcmcia_get_configuration_info(link->handle, &t));
DEBUG(2, "Vcc = %d Vpp1 = %d Vpp2 = %d", t.Vcc, t.Vpp1, t.Vpp2);
dev->vpp = (vpp) ? vpp : t.Vpp1;
link->conf.Attributes = 0;
@@ -620,7 +607,7 @@
link->conf.ConfigIndex = 0;
link->conf.Present = t.Present;
DEBUG(2, "Setting Configuration");
- ret = CardServices(RequestConfiguration, link->handle, &link->conf);
+ ret = pcmcia_request_configuration(link->handle, &link->conf);
if(ret != CS_SUCCESS) {
cs_error(link->handle, RequestConfiguration, ret);
}
@@ -642,7 +629,7 @@
if(!mtd) {
DEBUG(1, "Cant find an MTD");
- pcmciamtd_release((u_long)link);
+ pcmciamtd_release(link);
return;
}
@@ -682,7 +669,7 @@
map_destroy(mtd);
dev->mtd_info = NULL;
err("Couldnt register MTD device");
- pcmciamtd_release((u_long)link);
+ pcmciamtd_release(link);
return;
}
snprintf(dev->node.dev_name, sizeof(dev->node.dev_name), "mtd%d", mtd->index);
@@ -694,7 +681,7 @@
cs_failed:
cs_error(link->handle, last_fn, last_ret);
err("CS Error, exiting");
- pcmciamtd_release((u_long)link);
+ pcmciamtd_release(link);
return;
}
@@ -721,7 +708,7 @@
del_mtd_device(dev->mtd_info);
info("mtd%d: Removed", dev->mtd_info->index);
}
- mod_timer(&link->release, jiffies + HZ/20);
+ pcmciamtd_release(link);
}
break;
case CS_EVENT_CARD_INSERTION:
@@ -762,16 +749,14 @@
{
DEBUG(3, "link=0x%p", link);
- del_timer(&link->release);
-
if(link->state & DEV_CONFIG) {
- pcmciamtd_release((u_long)link);
+ pcmciamtd_release(link);
}
if (link->handle) {
int ret;
DEBUG(2, "Deregistering with card services");
- ret = CardServices(DeregisterClient, link->handle);
+ ret = pcmcia_deregister_client(link->handle);
if (ret != CS_SUCCESS)
cs_error(link->handle, DeregisterClient, ret);
}
@@ -801,10 +786,6 @@
link = &dev->link;
link->priv = dev;
- init_timer(&link->release);
- link->release.function = &pcmciamtd_release;
- link->release.data = (u_long)link;
-
link->conf.Attributes = 0;
link->conf.IntType = INT_MEMORY;
@@ -822,7 +803,7 @@
client_reg.Version = 0x0210;
client_reg.event_callback_args.client_data = link;
DEBUG(2, "Calling RegisterClient");
- ret = CardServices(RegisterClient, &link->handle, &client_reg);
+ ret = pcmcia_register_client(&link->handle, &client_reg);
if (ret != 0) {
cs_error(link->handle, RegisterClient, ret);
pcmciamtd_detach(link);
@@ -833,7 +814,6 @@
}
-#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,68)
static struct pcmcia_driver pcmciamtd_driver = {
.drv = {
.name = "pcmciamtd"
@@ -842,11 +822,11 @@
.detach = pcmciamtd_detach,
.owner = THIS_MODULE
};
-#endif
static int __init init_pcmciamtd(void)
{
+ info(DRIVER_DESC " " DRIVER_VERSION);
if(buswidth && buswidth != 1 && buswidth != 2) {
info("bad buswidth (%d), using default", buswidth);
@@ -860,24 +840,14 @@
info("bad mem_type (%d), using default", mem_type);
mem_type = 0;
}
-
-#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,68)
return pcmcia_register_driver(&pcmciamtd_driver);
-#else
- register_pccard_driver(&dev_info, &pcmciamtd_attach, &pcmciamtd_detach);
- return 0;
-#endif
}
static void __exit exit_pcmciamtd(void)
{
DEBUG(1, DRIVER_DESC " unloading");
-#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,68)
pcmcia_unregister_driver(&pcmciamtd_driver);
-#else
- unregister_pccard_driver(&dev_info);
-#endif
while(dev_list) {
dev_link_t *link = dev_list;
More information about the linux-mtd-cvs
mailing list