node-drivers/base-driver/drivers/vca/plx87xx/plx_main.c
static void plx_remove(struct pci_dev *pdev)
{
	struct plx_device *xdev = pci_get_drvdata(pdev);

	if (!xdev)
		return;

	plx_try_deinit_lbp(xdev);

	if (!xdev->link_side) {
		plx_remove_symlink_to_dma_engine(xdev);
	}

	plx_unregister_device(xdev);

	if (xdev->link_side)
		plx_dealloc_blockio_dev_page(xdev);

	plx_hw_deinit(xdev);

	plx_mmio_write(&xdev->mmio, 0, xdev->reg_base + PLX_A_LUT_CONTROL);
	plx_free_dma_chan(xdev);
	plx_delete_debug_dir(xdev);
	if (!xdev->link_side)
		plx_dp_uninit(xdev);
	plx_free_interrupts(xdev, pdev);
	plx_unmap_resources(xdev);
	plx_pci_device_deinit(pdev);
	plx_device_destroy(xdev);
}
/**
 * plx_remove - Device Removal Routine
 * plx_remove is called by the PCI subsystem to alert the driver
 * that it should release a PCI device.
 *
 * @pdev: PCI device structure
 */
Device Removal Routine
plx_remove is called by the PCI subsystem to alert the driver
that it should release a PCI device.

@pdev: PCI device structure
Device Removal Routine plx_remove is called by the PCI subsystem to alert the driver that it should release a PCI device . @pdev : PCI device structure
static void plx_remove(struct pci_dev *pdev)
{
	struct plx_device *xdev = pci_get_drvdata(pdev);
	if (!xdev)
		return;
	plx_try_deinit_lbp(xdev);
	if (!xdev->link_side) {
		plx_remove_symlink_to_dma_engine(xdev);
	}
	plx_unregister_device(xdev);
	if (xdev->link_side)
		plx_dealloc_blockio_dev_page(xdev);
	plx_hw_deinit(xdev);
	plx_mmio_write(&xdev->mmio, 0, xdev->reg_base + PLX_A_LUT_CONTROL);
	plx_free_dma_chan(xdev);
	plx_delete_debug_dir(xdev);
	if (!xdev->link_side)
		plx_dp_uninit(xdev);
	plx_free_interrupts(xdev, pdev);
	plx_unmap_resources(xdev);
	plx_pci_device_deinit(pdev);
	plx_device_destroy(xdev);
}
static void plx_remove ( struct pci_dev * pdev ) { struct plx_device * xdev = pci_get_drvdata ( pdev ) ; if ( ! xdev ) return ; plx_try_deinit_lbp ( xdev ) ; if ( ! xdev -> link_side ) { plx_remove_symlink_to_dma_engine ( xdev ) ; } plx_unregister_device ( xdev ) ; if ( xdev -> link_side ) plx_dealloc_blockio_dev_page ( xdev ) ; plx_hw_deinit ( xdev ) ; plx_mmio_write ( & xdev -> mmio , 0 , xdev -> reg_base + PLX_A_LUT_CONTROL ) ; plx_free_dma_chan ( xdev ) ; plx_delete_debug_dir ( xdev ) ; if ( ! xdev -> link_side ) plx_dp_uninit ( xdev ) ; plx_free_interrupts ( xdev , pdev ) ; plx_unmap_resources ( xdev ) ; plx_pci_device_deinit ( pdev ) ; plx_device_destroy ( xdev ) ; }
plx_remove - Device Removal Routine
 plx_remove is called by the PCI subsystem to alert the driver
 that it should release a PCI device.
plx_remove - Device Removal Routine plx_remove is called by the PCI subsystem to alert the driver that it should release a PCI device .