Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 373b0eb6 authored by Tomoya MORINAGA's avatar Tomoya MORINAGA Committed by Grant Likely
Browse files

spi-topcliff-pch: Fix CPU read complete condition issue



We found Rx data sometimes drops.(with non-DMA transfer mode)
The cause is read complete condition is not true.

This patch fixes the issue.

Signed-off-by: default avatarTomoya MORINAGA <tomoya-linux@dsn.okisemi.com>
Signed-off-by: default avatarGrant Likely <grant.likely@secretlab.ca>
parent 8b7aa961
Loading
Loading
Loading
Loading
+11 −8
Original line number Diff line number Diff line
@@ -317,16 +317,19 @@ static void pch_spi_handler_sub(struct pch_spi_data *data, u32 reg_spsr_val,

	/* if transfer complete interrupt */
	if (reg_spsr_val & SPSR_FI_BIT) {
		if (tx_index < bpw_len)
			dev_err(&data->master->dev,
				"%s : Transfer is not completed", __func__);
		if ((tx_index == bpw_len) && (rx_index == tx_index)) {
			/* disable interrupts */
			pch_spi_setclr_reg(data->master, PCH_SPCR, 0, PCH_ALL);

		/* transfer is completed;inform pch_spi_process_messages */
			/* transfer is completed;
			   inform pch_spi_process_messages */
			data->transfer_complete = true;
			data->transfer_active = false;
			wake_up(&data->wait);
		} else {
			dev_err(&data->master->dev,
				"%s : Transfer is not completed", __func__);
		}
	}
}