diff options
| author | Miquel Raynal <miquel.raynal@bootlin.com> | 2022-05-20 13:58:54 +0200 | 
|---|---|---|
| committer | Miquel Raynal <miquel.raynal@bootlin.com> | 2022-05-20 13:58:54 +0200 | 
| commit | e6828be5edcfea25cd70a2d1de41085c67ef9fa5 (patch) | |
| tree | 489ae4cdb47a4d83940e2472f49a3c601806b70e /drivers/scsi/pmcraid.h | |
| parent | 1fefc8ecb834c88edfc27e712d683872d0c541dd (diff) | |
| parent | c47452194641b5d27c20e557c84a46c85fd7ce37 (diff) | |
Merge tag 'spi-nor/for-5.19' into mtd/next
SPI NOR core changes:
- Read back written SR value to make sure the write was done correctly.
- Introduce a common function for Read ID that manufacturer drivers can
  use to verify the Octal DTR switch worked correctly.
- Add helpers for read/write any register commands so manufacturer
  drivers don't open code it every time.
- Clarify rdsr dummy cycles documentation.
- Add debugfs entry to expose internal flash parameters and state.
SPI NOR manufacturer drivers changes:
- Add support for Winbond W25Q512NW-IM, and Eon EN25QH256A.
- Move spi_nor_write_ear() to Winbond module since only Winbond flashes
  use it.
- Rework Micron and Cypress Octal DTR enable methods to improve
  readability.
- Use the common Read ID function to verify switch to Octal DTR mode for
  Micron and Cypress flashes.
- Skip polling status on volatile register writes for Micron and Cypress
  flashes since the operation is instant.
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Diffstat (limited to 'drivers/scsi/pmcraid.h')
| -rw-r--r-- | drivers/scsi/pmcraid.h | 33 | 
1 files changed, 0 insertions, 33 deletions
diff --git a/drivers/scsi/pmcraid.h b/drivers/scsi/pmcraid.h index bbb75318f1e7..9f59930e8b4f 100644 --- a/drivers/scsi/pmcraid.h +++ b/drivers/scsi/pmcraid.h @@ -1023,40 +1023,15 @@ struct pmcraid_ioctl_header {  #define PMCRAID_IOCTL_SIGNATURE      "PMCRAID"  /* - * pmcraid_passthrough_ioctl_buffer - structure given as argument to - * passthrough(or firmware handled) IOCTL commands. Note that ioarcb requires - * 32-byte alignment so, it is necessary to pack this structure to avoid any - * holes between ioctl_header and passthrough buffer - * - * .ioactl_header : ioctl header - * .ioarcb        : filled-up ioarcb buffer, driver always reads this buffer - * .ioasa         : buffer for ioasa, driver fills this with IOASA from firmware - * .request_buffer: The I/O buffer (flat), driver reads/writes to this based on - *                  the transfer directions passed in ioarcb.flags0. Contents - *                  of this buffer are valid only when ioarcb.data_transfer_len - *                  is not zero. - */ -struct pmcraid_passthrough_ioctl_buffer { -	struct pmcraid_ioctl_header ioctl_header; -	struct pmcraid_ioarcb ioarcb; -	struct pmcraid_ioasa  ioasa; -	u8  request_buffer[]; -} __attribute__ ((packed, aligned(PMCRAID_IOARCB_ALIGNMENT))); - -/*   * keys to differentiate between driver handled IOCTLs and passthrough   * IOCTLs passed to IOA. driver determines the ioctl type using macro   * _IOC_TYPE   */  #define PMCRAID_DRIVER_IOCTL         'D' -#define PMCRAID_PASSTHROUGH_IOCTL    'F'  #define DRV_IOCTL(n, size) \  	_IOC(_IOC_READ|_IOC_WRITE, PMCRAID_DRIVER_IOCTL, (n), (size)) -#define FMW_IOCTL(n, size) \ -	_IOC(_IOC_READ|_IOC_WRITE, PMCRAID_PASSTHROUGH_IOCTL,  (n), (size)) -  /*   * _ARGSIZE: macro that gives size of the argument type passed to an IOCTL cmd.   * This is to facilitate applications avoiding un-necessary memory allocations. @@ -1069,12 +1044,4 @@ struct pmcraid_passthrough_ioctl_buffer {  #define PMCRAID_IOCTL_RESET_ADAPTER          \  	DRV_IOCTL(5, sizeof(struct pmcraid_ioctl_header)) -/* passthrough/firmware handled commands */ -#define PMCRAID_IOCTL_PASSTHROUGH_COMMAND         \ -	FMW_IOCTL(1, sizeof(struct pmcraid_passthrough_ioctl_buffer)) - -#define PMCRAID_IOCTL_DOWNLOAD_MICROCODE     \ -	FMW_IOCTL(2, sizeof(struct pmcraid_passthrough_ioctl_buffer)) - -  #endif /* _PMCRAID_H */  | 
