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: (49 commits) pcmcia: validate late-added resources pcmcia: allow for extension of resource interval pcmcia: remove useless msleep in ds.c pcmcia: use read_cis_mem return value pcmcia: handle error in serial_cs config calls pcmcia: add locking to pcmcia_{read,write}_cis_mem pcmcia: avoid prod_id memleak pcmcia: avoid sysfs-related lockup for cardbus pcmcia: use state machine for extended requery pcmcia: delay re-scanning and re-querying of PCMCIA bus pcmcia: use pccardd to handle eject, insert, suspend and resume requests pcmcia: use ops_mutex for rsrc_{mgr,nonstatic} locking pcmcia: use mutex for dynid lock pcmcia: assert locking to struct pcmcia_device pcmcia: add locking documentation pcmcia: simplify locking pcmcia: add locking to struct pcmcia_socket->pcmcia_state() pcmcia: protect s->device_count pcmcia: properly lock skt->irq, skt->irq_mask pcmcia: lock ops->set_socket ...
This commit is contained in:
@@ -21,60 +21,12 @@
|
||||
#include <pcmcia/cistpl.h>
|
||||
#include "cs_internal.h"
|
||||
|
||||
|
||||
int pcmcia_validate_mem(struct pcmcia_socket *s)
|
||||
{
|
||||
if (s->resource_ops->validate_mem)
|
||||
return s->resource_ops->validate_mem(s);
|
||||
/* if there is no callback, we can assume that everything is OK */
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(pcmcia_validate_mem);
|
||||
|
||||
int pcmcia_adjust_io_region(struct resource *res, unsigned long r_start,
|
||||
unsigned long r_end, struct pcmcia_socket *s)
|
||||
{
|
||||
if (s->resource_ops->adjust_io_region)
|
||||
return s->resource_ops->adjust_io_region(res, r_start, r_end, s);
|
||||
return -ENOMEM;
|
||||
}
|
||||
EXPORT_SYMBOL(pcmcia_adjust_io_region);
|
||||
|
||||
struct resource *pcmcia_find_io_region(unsigned long base, int num,
|
||||
unsigned long align, struct pcmcia_socket *s)
|
||||
{
|
||||
if (s->resource_ops->find_io)
|
||||
return s->resource_ops->find_io(base, num, align, s);
|
||||
return NULL;
|
||||
}
|
||||
EXPORT_SYMBOL(pcmcia_find_io_region);
|
||||
|
||||
struct resource *pcmcia_find_mem_region(u_long base, u_long num, u_long align,
|
||||
int low, struct pcmcia_socket *s)
|
||||
{
|
||||
if (s->resource_ops->find_mem)
|
||||
return s->resource_ops->find_mem(base, num, align, low, s);
|
||||
return NULL;
|
||||
}
|
||||
EXPORT_SYMBOL(pcmcia_find_mem_region);
|
||||
|
||||
void release_resource_db(struct pcmcia_socket *s)
|
||||
{
|
||||
if (s->resource_ops->exit)
|
||||
s->resource_ops->exit(s);
|
||||
}
|
||||
|
||||
|
||||
static int static_init(struct pcmcia_socket *s)
|
||||
{
|
||||
unsigned long flags;
|
||||
|
||||
/* the good thing about SS_CAP_STATIC_MAP sockets is
|
||||
* that they don't need a resource database */
|
||||
|
||||
spin_lock_irqsave(&s->lock, flags);
|
||||
s->resource_setup_done = 1;
|
||||
spin_unlock_irqrestore(&s->lock, flags);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Reference in New Issue
Block a user