static void __devexit snd_mpu401_pnp_remove(struct pnp_dev *dev) { struct snd_card *card = (struct snd_card *) pnp_get_drvdata(dev); snd_card_disconnect(card); snd_card_free_when_closed(card); }
static int fintek_suspend(struct pnp_dev *pdev, pm_message_t state) { struct fintek_dev *fintek = pnp_get_drvdata(pdev); unsigned long flags; fit_dbg("%s called", __func__); spin_lock_irqsave(&fintek->fintek_lock, flags); /* disable all CIR interrupts */ fintek_cir_reg_write(fintek, CIR_STATUS_IRQ_MASK, CIR_STATUS); spin_unlock_irqrestore(&fintek->fintek_lock, flags); fintek_config_mode_enable(fintek); /* disable cir logical dev */ fintek_select_logical_dev(fintek, fintek->logical_dev_cir); fintek_cr_write(fintek, LOGICAL_DEV_DISABLE, CIR_CR_DEV_EN); fintek_config_mode_disable(fintek); /* make sure wake is enabled */ fintek_enable_wake(fintek); return 0; }
static void idepnp_remove(struct pnp_dev * dev) { ide_hwif_t *hwif = pnp_get_drvdata(dev); if (hwif) { ide_unregister(hwif->index); } else printk(KERN_ERR "idepnp: Unable to remove device, please report.\n"); }
static void parport_pc_pnp_remove(struct pnp_dev *dev) { struct parport *pdata = (struct parport *)pnp_get_drvdata(dev); if (!pdata) return; /* parport_pc_unregister_port(pdata); */ }
static void soc_button_remove(struct pnp_dev *pdev) { struct soc_button_data *priv = pnp_get_drvdata(pdev); int i; for (i = 0; i < BUTTON_TYPES; i++) if (priv->children[i]) platform_device_unregister(priv->children[i]); }
static void idepnp_remove(struct pnp_dev *dev) { ide_hwif_t *hwif = pnp_get_drvdata(dev); ide_unregister(hwif); release_region(pnp_port_start(dev, 1), 1); release_region(pnp_port_start(dev, 0), 8); }
static void idepnp_remove(struct pnp_dev *dev) { struct ide_host *host = pnp_get_drvdata(dev); ide_host_remove(host); release_region(pnp_port_start(dev, 1), 1); release_region(pnp_port_start(dev, 0), 8); }
static int serial_pnp_suspend(struct pnp_dev *dev, pm_message_t state) { long line = (long)pnp_get_drvdata(dev); if (!line) return -ENODEV; serial8250_suspend_port(line - 1); return 0; }
static int serial_pnp_resume(struct pnp_dev *dev) { long line = (long)pnp_get_drvdata(dev); if (!line) return -ENODEV; serial8250_resume_port(line - 1); return 0; }
static void sb1000_remove_one(struct pnp_dev *pdev) { struct net_device *dev = pnp_get_drvdata(pdev); unregister_netdev(dev); release_region(dev->base_addr, 16); release_region(dev->mem_start, 16); free_netdev(dev); }
static void __devexit fcpnp_remove(struct pnp_dev *pdev) { struct fritz_adapter *adapter = pnp_get_drvdata(pdev); if (adapter) { fcpcipnp_release(adapter); delete_adapter(adapter); } pnp_disable_dev(pdev); }
static void __devexit gmux_remove(struct pnp_dev *pnp) { struct apple_gmux_data *gmux_data = pnp_get_drvdata(pnp); backlight_device_unregister(gmux_data->bdev); release_region(gmux_data->iostart, gmux_data->iolen); kfree(gmux_data); acpi_video_register(); apple_bl_register(); }
static void ite_shutdown(struct pnp_dev *pdev) { struct ite_dev *dev = pnp_get_drvdata(pdev); unsigned long flags; ite_dbg("%s called", __func__); spin_lock_irqsave(&dev->lock, flags); /* disable all interrupts */ dev->params.disable(dev); spin_unlock_irqrestore(&dev->lock, flags); }
static void __devexit gmux_remove(struct pnp_dev *pnp) { struct apple_gmux_data *gmux_data = pnp_get_drvdata(pnp); backlight_device_unregister(gmux_data->bdev); release_region(gmux_data->iostart, gmux_data->iolen); kfree(gmux_data); acpi_video_dmi_demote_vendor(); #ifdef CONFIG_ACPI_VIDEO acpi_video_register(); #endif apple_bl_register(); }
static int ite_suspend(struct pnp_dev *pdev, pm_message_t state) { struct ite_dev *dev = pnp_get_drvdata(pdev); unsigned long flags; ite_dbg("%s called", __func__); spin_lock_irqsave(&dev->lock, flags); /* disable all interrupts */ dev->params.disable(dev); spin_unlock_irqrestore(&dev->lock, flags); return 0; }
static int ite_resume(struct pnp_dev *pdev) { struct ite_dev *dev = pnp_get_drvdata(pdev); unsigned long flags; ite_dbg("%s called", __func__); spin_lock_irqsave(&dev->lock, flags); /* reinitialize hardware config registers */ dev->params.init_hardware(dev); /* enable the receiver */ dev->params.enable_rx(dev); spin_unlock_irqrestore(&dev->lock, flags); return 0; }
static int ite_resume(struct pnp_dev *pdev) { int ret = 0; struct ite_dev *dev = pnp_get_drvdata(pdev); unsigned long flags; ite_dbg("%s called", __func__); spin_lock_irqsave(&dev->lock, flags); dev->params.init_hardware(dev); dev->params.enable_rx(dev); spin_unlock_irqrestore(&dev->lock, flags); return ret; }
static int ite_suspend(struct pnp_dev *pdev, pm_message_t state) { struct ite_dev *dev = pnp_get_drvdata(pdev); unsigned long flags; ite_dbg("%s called", __func__); /* wait for any transmission to end */ wait_event_interruptible(dev->tx_ended, !dev->transmitting); spin_lock_irqsave(&dev->lock, flags); /* disable all interrupts */ dev->params.disable(dev); spin_unlock_irqrestore(&dev->lock, flags); return 0; }
static int fintek_resume(struct pnp_dev *pdev) { struct fintek_dev *fintek = pnp_get_drvdata(pdev); fit_dbg("%s called", __func__); /* open interrupt */ fintek_enable_cir_irq(fintek); /* Enable CIR logical device */ fintek_config_mode_enable(fintek); fintek_select_logical_dev(fintek, fintek->logical_dev_cir); fintek_cr_write(fintek, LOGICAL_DEV_ENABLE, CIR_CR_DEV_EN); fintek_config_mode_disable(fintek); fintek_cir_regs_init(fintek); return 0; }
static void fintek_remove(struct pnp_dev *pdev) { struct fintek_dev *fintek = pnp_get_drvdata(pdev); unsigned long flags; spin_lock_irqsave(&fintek->fintek_lock, flags); /* disable CIR */ fintek_disable_cir(fintek); fintek_cir_reg_write(fintek, CIR_STATUS_IRQ_MASK, CIR_STATUS); /* enable CIR Wake (for IR power-on) */ fintek_enable_wake(fintek); spin_unlock_irqrestore(&fintek->fintek_lock, flags); /* free resources */ free_irq(fintek->cir_irq, fintek); release_region(fintek->cir_addr, fintek->cir_port_len); rc_unregister_device(fintek->rdev); kfree(fintek); }
static int ite_resume(struct pnp_dev *pdev) { int ret = 0; struct ite_dev *dev = pnp_get_drvdata(pdev); unsigned long flags; ite_dbg("%s called", __func__); spin_lock_irqsave(&dev->lock, flags); if (dev->transmitting) { /* wake up the transmitter */ wake_up_interruptible(&dev->tx_queue); } else { /* enable the receiver */ dev->params.enable_rx(dev); } spin_unlock_irqrestore(&dev->lock, flags); return ret; }
static irqreturn_t wbcir_irq_handler(int irqno, void *cookie) { struct pnp_dev *device = cookie; struct wbcir_data *data = pnp_get_drvdata(device); unsigned long flags; u8 status; spin_lock_irqsave(&data->spinlock, flags); wbcir_select_bank(data, WBCIR_BANK_0); status = inb(data->sbase + WBCIR_REG_SP3_EIR); status &= data->irqmask; if (!status) { spin_unlock_irqrestore(&data->spinlock, flags); return IRQ_NONE; } if (status & WBCIR_IRQ_ERR) { /* RX overflow? (read clears bit) */ if (inb(data->sbase + WBCIR_REG_SP3_LSR) & WBCIR_RX_OVERRUN) { data->rxstate = WBCIR_RXSTATE_ERROR; ir_raw_event_reset(data->dev); } /* TX underflow? */ if (inb(data->sbase + WBCIR_REG_SP3_ASCR) & WBCIR_TX_UNDERRUN) data->txstate = WBCIR_TXSTATE_ERROR; } if (status & WBCIR_IRQ_RX) wbcir_irq_rx(data, device); if (status & (WBCIR_IRQ_TX_LOW | WBCIR_IRQ_TX_EMPTY)) wbcir_irq_tx(data); spin_unlock_irqrestore(&data->spinlock, flags); return IRQ_HANDLED; }
static void ite_remove(struct pnp_dev *pdev) { struct ite_dev *dev = pnp_get_drvdata(pdev); unsigned long flags; ite_dbg("%s called", __func__); spin_lock_irqsave(&dev->lock, flags); /* disable hardware */ dev->params.disable(dev); spin_unlock_irqrestore(&dev->lock, flags); /* free resources */ free_irq(dev->cir_irq, dev); release_region(dev->cir_addr, dev->params.io_region_size); rc_unregister_device(dev->rdev); kfree(dev); }
static void fmr2_pnp_remove(struct pnp_dev *pdev) { fmr2_remove(pnp_get_drvdata(pdev)); pnp_set_drvdata(pdev, NULL); }
static void __devexit serial_pnp_remove(struct pnp_dev *dev) { long line = (long)pnp_get_drvdata(dev); if (line) serial8250_unregister_port(line - 1); }
static void wbcir_shutdown(struct pnp_dev *device) { struct device *dev = &device->dev; struct wbcir_data *data = pnp_get_drvdata(device); bool do_wake = true; u8 match[11]; u8 mask[11]; u8 rc6_csl = 0; int i; memset(match, 0, sizeof(match)); memset(mask, 0, sizeof(mask)); if (wake_sc == INVALID_SCANCODE || !device_may_wakeup(dev)) { do_wake = false; goto finish; } switch (protocol) { case IR_PROTOCOL_RC5: if (wake_sc > 0xFFF) { do_wake = false; dev_err(dev, "RC5 - Invalid wake scancode\n"); break; } /* Mask = 13 bits, ex toggle */ mask[0] = 0xFF; mask[1] = 0x17; match[0] = (wake_sc & 0x003F); /* 6 command bits */ match[0] |= (wake_sc & 0x0180) >> 1; /* 2 address bits */ match[1] = (wake_sc & 0x0E00) >> 9; /* 3 address bits */ if (!(wake_sc & 0x0040)) /* 2nd start bit */ match[1] |= 0x10; break; case IR_PROTOCOL_NEC: if (wake_sc > 0xFFFFFF) { do_wake = false; dev_err(dev, "NEC - Invalid wake scancode\n"); break; } mask[0] = mask[1] = mask[2] = mask[3] = 0xFF; match[1] = bitrev8((wake_sc & 0xFF)); match[0] = ~match[1]; match[3] = bitrev8((wake_sc & 0xFF00) >> 8); if (wake_sc > 0xFFFF) match[2] = bitrev8((wake_sc & 0xFF0000) >> 16); else match[2] = ~match[3]; break; case IR_PROTOCOL_RC6: if (wake_rc6mode == 0) { if (wake_sc > 0xFFFF) { do_wake = false; dev_err(dev, "RC6 - Invalid wake scancode\n"); break; } /* Command */ match[0] = wbcir_to_rc6cells(wake_sc >> 0); mask[0] = 0xFF; match[1] = wbcir_to_rc6cells(wake_sc >> 4); mask[1] = 0xFF; /* Address */ match[2] = wbcir_to_rc6cells(wake_sc >> 8); mask[2] = 0xFF; match[3] = wbcir_to_rc6cells(wake_sc >> 12); mask[3] = 0xFF; /* Header */ match[4] = 0x50; /* mode1 = mode0 = 0, ignore toggle */ mask[4] = 0xF0; match[5] = 0x09; /* start bit = 1, mode2 = 0 */ mask[5] = 0x0F; rc6_csl = 44; } else if (wake_rc6mode == 6) {
static void generic_NCR5380_pnp_remove(struct pnp_dev *pdev) { generic_NCR5380_release_resources(pnp_get_drvdata(pdev)); pnp_set_drvdata(pdev, NULL); }
static void fintek_shutdown(struct pnp_dev *pdev) { struct fintek_dev *fintek = pnp_get_drvdata(pdev); fintek_enable_wake(fintek); }