|
@@ -46,107 +46,6 @@ spinlock_t pcmcia_dev_list_lock;
|
|
|
|
|
|
/*====================================================================*/
|
|
|
|
|
|
-/* code which was in cs.c before */
|
|
|
-
|
|
|
-/* String tables for error messages */
|
|
|
-
|
|
|
-typedef struct lookup_t {
|
|
|
- const int key;
|
|
|
- const char *msg;
|
|
|
-} lookup_t;
|
|
|
-
|
|
|
-static const lookup_t error_table[] = {
|
|
|
- { 0, "Operation succeeded" },
|
|
|
- { -EIO, "Input/Output error" },
|
|
|
- { -ENODEV, "No card present" },
|
|
|
- { -EINVAL, "Bad parameter" },
|
|
|
- { -EACCES, "Configuration locked" },
|
|
|
- { -EBUSY, "Resource in use" },
|
|
|
- { -ENOSPC, "No more items" },
|
|
|
- { -ENOMEM, "Out of resource" },
|
|
|
-};
|
|
|
-
|
|
|
-
|
|
|
-static const lookup_t service_table[] = {
|
|
|
- { AccessConfigurationRegister, "AccessConfigurationRegister" },
|
|
|
- { AddSocketServices, "AddSocketServices" },
|
|
|
- { AdjustResourceInfo, "AdjustResourceInfo" },
|
|
|
- { CheckEraseQueue, "CheckEraseQueue" },
|
|
|
- { CloseMemory, "CloseMemory" },
|
|
|
- { DeregisterClient, "DeregisterClient" },
|
|
|
- { DeregisterEraseQueue, "DeregisterEraseQueue" },
|
|
|
- { GetCardServicesInfo, "GetCardServicesInfo" },
|
|
|
- { GetClientInfo, "GetClientInfo" },
|
|
|
- { GetConfigurationInfo, "GetConfigurationInfo" },
|
|
|
- { GetEventMask, "GetEventMask" },
|
|
|
- { GetFirstClient, "GetFirstClient" },
|
|
|
- { GetFirstRegion, "GetFirstRegion" },
|
|
|
- { GetFirstTuple, "GetFirstTuple" },
|
|
|
- { GetNextClient, "GetNextClient" },
|
|
|
- { GetNextRegion, "GetNextRegion" },
|
|
|
- { GetNextTuple, "GetNextTuple" },
|
|
|
- { GetStatus, "GetStatus" },
|
|
|
- { GetTupleData, "GetTupleData" },
|
|
|
- { MapMemPage, "MapMemPage" },
|
|
|
- { ModifyConfiguration, "ModifyConfiguration" },
|
|
|
- { ModifyWindow, "ModifyWindow" },
|
|
|
- { OpenMemory, "OpenMemory" },
|
|
|
- { ParseTuple, "ParseTuple" },
|
|
|
- { ReadMemory, "ReadMemory" },
|
|
|
- { RegisterClient, "RegisterClient" },
|
|
|
- { RegisterEraseQueue, "RegisterEraseQueue" },
|
|
|
- { RegisterMTD, "RegisterMTD" },
|
|
|
- { ReleaseConfiguration, "ReleaseConfiguration" },
|
|
|
- { ReleaseIO, "ReleaseIO" },
|
|
|
- { ReleaseIRQ, "ReleaseIRQ" },
|
|
|
- { ReleaseWindow, "ReleaseWindow" },
|
|
|
- { RequestConfiguration, "RequestConfiguration" },
|
|
|
- { RequestIO, "RequestIO" },
|
|
|
- { RequestIRQ, "RequestIRQ" },
|
|
|
- { RequestSocketMask, "RequestSocketMask" },
|
|
|
- { RequestWindow, "RequestWindow" },
|
|
|
- { ResetCard, "ResetCard" },
|
|
|
- { SetEventMask, "SetEventMask" },
|
|
|
- { ValidateCIS, "ValidateCIS" },
|
|
|
- { WriteMemory, "WriteMemory" },
|
|
|
- { BindDevice, "BindDevice" },
|
|
|
- { BindMTD, "BindMTD" },
|
|
|
- { ReportError, "ReportError" },
|
|
|
- { SuspendCard, "SuspendCard" },
|
|
|
- { ResumeCard, "ResumeCard" },
|
|
|
- { EjectCard, "EjectCard" },
|
|
|
- { InsertCard, "InsertCard" },
|
|
|
- { ReplaceCIS, "ReplaceCIS" }
|
|
|
-};
|
|
|
-
|
|
|
-const char *pcmcia_error_func(int func)
|
|
|
-{
|
|
|
- int i;
|
|
|
-
|
|
|
- for (i = 0; i < ARRAY_SIZE(service_table); i++)
|
|
|
- if (service_table[i].key == func)
|
|
|
- return service_table[i].msg;
|
|
|
-
|
|
|
- return "Unknown service number";
|
|
|
-}
|
|
|
-EXPORT_SYMBOL(pcmcia_error_func);
|
|
|
-
|
|
|
-const char *pcmcia_error_ret(int ret)
|
|
|
-{
|
|
|
- int i;
|
|
|
-
|
|
|
- for (i = 0; i < ARRAY_SIZE(error_table); i++)
|
|
|
- if (error_table[i].key == ret)
|
|
|
- return error_table[i].msg;
|
|
|
-
|
|
|
- return "unknown";
|
|
|
-}
|
|
|
-EXPORT_SYMBOL(pcmcia_error_ret);
|
|
|
-
|
|
|
-/*======================================================================*/
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
static void pcmcia_check_driver(struct pcmcia_driver *p_drv)
|
|
|
{
|
|
|
struct pcmcia_device_id *did = p_drv->id_table;
|