diff --git a/Documentation/pcmcia/driver-changes.txt b/Documentation/pcmcia/driver-changes.txt index dd04361dd361afe814b98eb46942924bda757f17..78355c4c268af55cfb2cb553e1068f1b9bb5c670 100644 --- a/Documentation/pcmcia/driver-changes.txt +++ b/Documentation/pcmcia/driver-changes.txt @@ -46,9 +46,6 @@ This file details changes in 2.6 which affect PCMCIA card driver authors: - use pcmcia_request_irq(p_dev, handler_t); the PCMCIA core will clean up automatically on calls to pcmcia_disable_device() or device ejection. - - drivers still not capable of IRQF_SHARED (or not telling us so) may - use the deprecated pcmcia_request_exclusive_irq() for the time - being; they might receive a shared IRQ nonetheless. * no cs_error / CS_CHECK / CONFIG_PCMCIA_DEBUG (as of 2.6.33) Instead of the cs_error() callback or the CS_CHECK() macro, please use diff --git a/drivers/pcmcia/pcmcia_resource.c b/drivers/pcmcia/pcmcia_resource.c index 34aad895a2395afc09f00ef9330a3447d0aa64e9..18802096148e5a444f4f6b0c54bd9033394b9e8c 100644 --- a/drivers/pcmcia/pcmcia_resource.c +++ b/drivers/pcmcia/pcmcia_resource.c @@ -712,42 +712,6 @@ int __must_check pcmcia_request_irq(struct pcmcia_device *p_dev, EXPORT_SYMBOL(pcmcia_request_irq); -/** - * pcmcia_request_exclusive_irq() - attempt to request an exclusive IRQ first - * @p_dev: the associated PCMCIA device - * @handler: IRQ handler to register - * - * pcmcia_request_exclusive_irq() is a wrapper around request_irq() which - * attempts first to request an exclusive IRQ. If it fails, it also accepts - * a shared IRQ, but prints out a warning. PCMCIA drivers should allow for - * IRQ sharing and either use request_irq directly (then they need to call - * free_irq() themselves, too), or the pcmcia_request_irq() function. - */ -int __must_check -__pcmcia_request_exclusive_irq(struct pcmcia_device *p_dev, - irq_handler_t handler) -{ - int ret; - - if (!p_dev->irq) - return -EINVAL; - - ret = request_irq(p_dev->irq, handler, 0, p_dev->devname, p_dev->priv); - if (ret) { - ret = pcmcia_request_irq(p_dev, handler); - dev_warn(&p_dev->dev, "pcmcia: request for exclusive IRQ could not be fulfilled\n"); - dev_warn(&p_dev->dev, "pcmcia: the driver needs updating to supported shared IRQ lines\n"); - } - if (ret) - dev_info(&p_dev->dev, "request_irq() failed\n"); - else - p_dev->_irq = 1; - - return ret; -} /* pcmcia_request_exclusive_irq */ -EXPORT_SYMBOL(__pcmcia_request_exclusive_irq); - - #ifdef CONFIG_PCMCIA_PROBE /* mask of IRQs already reserved by other cards, we should avoid using them */ diff --git a/include/pcmcia/ds.h b/include/pcmcia/ds.h index 2d56e428506c052bcf912fce253b8c2c50fa696b..3037157855f0b6e299799ca350508216fab682ad 100644 --- a/include/pcmcia/ds.h +++ b/include/pcmcia/ds.h @@ -206,16 +206,6 @@ int pcmcia_write_config_byte(struct pcmcia_device *p_dev, off_t where, u8 val); /* device configuration */ int pcmcia_request_io(struct pcmcia_device *p_dev); -int __must_check -__pcmcia_request_exclusive_irq(struct pcmcia_device *p_dev, - irq_handler_t handler); -static inline __must_check __deprecated int -pcmcia_request_exclusive_irq(struct pcmcia_device *p_dev, - irq_handler_t handler) -{ - return __pcmcia_request_exclusive_irq(p_dev, handler); -} - int __must_check pcmcia_request_irq(struct pcmcia_device *p_dev, irq_handler_t handler);