Commit 65e503814dec83c7b2ac955e75919d009109c919

Authored by Dan Williams
1 parent 137cb55c6d

iop-adma: use iop_paranoia() for debug BUG_ONs

Now that the critical read back to flush the next descriptor address is
fixed we can downgrade some BUG_ONs that need only be enabled when testing
changes to the driver.

Signed-off-by: Dan Williams <dan.j.williams@intel.com>

Showing 4 changed files with 12 additions and 4 deletions Side-by-side Diff

arch/arm/include/asm/hardware/iop3xx-adma.h
... ... @@ -730,7 +730,8 @@
730 730 {
731 731 /* hw_desc->next_desc is the same location for all channels */
732 732 union iop3xx_desc hw_desc = { .ptr = desc->hw_desc, };
733   - BUG_ON(hw_desc.dma->next_desc);
  733 +
  734 + iop_paranoia(hw_desc.dma->next_desc);
734 735 hw_desc.dma->next_desc = next_desc_addr;
735 736 }
736 737  
... ... @@ -760,7 +761,7 @@
760 761 struct iop3xx_desc_aau *hw_desc = desc->hw_desc;
761 762 struct iop3xx_aau_desc_ctrl desc_ctrl = hw_desc->desc_ctrl_field;
762 763  
763   - BUG_ON(!(desc_ctrl.tx_complete && desc_ctrl.zero_result_en));
  764 + iop_paranoia(!(desc_ctrl.tx_complete && desc_ctrl.zero_result_en));
764 765 return desc_ctrl.zero_result_err;
765 766 }
766 767  
arch/arm/include/asm/hardware/iop_adma.h
... ... @@ -23,6 +23,12 @@
23 23  
24 24 #define IOP_ADMA_SLOT_SIZE 32
25 25 #define IOP_ADMA_THRESHOLD 4
  26 +#ifdef DEBUG
  27 +#define IOP_PARANOIA 1
  28 +#else
  29 +#define IOP_PARANOIA 0
  30 +#endif
  31 +#define iop_paranoia(x) BUG_ON(IOP_PARANOIA && (x))
26 32  
27 33 /**
28 34 * struct iop_adma_device - internal representation of an ADMA device
arch/arm/mach-iop13xx/include/mach/adma.h
... ... @@ -404,7 +404,8 @@
404 404 u32 next_desc_addr)
405 405 {
406 406 struct iop13xx_adma_desc_hw *hw_desc = desc->hw_desc;
407   - BUG_ON(hw_desc->next_desc);
  407 +
  408 + iop_paranoia(hw_desc->next_desc);
408 409 hw_desc->next_desc = next_desc_addr;
409 410 }
410 411  
drivers/dma/iop-adma.c
... ... @@ -431,7 +431,7 @@
431 431 BUG_ON(iop_desc_get_next_desc(old_chain_tail) != next_dma); /* flush */
432 432  
433 433 /* check for pre-chained descriptors */
434   - BUG_ON(iop_desc_get_next_desc(sw_desc));
  434 + iop_paranoia(iop_desc_get_next_desc(sw_desc));
435 435  
436 436 /* increment the pending count by the number of slots
437 437 * memcpy operations have a 1:1 (slot:operation) relation