Merge git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6: (50 commits) pcmcia: rework the irq_req_t typedef pcmcia: remove deprecated handle_to_dev() macro pcmcia: pcmcia_request_window() doesn't need a pointer to a pointer pcmcia: remove unused "window_t" typedef pcmcia: move some window-related code to pcmcia_ioctl.c pcmcia: Change window_handle_t logic to unsigned long pcmcia: Pass struct pcmcia_socket to pcmcia_get_mem_page() pcmcia: Pass struct pcmcia_device to pcmcia_map_mem_page() pcmcia: Pass struct pcmcia_device to pcmcia_release_window() drivers/pcmcia: remove unnecessary kzalloc pcmcia: correct handling for Zoomed Video registers in topic.h pcmcia: fix printk formats pcmcia: autoload module pcmcia pcmcia/staging: update comedi drivers PCMCIA: stop duplicating pci_irq in soc_pcmcia_socket PCMCIA: ss: allow PCI IRQs > 255 PCMCIA: soc_common: remove 'dev' member from soc_pcmcia_socket PCMCIA: soc_common: constify soc_pcmcia_socket ops member PCMCIA: sa1111: remove duplicated initializers PCMCIA: sa1111: wrap soc_pcmcia_socket to contain sa1111 specific data ...
This commit is contained in:
@@ -61,17 +61,6 @@ INT_MODULE_PARM(unreset_limit, 30); /* unreset_check's */
|
||||
/* Access speed for attribute memory windows */
|
||||
INT_MODULE_PARM(cis_speed, 300); /* ns */
|
||||
|
||||
#ifdef CONFIG_PCMCIA_DEBUG
|
||||
static int pc_debug;
|
||||
|
||||
module_param(pc_debug, int, 0644);
|
||||
|
||||
int cs_debug_level(int level)
|
||||
{
|
||||
return pc_debug > level;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
socket_state_t dead_socket = {
|
||||
.csc_mask = SS_DETECT,
|
||||
@@ -190,7 +179,7 @@ int pcmcia_register_socket(struct pcmcia_socket *socket)
|
||||
if (!socket || !socket->ops || !socket->dev.parent || !socket->resource_ops)
|
||||
return -EINVAL;
|
||||
|
||||
cs_dbg(socket, 0, "pcmcia_register_socket(0x%p)\n", socket->ops);
|
||||
dev_dbg(&socket->dev, "pcmcia_register_socket(0x%p)\n", socket->ops);
|
||||
|
||||
spin_lock_init(&socket->lock);
|
||||
|
||||
@@ -262,6 +251,13 @@ int pcmcia_register_socket(struct pcmcia_socket *socket)
|
||||
|
||||
pcmcia_parse_events(socket, SS_DETECT);
|
||||
|
||||
/*
|
||||
* Let's try to get the PCMCIA module for 16-bit PCMCIA support.
|
||||
* If it fails, it doesn't matter -- we still have 32-bit CardBus
|
||||
* support to offer, so this is not a failure mode.
|
||||
*/
|
||||
request_module_nowait("pcmcia");
|
||||
|
||||
return 0;
|
||||
|
||||
err:
|
||||
@@ -282,7 +278,7 @@ void pcmcia_unregister_socket(struct pcmcia_socket *socket)
|
||||
if (!socket)
|
||||
return;
|
||||
|
||||
cs_dbg(socket, 0, "pcmcia_unregister_socket(0x%p)\n", socket->ops);
|
||||
dev_dbg(&socket->dev, "pcmcia_unregister_socket(0x%p)\n", socket->ops);
|
||||
|
||||
if (socket->thread)
|
||||
kthread_stop(socket->thread);
|
||||
@@ -335,7 +331,7 @@ static int send_event(struct pcmcia_socket *s, event_t event, int priority)
|
||||
if (s->state & SOCKET_CARDBUS)
|
||||
return 0;
|
||||
|
||||
cs_dbg(s, 1, "send_event(event %d, pri %d, callback 0x%p)\n",
|
||||
dev_dbg(&s->dev, "send_event(event %d, pri %d, callback 0x%p)\n",
|
||||
event, priority, s->callback);
|
||||
|
||||
if (!s->callback)
|
||||
@@ -352,7 +348,7 @@ static int send_event(struct pcmcia_socket *s, event_t event, int priority)
|
||||
|
||||
static void socket_remove_drivers(struct pcmcia_socket *skt)
|
||||
{
|
||||
cs_dbg(skt, 4, "remove_drivers\n");
|
||||
dev_dbg(&skt->dev, "remove_drivers\n");
|
||||
|
||||
send_event(skt, CS_EVENT_CARD_REMOVAL, CS_EVENT_PRI_HIGH);
|
||||
}
|
||||
@@ -361,7 +357,7 @@ static int socket_reset(struct pcmcia_socket *skt)
|
||||
{
|
||||
int status, i;
|
||||
|
||||
cs_dbg(skt, 4, "reset\n");
|
||||
dev_dbg(&skt->dev, "reset\n");
|
||||
|
||||
skt->socket.flags |= SS_OUTPUT_ENA | SS_RESET;
|
||||
skt->ops->set_socket(skt, &skt->socket);
|
||||
@@ -383,7 +379,7 @@ static int socket_reset(struct pcmcia_socket *skt)
|
||||
msleep(unreset_check * 10);
|
||||
}
|
||||
|
||||
cs_err(skt, "time out after reset.\n");
|
||||
dev_printk(KERN_ERR, &skt->dev, "time out after reset.\n");
|
||||
return -ETIMEDOUT;
|
||||
}
|
||||
|
||||
@@ -397,7 +393,7 @@ static void socket_shutdown(struct pcmcia_socket *s)
|
||||
{
|
||||
int status;
|
||||
|
||||
cs_dbg(s, 4, "shutdown\n");
|
||||
dev_dbg(&s->dev, "shutdown\n");
|
||||
|
||||
socket_remove_drivers(s);
|
||||
s->state &= SOCKET_INUSE | SOCKET_PRESENT;
|
||||
@@ -432,7 +428,7 @@ static int socket_setup(struct pcmcia_socket *skt, int initial_delay)
|
||||
{
|
||||
int status, i;
|
||||
|
||||
cs_dbg(skt, 4, "setup\n");
|
||||
dev_dbg(&skt->dev, "setup\n");
|
||||
|
||||
skt->ops->get_status(skt, &status);
|
||||
if (!(status & SS_DETECT))
|
||||
@@ -452,13 +448,15 @@ static int socket_setup(struct pcmcia_socket *skt, int initial_delay)
|
||||
}
|
||||
|
||||
if (status & SS_PENDING) {
|
||||
cs_err(skt, "voltage interrogation timed out.\n");
|
||||
dev_printk(KERN_ERR, &skt->dev,
|
||||
"voltage interrogation timed out.\n");
|
||||
return -ETIMEDOUT;
|
||||
}
|
||||
|
||||
if (status & SS_CARDBUS) {
|
||||
if (!(skt->features & SS_CAP_CARDBUS)) {
|
||||
cs_err(skt, "cardbus cards are not supported.\n");
|
||||
dev_printk(KERN_ERR, &skt->dev,
|
||||
"cardbus cards are not supported.\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
skt->state |= SOCKET_CARDBUS;
|
||||
@@ -472,7 +470,7 @@ static int socket_setup(struct pcmcia_socket *skt, int initial_delay)
|
||||
else if (!(status & SS_XVCARD))
|
||||
skt->socket.Vcc = skt->socket.Vpp = 50;
|
||||
else {
|
||||
cs_err(skt, "unsupported voltage key.\n");
|
||||
dev_printk(KERN_ERR, &skt->dev, "unsupported voltage key.\n");
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
@@ -489,7 +487,7 @@ static int socket_setup(struct pcmcia_socket *skt, int initial_delay)
|
||||
|
||||
skt->ops->get_status(skt, &status);
|
||||
if (!(status & SS_POWERON)) {
|
||||
cs_err(skt, "unable to apply power.\n");
|
||||
dev_printk(KERN_ERR, &skt->dev, "unable to apply power.\n");
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
@@ -509,7 +507,7 @@ static int socket_insert(struct pcmcia_socket *skt)
|
||||
{
|
||||
int ret;
|
||||
|
||||
cs_dbg(skt, 4, "insert\n");
|
||||
dev_dbg(&skt->dev, "insert\n");
|
||||
|
||||
if (!cs_socket_get(skt))
|
||||
return -ENODEV;
|
||||
@@ -529,7 +527,7 @@ static int socket_insert(struct pcmcia_socket *skt)
|
||||
skt->state |= SOCKET_CARDBUS_CONFIG;
|
||||
}
|
||||
#endif
|
||||
cs_dbg(skt, 4, "insert done\n");
|
||||
dev_dbg(&skt->dev, "insert done\n");
|
||||
|
||||
send_event(skt, CS_EVENT_CARD_INSERTION, CS_EVENT_PRI_LOW);
|
||||
} else {
|
||||
@@ -576,7 +574,7 @@ static int socket_late_resume(struct pcmcia_socket *skt)
|
||||
* FIXME: need a better check here for cardbus cards.
|
||||
*/
|
||||
if (verify_cis_cache(skt) != 0) {
|
||||
cs_dbg(skt, 4, "cis mismatch - different card\n");
|
||||
dev_dbg(&skt->dev, "cis mismatch - different card\n");
|
||||
socket_remove_drivers(skt);
|
||||
destroy_cis_cache(skt);
|
||||
/*
|
||||
@@ -587,7 +585,7 @@ static int socket_late_resume(struct pcmcia_socket *skt)
|
||||
msleep(200);
|
||||
send_event(skt, CS_EVENT_CARD_INSERTION, CS_EVENT_PRI_LOW);
|
||||
} else {
|
||||
cs_dbg(skt, 4, "cis matches cache\n");
|
||||
dev_dbg(&skt->dev, "cis matches cache\n");
|
||||
send_event(skt, CS_EVENT_PM_RESUME, CS_EVENT_PRI_LOW);
|
||||
}
|
||||
} else {
|
||||
@@ -723,7 +721,7 @@ static int pccardd(void *__skt)
|
||||
void pcmcia_parse_events(struct pcmcia_socket *s, u_int events)
|
||||
{
|
||||
unsigned long flags;
|
||||
cs_dbg(s, 4, "parse_events: events %08x\n", events);
|
||||
dev_dbg(&s->dev, "parse_events: events %08x\n", events);
|
||||
if (s->thread) {
|
||||
spin_lock_irqsave(&s->thread_lock, flags);
|
||||
s->thread_events |= events;
|
||||
@@ -773,19 +771,22 @@ int pcmcia_reset_card(struct pcmcia_socket *skt)
|
||||
{
|
||||
int ret;
|
||||
|
||||
cs_dbg(skt, 1, "resetting socket\n");
|
||||
dev_dbg(&skt->dev, "resetting socket\n");
|
||||
|
||||
mutex_lock(&skt->skt_mutex);
|
||||
do {
|
||||
if (!(skt->state & SOCKET_PRESENT)) {
|
||||
dev_dbg(&skt->dev, "can't reset, not present\n");
|
||||
ret = -ENODEV;
|
||||
break;
|
||||
}
|
||||
if (skt->state & SOCKET_SUSPEND) {
|
||||
dev_dbg(&skt->dev, "can't reset, suspended\n");
|
||||
ret = -EBUSY;
|
||||
break;
|
||||
}
|
||||
if (skt->state & SOCKET_CARDBUS) {
|
||||
dev_dbg(&skt->dev, "can't reset, is cardbus\n");
|
||||
ret = -EPERM;
|
||||
break;
|
||||
}
|
||||
@@ -818,7 +819,7 @@ int pcmcia_suspend_card(struct pcmcia_socket *skt)
|
||||
{
|
||||
int ret;
|
||||
|
||||
cs_dbg(skt, 1, "suspending socket\n");
|
||||
dev_dbg(&skt->dev, "suspending socket\n");
|
||||
|
||||
mutex_lock(&skt->skt_mutex);
|
||||
do {
|
||||
@@ -848,7 +849,7 @@ int pcmcia_resume_card(struct pcmcia_socket *skt)
|
||||
{
|
||||
int ret;
|
||||
|
||||
cs_dbg(skt, 1, "waking up socket\n");
|
||||
dev_dbg(&skt->dev, "waking up socket\n");
|
||||
|
||||
mutex_lock(&skt->skt_mutex);
|
||||
do {
|
||||
@@ -876,7 +877,7 @@ int pcmcia_eject_card(struct pcmcia_socket *skt)
|
||||
{
|
||||
int ret;
|
||||
|
||||
cs_dbg(skt, 1, "user eject request\n");
|
||||
dev_dbg(&skt->dev, "user eject request\n");
|
||||
|
||||
mutex_lock(&skt->skt_mutex);
|
||||
do {
|
||||
@@ -905,7 +906,7 @@ int pcmcia_insert_card(struct pcmcia_socket *skt)
|
||||
{
|
||||
int ret;
|
||||
|
||||
cs_dbg(skt, 1, "user insert request\n");
|
||||
dev_dbg(&skt->dev, "user insert request\n");
|
||||
|
||||
mutex_lock(&skt->skt_mutex);
|
||||
do {
|
||||
|
Reference in New Issue
Block a user