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: pcmcia: disable pcmcia ioctl for !ARM, prepare for removal pcmcia: CodingStyle fixes pcmcia: alchemy: fixup wrong comments pcmcia: remove irq_list parameter from pd6729 yenta_socket: ENE CB712 CardBus bridge needs special treatment with Echo Audio Indigo soundcards
This commit is contained in:
commit
a2e28fc116
9 changed files with 957 additions and 1011 deletions
|
@ -117,19 +117,25 @@ Who: Mauro Carvalho Chehab <mchehab@infradead.org>
|
|||
---------------------------
|
||||
|
||||
What: PCMCIA control ioctl (needed for pcmcia-cs [cardmgr, cardctl])
|
||||
When: November 2005
|
||||
When: 2.6.35/2.6.36
|
||||
Files: drivers/pcmcia/: pcmcia_ioctl.c
|
||||
Why: With the 16-bit PCMCIA subsystem now behaving (almost) like a
|
||||
normal hotpluggable bus, and with it using the default kernel
|
||||
infrastructure (hotplug, driver core, sysfs) keeping the PCMCIA
|
||||
control ioctl needed by cardmgr and cardctl from pcmcia-cs is
|
||||
unnecessary, and makes further cleanups and integration of the
|
||||
unnecessary and potentially harmful (it does not provide for
|
||||
proper locking), and makes further cleanups and integration of the
|
||||
PCMCIA subsystem into the Linux kernel device driver model more
|
||||
difficult. The features provided by cardmgr and cardctl are either
|
||||
handled by the kernel itself now or are available in the new
|
||||
pcmciautils package available at
|
||||
http://kernel.org/pub/linux/utils/kernel/pcmcia/
|
||||
Who: Dominik Brodowski <linux@brodo.de>
|
||||
|
||||
For all architectures except ARM, the associated config symbol
|
||||
has been removed from kernel 2.6.34; for ARM, it will be likely
|
||||
be removed from kernel 2.6.35. The actual code will then likely
|
||||
be removed from kernel 2.6.36.
|
||||
Who: Dominik Brodowski <linux@dominikbrodowski.net>
|
||||
|
||||
---------------------------
|
||||
|
||||
|
|
|
@ -51,17 +51,23 @@ config PCMCIA_LOAD_CIS
|
|||
|
||||
config PCMCIA_IOCTL
|
||||
bool "PCMCIA control ioctl (obsolete)"
|
||||
depends on PCMCIA
|
||||
depends on PCMCIA && ARM && !SMP && !PREEMPT
|
||||
default y
|
||||
help
|
||||
If you say Y here, the deprecated ioctl interface to the PCMCIA
|
||||
subsystem will be built. It is needed by cardmgr and cardctl
|
||||
(pcmcia-cs) to function properly.
|
||||
subsystem will be built. It is needed by the deprecated pcmcia-cs
|
||||
tools (cardmgr, cardctl) to function properly.
|
||||
|
||||
You should use the new pcmciautils package instead (see
|
||||
<file:Documentation/Changes> for location and details).
|
||||
|
||||
If unsure, say Y.
|
||||
This config option will most likely be removed from kernel 2.6.35,
|
||||
the associated code from kernel 2.6.36.
|
||||
|
||||
As the PCMCIA ioctl is not locking safe, it depends on !SMP and
|
||||
!PREEMPT.
|
||||
|
||||
If unsure, say N.
|
||||
|
||||
config CARDBUS
|
||||
bool "32-bit CardBus support"
|
||||
|
|
|
@ -71,7 +71,7 @@ int __ref cb_alloc(struct pcmcia_socket *s)
|
|||
unsigned int max, pass;
|
||||
|
||||
s->functions = pci_scan_slot(bus, PCI_DEVFN(0, 0));
|
||||
pci_fixup_cardbus(bus);
|
||||
pci_fixup_cardbus(bus);
|
||||
|
||||
max = bus->secondary;
|
||||
for (pass = 0; pass < 2; pass++)
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -42,7 +42,6 @@ struct db1x_pcmcia_sock {
|
|||
int nr; /* socket number */
|
||||
void *virt_io;
|
||||
|
||||
/* the "pseudo" addresses of the PCMCIA space. */
|
||||
phys_addr_t phys_io;
|
||||
phys_addr_t phys_attr;
|
||||
phys_addr_t phys_mem;
|
||||
|
@ -437,7 +436,7 @@ static int __devinit db1x_pcmcia_socket_probe(struct platform_device *pdev)
|
|||
* This includes IRQs for Carddetection/ejection, the card
|
||||
* itself and optional status change detection.
|
||||
* Also, the memory areas covered by a socket. For these
|
||||
* we require the 32bit "pseudo" addresses (see the au1000.h
|
||||
* we require the real 36bit addresses (see the au1000.h
|
||||
* header for more information).
|
||||
*/
|
||||
|
||||
|
@ -459,11 +458,7 @@ static int __devinit db1x_pcmcia_socket_probe(struct platform_device *pdev)
|
|||
|
||||
ret = -ENODEV;
|
||||
|
||||
/*
|
||||
* pseudo-attr: The 32bit address of the PCMCIA attribute space
|
||||
* for this socket (usually the 36bit address shifted 4 to the
|
||||
* right).
|
||||
*/
|
||||
/* 36bit PCMCIA Attribute area address */
|
||||
r = platform_get_resource_byname(pdev, IORESOURCE_MEM, "pcmcia-attr");
|
||||
if (!r) {
|
||||
printk(KERN_ERR "pcmcia%d has no 'pseudo-attr' resource!\n",
|
||||
|
@ -472,10 +467,7 @@ static int __devinit db1x_pcmcia_socket_probe(struct platform_device *pdev)
|
|||
}
|
||||
sock->phys_attr = r->start;
|
||||
|
||||
/*
|
||||
* pseudo-mem: The 32bit address of the PCMCIA memory space for
|
||||
* this socket (usually the 36bit address shifted 4 to the right)
|
||||
*/
|
||||
/* 36bit PCMCIA Memory area address */
|
||||
r = platform_get_resource_byname(pdev, IORESOURCE_MEM, "pcmcia-mem");
|
||||
if (!r) {
|
||||
printk(KERN_ERR "pcmcia%d has no 'pseudo-mem' resource!\n",
|
||||
|
@ -484,10 +476,7 @@ static int __devinit db1x_pcmcia_socket_probe(struct platform_device *pdev)
|
|||
}
|
||||
sock->phys_mem = r->start;
|
||||
|
||||
/*
|
||||
* pseudo-io: The 32bit address of the PCMCIA IO space for this
|
||||
* socket (usually the 36bit address shifted 4 to the right).
|
||||
*/
|
||||
/* 36bit PCMCIA IO area address */
|
||||
r = platform_get_resource_byname(pdev, IORESOURCE_MEM, "pcmcia-io");
|
||||
if (!r) {
|
||||
printk(KERN_ERR "pcmcia%d has no 'pseudo-io' resource!\n",
|
||||
|
|
|
@ -48,23 +48,13 @@ MODULE_AUTHOR("Jun Komuro <komurojun-mbn@nifty.com>");
|
|||
* Specifies the interrupt delivery mode. The default (1) is to use PCI
|
||||
* interrupts; a value of 0 selects ISA interrupts. This must be set for
|
||||
* correct operation of PCI card readers.
|
||||
*
|
||||
* irq_list=i,j,...
|
||||
* This list limits the set of interrupts that can be used by PCMCIA
|
||||
* cards.
|
||||
* The default list is 3,4,5,7,9,10,11.
|
||||
* (irq_list parameter is not used, if irq_mode = 1)
|
||||
*/
|
||||
|
||||
static int irq_mode = 1; /* 0 = ISA interrupt, 1 = PCI interrupt */
|
||||
static int irq_list[16];
|
||||
static unsigned int irq_list_count = 0;
|
||||
|
||||
module_param(irq_mode, int, 0444);
|
||||
module_param_array(irq_list, int, &irq_list_count, 0444);
|
||||
MODULE_PARM_DESC(irq_mode,
|
||||
"interrupt delivery mode. 0 = ISA, 1 = PCI. default is 1");
|
||||
MODULE_PARM_DESC(irq_list, "interrupts that can be used by PCMCIA cards");
|
||||
|
||||
static DEFINE_SPINLOCK(port_lock);
|
||||
|
||||
|
@ -605,13 +595,7 @@ static u_int __devinit pd6729_isa_scan(void)
|
|||
return 0;
|
||||
}
|
||||
|
||||
if (irq_list_count == 0)
|
||||
mask0 = 0xffff;
|
||||
else
|
||||
for (i = mask0 = 0; i < irq_list_count; i++)
|
||||
mask0 |= (1<<irq_list[i]);
|
||||
|
||||
mask0 &= PD67_MASK;
|
||||
mask0 = PD67_MASK;
|
||||
|
||||
/* just find interrupts that aren't in use */
|
||||
for (i = 0; i < 16; i++)
|
||||
|
|
|
@ -79,9 +79,8 @@ static resource_size_t pcmcia_align(void *align_data,
|
|||
|
||||
#ifdef CONFIG_X86
|
||||
if (res->flags & IORESOURCE_IO) {
|
||||
if (start & 0x300) {
|
||||
if (start & 0x300)
|
||||
start = (start + 0x3ff) & ~0x3ff;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
|
@ -218,11 +218,7 @@ static int __devinit xxs1500_pcmcia_probe(struct platform_device *pdev)
|
|||
|
||||
ret = -ENODEV;
|
||||
|
||||
/*
|
||||
* pseudo-attr: The 32bit address of the PCMCIA attribute space
|
||||
* for this socket (usually the 36bit address shifted 4 to the
|
||||
* right).
|
||||
*/
|
||||
/* 36bit PCMCIA Attribute area address */
|
||||
r = platform_get_resource_byname(pdev, IORESOURCE_MEM, "pcmcia-attr");
|
||||
if (!r) {
|
||||
dev_err(&pdev->dev, "missing 'pcmcia-attr' resource!\n");
|
||||
|
@ -230,10 +226,7 @@ static int __devinit xxs1500_pcmcia_probe(struct platform_device *pdev)
|
|||
}
|
||||
sock->phys_attr = r->start;
|
||||
|
||||
/*
|
||||
* pseudo-mem: The 32bit address of the PCMCIA memory space for
|
||||
* this socket (usually the 36bit address shifted 4 to the right)
|
||||
*/
|
||||
/* 36bit PCMCIA Memory area address */
|
||||
r = platform_get_resource_byname(pdev, IORESOURCE_MEM, "pcmcia-mem");
|
||||
if (!r) {
|
||||
dev_err(&pdev->dev, "missing 'pcmcia-mem' resource!\n");
|
||||
|
@ -241,10 +234,7 @@ static int __devinit xxs1500_pcmcia_probe(struct platform_device *pdev)
|
|||
}
|
||||
sock->phys_mem = r->start;
|
||||
|
||||
/*
|
||||
* pseudo-io: The 32bit address of the PCMCIA IO space for this
|
||||
* socket (usually the 36bit address shifted 4 to the right).
|
||||
*/
|
||||
/* 36bit PCMCIA IO area address */
|
||||
r = platform_get_resource_byname(pdev, IORESOURCE_MEM, "pcmcia-io");
|
||||
if (!r) {
|
||||
dev_err(&pdev->dev, "missing 'pcmcia-io' resource!\n");
|
||||
|
|
|
@ -1408,10 +1408,10 @@ static struct pci_device_id yenta_table[] = {
|
|||
CB_ID(PCI_VENDOR_ID_TI, PCI_DEVICE_ID_TI_7510, TI12XX),
|
||||
CB_ID(PCI_VENDOR_ID_TI, PCI_DEVICE_ID_TI_7610, TI12XX),
|
||||
|
||||
CB_ID(PCI_VENDOR_ID_ENE, PCI_DEVICE_ID_ENE_710, TI12XX),
|
||||
CB_ID(PCI_VENDOR_ID_ENE, PCI_DEVICE_ID_ENE_712, TI12XX),
|
||||
CB_ID(PCI_VENDOR_ID_ENE, PCI_DEVICE_ID_ENE_720, TI12XX),
|
||||
CB_ID(PCI_VENDOR_ID_ENE, PCI_DEVICE_ID_ENE_722, TI12XX),
|
||||
CB_ID(PCI_VENDOR_ID_ENE, PCI_DEVICE_ID_ENE_710, ENE),
|
||||
CB_ID(PCI_VENDOR_ID_ENE, PCI_DEVICE_ID_ENE_712, ENE),
|
||||
CB_ID(PCI_VENDOR_ID_ENE, PCI_DEVICE_ID_ENE_720, ENE),
|
||||
CB_ID(PCI_VENDOR_ID_ENE, PCI_DEVICE_ID_ENE_722, ENE),
|
||||
CB_ID(PCI_VENDOR_ID_ENE, PCI_DEVICE_ID_ENE_1211, ENE),
|
||||
CB_ID(PCI_VENDOR_ID_ENE, PCI_DEVICE_ID_ENE_1225, ENE),
|
||||
CB_ID(PCI_VENDOR_ID_ENE, PCI_DEVICE_ID_ENE_1410, ENE),
|
||||
|
|
Loading…
Reference in a new issue