cUInt32 chal_audio_hspath_write_fifo(CHAL_HANDLE handle, cUInt32 *src,
				     cUInt32 length, Boolean ign_ovf)
{
	cUInt32 base = ((ChalAudioCtrlBlk_t *) handle)->audioh_base;
	cUInt32 n;

	if (ign_ovf == CHAL_AUDIO_STOP_ON_FIFO_OVERFLOW) {
		for (n = 0; n < length; n++) {
			if (chal_audio_hspath_read_fifo_status(handle) &
			    CHAL_AUDIO_FIFO_STATUS_NEAR_FULL) {
				break;
			}
			BRCM_WRITE_REG(base, AUDIOH_STEREO_FIFO_DATA,
				       ((cUInt32) *src++));
		}
	} else {
		for (n = 0; n < length; n++) {
			BRCM_WRITE_REG(base, AUDIOH_STEREO_FIFO_DATA,
				       ((cUInt32) *src++));
		}
	}
	return n;
}
cUInt32 chal_audio_hspath_write_fifo(CHAL_HANDLE handle, cUInt32 *src,
                                     cUInt32 length, _Bool ign_ovf)
{
    cUInt32 base = ((ChalAudioCtrlBlk_t *)handle)->audioh_base;
    cUInt32 n;

    if (ign_ovf == CHAL_AUDIO_STOP_ON_FIFO_OVERFLOW) {
        for (n = 0; n < length; n++) {
            /* Check if the FIFO is getting underflow or not,
            if ign_udf flag is not set */
            if (chal_audio_hspath_read_fifo_status(handle)
                    & CHAL_AUDIO_FIFO_STATUS_NEAR_FULL) {
                break;
            }
            BRCM_WRITE_REG(base, AUDIOH_STEREO_FIFO_DATA,
                           ((cUInt32) *src++));
        }
    } else {
        for (n = 0; n < length; n++)
            BRCM_WRITE_REG(base, AUDIOH_STEREO_FIFO_DATA,
                           ((cUInt32) *src++));
    }
    return n;
}