mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-31 04:01:48 -04:00
Merge with Linus' kernel.
This commit is contained in:
commit
123656d4cc
2145 changed files with 159776 additions and 65186 deletions
|
|
@ -66,9 +66,6 @@ struct pcmciamtd_dev {
|
|||
};
|
||||
|
||||
|
||||
static dev_info_t dev_info = "pcmciamtd";
|
||||
static dev_link_t *dev_list;
|
||||
|
||||
/* Module parameters */
|
||||
|
||||
/* 2 = do 16-bit transfers, 1 = do 8-bit transfers */
|
||||
|
|
@ -691,55 +688,21 @@ static void pcmciamtd_config(dev_link_t *link)
|
|||
}
|
||||
|
||||
|
||||
/* The card status event handler. Mostly, this schedules other
|
||||
* stuff to run after an event is received. A CARD_REMOVAL event
|
||||
* also sets some flags to discourage the driver from trying
|
||||
* to talk to the card any more.
|
||||
*/
|
||||
|
||||
static int pcmciamtd_event(event_t event, int priority,
|
||||
event_callback_args_t *args)
|
||||
static int pcmciamtd_suspend(struct pcmcia_device *dev)
|
||||
{
|
||||
dev_link_t *link = args->client_data;
|
||||
DEBUG(2, "EVENT_PM_RESUME");
|
||||
|
||||
/* get_lock(link); */
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int pcmciamtd_resume(struct pcmcia_device *dev)
|
||||
{
|
||||
DEBUG(2, "EVENT_PM_SUSPEND");
|
||||
|
||||
/* free_lock(link); */
|
||||
|
||||
DEBUG(1, "event=0x%06x", event);
|
||||
switch (event) {
|
||||
case CS_EVENT_CARD_REMOVAL:
|
||||
DEBUG(2, "EVENT_CARD_REMOVAL");
|
||||
link->state &= ~DEV_PRESENT;
|
||||
if (link->state & DEV_CONFIG) {
|
||||
struct pcmciamtd_dev *dev = link->priv;
|
||||
if(dev->mtd_info) {
|
||||
del_mtd_device(dev->mtd_info);
|
||||
info("mtd%d: Removed", dev->mtd_info->index);
|
||||
}
|
||||
pcmciamtd_release(link);
|
||||
}
|
||||
break;
|
||||
case CS_EVENT_CARD_INSERTION:
|
||||
DEBUG(2, "EVENT_CARD_INSERTION");
|
||||
link->state |= DEV_PRESENT | DEV_CONFIG_PENDING;
|
||||
pcmciamtd_config(link);
|
||||
break;
|
||||
case CS_EVENT_PM_SUSPEND:
|
||||
DEBUG(2, "EVENT_PM_SUSPEND");
|
||||
link->state |= DEV_SUSPEND;
|
||||
/* Fall through... */
|
||||
case CS_EVENT_RESET_PHYSICAL:
|
||||
DEBUG(2, "EVENT_RESET_PHYSICAL");
|
||||
/* get_lock(link); */
|
||||
break;
|
||||
case CS_EVENT_PM_RESUME:
|
||||
DEBUG(2, "EVENT_PM_RESUME");
|
||||
link->state &= ~DEV_SUSPEND;
|
||||
/* Fall through... */
|
||||
case CS_EVENT_CARD_RESET:
|
||||
DEBUG(2, "EVENT_CARD_RESET");
|
||||
/* free_lock(link); */
|
||||
break;
|
||||
default:
|
||||
DEBUG(2, "Unknown event %d", event);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -750,23 +713,21 @@ static int pcmciamtd_event(event_t event, int priority,
|
|||
* when the device is released.
|
||||
*/
|
||||
|
||||
static void pcmciamtd_detach(dev_link_t *link)
|
||||
static void pcmciamtd_detach(struct pcmcia_device *p_dev)
|
||||
{
|
||||
dev_link_t *link = dev_to_instance(p_dev);
|
||||
|
||||
DEBUG(3, "link=0x%p", link);
|
||||
|
||||
if(link->state & DEV_CONFIG) {
|
||||
struct pcmciamtd_dev *dev = link->priv;
|
||||
if(dev->mtd_info) {
|
||||
del_mtd_device(dev->mtd_info);
|
||||
info("mtd%d: Removed", dev->mtd_info->index);
|
||||
}
|
||||
|
||||
pcmciamtd_release(link);
|
||||
}
|
||||
|
||||
if (link->handle) {
|
||||
int ret;
|
||||
DEBUG(2, "Deregistering with card services");
|
||||
ret = pcmcia_deregister_client(link->handle);
|
||||
if (ret != CS_SUCCESS)
|
||||
cs_error(link->handle, DeregisterClient, ret);
|
||||
}
|
||||
|
||||
link->state |= DEV_STALE_LINK;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -775,16 +736,14 @@ static void pcmciamtd_detach(dev_link_t *link)
|
|||
* with Card Services.
|
||||
*/
|
||||
|
||||
static dev_link_t *pcmciamtd_attach(void)
|
||||
static int pcmciamtd_attach(struct pcmcia_device *p_dev)
|
||||
{
|
||||
struct pcmciamtd_dev *dev;
|
||||
dev_link_t *link;
|
||||
client_reg_t client_reg;
|
||||
int ret;
|
||||
|
||||
/* Create new memory card device */
|
||||
dev = kmalloc(sizeof(*dev), GFP_KERNEL);
|
||||
if (!dev) return NULL;
|
||||
if (!dev) return -ENOMEM;
|
||||
DEBUG(1, "dev=0x%p", dev);
|
||||
|
||||
memset(dev, 0, sizeof(*dev));
|
||||
|
|
@ -794,22 +753,14 @@ static dev_link_t *pcmciamtd_attach(void)
|
|||
link->conf.Attributes = 0;
|
||||
link->conf.IntType = INT_MEMORY;
|
||||
|
||||
link->next = dev_list;
|
||||
dev_list = link;
|
||||
link->next = NULL;
|
||||
link->handle = p_dev;
|
||||
p_dev->instance = link;
|
||||
|
||||
/* Register with Card Services */
|
||||
client_reg.dev_info = &dev_info;
|
||||
client_reg.Version = 0x0210;
|
||||
client_reg.event_callback_args.client_data = link;
|
||||
DEBUG(2, "Calling RegisterClient");
|
||||
ret = pcmcia_register_client(&link->handle, &client_reg);
|
||||
if (ret != 0) {
|
||||
cs_error(link->handle, RegisterClient, ret);
|
||||
pcmciamtd_detach(link);
|
||||
return NULL;
|
||||
}
|
||||
DEBUG(2, "link = %p", link);
|
||||
return link;
|
||||
link->state |= DEV_PRESENT | DEV_CONFIG_PENDING;
|
||||
pcmciamtd_config(link);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct pcmcia_device_id pcmciamtd_ids[] = {
|
||||
|
|
@ -843,11 +794,12 @@ static struct pcmcia_driver pcmciamtd_driver = {
|
|||
.drv = {
|
||||
.name = "pcmciamtd"
|
||||
},
|
||||
.attach = pcmciamtd_attach,
|
||||
.event = pcmciamtd_event,
|
||||
.detach = pcmciamtd_detach,
|
||||
.probe = pcmciamtd_attach,
|
||||
.remove = pcmciamtd_detach,
|
||||
.owner = THIS_MODULE,
|
||||
.id_table = pcmciamtd_ids,
|
||||
.suspend = pcmciamtd_suspend,
|
||||
.resume = pcmciamtd_resume,
|
||||
};
|
||||
|
||||
|
||||
|
|
@ -875,7 +827,6 @@ static void __exit exit_pcmciamtd(void)
|
|||
{
|
||||
DEBUG(1, DRIVER_DESC " unloading");
|
||||
pcmcia_unregister_driver(&pcmciamtd_driver);
|
||||
BUG_ON(dev_list != NULL);
|
||||
}
|
||||
|
||||
module_init(init_pcmciamtd);
|
||||
|
|
|
|||
Loading…
Reference in a new issue