Commit d6b76a45 authored by Andy Shevchenko's avatar Andy Shevchenko Committed by Vinod Koul
Browse files

dmaengine: hsu: using for_each_set_bit to simplify the code



It's more cleanly to use for_each_set_bit() instead of opencoding it.

Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20220713172235.22611-2-andriy.shevchenko@linux.intel.com


Signed-off-by: default avatarVinod Koul <vkoul@kernel.org>
parent d5988dcc
Loading
Loading
Loading
Loading
+8 −11
Original line number Diff line number Diff line
@@ -26,23 +26,20 @@
static irqreturn_t hsu_pci_irq(int irq, void *dev)
{
	struct hsu_dma_chip *chip = dev;
	u32 dmaisr;
	u32 status;
	unsigned long dmaisr;
	unsigned short i;
	u32 status;
	int ret = 0;
	int err;

	dmaisr = readl(chip->regs + HSU_PCI_DMAISR);
	for (i = 0; i < chip->hsu->nr_channels; i++) {
		if (dmaisr & 0x1) {
	for_each_set_bit(i, &dmaisr, chip->hsu->nr_channels) {
		err = hsu_dma_get_status(chip, i, &status);
		if (err > 0)
			ret |= 1;
		else if (err == 0)
			ret |= hsu_dma_do_irq(chip, i, status);
	}
		dmaisr >>= 1;
	}

	return IRQ_RETVAL(ret);
}