void parport_cs_release(u_long arg)
{
    dev_link_t *link = (dev_link_t *)arg;
    parport_info_t *info = link->priv;
    
    DEBUG(0, "parport_release(0x%p)\n", link);

    if (info->ndev) {
	struct parport *p = info->port;
	parport_pc_unregister_port(p);
	request_region(link->io.BasePort1, link->io.NumPorts1,
		       info->node.dev_name);
	if (link->io.NumPorts2)
	    request_region(link->io.BasePort2, link->io.NumPorts2,
			   info->node.dev_name);
    }
    info->ndev = 0;
    link->dev = NULL;
    
    CardServices(ReleaseConfiguration, link->handle);
    CardServices(ReleaseIO, link->handle, &link->io);
    CardServices(ReleaseIRQ, link->handle, &link->irq);
    
    link->state &= ~DEV_CONFIG;

} /* parport_cs_release */
Example #2
0
static void parport_cs_release(struct pcmcia_device *link)
{
	parport_info_t *info = link->priv;

	dev_dbg(&link->dev, "parport_release\n");

	if (info->ndev) {
		struct parport *p = info->port;
		parport_pc_unregister_port(p);
	}
	info->ndev = 0;

	pcmcia_disable_device(link);
} /* parport_cs_release */
Example #3
0
static void parport_cs_release(struct pcmcia_device *link)
{
    parport_info_t *info = link->priv;

    DEBUG(0, "parport_release(0x%p)\n", link);

    if (info->ndev) {
        struct parport *p = info->port;
        parport_pc_unregister_port(p);
    }
    info->ndev = 0;

    pcmcia_disable_device(link);
}