int(*exec_op)(structspi_mem *mem, conststructspi_mem_op *op); constchar*(*get_name)(structspi_mem *mem); int(*dirmap_create)(structspi_mem_dirmap_desc *desc); void(*dirmap_destroy)(structspi_mem_dirmap_desc *desc); ssize_t (*dirmap_read)(structspi_mem_dirmap_desc *desc, u64 ...
nodirmap:如果spi controller没有实现mem_ops->dirmap_create回调函数,则设置为1;或者在调用mem_ops->dirmap_create时出错(超出映射的内存区域)时设置为1;当此值为1时,所有跟spi_mem_dirmap_{read,write}()相关的函数就会使用spi_mem_exec_op函数来操作flash; priv:指向controller的私有数据结构; spi mem 设备...
spi_mem_dirmap_read(spi_mem_dirmap_desc*, u64, size_t, void*)' [A] 'function ssize_t spi_mem_dirmap_write(spi_mem_dirmap_desc*, u64, size_t, void*)' [A] 'function int spi_mem_driver_register_with_owner(spi_mem_driver*, module*)' [A] 'function void spi_mem_driver_...
@@ -620,7 +621,7 @@ static ssize_t aspeed_spi_dirmap_read(struct spi_mem_dirmap_desc *desc, u64 offset, size_t len, void *buf) { struct aspeed_spi *aspi = spi_controller_get_devdata(desc->mem->spi->master); struct aspeed_spi_chip *chip = &aspi->chips[desc->mem->spi->...
will stall during each IO from/to the dirmap region until the operation is finished. So try not to use it concurrently with time-critical tasks (like the SPI memory operations implemented in this driver). endif config SPI_DLN2 tristate "Diolan DLN-2 USB SPI adapter" d...