> +int hda_cldma_stop(struct hda_cldma *cl) > +{ > + unsigned int reg; > + int ret; > + > + /* disable interrupts */ > + snd_hdac_adsp_updatel(cl, AVS_ADSP_REG_ADSPIC, > + AVS_ADSP_ADSPIC_CLDMA, 0); single line? > + snd_hdac_stream_updateb(cl, SD_CTL, SD_INT_MASK | SD_CTL_DMA_START, 0); > + > + /* await DMA engine stop */ > + ret = snd_hdac_stream_readb_poll(cl, SD_CTL, reg, > + !(reg & SD_CTL_DMA_START), move to previous line? we can use 100 chars these days, and that's what you do below. > + AVS_CL_OP_INTERVAL_US, AVS_CL_OP_TIMEOUT_US); > + cancel_delayed_work_sync(&cl->memcpy_work); > + > + return ret; > +}