Вторник, 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�

Reply via email to