diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-03-29 16:00:48 -0700 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-03-29 16:00:48 -0700 | 
| commit | a6f707b601c3f85d4b816ea08a757ea1af4f1cc0 (patch) | |
| tree | 86cea1675e515c6baca64cea812ebe2ccc6aa955 | |
| parent | ef08e78268423fc4d7fbc3e54bd9a67fc8da7cc5 (diff) | |
| parent | 80af9e6d7ae633309cc5bca96aee6a45117e7c98 (diff) | |
| download | olio-linux-3.10-a6f707b601c3f85d4b816ea08a757ea1af4f1cc0.tar.xz olio-linux-3.10-a6f707b601c3f85d4b816ea08a757ea1af4f1cc0.zip  | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia
Pull a few PCMCIA updates from Dominik Brodowski.
Fix up trivial conflict (modified code in question had been removed) in
drivers/pcmcia/soc_common.c.
* git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia:
  pcmcia at91_cf: fix raw gpio number usage
  ARM: pxa: fix error handling in pxa2xx_drv_pcmcia_probe
  pcmcia: Convert to DEFINE_PCI_DEVICE_TABLE
  pcmcia: convert drivers/pcmcia/* to use module_platform_driver()
  pcmcia: irq: Remove IRQF_DISABLED
| -rw-r--r-- | drivers/pcmcia/at91_cf.c | 52 | ||||
| -rw-r--r-- | drivers/pcmcia/bcm63xx_pcmcia.c | 2 | ||||
| -rw-r--r-- | drivers/pcmcia/bfin_cf_pcmcia.c | 13 | ||||
| -rw-r--r-- | drivers/pcmcia/db1xxx_ss.c | 17 | ||||
| -rw-r--r-- | drivers/pcmcia/electra_cf.c | 12 | ||||
| -rw-r--r-- | drivers/pcmcia/i82092.c | 11 | ||||
| -rw-r--r-- | drivers/pcmcia/m8xx_pcmcia.c | 13 | ||||
| -rw-r--r-- | drivers/pcmcia/pd6729.c | 9 | ||||
| -rw-r--r-- | drivers/pcmcia/pxa2xx_viper.c | 13 | ||||
| -rw-r--r-- | drivers/pcmcia/vrc4173_cardu.c | 7 | ||||
| -rw-r--r-- | drivers/pcmcia/xxs1500_ss.c | 13 | ||||
| -rw-r--r-- | drivers/pcmcia/yenta_socket.c | 2 | 
12 files changed, 43 insertions, 121 deletions
diff --git a/drivers/pcmcia/at91_cf.c b/drivers/pcmcia/at91_cf.c index 1dd68f50263..9694c1e783a 100644 --- a/drivers/pcmcia/at91_cf.c +++ b/drivers/pcmcia/at91_cf.c @@ -16,13 +16,13 @@  #include <linux/init.h>  #include <linux/interrupt.h>  #include <linux/slab.h> +#include <linux/gpio.h>  #include <pcmcia/ss.h>  #include <mach/hardware.h>  #include <asm/io.h>  #include <asm/sizes.h> -#include <asm/gpio.h>  #include <mach/board.h>  #include <mach/at91rm9200_mc.h> @@ -70,7 +70,7 @@ static irqreturn_t at91_cf_irq(int irq, void *_cf)  {  	struct at91_cf_socket *cf = _cf; -	if (irq == cf->board->det_pin) { +	if (irq == gpio_to_irq(cf->board->det_pin)) {  		unsigned present = at91_cf_present(cf);  		/* kick pccard as needed */ @@ -96,8 +96,8 @@ static int at91_cf_get_status(struct pcmcia_socket *s, u_int *sp)  	/* NOTE: CF is always 3VCARD */  	if (at91_cf_present(cf)) { -		int rdy	= cf->board->irq_pin;	/* RDY/nIRQ */ -		int vcc	= cf->board->vcc_pin; +		int rdy	= gpio_is_valid(cf->board->irq_pin);	/* RDY/nIRQ */ +		int vcc	= gpio_is_valid(cf->board->vcc_pin);  		*sp = SS_DETECT | SS_3VCARD;  		if (!rdy || gpio_get_value(rdy)) @@ -118,7 +118,7 @@ at91_cf_set_socket(struct pcmcia_socket *sock, struct socket_state_t *s)  	cf = container_of(sock, struct at91_cf_socket, socket);  	/* switch Vcc if needed and possible */ -	if (cf->board->vcc_pin) { +	if (gpio_is_valid(cf->board->vcc_pin)) {  		switch (s->Vcc) {  			case 0:  				gpio_set_value(cf->board->vcc_pin, 0); @@ -222,7 +222,7 @@ static int __init at91_cf_probe(struct platform_device *pdev)  	struct resource		*io;  	int			status; -	if (!board || !board->det_pin || !board->rst_pin) +	if (!board || !gpio_is_valid(board->det_pin) || !gpio_is_valid(board->rst_pin))  		return -ENODEV;  	io = platform_get_resource(pdev, IORESOURCE_MEM, 0); @@ -242,7 +242,7 @@ static int __init at91_cf_probe(struct platform_device *pdev)  	status = gpio_request(board->det_pin, "cf_det");  	if (status < 0)  		goto fail0; -	status = request_irq(board->det_pin, at91_cf_irq, 0, driver_name, cf); +	status = request_irq(gpio_to_irq(board->det_pin), at91_cf_irq, 0, driver_name, cf);  	if (status < 0)  		goto fail00;  	device_init_wakeup(&pdev->dev, 1); @@ -251,7 +251,7 @@ static int __init at91_cf_probe(struct platform_device *pdev)  	if (status < 0)  		goto fail0a; -	if (board->vcc_pin) { +	if (gpio_is_valid(board->vcc_pin)) {  		status = gpio_request(board->vcc_pin, "cf_vcc");  		if (status < 0)  			goto fail0b; @@ -263,15 +263,15 @@ static int __init at91_cf_probe(struct platform_device *pdev)  	 * unless we report that we handle everything (sigh).  	 * (Note:  DK board doesn't wire the IRQ pin...)  	 */ -	if (board->irq_pin) { +	if (gpio_is_valid(board->irq_pin)) {  		status = gpio_request(board->irq_pin, "cf_irq");  		if (status < 0)  			goto fail0c; -		status = request_irq(board->irq_pin, at91_cf_irq, +		status = request_irq(gpio_to_irq(board->irq_pin), at91_cf_irq,  				IRQF_SHARED, driver_name, cf);  		if (status < 0)  			goto fail0d; -		cf->socket.pci_irq = board->irq_pin; +		cf->socket.pci_irq = gpio_to_irq(board->irq_pin);  	} else  		cf->socket.pci_irq = nr_irqs + 1; @@ -290,7 +290,7 @@ static int __init at91_cf_probe(struct platform_device *pdev)  	}  	pr_info("%s: irqs det #%d, io #%d\n", driver_name, -		board->det_pin, board->irq_pin); +		gpio_to_irq(board->det_pin), gpio_to_irq(board->irq_pin));  	cf->socket.owner = THIS_MODULE;  	cf->socket.dev.parent = &pdev->dev; @@ -312,19 +312,19 @@ fail2:  fail1:  	if (cf->socket.io_offset)  		iounmap((void __iomem *) cf->socket.io_offset); -	if (board->irq_pin) { -		free_irq(board->irq_pin, cf); +	if (gpio_is_valid(board->irq_pin)) { +		free_irq(gpio_to_irq(board->irq_pin), cf);  fail0d:  		gpio_free(board->irq_pin);  	}  fail0c: -	if (board->vcc_pin) +	if (gpio_is_valid(board->vcc_pin))  		gpio_free(board->vcc_pin);  fail0b:  	gpio_free(board->rst_pin);  fail0a:  	device_init_wakeup(&pdev->dev, 0); -	free_irq(board->det_pin, cf); +	free_irq(gpio_to_irq(board->det_pin), cf);  fail00:  	gpio_free(board->det_pin);  fail0: @@ -341,15 +341,15 @@ static int __exit at91_cf_remove(struct platform_device *pdev)  	pcmcia_unregister_socket(&cf->socket);  	release_mem_region(io->start, resource_size(io));  	iounmap((void __iomem *) cf->socket.io_offset); -	if (board->irq_pin) { -		free_irq(board->irq_pin, cf); +	if (gpio_is_valid(board->irq_pin)) { +		free_irq(gpio_to_irq(board->irq_pin), cf);  		gpio_free(board->irq_pin);  	} -	if (board->vcc_pin) +	if (gpio_is_valid(board->vcc_pin))  		gpio_free(board->vcc_pin);  	gpio_free(board->rst_pin);  	device_init_wakeup(&pdev->dev, 0); -	free_irq(board->det_pin, cf); +	free_irq(gpio_to_irq(board->det_pin), cf);  	gpio_free(board->det_pin);  	kfree(cf);  	return 0; @@ -363,9 +363,9 @@ static int at91_cf_suspend(struct platform_device *pdev, pm_message_t mesg)  	struct at91_cf_data	*board = cf->board;  	if (device_may_wakeup(&pdev->dev)) { -		enable_irq_wake(board->det_pin); -		if (board->irq_pin) -			enable_irq_wake(board->irq_pin); +		enable_irq_wake(gpio_to_irq(board->det_pin)); +		if (gpio_is_valid(board->irq_pin)) +			enable_irq_wake(gpio_to_irq(board->irq_pin));  	}  	return 0;  } @@ -376,9 +376,9 @@ static int at91_cf_resume(struct platform_device *pdev)  	struct at91_cf_data	*board = cf->board;  	if (device_may_wakeup(&pdev->dev)) { -		disable_irq_wake(board->det_pin); -		if (board->irq_pin) -			disable_irq_wake(board->irq_pin); +		disable_irq_wake(gpio_to_irq(board->det_pin)); +		if (gpio_is_valid(board->irq_pin)) +			disable_irq_wake(gpio_to_irq(board->irq_pin));  	}  	return 0; diff --git a/drivers/pcmcia/bcm63xx_pcmcia.c b/drivers/pcmcia/bcm63xx_pcmcia.c index 693577e0fef..c2e997a570b 100644 --- a/drivers/pcmcia/bcm63xx_pcmcia.c +++ b/drivers/pcmcia/bcm63xx_pcmcia.c @@ -475,7 +475,7 @@ static void __devexit bcm63xx_cb_exit(struct pci_dev *dev)  	bcm63xx_cb_dev = NULL;  } -static struct pci_device_id bcm63xx_cb_table[] = { +static DEFINE_PCI_DEVICE_TABLE(bcm63xx_cb_table) = {  	{  		.vendor		= PCI_VENDOR_ID_BROADCOM,  		.device		= BCM6348_CPU_ID, diff --git a/drivers/pcmcia/bfin_cf_pcmcia.c b/drivers/pcmcia/bfin_cf_pcmcia.c index 49221395101..ac1a2232eab 100644 --- a/drivers/pcmcia/bfin_cf_pcmcia.c +++ b/drivers/pcmcia/bfin_cf_pcmcia.c @@ -310,18 +310,7 @@ static struct platform_driver bfin_cf_driver = {  	.remove = __devexit_p(bfin_cf_remove),  }; -static int __init bfin_cf_init(void) -{ -	return platform_driver_register(&bfin_cf_driver); -} - -static void __exit bfin_cf_exit(void) -{ -	platform_driver_unregister(&bfin_cf_driver); -} - -module_init(bfin_cf_init); -module_exit(bfin_cf_exit); +module_platform_driver(bfin_cf_driver);  MODULE_AUTHOR("Michael Hennerich <hennerich@blackfin.uclinux.org>");  MODULE_DESCRIPTION("BFIN CF/PCMCIA Driver"); diff --git a/drivers/pcmcia/db1xxx_ss.c b/drivers/pcmcia/db1xxx_ss.c index 5b7c22784af..a484b1fb338 100644 --- a/drivers/pcmcia/db1xxx_ss.c +++ b/drivers/pcmcia/db1xxx_ss.c @@ -172,12 +172,12 @@ static int db1x_pcmcia_setup_irqs(struct db1x_pcmcia_sock *sock)  	if ((sock->board_type == BOARD_TYPE_DB1200) ||  	    (sock->board_type == BOARD_TYPE_DB1300)) {  		ret = request_irq(sock->insert_irq, db1200_pcmcia_cdirq, -				  IRQF_DISABLED, "pcmcia_insert", sock); +				  0, "pcmcia_insert", sock);  		if (ret)  			goto out1;  		ret = request_irq(sock->eject_irq, db1200_pcmcia_cdirq, -				  IRQF_DISABLED, "pcmcia_eject", sock); +				  0, "pcmcia_eject", sock);  		if (ret) {  			free_irq(sock->insert_irq, sock);  			goto out1; @@ -580,18 +580,7 @@ static struct platform_driver db1x_pcmcia_socket_driver = {  	.remove		= __devexit_p(db1x_pcmcia_socket_remove),  }; -int __init db1x_pcmcia_socket_load(void) -{ -	return platform_driver_register(&db1x_pcmcia_socket_driver); -} - -void  __exit db1x_pcmcia_socket_unload(void) -{ -	platform_driver_unregister(&db1x_pcmcia_socket_driver); -} - -module_init(db1x_pcmcia_socket_load); -module_exit(db1x_pcmcia_socket_unload); +module_platform_driver(db1x_pcmcia_socket_driver);  MODULE_LICENSE("GPL");  MODULE_DESCRIPTION("PCMCIA Socket Services for Alchemy Db/Pb1x00 boards"); diff --git a/drivers/pcmcia/electra_cf.c b/drivers/pcmcia/electra_cf.c index 06ad3e5e7d3..7647d232e9e 100644 --- a/drivers/pcmcia/electra_cf.c +++ b/drivers/pcmcia/electra_cf.c @@ -365,17 +365,7 @@ static struct platform_driver electra_cf_driver = {  	.remove   = electra_cf_remove,  }; -static int __init electra_cf_init(void) -{ -	return platform_driver_register(&electra_cf_driver); -} -module_init(electra_cf_init); - -static void __exit electra_cf_exit(void) -{ -	platform_driver_unregister(&electra_cf_driver); -} -module_exit(electra_cf_exit); +module_platform_driver(electra_cf_driver);  MODULE_LICENSE("GPL");  MODULE_AUTHOR ("Olof Johansson <olof@lixom.net>"); diff --git a/drivers/pcmcia/i82092.c b/drivers/pcmcia/i82092.c index 0b66bfc0e14..4e8831bdb6e 100644 --- a/drivers/pcmcia/i82092.c +++ b/drivers/pcmcia/i82092.c @@ -25,14 +25,9 @@  MODULE_LICENSE("GPL");  /* PCI core routines */ -static struct pci_device_id i82092aa_pci_ids[] = { -	{ -	      .vendor = PCI_VENDOR_ID_INTEL, -	      .device = PCI_DEVICE_ID_INTEL_82092AA_0, -	      .subvendor = PCI_ANY_ID, -	      .subdevice = PCI_ANY_ID, -	 }, -	 {}  +static DEFINE_PCI_DEVICE_TABLE(i82092aa_pci_ids) = { +	{ PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82092AA_0) }, +	{ }  };  MODULE_DEVICE_TABLE(pci, i82092aa_pci_ids); diff --git a/drivers/pcmcia/m8xx_pcmcia.c b/drivers/pcmcia/m8xx_pcmcia.c index a317defd616..a3a851e4932 100644 --- a/drivers/pcmcia/m8xx_pcmcia.c +++ b/drivers/pcmcia/m8xx_pcmcia.c @@ -1303,15 +1303,4 @@ static struct platform_driver m8xx_pcmcia_driver = {  	.remove = m8xx_remove,  }; -static int __init m8xx_init(void) -{ -	return platform_driver_register(&m8xx_pcmcia_driver); -} - -static void __exit m8xx_exit(void) -{ -	platform_driver_unregister(&m8xx_pcmcia_driver); -} - -module_init(m8xx_init); -module_exit(m8xx_exit); +module_platform_driver(m8xx_pcmcia_driver); diff --git a/drivers/pcmcia/pd6729.c b/drivers/pcmcia/pd6729.c index 0f8b70b2776..253e3867dec 100644 --- a/drivers/pcmcia/pd6729.c +++ b/drivers/pcmcia/pd6729.c @@ -762,13 +762,8 @@ static void __devexit pd6729_pci_remove(struct pci_dev *dev)  	kfree(socket);  } -static struct pci_device_id pd6729_pci_ids[] = { -	{ -		.vendor		= PCI_VENDOR_ID_CIRRUS, -		.device		= PCI_DEVICE_ID_CIRRUS_6729, -		.subvendor	= PCI_ANY_ID, -		.subdevice	= PCI_ANY_ID, -	}, +static DEFINE_PCI_DEVICE_TABLE(pd6729_pci_ids) = { +	{ PCI_DEVICE(PCI_VENDOR_ID_CIRRUS, PCI_DEVICE_ID_CIRRUS_6729) },  	{ }  };  MODULE_DEVICE_TABLE(pci, pd6729_pci_ids); diff --git a/drivers/pcmcia/pxa2xx_viper.c b/drivers/pcmcia/pxa2xx_viper.c index adfae4987a4..cb0c37ec7f2 100644 --- a/drivers/pcmcia/pxa2xx_viper.c +++ b/drivers/pcmcia/pxa2xx_viper.c @@ -177,18 +177,7 @@ static struct platform_driver viper_pcmcia_driver = {  	.id_table	= viper_pcmcia_id_table,  }; -static int __init viper_pcmcia_init(void) -{ -	return platform_driver_register(&viper_pcmcia_driver); -} - -static void __exit viper_pcmcia_exit(void) -{ -	return platform_driver_unregister(&viper_pcmcia_driver); -} - -module_init(viper_pcmcia_init); -module_exit(viper_pcmcia_exit); +module_platform_driver(viper_pcmcia_driver);  MODULE_DEVICE_TABLE(platform, viper_pcmcia_id_table);  MODULE_LICENSE("GPL"); diff --git a/drivers/pcmcia/vrc4173_cardu.c b/drivers/pcmcia/vrc4173_cardu.c index c6d36b3a6ce..cd0a315d922 100644 --- a/drivers/pcmcia/vrc4173_cardu.c +++ b/drivers/pcmcia/vrc4173_cardu.c @@ -563,11 +563,8 @@ static int __devinit vrc4173_cardu_setup(char *options)  __setup("vrc4173_cardu=", vrc4173_cardu_setup); -static struct pci_device_id vrc4173_cardu_id_table[] __devinitdata = { -	{	.vendor		= PCI_VENDOR_ID_NEC, -		.device		= PCI_DEVICE_ID_NEC_NAPCCARD, -		.subvendor	= PCI_ANY_ID, -		.subdevice	= PCI_ANY_ID, }, +static DEFINE_PCI_DEVICE_TABLE(vrc4173_cardu_id_table) = { +	{ PCI_DEVICE(PCI_VENDOR_ID_NEC, PCI_DEVICE_ID_NEC_NAPCCARD) },          {0, }  }; diff --git a/drivers/pcmcia/xxs1500_ss.c b/drivers/pcmcia/xxs1500_ss.c index 8f6698074f8..fd5fbd10aad 100644 --- a/drivers/pcmcia/xxs1500_ss.c +++ b/drivers/pcmcia/xxs1500_ss.c @@ -320,18 +320,7 @@ static struct platform_driver xxs1500_pcmcia_socket_driver = {  	.remove		= __devexit_p(xxs1500_pcmcia_remove),  }; -int __init xxs1500_pcmcia_socket_load(void) -{ -	return platform_driver_register(&xxs1500_pcmcia_socket_driver); -} - -void  __exit xxs1500_pcmcia_socket_unload(void) -{ -	platform_driver_unregister(&xxs1500_pcmcia_socket_driver); -} - -module_init(xxs1500_pcmcia_socket_load); -module_exit(xxs1500_pcmcia_socket_unload); +module_platform_driver(xxs1500_pcmcia_socket_driver);  MODULE_LICENSE("GPL");  MODULE_DESCRIPTION("PCMCIA Socket Services for MyCable XXS1500 systems"); diff --git a/drivers/pcmcia/yenta_socket.c b/drivers/pcmcia/yenta_socket.c index 849c0c11d2a..d07f9ac8c41 100644 --- a/drivers/pcmcia/yenta_socket.c +++ b/drivers/pcmcia/yenta_socket.c @@ -1352,7 +1352,7 @@ static const struct dev_pm_ops yenta_pm_ops = {  		.driver_data	= CARDBUS_TYPE_##type,	\  	} -static struct pci_device_id yenta_table[] = { +static DEFINE_PCI_DEVICE_TABLE(yenta_table) = {  	CB_ID(PCI_VENDOR_ID_TI, PCI_DEVICE_ID_TI_1031, TI),  	/*  |