static void __devexit chd_dec_pci_remove(struct pci_dev *pdev) { struct crystalhd_adp *pinfo; enum BC_STATUS sts = BC_STS_SUCCESS; BCMLOG_ENTER; pinfo = (struct crystalhd_adp *) pci_get_drvdata(pdev); if (!pinfo) { BCMLOG_ERR("could not get adp\n"); return; } sts = crystalhd_delete_cmd_context(&pinfo->cmds); if (sts != BC_STS_SUCCESS) BCMLOG_ERR("cmd delete :%d\n", sts); chd_dec_release_chdev(pinfo); chd_dec_disable_int(pinfo); chd_pci_release_mem(pinfo); pci_disable_device(pinfo->pdev); kfree(pinfo); g_adp_info = NULL; }
static void __exit chd_dec_pci_remove(struct pci_dev *pdev) { struct crystalhd_adp *pinfo; BC_STATUS sts = BC_STS_SUCCESS; dev_dbg(chddev(), "Entering %s\n", __func__); pinfo = (struct crystalhd_adp *) pci_get_drvdata(pdev); if (!pinfo) { dev_err(chddev(), "could not get adp\n"); return; } sts = crystalhd_delete_cmd_context(&pinfo->cmds); if (sts != BC_STS_SUCCESS) dev_err(chddev(), "cmd delete :%d\n", sts); chd_dec_release_chdev(pinfo); chd_dec_disable_int(pinfo); chd_pci_release_mem(pinfo); pci_disable_device(pinfo->pdev); kfree(pinfo); g_adp_info = NULL; }