Вторник, 18 февраля 2014, 16:52 +08:00 от Axel Lin <[email protected]>:
> 2014-02-18 16:27 GMT+08:00 Alexander Shiyan <[email protected]>:
> > Вторник, 18 февраля 2014, 9:31 +08:00 от Axel Lin <[email protected]>:
> >> Convert to use default implementation of transfer_one_message() which
> >> provides
> >> standard handling of delays and chip select management.
> >>
> >> Signed-off-by: Axel Lin <[email protected]>
> >> ---
> > ...
> >> static irqreturn_t spi_clps711x_isr(int irq, void *dev_id)
> >> {
> >> - struct spi_clps711x_data *hw = (struct spi_clps711x_data *)dev_id;
> >> + struct spi_master *master = dev_id;
> >> + struct spi_clps711x_data *hw = spi_master_get_devdata(master);
> >> u8 data;
> >>
> >> /* Handle RX */
> >> @@ -135,7 +113,7 @@ static irqreturn_t spi_clps711x_isr(int irq, void
> >> *dev_id)
> >> clps_writel(data | SYNCIO_FRMLEN(hw->bpw) | SYNCIO_TXFRMEN,
> >> SYNCIO);
> >> } else
> >> - complete(&hw->done);
> >> + complete(&master->xfer_completion);
> >
> > spi_finalize_current_transfer(master);
>
> It's done by spi core. see spi_transfer_one_message() in spi.c
spi_finalize_current_transfer() != spi_finalize_current_message()
I just suggest to replace complete(&master->xfer_completion) to
spi_finalize_current_transfer(master).
---
N�����r��y����b�X��ǧv�^�){.n�+����{������^n�r���z���h�����&���G���h�(�階�ݢj"���m������z�ޖ���f���h���~�m�