* Re: [PATCH 145/493] tty: serial: remove use of __devexit_p
From: Tobias Klauser @ 2012-11-20 9:44 UTC (permalink / raw)
To: Bill Pemberton
Cc: nios2-dev-1eJk0qcHJCcaeqlQEoCUNoJY59XmG8rH,
gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r,
uclinux-dist-devel-ZG0+EudsQA8dtHy/vicBwGD2FQJk+8+b, Tony Prisk,
linux-serial-u79uwXL29TY76Z2rM5mHXA, Lucas Tavares,
sparclinux-u79uwXL29TY76Z2rM5mHXA, Peter Korsgaard,
David S. Miller,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, Alan Cox
In-Reply-To: <1353349642-3677-145-git-send-email-wfp5p-4Ng6DfrEGID2fBVCVOL8/A@public.gmane.org>
On 2012-11-19 at 19:21:34 +0100, Bill Pemberton <wfp5p-4Ng6DfrEGID2fBVCVOL8/A@public.gmane.org> wrote:
> CONFIG_HOTPLUG is going away as an option so __devexit_p is no longer
> needed.
>
> Signed-off-by: Bill Pemberton <wfp5p-4Ng6DfrEGID2fBVCVOL8/A@public.gmane.org>
> Cc: Alan Cox <alan-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
> Cc: Tobias Klauser <tklauser-93Khv+1bN0NyDzI6CaY1VQ@public.gmane.org>
> Cc: Lucas Tavares <lucaskt-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
> Cc: "David S. Miller" <davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
> Cc: Peter Korsgaard <jacmet-OfajU3CKLf1/SzgSGea1oA@public.gmane.org>
> Cc: Tony Prisk <linux-ci5G2KO2hbZ+pU9mqzGVBQ@public.gmane.org>
> Cc: linux-serial-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> Cc: nios2-dev-1eJk0qcHJCcaeqlQEoCUNoJY59XmG8rH@public.gmane.org
> Cc: uclinux-dist-devel-ZG0+EudsQA8dtHy/vicBwGD2FQJk+8+b@public.gmane.org
> Cc: sparclinux-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> Cc: linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org
> ---
[...]
> drivers/tty/serial/altera_jtaguart.c | 2 +-
> drivers/tty/serial/altera_uart.c | 2 +-
Acked-by: Tobias Klauser <tklauser-93Khv+1bN0NyDzI6CaY1VQ@public.gmane.org>
^ permalink raw reply
* Re: [PATCH 161/493] tty: remove use of __devinit
From: Nicolas Ferre @ 2012-11-20 9:34 UTC (permalink / raw)
To: Bill Pemberton
Cc: gregkh, nios2-dev, linux-ia64, Jiri Slaby, linux-serial,
Lucas Tavares, sparclinux, Peter Korsgaard, Tobias Klauser,
linuxppc-dev, David S. Miller, linux-arm-kernel, Alan Cox
In-Reply-To: <1353349642-3677-161-git-send-email-wfp5p@virginia.edu>
On 11/19/2012 07:21 PM, Bill Pemberton :
> CONFIG_HOTPLUG is going away as an option so __devinit is no longer
> needed.
>
> Signed-off-by: Bill Pemberton <wfp5p@virginia.edu>
> Cc: Jiri Slaby <jirislaby@gmail.com>
> Cc: Alan Cox <alan@linux.intel.com>
> Cc: Tobias Klauser <tklauser@distanz.ch>
> Cc: Lucas Tavares <lucaskt@linux.vnet.ibm.com>
> Cc: "David S. Miller" <davem@davemloft.net>
> Cc: Peter Korsgaard <jacmet@sunsite.dk>
> Cc: Tony Prisk <linux@prisktech.co.nz>
> Cc: linuxppc-dev@lists.ozlabs.org
> Cc: linux-serial@vger.kernel.org
> Cc: nios2-dev@sopc.et.ntust.edu.tw
> Cc: linux-ia64@vger.kernel.org
> Cc: sparclinux@vger.kernel.org
> Cc: linux-arm-kernel@lists.infradead.org
> drivers/tty/serial/atmel_serial.c | 6 +++---
Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com>
> diff --git a/drivers/tty/cyclades.c b/drivers/tty/cyclades.c
> index 0244acf..444b544 100644
> --- a/drivers/tty/cyclades.c
> +++ b/drivers/tty/cyclades.c
> @@ -3099,7 +3099,7 @@ static const struct tty_port_operations cyz_port_ops = {
> * ---------------------------------------------------------------------
> */
>
> -static int __devinit cy_init_card(struct cyclades_card *cinfo)
> +static int cy_init_card(struct cyclades_card *cinfo)
> {
> struct cyclades_port *info;
> unsigned int channel, port;
> @@ -3196,7 +3196,7 @@ static int __devinit cy_init_card(struct cyclades_card *cinfo)
>
> /* initialize chips on Cyclom-Y card -- return number of valid
> chips (which is number of ports/4) */
> -static unsigned short __devinit cyy_init_card(void __iomem *true_base_addr,
> +static unsigned short cyy_init_card(void __iomem *true_base_addr,
> int index)
> {
> unsigned int chip_number;
> @@ -3405,7 +3405,7 @@ static int __init cy_detect_isa(void)
> } /* cy_detect_isa */
>
> #ifdef CONFIG_PCI
> -static inline int __devinit cyc_isfwstr(const char *str, unsigned int size)
> +static inline int cyc_isfwstr(const char *str, unsigned int size)
> {
> unsigned int a;
>
> @@ -3420,7 +3420,7 @@ static inline int __devinit cyc_isfwstr(const char *str, unsigned int size)
> return 0;
> }
>
> -static inline void __devinit cyz_fpga_copy(void __iomem *fpga, const u8 *data,
> +static inline void cyz_fpga_copy(void __iomem *fpga, const u8 *data,
> unsigned int size)
> {
> for (; size > 0; size--) {
> @@ -3429,7 +3429,7 @@ static inline void __devinit cyz_fpga_copy(void __iomem *fpga, const u8 *data,
> }
> }
>
> -static void __devinit plx_init(struct pci_dev *pdev, int irq,
> +static void plx_init(struct pci_dev *pdev, int irq,
> struct RUNTIME_9060 __iomem *addr)
> {
> /* Reset PLX */
> @@ -3449,7 +3449,7 @@ static void __devinit plx_init(struct pci_dev *pdev, int irq,
> pci_write_config_byte(pdev, PCI_INTERRUPT_LINE, irq);
> }
>
> -static int __devinit __cyz_load_fw(const struct firmware *fw,
> +static int __cyz_load_fw(const struct firmware *fw,
> const char *name, const u32 mailbox, void __iomem *base,
> void __iomem *fpga)
> {
> @@ -3526,7 +3526,7 @@ static int __devinit __cyz_load_fw(const struct firmware *fw,
> return 0;
> }
>
> -static int __devinit cyz_load_fw(struct pci_dev *pdev, void __iomem *base_addr,
> +static int cyz_load_fw(struct pci_dev *pdev, void __iomem *base_addr,
> struct RUNTIME_9060 __iomem *ctl_addr, int irq)
> {
> const struct firmware *fw;
> @@ -3692,7 +3692,7 @@ err:
> return retval;
> }
>
> -static int __devinit cy_pci_probe(struct pci_dev *pdev,
> +static int cy_pci_probe(struct pci_dev *pdev,
> const struct pci_device_id *ent)
> {
> struct cyclades_card *card;
> diff --git a/drivers/tty/ehv_bytechan.c b/drivers/tty/ehv_bytechan.c
> index 4ab936b..65d4320 100644
> --- a/drivers/tty/ehv_bytechan.c
> +++ b/drivers/tty/ehv_bytechan.c
> @@ -699,7 +699,7 @@ static const struct tty_port_operations ehv_bc_tty_port_ops = {
> .shutdown = ehv_bc_tty_port_shutdown,
> };
>
> -static int __devinit ehv_bc_tty_probe(struct platform_device *pdev)
> +static int ehv_bc_tty_probe(struct platform_device *pdev)
> {
> struct device_node *np = pdev->dev.of_node;
> struct ehv_bc_data *bc;
> diff --git a/drivers/tty/hvc/hvc_opal.c b/drivers/tty/hvc/hvc_opal.c
> index f39337f..5ddd6f5 100644
> --- a/drivers/tty/hvc/hvc_opal.c
> +++ b/drivers/tty/hvc/hvc_opal.c
> @@ -161,7 +161,7 @@ static const struct hv_ops hvc_opal_hvsi_ops = {
> .tiocmset = hvc_opal_hvsi_tiocmset,
> };
>
> -static int __devinit hvc_opal_probe(struct platform_device *dev)
> +static int hvc_opal_probe(struct platform_device *dev)
> {
> const struct hv_ops *ops;
> struct hvc_struct *hp;
> diff --git a/drivers/tty/hvc/hvc_vio.c b/drivers/tty/hvc/hvc_vio.c
> index 1a5894c..f7333e3 100644
> --- a/drivers/tty/hvc/hvc_vio.c
> +++ b/drivers/tty/hvc/hvc_vio.c
> @@ -293,7 +293,7 @@ static int udbg_hvc_getc(void)
> }
> }
>
> -static int __devinit hvc_vio_probe(struct vio_dev *vdev,
> +static int hvc_vio_probe(struct vio_dev *vdev,
> const struct vio_device_id *id)
> {
> const struct hv_ops *ops;
> diff --git a/drivers/tty/hvc/hvc_xen.c b/drivers/tty/hvc/hvc_xen.c
> index f4abfe2..19843ec 100644
> --- a/drivers/tty/hvc/hvc_xen.c
> +++ b/drivers/tty/hvc/hvc_xen.c
> @@ -422,7 +422,7 @@ static int xencons_connect_backend(struct xenbus_device *dev,
> return ret;
> }
>
> -static int __devinit xencons_probe(struct xenbus_device *dev,
> +static int xencons_probe(struct xenbus_device *dev,
> const struct xenbus_device_id *id)
> {
> int ret, devid;
> diff --git a/drivers/tty/hvc/hvcs.c b/drivers/tty/hvc/hvcs.c
> index 888af58..506a28e 100644
> --- a/drivers/tty/hvc/hvcs.c
> +++ b/drivers/tty/hvc/hvcs.c
> @@ -330,12 +330,12 @@ static int hvcs_open(struct tty_struct *tty, struct file *filp);
> static void hvcs_close(struct tty_struct *tty, struct file *filp);
> static void hvcs_hangup(struct tty_struct * tty);
>
> -static int __devinit hvcs_probe(struct vio_dev *dev,
> +static int hvcs_probe(struct vio_dev *dev,
> const struct vio_device_id *id);
> static int __devexit hvcs_remove(struct vio_dev *dev);
> static int __init hvcs_module_init(void);
> static void __exit hvcs_module_exit(void);
> -static int __devinit hvcs_initialize(void);
> +static int hvcs_initialize(void);
>
> #define HVCS_SCHED_READ 0x00000001
> #define HVCS_QUICK_READ 0x00000002
> @@ -756,7 +756,7 @@ static int hvcs_get_index(void)
> return -1;
> }
>
> -static int __devinit hvcs_probe(
> +static int hvcs_probe(
> struct vio_dev *dev,
> const struct vio_device_id *id)
> {
> @@ -1478,7 +1478,7 @@ static void hvcs_free_index_list(void)
> hvcs_index_count = 0;
> }
>
> -static int __devinit hvcs_initialize(void)
> +static int hvcs_initialize(void)
> {
> int rc, num_ttys_to_alloc;
>
> diff --git a/drivers/tty/isicom.c b/drivers/tty/isicom.c
> index 4775747..d1c1fef 100644
> --- a/drivers/tty/isicom.c
> +++ b/drivers/tty/isicom.c
> @@ -1307,7 +1307,7 @@ static const struct tty_port_operations isicom_port_ops = {
> .shutdown = isicom_shutdown,
> };
>
> -static int __devinit reset_card(struct pci_dev *pdev,
> +static int reset_card(struct pci_dev *pdev,
> const unsigned int card, unsigned int *signature)
> {
> struct isi_board *board = pci_get_drvdata(pdev);
> @@ -1368,7 +1368,7 @@ end:
> return retval;
> }
>
> -static int __devinit load_firmware(struct pci_dev *pdev,
> +static int load_firmware(struct pci_dev *pdev,
> const unsigned int index, const unsigned int signature)
> {
> struct isi_board *board = pci_get_drvdata(pdev);
> @@ -1548,7 +1548,7 @@ end:
> */
> static unsigned int card_count;
>
> -static int __devinit isicom_probe(struct pci_dev *pdev,
> +static int isicom_probe(struct pci_dev *pdev,
> const struct pci_device_id *ent)
> {
> unsigned int uninitialized_var(signature), index;
> diff --git a/drivers/tty/moxa.c b/drivers/tty/moxa.c
> index c2d0cc3..0998773 100644
> --- a/drivers/tty/moxa.c
> +++ b/drivers/tty/moxa.c
> @@ -941,7 +941,7 @@ static void moxa_board_deinit(struct moxa_board_conf *brd)
> }
>
> #ifdef CONFIG_PCI
> -static int __devinit moxa_pci_probe(struct pci_dev *pdev,
> +static int moxa_pci_probe(struct pci_dev *pdev,
> const struct pci_device_id *ent)
> {
> struct moxa_board_conf *board;
> diff --git a/drivers/tty/mxser.c b/drivers/tty/mxser.c
> index f026797..9de9753 100644
> --- a/drivers/tty/mxser.c
> +++ b/drivers/tty/mxser.c
> @@ -487,7 +487,7 @@ static void mxser_disable_must_rx_software_flow_control(unsigned long baseio)
> }
>
> #ifdef CONFIG_PCI
> -static int __devinit CheckIsMoxaMust(unsigned long io)
> +static int CheckIsMoxaMust(unsigned long io)
> {
> u8 oldmcr, hwid;
> int i;
> @@ -2369,7 +2369,7 @@ static void mxser_release_ISA_res(struct mxser_board *brd)
> mxser_release_vector(brd);
> }
>
> -static int __devinit mxser_initbrd(struct mxser_board *brd,
> +static int mxser_initbrd(struct mxser_board *brd,
> struct pci_dev *pdev)
> {
> struct mxser_port *info;
> @@ -2534,7 +2534,7 @@ err_irqconflict:
> return -EIO;
> }
>
> -static int __devinit mxser_probe(struct pci_dev *pdev,
> +static int mxser_probe(struct pci_dev *pdev,
> const struct pci_device_id *ent)
> {
> #ifdef CONFIG_PCI
> diff --git a/drivers/tty/nozomi.c b/drivers/tty/nozomi.c
> index dc0213e..645f54a 100644
> --- a/drivers/tty/nozomi.c
> +++ b/drivers/tty/nozomi.c
> @@ -1360,7 +1360,7 @@ static void remove_sysfs_files(struct nozomi *dc)
> }
>
> /* Allocate memory for one device */
> -static int __devinit nozomi_card_init(struct pci_dev *pdev,
> +static int nozomi_card_init(struct pci_dev *pdev,
> const struct pci_device_id *ent)
> {
> resource_size_t start;
> diff --git a/drivers/tty/serial/8250/8250.c b/drivers/tty/serial/8250/8250.c
> index 870c5f2..40ba8cc 100644
> --- a/drivers/tty/serial/8250/8250.c
> +++ b/drivers/tty/serial/8250/8250.c
> @@ -2989,7 +2989,7 @@ void serial8250_resume_port(int line)
> * list is terminated with a zero flags entry, which means we expect
> * all entries to have at least UPF_BOOT_AUTOCONF set.
> */
> -static int __devinit serial8250_probe(struct platform_device *dev)
> +static int serial8250_probe(struct platform_device *dev)
> {
> struct plat_serial8250_port *p = dev->dev.platform_data;
> struct uart_8250_port uart;
> diff --git a/drivers/tty/serial/8250/8250_acorn.c b/drivers/tty/serial/8250/8250_acorn.c
> index b5e4b49..ed095eb 100644
> --- a/drivers/tty/serial/8250/8250_acorn.c
> +++ b/drivers/tty/serial/8250/8250_acorn.c
> @@ -38,7 +38,7 @@ struct serial_card_info {
> void __iomem *vaddr;
> };
>
> -static int __devinit
> +static int
> serial_card_probe(struct expansion_card *ec, const struct ecard_id *id)
> {
> struct serial_card_info *info;
> diff --git a/drivers/tty/serial/8250/8250_dw.c b/drivers/tty/serial/8250/8250_dw.c
> index 2db80d0..7664750 100644
> --- a/drivers/tty/serial/8250/8250_dw.c
> +++ b/drivers/tty/serial/8250/8250_dw.c
> @@ -87,7 +87,7 @@ static int dw8250_handle_irq(struct uart_port *p)
> return 0;
> }
>
> -static int __devinit dw8250_probe(struct platform_device *pdev)
> +static int dw8250_probe(struct platform_device *pdev)
> {
> struct uart_8250_port uart = {};
> struct resource *regs = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> diff --git a/drivers/tty/serial/8250/8250_em.c b/drivers/tty/serial/8250/8250_em.c
> index 80c0a62..f59bff5 100644
> --- a/drivers/tty/serial/8250/8250_em.c
> +++ b/drivers/tty/serial/8250/8250_em.c
> @@ -89,7 +89,7 @@ static void serial8250_em_serial_dl_write(struct uart_8250_port *up, int value)
> serial_out(up, UART_DLM_EM, value >> 8 & 0xff);
> }
>
> -static int __devinit serial8250_em_probe(struct platform_device *pdev)
> +static int serial8250_em_probe(struct platform_device *pdev)
> {
> struct resource *regs = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> struct resource *irq = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
> diff --git a/drivers/tty/serial/8250/8250_hp300.c b/drivers/tty/serial/8250/8250_hp300.c
> index 89e8855..2b94505 100644
> --- a/drivers/tty/serial/8250/8250_hp300.c
> +++ b/drivers/tty/serial/8250/8250_hp300.c
> @@ -36,7 +36,7 @@ static struct hp300_port *hp300_ports;
>
> #ifdef CONFIG_HPDCA
>
> -static int __devinit hpdca_init_one(struct dio_dev *d,
> +static int hpdca_init_one(struct dio_dev *d,
> const struct dio_device_id *ent);
> static void __devexit hpdca_remove_one(struct dio_dev *d);
>
> @@ -159,7 +159,7 @@ int __init hp300_setup_serial_console(void)
> #endif /* CONFIG_SERIAL_8250_CONSOLE */
>
> #ifdef CONFIG_HPDCA
> -static int __devinit hpdca_init_one(struct dio_dev *d,
> +static int hpdca_init_one(struct dio_dev *d,
> const struct dio_device_id *ent)
> {
> struct uart_8250_port uart;
> diff --git a/drivers/tty/serial/8250/8250_pci.c b/drivers/tty/serial/8250/8250_pci.c
> index c049cfa..a5acb57 100644
> --- a/drivers/tty/serial/8250/8250_pci.c
> +++ b/drivers/tty/serial/8250/8250_pci.c
> @@ -2691,7 +2691,7 @@ static const struct pci_device_id blacklist[] = {
> * guess what the configuration might be, based on the pitiful PCI
> * serial specs. Returns 0 on success, 1 on failure.
> */
> -static int __devinit
> +static int
> serial_pci_guess_board(struct pci_dev *dev, struct pciserial_board *board)
> {
> const struct pci_device_id *bldev;
> @@ -2917,7 +2917,7 @@ EXPORT_SYMBOL_GPL(pciserial_resume_ports);
> * Probe one serial board. Unfortunately, there is no rhyme nor reason
> * to the arrangement of serial ports on a PCI card.
> */
> -static int __devinit
> +static int
> pciserial_init_one(struct pci_dev *dev, const struct pci_device_id *ent)
> {
> struct pci_serial_quirk *quirk;
> diff --git a/drivers/tty/serial/8250/8250_pnp.c b/drivers/tty/serial/8250/8250_pnp.c
> index e566220..2b8a6ac 100644
> --- a/drivers/tty/serial/8250/8250_pnp.c
> +++ b/drivers/tty/serial/8250/8250_pnp.c
> @@ -377,7 +377,7 @@ static char *modem_names[] __devinitdata = {
> "33600", "28800", "14400", "V.90", "V.34", "V.32", NULL
> };
>
> -static int __devinit check_name(char *name)
> +static int check_name(char *name)
> {
> char **tmp;
>
> @@ -388,7 +388,7 @@ static int __devinit check_name(char *name)
> return 0;
> }
>
> -static int __devinit check_resources(struct pnp_dev *dev)
> +static int check_resources(struct pnp_dev *dev)
> {
> resource_size_t base[] = {0x2f8, 0x3f8, 0x2e8, 0x3e8};
> int i;
> @@ -412,7 +412,7 @@ static int __devinit check_resources(struct pnp_dev *dev)
> * PnP modems, alternatively we must hardcode all modems in pnp_devices[]
> * table.
> */
> -static int __devinit serial_pnp_guess_board(struct pnp_dev *dev)
> +static int serial_pnp_guess_board(struct pnp_dev *dev)
> {
> if (!(check_name(pnp_dev_name(dev)) ||
> (dev->card && check_name(dev->card->name))))
> @@ -424,7 +424,7 @@ static int __devinit serial_pnp_guess_board(struct pnp_dev *dev)
> return -ENODEV;
> }
>
> -static int __devinit
> +static int
> serial_pnp_probe(struct pnp_dev *dev, const struct pnp_device_id *dev_id)
> {
> struct uart_8250_port uart;
> diff --git a/drivers/tty/serial/altera_jtaguart.c b/drivers/tty/serial/altera_jtaguart.c
> index ef16b0a..ef5c705 100644
> --- a/drivers/tty/serial/altera_jtaguart.c
> +++ b/drivers/tty/serial/altera_jtaguart.c
> @@ -406,7 +406,7 @@ static struct uart_driver altera_jtaguart_driver = {
> .cons = ALTERA_JTAGUART_CONSOLE,
> };
>
> -static int __devinit altera_jtaguart_probe(struct platform_device *pdev)
> +static int altera_jtaguart_probe(struct platform_device *pdev)
> {
> struct altera_jtaguart_platform_uart *platp = pdev->dev.platform_data;
> struct uart_port *port;
> diff --git a/drivers/tty/serial/altera_uart.c b/drivers/tty/serial/altera_uart.c
> index 117ea2c..066b503 100644
> --- a/drivers/tty/serial/altera_uart.c
> +++ b/drivers/tty/serial/altera_uart.c
> @@ -532,7 +532,7 @@ static int altera_uart_get_of_uartclk(struct platform_device *pdev,
> }
> #endif /* CONFIG_OF */
>
> -static int __devinit altera_uart_probe(struct platform_device *pdev)
> +static int altera_uart_probe(struct platform_device *pdev)
> {
> struct altera_uart_platform_uart *platp = pdev->dev.platform_data;
> struct uart_port *port;
> diff --git a/drivers/tty/serial/apbuart.c b/drivers/tty/serial/apbuart.c
> index 7162f70..59ae2b5 100644
> --- a/drivers/tty/serial/apbuart.c
> +++ b/drivers/tty/serial/apbuart.c
> @@ -554,7 +554,7 @@ static struct uart_driver grlib_apbuart_driver = {
> /* OF Platform Driver */
> /* ======================================================================== */
>
> -static int __devinit apbuart_probe(struct platform_device *op)
> +static int apbuart_probe(struct platform_device *op)
> {
> int i;
> struct uart_port *port = NULL;
> diff --git a/drivers/tty/serial/ar933x_uart.c b/drivers/tty/serial/ar933x_uart.c
> index 33122f9..fab0a91 100644
> --- a/drivers/tty/serial/ar933x_uart.c
> +++ b/drivers/tty/serial/ar933x_uart.c
> @@ -554,7 +554,7 @@ static struct uart_driver ar933x_uart_driver = {
> .cons = AR933X_SERIAL_CONSOLE,
> };
>
> -static int __devinit ar933x_uart_probe(struct platform_device *pdev)
> +static int ar933x_uart_probe(struct platform_device *pdev)
> {
> struct ar933x_uart_platform_data *pdata;
> struct ar933x_uart_port *up;
> diff --git a/drivers/tty/serial/arc_uart.c b/drivers/tty/serial/arc_uart.c
> index d652569..158d798 100644
> --- a/drivers/tty/serial/arc_uart.c
> +++ b/drivers/tty/serial/arc_uart.c
> @@ -525,7 +525,7 @@ static struct uart_ops arc_serial_pops = {
> #endif
> };
>
> -static int __devinit
> +static int
> arc_uart_init_one(struct platform_device *pdev, struct arc_uart_port *uart)
> {
> struct resource *res, *res2;
> @@ -577,7 +577,7 @@ arc_uart_init_one(struct platform_device *pdev, struct arc_uart_port *uart)
>
> #ifdef CONFIG_SERIAL_ARC_CONSOLE
>
> -static int __devinit arc_serial_console_setup(struct console *co, char *options)
> +static int arc_serial_console_setup(struct console *co, char *options)
> {
> struct uart_port *port;
> int baud = 115200;
> @@ -655,7 +655,7 @@ static struct __initdata console arc_early_serial_console = {
> .index = -1
> };
>
> -static int __devinit arc_serial_probe_earlyprintk(struct platform_device *pdev)
> +static int arc_serial_probe_earlyprintk(struct platform_device *pdev)
> {
> arc_early_serial_console.index = pdev->id;
>
> @@ -667,13 +667,13 @@ static int __devinit arc_serial_probe_earlyprintk(struct platform_device *pdev)
> return 0;
> }
> #else
> -static int __devinit arc_serial_probe_earlyprintk(struct platform_device *pdev)
> +static int arc_serial_probe_earlyprintk(struct platform_device *pdev)
> {
> return -ENODEV;
> }
> #endif /* CONFIG_SERIAL_ARC_CONSOLE */
>
> -static int __devinit arc_serial_probe(struct platform_device *pdev)
> +static int arc_serial_probe(struct platform_device *pdev)
> {
> struct arc_uart_port *uart;
> int rc;
> diff --git a/drivers/tty/serial/atmel_serial.c b/drivers/tty/serial/atmel_serial.c
> index 7f91d08..c1f6c0b 100644
> --- a/drivers/tty/serial/atmel_serial.c
> +++ b/drivers/tty/serial/atmel_serial.c
> @@ -1424,7 +1424,7 @@ static struct uart_ops atmel_pops = {
> #endif
> };
>
> -static void __devinit atmel_of_init_port(struct atmel_uart_port *atmel_port,
> +static void atmel_of_init_port(struct atmel_uart_port *atmel_port,
> struct device_node *np)
> {
> u32 rs485_delay[2];
> @@ -1459,7 +1459,7 @@ static void __devinit atmel_of_init_port(struct atmel_uart_port *atmel_port,
> /*
> * Configure the port from the platform device resource info.
> */
> -static void __devinit atmel_init_port(struct atmel_uart_port *atmel_port,
> +static void atmel_init_port(struct atmel_uart_port *atmel_port,
> struct platform_device *pdev)
> {
> struct uart_port *port = &atmel_port->uart;
> @@ -1767,7 +1767,7 @@ static int atmel_serial_resume(struct platform_device *pdev)
> #define atmel_serial_resume NULL
> #endif
>
> -static int __devinit atmel_serial_probe(struct platform_device *pdev)
> +static int atmel_serial_probe(struct platform_device *pdev)
> {
> struct atmel_uart_port *port;
> struct device_node *np = pdev->dev.of_node;
> diff --git a/drivers/tty/serial/bcm63xx_uart.c b/drivers/tty/serial/bcm63xx_uart.c
> index 7f631d4..e54d170 100644
> --- a/drivers/tty/serial/bcm63xx_uart.c
> +++ b/drivers/tty/serial/bcm63xx_uart.c
> @@ -801,7 +801,7 @@ static struct uart_driver bcm_uart_driver = {
> /*
> * platform driver probe/remove callback
> */
> -static int __devinit bcm_uart_probe(struct platform_device *pdev)
> +static int bcm_uart_probe(struct platform_device *pdev)
> {
> struct resource *res_mem, *res_irq;
> struct uart_port *port;
> diff --git a/drivers/tty/serial/bfin_sport_uart.c b/drivers/tty/serial/bfin_sport_uart.c
> index b4a18c7..a47e00b 100644
> --- a/drivers/tty/serial/bfin_sport_uart.c
> +++ b/drivers/tty/serial/bfin_sport_uart.c
> @@ -740,7 +740,7 @@ static struct dev_pm_ops bfin_sport_uart_dev_pm_ops = {
> };
> #endif
>
> -static int __devinit sport_uart_probe(struct platform_device *pdev)
> +static int sport_uart_probe(struct platform_device *pdev)
> {
> struct resource *res;
> struct sport_uart_port *sport;
> diff --git a/drivers/tty/serial/clps711x.c b/drivers/tty/serial/clps711x.c
> index d631ef5..006d283 100644
> --- a/drivers/tty/serial/clps711x.c
> +++ b/drivers/tty/serial/clps711x.c
> @@ -429,7 +429,7 @@ static int uart_clps711x_console_setup(struct console *co, char *options)
> }
> #endif
>
> -static int __devinit uart_clps711x_probe(struct platform_device *pdev)
> +static int uart_clps711x_probe(struct platform_device *pdev)
> {
> struct clps711x_port *s;
> int ret, i;
> diff --git a/drivers/tty/serial/cpm_uart/cpm_uart_core.c b/drivers/tty/serial/cpm_uart/cpm_uart_core.c
> index d0dd919..de3f0f6 100644
> --- a/drivers/tty/serial/cpm_uart/cpm_uart_core.c
> +++ b/drivers/tty/serial/cpm_uart/cpm_uart_core.c
> @@ -1373,7 +1373,7 @@ static struct uart_driver cpm_reg = {
>
> static int probe_index;
>
> -static int __devinit cpm_uart_probe(struct platform_device *ofdev)
> +static int cpm_uart_probe(struct platform_device *ofdev)
> {
> int index = probe_index++;
> struct uart_cpm_port *pinfo = &cpm_uart_ports[index];
> diff --git a/drivers/tty/serial/efm32-uart.c b/drivers/tty/serial/efm32-uart.c
> index 1e8bacf..833c33a 100644
> --- a/drivers/tty/serial/efm32-uart.c
> +++ b/drivers/tty/serial/efm32-uart.c
> @@ -690,7 +690,7 @@ static int efm32_uart_probe_dt(struct platform_device *pdev,
>
> }
>
> -static int __devinit efm32_uart_probe(struct platform_device *pdev)
> +static int efm32_uart_probe(struct platform_device *pdev)
> {
> struct efm32_uart_port *efm_port;
> struct resource *res;
> diff --git a/drivers/tty/serial/icom.c b/drivers/tty/serial/icom.c
> index 82671b5..8c5ad58 100644
> --- a/drivers/tty/serial/icom.c
> +++ b/drivers/tty/serial/icom.c
> @@ -175,7 +175,7 @@ static void free_port_memory(struct icom_port *icom_port)
> }
> }
>
> -static int __devinit get_port_memory(struct icom_port *icom_port)
> +static int get_port_memory(struct icom_port *icom_port)
> {
> int index;
> unsigned long stgAddr;
> @@ -1314,7 +1314,7 @@ static struct uart_driver icom_uart_driver = {
> .cons = ICOM_CONSOLE,
> };
>
> -static int __devinit icom_init_ports(struct icom_adapter *icom_adapter)
> +static int icom_init_ports(struct icom_adapter *icom_adapter)
> {
> u32 subsystem_id = icom_adapter->subsystem_id;
> int i;
> @@ -1381,7 +1381,7 @@ static void icom_port_active(struct icom_port *icom_port, struct icom_adapter *i
> 0x8024 + 2 - 2 * (icom_port->port - 2);
> }
> }
> -static int __devinit icom_load_ports(struct icom_adapter *icom_adapter)
> +static int icom_load_ports(struct icom_adapter *icom_adapter)
> {
> struct icom_port *icom_port;
> int port_num;
> @@ -1407,7 +1407,7 @@ static int __devinit icom_load_ports(struct icom_adapter *icom_adapter)
> return 0;
> }
>
> -static int __devinit icom_alloc_adapter(struct icom_adapter
> +static int icom_alloc_adapter(struct icom_adapter
> **icom_adapter_ref)
> {
> int adapter_count = 0;
> @@ -1487,7 +1487,7 @@ static void icom_kref_release(struct kref *kref)
> icom_remove_adapter(icom_adapter);
> }
>
> -static int __devinit icom_probe(struct pci_dev *dev,
> +static int icom_probe(struct pci_dev *dev,
> const struct pci_device_id *ent)
> {
> int index;
> diff --git a/drivers/tty/serial/ioc3_serial.c b/drivers/tty/serial/ioc3_serial.c
> index 5ac5289..d8f1d1d 100644
> --- a/drivers/tty/serial/ioc3_serial.c
> +++ b/drivers/tty/serial/ioc3_serial.c
> @@ -2010,7 +2010,7 @@ static int ioc3uart_remove(struct ioc3_submodule *is,
> * @idd: ioc3 driver data for this card
> */
>
> -static int __devinit
> +static int
> ioc3uart_probe(struct ioc3_submodule *is, struct ioc3_driver_data *idd)
> {
> struct pci_dev *pdev = idd->pdev;
> diff --git a/drivers/tty/serial/jsm/jsm_driver.c b/drivers/tty/serial/jsm/jsm_driver.c
> index bbd4592..5b57c8e 100644
> --- a/drivers/tty/serial/jsm/jsm_driver.c
> +++ b/drivers/tty/serial/jsm/jsm_driver.c
> @@ -64,7 +64,7 @@ int jsm_debug;
> module_param(jsm_debug, int, 0);
> MODULE_PARM_DESC(jsm_debug, "Driver debugging level");
>
> -static int __devinit jsm_probe_one(struct pci_dev *pdev, const struct pci_device_id *ent)
> +static int jsm_probe_one(struct pci_dev *pdev, const struct pci_device_id *ent)
> {
> int rc = 0;
> struct jsm_board *brd;
> diff --git a/drivers/tty/serial/jsm/jsm_tty.c b/drivers/tty/serial/jsm/jsm_tty.c
> index 7d2c1f3..4c00c55 100644
> --- a/drivers/tty/serial/jsm/jsm_tty.c
> +++ b/drivers/tty/serial/jsm/jsm_tty.c
> @@ -371,7 +371,7 @@ static struct uart_ops jsm_ops = {
> * Init the tty subsystem. Called once per board after board has been
> * downloaded and init'ed.
> */
> -int __devinit jsm_tty_init(struct jsm_board *brd)
> +int jsm_tty_init(struct jsm_board *brd)
> {
> int i;
> void __iomem *vaddr;
> diff --git a/drivers/tty/serial/lpc32xx_hs.c b/drivers/tty/serial/lpc32xx_hs.c
> index 7b0f5b4..3651dab 100644
> --- a/drivers/tty/serial/lpc32xx_hs.c
> +++ b/drivers/tty/serial/lpc32xx_hs.c
> @@ -686,7 +686,7 @@ static struct uart_ops serial_lpc32xx_pops = {
> /*
> * Register a set of serial devices attached to a platform device
> */
> -static int __devinit serial_hs_lpc32xx_probe(struct platform_device *pdev)
> +static int serial_hs_lpc32xx_probe(struct platform_device *pdev)
> {
> struct lpc32xx_hsuart_port *p = &lpc32xx_hs_ports[uarts_registered];
> int ret = 0;
> diff --git a/drivers/tty/serial/max3100.c b/drivers/tty/serial/max3100.c
> index 2ffd7f0..8dd6189 100644
> --- a/drivers/tty/serial/max3100.c
> +++ b/drivers/tty/serial/max3100.c
> @@ -742,7 +742,7 @@ static struct uart_driver max3100_uart_driver = {
> };
> static int uart_driver_registered;
>
> -static int __devinit max3100_probe(struct spi_device *spi)
> +static int max3100_probe(struct spi_device *spi)
> {
> int i, retval;
> struct plat_max3100 *pdata;
> diff --git a/drivers/tty/serial/max310x.c b/drivers/tty/serial/max310x.c
> index a332327..88a227f 100644
> --- a/drivers/tty/serial/max310x.c
> +++ b/drivers/tty/serial/max310x.c
> @@ -378,7 +378,7 @@ static void max310x_wait_pll(struct max310x_port *s)
> }
> }
>
> -static int __devinit max310x_update_best_err(unsigned long f, long *besterr)
> +static int max310x_update_best_err(unsigned long f, long *besterr)
> {
> /* Use baudrate 115200 for calculate error */
> long err = f % (115200 * 16);
> @@ -391,7 +391,7 @@ static int __devinit max310x_update_best_err(unsigned long f, long *besterr)
> return 1;
> }
>
> -static int __devinit max310x_set_ref_clk(struct max310x_port *s)
> +static int max310x_set_ref_clk(struct max310x_port *s)
> {
> unsigned int div, clksrc, pllcfg = 0;
> long besterr = -1;
> @@ -995,7 +995,7 @@ static struct max310x_pdata generic_plat_data = {
> .frequency = 26000000,
> };
>
> -static int __devinit max310x_probe(struct spi_device *spi)
> +static int max310x_probe(struct spi_device *spi)
> {
> struct max310x_port *s;
> struct device *dev = &spi->dev;
> diff --git a/drivers/tty/serial/mcf.c b/drivers/tty/serial/mcf.c
> index e3de785..e2b93d2 100644
> --- a/drivers/tty/serial/mcf.c
> +++ b/drivers/tty/serial/mcf.c
> @@ -571,7 +571,7 @@ static struct uart_driver mcf_driver = {
>
> /****************************************************************************/
>
> -static int __devinit mcf_probe(struct platform_device *pdev)
> +static int mcf_probe(struct platform_device *pdev)
> {
> struct mcf_platform_uart *platp = pdev->dev.platform_data;
> struct uart_port *port;
> diff --git a/drivers/tty/serial/mpc52xx_uart.c b/drivers/tty/serial/mpc52xx_uart.c
> index 8cf5770..7c23c4f 100644
> --- a/drivers/tty/serial/mpc52xx_uart.c
> +++ b/drivers/tty/serial/mpc52xx_uart.c
> @@ -1308,7 +1308,7 @@ static struct of_device_id mpc52xx_uart_of_match[] = {
> {},
> };
>
> -static int __devinit mpc52xx_uart_of_probe(struct platform_device *op)
> +static int mpc52xx_uart_of_probe(struct platform_device *op)
> {
> int idx = -1;
> unsigned int uartclk;
> diff --git a/drivers/tty/serial/mrst_max3110.c b/drivers/tty/serial/mrst_max3110.c
> index 649ce12..41497fd 100644
> --- a/drivers/tty/serial/mrst_max3110.c
> +++ b/drivers/tty/serial/mrst_max3110.c
> @@ -773,7 +773,7 @@ static int serial_m3110_resume(struct spi_device *spi)
> #define serial_m3110_resume NULL
> #endif
>
> -static int __devinit serial_m3110_probe(struct spi_device *spi)
> +static int serial_m3110_probe(struct spi_device *spi)
> {
> struct uart_max3110 *max;
> void *buffer;
> diff --git a/drivers/tty/serial/msm_serial_hs.c b/drivers/tty/serial/msm_serial_hs.c
> index 1361ad5..02fb63e 100644
> --- a/drivers/tty/serial/msm_serial_hs.c
> +++ b/drivers/tty/serial/msm_serial_hs.c
> @@ -1521,7 +1521,7 @@ err_msm_hs_init_clk:
> }
>
> /* Initialize tx and rx data structures */
> -static int __devinit uartdm_init_port(struct uart_port *uport)
> +static int uartdm_init_port(struct uart_port *uport)
> {
> int ret = 0;
> struct msm_hs_port *msm_uport = UARTDM_TO_MSM(uport);
> @@ -1614,7 +1614,7 @@ err_tx_command_ptr_ptr:
> return ret;
> }
>
> -static int __devinit msm_hs_probe(struct platform_device *pdev)
> +static int msm_hs_probe(struct platform_device *pdev)
> {
> int ret;
> struct uart_port *uport;
> diff --git a/drivers/tty/serial/mxs-auart.c b/drivers/tty/serial/mxs-auart.c
> index 7554045..ed09bd4 100644
> --- a/drivers/tty/serial/mxs-auart.c
> +++ b/drivers/tty/serial/mxs-auart.c
> @@ -704,7 +704,7 @@ static int serial_mxs_probe_dt(struct mxs_auart_port *s,
> return 0;
> }
>
> -static int __devinit mxs_auart_probe(struct platform_device *pdev)
> +static int mxs_auart_probe(struct platform_device *pdev)
> {
> struct mxs_auart_port *s;
> u32 version;
> diff --git a/drivers/tty/serial/of_serial.c b/drivers/tty/serial/of_serial.c
> index b9fdccb2..1bce344 100644
> --- a/drivers/tty/serial/of_serial.c
> +++ b/drivers/tty/serial/of_serial.c
> @@ -52,7 +52,7 @@ EXPORT_SYMBOL_GPL(tegra_serial_handle_break);
> /*
> * Fill a struct uart_port for a given device node
> */
> -static int __devinit of_platform_serial_setup(struct platform_device *ofdev,
> +static int of_platform_serial_setup(struct platform_device *ofdev,
> int type, struct uart_port *port,
> struct of_serial_info *info)
> {
> @@ -138,7 +138,7 @@ out:
> * Try to register a serial port
> */
> static struct of_device_id of_platform_serial_table[];
> -static int __devinit of_platform_serial_probe(struct platform_device *ofdev)
> +static int of_platform_serial_probe(struct platform_device *ofdev)
> {
> const struct of_device_id *match;
> struct of_serial_info *info;
> diff --git a/drivers/tty/serial/omap-serial.c b/drivers/tty/serial/omap-serial.c
> index 624e6b5..1e988f7 100644
> --- a/drivers/tty/serial/omap-serial.c
> +++ b/drivers/tty/serial/omap-serial.c
> @@ -1307,7 +1307,7 @@ static int serial_omap_resume(struct device *dev)
> }
> #endif
>
> -static void __devinit omap_serial_fill_features_erratas(struct uart_omap_port *up)
> +static void omap_serial_fill_features_erratas(struct uart_omap_port *up)
> {
> u32 mvr, scheme;
> u16 revision, major, minor;
> @@ -1360,7 +1360,7 @@ static void __devinit omap_serial_fill_features_erratas(struct uart_omap_port *u
> }
> }
>
> -static __devinit struct omap_uart_port_info *of_get_uart_port_info(struct device *dev)
> +static struct omap_uart_port_info *of_get_uart_port_info(struct device *dev)
> {
> struct omap_uart_port_info *omap_up_info;
>
> @@ -1373,7 +1373,7 @@ static __devinit struct omap_uart_port_info *of_get_uart_port_info(struct device
> return omap_up_info;
> }
>
> -static int __devinit serial_omap_probe(struct platform_device *pdev)
> +static int serial_omap_probe(struct platform_device *pdev)
> {
> struct uart_omap_port *up;
> struct resource *mem, *irq;
> diff --git a/drivers/tty/serial/pch_uart.c b/drivers/tty/serial/pch_uart.c
> index f5fb9bd..8318925 100644
> --- a/drivers/tty/serial/pch_uart.c
> +++ b/drivers/tty/serial/pch_uart.c
> @@ -1839,7 +1839,7 @@ static DEFINE_PCI_DEVICE_TABLE(pch_uart_pci_id) = {
> {0,},
> };
>
> -static int __devinit pch_uart_pci_probe(struct pci_dev *pdev,
> +static int pch_uart_pci_probe(struct pci_dev *pdev,
> const struct pci_device_id *id)
> {
> int ret;
> diff --git a/drivers/tty/serial/sa1100.c b/drivers/tty/serial/sa1100.c
> index 2ca5959..da56c8a 100644
> --- a/drivers/tty/serial/sa1100.c
> +++ b/drivers/tty/serial/sa1100.c
> @@ -637,7 +637,7 @@ static void __init sa1100_init_ports(void)
> PPSR |= PPC_TXD1 | PPC_TXD3;
> }
>
> -void __devinit sa1100_register_uart_fns(struct sa1100_port_fns *fns)
> +void sa1100_register_uart_fns(struct sa1100_port_fns *fns)
> {
> if (fns->get_mctrl)
> sa1100_pops.get_mctrl = fns->get_mctrl;
> diff --git a/drivers/tty/serial/sc26xx.c b/drivers/tty/serial/sc26xx.c
> index 9a40659..aced1dd 100644
> --- a/drivers/tty/serial/sc26xx.c
> +++ b/drivers/tty/serial/sc26xx.c
> @@ -621,7 +621,7 @@ static u8 sc26xx_flags2mask(unsigned int flags, unsigned int bitpos)
> return bit ? (1 << (bit - 1)) : 0;
> }
>
> -static void __devinit sc26xx_init_masks(struct uart_sc26xx_port *up,
> +static void sc26xx_init_masks(struct uart_sc26xx_port *up,
> int line, unsigned int data)
> {
> up->dtr_mask[line] = sc26xx_flags2mask(data, 0);
> @@ -632,7 +632,7 @@ static void __devinit sc26xx_init_masks(struct uart_sc26xx_port *up,
> up->ri_mask[line] = sc26xx_flags2mask(data, 20);
> }
>
> -static int __devinit sc26xx_probe(struct platform_device *dev)
> +static int sc26xx_probe(struct platform_device *dev)
> {
> struct resource *res;
> struct uart_sc26xx_port *up;
> diff --git a/drivers/tty/serial/sccnxp.c b/drivers/tty/serial/sccnxp.c
> index 810853f..1ddace8 100644
> --- a/drivers/tty/serial/sccnxp.c
> +++ b/drivers/tty/serial/sccnxp.c
> @@ -740,7 +740,7 @@ static int sccnxp_console_setup(struct console *co, char *options)
> }
> #endif
>
> -static int __devinit sccnxp_probe(struct platform_device *pdev)
> +static int sccnxp_probe(struct platform_device *pdev)
> {
> struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> int chiptype = pdev->id_entry->driver_data;
> diff --git a/drivers/tty/serial/serial_txx9.c b/drivers/tty/serial/serial_txx9.c
> index 9d979a9..23b28b8 100644
> --- a/drivers/tty/serial/serial_txx9.c
> +++ b/drivers/tty/serial/serial_txx9.c
> @@ -1030,7 +1030,7 @@ static DEFINE_MUTEX(serial_txx9_mutex);
> *
> * On success the port is ready to use and the line number is returned.
> */
> -static int __devinit serial_txx9_register_port(struct uart_port *port)
> +static int serial_txx9_register_port(struct uart_port *port)
> {
> int i;
> struct uart_txx9_port *uart;
> @@ -1096,7 +1096,7 @@ static void __devexit serial_txx9_unregister_port(int line)
> /*
> * Register a set of serial devices attached to a platform device.
> */
> -static int __devinit serial_txx9_probe(struct platform_device *dev)
> +static int serial_txx9_probe(struct platform_device *dev)
> {
> struct uart_port *p = dev->dev.platform_data;
> struct uart_port port;
> @@ -1187,7 +1187,7 @@ static struct platform_driver serial_txx9_plat_driver = {
> * Probe one serial board. Unfortunately, there is no rhyme nor reason
> * to the arrangement of serial ports on a PCI card.
> */
> -static int __devinit
> +static int
> pciserial_txx9_init_one(struct pci_dev *dev, const struct pci_device_id *ent)
> {
> struct uart_port port;
> diff --git a/drivers/tty/serial/sh-sci.c b/drivers/tty/serial/sh-sci.c
> index 6ee5900..390fdc7 100644
> --- a/drivers/tty/serial/sh-sci.c
> +++ b/drivers/tty/serial/sh-sci.c
> @@ -1132,7 +1132,7 @@ static const char *sci_gpio_str(unsigned int index)
> return sci_gpio_names[index];
> }
>
> -static void __devinit sci_init_gpios(struct sci_port *port)
> +static void sci_init_gpios(struct sci_port *port)
> {
> struct uart_port *up = &port->port;
> int i;
> @@ -2064,7 +2064,7 @@ static struct uart_ops sci_uart_ops = {
> #endif
> };
>
> -static int __devinit sci_init_single(struct platform_device *dev,
> +static int sci_init_single(struct platform_device *dev,
> struct sci_port *sci_port,
> unsigned int index,
> struct plat_sci_port *p)
> @@ -2220,7 +2220,7 @@ static void serial_console_write(struct console *co, const char *s,
> sci_port_disable(sci_port);
> }
>
> -static int __devinit serial_console_setup(struct console *co, char *options)
> +static int serial_console_setup(struct console *co, char *options)
> {
> struct sci_port *sci_port;
> struct uart_port *port;
> @@ -2278,7 +2278,7 @@ static struct console early_serial_console = {
>
> static char early_serial_buf[32];
>
> -static int __devinit sci_probe_earlyprintk(struct platform_device *pdev)
> +static int sci_probe_earlyprintk(struct platform_device *pdev)
> {
> struct plat_sci_port *cfg = pdev->dev.platform_data;
>
> @@ -2341,7 +2341,7 @@ static int sci_runtime_resume(struct device *dev)
> #define SCI_CONSOLE (&serial_console)
>
> #else
> -static inline int __devinit sci_probe_earlyprintk(struct platform_device *pdev)
> +static inline int sci_probe_earlyprintk(struct platform_device *pdev)
> {
> return -EINVAL;
> }
> @@ -2379,7 +2379,7 @@ static int sci_remove(struct platform_device *dev)
> return 0;
> }
>
> -static int __devinit sci_probe_single(struct platform_device *dev,
> +static int sci_probe_single(struct platform_device *dev,
> unsigned int index,
> struct plat_sci_port *p,
> struct sci_port *sciport)
> @@ -2409,7 +2409,7 @@ static int __devinit sci_probe_single(struct platform_device *dev,
> return 0;
> }
>
> -static int __devinit sci_probe(struct platform_device *dev)
> +static int sci_probe(struct platform_device *dev)
> {
> struct plat_sci_port *p = dev->dev.platform_data;
> struct sci_port *sp = &sci_ports[dev->id];
> diff --git a/drivers/tty/serial/sunhv.c b/drivers/tty/serial/sunhv.c
> index 949b2d3..cb58867 100644
> --- a/drivers/tty/serial/sunhv.c
> +++ b/drivers/tty/serial/sunhv.c
> @@ -519,7 +519,7 @@ static struct console sunhv_console = {
> .data = &sunhv_reg,
> };
>
> -static int __devinit hv_probe(struct platform_device *op)
> +static int hv_probe(struct platform_device *op)
> {
> struct uart_port *port;
> unsigned long minor;
> diff --git a/drivers/tty/serial/sunsab.c b/drivers/tty/serial/sunsab.c
> index bbb07bc..9a13c54 100644
> --- a/drivers/tty/serial/sunsab.c
> +++ b/drivers/tty/serial/sunsab.c
> @@ -954,7 +954,7 @@ static inline struct console *SUNSAB_CONSOLE(void)
> #define sunsab_console_init() do { } while (0)
> #endif
>
> -static int __devinit sunsab_init_one(struct uart_sunsab_port *up,
> +static int sunsab_init_one(struct uart_sunsab_port *up,
> struct platform_device *op,
> unsigned long offset,
> int line)
> @@ -1007,7 +1007,7 @@ static int __devinit sunsab_init_one(struct uart_sunsab_port *up,
> return 0;
> }
>
> -static int __devinit sab_probe(struct platform_device *op)
> +static int sab_probe(struct platform_device *op)
> {
> static int inst;
> struct uart_sunsab_port *up;
> diff --git a/drivers/tty/serial/sunsu.c b/drivers/tty/serial/sunsu.c
> index c0658f0..049bbc5 100644
> --- a/drivers/tty/serial/sunsu.c
> +++ b/drivers/tty/serial/sunsu.c
> @@ -1185,7 +1185,7 @@ static struct uart_driver sunsu_reg = {
> .major = TTY_MAJOR,
> };
>
> -static int __devinit sunsu_kbd_ms_init(struct uart_sunsu_port *up)
> +static int sunsu_kbd_ms_init(struct uart_sunsu_port *up)
> {
> int quot, baud;
> #ifdef CONFIG_SERIO
> @@ -1391,7 +1391,7 @@ static inline struct console *SUNSU_CONSOLE(void)
> #define sunsu_serial_console_init() do { } while (0)
> #endif
>
> -static enum su_type __devinit su_get_type(struct device_node *dp)
> +static enum su_type su_get_type(struct device_node *dp)
> {
> struct device_node *ap = of_find_node_by_path("/aliases");
>
> @@ -1412,7 +1412,7 @@ static enum su_type __devinit su_get_type(struct device_node *dp)
> return SU_PORT_PORT;
> }
>
> -static int __devinit su_probe(struct platform_device *op)
> +static int su_probe(struct platform_device *op)
> {
> static int inst;
> struct device_node *dp = op->dev.of_node;
> diff --git a/drivers/tty/serial/sunzilog.c b/drivers/tty/serial/sunzilog.c
> index c2ef475..02c058f 100644
> --- a/drivers/tty/serial/sunzilog.c
> +++ b/drivers/tty/serial/sunzilog.c
> @@ -1282,7 +1282,7 @@ static inline struct console *SUNZILOG_CONSOLE(void)
> #define SUNZILOG_CONSOLE() (NULL)
> #endif
>
> -static void __devinit sunzilog_init_kbdms(struct uart_sunzilog_port *up)
> +static void sunzilog_init_kbdms(struct uart_sunzilog_port *up)
> {
> int baud, brg;
>
> @@ -1302,7 +1302,7 @@ static void __devinit sunzilog_init_kbdms(struct uart_sunzilog_port *up)
> }
>
> #ifdef CONFIG_SERIO
> -static void __devinit sunzilog_register_serio(struct uart_sunzilog_port *up)
> +static void sunzilog_register_serio(struct uart_sunzilog_port *up)
> {
> struct serio *serio = &up->serio;
>
> @@ -1331,7 +1331,7 @@ static void __devinit sunzilog_register_serio(struct uart_sunzilog_port *up)
> }
> #endif
>
> -static void __devinit sunzilog_init_hw(struct uart_sunzilog_port *up)
> +static void sunzilog_init_hw(struct uart_sunzilog_port *up)
> {
> struct zilog_channel __iomem *channel;
> unsigned long flags;
> @@ -1400,7 +1400,7 @@ static void __devinit sunzilog_init_hw(struct uart_sunzilog_port *up)
>
> static int zilog_irq;
>
> -static int __devinit zs_probe(struct platform_device *op)
> +static int zs_probe(struct platform_device *op)
> {
> static int kbm_inst, uart_inst;
> int inst;
> diff --git a/drivers/tty/serial/timbuart.c b/drivers/tty/serial/timbuart.c
> index 5fc11f2..c833f50 100644
> --- a/drivers/tty/serial/timbuart.c
> +++ b/drivers/tty/serial/timbuart.c
> @@ -426,7 +426,7 @@ static struct uart_driver timbuart_driver = {
> .nr = 1
> };
>
> -static int __devinit timbuart_probe(struct platform_device *dev)
> +static int timbuart_probe(struct platform_device *dev)
> {
> int err, irq;
> struct timbuart_port *uart;
> diff --git a/drivers/tty/serial/uartlite.c b/drivers/tty/serial/uartlite.c
> index 1d44383..df9eeb4 100644
> --- a/drivers/tty/serial/uartlite.c
> +++ b/drivers/tty/serial/uartlite.c
> @@ -408,7 +408,7 @@ static void ulite_console_write(struct console *co, const char *s,
> spin_unlock_irqrestore(&port->lock, flags);
> }
>
> -static int __devinit ulite_console_setup(struct console *co, char *options)
> +static int ulite_console_setup(struct console *co, char *options)
> {
> struct uart_port *port;
> int baud = 9600;
> @@ -486,7 +486,7 @@ static struct uart_driver ulite_uart_driver = {
> *
> * Returns: 0 on success, <0 otherwise
> */
> -static int __devinit ulite_assign(struct device *dev, int id, u32 base, int irq)
> +static int ulite_assign(struct device *dev, int id, u32 base, int irq)
> {
> struct uart_port *port;
> int rc;
> @@ -570,7 +570,7 @@ static struct of_device_id ulite_of_match[] __devinitdata = {
> MODULE_DEVICE_TABLE(of, ulite_of_match);
> #endif /* CONFIG_OF */
>
> -static int __devinit ulite_probe(struct platform_device *pdev)
> +static int ulite_probe(struct platform_device *pdev)
> {
> struct resource *res, *res2;
> int id = pdev->id;
> diff --git a/drivers/tty/serial/vr41xx_siu.c b/drivers/tty/serial/vr41xx_siu.c
> index 9d3bf75..c046c99 100644
> --- a/drivers/tty/serial/vr41xx_siu.c
> +++ b/drivers/tty/serial/vr41xx_siu.c
> @@ -823,7 +823,7 @@ static struct console siu_console = {
> .data = &siu_uart_driver,
> };
>
> -static int __devinit siu_console_init(void)
> +static int siu_console_init(void)
> {
> struct uart_port *port;
> int i;
> @@ -867,7 +867,7 @@ static struct uart_driver siu_uart_driver = {
> .cons = SERIAL_VR41XX_CONSOLE,
> };
>
> -static int __devinit siu_probe(struct platform_device *dev)
> +static int siu_probe(struct platform_device *dev)
> {
> struct uart_port *port;
> int num, i, retval;
> diff --git a/drivers/tty/serial/vt8500_serial.c b/drivers/tty/serial/vt8500_serial.c
> index dbcc909..80530c7 100644
> --- a/drivers/tty/serial/vt8500_serial.c
> +++ b/drivers/tty/serial/vt8500_serial.c
> @@ -554,7 +554,7 @@ static struct uart_driver vt8500_uart_driver = {
> .cons = VT8500_CONSOLE,
> };
>
> -static int __devinit vt8500_serial_probe(struct platform_device *pdev)
> +static int vt8500_serial_probe(struct platform_device *pdev)
> {
> struct vt8500_port *vt8500_port;
> struct resource *mmres, *irqres;
> diff --git a/drivers/tty/serial/xilinx_uartps.c b/drivers/tty/serial/xilinx_uartps.c
> index b627363..6e9ce65 100644
> --- a/drivers/tty/serial/xilinx_uartps.c
> +++ b/drivers/tty/serial/xilinx_uartps.c
> @@ -939,7 +939,7 @@ static struct uart_driver xuartps_uart_driver = {
> *
> * Returns 0 on success, negative error otherwise
> **/
> -static int __devinit xuartps_probe(struct platform_device *pdev)
> +static int xuartps_probe(struct platform_device *pdev)
> {
> int rc;
> struct uart_port *port;
> diff --git a/drivers/tty/synclink.c b/drivers/tty/synclink.c
> index 65b8669..87ba4ca 100644
> --- a/drivers/tty/synclink.c
> +++ b/drivers/tty/synclink.c
> @@ -8064,7 +8064,7 @@ static void hdlcdev_exit(struct mgsl_struct *info)
> #endif /* CONFIG_HDLC */
>
>
> -static int __devinit synclink_init_one (struct pci_dev *dev,
> +static int synclink_init_one (struct pci_dev *dev,
> const struct pci_device_id *ent)
> {
> struct mgsl_struct *info;
> diff --git a/drivers/tty/synclink_gt.c b/drivers/tty/synclink_gt.c
> index 28a2ccf..cdd1ba7 100644
> --- a/drivers/tty/synclink_gt.c
> +++ b/drivers/tty/synclink_gt.c
> @@ -3696,7 +3696,7 @@ static void device_init(int adapter_num, struct pci_dev *pdev)
> }
> }
>
> -static int __devinit init_one(struct pci_dev *dev,
> +static int init_one(struct pci_dev *dev,
> const struct pci_device_id *ent)
> {
> if (pci_enable_device(dev)) {
> diff --git a/drivers/tty/synclinkmp.c b/drivers/tty/synclinkmp.c
> index 3e56e1e..17454da 100644
> --- a/drivers/tty/synclinkmp.c
> +++ b/drivers/tty/synclinkmp.c
> @@ -5592,7 +5592,7 @@ static void write_control_reg(SLMP_INFO * info)
> }
>
>
> -static int __devinit synclinkmp_init_one (struct pci_dev *dev,
> +static int synclinkmp_init_one (struct pci_dev *dev,
> const struct pci_device_id *ent)
> {
> if (pci_enable_device(dev)) {
>
--
Nicolas Ferre
^ permalink raw reply
* Re: [PATCH 145/493] tty: serial: remove use of __devexit_p
From: Nicolas Ferre @ 2012-11-20 9:32 UTC (permalink / raw)
To: Bill Pemberton
Cc: gregkh, nios2-dev, uclinux-dist-devel, linux-serial,
Lucas Tavares, sparclinux, Peter Korsgaard, Tobias Klauser,
David S. Miller, linux-arm-kernel, Alan Cox
In-Reply-To: <1353349642-3677-145-git-send-email-wfp5p@virginia.edu>
On 11/19/2012 07:21 PM, Bill Pemberton :
> CONFIG_HOTPLUG is going away as an option so __devexit_p is no longer
> needed.
>
> Signed-off-by: Bill Pemberton <wfp5p@virginia.edu>
> Cc: Alan Cox <alan@linux.intel.com>
> Cc: Tobias Klauser <tklauser@distanz.ch>
> Cc: Lucas Tavares <lucaskt@linux.vnet.ibm.com>
> Cc: "David S. Miller" <davem@davemloft.net>
> Cc: Peter Korsgaard <jacmet@sunsite.dk>
> Cc: Tony Prisk <linux@prisktech.co.nz>
> Cc: linux-serial@vger.kernel.org
> Cc: nios2-dev@sopc.et.ntust.edu.tw
> Cc: uclinux-dist-devel@blackfin.uclinux.org
> Cc: sparclinux@vger.kernel.org
> Cc: linux-arm-kernel@lists.infradead.org
> ---
> drivers/tty/serial/atmel_serial.c | 2 +-
Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com>
> diff --git a/drivers/tty/serial/8250/8250.c b/drivers/tty/serial/8250/8250.c
> index 5ccbd90..870c5f2 100644
> --- a/drivers/tty/serial/8250/8250.c
> +++ b/drivers/tty/serial/8250/8250.c
> @@ -3078,7 +3078,7 @@ static int serial8250_resume(struct platform_device *dev)
>
> static struct platform_driver serial8250_isa_driver = {
> .probe = serial8250_probe,
> - .remove = __devexit_p(serial8250_remove),
> + .remove = serial8250_remove,
> .suspend = serial8250_suspend,
> .resume = serial8250_resume,
> .driver = {
> diff --git a/drivers/tty/serial/8250/8250_acorn.c b/drivers/tty/serial/8250/8250_acorn.c
> index 8574983..b5e4b49 100644
> --- a/drivers/tty/serial/8250/8250_acorn.c
> +++ b/drivers/tty/serial/8250/8250_acorn.c
> @@ -116,7 +116,7 @@ static const struct ecard_id serial_cids[] = {
>
> static struct ecard_driver serial_card_driver = {
> .probe = serial_card_probe,
> - .remove = __devexit_p(serial_card_remove),
> + .remove = serial_card_remove,
> .id_table = serial_cids,
> .drv = {
> .name = "8250_acorn",
> diff --git a/drivers/tty/serial/8250/8250_dw.c b/drivers/tty/serial/8250/8250_dw.c
> index b19b8c5..2db80d0 100644
> --- a/drivers/tty/serial/8250/8250_dw.c
> +++ b/drivers/tty/serial/8250/8250_dw.c
> @@ -197,7 +197,7 @@ static struct platform_driver dw8250_platform_driver = {
> .of_match_table = dw8250_match,
> },
> .probe = dw8250_probe,
> - .remove = __devexit_p(dw8250_remove),
> + .remove = dw8250_remove,
> .suspend = dw8250_suspend,
> .resume = dw8250_resume,
> };
> diff --git a/drivers/tty/serial/8250/8250_em.c b/drivers/tty/serial/8250/8250_em.c
> index 3a0363e..80c0a62 100644
> --- a/drivers/tty/serial/8250/8250_em.c
> +++ b/drivers/tty/serial/8250/8250_em.c
> @@ -176,7 +176,7 @@ static struct platform_driver serial8250_em_platform_driver = {
> .owner = THIS_MODULE,
> },
> .probe = serial8250_em_probe,
> - .remove = __devexit_p(serial8250_em_remove),
> + .remove = serial8250_em_remove,
> };
>
> module_platform_driver(serial8250_em_platform_driver);
> diff --git a/drivers/tty/serial/8250/8250_hp300.c b/drivers/tty/serial/8250/8250_hp300.c
> index f3d0edf..89e8855 100644
> --- a/drivers/tty/serial/8250/8250_hp300.c
> +++ b/drivers/tty/serial/8250/8250_hp300.c
> @@ -52,7 +52,7 @@ static struct dio_driver hpdca_driver = {
> .name = "hpdca",
> .id_table = hpdca_dio_tbl,
> .probe = hpdca_init_one,
> - .remove = __devexit_p(hpdca_remove_one),
> + .remove = hpdca_remove_one,
> };
>
> #endif
> diff --git a/drivers/tty/serial/8250/8250_pci.c b/drivers/tty/serial/8250/8250_pci.c
> index 508063b..c049cfa 100644
> --- a/drivers/tty/serial/8250/8250_pci.c
> +++ b/drivers/tty/serial/8250/8250_pci.c
> @@ -1314,7 +1314,7 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
> .subdevice = PCI_ANY_ID,
> .init = pci_ite887x_init,
> .setup = pci_default_setup,
> - .exit = __devexit_p(pci_ite887x_exit),
> + .exit = pci_ite887x_exit,
> },
> /*
> * National Instruments
> @@ -1326,7 +1326,7 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
> .subdevice = PCI_ANY_ID,
> .init = pci_ni8420_init,
> .setup = pci_default_setup,
> - .exit = __devexit_p(pci_ni8420_exit),
> + .exit = pci_ni8420_exit,
> },
> {
> .vendor = PCI_VENDOR_ID_NI,
> @@ -1335,7 +1335,7 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
> .subdevice = PCI_ANY_ID,
> .init = pci_ni8420_init,
> .setup = pci_default_setup,
> - .exit = __devexit_p(pci_ni8420_exit),
> + .exit = pci_ni8420_exit,
> },
> {
> .vendor = PCI_VENDOR_ID_NI,
> @@ -1344,7 +1344,7 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
> .subdevice = PCI_ANY_ID,
> .init = pci_ni8420_init,
> .setup = pci_default_setup,
> - .exit = __devexit_p(pci_ni8420_exit),
> + .exit = pci_ni8420_exit,
> },
> {
> .vendor = PCI_VENDOR_ID_NI,
> @@ -1353,7 +1353,7 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
> .subdevice = PCI_ANY_ID,
> .init = pci_ni8420_init,
> .setup = pci_default_setup,
> - .exit = __devexit_p(pci_ni8420_exit),
> + .exit = pci_ni8420_exit,
> },
> {
> .vendor = PCI_VENDOR_ID_NI,
> @@ -1362,7 +1362,7 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
> .subdevice = PCI_ANY_ID,
> .init = pci_ni8420_init,
> .setup = pci_default_setup,
> - .exit = __devexit_p(pci_ni8420_exit),
> + .exit = pci_ni8420_exit,
> },
> {
> .vendor = PCI_VENDOR_ID_NI,
> @@ -1371,7 +1371,7 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
> .subdevice = PCI_ANY_ID,
> .init = pci_ni8420_init,
> .setup = pci_default_setup,
> - .exit = __devexit_p(pci_ni8420_exit),
> + .exit = pci_ni8420_exit,
> },
> {
> .vendor = PCI_VENDOR_ID_NI,
> @@ -1380,7 +1380,7 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
> .subdevice = PCI_ANY_ID,
> .init = pci_ni8420_init,
> .setup = pci_default_setup,
> - .exit = __devexit_p(pci_ni8420_exit),
> + .exit = pci_ni8420_exit,
> },
> {
> .vendor = PCI_VENDOR_ID_NI,
> @@ -1389,7 +1389,7 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
> .subdevice = PCI_ANY_ID,
> .init = pci_ni8420_init,
> .setup = pci_default_setup,
> - .exit = __devexit_p(pci_ni8420_exit),
> + .exit = pci_ni8420_exit,
> },
> {
> .vendor = PCI_VENDOR_ID_NI,
> @@ -1398,7 +1398,7 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
> .subdevice = PCI_ANY_ID,
> .init = pci_ni8420_init,
> .setup = pci_default_setup,
> - .exit = __devexit_p(pci_ni8420_exit),
> + .exit = pci_ni8420_exit,
> },
> {
> .vendor = PCI_VENDOR_ID_NI,
> @@ -1407,7 +1407,7 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
> .subdevice = PCI_ANY_ID,
> .init = pci_ni8420_init,
> .setup = pci_default_setup,
> - .exit = __devexit_p(pci_ni8420_exit),
> + .exit = pci_ni8420_exit,
> },
> {
> .vendor = PCI_VENDOR_ID_NI,
> @@ -1416,7 +1416,7 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
> .subdevice = PCI_ANY_ID,
> .init = pci_ni8420_init,
> .setup = pci_default_setup,
> - .exit = __devexit_p(pci_ni8420_exit),
> + .exit = pci_ni8420_exit,
> },
> {
> .vendor = PCI_VENDOR_ID_NI,
> @@ -1425,7 +1425,7 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
> .subdevice = PCI_ANY_ID,
> .init = pci_ni8420_init,
> .setup = pci_default_setup,
> - .exit = __devexit_p(pci_ni8420_exit),
> + .exit = pci_ni8420_exit,
> },
> {
> .vendor = PCI_VENDOR_ID_NI,
> @@ -1434,7 +1434,7 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
> .subdevice = PCI_ANY_ID,
> .init = pci_ni8430_init,
> .setup = pci_ni8430_setup,
> - .exit = __devexit_p(pci_ni8430_exit),
> + .exit = pci_ni8430_exit,
> },
> /*
> * Panacom
> @@ -1446,7 +1446,7 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
> .subdevice = PCI_ANY_ID,
> .init = pci_plx9050_init,
> .setup = pci_default_setup,
> - .exit = __devexit_p(pci_plx9050_exit),
> + .exit = pci_plx9050_exit,
> },
> {
> .vendor = PCI_VENDOR_ID_PANACOM,
> @@ -1455,7 +1455,7 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
> .subdevice = PCI_ANY_ID,
> .init = pci_plx9050_init,
> .setup = pci_default_setup,
> - .exit = __devexit_p(pci_plx9050_exit),
> + .exit = pci_plx9050_exit,
> },
> /*
> * PLX
> @@ -1474,7 +1474,7 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
> .subdevice = PCI_SUBDEVICE_ID_EXSYS_4055,
> .init = pci_plx9050_init,
> .setup = pci_default_setup,
> - .exit = __devexit_p(pci_plx9050_exit),
> + .exit = pci_plx9050_exit,
> },
> {
> .vendor = PCI_VENDOR_ID_PLX,
> @@ -1483,7 +1483,7 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
> .subdevice = PCI_SUBDEVICE_ID_KEYSPAN_SX2,
> .init = pci_plx9050_init,
> .setup = pci_default_setup,
> - .exit = __devexit_p(pci_plx9050_exit),
> + .exit = pci_plx9050_exit,
> },
> {
> .vendor = PCI_VENDOR_ID_PLX,
> @@ -1492,7 +1492,7 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
> .subdevice = PCI_SUBDEVICE_ID_UNKNOWN_0x1584,
> .init = pci_plx9050_init,
> .setup = pci_default_setup,
> - .exit = __devexit_p(pci_plx9050_exit),
> + .exit = pci_plx9050_exit,
> },
> {
> .vendor = PCI_VENDOR_ID_PLX,
> @@ -1501,7 +1501,7 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
> .subdevice = PCI_DEVICE_ID_PLX_ROMULUS,
> .init = pci_plx9050_init,
> .setup = pci_default_setup,
> - .exit = __devexit_p(pci_plx9050_exit),
> + .exit = pci_plx9050_exit,
> },
> /*
> * SBS Technologies, Inc., PMC-OCTALPRO 232
> @@ -1513,7 +1513,7 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
> .subdevice = PCI_SUBDEVICE_ID_OCTPRO232,
> .init = sbs_init,
> .setup = sbs_setup,
> - .exit = __devexit_p(sbs_exit),
> + .exit = sbs_exit,
> },
> /*
> * SBS Technologies, Inc., PMC-OCTALPRO 422
> @@ -1525,7 +1525,7 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
> .subdevice = PCI_SUBDEVICE_ID_OCTPRO422,
> .init = sbs_init,
> .setup = sbs_setup,
> - .exit = __devexit_p(sbs_exit),
> + .exit = sbs_exit,
> },
> /*
> * SBS Technologies, Inc., P-Octal 232
> @@ -1537,7 +1537,7 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
> .subdevice = PCI_SUBDEVICE_ID_POCTAL232,
> .init = sbs_init,
> .setup = sbs_setup,
> - .exit = __devexit_p(sbs_exit),
> + .exit = sbs_exit,
> },
> /*
> * SBS Technologies, Inc., P-Octal 422
> @@ -1549,7 +1549,7 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
> .subdevice = PCI_SUBDEVICE_ID_POCTAL422,
> .init = sbs_init,
> .setup = sbs_setup,
> - .exit = __devexit_p(sbs_exit),
> + .exit = sbs_exit,
> },
> /*
> * SIIG cards - these may be called via parport_serial
> @@ -4323,7 +4323,7 @@ static const struct pci_error_handlers serial8250_err_handler = {
> static struct pci_driver serial_pci_driver = {
> .name = "serial",
> .probe = pciserial_init_one,
> - .remove = __devexit_p(pciserial_remove_one),
> + .remove = pciserial_remove_one,
> #ifdef CONFIG_PM
> .suspend = pciserial_suspend_one,
> .resume = pciserial_resume_one,
> diff --git a/drivers/tty/serial/8250/8250_pnp.c b/drivers/tty/serial/8250/8250_pnp.c
> index f8ee250..e566220 100644
> --- a/drivers/tty/serial/8250/8250_pnp.c
> +++ b/drivers/tty/serial/8250/8250_pnp.c
> @@ -511,7 +511,7 @@ static int serial_pnp_resume(struct pnp_dev *dev)
> static struct pnp_driver serial_pnp_driver = {
> .name = "serial",
> .probe = serial_pnp_probe,
> - .remove = __devexit_p(serial_pnp_remove),
> + .remove = serial_pnp_remove,
> .suspend = serial_pnp_suspend,
> .resume = serial_pnp_resume,
> .id_table = pnp_dev_table,
> diff --git a/drivers/tty/serial/altera_jtaguart.c b/drivers/tty/serial/altera_jtaguart.c
> index 530181e..ef16b0a 100644
> --- a/drivers/tty/serial/altera_jtaguart.c
> +++ b/drivers/tty/serial/altera_jtaguart.c
> @@ -477,7 +477,7 @@ MODULE_DEVICE_TABLE(of, altera_jtaguart_match);
>
> static struct platform_driver altera_jtaguart_platform_driver = {
> .probe = altera_jtaguart_probe,
> - .remove = __devexit_p(altera_jtaguart_remove),
> + .remove = altera_jtaguart_remove,
> .driver = {
> .name = DRV_NAME,
> .owner = THIS_MODULE,
> diff --git a/drivers/tty/serial/altera_uart.c b/drivers/tty/serial/altera_uart.c
> index 15d80b9..117ea2c 100644
> --- a/drivers/tty/serial/altera_uart.c
> +++ b/drivers/tty/serial/altera_uart.c
> @@ -621,7 +621,7 @@ MODULE_DEVICE_TABLE(of, altera_uart_match);
>
> static struct platform_driver altera_uart_platform_driver = {
> .probe = altera_uart_probe,
> - .remove = __devexit_p(altera_uart_remove),
> + .remove = altera_uart_remove,
> .driver = {
> .name = DRV_NAME,
> .owner = THIS_MODULE,
> diff --git a/drivers/tty/serial/ar933x_uart.c b/drivers/tty/serial/ar933x_uart.c
> index e4f60e2..33122f9 100644
> --- a/drivers/tty/serial/ar933x_uart.c
> +++ b/drivers/tty/serial/ar933x_uart.c
> @@ -645,7 +645,7 @@ static int __devexit ar933x_uart_remove(struct platform_device *pdev)
>
> static struct platform_driver ar933x_uart_platform_driver = {
> .probe = ar933x_uart_probe,
> - .remove = __devexit_p(ar933x_uart_remove),
> + .remove = ar933x_uart_remove,
> .driver = {
> .name = DRIVER_NAME,
> .owner = THIS_MODULE,
> diff --git a/drivers/tty/serial/arc_uart.c b/drivers/tty/serial/arc_uart.c
> index e9c61d1..d652569 100644
> --- a/drivers/tty/serial/arc_uart.c
> +++ b/drivers/tty/serial/arc_uart.c
> @@ -697,7 +697,7 @@ static int __devexit arc_serial_remove(struct platform_device *pdev)
>
> static struct platform_driver arc_platform_driver = {
> .probe = arc_serial_probe,
> - .remove = __devexit_p(arc_serial_remove),
> + .remove = arc_serial_remove,
> .driver = {
> .name = DRIVER_NAME,
> .owner = THIS_MODULE,
> diff --git a/drivers/tty/serial/atmel_serial.c b/drivers/tty/serial/atmel_serial.c
> index 5608b6b..7f91d08 100644
> --- a/drivers/tty/serial/atmel_serial.c
> +++ b/drivers/tty/serial/atmel_serial.c
> @@ -1884,7 +1884,7 @@ static int __devexit atmel_serial_remove(struct platform_device *pdev)
>
> static struct platform_driver atmel_serial_driver = {
> .probe = atmel_serial_probe,
> - .remove = __devexit_p(atmel_serial_remove),
> + .remove = atmel_serial_remove,
> .suspend = atmel_serial_suspend,
> .resume = atmel_serial_resume,
> .driver = {
> diff --git a/drivers/tty/serial/bcm63xx_uart.c b/drivers/tty/serial/bcm63xx_uart.c
> index c0b68b9..7f631d4 100644
> --- a/drivers/tty/serial/bcm63xx_uart.c
> +++ b/drivers/tty/serial/bcm63xx_uart.c
> @@ -865,7 +865,7 @@ static int __devexit bcm_uart_remove(struct platform_device *pdev)
> */
> static struct platform_driver bcm_uart_platform_driver = {
> .probe = bcm_uart_probe,
> - .remove = __devexit_p(bcm_uart_remove),
> + .remove = bcm_uart_remove,
> .driver = {
> .owner = THIS_MODULE,
> .name = "bcm63xx_uart",
> diff --git a/drivers/tty/serial/bfin_sport_uart.c b/drivers/tty/serial/bfin_sport_uart.c
> index 7fbc3a0..b4a18c7 100644
> --- a/drivers/tty/serial/bfin_sport_uart.c
> +++ b/drivers/tty/serial/bfin_sport_uart.c
> @@ -871,7 +871,7 @@ static int __devexit sport_uart_remove(struct platform_device *pdev)
>
> static struct platform_driver sport_uart_driver = {
> .probe = sport_uart_probe,
> - .remove = __devexit_p(sport_uart_remove),
> + .remove = sport_uart_remove,
> .driver = {
> .name = DRV_NAME,
> #ifdef CONFIG_PM
> diff --git a/drivers/tty/serial/bfin_uart.c b/drivers/tty/serial/bfin_uart.c
> index 9b11c3f..aa1f2f0f 100644
> --- a/drivers/tty/serial/bfin_uart.c
> +++ b/drivers/tty/serial/bfin_uart.c
> @@ -1410,7 +1410,7 @@ static int __devexit bfin_serial_remove(struct platform_device *pdev)
>
> static struct platform_driver bfin_serial_driver = {
> .probe = bfin_serial_probe,
> - .remove = __devexit_p(bfin_serial_remove),
> + .remove = bfin_serial_remove,
> .suspend = bfin_serial_suspend,
> .resume = bfin_serial_resume,
> .driver = {
> diff --git a/drivers/tty/serial/clps711x.c b/drivers/tty/serial/clps711x.c
> index a0a6db5..d631ef5 100644
> --- a/drivers/tty/serial/clps711x.c
> +++ b/drivers/tty/serial/clps711x.c
> @@ -512,7 +512,7 @@ static struct platform_driver clps711x_uart_driver = {
> .owner = THIS_MODULE,
> },
> .probe = uart_clps711x_probe,
> - .remove = __devexit_p(uart_clps711x_remove),
> + .remove = uart_clps711x_remove,
> };
> module_platform_driver(clps711x_uart_driver);
>
> diff --git a/drivers/tty/serial/efm32-uart.c b/drivers/tty/serial/efm32-uart.c
> index 615e464..1e8bacf 100644
> --- a/drivers/tty/serial/efm32-uart.c
> +++ b/drivers/tty/serial/efm32-uart.c
> @@ -791,7 +791,7 @@ MODULE_DEVICE_TABLE(of, efm32_uart_dt_ids);
>
> static struct platform_driver efm32_uart_driver = {
> .probe = efm32_uart_probe,
> - .remove = __devexit_p(efm32_uart_remove),
> + .remove = efm32_uart_remove,
>
> .driver = {
> .name = DRIVER_NAME,
> diff --git a/drivers/tty/serial/icom.c b/drivers/tty/serial/icom.c
> index 6131516..82671b5 100644
> --- a/drivers/tty/serial/icom.c
> +++ b/drivers/tty/serial/icom.c
> @@ -1617,7 +1617,7 @@ static struct pci_driver icom_pci_driver = {
> .name = ICOM_DRIVER_NAME,
> .id_table = icom_pci_table,
> .probe = icom_probe,
> - .remove = __devexit_p(icom_remove),
> + .remove = icom_remove,
> };
>
> static int __init icom_init(void)
> diff --git a/drivers/tty/serial/ifx6x60.c b/drivers/tty/serial/ifx6x60.c
> index fbda374..658a263 100644
> --- a/drivers/tty/serial/ifx6x60.c
> +++ b/drivers/tty/serial/ifx6x60.c
> @@ -1395,7 +1395,7 @@ static struct spi_driver ifx_spi_driver = {
> .owner = THIS_MODULE},
> .probe = ifx_spi_spi_probe,
> .shutdown = ifx_spi_spi_shutdown,
> - .remove = __devexit_p(ifx_spi_spi_remove),
> + .remove = ifx_spi_spi_remove,
> .suspend = ifx_spi_spi_suspend,
> .resume = ifx_spi_spi_resume,
> .id_table = ifx_id_table
> diff --git a/drivers/tty/serial/jsm/jsm_driver.c b/drivers/tty/serial/jsm/jsm_driver.c
> index 8e05ce9..bbd4592 100644
> --- a/drivers/tty/serial/jsm/jsm_driver.c
> +++ b/drivers/tty/serial/jsm/jsm_driver.c
> @@ -217,7 +217,7 @@ static struct pci_driver jsm_driver = {
> .name = "jsm",
> .id_table = jsm_pci_tbl,
> .probe = jsm_probe_one,
> - .remove = __devexit_p(jsm_remove_one),
> + .remove = jsm_remove_one,
> .err_handler = &jsm_err_handler,
> };
>
> diff --git a/drivers/tty/serial/lpc32xx_hs.c b/drivers/tty/serial/lpc32xx_hs.c
> index ba3af3b..7b0f5b4 100644
> --- a/drivers/tty/serial/lpc32xx_hs.c
> +++ b/drivers/tty/serial/lpc32xx_hs.c
> @@ -783,7 +783,7 @@ MODULE_DEVICE_TABLE(of, serial_hs_lpc32xx_dt_ids);
>
> static struct platform_driver serial_hs_lpc32xx_driver = {
> .probe = serial_hs_lpc32xx_probe,
> - .remove = __devexit_p(serial_hs_lpc32xx_remove),
> + .remove = serial_hs_lpc32xx_remove,
> .suspend = serial_hs_lpc32xx_suspend,
> .resume = serial_hs_lpc32xx_resume,
> .driver = {
> diff --git a/drivers/tty/serial/max3100.c b/drivers/tty/serial/max3100.c
> index 0f24486..2ffd7f0 100644
> --- a/drivers/tty/serial/max3100.c
> +++ b/drivers/tty/serial/max3100.c
> @@ -907,7 +907,7 @@ static struct spi_driver max3100_driver = {
> },
>
> .probe = max3100_probe,
> - .remove = __devexit_p(max3100_remove),
> + .remove = max3100_remove,
> .suspend = max3100_suspend,
> .resume = max3100_resume,
> };
> diff --git a/drivers/tty/serial/max310x.c b/drivers/tty/serial/max310x.c
> index 1ab1d2c..a332327 100644
> --- a/drivers/tty/serial/max310x.c
> +++ b/drivers/tty/serial/max310x.c
> @@ -1249,7 +1249,7 @@ static struct spi_driver max310x_driver = {
> .owner = THIS_MODULE,
> },
> .probe = max310x_probe,
> - .remove = __devexit_p(max310x_remove),
> + .remove = max310x_remove,
> .suspend = max310x_suspend,
> .resume = max310x_resume,
> .id_table = max310x_id_table,
> diff --git a/drivers/tty/serial/mcf.c b/drivers/tty/serial/mcf.c
> index 9afca09..e3de785 100644
> --- a/drivers/tty/serial/mcf.c
> +++ b/drivers/tty/serial/mcf.c
> @@ -617,7 +617,7 @@ static int __devexit mcf_remove(struct platform_device *pdev)
>
> static struct platform_driver mcf_platform_driver = {
> .probe = mcf_probe,
> - .remove = __devexit_p(mcf_remove),
> + .remove = mcf_remove,
> .driver = {
> .name = "mcfuart",
> .owner = THIS_MODULE,
> diff --git a/drivers/tty/serial/mfd.c b/drivers/tty/serial/mfd.c
> index c4b50af..71c4c8e 100644
> --- a/drivers/tty/serial/mfd.c
> +++ b/drivers/tty/serial/mfd.c
> @@ -1468,7 +1468,7 @@ static struct pci_driver hsu_pci_driver = {
> .name = "HSU serial",
> .id_table = pci_ids,
> .probe = serial_hsu_probe,
> - .remove = __devexit_p(serial_hsu_remove),
> + .remove = serial_hsu_remove,
> .suspend = serial_hsu_suspend,
> .resume = serial_hsu_resume,
> .driver = {
> diff --git a/drivers/tty/serial/mrst_max3110.c b/drivers/tty/serial/mrst_max3110.c
> index df2a224..649ce12 100644
> --- a/drivers/tty/serial/mrst_max3110.c
> +++ b/drivers/tty/serial/mrst_max3110.c
> @@ -879,7 +879,7 @@ static struct spi_driver uart_max3110_driver = {
> .owner = THIS_MODULE,
> },
> .probe = serial_m3110_probe,
> - .remove = __devexit_p(serial_m3110_remove),
> + .remove = serial_m3110_remove,
> .suspend = serial_m3110_suspend,
> .resume = serial_m3110_resume,
> };
> diff --git a/drivers/tty/serial/msm_serial_hs.c b/drivers/tty/serial/msm_serial_hs.c
> index fca13dc..1361ad5 100644
> --- a/drivers/tty/serial/msm_serial_hs.c
> +++ b/drivers/tty/serial/msm_serial_hs.c
> @@ -1838,7 +1838,7 @@ static const struct dev_pm_ops msm_hs_dev_pm_ops = {
>
> static struct platform_driver msm_serial_hs_platform_driver = {
> .probe = msm_hs_probe,
> - .remove = __devexit_p(msm_hs_remove),
> + .remove = msm_hs_remove,
> .driver = {
> .name = "msm_serial_hs",
> .owner = THIS_MODULE,
> diff --git a/drivers/tty/serial/mux.c b/drivers/tty/serial/mux.c
> index 7ea8a26..2783464 100644
> --- a/drivers/tty/serial/mux.c
> +++ b/drivers/tty/serial/mux.c
> @@ -571,14 +571,14 @@ static struct parisc_driver builtin_serial_mux_driver = {
> .name = "builtin_serial_mux",
> .id_table = builtin_mux_tbl,
> .probe = mux_probe,
> - .remove = __devexit_p(mux_remove),
> + .remove = mux_remove,
> };
>
> static struct parisc_driver serial_mux_driver = {
> .name = "serial_mux",
> .id_table = mux_tbl,
> .probe = mux_probe,
> - .remove = __devexit_p(mux_remove),
> + .remove = mux_remove,
> };
>
> /**
> diff --git a/drivers/tty/serial/mxs-auart.c b/drivers/tty/serial/mxs-auart.c
> index 6db3baa..7554045 100644
> --- a/drivers/tty/serial/mxs-auart.c
> +++ b/drivers/tty/serial/mxs-auart.c
> @@ -813,7 +813,7 @@ MODULE_DEVICE_TABLE(of, mxs_auart_dt_ids);
>
> static struct platform_driver mxs_auart_driver = {
> .probe = mxs_auart_probe,
> - .remove = __devexit_p(mxs_auart_remove),
> + .remove = mxs_auart_remove,
> .driver = {
> .name = "mxs-auart",
> .owner = THIS_MODULE,
> diff --git a/drivers/tty/serial/omap-serial.c b/drivers/tty/serial/omap-serial.c
> index d456321..624e6b5 100644
> --- a/drivers/tty/serial/omap-serial.c
> +++ b/drivers/tty/serial/omap-serial.c
> @@ -1655,7 +1655,7 @@ MODULE_DEVICE_TABLE(of, omap_serial_of_match);
>
> static struct platform_driver serial_omap_driver = {
> .probe = serial_omap_probe,
> - .remove = __devexit_p(serial_omap_remove),
> + .remove = serial_omap_remove,
> .driver = {
> .name = DRIVER_NAME,
> .pm = &serial_omap_dev_pm_ops,
> diff --git a/drivers/tty/serial/pch_uart.c b/drivers/tty/serial/pch_uart.c
> index 4cd6c23..f5fb9bd 100644
> --- a/drivers/tty/serial/pch_uart.c
> +++ b/drivers/tty/serial/pch_uart.c
> @@ -1869,7 +1869,7 @@ static struct pci_driver pch_uart_pci_driver = {
> .name = "pch_uart",
> .id_table = pch_uart_pci_id,
> .probe = pch_uart_pci_probe,
> - .remove = __devexit_p(pch_uart_pci_remove),
> + .remove = pch_uart_pci_remove,
> .suspend = pch_uart_pci_suspend,
> .resume = pch_uart_pci_resume,
> };
> diff --git a/drivers/tty/serial/samsung.c b/drivers/tty/serial/samsung.c
> index 740458c..6568beb 100644
> --- a/drivers/tty/serial/samsung.c
> +++ b/drivers/tty/serial/samsung.c
> @@ -1712,7 +1712,7 @@ MODULE_DEVICE_TABLE(of, s3c24xx_uart_dt_match);
>
> static struct platform_driver samsung_serial_driver = {
> .probe = s3c24xx_serial_probe,
> - .remove = __devexit_p(s3c24xx_serial_remove),
> + .remove = s3c24xx_serial_remove,
> .id_table = s3c24xx_serial_driver_ids,
> .driver = {
> .name = "samsung-uart",
> diff --git a/drivers/tty/serial/sc26xx.c b/drivers/tty/serial/sc26xx.c
> index 9d66424..9a40659 100644
> --- a/drivers/tty/serial/sc26xx.c
> +++ b/drivers/tty/serial/sc26xx.c
> @@ -733,7 +733,7 @@ static int __exit sc26xx_driver_remove(struct platform_device *dev)
>
> static struct platform_driver sc26xx_driver = {
> .probe = sc26xx_probe,
> - .remove = __devexit_p(sc26xx_driver_remove),
> + .remove = sc26xx_driver_remove,
> .driver = {
> .name = "SC26xx",
> .owner = THIS_MODULE,
> diff --git a/drivers/tty/serial/sccnxp.c b/drivers/tty/serial/sccnxp.c
> index e821068..810853f 100644
> --- a/drivers/tty/serial/sccnxp.c
> +++ b/drivers/tty/serial/sccnxp.c
> @@ -981,7 +981,7 @@ static struct platform_driver sccnxp_uart_driver = {
> .owner = THIS_MODULE,
> },
> .probe = sccnxp_probe,
> - .remove = __devexit_p(sccnxp_remove),
> + .remove = sccnxp_remove,
> .id_table = sccnxp_id_table,
> };
> module_platform_driver(sccnxp_uart_driver);
> diff --git a/drivers/tty/serial/serial_txx9.c b/drivers/tty/serial/serial_txx9.c
> index 6ae2a58..9d979a9 100644
> --- a/drivers/tty/serial/serial_txx9.c
> +++ b/drivers/tty/serial/serial_txx9.c
> @@ -1171,7 +1171,7 @@ static int serial_txx9_resume(struct platform_device *dev)
>
> static struct platform_driver serial_txx9_plat_driver = {
> .probe = serial_txx9_probe,
> - .remove = __devexit_p(serial_txx9_remove),
> + .remove = serial_txx9_remove,
> #ifdef CONFIG_PM
> .suspend = serial_txx9_suspend,
> .resume = serial_txx9_resume,
> @@ -1261,7 +1261,7 @@ static const struct pci_device_id serial_txx9_pci_tbl[] = {
> static struct pci_driver serial_txx9_pci_driver = {
> .name = "serial_txx9",
> .probe = pciserial_txx9_init_one,
> - .remove = __devexit_p(pciserial_txx9_remove_one),
> + .remove = pciserial_txx9_remove_one,
> #ifdef CONFIG_PM
> .suspend = pciserial_txx9_suspend_one,
> .resume = pciserial_txx9_resume_one,
> diff --git a/drivers/tty/serial/sirfsoc_uart.c b/drivers/tty/serial/sirfsoc_uart.c
> index a9e2bd1..4984984 100644
> --- a/drivers/tty/serial/sirfsoc_uart.c
> +++ b/drivers/tty/serial/sirfsoc_uart.c
> @@ -735,7 +735,7 @@ MODULE_DEVICE_TABLE(of, sirfsoc_serial_of_match);
>
> static struct platform_driver sirfsoc_uart_driver = {
> .probe = sirfsoc_uart_probe,
> - .remove = __devexit_p(sirfsoc_uart_remove),
> + .remove = sirfsoc_uart_remove,
> .suspend = sirfsoc_uart_suspend,
> .resume = sirfsoc_uart_resume,
> .driver = {
> diff --git a/drivers/tty/serial/sunhv.c b/drivers/tty/serial/sunhv.c
> index 505961c..949b2d3 100644
> --- a/drivers/tty/serial/sunhv.c
> +++ b/drivers/tty/serial/sunhv.c
> @@ -636,7 +636,7 @@ static struct platform_driver hv_driver = {
> .of_match_table = hv_match,
> },
> .probe = hv_probe,
> - .remove = __devexit_p(hv_remove),
> + .remove = hv_remove,
> };
>
> static int __init sunhv_init(void)
> diff --git a/drivers/tty/serial/sunsab.c b/drivers/tty/serial/sunsab.c
> index f0d93eb..bbb07bc 100644
> --- a/drivers/tty/serial/sunsab.c
> +++ b/drivers/tty/serial/sunsab.c
> @@ -1100,7 +1100,7 @@ static struct platform_driver sab_driver = {
> .of_match_table = sab_match,
> },
> .probe = sab_probe,
> - .remove = __devexit_p(sab_remove),
> + .remove = sab_remove,
> };
>
> static int __init sunsab_init(void)
> diff --git a/drivers/tty/serial/sunsu.c b/drivers/tty/serial/sunsu.c
> index b97913d..c0658f0 100644
> --- a/drivers/tty/serial/sunsu.c
> +++ b/drivers/tty/serial/sunsu.c
> @@ -1556,7 +1556,7 @@ static struct platform_driver su_driver = {
> .of_match_table = su_match,
> },
> .probe = su_probe,
> - .remove = __devexit_p(su_remove),
> + .remove = su_remove,
> };
>
> static int __init sunsu_init(void)
> diff --git a/drivers/tty/serial/sunzilog.c b/drivers/tty/serial/sunzilog.c
> index babd947..c2ef475 100644
> --- a/drivers/tty/serial/sunzilog.c
> +++ b/drivers/tty/serial/sunzilog.c
> @@ -1548,7 +1548,7 @@ static struct platform_driver zs_driver = {
> .of_match_table = zs_match,
> },
> .probe = zs_probe,
> - .remove = __devexit_p(zs_remove),
> + .remove = zs_remove,
> };
>
> static int __init sunzilog_init(void)
> diff --git a/drivers/tty/serial/timbuart.c b/drivers/tty/serial/timbuart.c
> index 70f9749..5fc11f2 100644
> --- a/drivers/tty/serial/timbuart.c
> +++ b/drivers/tty/serial/timbuart.c
> @@ -510,7 +510,7 @@ static struct platform_driver timbuart_platform_driver = {
> .owner = THIS_MODULE,
> },
> .probe = timbuart_probe,
> - .remove = __devexit_p(timbuart_remove),
> + .remove = timbuart_remove,
> };
>
> module_platform_driver(timbuart_platform_driver);
> diff --git a/drivers/tty/serial/uartlite.c b/drivers/tty/serial/uartlite.c
> index 6579ffd..1d44383 100644
> --- a/drivers/tty/serial/uartlite.c
> +++ b/drivers/tty/serial/uartlite.c
> @@ -603,7 +603,7 @@ MODULE_ALIAS("platform:uartlite");
>
> static struct platform_driver ulite_platform_driver = {
> .probe = ulite_probe,
> - .remove = __devexit_p(ulite_remove),
> + .remove = ulite_remove,
> .driver = {
> .owner = THIS_MODULE,
> .name = "uartlite",
> diff --git a/drivers/tty/serial/vr41xx_siu.c b/drivers/tty/serial/vr41xx_siu.c
> index cf0d948..9d3bf75 100644
> --- a/drivers/tty/serial/vr41xx_siu.c
> +++ b/drivers/tty/serial/vr41xx_siu.c
> @@ -952,7 +952,7 @@ static int siu_resume(struct platform_device *dev)
>
> static struct platform_driver siu_device_driver = {
> .probe = siu_probe,
> - .remove = __devexit_p(siu_remove),
> + .remove = siu_remove,
> .suspend = siu_suspend,
> .resume = siu_resume,
> .driver = {
> diff --git a/drivers/tty/serial/vt8500_serial.c b/drivers/tty/serial/vt8500_serial.c
> index 4354fe5..dbcc909 100644
> --- a/drivers/tty/serial/vt8500_serial.c
> +++ b/drivers/tty/serial/vt8500_serial.c
> @@ -652,7 +652,7 @@ static const struct of_device_id wmt_dt_ids[] = {
>
> static struct platform_driver vt8500_platform_driver = {
> .probe = vt8500_serial_probe,
> - .remove = __devexit_p(vt8500_serial_remove),
> + .remove = vt8500_serial_remove,
> .driver = {
> .name = "vt8500_serial",
> .owner = THIS_MODULE,
>
--
Nicolas Ferre
^ permalink raw reply
* [PATCH 370/493] tty: remove use of __devinitconst
From: Bill Pemberton @ 2012-11-19 18:25 UTC (permalink / raw)
To: gregkh; +Cc: Alan Cox, linux-serial
In-Reply-To: <1353349642-3677-1-git-send-email-wfp5p@virginia.edu>
CONFIG_HOTPLUG is going away as an option so __devinitconst is no
longer needed.
Signed-off-by: Bill Pemberton <wfp5p@virginia.edu>
Cc: Alan Cox <alan@linux.intel.com>
Cc: linux-serial@vger.kernel.org
---
drivers/tty/nozomi.c | 2 +-
drivers/tty/serial/8250/8250_em.c | 2 +-
drivers/tty/serial/mfd.c | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/tty/nozomi.c b/drivers/tty/nozomi.c
index 645f54a..e067e5f 100644
--- a/drivers/tty/nozomi.c
+++ b/drivers/tty/nozomi.c
@@ -400,7 +400,7 @@ struct buffer {
} __attribute__ ((packed));
/* Global variables */
-static const struct pci_device_id nozomi_pci_tbl[] __devinitconst = {
+static const struct pci_device_id nozomi_pci_tbl[] = {
{PCI_DEVICE(0x1931, 0x000c)}, /* Nozomi HSDPA */
{},
};
diff --git a/drivers/tty/serial/8250/8250_em.c b/drivers/tty/serial/8250/8250_em.c
index f59bff5..430bf42 100644
--- a/drivers/tty/serial/8250/8250_em.c
+++ b/drivers/tty/serial/8250/8250_em.c
@@ -163,7 +163,7 @@ static int __devexit serial8250_em_remove(struct platform_device *pdev)
return 0;
}
-static const struct of_device_id serial8250_em_dt_ids[] __devinitconst = {
+static const struct of_device_id serial8250_em_dt_ids[] = {
{ .compatible = "renesas,em-uart", },
{},
};
diff --git a/drivers/tty/serial/mfd.c b/drivers/tty/serial/mfd.c
index 71c4c8e..26e02f5 100644
--- a/drivers/tty/serial/mfd.c
+++ b/drivers/tty/serial/mfd.c
@@ -1456,7 +1456,7 @@ static void serial_hsu_remove(struct pci_dev *pdev)
}
/* First 3 are UART ports, and the 4th is the DMA */
-static const struct pci_device_id pci_ids[] __devinitconst = {
+static const struct pci_device_id pci_ids[] = {
{ PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x081B) },
{ PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x081C) },
{ PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x081D) },
--
1.8.0
^ permalink raw reply related
* [PATCH 323/493] tty: remove use of __devinitdata
From: Bill Pemberton @ 2012-11-19 18:24 UTC (permalink / raw)
To: gregkh; +Cc: Alan Cox, Peter Korsgaard, linuxppc-dev, linux-serial
In-Reply-To: <1353349642-3677-1-git-send-email-wfp5p@virginia.edu>
CONFIG_HOTPLUG is going away as an option so __devinitdata is no
longer needed.
Signed-off-by: Bill Pemberton <wfp5p@virginia.edu>
Cc: Alan Cox <alan@linux.intel.com>
Cc: Peter Korsgaard <jacmet@sunsite.dk>
Cc: linuxppc-dev@lists.ozlabs.org
Cc: linux-serial@vger.kernel.org
---
drivers/tty/hvc/hvc_opal.c | 2 +-
drivers/tty/hvc/hvc_vio.c | 2 +-
drivers/tty/rocket.c | 2 +-
drivers/tty/serial/8250/8250_pci.c | 2 +-
drivers/tty/serial/8250/8250_pnp.c | 2 +-
drivers/tty/serial/of_serial.c | 2 +-
drivers/tty/serial/sirfsoc_uart.c | 2 +-
drivers/tty/serial/uartlite.c | 2 +-
drivers/tty/serial/xilinx_uartps.c | 2 +-
9 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/drivers/tty/hvc/hvc_opal.c b/drivers/tty/hvc/hvc_opal.c
index 5ddd6f5..700fedf 100644
--- a/drivers/tty/hvc/hvc_opal.c
+++ b/drivers/tty/hvc/hvc_opal.c
@@ -41,7 +41,7 @@
static const char hvc_opal_name[] = "hvc_opal";
-static struct of_device_id hvc_opal_match[] __devinitdata = {
+static struct of_device_id hvc_opal_match[] = {
{ .name = "serial", .compatible = "ibm,opal-console-raw" },
{ .name = "serial", .compatible = "ibm,opal-console-hvsi" },
{ },
diff --git a/drivers/tty/hvc/hvc_vio.c b/drivers/tty/hvc/hvc_vio.c
index f7333e3..7f51156 100644
--- a/drivers/tty/hvc/hvc_vio.c
+++ b/drivers/tty/hvc/hvc_vio.c
@@ -53,7 +53,7 @@
static const char hvc_driver_name[] = "hvc_console";
-static struct vio_device_id hvc_driver_table[] __devinitdata = {
+static struct vio_device_id hvc_driver_table[] = {
{"serial", "hvterm1"},
#ifndef HVC_OLD_HVSI
{"serial", "hvterm-protocol"},
diff --git a/drivers/tty/rocket.c b/drivers/tty/rocket.c
index 9700d34..02a53f1 100644
--- a/drivers/tty/rocket.c
+++ b/drivers/tty/rocket.c
@@ -1757,7 +1757,7 @@ static void rp_flush_buffer(struct tty_struct *tty)
#ifdef CONFIG_PCI
-static struct pci_device_id __devinitdata __used rocket_pci_ids[] = {
+static struct pci_device_id __used rocket_pci_ids[] = {
{ PCI_DEVICE(PCI_VENDOR_ID_RP, PCI_ANY_ID) },
{ }
};
diff --git a/drivers/tty/serial/8250/8250_pci.c b/drivers/tty/serial/8250/8250_pci.c
index a5acb57..3252c5d 100644
--- a/drivers/tty/serial/8250/8250_pci.c
+++ b/drivers/tty/serial/8250/8250_pci.c
@@ -1987,7 +1987,7 @@ enum pci_board_num_t {
* see first lines of serial_in() and serial_out() in 8250.c
*/
-static struct pciserial_board pci_boards[] __devinitdata = {
+static struct pciserial_board pci_boards[] = {
[pbn_default] = {
.flags = FL_BASE0,
.num_ports = 1,
diff --git a/drivers/tty/serial/8250/8250_pnp.c b/drivers/tty/serial/8250/8250_pnp.c
index 2b8a6ac..71daae9 100644
--- a/drivers/tty/serial/8250/8250_pnp.c
+++ b/drivers/tty/serial/8250/8250_pnp.c
@@ -370,7 +370,7 @@ static const struct pnp_device_id pnp_dev_table[] = {
MODULE_DEVICE_TABLE(pnp, pnp_dev_table);
-static char *modem_names[] __devinitdata = {
+static char *modem_names[] = {
"MODEM", "Modem", "modem", "FAX", "Fax", "fax",
"56K", "56k", "K56", "33.6", "28.8", "14.4",
"33,600", "28,800", "14,400", "33.600", "28.800", "14.400",
diff --git a/drivers/tty/serial/of_serial.c b/drivers/tty/serial/of_serial.c
index 1bce344..e7cae1c 100644
--- a/drivers/tty/serial/of_serial.c
+++ b/drivers/tty/serial/of_serial.c
@@ -231,7 +231,7 @@ static int of_platform_serial_remove(struct platform_device *ofdev)
/*
* A few common types, add more as needed.
*/
-static struct of_device_id __devinitdata of_platform_serial_table[] = {
+static struct of_device_id of_platform_serial_table[] = {
{ .compatible = "ns8250", .data = (void *)PORT_8250, },
{ .compatible = "ns16450", .data = (void *)PORT_16450, },
{ .compatible = "ns16550a", .data = (void *)PORT_16550A, },
diff --git a/drivers/tty/serial/sirfsoc_uart.c b/drivers/tty/serial/sirfsoc_uart.c
index 4984984..5da5cb9 100644
--- a/drivers/tty/serial/sirfsoc_uart.c
+++ b/drivers/tty/serial/sirfsoc_uart.c
@@ -727,7 +727,7 @@ static int sirfsoc_uart_resume(struct platform_device *pdev)
return 0;
}
-static struct of_device_id sirfsoc_uart_ids[] __devinitdata = {
+static struct of_device_id sirfsoc_uart_ids[] = {
{ .compatible = "sirf,prima2-uart", },
{}
};
diff --git a/drivers/tty/serial/uartlite.c b/drivers/tty/serial/uartlite.c
index df9eeb4..2d20b01 100644
--- a/drivers/tty/serial/uartlite.c
+++ b/drivers/tty/serial/uartlite.c
@@ -562,7 +562,7 @@ static int __devexit ulite_release(struct device *dev)
#if defined(CONFIG_OF)
/* Match table for of_platform binding */
-static struct of_device_id ulite_of_match[] __devinitdata = {
+static struct of_device_id ulite_of_match[] = {
{ .compatible = "xlnx,opb-uartlite-1.00.b", },
{ .compatible = "xlnx,xps-uartlite-1.00.a", },
{}
diff --git a/drivers/tty/serial/xilinx_uartps.c b/drivers/tty/serial/xilinx_uartps.c
index 6e9ce65..4e6380a 100644
--- a/drivers/tty/serial/xilinx_uartps.c
+++ b/drivers/tty/serial/xilinx_uartps.c
@@ -1046,7 +1046,7 @@ static int xuartps_resume(struct platform_device *pdev)
/* Match table for of_platform binding */
#ifdef CONFIG_OF
-static struct of_device_id xuartps_of_match[] __devinitdata = {
+static struct of_device_id xuartps_of_match[] = {
{ .compatible = "xlnx,xuartps", },
{}
};
--
1.8.0
^ permalink raw reply related
* [PATCH 161/493] tty: remove use of __devinit
From: Bill Pemberton @ 2012-11-19 18:21 UTC (permalink / raw)
To: gregkh
Cc: Jiri Slaby, Alan Cox, Tobias Klauser, Lucas Tavares,
David S. Miller, Peter Korsgaard, Tony Prisk, linuxppc-dev,
linux-serial, nios2-dev, linux-ia64, sparclinux, linux-arm-kernel
In-Reply-To: <1353349642-3677-1-git-send-email-wfp5p@virginia.edu>
CONFIG_HOTPLUG is going away as an option so __devinit is no longer
needed.
Signed-off-by: Bill Pemberton <wfp5p@virginia.edu>
Cc: Jiri Slaby <jirislaby@gmail.com>
Cc: Alan Cox <alan@linux.intel.com>
Cc: Tobias Klauser <tklauser@distanz.ch>
Cc: Lucas Tavares <lucaskt@linux.vnet.ibm.com>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Peter Korsgaard <jacmet@sunsite.dk>
Cc: Tony Prisk <linux@prisktech.co.nz>
Cc: linuxppc-dev@lists.ozlabs.org
Cc: linux-serial@vger.kernel.org
Cc: nios2-dev@sopc.et.ntust.edu.tw
Cc: linux-ia64@vger.kernel.org
Cc: sparclinux@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
---
drivers/tty/cyclades.c | 16 ++++++++--------
drivers/tty/ehv_bytechan.c | 2 +-
drivers/tty/hvc/hvc_opal.c | 2 +-
drivers/tty/hvc/hvc_vio.c | 2 +-
drivers/tty/hvc/hvc_xen.c | 2 +-
drivers/tty/hvc/hvcs.c | 8 ++++----
drivers/tty/isicom.c | 6 +++---
drivers/tty/moxa.c | 2 +-
drivers/tty/mxser.c | 6 +++---
drivers/tty/nozomi.c | 2 +-
drivers/tty/serial/8250/8250.c | 2 +-
drivers/tty/serial/8250/8250_acorn.c | 2 +-
drivers/tty/serial/8250/8250_dw.c | 2 +-
drivers/tty/serial/8250/8250_em.c | 2 +-
drivers/tty/serial/8250/8250_hp300.c | 4 ++--
drivers/tty/serial/8250/8250_pci.c | 4 ++--
drivers/tty/serial/8250/8250_pnp.c | 8 ++++----
drivers/tty/serial/altera_jtaguart.c | 2 +-
drivers/tty/serial/altera_uart.c | 2 +-
drivers/tty/serial/apbuart.c | 2 +-
drivers/tty/serial/ar933x_uart.c | 2 +-
drivers/tty/serial/arc_uart.c | 10 +++++-----
drivers/tty/serial/atmel_serial.c | 6 +++---
drivers/tty/serial/bcm63xx_uart.c | 2 +-
drivers/tty/serial/bfin_sport_uart.c | 2 +-
drivers/tty/serial/clps711x.c | 2 +-
drivers/tty/serial/cpm_uart/cpm_uart_core.c | 2 +-
drivers/tty/serial/efm32-uart.c | 2 +-
drivers/tty/serial/icom.c | 10 +++++-----
drivers/tty/serial/ioc3_serial.c | 2 +-
drivers/tty/serial/jsm/jsm_driver.c | 2 +-
drivers/tty/serial/jsm/jsm_tty.c | 2 +-
drivers/tty/serial/lpc32xx_hs.c | 2 +-
drivers/tty/serial/max3100.c | 2 +-
drivers/tty/serial/max310x.c | 6 +++---
drivers/tty/serial/mcf.c | 2 +-
drivers/tty/serial/mpc52xx_uart.c | 2 +-
drivers/tty/serial/mrst_max3110.c | 2 +-
drivers/tty/serial/msm_serial_hs.c | 4 ++--
drivers/tty/serial/mxs-auart.c | 2 +-
drivers/tty/serial/of_serial.c | 4 ++--
drivers/tty/serial/omap-serial.c | 6 +++---
drivers/tty/serial/pch_uart.c | 2 +-
drivers/tty/serial/sa1100.c | 2 +-
drivers/tty/serial/sc26xx.c | 4 ++--
drivers/tty/serial/sccnxp.c | 2 +-
drivers/tty/serial/serial_txx9.c | 6 +++---
drivers/tty/serial/sh-sci.c | 14 +++++++-------
drivers/tty/serial/sunhv.c | 2 +-
drivers/tty/serial/sunsab.c | 4 ++--
drivers/tty/serial/sunsu.c | 6 +++---
drivers/tty/serial/sunzilog.c | 8 ++++----
drivers/tty/serial/timbuart.c | 2 +-
drivers/tty/serial/uartlite.c | 6 +++---
drivers/tty/serial/vr41xx_siu.c | 4 ++--
drivers/tty/serial/vt8500_serial.c | 2 +-
drivers/tty/serial/xilinx_uartps.c | 2 +-
drivers/tty/synclink.c | 2 +-
drivers/tty/synclink_gt.c | 2 +-
drivers/tty/synclinkmp.c | 2 +-
60 files changed, 113 insertions(+), 113 deletions(-)
diff --git a/drivers/tty/cyclades.c b/drivers/tty/cyclades.c
index 0244acf..444b544 100644
--- a/drivers/tty/cyclades.c
+++ b/drivers/tty/cyclades.c
@@ -3099,7 +3099,7 @@ static const struct tty_port_operations cyz_port_ops = {
* ---------------------------------------------------------------------
*/
-static int __devinit cy_init_card(struct cyclades_card *cinfo)
+static int cy_init_card(struct cyclades_card *cinfo)
{
struct cyclades_port *info;
unsigned int channel, port;
@@ -3196,7 +3196,7 @@ static int __devinit cy_init_card(struct cyclades_card *cinfo)
/* initialize chips on Cyclom-Y card -- return number of valid
chips (which is number of ports/4) */
-static unsigned short __devinit cyy_init_card(void __iomem *true_base_addr,
+static unsigned short cyy_init_card(void __iomem *true_base_addr,
int index)
{
unsigned int chip_number;
@@ -3405,7 +3405,7 @@ static int __init cy_detect_isa(void)
} /* cy_detect_isa */
#ifdef CONFIG_PCI
-static inline int __devinit cyc_isfwstr(const char *str, unsigned int size)
+static inline int cyc_isfwstr(const char *str, unsigned int size)
{
unsigned int a;
@@ -3420,7 +3420,7 @@ static inline int __devinit cyc_isfwstr(const char *str, unsigned int size)
return 0;
}
-static inline void __devinit cyz_fpga_copy(void __iomem *fpga, const u8 *data,
+static inline void cyz_fpga_copy(void __iomem *fpga, const u8 *data,
unsigned int size)
{
for (; size > 0; size--) {
@@ -3429,7 +3429,7 @@ static inline void __devinit cyz_fpga_copy(void __iomem *fpga, const u8 *data,
}
}
-static void __devinit plx_init(struct pci_dev *pdev, int irq,
+static void plx_init(struct pci_dev *pdev, int irq,
struct RUNTIME_9060 __iomem *addr)
{
/* Reset PLX */
@@ -3449,7 +3449,7 @@ static void __devinit plx_init(struct pci_dev *pdev, int irq,
pci_write_config_byte(pdev, PCI_INTERRUPT_LINE, irq);
}
-static int __devinit __cyz_load_fw(const struct firmware *fw,
+static int __cyz_load_fw(const struct firmware *fw,
const char *name, const u32 mailbox, void __iomem *base,
void __iomem *fpga)
{
@@ -3526,7 +3526,7 @@ static int __devinit __cyz_load_fw(const struct firmware *fw,
return 0;
}
-static int __devinit cyz_load_fw(struct pci_dev *pdev, void __iomem *base_addr,
+static int cyz_load_fw(struct pci_dev *pdev, void __iomem *base_addr,
struct RUNTIME_9060 __iomem *ctl_addr, int irq)
{
const struct firmware *fw;
@@ -3692,7 +3692,7 @@ err:
return retval;
}
-static int __devinit cy_pci_probe(struct pci_dev *pdev,
+static int cy_pci_probe(struct pci_dev *pdev,
const struct pci_device_id *ent)
{
struct cyclades_card *card;
diff --git a/drivers/tty/ehv_bytechan.c b/drivers/tty/ehv_bytechan.c
index 4ab936b..65d4320 100644
--- a/drivers/tty/ehv_bytechan.c
+++ b/drivers/tty/ehv_bytechan.c
@@ -699,7 +699,7 @@ static const struct tty_port_operations ehv_bc_tty_port_ops = {
.shutdown = ehv_bc_tty_port_shutdown,
};
-static int __devinit ehv_bc_tty_probe(struct platform_device *pdev)
+static int ehv_bc_tty_probe(struct platform_device *pdev)
{
struct device_node *np = pdev->dev.of_node;
struct ehv_bc_data *bc;
diff --git a/drivers/tty/hvc/hvc_opal.c b/drivers/tty/hvc/hvc_opal.c
index f39337f..5ddd6f5 100644
--- a/drivers/tty/hvc/hvc_opal.c
+++ b/drivers/tty/hvc/hvc_opal.c
@@ -161,7 +161,7 @@ static const struct hv_ops hvc_opal_hvsi_ops = {
.tiocmset = hvc_opal_hvsi_tiocmset,
};
-static int __devinit hvc_opal_probe(struct platform_device *dev)
+static int hvc_opal_probe(struct platform_device *dev)
{
const struct hv_ops *ops;
struct hvc_struct *hp;
diff --git a/drivers/tty/hvc/hvc_vio.c b/drivers/tty/hvc/hvc_vio.c
index 1a5894c..f7333e3 100644
--- a/drivers/tty/hvc/hvc_vio.c
+++ b/drivers/tty/hvc/hvc_vio.c
@@ -293,7 +293,7 @@ static int udbg_hvc_getc(void)
}
}
-static int __devinit hvc_vio_probe(struct vio_dev *vdev,
+static int hvc_vio_probe(struct vio_dev *vdev,
const struct vio_device_id *id)
{
const struct hv_ops *ops;
diff --git a/drivers/tty/hvc/hvc_xen.c b/drivers/tty/hvc/hvc_xen.c
index f4abfe2..19843ec 100644
--- a/drivers/tty/hvc/hvc_xen.c
+++ b/drivers/tty/hvc/hvc_xen.c
@@ -422,7 +422,7 @@ static int xencons_connect_backend(struct xenbus_device *dev,
return ret;
}
-static int __devinit xencons_probe(struct xenbus_device *dev,
+static int xencons_probe(struct xenbus_device *dev,
const struct xenbus_device_id *id)
{
int ret, devid;
diff --git a/drivers/tty/hvc/hvcs.c b/drivers/tty/hvc/hvcs.c
index 888af58..506a28e 100644
--- a/drivers/tty/hvc/hvcs.c
+++ b/drivers/tty/hvc/hvcs.c
@@ -330,12 +330,12 @@ static int hvcs_open(struct tty_struct *tty, struct file *filp);
static void hvcs_close(struct tty_struct *tty, struct file *filp);
static void hvcs_hangup(struct tty_struct * tty);
-static int __devinit hvcs_probe(struct vio_dev *dev,
+static int hvcs_probe(struct vio_dev *dev,
const struct vio_device_id *id);
static int __devexit hvcs_remove(struct vio_dev *dev);
static int __init hvcs_module_init(void);
static void __exit hvcs_module_exit(void);
-static int __devinit hvcs_initialize(void);
+static int hvcs_initialize(void);
#define HVCS_SCHED_READ 0x00000001
#define HVCS_QUICK_READ 0x00000002
@@ -756,7 +756,7 @@ static int hvcs_get_index(void)
return -1;
}
-static int __devinit hvcs_probe(
+static int hvcs_probe(
struct vio_dev *dev,
const struct vio_device_id *id)
{
@@ -1478,7 +1478,7 @@ static void hvcs_free_index_list(void)
hvcs_index_count = 0;
}
-static int __devinit hvcs_initialize(void)
+static int hvcs_initialize(void)
{
int rc, num_ttys_to_alloc;
diff --git a/drivers/tty/isicom.c b/drivers/tty/isicom.c
index 4775747..d1c1fef 100644
--- a/drivers/tty/isicom.c
+++ b/drivers/tty/isicom.c
@@ -1307,7 +1307,7 @@ static const struct tty_port_operations isicom_port_ops = {
.shutdown = isicom_shutdown,
};
-static int __devinit reset_card(struct pci_dev *pdev,
+static int reset_card(struct pci_dev *pdev,
const unsigned int card, unsigned int *signature)
{
struct isi_board *board = pci_get_drvdata(pdev);
@@ -1368,7 +1368,7 @@ end:
return retval;
}
-static int __devinit load_firmware(struct pci_dev *pdev,
+static int load_firmware(struct pci_dev *pdev,
const unsigned int index, const unsigned int signature)
{
struct isi_board *board = pci_get_drvdata(pdev);
@@ -1548,7 +1548,7 @@ end:
*/
static unsigned int card_count;
-static int __devinit isicom_probe(struct pci_dev *pdev,
+static int isicom_probe(struct pci_dev *pdev,
const struct pci_device_id *ent)
{
unsigned int uninitialized_var(signature), index;
diff --git a/drivers/tty/moxa.c b/drivers/tty/moxa.c
index c2d0cc3..0998773 100644
--- a/drivers/tty/moxa.c
+++ b/drivers/tty/moxa.c
@@ -941,7 +941,7 @@ static void moxa_board_deinit(struct moxa_board_conf *brd)
}
#ifdef CONFIG_PCI
-static int __devinit moxa_pci_probe(struct pci_dev *pdev,
+static int moxa_pci_probe(struct pci_dev *pdev,
const struct pci_device_id *ent)
{
struct moxa_board_conf *board;
diff --git a/drivers/tty/mxser.c b/drivers/tty/mxser.c
index f026797..9de9753 100644
--- a/drivers/tty/mxser.c
+++ b/drivers/tty/mxser.c
@@ -487,7 +487,7 @@ static void mxser_disable_must_rx_software_flow_control(unsigned long baseio)
}
#ifdef CONFIG_PCI
-static int __devinit CheckIsMoxaMust(unsigned long io)
+static int CheckIsMoxaMust(unsigned long io)
{
u8 oldmcr, hwid;
int i;
@@ -2369,7 +2369,7 @@ static void mxser_release_ISA_res(struct mxser_board *brd)
mxser_release_vector(brd);
}
-static int __devinit mxser_initbrd(struct mxser_board *brd,
+static int mxser_initbrd(struct mxser_board *brd,
struct pci_dev *pdev)
{
struct mxser_port *info;
@@ -2534,7 +2534,7 @@ err_irqconflict:
return -EIO;
}
-static int __devinit mxser_probe(struct pci_dev *pdev,
+static int mxser_probe(struct pci_dev *pdev,
const struct pci_device_id *ent)
{
#ifdef CONFIG_PCI
diff --git a/drivers/tty/nozomi.c b/drivers/tty/nozomi.c
index dc0213e..645f54a 100644
--- a/drivers/tty/nozomi.c
+++ b/drivers/tty/nozomi.c
@@ -1360,7 +1360,7 @@ static void remove_sysfs_files(struct nozomi *dc)
}
/* Allocate memory for one device */
-static int __devinit nozomi_card_init(struct pci_dev *pdev,
+static int nozomi_card_init(struct pci_dev *pdev,
const struct pci_device_id *ent)
{
resource_size_t start;
diff --git a/drivers/tty/serial/8250/8250.c b/drivers/tty/serial/8250/8250.c
index 870c5f2..40ba8cc 100644
--- a/drivers/tty/serial/8250/8250.c
+++ b/drivers/tty/serial/8250/8250.c
@@ -2989,7 +2989,7 @@ void serial8250_resume_port(int line)
* list is terminated with a zero flags entry, which means we expect
* all entries to have at least UPF_BOOT_AUTOCONF set.
*/
-static int __devinit serial8250_probe(struct platform_device *dev)
+static int serial8250_probe(struct platform_device *dev)
{
struct plat_serial8250_port *p = dev->dev.platform_data;
struct uart_8250_port uart;
diff --git a/drivers/tty/serial/8250/8250_acorn.c b/drivers/tty/serial/8250/8250_acorn.c
index b5e4b49..ed095eb 100644
--- a/drivers/tty/serial/8250/8250_acorn.c
+++ b/drivers/tty/serial/8250/8250_acorn.c
@@ -38,7 +38,7 @@ struct serial_card_info {
void __iomem *vaddr;
};
-static int __devinit
+static int
serial_card_probe(struct expansion_card *ec, const struct ecard_id *id)
{
struct serial_card_info *info;
diff --git a/drivers/tty/serial/8250/8250_dw.c b/drivers/tty/serial/8250/8250_dw.c
index 2db80d0..7664750 100644
--- a/drivers/tty/serial/8250/8250_dw.c
+++ b/drivers/tty/serial/8250/8250_dw.c
@@ -87,7 +87,7 @@ static int dw8250_handle_irq(struct uart_port *p)
return 0;
}
-static int __devinit dw8250_probe(struct platform_device *pdev)
+static int dw8250_probe(struct platform_device *pdev)
{
struct uart_8250_port uart = {};
struct resource *regs = platform_get_resource(pdev, IORESOURCE_MEM, 0);
diff --git a/drivers/tty/serial/8250/8250_em.c b/drivers/tty/serial/8250/8250_em.c
index 80c0a62..f59bff5 100644
--- a/drivers/tty/serial/8250/8250_em.c
+++ b/drivers/tty/serial/8250/8250_em.c
@@ -89,7 +89,7 @@ static void serial8250_em_serial_dl_write(struct uart_8250_port *up, int value)
serial_out(up, UART_DLM_EM, value >> 8 & 0xff);
}
-static int __devinit serial8250_em_probe(struct platform_device *pdev)
+static int serial8250_em_probe(struct platform_device *pdev)
{
struct resource *regs = platform_get_resource(pdev, IORESOURCE_MEM, 0);
struct resource *irq = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
diff --git a/drivers/tty/serial/8250/8250_hp300.c b/drivers/tty/serial/8250/8250_hp300.c
index 89e8855..2b94505 100644
--- a/drivers/tty/serial/8250/8250_hp300.c
+++ b/drivers/tty/serial/8250/8250_hp300.c
@@ -36,7 +36,7 @@ static struct hp300_port *hp300_ports;
#ifdef CONFIG_HPDCA
-static int __devinit hpdca_init_one(struct dio_dev *d,
+static int hpdca_init_one(struct dio_dev *d,
const struct dio_device_id *ent);
static void __devexit hpdca_remove_one(struct dio_dev *d);
@@ -159,7 +159,7 @@ int __init hp300_setup_serial_console(void)
#endif /* CONFIG_SERIAL_8250_CONSOLE */
#ifdef CONFIG_HPDCA
-static int __devinit hpdca_init_one(struct dio_dev *d,
+static int hpdca_init_one(struct dio_dev *d,
const struct dio_device_id *ent)
{
struct uart_8250_port uart;
diff --git a/drivers/tty/serial/8250/8250_pci.c b/drivers/tty/serial/8250/8250_pci.c
index c049cfa..a5acb57 100644
--- a/drivers/tty/serial/8250/8250_pci.c
+++ b/drivers/tty/serial/8250/8250_pci.c
@@ -2691,7 +2691,7 @@ static const struct pci_device_id blacklist[] = {
* guess what the configuration might be, based on the pitiful PCI
* serial specs. Returns 0 on success, 1 on failure.
*/
-static int __devinit
+static int
serial_pci_guess_board(struct pci_dev *dev, struct pciserial_board *board)
{
const struct pci_device_id *bldev;
@@ -2917,7 +2917,7 @@ EXPORT_SYMBOL_GPL(pciserial_resume_ports);
* Probe one serial board. Unfortunately, there is no rhyme nor reason
* to the arrangement of serial ports on a PCI card.
*/
-static int __devinit
+static int
pciserial_init_one(struct pci_dev *dev, const struct pci_device_id *ent)
{
struct pci_serial_quirk *quirk;
diff --git a/drivers/tty/serial/8250/8250_pnp.c b/drivers/tty/serial/8250/8250_pnp.c
index e566220..2b8a6ac 100644
--- a/drivers/tty/serial/8250/8250_pnp.c
+++ b/drivers/tty/serial/8250/8250_pnp.c
@@ -377,7 +377,7 @@ static char *modem_names[] __devinitdata = {
"33600", "28800", "14400", "V.90", "V.34", "V.32", NULL
};
-static int __devinit check_name(char *name)
+static int check_name(char *name)
{
char **tmp;
@@ -388,7 +388,7 @@ static int __devinit check_name(char *name)
return 0;
}
-static int __devinit check_resources(struct pnp_dev *dev)
+static int check_resources(struct pnp_dev *dev)
{
resource_size_t base[] = {0x2f8, 0x3f8, 0x2e8, 0x3e8};
int i;
@@ -412,7 +412,7 @@ static int __devinit check_resources(struct pnp_dev *dev)
* PnP modems, alternatively we must hardcode all modems in pnp_devices[]
* table.
*/
-static int __devinit serial_pnp_guess_board(struct pnp_dev *dev)
+static int serial_pnp_guess_board(struct pnp_dev *dev)
{
if (!(check_name(pnp_dev_name(dev)) ||
(dev->card && check_name(dev->card->name))))
@@ -424,7 +424,7 @@ static int __devinit serial_pnp_guess_board(struct pnp_dev *dev)
return -ENODEV;
}
-static int __devinit
+static int
serial_pnp_probe(struct pnp_dev *dev, const struct pnp_device_id *dev_id)
{
struct uart_8250_port uart;
diff --git a/drivers/tty/serial/altera_jtaguart.c b/drivers/tty/serial/altera_jtaguart.c
index ef16b0a..ef5c705 100644
--- a/drivers/tty/serial/altera_jtaguart.c
+++ b/drivers/tty/serial/altera_jtaguart.c
@@ -406,7 +406,7 @@ static struct uart_driver altera_jtaguart_driver = {
.cons = ALTERA_JTAGUART_CONSOLE,
};
-static int __devinit altera_jtaguart_probe(struct platform_device *pdev)
+static int altera_jtaguart_probe(struct platform_device *pdev)
{
struct altera_jtaguart_platform_uart *platp = pdev->dev.platform_data;
struct uart_port *port;
diff --git a/drivers/tty/serial/altera_uart.c b/drivers/tty/serial/altera_uart.c
index 117ea2c..066b503 100644
--- a/drivers/tty/serial/altera_uart.c
+++ b/drivers/tty/serial/altera_uart.c
@@ -532,7 +532,7 @@ static int altera_uart_get_of_uartclk(struct platform_device *pdev,
}
#endif /* CONFIG_OF */
-static int __devinit altera_uart_probe(struct platform_device *pdev)
+static int altera_uart_probe(struct platform_device *pdev)
{
struct altera_uart_platform_uart *platp = pdev->dev.platform_data;
struct uart_port *port;
diff --git a/drivers/tty/serial/apbuart.c b/drivers/tty/serial/apbuart.c
index 7162f70..59ae2b5 100644
--- a/drivers/tty/serial/apbuart.c
+++ b/drivers/tty/serial/apbuart.c
@@ -554,7 +554,7 @@ static struct uart_driver grlib_apbuart_driver = {
/* OF Platform Driver */
/* ======================================================================== */
-static int __devinit apbuart_probe(struct platform_device *op)
+static int apbuart_probe(struct platform_device *op)
{
int i;
struct uart_port *port = NULL;
diff --git a/drivers/tty/serial/ar933x_uart.c b/drivers/tty/serial/ar933x_uart.c
index 33122f9..fab0a91 100644
--- a/drivers/tty/serial/ar933x_uart.c
+++ b/drivers/tty/serial/ar933x_uart.c
@@ -554,7 +554,7 @@ static struct uart_driver ar933x_uart_driver = {
.cons = AR933X_SERIAL_CONSOLE,
};
-static int __devinit ar933x_uart_probe(struct platform_device *pdev)
+static int ar933x_uart_probe(struct platform_device *pdev)
{
struct ar933x_uart_platform_data *pdata;
struct ar933x_uart_port *up;
diff --git a/drivers/tty/serial/arc_uart.c b/drivers/tty/serial/arc_uart.c
index d652569..158d798 100644
--- a/drivers/tty/serial/arc_uart.c
+++ b/drivers/tty/serial/arc_uart.c
@@ -525,7 +525,7 @@ static struct uart_ops arc_serial_pops = {
#endif
};
-static int __devinit
+static int
arc_uart_init_one(struct platform_device *pdev, struct arc_uart_port *uart)
{
struct resource *res, *res2;
@@ -577,7 +577,7 @@ arc_uart_init_one(struct platform_device *pdev, struct arc_uart_port *uart)
#ifdef CONFIG_SERIAL_ARC_CONSOLE
-static int __devinit arc_serial_console_setup(struct console *co, char *options)
+static int arc_serial_console_setup(struct console *co, char *options)
{
struct uart_port *port;
int baud = 115200;
@@ -655,7 +655,7 @@ static struct __initdata console arc_early_serial_console = {
.index = -1
};
-static int __devinit arc_serial_probe_earlyprintk(struct platform_device *pdev)
+static int arc_serial_probe_earlyprintk(struct platform_device *pdev)
{
arc_early_serial_console.index = pdev->id;
@@ -667,13 +667,13 @@ static int __devinit arc_serial_probe_earlyprintk(struct platform_device *pdev)
return 0;
}
#else
-static int __devinit arc_serial_probe_earlyprintk(struct platform_device *pdev)
+static int arc_serial_probe_earlyprintk(struct platform_device *pdev)
{
return -ENODEV;
}
#endif /* CONFIG_SERIAL_ARC_CONSOLE */
-static int __devinit arc_serial_probe(struct platform_device *pdev)
+static int arc_serial_probe(struct platform_device *pdev)
{
struct arc_uart_port *uart;
int rc;
diff --git a/drivers/tty/serial/atmel_serial.c b/drivers/tty/serial/atmel_serial.c
index 7f91d08..c1f6c0b 100644
--- a/drivers/tty/serial/atmel_serial.c
+++ b/drivers/tty/serial/atmel_serial.c
@@ -1424,7 +1424,7 @@ static struct uart_ops atmel_pops = {
#endif
};
-static void __devinit atmel_of_init_port(struct atmel_uart_port *atmel_port,
+static void atmel_of_init_port(struct atmel_uart_port *atmel_port,
struct device_node *np)
{
u32 rs485_delay[2];
@@ -1459,7 +1459,7 @@ static void __devinit atmel_of_init_port(struct atmel_uart_port *atmel_port,
/*
* Configure the port from the platform device resource info.
*/
-static void __devinit atmel_init_port(struct atmel_uart_port *atmel_port,
+static void atmel_init_port(struct atmel_uart_port *atmel_port,
struct platform_device *pdev)
{
struct uart_port *port = &atmel_port->uart;
@@ -1767,7 +1767,7 @@ static int atmel_serial_resume(struct platform_device *pdev)
#define atmel_serial_resume NULL
#endif
-static int __devinit atmel_serial_probe(struct platform_device *pdev)
+static int atmel_serial_probe(struct platform_device *pdev)
{
struct atmel_uart_port *port;
struct device_node *np = pdev->dev.of_node;
diff --git a/drivers/tty/serial/bcm63xx_uart.c b/drivers/tty/serial/bcm63xx_uart.c
index 7f631d4..e54d170 100644
--- a/drivers/tty/serial/bcm63xx_uart.c
+++ b/drivers/tty/serial/bcm63xx_uart.c
@@ -801,7 +801,7 @@ static struct uart_driver bcm_uart_driver = {
/*
* platform driver probe/remove callback
*/
-static int __devinit bcm_uart_probe(struct platform_device *pdev)
+static int bcm_uart_probe(struct platform_device *pdev)
{
struct resource *res_mem, *res_irq;
struct uart_port *port;
diff --git a/drivers/tty/serial/bfin_sport_uart.c b/drivers/tty/serial/bfin_sport_uart.c
index b4a18c7..a47e00b 100644
--- a/drivers/tty/serial/bfin_sport_uart.c
+++ b/drivers/tty/serial/bfin_sport_uart.c
@@ -740,7 +740,7 @@ static struct dev_pm_ops bfin_sport_uart_dev_pm_ops = {
};
#endif
-static int __devinit sport_uart_probe(struct platform_device *pdev)
+static int sport_uart_probe(struct platform_device *pdev)
{
struct resource *res;
struct sport_uart_port *sport;
diff --git a/drivers/tty/serial/clps711x.c b/drivers/tty/serial/clps711x.c
index d631ef5..006d283 100644
--- a/drivers/tty/serial/clps711x.c
+++ b/drivers/tty/serial/clps711x.c
@@ -429,7 +429,7 @@ static int uart_clps711x_console_setup(struct console *co, char *options)
}
#endif
-static int __devinit uart_clps711x_probe(struct platform_device *pdev)
+static int uart_clps711x_probe(struct platform_device *pdev)
{
struct clps711x_port *s;
int ret, i;
diff --git a/drivers/tty/serial/cpm_uart/cpm_uart_core.c b/drivers/tty/serial/cpm_uart/cpm_uart_core.c
index d0dd919..de3f0f6 100644
--- a/drivers/tty/serial/cpm_uart/cpm_uart_core.c
+++ b/drivers/tty/serial/cpm_uart/cpm_uart_core.c
@@ -1373,7 +1373,7 @@ static struct uart_driver cpm_reg = {
static int probe_index;
-static int __devinit cpm_uart_probe(struct platform_device *ofdev)
+static int cpm_uart_probe(struct platform_device *ofdev)
{
int index = probe_index++;
struct uart_cpm_port *pinfo = &cpm_uart_ports[index];
diff --git a/drivers/tty/serial/efm32-uart.c b/drivers/tty/serial/efm32-uart.c
index 1e8bacf..833c33a 100644
--- a/drivers/tty/serial/efm32-uart.c
+++ b/drivers/tty/serial/efm32-uart.c
@@ -690,7 +690,7 @@ static int efm32_uart_probe_dt(struct platform_device *pdev,
}
-static int __devinit efm32_uart_probe(struct platform_device *pdev)
+static int efm32_uart_probe(struct platform_device *pdev)
{
struct efm32_uart_port *efm_port;
struct resource *res;
diff --git a/drivers/tty/serial/icom.c b/drivers/tty/serial/icom.c
index 82671b5..8c5ad58 100644
--- a/drivers/tty/serial/icom.c
+++ b/drivers/tty/serial/icom.c
@@ -175,7 +175,7 @@ static void free_port_memory(struct icom_port *icom_port)
}
}
-static int __devinit get_port_memory(struct icom_port *icom_port)
+static int get_port_memory(struct icom_port *icom_port)
{
int index;
unsigned long stgAddr;
@@ -1314,7 +1314,7 @@ static struct uart_driver icom_uart_driver = {
.cons = ICOM_CONSOLE,
};
-static int __devinit icom_init_ports(struct icom_adapter *icom_adapter)
+static int icom_init_ports(struct icom_adapter *icom_adapter)
{
u32 subsystem_id = icom_adapter->subsystem_id;
int i;
@@ -1381,7 +1381,7 @@ static void icom_port_active(struct icom_port *icom_port, struct icom_adapter *i
0x8024 + 2 - 2 * (icom_port->port - 2);
}
}
-static int __devinit icom_load_ports(struct icom_adapter *icom_adapter)
+static int icom_load_ports(struct icom_adapter *icom_adapter)
{
struct icom_port *icom_port;
int port_num;
@@ -1407,7 +1407,7 @@ static int __devinit icom_load_ports(struct icom_adapter *icom_adapter)
return 0;
}
-static int __devinit icom_alloc_adapter(struct icom_adapter
+static int icom_alloc_adapter(struct icom_adapter
**icom_adapter_ref)
{
int adapter_count = 0;
@@ -1487,7 +1487,7 @@ static void icom_kref_release(struct kref *kref)
icom_remove_adapter(icom_adapter);
}
-static int __devinit icom_probe(struct pci_dev *dev,
+static int icom_probe(struct pci_dev *dev,
const struct pci_device_id *ent)
{
int index;
diff --git a/drivers/tty/serial/ioc3_serial.c b/drivers/tty/serial/ioc3_serial.c
index 5ac5289..d8f1d1d 100644
--- a/drivers/tty/serial/ioc3_serial.c
+++ b/drivers/tty/serial/ioc3_serial.c
@@ -2010,7 +2010,7 @@ static int ioc3uart_remove(struct ioc3_submodule *is,
* @idd: ioc3 driver data for this card
*/
-static int __devinit
+static int
ioc3uart_probe(struct ioc3_submodule *is, struct ioc3_driver_data *idd)
{
struct pci_dev *pdev = idd->pdev;
diff --git a/drivers/tty/serial/jsm/jsm_driver.c b/drivers/tty/serial/jsm/jsm_driver.c
index bbd4592..5b57c8e 100644
--- a/drivers/tty/serial/jsm/jsm_driver.c
+++ b/drivers/tty/serial/jsm/jsm_driver.c
@@ -64,7 +64,7 @@ int jsm_debug;
module_param(jsm_debug, int, 0);
MODULE_PARM_DESC(jsm_debug, "Driver debugging level");
-static int __devinit jsm_probe_one(struct pci_dev *pdev, const struct pci_device_id *ent)
+static int jsm_probe_one(struct pci_dev *pdev, const struct pci_device_id *ent)
{
int rc = 0;
struct jsm_board *brd;
diff --git a/drivers/tty/serial/jsm/jsm_tty.c b/drivers/tty/serial/jsm/jsm_tty.c
index 7d2c1f3..4c00c55 100644
--- a/drivers/tty/serial/jsm/jsm_tty.c
+++ b/drivers/tty/serial/jsm/jsm_tty.c
@@ -371,7 +371,7 @@ static struct uart_ops jsm_ops = {
* Init the tty subsystem. Called once per board after board has been
* downloaded and init'ed.
*/
-int __devinit jsm_tty_init(struct jsm_board *brd)
+int jsm_tty_init(struct jsm_board *brd)
{
int i;
void __iomem *vaddr;
diff --git a/drivers/tty/serial/lpc32xx_hs.c b/drivers/tty/serial/lpc32xx_hs.c
index 7b0f5b4..3651dab 100644
--- a/drivers/tty/serial/lpc32xx_hs.c
+++ b/drivers/tty/serial/lpc32xx_hs.c
@@ -686,7 +686,7 @@ static struct uart_ops serial_lpc32xx_pops = {
/*
* Register a set of serial devices attached to a platform device
*/
-static int __devinit serial_hs_lpc32xx_probe(struct platform_device *pdev)
+static int serial_hs_lpc32xx_probe(struct platform_device *pdev)
{
struct lpc32xx_hsuart_port *p = &lpc32xx_hs_ports[uarts_registered];
int ret = 0;
diff --git a/drivers/tty/serial/max3100.c b/drivers/tty/serial/max3100.c
index 2ffd7f0..8dd6189 100644
--- a/drivers/tty/serial/max3100.c
+++ b/drivers/tty/serial/max3100.c
@@ -742,7 +742,7 @@ static struct uart_driver max3100_uart_driver = {
};
static int uart_driver_registered;
-static int __devinit max3100_probe(struct spi_device *spi)
+static int max3100_probe(struct spi_device *spi)
{
int i, retval;
struct plat_max3100 *pdata;
diff --git a/drivers/tty/serial/max310x.c b/drivers/tty/serial/max310x.c
index a332327..88a227f 100644
--- a/drivers/tty/serial/max310x.c
+++ b/drivers/tty/serial/max310x.c
@@ -378,7 +378,7 @@ static void max310x_wait_pll(struct max310x_port *s)
}
}
-static int __devinit max310x_update_best_err(unsigned long f, long *besterr)
+static int max310x_update_best_err(unsigned long f, long *besterr)
{
/* Use baudrate 115200 for calculate error */
long err = f % (115200 * 16);
@@ -391,7 +391,7 @@ static int __devinit max310x_update_best_err(unsigned long f, long *besterr)
return 1;
}
-static int __devinit max310x_set_ref_clk(struct max310x_port *s)
+static int max310x_set_ref_clk(struct max310x_port *s)
{
unsigned int div, clksrc, pllcfg = 0;
long besterr = -1;
@@ -995,7 +995,7 @@ static struct max310x_pdata generic_plat_data = {
.frequency = 26000000,
};
-static int __devinit max310x_probe(struct spi_device *spi)
+static int max310x_probe(struct spi_device *spi)
{
struct max310x_port *s;
struct device *dev = &spi->dev;
diff --git a/drivers/tty/serial/mcf.c b/drivers/tty/serial/mcf.c
index e3de785..e2b93d2 100644
--- a/drivers/tty/serial/mcf.c
+++ b/drivers/tty/serial/mcf.c
@@ -571,7 +571,7 @@ static struct uart_driver mcf_driver = {
/****************************************************************************/
-static int __devinit mcf_probe(struct platform_device *pdev)
+static int mcf_probe(struct platform_device *pdev)
{
struct mcf_platform_uart *platp = pdev->dev.platform_data;
struct uart_port *port;
diff --git a/drivers/tty/serial/mpc52xx_uart.c b/drivers/tty/serial/mpc52xx_uart.c
index 8cf5770..7c23c4f 100644
--- a/drivers/tty/serial/mpc52xx_uart.c
+++ b/drivers/tty/serial/mpc52xx_uart.c
@@ -1308,7 +1308,7 @@ static struct of_device_id mpc52xx_uart_of_match[] = {
{},
};
-static int __devinit mpc52xx_uart_of_probe(struct platform_device *op)
+static int mpc52xx_uart_of_probe(struct platform_device *op)
{
int idx = -1;
unsigned int uartclk;
diff --git a/drivers/tty/serial/mrst_max3110.c b/drivers/tty/serial/mrst_max3110.c
index 649ce12..41497fd 100644
--- a/drivers/tty/serial/mrst_max3110.c
+++ b/drivers/tty/serial/mrst_max3110.c
@@ -773,7 +773,7 @@ static int serial_m3110_resume(struct spi_device *spi)
#define serial_m3110_resume NULL
#endif
-static int __devinit serial_m3110_probe(struct spi_device *spi)
+static int serial_m3110_probe(struct spi_device *spi)
{
struct uart_max3110 *max;
void *buffer;
diff --git a/drivers/tty/serial/msm_serial_hs.c b/drivers/tty/serial/msm_serial_hs.c
index 1361ad5..02fb63e 100644
--- a/drivers/tty/serial/msm_serial_hs.c
+++ b/drivers/tty/serial/msm_serial_hs.c
@@ -1521,7 +1521,7 @@ err_msm_hs_init_clk:
}
/* Initialize tx and rx data structures */
-static int __devinit uartdm_init_port(struct uart_port *uport)
+static int uartdm_init_port(struct uart_port *uport)
{
int ret = 0;
struct msm_hs_port *msm_uport = UARTDM_TO_MSM(uport);
@@ -1614,7 +1614,7 @@ err_tx_command_ptr_ptr:
return ret;
}
-static int __devinit msm_hs_probe(struct platform_device *pdev)
+static int msm_hs_probe(struct platform_device *pdev)
{
int ret;
struct uart_port *uport;
diff --git a/drivers/tty/serial/mxs-auart.c b/drivers/tty/serial/mxs-auart.c
index 7554045..ed09bd4 100644
--- a/drivers/tty/serial/mxs-auart.c
+++ b/drivers/tty/serial/mxs-auart.c
@@ -704,7 +704,7 @@ static int serial_mxs_probe_dt(struct mxs_auart_port *s,
return 0;
}
-static int __devinit mxs_auart_probe(struct platform_device *pdev)
+static int mxs_auart_probe(struct platform_device *pdev)
{
struct mxs_auart_port *s;
u32 version;
diff --git a/drivers/tty/serial/of_serial.c b/drivers/tty/serial/of_serial.c
index b9fdccb2..1bce344 100644
--- a/drivers/tty/serial/of_serial.c
+++ b/drivers/tty/serial/of_serial.c
@@ -52,7 +52,7 @@ EXPORT_SYMBOL_GPL(tegra_serial_handle_break);
/*
* Fill a struct uart_port for a given device node
*/
-static int __devinit of_platform_serial_setup(struct platform_device *ofdev,
+static int of_platform_serial_setup(struct platform_device *ofdev,
int type, struct uart_port *port,
struct of_serial_info *info)
{
@@ -138,7 +138,7 @@ out:
* Try to register a serial port
*/
static struct of_device_id of_platform_serial_table[];
-static int __devinit of_platform_serial_probe(struct platform_device *ofdev)
+static int of_platform_serial_probe(struct platform_device *ofdev)
{
const struct of_device_id *match;
struct of_serial_info *info;
diff --git a/drivers/tty/serial/omap-serial.c b/drivers/tty/serial/omap-serial.c
index 624e6b5..1e988f7 100644
--- a/drivers/tty/serial/omap-serial.c
+++ b/drivers/tty/serial/omap-serial.c
@@ -1307,7 +1307,7 @@ static int serial_omap_resume(struct device *dev)
}
#endif
-static void __devinit omap_serial_fill_features_erratas(struct uart_omap_port *up)
+static void omap_serial_fill_features_erratas(struct uart_omap_port *up)
{
u32 mvr, scheme;
u16 revision, major, minor;
@@ -1360,7 +1360,7 @@ static void __devinit omap_serial_fill_features_erratas(struct uart_omap_port *u
}
}
-static __devinit struct omap_uart_port_info *of_get_uart_port_info(struct device *dev)
+static struct omap_uart_port_info *of_get_uart_port_info(struct device *dev)
{
struct omap_uart_port_info *omap_up_info;
@@ -1373,7 +1373,7 @@ static __devinit struct omap_uart_port_info *of_get_uart_port_info(struct device
return omap_up_info;
}
-static int __devinit serial_omap_probe(struct platform_device *pdev)
+static int serial_omap_probe(struct platform_device *pdev)
{
struct uart_omap_port *up;
struct resource *mem, *irq;
diff --git a/drivers/tty/serial/pch_uart.c b/drivers/tty/serial/pch_uart.c
index f5fb9bd..8318925 100644
--- a/drivers/tty/serial/pch_uart.c
+++ b/drivers/tty/serial/pch_uart.c
@@ -1839,7 +1839,7 @@ static DEFINE_PCI_DEVICE_TABLE(pch_uart_pci_id) = {
{0,},
};
-static int __devinit pch_uart_pci_probe(struct pci_dev *pdev,
+static int pch_uart_pci_probe(struct pci_dev *pdev,
const struct pci_device_id *id)
{
int ret;
diff --git a/drivers/tty/serial/sa1100.c b/drivers/tty/serial/sa1100.c
index 2ca5959..da56c8a 100644
--- a/drivers/tty/serial/sa1100.c
+++ b/drivers/tty/serial/sa1100.c
@@ -637,7 +637,7 @@ static void __init sa1100_init_ports(void)
PPSR |= PPC_TXD1 | PPC_TXD3;
}
-void __devinit sa1100_register_uart_fns(struct sa1100_port_fns *fns)
+void sa1100_register_uart_fns(struct sa1100_port_fns *fns)
{
if (fns->get_mctrl)
sa1100_pops.get_mctrl = fns->get_mctrl;
diff --git a/drivers/tty/serial/sc26xx.c b/drivers/tty/serial/sc26xx.c
index 9a40659..aced1dd 100644
--- a/drivers/tty/serial/sc26xx.c
+++ b/drivers/tty/serial/sc26xx.c
@@ -621,7 +621,7 @@ static u8 sc26xx_flags2mask(unsigned int flags, unsigned int bitpos)
return bit ? (1 << (bit - 1)) : 0;
}
-static void __devinit sc26xx_init_masks(struct uart_sc26xx_port *up,
+static void sc26xx_init_masks(struct uart_sc26xx_port *up,
int line, unsigned int data)
{
up->dtr_mask[line] = sc26xx_flags2mask(data, 0);
@@ -632,7 +632,7 @@ static void __devinit sc26xx_init_masks(struct uart_sc26xx_port *up,
up->ri_mask[line] = sc26xx_flags2mask(data, 20);
}
-static int __devinit sc26xx_probe(struct platform_device *dev)
+static int sc26xx_probe(struct platform_device *dev)
{
struct resource *res;
struct uart_sc26xx_port *up;
diff --git a/drivers/tty/serial/sccnxp.c b/drivers/tty/serial/sccnxp.c
index 810853f..1ddace8 100644
--- a/drivers/tty/serial/sccnxp.c
+++ b/drivers/tty/serial/sccnxp.c
@@ -740,7 +740,7 @@ static int sccnxp_console_setup(struct console *co, char *options)
}
#endif
-static int __devinit sccnxp_probe(struct platform_device *pdev)
+static int sccnxp_probe(struct platform_device *pdev)
{
struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
int chiptype = pdev->id_entry->driver_data;
diff --git a/drivers/tty/serial/serial_txx9.c b/drivers/tty/serial/serial_txx9.c
index 9d979a9..23b28b8 100644
--- a/drivers/tty/serial/serial_txx9.c
+++ b/drivers/tty/serial/serial_txx9.c
@@ -1030,7 +1030,7 @@ static DEFINE_MUTEX(serial_txx9_mutex);
*
* On success the port is ready to use and the line number is returned.
*/
-static int __devinit serial_txx9_register_port(struct uart_port *port)
+static int serial_txx9_register_port(struct uart_port *port)
{
int i;
struct uart_txx9_port *uart;
@@ -1096,7 +1096,7 @@ static void __devexit serial_txx9_unregister_port(int line)
/*
* Register a set of serial devices attached to a platform device.
*/
-static int __devinit serial_txx9_probe(struct platform_device *dev)
+static int serial_txx9_probe(struct platform_device *dev)
{
struct uart_port *p = dev->dev.platform_data;
struct uart_port port;
@@ -1187,7 +1187,7 @@ static struct platform_driver serial_txx9_plat_driver = {
* Probe one serial board. Unfortunately, there is no rhyme nor reason
* to the arrangement of serial ports on a PCI card.
*/
-static int __devinit
+static int
pciserial_txx9_init_one(struct pci_dev *dev, const struct pci_device_id *ent)
{
struct uart_port port;
diff --git a/drivers/tty/serial/sh-sci.c b/drivers/tty/serial/sh-sci.c
index 6ee5900..390fdc7 100644
--- a/drivers/tty/serial/sh-sci.c
+++ b/drivers/tty/serial/sh-sci.c
@@ -1132,7 +1132,7 @@ static const char *sci_gpio_str(unsigned int index)
return sci_gpio_names[index];
}
-static void __devinit sci_init_gpios(struct sci_port *port)
+static void sci_init_gpios(struct sci_port *port)
{
struct uart_port *up = &port->port;
int i;
@@ -2064,7 +2064,7 @@ static struct uart_ops sci_uart_ops = {
#endif
};
-static int __devinit sci_init_single(struct platform_device *dev,
+static int sci_init_single(struct platform_device *dev,
struct sci_port *sci_port,
unsigned int index,
struct plat_sci_port *p)
@@ -2220,7 +2220,7 @@ static void serial_console_write(struct console *co, const char *s,
sci_port_disable(sci_port);
}
-static int __devinit serial_console_setup(struct console *co, char *options)
+static int serial_console_setup(struct console *co, char *options)
{
struct sci_port *sci_port;
struct uart_port *port;
@@ -2278,7 +2278,7 @@ static struct console early_serial_console = {
static char early_serial_buf[32];
-static int __devinit sci_probe_earlyprintk(struct platform_device *pdev)
+static int sci_probe_earlyprintk(struct platform_device *pdev)
{
struct plat_sci_port *cfg = pdev->dev.platform_data;
@@ -2341,7 +2341,7 @@ static int sci_runtime_resume(struct device *dev)
#define SCI_CONSOLE (&serial_console)
#else
-static inline int __devinit sci_probe_earlyprintk(struct platform_device *pdev)
+static inline int sci_probe_earlyprintk(struct platform_device *pdev)
{
return -EINVAL;
}
@@ -2379,7 +2379,7 @@ static int sci_remove(struct platform_device *dev)
return 0;
}
-static int __devinit sci_probe_single(struct platform_device *dev,
+static int sci_probe_single(struct platform_device *dev,
unsigned int index,
struct plat_sci_port *p,
struct sci_port *sciport)
@@ -2409,7 +2409,7 @@ static int __devinit sci_probe_single(struct platform_device *dev,
return 0;
}
-static int __devinit sci_probe(struct platform_device *dev)
+static int sci_probe(struct platform_device *dev)
{
struct plat_sci_port *p = dev->dev.platform_data;
struct sci_port *sp = &sci_ports[dev->id];
diff --git a/drivers/tty/serial/sunhv.c b/drivers/tty/serial/sunhv.c
index 949b2d3..cb58867 100644
--- a/drivers/tty/serial/sunhv.c
+++ b/drivers/tty/serial/sunhv.c
@@ -519,7 +519,7 @@ static struct console sunhv_console = {
.data = &sunhv_reg,
};
-static int __devinit hv_probe(struct platform_device *op)
+static int hv_probe(struct platform_device *op)
{
struct uart_port *port;
unsigned long minor;
diff --git a/drivers/tty/serial/sunsab.c b/drivers/tty/serial/sunsab.c
index bbb07bc..9a13c54 100644
--- a/drivers/tty/serial/sunsab.c
+++ b/drivers/tty/serial/sunsab.c
@@ -954,7 +954,7 @@ static inline struct console *SUNSAB_CONSOLE(void)
#define sunsab_console_init() do { } while (0)
#endif
-static int __devinit sunsab_init_one(struct uart_sunsab_port *up,
+static int sunsab_init_one(struct uart_sunsab_port *up,
struct platform_device *op,
unsigned long offset,
int line)
@@ -1007,7 +1007,7 @@ static int __devinit sunsab_init_one(struct uart_sunsab_port *up,
return 0;
}
-static int __devinit sab_probe(struct platform_device *op)
+static int sab_probe(struct platform_device *op)
{
static int inst;
struct uart_sunsab_port *up;
diff --git a/drivers/tty/serial/sunsu.c b/drivers/tty/serial/sunsu.c
index c0658f0..049bbc5 100644
--- a/drivers/tty/serial/sunsu.c
+++ b/drivers/tty/serial/sunsu.c
@@ -1185,7 +1185,7 @@ static struct uart_driver sunsu_reg = {
.major = TTY_MAJOR,
};
-static int __devinit sunsu_kbd_ms_init(struct uart_sunsu_port *up)
+static int sunsu_kbd_ms_init(struct uart_sunsu_port *up)
{
int quot, baud;
#ifdef CONFIG_SERIO
@@ -1391,7 +1391,7 @@ static inline struct console *SUNSU_CONSOLE(void)
#define sunsu_serial_console_init() do { } while (0)
#endif
-static enum su_type __devinit su_get_type(struct device_node *dp)
+static enum su_type su_get_type(struct device_node *dp)
{
struct device_node *ap = of_find_node_by_path("/aliases");
@@ -1412,7 +1412,7 @@ static enum su_type __devinit su_get_type(struct device_node *dp)
return SU_PORT_PORT;
}
-static int __devinit su_probe(struct platform_device *op)
+static int su_probe(struct platform_device *op)
{
static int inst;
struct device_node *dp = op->dev.of_node;
diff --git a/drivers/tty/serial/sunzilog.c b/drivers/tty/serial/sunzilog.c
index c2ef475..02c058f 100644
--- a/drivers/tty/serial/sunzilog.c
+++ b/drivers/tty/serial/sunzilog.c
@@ -1282,7 +1282,7 @@ static inline struct console *SUNZILOG_CONSOLE(void)
#define SUNZILOG_CONSOLE() (NULL)
#endif
-static void __devinit sunzilog_init_kbdms(struct uart_sunzilog_port *up)
+static void sunzilog_init_kbdms(struct uart_sunzilog_port *up)
{
int baud, brg;
@@ -1302,7 +1302,7 @@ static void __devinit sunzilog_init_kbdms(struct uart_sunzilog_port *up)
}
#ifdef CONFIG_SERIO
-static void __devinit sunzilog_register_serio(struct uart_sunzilog_port *up)
+static void sunzilog_register_serio(struct uart_sunzilog_port *up)
{
struct serio *serio = &up->serio;
@@ -1331,7 +1331,7 @@ static void __devinit sunzilog_register_serio(struct uart_sunzilog_port *up)
}
#endif
-static void __devinit sunzilog_init_hw(struct uart_sunzilog_port *up)
+static void sunzilog_init_hw(struct uart_sunzilog_port *up)
{
struct zilog_channel __iomem *channel;
unsigned long flags;
@@ -1400,7 +1400,7 @@ static void __devinit sunzilog_init_hw(struct uart_sunzilog_port *up)
static int zilog_irq;
-static int __devinit zs_probe(struct platform_device *op)
+static int zs_probe(struct platform_device *op)
{
static int kbm_inst, uart_inst;
int inst;
diff --git a/drivers/tty/serial/timbuart.c b/drivers/tty/serial/timbuart.c
index 5fc11f2..c833f50 100644
--- a/drivers/tty/serial/timbuart.c
+++ b/drivers/tty/serial/timbuart.c
@@ -426,7 +426,7 @@ static struct uart_driver timbuart_driver = {
.nr = 1
};
-static int __devinit timbuart_probe(struct platform_device *dev)
+static int timbuart_probe(struct platform_device *dev)
{
int err, irq;
struct timbuart_port *uart;
diff --git a/drivers/tty/serial/uartlite.c b/drivers/tty/serial/uartlite.c
index 1d44383..df9eeb4 100644
--- a/drivers/tty/serial/uartlite.c
+++ b/drivers/tty/serial/uartlite.c
@@ -408,7 +408,7 @@ static void ulite_console_write(struct console *co, const char *s,
spin_unlock_irqrestore(&port->lock, flags);
}
-static int __devinit ulite_console_setup(struct console *co, char *options)
+static int ulite_console_setup(struct console *co, char *options)
{
struct uart_port *port;
int baud = 9600;
@@ -486,7 +486,7 @@ static struct uart_driver ulite_uart_driver = {
*
* Returns: 0 on success, <0 otherwise
*/
-static int __devinit ulite_assign(struct device *dev, int id, u32 base, int irq)
+static int ulite_assign(struct device *dev, int id, u32 base, int irq)
{
struct uart_port *port;
int rc;
@@ -570,7 +570,7 @@ static struct of_device_id ulite_of_match[] __devinitdata = {
MODULE_DEVICE_TABLE(of, ulite_of_match);
#endif /* CONFIG_OF */
-static int __devinit ulite_probe(struct platform_device *pdev)
+static int ulite_probe(struct platform_device *pdev)
{
struct resource *res, *res2;
int id = pdev->id;
diff --git a/drivers/tty/serial/vr41xx_siu.c b/drivers/tty/serial/vr41xx_siu.c
index 9d3bf75..c046c99 100644
--- a/drivers/tty/serial/vr41xx_siu.c
+++ b/drivers/tty/serial/vr41xx_siu.c
@@ -823,7 +823,7 @@ static struct console siu_console = {
.data = &siu_uart_driver,
};
-static int __devinit siu_console_init(void)
+static int siu_console_init(void)
{
struct uart_port *port;
int i;
@@ -867,7 +867,7 @@ static struct uart_driver siu_uart_driver = {
.cons = SERIAL_VR41XX_CONSOLE,
};
-static int __devinit siu_probe(struct platform_device *dev)
+static int siu_probe(struct platform_device *dev)
{
struct uart_port *port;
int num, i, retval;
diff --git a/drivers/tty/serial/vt8500_serial.c b/drivers/tty/serial/vt8500_serial.c
index dbcc909..80530c7 100644
--- a/drivers/tty/serial/vt8500_serial.c
+++ b/drivers/tty/serial/vt8500_serial.c
@@ -554,7 +554,7 @@ static struct uart_driver vt8500_uart_driver = {
.cons = VT8500_CONSOLE,
};
-static int __devinit vt8500_serial_probe(struct platform_device *pdev)
+static int vt8500_serial_probe(struct platform_device *pdev)
{
struct vt8500_port *vt8500_port;
struct resource *mmres, *irqres;
diff --git a/drivers/tty/serial/xilinx_uartps.c b/drivers/tty/serial/xilinx_uartps.c
index b627363..6e9ce65 100644
--- a/drivers/tty/serial/xilinx_uartps.c
+++ b/drivers/tty/serial/xilinx_uartps.c
@@ -939,7 +939,7 @@ static struct uart_driver xuartps_uart_driver = {
*
* Returns 0 on success, negative error otherwise
**/
-static int __devinit xuartps_probe(struct platform_device *pdev)
+static int xuartps_probe(struct platform_device *pdev)
{
int rc;
struct uart_port *port;
diff --git a/drivers/tty/synclink.c b/drivers/tty/synclink.c
index 65b8669..87ba4ca 100644
--- a/drivers/tty/synclink.c
+++ b/drivers/tty/synclink.c
@@ -8064,7 +8064,7 @@ static void hdlcdev_exit(struct mgsl_struct *info)
#endif /* CONFIG_HDLC */
-static int __devinit synclink_init_one (struct pci_dev *dev,
+static int synclink_init_one (struct pci_dev *dev,
const struct pci_device_id *ent)
{
struct mgsl_struct *info;
diff --git a/drivers/tty/synclink_gt.c b/drivers/tty/synclink_gt.c
index 28a2ccf..cdd1ba7 100644
--- a/drivers/tty/synclink_gt.c
+++ b/drivers/tty/synclink_gt.c
@@ -3696,7 +3696,7 @@ static void device_init(int adapter_num, struct pci_dev *pdev)
}
}
-static int __devinit init_one(struct pci_dev *dev,
+static int init_one(struct pci_dev *dev,
const struct pci_device_id *ent)
{
if (pci_enable_device(dev)) {
diff --git a/drivers/tty/synclinkmp.c b/drivers/tty/synclinkmp.c
index 3e56e1e..17454da 100644
--- a/drivers/tty/synclinkmp.c
+++ b/drivers/tty/synclinkmp.c
@@ -5592,7 +5592,7 @@ static void write_control_reg(SLMP_INFO * info)
}
-static int __devinit synclinkmp_init_one (struct pci_dev *dev,
+static int synclinkmp_init_one (struct pci_dev *dev,
const struct pci_device_id *ent)
{
if (pci_enable_device(dev)) {
--
1.8.0
^ permalink raw reply related
* [PATCH 145/493] tty: serial: remove use of __devexit_p
From: Bill Pemberton @ 2012-11-19 18:21 UTC (permalink / raw)
To: gregkh
Cc: Alan Cox, Tobias Klauser, Lucas Tavares, David S. Miller,
Peter Korsgaard, Tony Prisk, linux-serial, nios2-dev,
uclinux-dist-devel, sparclinux, linux-arm-kernel
In-Reply-To: <1353349642-3677-1-git-send-email-wfp5p@virginia.edu>
CONFIG_HOTPLUG is going away as an option so __devexit_p is no longer
needed.
Signed-off-by: Bill Pemberton <wfp5p@virginia.edu>
Cc: Alan Cox <alan@linux.intel.com>
Cc: Tobias Klauser <tklauser@distanz.ch>
Cc: Lucas Tavares <lucaskt@linux.vnet.ibm.com>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Peter Korsgaard <jacmet@sunsite.dk>
Cc: Tony Prisk <linux@prisktech.co.nz>
Cc: linux-serial@vger.kernel.org
Cc: nios2-dev@sopc.et.ntust.edu.tw
Cc: uclinux-dist-devel@blackfin.uclinux.org
Cc: sparclinux@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
---
drivers/tty/serial/8250/8250.c | 2 +-
drivers/tty/serial/8250/8250_acorn.c | 2 +-
drivers/tty/serial/8250/8250_dw.c | 2 +-
drivers/tty/serial/8250/8250_em.c | 2 +-
drivers/tty/serial/8250/8250_hp300.c | 2 +-
drivers/tty/serial/8250/8250_pci.c | 50 ++++++++++++++++++------------------
drivers/tty/serial/8250/8250_pnp.c | 2 +-
drivers/tty/serial/altera_jtaguart.c | 2 +-
drivers/tty/serial/altera_uart.c | 2 +-
drivers/tty/serial/ar933x_uart.c | 2 +-
drivers/tty/serial/arc_uart.c | 2 +-
drivers/tty/serial/atmel_serial.c | 2 +-
drivers/tty/serial/bcm63xx_uart.c | 2 +-
drivers/tty/serial/bfin_sport_uart.c | 2 +-
drivers/tty/serial/bfin_uart.c | 2 +-
drivers/tty/serial/clps711x.c | 2 +-
drivers/tty/serial/efm32-uart.c | 2 +-
drivers/tty/serial/icom.c | 2 +-
drivers/tty/serial/ifx6x60.c | 2 +-
drivers/tty/serial/jsm/jsm_driver.c | 2 +-
drivers/tty/serial/lpc32xx_hs.c | 2 +-
drivers/tty/serial/max3100.c | 2 +-
drivers/tty/serial/max310x.c | 2 +-
drivers/tty/serial/mcf.c | 2 +-
drivers/tty/serial/mfd.c | 2 +-
drivers/tty/serial/mrst_max3110.c | 2 +-
drivers/tty/serial/msm_serial_hs.c | 2 +-
drivers/tty/serial/mux.c | 4 +--
drivers/tty/serial/mxs-auart.c | 2 +-
drivers/tty/serial/omap-serial.c | 2 +-
drivers/tty/serial/pch_uart.c | 2 +-
drivers/tty/serial/samsung.c | 2 +-
drivers/tty/serial/sc26xx.c | 2 +-
drivers/tty/serial/sccnxp.c | 2 +-
drivers/tty/serial/serial_txx9.c | 4 +--
drivers/tty/serial/sirfsoc_uart.c | 2 +-
drivers/tty/serial/sunhv.c | 2 +-
drivers/tty/serial/sunsab.c | 2 +-
drivers/tty/serial/sunsu.c | 2 +-
drivers/tty/serial/sunzilog.c | 2 +-
drivers/tty/serial/timbuart.c | 2 +-
drivers/tty/serial/uartlite.c | 2 +-
drivers/tty/serial/vr41xx_siu.c | 2 +-
drivers/tty/serial/vt8500_serial.c | 2 +-
44 files changed, 70 insertions(+), 70 deletions(-)
diff --git a/drivers/tty/serial/8250/8250.c b/drivers/tty/serial/8250/8250.c
index 5ccbd90..870c5f2 100644
--- a/drivers/tty/serial/8250/8250.c
+++ b/drivers/tty/serial/8250/8250.c
@@ -3078,7 +3078,7 @@ static int serial8250_resume(struct platform_device *dev)
static struct platform_driver serial8250_isa_driver = {
.probe = serial8250_probe,
- .remove = __devexit_p(serial8250_remove),
+ .remove = serial8250_remove,
.suspend = serial8250_suspend,
.resume = serial8250_resume,
.driver = {
diff --git a/drivers/tty/serial/8250/8250_acorn.c b/drivers/tty/serial/8250/8250_acorn.c
index 8574983..b5e4b49 100644
--- a/drivers/tty/serial/8250/8250_acorn.c
+++ b/drivers/tty/serial/8250/8250_acorn.c
@@ -116,7 +116,7 @@ static const struct ecard_id serial_cids[] = {
static struct ecard_driver serial_card_driver = {
.probe = serial_card_probe,
- .remove = __devexit_p(serial_card_remove),
+ .remove = serial_card_remove,
.id_table = serial_cids,
.drv = {
.name = "8250_acorn",
diff --git a/drivers/tty/serial/8250/8250_dw.c b/drivers/tty/serial/8250/8250_dw.c
index b19b8c5..2db80d0 100644
--- a/drivers/tty/serial/8250/8250_dw.c
+++ b/drivers/tty/serial/8250/8250_dw.c
@@ -197,7 +197,7 @@ static struct platform_driver dw8250_platform_driver = {
.of_match_table = dw8250_match,
},
.probe = dw8250_probe,
- .remove = __devexit_p(dw8250_remove),
+ .remove = dw8250_remove,
.suspend = dw8250_suspend,
.resume = dw8250_resume,
};
diff --git a/drivers/tty/serial/8250/8250_em.c b/drivers/tty/serial/8250/8250_em.c
index 3a0363e..80c0a62 100644
--- a/drivers/tty/serial/8250/8250_em.c
+++ b/drivers/tty/serial/8250/8250_em.c
@@ -176,7 +176,7 @@ static struct platform_driver serial8250_em_platform_driver = {
.owner = THIS_MODULE,
},
.probe = serial8250_em_probe,
- .remove = __devexit_p(serial8250_em_remove),
+ .remove = serial8250_em_remove,
};
module_platform_driver(serial8250_em_platform_driver);
diff --git a/drivers/tty/serial/8250/8250_hp300.c b/drivers/tty/serial/8250/8250_hp300.c
index f3d0edf..89e8855 100644
--- a/drivers/tty/serial/8250/8250_hp300.c
+++ b/drivers/tty/serial/8250/8250_hp300.c
@@ -52,7 +52,7 @@ static struct dio_driver hpdca_driver = {
.name = "hpdca",
.id_table = hpdca_dio_tbl,
.probe = hpdca_init_one,
- .remove = __devexit_p(hpdca_remove_one),
+ .remove = hpdca_remove_one,
};
#endif
diff --git a/drivers/tty/serial/8250/8250_pci.c b/drivers/tty/serial/8250/8250_pci.c
index 508063b..c049cfa 100644
--- a/drivers/tty/serial/8250/8250_pci.c
+++ b/drivers/tty/serial/8250/8250_pci.c
@@ -1314,7 +1314,7 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
.subdevice = PCI_ANY_ID,
.init = pci_ite887x_init,
.setup = pci_default_setup,
- .exit = __devexit_p(pci_ite887x_exit),
+ .exit = pci_ite887x_exit,
},
/*
* National Instruments
@@ -1326,7 +1326,7 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
.subdevice = PCI_ANY_ID,
.init = pci_ni8420_init,
.setup = pci_default_setup,
- .exit = __devexit_p(pci_ni8420_exit),
+ .exit = pci_ni8420_exit,
},
{
.vendor = PCI_VENDOR_ID_NI,
@@ -1335,7 +1335,7 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
.subdevice = PCI_ANY_ID,
.init = pci_ni8420_init,
.setup = pci_default_setup,
- .exit = __devexit_p(pci_ni8420_exit),
+ .exit = pci_ni8420_exit,
},
{
.vendor = PCI_VENDOR_ID_NI,
@@ -1344,7 +1344,7 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
.subdevice = PCI_ANY_ID,
.init = pci_ni8420_init,
.setup = pci_default_setup,
- .exit = __devexit_p(pci_ni8420_exit),
+ .exit = pci_ni8420_exit,
},
{
.vendor = PCI_VENDOR_ID_NI,
@@ -1353,7 +1353,7 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
.subdevice = PCI_ANY_ID,
.init = pci_ni8420_init,
.setup = pci_default_setup,
- .exit = __devexit_p(pci_ni8420_exit),
+ .exit = pci_ni8420_exit,
},
{
.vendor = PCI_VENDOR_ID_NI,
@@ -1362,7 +1362,7 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
.subdevice = PCI_ANY_ID,
.init = pci_ni8420_init,
.setup = pci_default_setup,
- .exit = __devexit_p(pci_ni8420_exit),
+ .exit = pci_ni8420_exit,
},
{
.vendor = PCI_VENDOR_ID_NI,
@@ -1371,7 +1371,7 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
.subdevice = PCI_ANY_ID,
.init = pci_ni8420_init,
.setup = pci_default_setup,
- .exit = __devexit_p(pci_ni8420_exit),
+ .exit = pci_ni8420_exit,
},
{
.vendor = PCI_VENDOR_ID_NI,
@@ -1380,7 +1380,7 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
.subdevice = PCI_ANY_ID,
.init = pci_ni8420_init,
.setup = pci_default_setup,
- .exit = __devexit_p(pci_ni8420_exit),
+ .exit = pci_ni8420_exit,
},
{
.vendor = PCI_VENDOR_ID_NI,
@@ -1389,7 +1389,7 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
.subdevice = PCI_ANY_ID,
.init = pci_ni8420_init,
.setup = pci_default_setup,
- .exit = __devexit_p(pci_ni8420_exit),
+ .exit = pci_ni8420_exit,
},
{
.vendor = PCI_VENDOR_ID_NI,
@@ -1398,7 +1398,7 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
.subdevice = PCI_ANY_ID,
.init = pci_ni8420_init,
.setup = pci_default_setup,
- .exit = __devexit_p(pci_ni8420_exit),
+ .exit = pci_ni8420_exit,
},
{
.vendor = PCI_VENDOR_ID_NI,
@@ -1407,7 +1407,7 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
.subdevice = PCI_ANY_ID,
.init = pci_ni8420_init,
.setup = pci_default_setup,
- .exit = __devexit_p(pci_ni8420_exit),
+ .exit = pci_ni8420_exit,
},
{
.vendor = PCI_VENDOR_ID_NI,
@@ -1416,7 +1416,7 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
.subdevice = PCI_ANY_ID,
.init = pci_ni8420_init,
.setup = pci_default_setup,
- .exit = __devexit_p(pci_ni8420_exit),
+ .exit = pci_ni8420_exit,
},
{
.vendor = PCI_VENDOR_ID_NI,
@@ -1425,7 +1425,7 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
.subdevice = PCI_ANY_ID,
.init = pci_ni8420_init,
.setup = pci_default_setup,
- .exit = __devexit_p(pci_ni8420_exit),
+ .exit = pci_ni8420_exit,
},
{
.vendor = PCI_VENDOR_ID_NI,
@@ -1434,7 +1434,7 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
.subdevice = PCI_ANY_ID,
.init = pci_ni8430_init,
.setup = pci_ni8430_setup,
- .exit = __devexit_p(pci_ni8430_exit),
+ .exit = pci_ni8430_exit,
},
/*
* Panacom
@@ -1446,7 +1446,7 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
.subdevice = PCI_ANY_ID,
.init = pci_plx9050_init,
.setup = pci_default_setup,
- .exit = __devexit_p(pci_plx9050_exit),
+ .exit = pci_plx9050_exit,
},
{
.vendor = PCI_VENDOR_ID_PANACOM,
@@ -1455,7 +1455,7 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
.subdevice = PCI_ANY_ID,
.init = pci_plx9050_init,
.setup = pci_default_setup,
- .exit = __devexit_p(pci_plx9050_exit),
+ .exit = pci_plx9050_exit,
},
/*
* PLX
@@ -1474,7 +1474,7 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
.subdevice = PCI_SUBDEVICE_ID_EXSYS_4055,
.init = pci_plx9050_init,
.setup = pci_default_setup,
- .exit = __devexit_p(pci_plx9050_exit),
+ .exit = pci_plx9050_exit,
},
{
.vendor = PCI_VENDOR_ID_PLX,
@@ -1483,7 +1483,7 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
.subdevice = PCI_SUBDEVICE_ID_KEYSPAN_SX2,
.init = pci_plx9050_init,
.setup = pci_default_setup,
- .exit = __devexit_p(pci_plx9050_exit),
+ .exit = pci_plx9050_exit,
},
{
.vendor = PCI_VENDOR_ID_PLX,
@@ -1492,7 +1492,7 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
.subdevice = PCI_SUBDEVICE_ID_UNKNOWN_0x1584,
.init = pci_plx9050_init,
.setup = pci_default_setup,
- .exit = __devexit_p(pci_plx9050_exit),
+ .exit = pci_plx9050_exit,
},
{
.vendor = PCI_VENDOR_ID_PLX,
@@ -1501,7 +1501,7 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
.subdevice = PCI_DEVICE_ID_PLX_ROMULUS,
.init = pci_plx9050_init,
.setup = pci_default_setup,
- .exit = __devexit_p(pci_plx9050_exit),
+ .exit = pci_plx9050_exit,
},
/*
* SBS Technologies, Inc., PMC-OCTALPRO 232
@@ -1513,7 +1513,7 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
.subdevice = PCI_SUBDEVICE_ID_OCTPRO232,
.init = sbs_init,
.setup = sbs_setup,
- .exit = __devexit_p(sbs_exit),
+ .exit = sbs_exit,
},
/*
* SBS Technologies, Inc., PMC-OCTALPRO 422
@@ -1525,7 +1525,7 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
.subdevice = PCI_SUBDEVICE_ID_OCTPRO422,
.init = sbs_init,
.setup = sbs_setup,
- .exit = __devexit_p(sbs_exit),
+ .exit = sbs_exit,
},
/*
* SBS Technologies, Inc., P-Octal 232
@@ -1537,7 +1537,7 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
.subdevice = PCI_SUBDEVICE_ID_POCTAL232,
.init = sbs_init,
.setup = sbs_setup,
- .exit = __devexit_p(sbs_exit),
+ .exit = sbs_exit,
},
/*
* SBS Technologies, Inc., P-Octal 422
@@ -1549,7 +1549,7 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
.subdevice = PCI_SUBDEVICE_ID_POCTAL422,
.init = sbs_init,
.setup = sbs_setup,
- .exit = __devexit_p(sbs_exit),
+ .exit = sbs_exit,
},
/*
* SIIG cards - these may be called via parport_serial
@@ -4323,7 +4323,7 @@ static const struct pci_error_handlers serial8250_err_handler = {
static struct pci_driver serial_pci_driver = {
.name = "serial",
.probe = pciserial_init_one,
- .remove = __devexit_p(pciserial_remove_one),
+ .remove = pciserial_remove_one,
#ifdef CONFIG_PM
.suspend = pciserial_suspend_one,
.resume = pciserial_resume_one,
diff --git a/drivers/tty/serial/8250/8250_pnp.c b/drivers/tty/serial/8250/8250_pnp.c
index f8ee250..e566220 100644
--- a/drivers/tty/serial/8250/8250_pnp.c
+++ b/drivers/tty/serial/8250/8250_pnp.c
@@ -511,7 +511,7 @@ static int serial_pnp_resume(struct pnp_dev *dev)
static struct pnp_driver serial_pnp_driver = {
.name = "serial",
.probe = serial_pnp_probe,
- .remove = __devexit_p(serial_pnp_remove),
+ .remove = serial_pnp_remove,
.suspend = serial_pnp_suspend,
.resume = serial_pnp_resume,
.id_table = pnp_dev_table,
diff --git a/drivers/tty/serial/altera_jtaguart.c b/drivers/tty/serial/altera_jtaguart.c
index 530181e..ef16b0a 100644
--- a/drivers/tty/serial/altera_jtaguart.c
+++ b/drivers/tty/serial/altera_jtaguart.c
@@ -477,7 +477,7 @@ MODULE_DEVICE_TABLE(of, altera_jtaguart_match);
static struct platform_driver altera_jtaguart_platform_driver = {
.probe = altera_jtaguart_probe,
- .remove = __devexit_p(altera_jtaguart_remove),
+ .remove = altera_jtaguart_remove,
.driver = {
.name = DRV_NAME,
.owner = THIS_MODULE,
diff --git a/drivers/tty/serial/altera_uart.c b/drivers/tty/serial/altera_uart.c
index 15d80b9..117ea2c 100644
--- a/drivers/tty/serial/altera_uart.c
+++ b/drivers/tty/serial/altera_uart.c
@@ -621,7 +621,7 @@ MODULE_DEVICE_TABLE(of, altera_uart_match);
static struct platform_driver altera_uart_platform_driver = {
.probe = altera_uart_probe,
- .remove = __devexit_p(altera_uart_remove),
+ .remove = altera_uart_remove,
.driver = {
.name = DRV_NAME,
.owner = THIS_MODULE,
diff --git a/drivers/tty/serial/ar933x_uart.c b/drivers/tty/serial/ar933x_uart.c
index e4f60e2..33122f9 100644
--- a/drivers/tty/serial/ar933x_uart.c
+++ b/drivers/tty/serial/ar933x_uart.c
@@ -645,7 +645,7 @@ static int __devexit ar933x_uart_remove(struct platform_device *pdev)
static struct platform_driver ar933x_uart_platform_driver = {
.probe = ar933x_uart_probe,
- .remove = __devexit_p(ar933x_uart_remove),
+ .remove = ar933x_uart_remove,
.driver = {
.name = DRIVER_NAME,
.owner = THIS_MODULE,
diff --git a/drivers/tty/serial/arc_uart.c b/drivers/tty/serial/arc_uart.c
index e9c61d1..d652569 100644
--- a/drivers/tty/serial/arc_uart.c
+++ b/drivers/tty/serial/arc_uart.c
@@ -697,7 +697,7 @@ static int __devexit arc_serial_remove(struct platform_device *pdev)
static struct platform_driver arc_platform_driver = {
.probe = arc_serial_probe,
- .remove = __devexit_p(arc_serial_remove),
+ .remove = arc_serial_remove,
.driver = {
.name = DRIVER_NAME,
.owner = THIS_MODULE,
diff --git a/drivers/tty/serial/atmel_serial.c b/drivers/tty/serial/atmel_serial.c
index 5608b6b..7f91d08 100644
--- a/drivers/tty/serial/atmel_serial.c
+++ b/drivers/tty/serial/atmel_serial.c
@@ -1884,7 +1884,7 @@ static int __devexit atmel_serial_remove(struct platform_device *pdev)
static struct platform_driver atmel_serial_driver = {
.probe = atmel_serial_probe,
- .remove = __devexit_p(atmel_serial_remove),
+ .remove = atmel_serial_remove,
.suspend = atmel_serial_suspend,
.resume = atmel_serial_resume,
.driver = {
diff --git a/drivers/tty/serial/bcm63xx_uart.c b/drivers/tty/serial/bcm63xx_uart.c
index c0b68b9..7f631d4 100644
--- a/drivers/tty/serial/bcm63xx_uart.c
+++ b/drivers/tty/serial/bcm63xx_uart.c
@@ -865,7 +865,7 @@ static int __devexit bcm_uart_remove(struct platform_device *pdev)
*/
static struct platform_driver bcm_uart_platform_driver = {
.probe = bcm_uart_probe,
- .remove = __devexit_p(bcm_uart_remove),
+ .remove = bcm_uart_remove,
.driver = {
.owner = THIS_MODULE,
.name = "bcm63xx_uart",
diff --git a/drivers/tty/serial/bfin_sport_uart.c b/drivers/tty/serial/bfin_sport_uart.c
index 7fbc3a0..b4a18c7 100644
--- a/drivers/tty/serial/bfin_sport_uart.c
+++ b/drivers/tty/serial/bfin_sport_uart.c
@@ -871,7 +871,7 @@ static int __devexit sport_uart_remove(struct platform_device *pdev)
static struct platform_driver sport_uart_driver = {
.probe = sport_uart_probe,
- .remove = __devexit_p(sport_uart_remove),
+ .remove = sport_uart_remove,
.driver = {
.name = DRV_NAME,
#ifdef CONFIG_PM
diff --git a/drivers/tty/serial/bfin_uart.c b/drivers/tty/serial/bfin_uart.c
index 9b11c3f..aa1f2f0f 100644
--- a/drivers/tty/serial/bfin_uart.c
+++ b/drivers/tty/serial/bfin_uart.c
@@ -1410,7 +1410,7 @@ static int __devexit bfin_serial_remove(struct platform_device *pdev)
static struct platform_driver bfin_serial_driver = {
.probe = bfin_serial_probe,
- .remove = __devexit_p(bfin_serial_remove),
+ .remove = bfin_serial_remove,
.suspend = bfin_serial_suspend,
.resume = bfin_serial_resume,
.driver = {
diff --git a/drivers/tty/serial/clps711x.c b/drivers/tty/serial/clps711x.c
index a0a6db5..d631ef5 100644
--- a/drivers/tty/serial/clps711x.c
+++ b/drivers/tty/serial/clps711x.c
@@ -512,7 +512,7 @@ static struct platform_driver clps711x_uart_driver = {
.owner = THIS_MODULE,
},
.probe = uart_clps711x_probe,
- .remove = __devexit_p(uart_clps711x_remove),
+ .remove = uart_clps711x_remove,
};
module_platform_driver(clps711x_uart_driver);
diff --git a/drivers/tty/serial/efm32-uart.c b/drivers/tty/serial/efm32-uart.c
index 615e464..1e8bacf 100644
--- a/drivers/tty/serial/efm32-uart.c
+++ b/drivers/tty/serial/efm32-uart.c
@@ -791,7 +791,7 @@ MODULE_DEVICE_TABLE(of, efm32_uart_dt_ids);
static struct platform_driver efm32_uart_driver = {
.probe = efm32_uart_probe,
- .remove = __devexit_p(efm32_uart_remove),
+ .remove = efm32_uart_remove,
.driver = {
.name = DRIVER_NAME,
diff --git a/drivers/tty/serial/icom.c b/drivers/tty/serial/icom.c
index 6131516..82671b5 100644
--- a/drivers/tty/serial/icom.c
+++ b/drivers/tty/serial/icom.c
@@ -1617,7 +1617,7 @@ static struct pci_driver icom_pci_driver = {
.name = ICOM_DRIVER_NAME,
.id_table = icom_pci_table,
.probe = icom_probe,
- .remove = __devexit_p(icom_remove),
+ .remove = icom_remove,
};
static int __init icom_init(void)
diff --git a/drivers/tty/serial/ifx6x60.c b/drivers/tty/serial/ifx6x60.c
index fbda374..658a263 100644
--- a/drivers/tty/serial/ifx6x60.c
+++ b/drivers/tty/serial/ifx6x60.c
@@ -1395,7 +1395,7 @@ static struct spi_driver ifx_spi_driver = {
.owner = THIS_MODULE},
.probe = ifx_spi_spi_probe,
.shutdown = ifx_spi_spi_shutdown,
- .remove = __devexit_p(ifx_spi_spi_remove),
+ .remove = ifx_spi_spi_remove,
.suspend = ifx_spi_spi_suspend,
.resume = ifx_spi_spi_resume,
.id_table = ifx_id_table
diff --git a/drivers/tty/serial/jsm/jsm_driver.c b/drivers/tty/serial/jsm/jsm_driver.c
index 8e05ce9..bbd4592 100644
--- a/drivers/tty/serial/jsm/jsm_driver.c
+++ b/drivers/tty/serial/jsm/jsm_driver.c
@@ -217,7 +217,7 @@ static struct pci_driver jsm_driver = {
.name = "jsm",
.id_table = jsm_pci_tbl,
.probe = jsm_probe_one,
- .remove = __devexit_p(jsm_remove_one),
+ .remove = jsm_remove_one,
.err_handler = &jsm_err_handler,
};
diff --git a/drivers/tty/serial/lpc32xx_hs.c b/drivers/tty/serial/lpc32xx_hs.c
index ba3af3b..7b0f5b4 100644
--- a/drivers/tty/serial/lpc32xx_hs.c
+++ b/drivers/tty/serial/lpc32xx_hs.c
@@ -783,7 +783,7 @@ MODULE_DEVICE_TABLE(of, serial_hs_lpc32xx_dt_ids);
static struct platform_driver serial_hs_lpc32xx_driver = {
.probe = serial_hs_lpc32xx_probe,
- .remove = __devexit_p(serial_hs_lpc32xx_remove),
+ .remove = serial_hs_lpc32xx_remove,
.suspend = serial_hs_lpc32xx_suspend,
.resume = serial_hs_lpc32xx_resume,
.driver = {
diff --git a/drivers/tty/serial/max3100.c b/drivers/tty/serial/max3100.c
index 0f24486..2ffd7f0 100644
--- a/drivers/tty/serial/max3100.c
+++ b/drivers/tty/serial/max3100.c
@@ -907,7 +907,7 @@ static struct spi_driver max3100_driver = {
},
.probe = max3100_probe,
- .remove = __devexit_p(max3100_remove),
+ .remove = max3100_remove,
.suspend = max3100_suspend,
.resume = max3100_resume,
};
diff --git a/drivers/tty/serial/max310x.c b/drivers/tty/serial/max310x.c
index 1ab1d2c..a332327 100644
--- a/drivers/tty/serial/max310x.c
+++ b/drivers/tty/serial/max310x.c
@@ -1249,7 +1249,7 @@ static struct spi_driver max310x_driver = {
.owner = THIS_MODULE,
},
.probe = max310x_probe,
- .remove = __devexit_p(max310x_remove),
+ .remove = max310x_remove,
.suspend = max310x_suspend,
.resume = max310x_resume,
.id_table = max310x_id_table,
diff --git a/drivers/tty/serial/mcf.c b/drivers/tty/serial/mcf.c
index 9afca09..e3de785 100644
--- a/drivers/tty/serial/mcf.c
+++ b/drivers/tty/serial/mcf.c
@@ -617,7 +617,7 @@ static int __devexit mcf_remove(struct platform_device *pdev)
static struct platform_driver mcf_platform_driver = {
.probe = mcf_probe,
- .remove = __devexit_p(mcf_remove),
+ .remove = mcf_remove,
.driver = {
.name = "mcfuart",
.owner = THIS_MODULE,
diff --git a/drivers/tty/serial/mfd.c b/drivers/tty/serial/mfd.c
index c4b50af..71c4c8e 100644
--- a/drivers/tty/serial/mfd.c
+++ b/drivers/tty/serial/mfd.c
@@ -1468,7 +1468,7 @@ static struct pci_driver hsu_pci_driver = {
.name = "HSU serial",
.id_table = pci_ids,
.probe = serial_hsu_probe,
- .remove = __devexit_p(serial_hsu_remove),
+ .remove = serial_hsu_remove,
.suspend = serial_hsu_suspend,
.resume = serial_hsu_resume,
.driver = {
diff --git a/drivers/tty/serial/mrst_max3110.c b/drivers/tty/serial/mrst_max3110.c
index df2a224..649ce12 100644
--- a/drivers/tty/serial/mrst_max3110.c
+++ b/drivers/tty/serial/mrst_max3110.c
@@ -879,7 +879,7 @@ static struct spi_driver uart_max3110_driver = {
.owner = THIS_MODULE,
},
.probe = serial_m3110_probe,
- .remove = __devexit_p(serial_m3110_remove),
+ .remove = serial_m3110_remove,
.suspend = serial_m3110_suspend,
.resume = serial_m3110_resume,
};
diff --git a/drivers/tty/serial/msm_serial_hs.c b/drivers/tty/serial/msm_serial_hs.c
index fca13dc..1361ad5 100644
--- a/drivers/tty/serial/msm_serial_hs.c
+++ b/drivers/tty/serial/msm_serial_hs.c
@@ -1838,7 +1838,7 @@ static const struct dev_pm_ops msm_hs_dev_pm_ops = {
static struct platform_driver msm_serial_hs_platform_driver = {
.probe = msm_hs_probe,
- .remove = __devexit_p(msm_hs_remove),
+ .remove = msm_hs_remove,
.driver = {
.name = "msm_serial_hs",
.owner = THIS_MODULE,
diff --git a/drivers/tty/serial/mux.c b/drivers/tty/serial/mux.c
index 7ea8a26..2783464 100644
--- a/drivers/tty/serial/mux.c
+++ b/drivers/tty/serial/mux.c
@@ -571,14 +571,14 @@ static struct parisc_driver builtin_serial_mux_driver = {
.name = "builtin_serial_mux",
.id_table = builtin_mux_tbl,
.probe = mux_probe,
- .remove = __devexit_p(mux_remove),
+ .remove = mux_remove,
};
static struct parisc_driver serial_mux_driver = {
.name = "serial_mux",
.id_table = mux_tbl,
.probe = mux_probe,
- .remove = __devexit_p(mux_remove),
+ .remove = mux_remove,
};
/**
diff --git a/drivers/tty/serial/mxs-auart.c b/drivers/tty/serial/mxs-auart.c
index 6db3baa..7554045 100644
--- a/drivers/tty/serial/mxs-auart.c
+++ b/drivers/tty/serial/mxs-auart.c
@@ -813,7 +813,7 @@ MODULE_DEVICE_TABLE(of, mxs_auart_dt_ids);
static struct platform_driver mxs_auart_driver = {
.probe = mxs_auart_probe,
- .remove = __devexit_p(mxs_auart_remove),
+ .remove = mxs_auart_remove,
.driver = {
.name = "mxs-auart",
.owner = THIS_MODULE,
diff --git a/drivers/tty/serial/omap-serial.c b/drivers/tty/serial/omap-serial.c
index d456321..624e6b5 100644
--- a/drivers/tty/serial/omap-serial.c
+++ b/drivers/tty/serial/omap-serial.c
@@ -1655,7 +1655,7 @@ MODULE_DEVICE_TABLE(of, omap_serial_of_match);
static struct platform_driver serial_omap_driver = {
.probe = serial_omap_probe,
- .remove = __devexit_p(serial_omap_remove),
+ .remove = serial_omap_remove,
.driver = {
.name = DRIVER_NAME,
.pm = &serial_omap_dev_pm_ops,
diff --git a/drivers/tty/serial/pch_uart.c b/drivers/tty/serial/pch_uart.c
index 4cd6c23..f5fb9bd 100644
--- a/drivers/tty/serial/pch_uart.c
+++ b/drivers/tty/serial/pch_uart.c
@@ -1869,7 +1869,7 @@ static struct pci_driver pch_uart_pci_driver = {
.name = "pch_uart",
.id_table = pch_uart_pci_id,
.probe = pch_uart_pci_probe,
- .remove = __devexit_p(pch_uart_pci_remove),
+ .remove = pch_uart_pci_remove,
.suspend = pch_uart_pci_suspend,
.resume = pch_uart_pci_resume,
};
diff --git a/drivers/tty/serial/samsung.c b/drivers/tty/serial/samsung.c
index 740458c..6568beb 100644
--- a/drivers/tty/serial/samsung.c
+++ b/drivers/tty/serial/samsung.c
@@ -1712,7 +1712,7 @@ MODULE_DEVICE_TABLE(of, s3c24xx_uart_dt_match);
static struct platform_driver samsung_serial_driver = {
.probe = s3c24xx_serial_probe,
- .remove = __devexit_p(s3c24xx_serial_remove),
+ .remove = s3c24xx_serial_remove,
.id_table = s3c24xx_serial_driver_ids,
.driver = {
.name = "samsung-uart",
diff --git a/drivers/tty/serial/sc26xx.c b/drivers/tty/serial/sc26xx.c
index 9d66424..9a40659 100644
--- a/drivers/tty/serial/sc26xx.c
+++ b/drivers/tty/serial/sc26xx.c
@@ -733,7 +733,7 @@ static int __exit sc26xx_driver_remove(struct platform_device *dev)
static struct platform_driver sc26xx_driver = {
.probe = sc26xx_probe,
- .remove = __devexit_p(sc26xx_driver_remove),
+ .remove = sc26xx_driver_remove,
.driver = {
.name = "SC26xx",
.owner = THIS_MODULE,
diff --git a/drivers/tty/serial/sccnxp.c b/drivers/tty/serial/sccnxp.c
index e821068..810853f 100644
--- a/drivers/tty/serial/sccnxp.c
+++ b/drivers/tty/serial/sccnxp.c
@@ -981,7 +981,7 @@ static struct platform_driver sccnxp_uart_driver = {
.owner = THIS_MODULE,
},
.probe = sccnxp_probe,
- .remove = __devexit_p(sccnxp_remove),
+ .remove = sccnxp_remove,
.id_table = sccnxp_id_table,
};
module_platform_driver(sccnxp_uart_driver);
diff --git a/drivers/tty/serial/serial_txx9.c b/drivers/tty/serial/serial_txx9.c
index 6ae2a58..9d979a9 100644
--- a/drivers/tty/serial/serial_txx9.c
+++ b/drivers/tty/serial/serial_txx9.c
@@ -1171,7 +1171,7 @@ static int serial_txx9_resume(struct platform_device *dev)
static struct platform_driver serial_txx9_plat_driver = {
.probe = serial_txx9_probe,
- .remove = __devexit_p(serial_txx9_remove),
+ .remove = serial_txx9_remove,
#ifdef CONFIG_PM
.suspend = serial_txx9_suspend,
.resume = serial_txx9_resume,
@@ -1261,7 +1261,7 @@ static const struct pci_device_id serial_txx9_pci_tbl[] = {
static struct pci_driver serial_txx9_pci_driver = {
.name = "serial_txx9",
.probe = pciserial_txx9_init_one,
- .remove = __devexit_p(pciserial_txx9_remove_one),
+ .remove = pciserial_txx9_remove_one,
#ifdef CONFIG_PM
.suspend = pciserial_txx9_suspend_one,
.resume = pciserial_txx9_resume_one,
diff --git a/drivers/tty/serial/sirfsoc_uart.c b/drivers/tty/serial/sirfsoc_uart.c
index a9e2bd1..4984984 100644
--- a/drivers/tty/serial/sirfsoc_uart.c
+++ b/drivers/tty/serial/sirfsoc_uart.c
@@ -735,7 +735,7 @@ MODULE_DEVICE_TABLE(of, sirfsoc_serial_of_match);
static struct platform_driver sirfsoc_uart_driver = {
.probe = sirfsoc_uart_probe,
- .remove = __devexit_p(sirfsoc_uart_remove),
+ .remove = sirfsoc_uart_remove,
.suspend = sirfsoc_uart_suspend,
.resume = sirfsoc_uart_resume,
.driver = {
diff --git a/drivers/tty/serial/sunhv.c b/drivers/tty/serial/sunhv.c
index 505961c..949b2d3 100644
--- a/drivers/tty/serial/sunhv.c
+++ b/drivers/tty/serial/sunhv.c
@@ -636,7 +636,7 @@ static struct platform_driver hv_driver = {
.of_match_table = hv_match,
},
.probe = hv_probe,
- .remove = __devexit_p(hv_remove),
+ .remove = hv_remove,
};
static int __init sunhv_init(void)
diff --git a/drivers/tty/serial/sunsab.c b/drivers/tty/serial/sunsab.c
index f0d93eb..bbb07bc 100644
--- a/drivers/tty/serial/sunsab.c
+++ b/drivers/tty/serial/sunsab.c
@@ -1100,7 +1100,7 @@ static struct platform_driver sab_driver = {
.of_match_table = sab_match,
},
.probe = sab_probe,
- .remove = __devexit_p(sab_remove),
+ .remove = sab_remove,
};
static int __init sunsab_init(void)
diff --git a/drivers/tty/serial/sunsu.c b/drivers/tty/serial/sunsu.c
index b97913d..c0658f0 100644
--- a/drivers/tty/serial/sunsu.c
+++ b/drivers/tty/serial/sunsu.c
@@ -1556,7 +1556,7 @@ static struct platform_driver su_driver = {
.of_match_table = su_match,
},
.probe = su_probe,
- .remove = __devexit_p(su_remove),
+ .remove = su_remove,
};
static int __init sunsu_init(void)
diff --git a/drivers/tty/serial/sunzilog.c b/drivers/tty/serial/sunzilog.c
index babd947..c2ef475 100644
--- a/drivers/tty/serial/sunzilog.c
+++ b/drivers/tty/serial/sunzilog.c
@@ -1548,7 +1548,7 @@ static struct platform_driver zs_driver = {
.of_match_table = zs_match,
},
.probe = zs_probe,
- .remove = __devexit_p(zs_remove),
+ .remove = zs_remove,
};
static int __init sunzilog_init(void)
diff --git a/drivers/tty/serial/timbuart.c b/drivers/tty/serial/timbuart.c
index 70f9749..5fc11f2 100644
--- a/drivers/tty/serial/timbuart.c
+++ b/drivers/tty/serial/timbuart.c
@@ -510,7 +510,7 @@ static struct platform_driver timbuart_platform_driver = {
.owner = THIS_MODULE,
},
.probe = timbuart_probe,
- .remove = __devexit_p(timbuart_remove),
+ .remove = timbuart_remove,
};
module_platform_driver(timbuart_platform_driver);
diff --git a/drivers/tty/serial/uartlite.c b/drivers/tty/serial/uartlite.c
index 6579ffd..1d44383 100644
--- a/drivers/tty/serial/uartlite.c
+++ b/drivers/tty/serial/uartlite.c
@@ -603,7 +603,7 @@ MODULE_ALIAS("platform:uartlite");
static struct platform_driver ulite_platform_driver = {
.probe = ulite_probe,
- .remove = __devexit_p(ulite_remove),
+ .remove = ulite_remove,
.driver = {
.owner = THIS_MODULE,
.name = "uartlite",
diff --git a/drivers/tty/serial/vr41xx_siu.c b/drivers/tty/serial/vr41xx_siu.c
index cf0d948..9d3bf75 100644
--- a/drivers/tty/serial/vr41xx_siu.c
+++ b/drivers/tty/serial/vr41xx_siu.c
@@ -952,7 +952,7 @@ static int siu_resume(struct platform_device *dev)
static struct platform_driver siu_device_driver = {
.probe = siu_probe,
- .remove = __devexit_p(siu_remove),
+ .remove = siu_remove,
.suspend = siu_suspend,
.resume = siu_resume,
.driver = {
diff --git a/drivers/tty/serial/vt8500_serial.c b/drivers/tty/serial/vt8500_serial.c
index 4354fe5..dbcc909 100644
--- a/drivers/tty/serial/vt8500_serial.c
+++ b/drivers/tty/serial/vt8500_serial.c
@@ -652,7 +652,7 @@ static const struct of_device_id wmt_dt_ids[] = {
static struct platform_driver vt8500_platform_driver = {
.probe = vt8500_serial_probe,
- .remove = __devexit_p(vt8500_serial_remove),
+ .remove = vt8500_serial_remove,
.driver = {
.name = "vt8500_serial",
.owner = THIS_MODULE,
--
1.8.0
^ permalink raw reply related
* [PATCH 429/493] tty: remove use of __devexit
From: Bill Pemberton @ 2012-11-19 18:26 UTC (permalink / raw)
To: gregkh
Cc: Jiri Slaby, Alan Cox, Tobias Klauser, Lucas Tavares, David Brown,
Daniel Walker, Bryan Huntsman, David S. Miller, Peter Korsgaard,
Tony Prisk, linuxppc-dev, linux-serial, nios2-dev,
uclinux-dist-devel, linux-arm-msm, sparclinux, linux-arm-kernel
In-Reply-To: <1353349642-3677-1-git-send-email-wfp5p@virginia.edu>
CONFIG_HOTPLUG is going away as an option so __devexit is no
longer needed.
Signed-off-by: Bill Pemberton <wfp5p@virginia.edu>
Cc: Jiri Slaby <jirislaby@gmail.com>
Cc: Alan Cox <alan@linux.intel.com>
Cc: Tobias Klauser <tklauser@distanz.ch>
Cc: Lucas Tavares <lucaskt@linux.vnet.ibm.com>
Cc: David Brown <davidb@codeaurora.org>
Cc: Daniel Walker <dwalker@fifo99.com>
Cc: Bryan Huntsman <bryanh@codeaurora.org>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Peter Korsgaard <jacmet@sunsite.dk>
Cc: Tony Prisk <linux@prisktech.co.nz>
Cc: linuxppc-dev@lists.ozlabs.org
Cc: linux-serial@vger.kernel.org
Cc: nios2-dev@sopc.et.ntust.edu.tw
Cc: uclinux-dist-devel@blackfin.uclinux.org
Cc: linux-arm-msm@vger.kernel.org
Cc: sparclinux@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
---
drivers/tty/cyclades.c | 2 +-
drivers/tty/hvc/hvc_opal.c | 2 +-
drivers/tty/hvc/hvc_vio.c | 2 +-
drivers/tty/hvc/hvcs.c | 4 ++--
drivers/tty/isicom.c | 4 ++--
drivers/tty/moxa.c | 2 +-
drivers/tty/mxser.c | 2 +-
drivers/tty/nozomi.c | 4 ++--
drivers/tty/serial/8250/8250.c | 2 +-
drivers/tty/serial/8250/8250_acorn.c | 2 +-
drivers/tty/serial/8250/8250_dw.c | 2 +-
drivers/tty/serial/8250/8250_em.c | 2 +-
drivers/tty/serial/8250/8250_hp300.c | 4 ++--
drivers/tty/serial/8250/8250_pci.c | 12 ++++++------
drivers/tty/serial/8250/8250_pnp.c | 2 +-
drivers/tty/serial/altera_jtaguart.c | 2 +-
drivers/tty/serial/altera_uart.c | 2 +-
drivers/tty/serial/ar933x_uart.c | 2 +-
drivers/tty/serial/arc_uart.c | 2 +-
drivers/tty/serial/atmel_serial.c | 2 +-
drivers/tty/serial/bcm63xx_uart.c | 2 +-
drivers/tty/serial/bfin_sport_uart.c | 2 +-
drivers/tty/serial/bfin_uart.c | 2 +-
drivers/tty/serial/clps711x.c | 2 +-
drivers/tty/serial/cpm_uart/cpm_uart_core.c | 2 +-
drivers/tty/serial/efm32-uart.c | 2 +-
drivers/tty/serial/icom.c | 2 +-
drivers/tty/serial/jsm/jsm_driver.c | 2 +-
drivers/tty/serial/lpc32xx_hs.c | 2 +-
drivers/tty/serial/max3100.c | 2 +-
drivers/tty/serial/max310x.c | 2 +-
drivers/tty/serial/mcf.c | 2 +-
drivers/tty/serial/mrst_max3110.c | 2 +-
drivers/tty/serial/msm_serial.c | 2 +-
drivers/tty/serial/msm_serial_hs.c | 2 +-
drivers/tty/serial/mux.c | 2 +-
drivers/tty/serial/mxs-auart.c | 2 +-
drivers/tty/serial/omap-serial.c | 2 +-
drivers/tty/serial/samsung.c | 2 +-
drivers/tty/serial/sccnxp.c | 2 +-
drivers/tty/serial/serial_txx9.c | 6 +++---
drivers/tty/serial/sunhv.c | 2 +-
drivers/tty/serial/sunsab.c | 2 +-
drivers/tty/serial/sunsu.c | 2 +-
drivers/tty/serial/sunzilog.c | 4 ++--
drivers/tty/serial/timbuart.c | 2 +-
drivers/tty/serial/uartlite.c | 4 ++--
drivers/tty/serial/vr41xx_siu.c | 2 +-
drivers/tty/serial/vt8500_serial.c | 2 +-
drivers/tty/serial/xilinx_uartps.c | 2 +-
drivers/tty/synclink.c | 2 +-
drivers/tty/synclink_gt.c | 2 +-
drivers/tty/synclinkmp.c | 2 +-
53 files changed, 66 insertions(+), 66 deletions(-)
diff --git a/drivers/tty/cyclades.c b/drivers/tty/cyclades.c
index 444b544..6fd94aa 100644
--- a/drivers/tty/cyclades.c
+++ b/drivers/tty/cyclades.c
@@ -3931,7 +3931,7 @@ err:
return retval;
}
-static void __devexit cy_pci_remove(struct pci_dev *pdev)
+static void cy_pci_remove(struct pci_dev *pdev)
{
struct cyclades_card *cinfo = pci_get_drvdata(pdev);
unsigned int i;
diff --git a/drivers/tty/hvc/hvc_opal.c b/drivers/tty/hvc/hvc_opal.c
index 700fedf..cd69b48 100644
--- a/drivers/tty/hvc/hvc_opal.c
+++ b/drivers/tty/hvc/hvc_opal.c
@@ -222,7 +222,7 @@ static int hvc_opal_probe(struct platform_device *dev)
return 0;
}
-static int __devexit hvc_opal_remove(struct platform_device *dev)
+static int hvc_opal_remove(struct platform_device *dev)
{
struct hvc_struct *hp = dev_get_drvdata(&dev->dev);
int rc, termno;
diff --git a/drivers/tty/hvc/hvc_vio.c b/drivers/tty/hvc/hvc_vio.c
index 7f51156..0c62980 100644
--- a/drivers/tty/hvc/hvc_vio.c
+++ b/drivers/tty/hvc/hvc_vio.c
@@ -362,7 +362,7 @@ static int hvc_vio_probe(struct vio_dev *vdev,
return 0;
}
-static int __devexit hvc_vio_remove(struct vio_dev *vdev)
+static int hvc_vio_remove(struct vio_dev *vdev)
{
struct hvc_struct *hp = dev_get_drvdata(&vdev->dev);
int rc, termno;
diff --git a/drivers/tty/hvc/hvcs.c b/drivers/tty/hvc/hvcs.c
index 5afe3b6..8776357 100644
--- a/drivers/tty/hvc/hvcs.c
+++ b/drivers/tty/hvc/hvcs.c
@@ -332,7 +332,7 @@ static void hvcs_hangup(struct tty_struct * tty);
static int hvcs_probe(struct vio_dev *dev,
const struct vio_device_id *id);
-static int __devexit hvcs_remove(struct vio_dev *dev);
+static int hvcs_remove(struct vio_dev *dev);
static int __init hvcs_module_init(void);
static void __exit hvcs_module_exit(void);
static int hvcs_initialize(void);
@@ -835,7 +835,7 @@ static int hvcs_probe(
return 0;
}
-static int __devexit hvcs_remove(struct vio_dev *dev)
+static int hvcs_remove(struct vio_dev *dev)
{
struct hvcs_struct *hvcsd = dev_get_drvdata(&dev->dev);
unsigned long flags;
diff --git a/drivers/tty/isicom.c b/drivers/tty/isicom.c
index d1c1fef..3245c6f 100644
--- a/drivers/tty/isicom.c
+++ b/drivers/tty/isicom.c
@@ -148,7 +148,7 @@
#endif
static int isicom_probe(struct pci_dev *, const struct pci_device_id *);
-static void __devexit isicom_remove(struct pci_dev *);
+static void isicom_remove(struct pci_dev *);
static struct pci_device_id isicom_pci_tbl[] = {
{ PCI_DEVICE(VENDOR_ID, 0x2028) },
@@ -1630,7 +1630,7 @@ err:
return retval;
}
-static void __devexit isicom_remove(struct pci_dev *pdev)
+static void isicom_remove(struct pci_dev *pdev)
{
struct isi_board *board = pci_get_drvdata(pdev);
unsigned int i;
diff --git a/drivers/tty/moxa.c b/drivers/tty/moxa.c
index 0998773..cff4d8d 100644
--- a/drivers/tty/moxa.c
+++ b/drivers/tty/moxa.c
@@ -1016,7 +1016,7 @@ err:
return retval;
}
-static void __devexit moxa_pci_remove(struct pci_dev *pdev)
+static void moxa_pci_remove(struct pci_dev *pdev)
{
struct moxa_board_conf *brd = pci_get_drvdata(pdev);
diff --git a/drivers/tty/mxser.c b/drivers/tty/mxser.c
index 9de9753..4d0f7b9 100644
--- a/drivers/tty/mxser.c
+++ b/drivers/tty/mxser.c
@@ -2645,7 +2645,7 @@ err:
#endif
}
-static void __devexit mxser_remove(struct pci_dev *pdev)
+static void mxser_remove(struct pci_dev *pdev)
{
#ifdef CONFIG_PCI
struct mxser_board *brd = pci_get_drvdata(pdev);
diff --git a/drivers/tty/nozomi.c b/drivers/tty/nozomi.c
index e067e5f..711dcde 100644
--- a/drivers/tty/nozomi.c
+++ b/drivers/tty/nozomi.c
@@ -1504,7 +1504,7 @@ err:
return ret;
}
-static void __devexit tty_exit(struct nozomi *dc)
+static void tty_exit(struct nozomi *dc)
{
unsigned int i;
@@ -1525,7 +1525,7 @@ static void __devexit tty_exit(struct nozomi *dc)
}
/* Deallocate memory for one device */
-static void __devexit nozomi_card_exit(struct pci_dev *pdev)
+static void nozomi_card_exit(struct pci_dev *pdev)
{
int i;
struct ctrl_ul ctrl;
diff --git a/drivers/tty/serial/8250/8250.c b/drivers/tty/serial/8250/8250.c
index 40ba8cc..2af83a2 100644
--- a/drivers/tty/serial/8250/8250.c
+++ b/drivers/tty/serial/8250/8250.c
@@ -3035,7 +3035,7 @@ static int serial8250_probe(struct platform_device *dev)
/*
* Remove serial ports registered against a platform device.
*/
-static int __devexit serial8250_remove(struct platform_device *dev)
+static int serial8250_remove(struct platform_device *dev)
{
int i;
diff --git a/drivers/tty/serial/8250/8250_acorn.c b/drivers/tty/serial/8250/8250_acorn.c
index ed095eb..549aa07 100644
--- a/drivers/tty/serial/8250/8250_acorn.c
+++ b/drivers/tty/serial/8250/8250_acorn.c
@@ -80,7 +80,7 @@ serial_card_probe(struct expansion_card *ec, const struct ecard_id *id)
return 0;
}
-static void __devexit serial_card_remove(struct expansion_card *ec)
+static void serial_card_remove(struct expansion_card *ec)
{
struct serial_card_info *info = ecard_get_drvdata(ec);
int i;
diff --git a/drivers/tty/serial/8250/8250_dw.c b/drivers/tty/serial/8250/8250_dw.c
index 7664750..1d0dba2 100644
--- a/drivers/tty/serial/8250/8250_dw.c
+++ b/drivers/tty/serial/8250/8250_dw.c
@@ -152,7 +152,7 @@ static int dw8250_probe(struct platform_device *pdev)
return 0;
}
-static int __devexit dw8250_remove(struct platform_device *pdev)
+static int dw8250_remove(struct platform_device *pdev)
{
struct dw8250_data *data = platform_get_drvdata(pdev);
diff --git a/drivers/tty/serial/8250/8250_em.c b/drivers/tty/serial/8250/8250_em.c
index 430bf42..916cc19 100644
--- a/drivers/tty/serial/8250/8250_em.c
+++ b/drivers/tty/serial/8250/8250_em.c
@@ -152,7 +152,7 @@ static int serial8250_em_probe(struct platform_device *pdev)
return ret;
}
-static int __devexit serial8250_em_remove(struct platform_device *pdev)
+static int serial8250_em_remove(struct platform_device *pdev)
{
struct serial8250_em_priv *priv = platform_get_drvdata(pdev);
diff --git a/drivers/tty/serial/8250/8250_hp300.c b/drivers/tty/serial/8250/8250_hp300.c
index 2b94505..5bdaf27 100644
--- a/drivers/tty/serial/8250/8250_hp300.c
+++ b/drivers/tty/serial/8250/8250_hp300.c
@@ -38,7 +38,7 @@ static struct hp300_port *hp300_ports;
static int hpdca_init_one(struct dio_dev *d,
const struct dio_device_id *ent);
-static void __devexit hpdca_remove_one(struct dio_dev *d);
+static void hpdca_remove_one(struct dio_dev *d);
static struct dio_device_id hpdca_dio_tbl[] = {
{ DIO_ID_DCA0 },
@@ -288,7 +288,7 @@ static int __init hp300_8250_init(void)
}
#ifdef CONFIG_HPDCA
-static void __devexit hpdca_remove_one(struct dio_dev *d)
+static void hpdca_remove_one(struct dio_dev *d)
{
int line;
diff --git a/drivers/tty/serial/8250/8250_pci.c b/drivers/tty/serial/8250/8250_pci.c
index 3252c5d..97058c1 100644
--- a/drivers/tty/serial/8250/8250_pci.c
+++ b/drivers/tty/serial/8250/8250_pci.c
@@ -288,7 +288,7 @@ static int pci_plx9050_init(struct pci_dev *dev)
return 0;
}
-static void __devexit pci_plx9050_exit(struct pci_dev *dev)
+static void pci_plx9050_exit(struct pci_dev *dev)
{
u8 __iomem *p;
@@ -313,7 +313,7 @@ static void __devexit pci_plx9050_exit(struct pci_dev *dev)
#define NI8420_INT_ENABLE_REG 0x38
#define NI8420_INT_ENABLE_BIT 0x2000
-static void __devexit pci_ni8420_exit(struct pci_dev *dev)
+static void pci_ni8420_exit(struct pci_dev *dev)
{
void __iomem *p;
unsigned long base, len;
@@ -345,7 +345,7 @@ static void __devexit pci_ni8420_exit(struct pci_dev *dev)
#define MITE_LCIMR2_CLR_CPU_IE (1 << 30)
-static void __devexit pci_ni8430_exit(struct pci_dev *dev)
+static void pci_ni8430_exit(struct pci_dev *dev)
{
void __iomem *p;
unsigned long base, len;
@@ -422,7 +422,7 @@ static int sbs_init(struct pci_dev *dev)
* Disables the global interrupt of PMC-OctalPro
*/
-static void __devexit sbs_exit(struct pci_dev *dev)
+static void sbs_exit(struct pci_dev *dev)
{
u8 __iomem *p;
@@ -991,7 +991,7 @@ static int pci_ite887x_init(struct pci_dev *dev)
return ret;
}
-static void __devexit pci_ite887x_exit(struct pci_dev *dev)
+static void pci_ite887x_exit(struct pci_dev *dev)
{
u32 ioport;
/* the ioport is bit 0-15 in POSIO0R */
@@ -2988,7 +2988,7 @@ pciserial_init_one(struct pci_dev *dev, const struct pci_device_id *ent)
return rc;
}
-static void __devexit pciserial_remove_one(struct pci_dev *dev)
+static void pciserial_remove_one(struct pci_dev *dev)
{
struct serial_private *priv = pci_get_drvdata(dev);
diff --git a/drivers/tty/serial/8250/8250_pnp.c b/drivers/tty/serial/8250/8250_pnp.c
index 71daae9..35d9ab9 100644
--- a/drivers/tty/serial/8250/8250_pnp.c
+++ b/drivers/tty/serial/8250/8250_pnp.c
@@ -476,7 +476,7 @@ serial_pnp_probe(struct pnp_dev *dev, const struct pnp_device_id *dev_id)
return 0;
}
-static void __devexit serial_pnp_remove(struct pnp_dev *dev)
+static void serial_pnp_remove(struct pnp_dev *dev)
{
long line = (long)pnp_get_drvdata(dev);
if (line)
diff --git a/drivers/tty/serial/altera_jtaguart.c b/drivers/tty/serial/altera_jtaguart.c
index ef5c705..872f14a 100644
--- a/drivers/tty/serial/altera_jtaguart.c
+++ b/drivers/tty/serial/altera_jtaguart.c
@@ -453,7 +453,7 @@ static int altera_jtaguart_probe(struct platform_device *pdev)
return 0;
}
-static int __devexit altera_jtaguart_remove(struct platform_device *pdev)
+static int altera_jtaguart_remove(struct platform_device *pdev)
{
struct uart_port *port;
int i = pdev->id;
diff --git a/drivers/tty/serial/altera_uart.c b/drivers/tty/serial/altera_uart.c
index 066b503..684a080 100644
--- a/drivers/tty/serial/altera_uart.c
+++ b/drivers/tty/serial/altera_uart.c
@@ -598,7 +598,7 @@ static int altera_uart_probe(struct platform_device *pdev)
return 0;
}
-static int __devexit altera_uart_remove(struct platform_device *pdev)
+static int altera_uart_remove(struct platform_device *pdev)
{
struct uart_port *port = platform_get_drvdata(pdev);
diff --git a/drivers/tty/serial/ar933x_uart.c b/drivers/tty/serial/ar933x_uart.c
index fab0a91..af38b07 100644
--- a/drivers/tty/serial/ar933x_uart.c
+++ b/drivers/tty/serial/ar933x_uart.c
@@ -627,7 +627,7 @@ err_free_up:
return ret;
}
-static int __devexit ar933x_uart_remove(struct platform_device *pdev)
+static int ar933x_uart_remove(struct platform_device *pdev)
{
struct ar933x_uart_port *up;
diff --git a/drivers/tty/serial/arc_uart.c b/drivers/tty/serial/arc_uart.c
index 158d798..3e0b3fa 100644
--- a/drivers/tty/serial/arc_uart.c
+++ b/drivers/tty/serial/arc_uart.c
@@ -689,7 +689,7 @@ static int arc_serial_probe(struct platform_device *pdev)
return uart_add_one_port(&arc_uart_driver, &uart->port);
}
-static int __devexit arc_serial_remove(struct platform_device *pdev)
+static int arc_serial_remove(struct platform_device *pdev)
{
/* This will never be called */
return 0;
diff --git a/drivers/tty/serial/atmel_serial.c b/drivers/tty/serial/atmel_serial.c
index c1f6c0b..a6a90d2 100644
--- a/drivers/tty/serial/atmel_serial.c
+++ b/drivers/tty/serial/atmel_serial.c
@@ -1859,7 +1859,7 @@ err:
return ret;
}
-static int __devexit atmel_serial_remove(struct platform_device *pdev)
+static int atmel_serial_remove(struct platform_device *pdev)
{
struct uart_port *port = platform_get_drvdata(pdev);
struct atmel_uart_port *atmel_port = to_atmel_uart_port(port);
diff --git a/drivers/tty/serial/bcm63xx_uart.c b/drivers/tty/serial/bcm63xx_uart.c
index e54d170..c76a226 100644
--- a/drivers/tty/serial/bcm63xx_uart.c
+++ b/drivers/tty/serial/bcm63xx_uart.c
@@ -848,7 +848,7 @@ static int bcm_uart_probe(struct platform_device *pdev)
return 0;
}
-static int __devexit bcm_uart_remove(struct platform_device *pdev)
+static int bcm_uart_remove(struct platform_device *pdev)
{
struct uart_port *port;
diff --git a/drivers/tty/serial/bfin_sport_uart.c b/drivers/tty/serial/bfin_sport_uart.c
index a47e00b..f5d1173 100644
--- a/drivers/tty/serial/bfin_sport_uart.c
+++ b/drivers/tty/serial/bfin_sport_uart.c
@@ -850,7 +850,7 @@ out_error_free_mem:
return ret;
}
-static int __devexit sport_uart_remove(struct platform_device *pdev)
+static int sport_uart_remove(struct platform_device *pdev)
{
struct sport_uart_port *sport = platform_get_drvdata(pdev);
diff --git a/drivers/tty/serial/bfin_uart.c b/drivers/tty/serial/bfin_uart.c
index aa1f2f0f..5ac90c90 100644
--- a/drivers/tty/serial/bfin_uart.c
+++ b/drivers/tty/serial/bfin_uart.c
@@ -1390,7 +1390,7 @@ out_error_free_mem:
return ret;
}
-static int __devexit bfin_serial_remove(struct platform_device *pdev)
+static int bfin_serial_remove(struct platform_device *pdev)
{
struct bfin_serial_port *uart = platform_get_drvdata(pdev);
diff --git a/drivers/tty/serial/clps711x.c b/drivers/tty/serial/clps711x.c
index 006d283..3fd2526 100644
--- a/drivers/tty/serial/clps711x.c
+++ b/drivers/tty/serial/clps711x.c
@@ -491,7 +491,7 @@ err_out:
return ret;
}
-static int __devexit uart_clps711x_remove(struct platform_device *pdev)
+static int uart_clps711x_remove(struct platform_device *pdev)
{
struct clps711x_port *s = platform_get_drvdata(pdev);
int i;
diff --git a/drivers/tty/serial/cpm_uart/cpm_uart_core.c b/drivers/tty/serial/cpm_uart/cpm_uart_core.c
index de3f0f6..ad0caf1 100644
--- a/drivers/tty/serial/cpm_uart/cpm_uart_core.c
+++ b/drivers/tty/serial/cpm_uart/cpm_uart_core.c
@@ -1396,7 +1396,7 @@ static int cpm_uart_probe(struct platform_device *ofdev)
return uart_add_one_port(&cpm_reg, &pinfo->port);
}
-static int __devexit cpm_uart_remove(struct platform_device *ofdev)
+static int cpm_uart_remove(struct platform_device *ofdev)
{
struct uart_cpm_port *pinfo = dev_get_drvdata(&ofdev->dev);
return uart_remove_one_port(&cpm_reg, &pinfo->port);
diff --git a/drivers/tty/serial/efm32-uart.c b/drivers/tty/serial/efm32-uart.c
index 833c33a..a8cbb26 100644
--- a/drivers/tty/serial/efm32-uart.c
+++ b/drivers/tty/serial/efm32-uart.c
@@ -764,7 +764,7 @@ err_get_base:
return ret;
}
-static int __devexit efm32_uart_remove(struct platform_device *pdev)
+static int efm32_uart_remove(struct platform_device *pdev)
{
struct efm32_uart_port *efm_port = platform_get_drvdata(pdev);
diff --git a/drivers/tty/serial/icom.c b/drivers/tty/serial/icom.c
index 8c5ad58..72b6334 100644
--- a/drivers/tty/serial/icom.c
+++ b/drivers/tty/serial/icom.c
@@ -1596,7 +1596,7 @@ probe_exit0:
return retval;
}
-static void __devexit icom_remove(struct pci_dev *dev)
+static void icom_remove(struct pci_dev *dev)
{
struct icom_adapter *icom_adapter;
struct list_head *tmp;
diff --git a/drivers/tty/serial/jsm/jsm_driver.c b/drivers/tty/serial/jsm/jsm_driver.c
index 5b57c8e..a47d882 100644
--- a/drivers/tty/serial/jsm/jsm_driver.c
+++ b/drivers/tty/serial/jsm/jsm_driver.c
@@ -178,7 +178,7 @@ static int jsm_probe_one(struct pci_dev *pdev, const struct pci_device_id *ent)
return rc;
}
-static void __devexit jsm_remove_one(struct pci_dev *pdev)
+static void jsm_remove_one(struct pci_dev *pdev)
{
struct jsm_board *brd = pci_get_drvdata(pdev);
int i = 0;
diff --git a/drivers/tty/serial/lpc32xx_hs.c b/drivers/tty/serial/lpc32xx_hs.c
index 3651dab..0e86bff 100644
--- a/drivers/tty/serial/lpc32xx_hs.c
+++ b/drivers/tty/serial/lpc32xx_hs.c
@@ -740,7 +740,7 @@ static int serial_hs_lpc32xx_probe(struct platform_device *pdev)
/*
* Remove serial ports registered against a platform device.
*/
-static int __devexit serial_hs_lpc32xx_remove(struct platform_device *pdev)
+static int serial_hs_lpc32xx_remove(struct platform_device *pdev)
{
struct lpc32xx_hsuart_port *p = platform_get_drvdata(pdev);
diff --git a/drivers/tty/serial/max3100.c b/drivers/tty/serial/max3100.c
index 8dd6189..7ce3197 100644
--- a/drivers/tty/serial/max3100.c
+++ b/drivers/tty/serial/max3100.c
@@ -818,7 +818,7 @@ static int max3100_probe(struct spi_device *spi)
return 0;
}
-static int __devexit max3100_remove(struct spi_device *spi)
+static int max3100_remove(struct spi_device *spi)
{
struct max3100_port *s = dev_get_drvdata(&spi->dev);
int i;
diff --git a/drivers/tty/serial/max310x.c b/drivers/tty/serial/max310x.c
index 88a227f..3bb809d 100644
--- a/drivers/tty/serial/max310x.c
+++ b/drivers/tty/serial/max310x.c
@@ -1202,7 +1202,7 @@ err_out:
return ret;
}
-static int __devexit max310x_remove(struct spi_device *spi)
+static int max310x_remove(struct spi_device *spi)
{
struct device *dev = &spi->dev;
struct max310x_port *s = dev_get_drvdata(dev);
diff --git a/drivers/tty/serial/mcf.c b/drivers/tty/serial/mcf.c
index e2b93d2..fcd56ab 100644
--- a/drivers/tty/serial/mcf.c
+++ b/drivers/tty/serial/mcf.c
@@ -599,7 +599,7 @@ static int mcf_probe(struct platform_device *pdev)
/****************************************************************************/
-static int __devexit mcf_remove(struct platform_device *pdev)
+static int mcf_remove(struct platform_device *pdev)
{
struct uart_port *port;
int i;
diff --git a/drivers/tty/serial/mrst_max3110.c b/drivers/tty/serial/mrst_max3110.c
index 41497fd..58734d7 100644
--- a/drivers/tty/serial/mrst_max3110.c
+++ b/drivers/tty/serial/mrst_max3110.c
@@ -855,7 +855,7 @@ err_get_page:
return ret;
}
-static int __devexit serial_m3110_remove(struct spi_device *dev)
+static int serial_m3110_remove(struct spi_device *dev)
{
struct uart_max3110 *max = spi_get_drvdata(dev);
diff --git a/drivers/tty/serial/msm_serial.c b/drivers/tty/serial/msm_serial.c
index 033e0bc..95fd39b 100644
--- a/drivers/tty/serial/msm_serial.c
+++ b/drivers/tty/serial/msm_serial.c
@@ -917,7 +917,7 @@ static int __init msm_serial_probe(struct platform_device *pdev)
return uart_add_one_port(&msm_uart_driver, port);
}
-static int __devexit msm_serial_remove(struct platform_device *pdev)
+static int msm_serial_remove(struct platform_device *pdev)
{
struct msm_port *msm_port = platform_get_drvdata(pdev);
diff --git a/drivers/tty/serial/msm_serial_hs.c b/drivers/tty/serial/msm_serial_hs.c
index 02fb63e..1fa9228 100644
--- a/drivers/tty/serial/msm_serial_hs.c
+++ b/drivers/tty/serial/msm_serial_hs.c
@@ -401,7 +401,7 @@ static int msm_hs_request_port(struct uart_port *port)
return 0;
}
-static int __devexit msm_hs_remove(struct platform_device *pdev)
+static int msm_hs_remove(struct platform_device *pdev)
{
struct msm_hs_port *msm_uport;
diff --git a/drivers/tty/serial/mux.c b/drivers/tty/serial/mux.c
index 2783464..e2775b6 100644
--- a/drivers/tty/serial/mux.c
+++ b/drivers/tty/serial/mux.c
@@ -520,7 +520,7 @@ static int __init mux_probe(struct parisc_device *dev)
return 0;
}
-static int __devexit mux_remove(struct parisc_device *dev)
+static int mux_remove(struct parisc_device *dev)
{
int i, j;
int port_count = (long)dev_get_drvdata(&dev->dev);
diff --git a/drivers/tty/serial/mxs-auart.c b/drivers/tty/serial/mxs-auart.c
index ed09bd4..7631f3a 100644
--- a/drivers/tty/serial/mxs-auart.c
+++ b/drivers/tty/serial/mxs-auart.c
@@ -789,7 +789,7 @@ out:
return ret;
}
-static int __devexit mxs_auart_remove(struct platform_device *pdev)
+static int mxs_auart_remove(struct platform_device *pdev)
{
struct mxs_auart_port *s = platform_get_drvdata(pdev);
diff --git a/drivers/tty/serial/omap-serial.c b/drivers/tty/serial/omap-serial.c
index 1e988f7..23f797e 100644
--- a/drivers/tty/serial/omap-serial.c
+++ b/drivers/tty/serial/omap-serial.c
@@ -1510,7 +1510,7 @@ err_port_line:
return ret;
}
-static int __devexit serial_omap_remove(struct platform_device *dev)
+static int serial_omap_remove(struct platform_device *dev)
{
struct uart_omap_port *up = platform_get_drvdata(dev);
diff --git a/drivers/tty/serial/samsung.c b/drivers/tty/serial/samsung.c
index 6568beb..82b48f6 100644
--- a/drivers/tty/serial/samsung.c
+++ b/drivers/tty/serial/samsung.c
@@ -1256,7 +1256,7 @@ static int s3c24xx_serial_probe(struct platform_device *pdev)
return ret;
}
-static int __devexit s3c24xx_serial_remove(struct platform_device *dev)
+static int s3c24xx_serial_remove(struct platform_device *dev)
{
struct uart_port *port = s3c24xx_dev_to_port(&dev->dev);
diff --git a/drivers/tty/serial/sccnxp.c b/drivers/tty/serial/sccnxp.c
index 1ddace8..418b495 100644
--- a/drivers/tty/serial/sccnxp.c
+++ b/drivers/tty/serial/sccnxp.c
@@ -943,7 +943,7 @@ err_out:
return ret;
}
-static int __devexit sccnxp_remove(struct platform_device *pdev)
+static int sccnxp_remove(struct platform_device *pdev)
{
int i;
struct sccnxp_port *s = platform_get_drvdata(pdev);
diff --git a/drivers/tty/serial/serial_txx9.c b/drivers/tty/serial/serial_txx9.c
index 23b28b8..b52b21a 100644
--- a/drivers/tty/serial/serial_txx9.c
+++ b/drivers/tty/serial/serial_txx9.c
@@ -1078,7 +1078,7 @@ static int serial_txx9_register_port(struct uart_port *port)
* Remove one serial port. This may not be called from interrupt
* context. We hand the port back to the our control.
*/
-static void __devexit serial_txx9_unregister_port(int line)
+static void serial_txx9_unregister_port(int line)
{
struct uart_txx9_port *uart = &serial_txx9_ports[line];
@@ -1126,7 +1126,7 @@ static int serial_txx9_probe(struct platform_device *dev)
/*
* Remove serial ports registered against a platform device.
*/
-static int __devexit serial_txx9_remove(struct platform_device *dev)
+static int serial_txx9_remove(struct platform_device *dev)
{
int i;
@@ -1217,7 +1217,7 @@ pciserial_txx9_init_one(struct pci_dev *dev, const struct pci_device_id *ent)
return 0;
}
-static void __devexit pciserial_txx9_remove_one(struct pci_dev *dev)
+static void pciserial_txx9_remove_one(struct pci_dev *dev)
{
struct uart_txx9_port *up = pci_get_drvdata(dev);
diff --git a/drivers/tty/serial/sunhv.c b/drivers/tty/serial/sunhv.c
index cb58867..b9bf9c5 100644
--- a/drivers/tty/serial/sunhv.c
+++ b/drivers/tty/serial/sunhv.c
@@ -598,7 +598,7 @@ out_free_port:
return err;
}
-static int __devexit hv_remove(struct platform_device *dev)
+static int hv_remove(struct platform_device *dev)
{
struct uart_port *port = dev_get_drvdata(&dev->dev);
diff --git a/drivers/tty/serial/sunsab.c b/drivers/tty/serial/sunsab.c
index 9a13c54..bd8b3b6 100644
--- a/drivers/tty/serial/sunsab.c
+++ b/drivers/tty/serial/sunsab.c
@@ -1063,7 +1063,7 @@ out:
return err;
}
-static int __devexit sab_remove(struct platform_device *op)
+static int sab_remove(struct platform_device *op)
{
struct uart_sunsab_port *up = dev_get_drvdata(&op->dev);
diff --git a/drivers/tty/serial/sunsu.c b/drivers/tty/serial/sunsu.c
index 049bbc5..220da3f 100644
--- a/drivers/tty/serial/sunsu.c
+++ b/drivers/tty/serial/sunsu.c
@@ -1503,7 +1503,7 @@ out_unmap:
return err;
}
-static int __devexit su_remove(struct platform_device *op)
+static int su_remove(struct platform_device *op)
{
struct uart_sunsu_port *up = dev_get_drvdata(&op->dev);
bool kbdms = false;
diff --git a/drivers/tty/serial/sunzilog.c b/drivers/tty/serial/sunzilog.c
index 02c058f..aef4fab 100644
--- a/drivers/tty/serial/sunzilog.c
+++ b/drivers/tty/serial/sunzilog.c
@@ -1507,7 +1507,7 @@ static int zs_probe(struct platform_device *op)
return 0;
}
-static void __devexit zs_remove_one(struct uart_sunzilog_port *up)
+static void zs_remove_one(struct uart_sunzilog_port *up)
{
if (ZS_IS_KEYB(up) || ZS_IS_MOUSE(up)) {
#ifdef CONFIG_SERIO
@@ -1517,7 +1517,7 @@ static void __devexit zs_remove_one(struct uart_sunzilog_port *up)
uart_remove_one_port(&sunzilog_reg, &up->port);
}
-static int __devexit zs_remove(struct platform_device *op)
+static int zs_remove(struct platform_device *op)
{
struct uart_sunzilog_port *up = dev_get_drvdata(&op->dev);
struct zilog_layout __iomem *regs;
diff --git a/drivers/tty/serial/timbuart.c b/drivers/tty/serial/timbuart.c
index c833f50..5be0d68 100644
--- a/drivers/tty/serial/timbuart.c
+++ b/drivers/tty/serial/timbuart.c
@@ -492,7 +492,7 @@ err_mem:
return err;
}
-static int __devexit timbuart_remove(struct platform_device *dev)
+static int timbuart_remove(struct platform_device *dev)
{
struct timbuart_port *uart = platform_get_drvdata(dev);
diff --git a/drivers/tty/serial/uartlite.c b/drivers/tty/serial/uartlite.c
index 2d20b01..89eee43 100644
--- a/drivers/tty/serial/uartlite.c
+++ b/drivers/tty/serial/uartlite.c
@@ -542,7 +542,7 @@ static int ulite_assign(struct device *dev, int id, u32 base, int irq)
*
* @dev: pointer to device structure
*/
-static int __devexit ulite_release(struct device *dev)
+static int ulite_release(struct device *dev)
{
struct uart_port *port = dev_get_drvdata(dev);
int rc = 0;
@@ -593,7 +593,7 @@ static int ulite_probe(struct platform_device *pdev)
return ulite_assign(&pdev->dev, id, res->start, res2->start);
}
-static int __devexit ulite_remove(struct platform_device *pdev)
+static int ulite_remove(struct platform_device *pdev)
{
return ulite_release(&pdev->dev);
}
diff --git a/drivers/tty/serial/vr41xx_siu.c b/drivers/tty/serial/vr41xx_siu.c
index c046c99..62ee016 100644
--- a/drivers/tty/serial/vr41xx_siu.c
+++ b/drivers/tty/serial/vr41xx_siu.c
@@ -901,7 +901,7 @@ static int siu_probe(struct platform_device *dev)
return 0;
}
-static int __devexit siu_remove(struct platform_device *dev)
+static int siu_remove(struct platform_device *dev)
{
struct uart_port *port;
int i;
diff --git a/drivers/tty/serial/vt8500_serial.c b/drivers/tty/serial/vt8500_serial.c
index 80530c7..8fd1814 100644
--- a/drivers/tty/serial/vt8500_serial.c
+++ b/drivers/tty/serial/vt8500_serial.c
@@ -634,7 +634,7 @@ err:
return ret;
}
-static int __devexit vt8500_serial_remove(struct platform_device *pdev)
+static int vt8500_serial_remove(struct platform_device *pdev)
{
struct vt8500_port *vt8500_port = platform_get_drvdata(pdev);
diff --git a/drivers/tty/serial/xilinx_uartps.c b/drivers/tty/serial/xilinx_uartps.c
index 4e6380a..be8595a 100644
--- a/drivers/tty/serial/xilinx_uartps.c
+++ b/drivers/tty/serial/xilinx_uartps.c
@@ -1001,7 +1001,7 @@ static int xuartps_probe(struct platform_device *pdev)
*
* Returns 0 on success, negative error otherwise
**/
-static int __devexit xuartps_remove(struct platform_device *pdev)
+static int xuartps_remove(struct platform_device *pdev)
{
struct uart_port *port = dev_get_drvdata(&pdev->dev);
int rc = 0;
diff --git a/drivers/tty/synclink.c b/drivers/tty/synclink.c
index 87ba4ca..392ae00 100644
--- a/drivers/tty/synclink.c
+++ b/drivers/tty/synclink.c
@@ -8116,7 +8116,7 @@ static int synclink_init_one (struct pci_dev *dev,
return 0;
}
-static void __devexit synclink_remove_one (struct pci_dev *dev)
+static void synclink_remove_one (struct pci_dev *dev)
{
}
diff --git a/drivers/tty/synclink_gt.c b/drivers/tty/synclink_gt.c
index cdd1ba7..ff47071 100644
--- a/drivers/tty/synclink_gt.c
+++ b/drivers/tty/synclink_gt.c
@@ -3708,7 +3708,7 @@ static int init_one(struct pci_dev *dev,
return 0;
}
-static void __devexit remove_one(struct pci_dev *dev)
+static void remove_one(struct pci_dev *dev)
{
}
diff --git a/drivers/tty/synclinkmp.c b/drivers/tty/synclinkmp.c
index 17454da..5d34054b 100644
--- a/drivers/tty/synclinkmp.c
+++ b/drivers/tty/synclinkmp.c
@@ -5603,6 +5603,6 @@ static int synclinkmp_init_one (struct pci_dev *dev,
return 0;
}
-static void __devexit synclinkmp_remove_one (struct pci_dev *dev)
+static void synclinkmp_remove_one (struct pci_dev *dev)
{
}
--
1.8.0
^ permalink raw reply related
* Re: [PATCH v3 resubmit] Add support for new devices: Exar's XR17V35x family of multi-port PCIe UARTs
From: Greg Kroah-Hartman @ 2012-11-19 16:52 UTC (permalink / raw)
To: Matt Schulte; +Cc: Alan Cox, linux-serial
In-Reply-To: <CAJp1Oe4z5z8xfgUEBPkEsbc8PMZqwGPC-CY33kMvixnt8EMV0g@mail.gmail.com>
On Mon, Nov 19, 2012 at 10:27:19AM -0600, Matt Schulte wrote:
> On Mon, Nov 19, 2012 at 10:13 AM, Greg Kroah-Hartman <greg@kroah.com> wrote:
> > On Mon, Nov 19, 2012 at 09:34:36AM -0600, Matt Schulte wrote:
> >> On Mon, Nov 19, 2012 at 9:26 AM, Alan Cox <alan@lxorguk.ukuu.org.uk> wrote:
> >> > On Mon, 19 Nov 2012 09:12:04 -0600
> >> > Matt Schulte <matts@commtech-fastcom.com> wrote:
> >> >
> >> >> Add support for new devices: Exar's XR17V35x family of multi-port PCIe UARTs.
> >> >>
> >> >> Built against tty-next 54d5f88f25c38e5500a17b16240cb3775af00876
> >> >>
> >> >> Signed-off-by: Matt Schulte <matts@commtech-fastcom.com>
> >> >
> >> > Acked-by: Alan Cox <alan@linux.intel.com>
> >> >
> >> > Alan
> >>
> >> Now so that I am completely sure, because this has been Acked by Alan,
> >> this means that I can submit a patch that relies on this one?
> >
> > Yes, I'll queue this patch up in my tree in a bit, and you will get an
> > email saying where it is and what is going on with it.
> >
>
> Does that mean that if all goes well the patch could find itself into
> the rc for 3.8?
Yes.
> Or does it take longer than that?
Nope.
See the email you get for when the patch is applied for more
information. If you have questions about it after that, please let me
know.
thanks,
greg k-h
^ permalink raw reply
* Re: [PATCH v3 resubmit] Add support for new devices: Exar's XR17V35x family of multi-port PCIe UARTs
From: Matt Schulte @ 2012-11-19 16:27 UTC (permalink / raw)
To: Greg Kroah-Hartman; +Cc: Alan Cox, linux-serial
In-Reply-To: <20121119161305.GA1446@kroah.com>
On Mon, Nov 19, 2012 at 10:13 AM, Greg Kroah-Hartman <greg@kroah.com> wrote:
> On Mon, Nov 19, 2012 at 09:34:36AM -0600, Matt Schulte wrote:
>> On Mon, Nov 19, 2012 at 9:26 AM, Alan Cox <alan@lxorguk.ukuu.org.uk> wrote:
>> > On Mon, 19 Nov 2012 09:12:04 -0600
>> > Matt Schulte <matts@commtech-fastcom.com> wrote:
>> >
>> >> Add support for new devices: Exar's XR17V35x family of multi-port PCIe UARTs.
>> >>
>> >> Built against tty-next 54d5f88f25c38e5500a17b16240cb3775af00876
>> >>
>> >> Signed-off-by: Matt Schulte <matts@commtech-fastcom.com>
>> >
>> > Acked-by: Alan Cox <alan@linux.intel.com>
>> >
>> > Alan
>>
>> Now so that I am completely sure, because this has been Acked by Alan,
>> this means that I can submit a patch that relies on this one?
>
> Yes, I'll queue this patch up in my tree in a bit, and you will get an
> email saying where it is and what is going on with it.
>
Does that mean that if all goes well the patch could find itself into
the rc for 3.8? Or does it take longer than that?
Matt Schulte
^ permalink raw reply
* Re: [PATCH v3 resubmit] Add support for new devices: Exar's XR17V35x family of multi-port PCIe UARTs
From: Greg Kroah-Hartman @ 2012-11-19 16:13 UTC (permalink / raw)
To: Matt Schulte; +Cc: Alan Cox, linux-serial
In-Reply-To: <CAJp1Oe4SKUh6w6q==pOZy-S3Xqd2LoE3jOi-3-MupxQwjOhuFg@mail.gmail.com>
On Mon, Nov 19, 2012 at 09:34:36AM -0600, Matt Schulte wrote:
> On Mon, Nov 19, 2012 at 9:26 AM, Alan Cox <alan@lxorguk.ukuu.org.uk> wrote:
> > On Mon, 19 Nov 2012 09:12:04 -0600
> > Matt Schulte <matts@commtech-fastcom.com> wrote:
> >
> >> Add support for new devices: Exar's XR17V35x family of multi-port PCIe UARTs.
> >>
> >> Built against tty-next 54d5f88f25c38e5500a17b16240cb3775af00876
> >>
> >> Signed-off-by: Matt Schulte <matts@commtech-fastcom.com>
> >
> > Acked-by: Alan Cox <alan@linux.intel.com>
> >
> > Alan
>
> Now so that I am completely sure, because this has been Acked by Alan,
> this means that I can submit a patch that relies on this one?
Yes, I'll queue this patch up in my tree in a bit, and you will get an
email saying where it is and what is going on with it.
thanks,
greg k-h
^ permalink raw reply
* Re: [REPOST-v2] sched: Prevent wakeup to enter critical section needlessly
From: Oleg Nesterov @ 2012-11-19 15:49 UTC (permalink / raw)
To: Ivo Sieben
Cc: linux-kernel, Andi Kleen, Peter Zijlstra, Ingo Molnar,
linux-serial, Alan Cox, Greg KH
In-Reply-To: <CAMSQXEF9BGBVRRtuz88XFqVmPBdbWisepq4qjah3vM05_7hztw@mail.gmail.com>
On 11/19, Ivo Sieben wrote:
>
> Hi
>
> 2012/11/19 Oleg Nesterov <oleg@redhat.com>:
> >
> > I am wondering if it makes sense unconditionally. A lot of callers do
> >
> > if (waitqueue_active(q))
> > wake_up(...);
> >
> > this patch makes the optimization above pointless and adds mb().
> >
> >
> > But I won't argue.
> >
> > Oleg.
> >
>
> This patch solved an issue for me that I had with the TTY line
> discipline idle handling:
> Testing on a PREEMPT_RT system with TTY serial communication. Each
> time the TTY line discipline is dereferenced the Idle handling wait
> queue is woken up (see function put_ldisc in /drivers/tty/tty_ldisc.c)
> However line discipline idle handling is not used very often so the
> wait queue is empty most of the time. But still the wake_up() function
> enters the critical section guarded by spin locks. This causes
> additional scheduling overhead when a lower priority thread has
> control of that same lock.
>
> The /drivers/tty/tty_ldisc.c did not use the waitqueue_active() call
> to check if the waitqueue was filled.... maybe I should solve this
> problem the other way around: and make tty_ldisc.c first do the
> waitqueue_active() call?
IMHO yes...
Because on a second thought I suspect this change is wrong.
Just for example, please look at kauditd_thread(). It does
set_current_state(TASK_INTERRUPTIBLE);
add_wait_queue(&kauditd_wait, &wait);
if (!CONDITION) // <-- LOAD
schedule();
And the last LOAD can leak into the critical section protected by
wait_queue_head_t->lock, and it can be reordered with list_add()
inside this critical section. In this case we can race with wake_up()
unless it takes the same lock.
Oleg.
^ permalink raw reply
* Re: [PATCH v3 resubmit] Add support for new devices: Exar's XR17V35x family of multi-port PCIe UARTs
From: Matt Schulte @ 2012-11-19 15:34 UTC (permalink / raw)
To: Alan Cox; +Cc: linux-serial, Greg Kroah-Hartman
In-Reply-To: <20121119152619.3752b591@pyramind.ukuu.org.uk>
On Mon, Nov 19, 2012 at 9:26 AM, Alan Cox <alan@lxorguk.ukuu.org.uk> wrote:
> On Mon, 19 Nov 2012 09:12:04 -0600
> Matt Schulte <matts@commtech-fastcom.com> wrote:
>
>> Add support for new devices: Exar's XR17V35x family of multi-port PCIe UARTs.
>>
>> Built against tty-next 54d5f88f25c38e5500a17b16240cb3775af00876
>>
>> Signed-off-by: Matt Schulte <matts@commtech-fastcom.com>
>
> Acked-by: Alan Cox <alan@linux.intel.com>
>
> Alan
Now so that I am completely sure, because this has been Acked by Alan,
this means that I can submit a patch that relies on this one?
Matt
^ permalink raw reply
* Re: [REPOST-v2] sched: Prevent wakeup to enter critical section needlessly
From: Ivo Sieben @ 2012-11-19 15:34 UTC (permalink / raw)
To: Oleg Nesterov
Cc: linux-kernel, Andi Kleen, Peter Zijlstra, Ingo Molnar,
linux-serial, Alan Cox, Greg KH
In-Reply-To: <20121119151050.GA4270@redhat.com>
Hi
2012/11/19 Oleg Nesterov <oleg@redhat.com>:
>
> I am wondering if it makes sense unconditionally. A lot of callers do
>
> if (waitqueue_active(q))
> wake_up(...);
>
> this patch makes the optimization above pointless and adds mb().
>
>
> But I won't argue.
>
> Oleg.
>
This patch solved an issue for me that I had with the TTY line
discipline idle handling:
Testing on a PREEMPT_RT system with TTY serial communication. Each
time the TTY line discipline is dereferenced the Idle handling wait
queue is woken up (see function put_ldisc in /drivers/tty/tty_ldisc.c)
However line discipline idle handling is not used very often so the
wait queue is empty most of the time. But still the wake_up() function
enters the critical section guarded by spin locks. This causes
additional scheduling overhead when a lower priority thread has
control of that same lock.
The /drivers/tty/tty_ldisc.c did not use the waitqueue_active() call
to check if the waitqueue was filled.... maybe I should solve this
problem the other way around: and make tty_ldisc.c first do the
waitqueue_active() call?
Regards,
Ivo
^ permalink raw reply
* Re: [PATCH v3 resubmit] Add support for new devices: Exar's XR17V35x family of multi-port PCIe UARTs
From: Alan Cox @ 2012-11-19 15:26 UTC (permalink / raw)
To: Matt Schulte; +Cc: linux-serial, Greg Kroah-Hartman
In-Reply-To: <CAJp1Oe4vSwBgVe_bOV00ojvYy2fd7YWNfrEfJ+de_JSiyb7AHA@mail.gmail.com>
On Mon, 19 Nov 2012 09:12:04 -0600
Matt Schulte <matts@commtech-fastcom.com> wrote:
> Add support for new devices: Exar's XR17V35x family of multi-port PCIe UARTs.
>
> Built against tty-next 54d5f88f25c38e5500a17b16240cb3775af00876
>
> Signed-off-by: Matt Schulte <matts@commtech-fastcom.com>
Acked-by: Alan Cox <alan@linux.intel.com>
Alan
^ permalink raw reply
* [PATCH v3 resubmit] Add support for new devices: Exar's XR17V35x family of multi-port PCIe UARTs
From: Matt Schulte @ 2012-11-19 15:12 UTC (permalink / raw)
To: linux-serial; +Cc: Alan Cox, Greg Kroah-Hartman, Theodore Ts'o
In-Reply-To: <CAJp1Oe4Xh6SDQc43hue5qanm7G5Lw9vMdv-+5nRQ_S+RPpRALQ@mail.gmail.com>
Add support for new devices: Exar's XR17V35x family of multi-port PCIe UARTs.
Built against tty-next 54d5f88f25c38e5500a17b16240cb3775af00876
Signed-off-by: Matt Schulte <matts@commtech-fastcom.com>
---
v3: Moved overriding of handle_irq to serial8250_config_port
v2: Moved extra interrupt handling to its own custom handle_irq
v1: Hopefully if this gets accepted I will be able to submit an additional
patch to add support for my company's PCIe cards that use these
UARTs.
---
>From 925c0b394f0ec983622d964d3072fa574f82ad6a Mon Sep 17 00:00:00 2001
From: Matt Schulte <matts@commtech-fastcom.com>
Date: Thu, 15 Nov 2012 16:56:26 -0600
Subject: [PATCH] Add support for new devices: Exar's XR17V35x family
of multi-port PCIe UARTs
Signed-off-by: Matt Schulte <matts@commtech-fastcom.com>
---
drivers/tty/serial/8250/8250.c | 71 ++++++++++++++++++++++++++
drivers/tty/serial/8250/8250_pci.c | 96 ++++++++++++++++++++++++++++++++++++
include/linux/pci_ids.h | 3 +
include/uapi/linux/serial_core.h | 3 +-
include/uapi/linux/serial_reg.h | 6 ++
5 files changed, 178 insertions(+), 1 deletions(-)
diff --git a/drivers/tty/serial/8250/8250.c b/drivers/tty/serial/8250/8250.c
index 5ccbd90..df7f433 100644
--- a/drivers/tty/serial/8250/8250.c
+++ b/drivers/tty/serial/8250/8250.c
@@ -282,6 +282,15 @@ static const struct serial8250_config uart_config[] = {
.fcr = UART_FCR_ENABLE_FIFO | UART_FCR_R_TRIG_10,
.flags = UART_CAP_FIFO | UART_CAP_AFE | UART_CAP_EFR,
},
+ [PORT_XR17V35X] = {
+ .name = "XR17V35X",
+ .fifo_size = 256,
+ .tx_loadsz = 256,
+ .fcr = UART_FCR_ENABLE_FIFO | UART_FCR_R_TRIG_11 |
+ UART_FCR_T_TRIG_11,
+ .flags = UART_CAP_FIFO | UART_CAP_AFE | UART_CAP_EFR |
+ UART_CAP_SLEEP,
+ },
[PORT_LPC3220] = {
.name = "LPC3220",
.fifo_size = 64,
@@ -455,6 +464,7 @@ static void io_serial_out(struct uart_port *p, int
offset, int value)
}
static int serial8250_default_handle_irq(struct uart_port *port);
+static int exar_handle_irq(struct uart_port *port);
static void set_io_from_upio(struct uart_port *p)
{
@@ -574,6 +584,18 @@ EXPORT_SYMBOL_GPL(serial8250_clear_and_reinit_fifos);
*/
static void serial8250_set_sleep(struct uart_8250_port *p, int sleep)
{
+ /*
+ * Exar UARTs have a SLEEP register that enables or disables
+ * each UART to enter sleep mode separately. On the XR17V35x the
+ * register is accessible to each UART at the UART_EXAR_SLEEP
+ * offset but the UART channel may only write to the corresponding
+ * bit.
+ */
+ if (p->port.type == PORT_XR17V35X) {
+ serial_out(p, UART_EXAR_SLEEP, 0xff);
+ return;
+ }
+
if (p->capabilities & UART_CAP_SLEEP) {
if (p->capabilities & UART_CAP_EFR) {
serial_out(p, UART_LCR, UART_LCR_CONF_MODE_B);
@@ -882,6 +904,27 @@ static void autoconfig_16550a(struct uart_8250_port *up)
up->capabilities |= UART_CAP_FIFO;
/*
+ * XR17V35x UARTs have an extra divisor register, DLD
+ * that gets enabled with when DLAB is set which will
+ * cause the device to incorrectly match and assign
+ * port type to PORT_16650. The EFR for this UART is
+ * found at offset 0x09. Instead check the Deice ID (DVID)
+ * register for a 2, 4 or 8 port UART.
+ */
+ status1 = serial_in(up, UART_EXAR_DVID);
+ if (status1 == 0x82 || status1 == 0x84 || status1 == 0x88) {
+ if (up->port.flags & UPF_EXAR_EFR) {
+ DEBUG_AUTOCONF("Exar XR17V35x ");
+ up->port.type = PORT_XR17V35X;
+ up->capabilities |= UART_CAP_AFE | UART_CAP_EFR |
+ UART_CAP_SLEEP;
+
+ return;
+ }
+
+ }
+
+ /*
* Check for presence of the EFR when DLAB is set.
* Only ST16C650V1 UARTs pass this test.
*/
@@ -1516,6 +1559,30 @@ static int serial8250_default_handle_irq(struct
uart_port *port)
}
/*
+ * These Exar UARTs have an extra interrupt indicator that could
+ * fire for a few unimplemented interrupts. One of which is a
+ * wakeup event when coming out of sleep. Put this here just
+ * to be on the safe side that these interrupts don't go unhandled.
+ */
+static int exar_handle_irq(struct uart_port *port)
+{
+ unsigned char int0, int1, int2, int3;
+ unsigned int iir = serial_port_in(port, UART_IIR);
+ int ret;
+
+ ret = serial8250_handle_irq(port, iir);
+
+ if (port->type == PORT_XR17V35X) {
+ int0 = serial_port_in(port, 0x80);
+ int1 = serial_port_in(port, 0x81);
+ int2 = serial_port_in(port, 0x82);
+ int3 = serial_port_in(port, 0x83);
+ }
+
+ return ret;
+}
+
+/*
* This is the serial driver's interrupt routine.
*
* Arjan thinks the old way was overly complex, so it got simplified.
@@ -2614,6 +2681,10 @@ static void serial8250_config_port(struct
uart_port *port, int flags)
serial8250_release_rsa_resource(up);
if (port->type == PORT_UNKNOWN)
serial8250_release_std_resource(up);
+
+ /* Fixme: probably not the best place for this */
+ if (port->type == PORT_XR17V35X)
+ port->handle_irq = exar_handle_irq;
}
static int
diff --git a/drivers/tty/serial/8250/8250_pci.c
b/drivers/tty/serial/8250/8250_pci.c
index 508063b..c422871 100644
--- a/drivers/tty/serial/8250/8250_pci.c
+++ b/drivers/tty/serial/8250/8250_pci.c
@@ -1165,6 +1165,39 @@ pci_xr17c154_setup(struct serial_private *priv,
}
static int
+pci_xr17v35x_setup(struct serial_private *priv,
+ const struct pciserial_board *board,
+ struct uart_8250_port *port, int idx)
+{
+ u8 __iomem *p;
+
+ p = pci_ioremap_bar(priv->dev, 0);
+
+ port->port.flags |= UPF_EXAR_EFR;
+
+ /*
+ * Setup Multipurpose Input/Output pins.
+ */
+ if (idx == 0) {
+ writeb(0x00, p + 0x8f); /*MPIOINT[7:0]*/
+ writeb(0x00, p + 0x90); /*MPIOLVL[7:0]*/
+ writeb(0x00, p + 0x91); /*MPIO3T[7:0]*/
+ writeb(0x00, p + 0x92); /*MPIOINV[7:0]*/
+ writeb(0x00, p + 0x93); /*MPIOSEL[7:0]*/
+ writeb(0x00, p + 0x94); /*MPIOOD[7:0]*/
+ writeb(0x00, p + 0x95); /*MPIOINT[15:8]*/
+ writeb(0x00, p + 0x96); /*MPIOLVL[15:8]*/
+ writeb(0x00, p + 0x97); /*MPIO3T[15:8]*/
+ writeb(0x00, p + 0x98); /*MPIOINV[15:8]*/
+ writeb(0x00, p + 0x99); /*MPIOSEL[15:8]*/
+ writeb(0x00, p + 0x9a); /*MPIOOD[15:8]*/
+ }
+ iounmap(p);
+
+ return pci_default_setup(priv, board, port, idx);
+}
+
+static int
pci_wch_ch353_setup(struct serial_private *priv,
const struct pciserial_board *board,
struct uart_8250_port *port, int idx)
@@ -1622,6 +1655,27 @@ static struct pci_serial_quirk
pci_serial_quirks[] __refdata = {
.subdevice = PCI_ANY_ID,
.setup = pci_xr17c154_setup,
},
+ {
+ .vendor = PCI_VENDOR_ID_EXAR,
+ .device = PCI_DEVICE_ID_EXAR_XR17V352,
+ .subvendor = PCI_ANY_ID,
+ .subdevice = PCI_ANY_ID,
+ .setup = pci_xr17v35x_setup,
+ },
+ {
+ .vendor = PCI_VENDOR_ID_EXAR,
+ .device = PCI_DEVICE_ID_EXAR_XR17V354,
+ .subvendor = PCI_ANY_ID,
+ .subdevice = PCI_ANY_ID,
+ .setup = pci_xr17v35x_setup,
+ },
+ {
+ .vendor = PCI_VENDOR_ID_EXAR,
+ .device = PCI_DEVICE_ID_EXAR_XR17V358,
+ .subvendor = PCI_ANY_ID,
+ .subdevice = PCI_ANY_ID,
+ .setup = pci_xr17v35x_setup,
+ },
/*
* Xircom cards
*/
@@ -1962,6 +2016,9 @@ enum pci_board_num_t {
pbn_exar_XR17C152,
pbn_exar_XR17C154,
pbn_exar_XR17C158,
+ pbn_exar_XR17V352,
+ pbn_exar_XR17V354,
+ pbn_exar_XR17V358,
pbn_exar_ibm_saturn,
pbn_pasemi_1682M,
pbn_ni8430_2,
@@ -2580,6 +2637,30 @@ static struct pciserial_board pci_boards[]
__devinitdata = {
.base_baud = 921600,
.uart_offset = 0x200,
},
+ [pbn_exar_XR17V352] = {
+ .flags = FL_BASE0,
+ .num_ports = 2,
+ .base_baud = 7812500,
+ .uart_offset = 0x400,
+ .reg_shift = 0,
+ .first_offset = 0,
+ },
+ [pbn_exar_XR17V354] = {
+ .flags = FL_BASE0,
+ .num_ports = 4,
+ .base_baud = 7812500,
+ .uart_offset = 0x400,
+ .reg_shift = 0,
+ .first_offset = 0,
+ },
+ [pbn_exar_XR17V358] = {
+ .flags = FL_BASE0,
+ .num_ports = 8,
+ .base_baud = 7812500,
+ .uart_offset = 0x400,
+ .reg_shift = 0,
+ .first_offset = 0,
+ },
[pbn_exar_ibm_saturn] = {
.flags = FL_BASE0,
.num_ports = 1,
@@ -3826,6 +3907,21 @@ static struct pci_device_id serial_pci_tbl[] = {
PCI_ANY_ID, PCI_ANY_ID,
0,
0, pbn_exar_XR17C158 },
+ /*
+ * Exar Corp. XR17V35[248] Dual/Quad/Octal PCIe UARTs
+ */
+ { PCI_VENDOR_ID_EXAR, PCI_DEVICE_ID_EXAR_XR17V352,
+ PCI_ANY_ID, PCI_ANY_ID,
+ 0,
+ 0, pbn_exar_XR17V352 },
+ { PCI_VENDOR_ID_EXAR, PCI_DEVICE_ID_EXAR_XR17V354,
+ PCI_ANY_ID, PCI_ANY_ID,
+ 0,
+ 0, pbn_exar_XR17V354 },
+ { PCI_VENDOR_ID_EXAR, PCI_DEVICE_ID_EXAR_XR17V358,
+ PCI_ANY_ID, PCI_ANY_ID,
+ 0,
+ 0, pbn_exar_XR17V358 },
/*
* Topic TP560 Data/Fax/Voice 56k modem (reported by Evan Clarke)
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h
index 9d36b82..0199a7a 100644
--- a/include/linux/pci_ids.h
+++ b/include/linux/pci_ids.h
@@ -1985,6 +1985,9 @@
#define PCI_DEVICE_ID_EXAR_XR17C152 0x0152
#define PCI_DEVICE_ID_EXAR_XR17C154 0x0154
#define PCI_DEVICE_ID_EXAR_XR17C158 0x0158
+#define PCI_DEVICE_ID_EXAR_XR17V352 0x0352
+#define PCI_DEVICE_ID_EXAR_XR17V354 0x0354
+#define PCI_DEVICE_ID_EXAR_XR17V358 0x0358
#define PCI_VENDOR_ID_MICROGATE 0x13c0
#define PCI_DEVICE_ID_MICROGATE_USC 0x0010
diff --git a/include/uapi/linux/serial_core.h b/include/uapi/linux/serial_core.h
index ebcc73f..78f99d9 100644
--- a/include/uapi/linux/serial_core.h
+++ b/include/uapi/linux/serial_core.h
@@ -49,7 +49,8 @@
#define PORT_XR17D15X 21 /* Exar XR17D15x UART */
#define PORT_LPC3220 22 /* NXP LPC32xx SoC "Standard" UART */
#define PORT_8250_CIR 23 /* CIR infrared port, has its own driver */
-#define PORT_MAX_8250 23 /* max port ID */
+#define PORT_XR17V35X 24 /* Exar XR17V35x UARTs */
+#define PORT_MAX_8250 24 /* max port ID */
/*
* ARM specific type numbers. These are not currently guaranteed
diff --git a/include/uapi/linux/serial_reg.h b/include/uapi/linux/serial_reg.h
index 5ed325e..d0b4760 100644
--- a/include/uapi/linux/serial_reg.h
+++ b/include/uapi/linux/serial_reg.h
@@ -367,5 +367,11 @@
#define UART_OMAP_MDR1_CIR_MODE 0x06 /* CIR mode */
#define UART_OMAP_MDR1_DISABLE 0x07 /* Disable (default state) */
+/*
+ * These are definitions for the XR17V35X and XR17D15X
+ */
+#define UART_EXAR_SLEEP 0x8b /* Sleep mode */
+#define UART_EXAR_DVID 0x8d /* Device identification */
+
#endif /* _LINUX_SERIAL_REG_H */
--
1.7.2.5
^ permalink raw reply related
* Re: [REPOST-v2] sched: Prevent wakeup to enter critical section needlessly
From: Oleg Nesterov @ 2012-11-19 15:10 UTC (permalink / raw)
To: Ivo Sieben
Cc: linux-kernel, Andi Kleen, Peter Zijlstra, Ingo Molnar,
linux-serial, Alan Cox, Greg KH
In-Reply-To: <1353310211-3011-1-git-send-email-meltedpianoman@gmail.com>
On 11/19, Ivo Sieben wrote:
>
> --- a/kernel/sched/core.c
> +++ b/kernel/sched/core.c
> @@ -3090,9 +3090,22 @@ void __wake_up(wait_queue_head_t *q, unsigned int mode,
> {
> unsigned long flags;
>
> - spin_lock_irqsave(&q->lock, flags);
> - __wake_up_common(q, mode, nr_exclusive, 0, key);
> - spin_unlock_irqrestore(&q->lock, flags);
> + /*
> + * We check for list emptiness outside the lock. This prevents the wake
> + * up to enter the critical section needlessly when the task list is
> + * empty.
> + *
> + * Placed a full memory barrier before checking list emptiness to make
> + * 100% sure this function sees an up-to-date list administration.
> + * Note that other code that manipulates the list uses a spin_lock and
> + * therefore doesn't need additional memory barriers.
> + */
> + smp_mb();
> + if (!list_empty(&q->task_list)) {
waitqueue_active() ?
> + spin_lock_irqsave(&q->lock, flags);
> + __wake_up_common(q, mode, nr_exclusive, 0, key);
> + spin_unlock_irqrestore(&q->lock, flags);
> + }
I am wondering if it makes sense unconditionally. A lot of callers do
if (waitqueue_active(q))
wake_up(...);
this patch makes the optimization above pointless and adds mb().
But I won't argue.
Oleg.
^ permalink raw reply
* Re: [PATCH] TTY: serial 8250: Support MCR CLK_SEL bit.
From: Alan Cox @ 2012-11-19 12:00 UTC (permalink / raw)
To: Martin Fuzzey; +Cc: Greg Kroah-Hartman, linux-serial
In-Reply-To: <20121119085421.315.47347.stgit@localhost>
> * Allows the CLK_SEL bit to be forced to /1, /4 or left as is.
This seems to be the wrong place to set such stuff. The kernel knows what
speed is selected and therefore what clock would be best.
Having a clocksel (and probably an of value indicating which type of
clock sel) is a good thing, but it also ought to be set based on the
requested baud rate, so a custom set_termios would be better.
That would also handle serial console, and suspend/resume without other
tweaks as far as I can see.
It also seems some devices use different clksel algorithms so rather than
a CAP_CLKSEL flag we probably need to key it off the uart type.
> static void serial8250_set_sleep(struct uart_8250_port *p, int sleep)
> {
> if (p->capabilities & UART_CAP_SLEEP) {
> - if (p->capabilities & UART_CAP_EFR) {
> - serial_out(p, UART_LCR, UART_LCR_CONF_MODE_B);
> - serial_out(p, UART_EFR, UART_EFR_ECB);
> - serial_out(p, UART_LCR, 0);
> - }
> + serial8250_enable_extended(p);
> serial_out(p, UART_IER, sleep ? UART_IERX_SLEEP : 0);
This seems wrong if theere is no EFR
> +static int serial8250_configure_clock_predivisor(struct uart_8250_port *p)
> +{
Ought to be named to reflect that it appears to be exar specific
Architecturally the patch seems wrong though. I'd expect a device with a
clock predivisor to be treated as a device with a wider clock range and
just handle it when the speed is set. Eg wrapping set_termios or adding a
->select_clock(port, bitrate);
helper.
Alan
^ permalink raw reply
* Re: [REPOST-v2] sched: Prevent wakeup to enter critical section needlessly
From: Preeti U Murthy @ 2012-11-19 10:20 UTC (permalink / raw)
To: Ivo Sieben
Cc: linux-kernel, Andi Kleen, Oleg Nesterov, Peter Zijlstra,
Ingo Molnar, linux-serial, Alan Cox, Greg KH
In-Reply-To: <1353310211-3011-1-git-send-email-meltedpianoman@gmail.com>
Hi Ivo,
On 11/19/2012 01:00 PM, Ivo Sieben wrote:
> Check the waitqueue task list to be non empty before entering the critical
> section. This prevents locking the spin lock needlessly in case the queue
> was empty, and therefor also prevent scheduling overhead on a PREEMPT_RT
> system.
>
> Signed-off-by: Ivo Sieben <meltedpianoman@gmail.com>
> ---
>
> a second repost of this patch v2: Can anyone respond?
> Did I apply the memory barrier correct?
>
> v2:
> - We don't need the "careful" list empty, a normal list empty is sufficient:
> if you miss an update it was just as it happened a little later.
> - Because of memory ordering problems we can observe an unupdated list
> administration. This can cause an wait_event-like code to miss an event.
> Adding a memory barrier befor checking the list to be empty will guarantee we
> evaluate a 100% updated list adminsitration.
>
> kernel/sched/core.c | 19 ++++++++++++++++---
> 1 file changed, 16 insertions(+), 3 deletions(-)
>
> diff --git a/kernel/sched/core.c b/kernel/sched/core.c
> index 2d8927f..168a9b2 100644
> --- a/kernel/sched/core.c
> +++ b/kernel/sched/core.c
> @@ -3090,9 +3090,22 @@ void __wake_up(wait_queue_head_t *q, unsigned int mode,
> {
> unsigned long flags;
>
> - spin_lock_irqsave(&q->lock, flags);
> - __wake_up_common(q, mode, nr_exclusive, 0, key);
> - spin_unlock_irqrestore(&q->lock, flags);
> + /*
> + * We check for list emptiness outside the lock. This prevents the wake
> + * up to enter the critical section needlessly when the task list is
> + * empty.
> + *
> + * Placed a full memory barrier before checking list emptiness to make
> + * 100% sure this function sees an up-to-date list administration.
> + * Note that other code that manipulates the list uses a spin_lock and
> + * therefore doesn't need additional memory barriers.
> + */
> + smp_mb();
> + if (!list_empty(&q->task_list)) {
> + spin_lock_irqsave(&q->lock, flags);
> + __wake_up_common(q, mode, nr_exclusive, 0, key);
> + spin_unlock_irqrestore(&q->lock, flags);
> + }
> }
> EXPORT_SYMBOL(__wake_up);
>
>
Looks good to me.
Reviewed-by: Preeti U Murthy <preeti@linux.vnet.ibm.com>
Regards
Preeti U Murthy
^ permalink raw reply
* [PATCH] serial: ifx6x60: ifx_spi_write don't need to do mrdy_assert when fifo is not empty
From: Jun Chen @ 2012-11-19 10:07 UTC (permalink / raw)
To: Greg KH; +Cc: Alan Cox, Bi Chao, Jun Chen, Linux Kernel, serial
This patch check whether the fifo lenth is empty before writing new data to fifo.If condition
is true,ifx_spi_write need to trigger one mrdy_assert. If condition is false,the mrdy_assert
will be trigger by the next ifx_spi_io.
Cc: Bi Chao <chao.bi@intel.com>
Signed-off-by: Chen Jun <jun.d.chen@intel.com>
---
drivers/tty/serial/ifx6x60.c | 14 +++++++++++---
1 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/drivers/tty/serial/ifx6x60.c b/drivers/tty/serial/ifx6x60.c
index 5b9bc19..aa01989 100644
--- a/drivers/tty/serial/ifx6x60.c
+++ b/drivers/tty/serial/ifx6x60.c
@@ -469,9 +469,17 @@ static int ifx_spi_write(struct tty_struct *tty, const unsigned char *buf,
{
struct ifx_spi_device *ifx_dev = tty->driver_data;
unsigned char *tmp_buf = (unsigned char *)buf;
- int tx_count = kfifo_in_locked(&ifx_dev->tx_fifo, tmp_buf, count,
- &ifx_dev->fifo_lock);
- mrdy_assert(ifx_dev);
+ int tx_count;
+ unsigned long flags;
+ bool is_fifo_empty;
+
+ spin_lock_irqsave(&ifx_dev->fifo_lock, flags);
+ is_fifo_empty = kfifo_is_empty(&ifx_dev->tx_fifo);
+ tx_count = kfifo_in(&ifx_dev->tx_fifo, tmp_buf, count);
+ spin_unlock_irqrestore(&ifx_dev->fifo_lock, flags);
+ if (is_fifo_empty)
+ mrdy_assert(ifx_dev);
+
return tx_count;
}
--
1.7.4.1
^ permalink raw reply related
* Re: [PATCH 1/3] OF: Add helper for matching against linux,stdout-path
From: Jean-Christophe PLAGNIOL-VILLARD @ 2012-11-19 9:52 UTC (permalink / raw)
To: Sascha Hauer
Cc: linux-serial, Greg Kroah-Hartman, devicetree-discuss,
linux-kernel, kernel, linux-arm-kernel, Alan Cox
In-Reply-To: <1352971866-540-2-git-send-email-s.hauer@pengutronix.de>
On 10:31 Thu 15 Nov , Sascha Hauer wrote:
> devicetrees may have a linux,stdout-path property in the chosen
> node describing the console device. This adds a helper function
> to match a device against this property so a driver can call
> add_preferred_console for a matching device.
I like it but I've an issue with it I cannot specify the option for
as example I need to set the uart at 38400n8 or 115200n8 regarless of wath the
booloader did
Best Regards,
J.
>
> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
> ---
> drivers/of/base.c | 28 ++++++++++++++++++++++++++++
> include/linux/of.h | 7 +++++++
> 2 files changed, 35 insertions(+)
>
> diff --git a/drivers/of/base.c b/drivers/of/base.c
> index af3b22a..737feb8 100644
> --- a/drivers/of/base.c
> +++ b/drivers/of/base.c
> @@ -1358,3 +1358,31 @@ const char *of_prop_next_string(struct property *prop, const char *cur)
> return curv;
> }
> EXPORT_SYMBOL_GPL(of_prop_next_string);
> +
> +/**
> + * of_device_is_stdout_path - check if a device node matches the
> + * linux,stdout-path property
> + *
> + * Check if this device node matches the linux,stdout-path property
> + * in the chosen node. return true if yes, false otherwise.
> + */
> +int of_device_is_stdout_path(struct device_node *dn)
> +{
> + const char *name;
> + struct device_node *dn_stdout;
> + int is_stdout = 0;
> +
> + name = of_get_property(of_chosen, "linux,stdout-path", NULL);
> + if (name == NULL)
> + return 0;
> +
> + dn_stdout = of_find_node_by_path(name);
> +
> + if (dn_stdout && dn_stdout == dn)
> + is_stdout = 1;
> +
> + of_node_put(dn_stdout);
> +
> + return is_stdout;
> +}
> +EXPORT_SYMBOL_GPL(of_device_is_stdout_path);
> diff --git a/include/linux/of.h b/include/linux/of.h
> index b4e50d5..5f857b5 100644
> --- a/include/linux/of.h
> +++ b/include/linux/of.h
> @@ -310,6 +310,8 @@ const char *of_prop_next_string(struct property *prop, const char *cur);
> s; \
> s = of_prop_next_string(prop, s))
>
> +int of_device_is_stdout_path(struct device_node *dn);
> +
> #else /* CONFIG_OF */
>
> static inline const char* of_node_full_name(struct device_node *np)
> @@ -437,6 +439,11 @@ static inline int of_machine_is_compatible(const char *compat)
> return 0;
> }
>
> +static inline int of_device_is_stdout_path(struct device_node *dn)
> +{
> + return 0;
> +}
> +
> #define of_match_ptr(_ptr) NULL
> #define of_match_node(_matches, _node) NULL
> #define of_property_for_each_u32(np, propname, prop, p, u) \
> --
> 1.7.10.4
>
> _______________________________________________
> devicetree-discuss mailing list
> devicetree-discuss@lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/devicetree-discuss
^ permalink raw reply
* [PATCH] TTY: serial 8250: Support MCR CLK_SEL bit.
From: Martin Fuzzey @ 2012-11-19 8:54 UTC (permalink / raw)
To: Greg Kroah-Hartman, linux-serial
Some UARTs have an internal clock predivisor which can be /1 or /4.
The initial state is set by hardware at chip reset by an external CLK_SEL pin
but can be modified by software using the CLK_SEL bit in MCR.
Currently, on hardware where the CLK_SEL pin is set to /4, the baud rate used
by Linux is thus incorrect (4 times too slow).
Although it is possible to fix this just by changing the clock frequency passed
to the kernel this has two disadvantages:
* The maximum attainable baud rate will be artificially low.
* The DT or board file data no longer directly matches the schematic.
Hence this patch which:
* Allows the CLK_SEL bit to be forced to /1, /4 or left as is.
* Correctly calculates the effective uartclk according to this divisor
Tested using an Exar xr16c2850 UART.
Signed-off-by: Martin Fuzzey <mfuzzey@parkeon.com>
---
.../devicetree/bindings/tty/serial/of-serial.txt | 2 +
drivers/tty/serial/8250/8250.c | 60 ++++++++++++++++----
drivers/tty/serial/8250/8250.h | 1
drivers/tty/serial/of_serial.c | 2 +
include/linux/serial_8250.h | 2 +
5 files changed, 56 insertions(+), 11 deletions(-)
diff --git a/Documentation/devicetree/bindings/tty/serial/of-serial.txt b/Documentation/devicetree/bindings/tty/serial/of-serial.txt
index ba385f2..b1c5f85 100644
--- a/Documentation/devicetree/bindings/tty/serial/of-serial.txt
+++ b/Documentation/devicetree/bindings/tty/serial/of-serial.txt
@@ -27,6 +27,8 @@ Optional properties:
RTAS and should not be registered.
- no-loopback-test: set to indicate that the port does not implements loopback
test mode
+ -clock-predivisor : predivisor for UARTs that support it (0,1 or 4)
+ 0 => leave as determined by hardware pin.
Example:
diff --git a/drivers/tty/serial/8250/8250.c b/drivers/tty/serial/8250/8250.c
index 3ba4234..caac065 100644
--- a/drivers/tty/serial/8250/8250.c
+++ b/drivers/tty/serial/8250/8250.c
@@ -216,7 +216,8 @@ static const struct serial8250_config uart_config[] = {
.fifo_size = 128,
.tx_loadsz = 128,
.fcr = UART_FCR_ENABLE_FIFO | UART_FCR_R_TRIG_10,
- .flags = UART_CAP_FIFO | UART_CAP_EFR | UART_CAP_SLEEP,
+ .flags = UART_CAP_FIFO | UART_CAP_EFR |
+ UART_CAP_SLEEP | UART_CAP_CLKSEL,
},
[PORT_RSA] = {
.name = "RSA",
@@ -572,21 +573,48 @@ EXPORT_SYMBOL_GPL(serial8250_clear_and_reinit_fifos);
* capability" bit enabled. Note that on XR16C850s, we need to
* reset LCR to write to IER.
*/
+static void serial8250_enable_extended(struct uart_8250_port *p)
+{
+ if (p->capabilities & UART_CAP_EFR) {
+ serial_out(p, UART_LCR, UART_LCR_CONF_MODE_B);
+ serial_out(p, UART_EFR, UART_EFR_ECB);
+ serial_out(p, UART_LCR, 0);
+ }
+}
+
+static void serial8250_disable_extended(struct uart_8250_port *p)
+{
+ if (p->capabilities & UART_CAP_EFR) {
+ serial_out(p, UART_LCR, UART_LCR_CONF_MODE_B);
+ serial_out(p, UART_EFR, 0);
+ serial_out(p, UART_LCR, 0);
+ }
+}
+
static void serial8250_set_sleep(struct uart_8250_port *p, int sleep)
{
if (p->capabilities & UART_CAP_SLEEP) {
- if (p->capabilities & UART_CAP_EFR) {
- serial_out(p, UART_LCR, UART_LCR_CONF_MODE_B);
- serial_out(p, UART_EFR, UART_EFR_ECB);
- serial_out(p, UART_LCR, 0);
- }
+ serial8250_enable_extended(p);
serial_out(p, UART_IER, sleep ? UART_IERX_SLEEP : 0);
- if (p->capabilities & UART_CAP_EFR) {
- serial_out(p, UART_LCR, UART_LCR_CONF_MODE_B);
- serial_out(p, UART_EFR, 0);
- serial_out(p, UART_LCR, 0);
- }
+ serial8250_disable_extended(p);
+ }
+}
+
+static int serial8250_configure_clock_predivisor(struct uart_8250_port *p)
+{
+ int value;
+
+ if (p->predivisor) { /* otherwise leave as set by hardware */
+ serial8250_enable_extended(p);
+ value = serial_in(p, UART_MCR);
+ value &= ~UART_MCR_CLKSEL;
+ if (p->predivisor > 1)
+ value |= UART_MCR_CLKSEL;
+ serial_out(p, UART_MCR, value);
+ serial8250_disable_extended(p);
}
+
+ return serial_in(p, UART_MCR) & UART_MCR_CLKSEL ? 4 : 1;
}
#ifdef CONFIG_SERIAL_8250_RSA
@@ -2617,6 +2645,15 @@ static void serial8250_config_port(struct uart_port *port, int flags)
serial8250_release_rsa_resource(up);
if (port->type == PORT_UNKNOWN)
serial8250_release_std_resource(up);
+
+ if (up->capabilities & UART_CAP_CLKSEL) {
+ int div = serial8250_configure_clock_predivisor(up);
+
+ dev_info(port->dev, "Using /%d predivisor\n", div);
+ if (!up->hwclk)
+ up->hwclk = port->uartclk;
+ port->uartclk = up->hwclk / div;
+ }
}
static int
@@ -3173,6 +3210,7 @@ int serial8250_register_8250_port(struct uart_8250_port *up)
uart->port.iotype = up->port.iotype;
uart->port.flags = up->port.flags | UPF_BOOT_AUTOCONF;
uart->bugs = up->bugs;
+ uart->predivisor = up->predivisor;
uart->port.mapbase = up->port.mapbase;
uart->port.private_data = up->port.private_data;
if (up->port.dev)
diff --git a/drivers/tty/serial/8250/8250.h b/drivers/tty/serial/8250/8250.h
index 5a76f9c..01899db 100644
--- a/drivers/tty/serial/8250/8250.h
+++ b/drivers/tty/serial/8250/8250.h
@@ -40,6 +40,7 @@ struct serial8250_config {
#define UART_CAP_AFE (1 << 11) /* MCR-based hw flow control */
#define UART_CAP_UUE (1 << 12) /* UART needs IER bit 6 set (Xscale) */
#define UART_CAP_RTOIE (1 << 13) /* UART needs IER bit 4 set (Xscale, Tegra) */
+#define UART_CAP_CLKSEL (1 << 14) /* UART has clock select predivisor bit */
#define UART_BUG_QUOT (1 << 0) /* UART has buggy quot LSB */
#define UART_BUG_TXEN (1 << 1) /* UART has buggy TX IIR status */
diff --git a/drivers/tty/serial/of_serial.c b/drivers/tty/serial/of_serial.c
index df443b9..047f59c 100644
--- a/drivers/tty/serial/of_serial.c
+++ b/drivers/tty/serial/of_serial.c
@@ -154,6 +154,8 @@ static int __devinit of_platform_serial_probe(struct platform_device *ofdev)
struct uart_8250_port port8250;
memset(&port8250, 0, sizeof(port8250));
port8250.port = port;
+ of_property_read_u32(ofdev->dev.of_node,
+ "clock-predivisor", &port8250.predivisor);
ret = serial8250_register_8250_port(&port8250);
break;
}
diff --git a/include/linux/serial_8250.h b/include/linux/serial_8250.h
index c174c90..39bd8b9 100644
--- a/include/linux/serial_8250.h
+++ b/include/linux/serial_8250.h
@@ -73,6 +73,8 @@ struct uart_8250_port {
unsigned short capabilities; /* port capabilities */
unsigned short bugs; /* port bugs */
unsigned int tx_loadsz; /* transmit fifo load size */
+ unsigned int predivisor; /* 0=HW select */
+ unsigned long hwclk; /* Clock before predivisor */
unsigned char acr;
unsigned char ier;
unsigned char lcr;
^ permalink raw reply related
* Re: [PATCH] serial: atmel_serial: remove atmel open/close hooks
From: Nicolas Ferre @ 2012-11-19 8:54 UTC (permalink / raw)
To: Joachim Eastwood, linux
Cc: gregkh, plagnioj, avictor.za, alan, linux-arm-kernel,
linux-serial
In-Reply-To: <1353110956-17541-1-git-send-email-manabian@gmail.com>
On 11/17/2012 01:09 AM, Joachim Eastwood :
> After serial_at91.h was removed the atmel_open/close_hook
> code is now useless.
>
> Signed-off-by: Joachim Eastwood <manabian@gmail.com>
Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com>
Thanks Joachim.
> ---
> Hi,
>
> This patch depends on [RFC 3/3] ARM/AVR32: get rid of serial_at91.h
> patch from Russell King.
>
> Patch based on current linux-next with "[RFC 3/3] ARM/AVR32: get rid of serial_at91.h"
> patch on top. There is a small conflict with Russell's patch
> in next now due to another header change.
>
> If there is another tree this patch should be based on please
> let me know.
>
> regards
> Joachim Eastwood
>
> drivers/tty/serial/atmel_serial.c | 22 ----------------------
> 1 file changed, 22 deletions(-)
>
> diff --git a/drivers/tty/serial/atmel_serial.c b/drivers/tty/serial/atmel_serial.c
> index 76e4c05..5c2337d 100644
> --- a/drivers/tty/serial/atmel_serial.c
> +++ b/drivers/tty/serial/atmel_serial.c
> @@ -113,9 +113,6 @@ static void atmel_stop_rx(struct uart_port *port);
> #define UART_PUT_TCR(port,v) __raw_writel(v, (port)->membase + ATMEL_PDC_TCR)
> #define UART_GET_TCR(port) __raw_readl((port)->membase + ATMEL_PDC_TCR)
>
> -static int (*atmel_open_hook)(struct uart_port *);
> -static void (*atmel_close_hook)(struct uart_port *);
> -
> struct atmel_dma_buffer {
> unsigned char *buf;
> dma_addr_t dma_addr;
> @@ -976,18 +973,6 @@ static int atmel_startup(struct uart_port *port)
> pdc->ofs = 0;
> }
>
> - /*
> - * If there is a specific "open" function (to register
> - * control line interrupts)
> - */
> - if (atmel_open_hook) {
> - retval = atmel_open_hook(port);
> - if (retval) {
> - free_irq(port->irq, port);
> - return retval;
> - }
> - }
> -
> /* Save current CSR for comparison in atmel_tasklet_func() */
> atmel_port->irq_status_prev = UART_GET_CSR(port);
> atmel_port->irq_status = atmel_port->irq_status_prev;
> @@ -1062,13 +1047,6 @@ static void atmel_shutdown(struct uart_port *port)
> * Free the interrupt
> */
> free_irq(port->irq, port);
> -
> - /*
> - * If there is a specific "close" function (to unregister
> - * control line interrupts)
> - */
> - if (atmel_close_hook)
> - atmel_close_hook(port);
> }
>
> /*
>
--
Nicolas Ferre
^ permalink raw reply
* [REPOST-v2] sched: Prevent wakeup to enter critical section needlessly
From: Ivo Sieben @ 2012-11-19 7:30 UTC (permalink / raw)
To: linux-kernel, Andi Kleen, Oleg Nesterov, Peter Zijlstra,
Ingo Molnar
Cc: linux-serial, Alan Cox, Greg KH, Ivo Sieben
In-Reply-To: <1351159974-980-1-git-send-email-meltedpianoman@gmail.com>
Check the waitqueue task list to be non empty before entering the critical
section. This prevents locking the spin lock needlessly in case the queue
was empty, and therefor also prevent scheduling overhead on a PREEMPT_RT
system.
Signed-off-by: Ivo Sieben <meltedpianoman@gmail.com>
---
a second repost of this patch v2: Can anyone respond?
Did I apply the memory barrier correct?
v2:
- We don't need the "careful" list empty, a normal list empty is sufficient:
if you miss an update it was just as it happened a little later.
- Because of memory ordering problems we can observe an unupdated list
administration. This can cause an wait_event-like code to miss an event.
Adding a memory barrier befor checking the list to be empty will guarantee we
evaluate a 100% updated list adminsitration.
kernel/sched/core.c | 19 ++++++++++++++++---
1 file changed, 16 insertions(+), 3 deletions(-)
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index 2d8927f..168a9b2 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -3090,9 +3090,22 @@ void __wake_up(wait_queue_head_t *q, unsigned int mode,
{
unsigned long flags;
- spin_lock_irqsave(&q->lock, flags);
- __wake_up_common(q, mode, nr_exclusive, 0, key);
- spin_unlock_irqrestore(&q->lock, flags);
+ /*
+ * We check for list emptiness outside the lock. This prevents the wake
+ * up to enter the critical section needlessly when the task list is
+ * empty.
+ *
+ * Placed a full memory barrier before checking list emptiness to make
+ * 100% sure this function sees an up-to-date list administration.
+ * Note that other code that manipulates the list uses a spin_lock and
+ * therefore doesn't need additional memory barriers.
+ */
+ smp_mb();
+ if (!list_empty(&q->task_list)) {
+ spin_lock_irqsave(&q->lock, flags);
+ __wake_up_common(q, mode, nr_exclusive, 0, key);
+ spin_unlock_irqrestore(&q->lock, flags);
+ }
}
EXPORT_SYMBOL(__wake_up);
--
1.7.9.5
^ permalink raw reply related
* [PATCH 1/2 v2] serial: bfin_uart: Don't switch baud rate untill the transfer buffer is empty.
From: Sonic Zhang @ 2012-11-19 6:40 UTC (permalink / raw)
To: Greg Kroah-Hartman; +Cc: linux-serial, uclinux-dist-devel, Sonic Zhang
From: Sonic Zhang <sonic.zhang@analog.com>
set_termios may be invoked before the former data transfer is completed. Block until the
tranfer is done.
Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
---
drivers/tty/serial/bfin_uart.c | 9 +++++++++
1 files changed, 9 insertions(+), 0 deletions(-)
diff --git a/drivers/tty/serial/bfin_uart.c b/drivers/tty/serial/bfin_uart.c
index 9242d56..f8dc8f1 100644
--- a/drivers/tty/serial/bfin_uart.c
+++ b/drivers/tty/serial/bfin_uart.c
@@ -800,6 +800,7 @@ bfin_serial_set_termios(struct uart_port *port, struct ktermios *termios,
unsigned long flags;
unsigned int baud, quot;
unsigned int ier, lcr = 0;
+ unsigned long timeout;
switch (termios->c_cflag & CSIZE) {
case CS8:
@@ -869,6 +870,14 @@ bfin_serial_set_termios(struct uart_port *port, struct ktermios *termios,
UART_SET_ANOMALY_THRESHOLD(uart, USEC_PER_SEC / baud * 15);
+ /* Wait till the transfer buffer is empty */
+ timeout = jiffies + msecs_to_jiffies(10);
+ while (UART_GET_GCTL(uart) & UCEN && !(UART_GET_LSR(uart) & TEMT))
+ if (time_after(jiffies, timeout)) {
+ dev_warn(port->dev, "timeout waiting for TX buffer empty\n");
+ break;
+ }
+
/* Disable UART */
ier = UART_GET_IER(uart);
UART_PUT_GCTL(uart, UART_GET_GCTL(uart) & ~UCEN);
--
1.7.0.4
^ permalink raw reply related
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox