/* * mwave_init is called on module load * * mwave_exit is called on module unload * mwave_exit is also used to clean up after an aborted mwave_init */ static void mwave_exit(void) { pMWAVE_DEVICE_DATA pDrvData = &mwave_s_mdd; PRINTK_1(TRACE_MWAVE, "mwavedd::mwave_exit entry\n"); #if 0 for (i = 0; i < pDrvData->nr_registered_attrs; i++) device_remove_file(&mwave_device, mwave_dev_attrs[i]); pDrvData->nr_registered_attrs = 0; if (pDrvData->device_registered) { device_unregister(&mwave_device); pDrvData->device_registered = FALSE; } #endif if ( pDrvData->sLine >= 0 ) { serial8250_unregister_port(pDrvData->sLine); } if (pDrvData->bMwaveDevRegistered) { misc_deregister(&mwave_misc_dev); } if (pDrvData->bDSPEnabled) { tp3780I_DisableDSP(&pDrvData->rBDData); } if (pDrvData->bResourcesClaimed) { tp3780I_ReleaseResources(&pDrvData->rBDData); } if (pDrvData->bBDInitialized) { tp3780I_Cleanup(&pDrvData->rBDData); } PRINTK_1(TRACE_MWAVE, "mwavedd::mwave_exit exit\n"); }
static void serial_remove(dev_link_t *link) { struct serial_info *info = link->priv; int i; link->state &= ~DEV_PRESENT; DEBUG(0, "serial_release(0x%p)\n", link); /* * Recheck to see if the device is still configured. */ if (info->link.state & DEV_CONFIG) { for (i = 0; i < info->ndev; i++) serial8250_unregister_port(info->line[i]); info->link.dev = NULL; if (!info->slave) { pcmcia_release_configuration(info->link.handle); pcmcia_release_io(info->link.handle, &info->link.io); pcmcia_release_irq(info->link.handle, &info->link.irq); } info->link.state &= ~DEV_CONFIG; } }
static int __devexit dw8250_remove(struct platform_device *pdev) { struct dw8250_data *data = platform_get_drvdata(pdev); serial8250_unregister_port(data->line); return 0; }
void ibmasm_unregister_uart(struct service_processor *sp) { if (sp->serial_line < 0) return; disable_uart_interrupts(sp->base_address); serial8250_unregister_port(sp->serial_line); }
static int uniphier_uart_remove(struct platform_device *pdev) { struct uniphier8250_priv *priv = platform_get_drvdata(pdev); serial8250_unregister_port(priv->line); clk_disable_unprepare(priv->clk); return 0; }
static int ingenic_uart_remove(struct platform_device *pdev) { struct ingenic_uart_data *data = platform_get_drvdata(pdev); serial8250_unregister_port(data->line); clk_disable_unprepare(data->clk_module); clk_disable_unprepare(data->clk_baud); return 0; }
/* * Release a line */ static int of_platform_serial_remove(struct platform_device *ofdev) { struct of_serial_info *info = platform_get_drvdata(ofdev); serial8250_unregister_port(info->line); if (info->clk) clk_disable_unprepare(info->clk); kfree(info); return 0; }
static int omap8250_remove(struct platform_device *pdev) { struct omap8250_priv *priv = platform_get_drvdata(pdev); pm_runtime_put_sync(&pdev->dev); pm_runtime_disable(&pdev->dev); serial8250_unregister_port(priv->line); pm_qos_remove_request(&priv->pm_qos_request); device_init_wakeup(&pdev->dev, false); return 0; }
static int aspeed_vuart_remove(struct platform_device *pdev) { struct aspeed_vuart *vuart = platform_get_drvdata(pdev); aspeed_vuart_set_enabled(vuart, false); serial8250_unregister_port(vuart->line); sysfs_remove_group(&vuart->dev->kobj, &aspeed_vuart_attr_group); clk_disable_unprepare(vuart->clk); return 0; }
static int __devexit sw_serial_remove(struct platform_device *dev) { struct sw_serial_port *sport = platform_get_drvdata(dev); UART_MSG("serial remove\n"); serial8250_unregister_port(sw_serial[sport->port_no]); sw_serial[sport->port_no] = 0; sw_serial_put_resource(sport); kfree(sport); sport = NULL; return 0; }
static void __devexit serial_card_remove(struct expansion_card *ec) { struct serial_card_info *info = ecard_get_drvdata(ec); int i; ecard_set_drvdata(ec, NULL); for (i = 0; i < info->num_ports; i++) if (info->ports[i] > 0) serial8250_unregister_port(info->ports[i]); kfree(info); }
static int __devexit sw_serial_remove(struct platform_device *dev) { struct sw_serial_port *sport = platform_get_drvdata(dev); struct sw_serial_data *sdata = sport->port.private_data; serial8250_unregister_port(sdata->line); sdata->line = -1; sw_serial_put_resource(sport); kfree(sport); sport = NULL; return 0; }
/* * Release a line */ static int of_platform_serial_remove(struct of_device *ofdev) { struct of_serial_info *info = ofdev->dev.driver_data; switch (info->type) { case PORT_8250 ... PORT_MAX_8250: serial8250_unregister_port(info->line); break; default: /* need to add code for these */ break; } kfree(info); return 0; }
static int dw8250_remove(struct platform_device *pdev) { struct dw8250_data *data = platform_get_drvdata(pdev); pm_runtime_get_sync(&pdev->dev); serial8250_unregister_port(data->line); if (!IS_ERR(data->clk)) clk_disable_unprepare(data->clk); pm_runtime_disable(&pdev->dev); pm_runtime_put_noidle(&pdev->dev); return 0; }
/* * Release a line */ static int of_platform_serial_remove(struct platform_device *ofdev) { struct of_serial_info *info = platform_get_drvdata(ofdev); switch (info->type) { case PORT_8250 ... PORT_MAX_8250: serial8250_unregister_port(info->line); break; default: /* need to add code for these */ break; } if (info->clk) clk_disable_unprepare(info->clk); kfree(info); return 0; }
static void serial_remove(struct pcmcia_device *link) { struct serial_info *info = link->priv; int i; DEBUG(0, "serial_release(0x%p)\n", link); /* * Recheck to see if the device is still configured. */ for (i = 0; i < info->ndev; i++) serial8250_unregister_port(info->line[i]); info->p_dev->dev_node = NULL; if (!info->slave) pcmcia_disable_device(link); }
/* * Release a line */ static int of_platform_serial_remove(struct platform_device *ofdev) { struct of_serial_info *info = dev_get_drvdata(&ofdev->dev); switch (info->type) { #ifdef CONFIG_SERIAL_8250 case PORT_8250 ... PORT_MAX_8250: serial8250_unregister_port(info->line); break; #endif #ifdef CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL case PORT_NWPSERIAL: nwpserial_unregister_port(info->line); break; #endif default: /* need to add code for these */ break; } kfree(info); return 0; }
static void __devexit serial_pnp_remove(struct pnp_dev *dev) { long line = (long)pnp_get_drvdata(dev); if (line) serial8250_unregister_port(line - 1); }