host-drivers/base-driver/vca/plx87xx/plx_hw.c
void plx_del_a_lut_entry(struct plx_device *xdev, dma_addr_t addr)
{
	u32 segment_id = addr / (u64)xdev->a_lut_manager.segment_size;
	u32 segments_num = 0;
	u32 start_segment = 0;

	if (addr >= xdev->a_lut_manager.segments_num *
		xdev->a_lut_manager.segment_size) {
			dev_err(&xdev->pdev->dev,
					"%s addres not in BAR range: %llx\n", __func__, (u64)addr);
			return;
	}

	spin_lock(&xdev->alm_lock);

	plx_alm_del_entry(&xdev->a_lut_manager, xdev->pdev, segment_id,
			&start_segment, &segments_num);

	if (segments_num) {
		u32 permission_offset;
		int i;

		dev_dbg(&xdev->pdev->dev, "%s delete entry no %i translated %llx\n",
				__func__, segment_id, (u64)addr);

		for (i = start_segment; i < start_segment + segments_num; i++) {

			permission_offset =  plx_get_a_lut_entry_offset(i) +
				      PLX_A_LUT_PERMISSION_SUBARRAY_OFFSET;
			plx_mmio_write(&xdev->mmio, 0, xdev->a_lut_array_base + permission_offset);
		}
	}

	spin_unlock(&xdev->alm_lock);
}
/**
 * plx_del_lut_entry() - delete entry from A LUT array
 * @xdev: pointer to plx_device instance
 * @addr: address in A-LUT segment
 *
 * This function allows other side of NTB to access address @addr by adding
 * a lookup entry to A LUT array.
 *
 * RETURNS: none.
 *
 * */
delete entry from A LUT array
@xdev: pointer to plx_device instance
@addr: address in A-LUT segment

This function allows other side of NTB to access address @addr by adding
a lookup entry to A LUT array.

none.
delete entry from A LUT array @xdev : pointer to plx_device instance @addr : address in A - LUT segment This function allows other side of NTB to access address @addr by adding a lookup entry to A LUT array . none .
void plx_del_a_lut_entry(struct plx_device *xdev, dma_addr_t addr)
{
	u32 segment_id = addr / (u64)xdev->a_lut_manager.segment_size;
	u32 segments_num = 0;
	u32 start_segment = 0;
	if (addr >= xdev->a_lut_manager.segments_num *
		xdev->a_lut_manager.segment_size) {
			dev_err(&xdev->pdev->dev,
					"%s addres not in BAR range: %llx\n", __func__, (u64)addr);
			return;
	}
	spin_lock(&xdev->alm_lock);
	plx_alm_del_entry(&xdev->a_lut_manager, xdev->pdev, segment_id,
			&start_segment, &segments_num);
	if (segments_num) {
		u32 permission_offset;
		int i;
		dev_dbg(&xdev->pdev->dev, "%s delete entry no %i translated %llx\n",
				__func__, segment_id, (u64)addr);
		for (i = start_segment; i < start_segment + segments_num; i++) {
			permission_offset =  plx_get_a_lut_entry_offset(i) +
				      PLX_A_LUT_PERMISSION_SUBARRAY_OFFSET;
			plx_mmio_write(&xdev->mmio, 0, xdev->a_lut_array_base + permission_offset);
		}
	}
	spin_unlock(&xdev->alm_lock);
}
void plx_del_a_lut_entry ( struct plx_device * xdev , dma_addr_t addr ) { u32 segment_id = addr / ( u64 ) xdev -> a_lut_manager . segment_size ; u32 segments_num = 0 ; u32 start_segment = 0 ; if ( addr >= xdev -> a_lut_manager . segments_num * xdev -> a_lut_manager . segment_size ) { dev_err ( & xdev -> pdev -> dev , " \n " , __func__ , ( u64 ) addr ) ; return ; } spin_lock ( & xdev -> alm_lock ) ; plx_alm_del_entry ( & xdev -> a_lut_manager , xdev -> pdev , segment_id , & start_segment , & segments_num ) ; if ( segments_num ) { u32 permission_offset ; int i ; dev_dbg ( & xdev -> pdev -> dev , " \n " , __func__ , segment_id , ( u64 ) addr ) ; for ( i = start_segment ; i < start_segment + segments_num ; i ++ ) { permission_offset = plx_get_a_lut_entry_offset ( i ) + PLX_A_LUT_PERMISSION_SUBARRAY_OFFSET ; plx_mmio_write ( & xdev -> mmio , 0 , xdev -> a_lut_array_base + permission_offset ) ; } } spin_unlock ( & xdev -> alm_lock ) ; }
plx_del_lut_entry() - delete entry from A LUT array
 @xdev: pointer to plx_device instance
 @addr: address in A-LUT segment
plx_del_lut_entry () - delete entry from A LUT array @xdev : pointer to plx_device instance @addr : address in A - LUT segment