Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

iio: dac: adi-axi-dac: modify stream enable

Change suggested from the AXI HDL team, modify the function
axi_dac_data_stream_enable() to check for interface busy, to avoid
possible issues when starting the stream.

Fixes: e61d7178429a ("iio: dac: adi-axi-dac: extend features")
Reviewed-by: Nuno Sa <nuno.sa@analog.com>
Signed-off-by: Angelo Dureghello <adureghello@baylibre.com>
Link: https://patch.msgid.link/20250114-wip-bl-ad3552r-axi-v0-iio-testing-carlos-v4-3-979402e33545@baylibre.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>

authored by

Angelo Dureghello and committed by
Jonathan Cameron
6cc60bc3 32f80e20

+8
+8
drivers/iio/dac/adi-axi-dac.c
··· 585 585 static int axi_dac_data_stream_enable(struct iio_backend *back) 586 586 { 587 587 struct axi_dac_state *st = iio_backend_get_priv(back); 588 + int ret, val; 589 + 590 + ret = regmap_read_poll_timeout(st->regmap, 591 + AXI_DAC_UI_STATUS_REG, val, 592 + FIELD_GET(AXI_DAC_UI_STATUS_IF_BUSY, val) == 0, 593 + 10, 100 * KILO); 594 + if (ret) 595 + return ret; 588 596 589 597 return regmap_set_bits(st->regmap, AXI_DAC_CUSTOM_CTRL_REG, 590 598 AXI_DAC_CUSTOM_CTRL_STREAM_ENABLE);