Re: [PATCH v2 2/2] spi: loongson: add bus driver for the loongson spi controller

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




在 2023/3/21 下午8:08, Mark Brown 写道:
On Tue, Mar 21, 2023 at 10:54:32AM +0800, zhuyinbo wrote:
在 2023/3/20 下午8:52, Mark Brown 写道:
No, that doesn't help if setup() reconfigures the controller while it's
doing a transfer.  The issue is that the controller might be put into
the wrong mode or run at the wrong speed.
sorry, I don't got that why cpu still can call setup's critical region when
cpu call transfer_one to  transfer spi data.
when I added a spin_lock for setup and transfer_one then setup and
transfer_one's critical region cann't be called
simultaneously as I know, because the their lock was same lock.
Think what happens if the two SPI devices have different configurations
- for example, a different SPI mode.  The register state won't be
corrupted but the devices will still end up seeing misconfigured SPI
transfers.

I think add following change and that issue what you said will can be fixed,   in addition, the spin_lock

was also not needed.   Do you think so?

@@ -101,8 +101,10 @@ static int loongson_spi_setup(struct spi_device *spi)
        if (spi->chip_select >= spi->master->num_chipselect)
                return -EINVAL;

+       loongson_spi->hz = 0;
+       loongson_spi->mode &= SPI_NO_CS;
+
        spin_lock(&loongson_spi->lock);
-       loongson_spi_update_state(loongson_spi, spi, NULL);
        loongson_spi_set_cs(spi, 1);





[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux