forked from mirrors/linux
		
	scsi: ipr: Remove SATA support
Linux SATA support in ipr has always been limited to SATA DVDs. The last systems that had the option of including a SATA DVD was Power 8, which have been withdrawn for some time now, so this support can be removed. Signed-off-by: Brian King <brking@linux.vnet.ibm.com> Link: https://lore.kernel.org/r/20230412174015.114764-1-brking@linux.vnet.ibm.com Reviewed-by: Damien Le Moal <dlemoal@kernel.org> Reviewed-by: John Garry <john.g.garry@oracle.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
		
							parent
							
								
									0c028b6a11
								
							
						
					
					
						commit
						65a15d6560
					
				
					 3 changed files with 11 additions and 830 deletions
				
			
		|  | @ -971,8 +971,7 @@ config SCSI_SYM53C8XX_MMIO | ||||||
| 
 | 
 | ||||||
| config SCSI_IPR | config SCSI_IPR | ||||||
| 	tristate "IBM Power Linux RAID adapter support" | 	tristate "IBM Power Linux RAID adapter support" | ||||||
| 	depends on PCI && SCSI && ATA | 	depends on PCI && SCSI | ||||||
| 	select SATA_HOST |  | ||||||
| 	select FW_LOADER | 	select FW_LOADER | ||||||
| 	select IRQ_POLL | 	select IRQ_POLL | ||||||
| 	select SGL_ALLOC | 	select SGL_ALLOC | ||||||
|  |  | ||||||
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							|  | @ -16,7 +16,6 @@ | ||||||
| #include <asm/unaligned.h> | #include <asm/unaligned.h> | ||||||
| #include <linux/types.h> | #include <linux/types.h> | ||||||
| #include <linux/completion.h> | #include <linux/completion.h> | ||||||
| #include <linux/libata.h> |  | ||||||
| #include <linux/list.h> | #include <linux/list.h> | ||||||
| #include <linux/kref.h> | #include <linux/kref.h> | ||||||
| #include <linux/irq_poll.h> | #include <linux/irq_poll.h> | ||||||
|  | @ -35,7 +34,6 @@ | ||||||
|  *	This can be adjusted at runtime through sysfs device attributes. |  *	This can be adjusted at runtime through sysfs device attributes. | ||||||
|  */ |  */ | ||||||
| #define IPR_MAX_CMD_PER_LUN				6 | #define IPR_MAX_CMD_PER_LUN				6 | ||||||
| #define IPR_MAX_CMD_PER_ATA_LUN			1 |  | ||||||
| 
 | 
 | ||||||
| /*
 | /*
 | ||||||
|  * IPR_NUM_BASE_CMD_BLKS: This defines the maximum number of |  * IPR_NUM_BASE_CMD_BLKS: This defines the maximum number of | ||||||
|  | @ -197,7 +195,6 @@ | ||||||
| #define	IPR_LUN_RESET					0x40 | #define	IPR_LUN_RESET					0x40 | ||||||
| #define	IPR_TARGET_RESET					0x20 | #define	IPR_TARGET_RESET					0x20 | ||||||
| #define	IPR_BUS_RESET					0x10 | #define	IPR_BUS_RESET					0x10 | ||||||
| #define	IPR_ATA_PHY_RESET					0x80 |  | ||||||
| #define IPR_ID_HOST_RR_Q				0xC4 | #define IPR_ID_HOST_RR_Q				0xC4 | ||||||
| #define IPR_QUERY_IOA_CONFIG				0xC5 | #define IPR_QUERY_IOA_CONFIG				0xC5 | ||||||
| #define IPR_CANCEL_ALL_REQUESTS			0xCE | #define IPR_CANCEL_ALL_REQUESTS			0xCE | ||||||
|  | @ -521,7 +518,6 @@ struct ipr_cmd_pkt { | ||||||
| #define IPR_RQTYPE_SCSICDB		0x00 | #define IPR_RQTYPE_SCSICDB		0x00 | ||||||
| #define IPR_RQTYPE_IOACMD		0x01 | #define IPR_RQTYPE_IOACMD		0x01 | ||||||
| #define IPR_RQTYPE_HCAM			0x02 | #define IPR_RQTYPE_HCAM			0x02 | ||||||
| #define IPR_RQTYPE_ATA_PASSTHRU	0x04 |  | ||||||
| #define IPR_RQTYPE_PIPE			0x05 | #define IPR_RQTYPE_PIPE			0x05 | ||||||
| 
 | 
 | ||||||
| 	u8 reserved2; | 	u8 reserved2; | ||||||
|  | @ -546,30 +542,6 @@ struct ipr_cmd_pkt { | ||||||
| 	__be16 timeout; | 	__be16 timeout; | ||||||
| }__attribute__ ((packed, aligned(4))); | }__attribute__ ((packed, aligned(4))); | ||||||
| 
 | 
 | ||||||
| struct ipr_ioarcb_ata_regs {	/* 22 bytes */ |  | ||||||
| 	u8 flags; |  | ||||||
| #define IPR_ATA_FLAG_PACKET_CMD			0x80 |  | ||||||
| #define IPR_ATA_FLAG_XFER_TYPE_DMA			0x40 |  | ||||||
| #define IPR_ATA_FLAG_STATUS_ON_GOOD_COMPLETION	0x20 |  | ||||||
| 	u8 reserved[3]; |  | ||||||
| 
 |  | ||||||
| 	__be16 data; |  | ||||||
| 	u8 feature; |  | ||||||
| 	u8 nsect; |  | ||||||
| 	u8 lbal; |  | ||||||
| 	u8 lbam; |  | ||||||
| 	u8 lbah; |  | ||||||
| 	u8 device; |  | ||||||
| 	u8 command; |  | ||||||
| 	u8 reserved2[3]; |  | ||||||
| 	u8 hob_feature; |  | ||||||
| 	u8 hob_nsect; |  | ||||||
| 	u8 hob_lbal; |  | ||||||
| 	u8 hob_lbam; |  | ||||||
| 	u8 hob_lbah; |  | ||||||
| 	u8 ctl; |  | ||||||
| }__attribute__ ((packed, aligned(2))); |  | ||||||
| 
 |  | ||||||
| struct ipr_ioadl_desc { | struct ipr_ioadl_desc { | ||||||
| 	__be32 flags_and_data_len; | 	__be32 flags_and_data_len; | ||||||
| #define IPR_IOADL_FLAGS_MASK		0xff000000 | #define IPR_IOADL_FLAGS_MASK		0xff000000 | ||||||
|  | @ -591,15 +563,8 @@ struct ipr_ioadl64_desc { | ||||||
| 	__be64 address; | 	__be64 address; | ||||||
| }__attribute__((packed, aligned (16))); | }__attribute__((packed, aligned (16))); | ||||||
| 
 | 
 | ||||||
| struct ipr_ata64_ioadl { |  | ||||||
| 	struct ipr_ioarcb_ata_regs regs; |  | ||||||
| 	u16 reserved[5]; |  | ||||||
| 	struct ipr_ioadl64_desc ioadl64[IPR_NUM_IOADL_ENTRIES]; |  | ||||||
| }__attribute__((packed, aligned (16))); |  | ||||||
| 
 |  | ||||||
| struct ipr_ioarcb_add_data { | struct ipr_ioarcb_add_data { | ||||||
| 	union { | 	union { | ||||||
| 		struct ipr_ioarcb_ata_regs regs; |  | ||||||
| 		struct ipr_ioadl_desc ioadl[5]; | 		struct ipr_ioadl_desc ioadl[5]; | ||||||
| 		__be32 add_cmd_parms[10]; | 		__be32 add_cmd_parms[10]; | ||||||
| 	} u; | 	} u; | ||||||
|  | @ -665,21 +630,6 @@ struct ipr_ioasa_gpdd { | ||||||
| 	__be32 ioa_data[2]; | 	__be32 ioa_data[2]; | ||||||
| }__attribute__((packed, aligned (4))); | }__attribute__((packed, aligned (4))); | ||||||
| 
 | 
 | ||||||
| struct ipr_ioasa_gata { |  | ||||||
| 	u8 error; |  | ||||||
| 	u8 nsect;		/* Interrupt reason */ |  | ||||||
| 	u8 lbal; |  | ||||||
| 	u8 lbam; |  | ||||||
| 	u8 lbah; |  | ||||||
| 	u8 device; |  | ||||||
| 	u8 status; |  | ||||||
| 	u8 alt_status;	/* ATA CTL */ |  | ||||||
| 	u8 hob_nsect; |  | ||||||
| 	u8 hob_lbal; |  | ||||||
| 	u8 hob_lbam; |  | ||||||
| 	u8 hob_lbah; |  | ||||||
| }__attribute__((packed, aligned (4))); |  | ||||||
| 
 |  | ||||||
| struct ipr_auto_sense { | struct ipr_auto_sense { | ||||||
| 	__be16 auto_sense_len; | 	__be16 auto_sense_len; | ||||||
| 	__be16 ioa_data_len; | 	__be16 ioa_data_len; | ||||||
|  | @ -713,7 +663,6 @@ struct ipr_ioasa_hdr { | ||||||
| 	__be32 ioasc_specific;	/* status code specific field */ | 	__be32 ioasc_specific;	/* status code specific field */ | ||||||
| #define IPR_ADDITIONAL_STATUS_FMT		0x80000000 | #define IPR_ADDITIONAL_STATUS_FMT		0x80000000 | ||||||
| #define IPR_AUTOSENSE_VALID			0x40000000 | #define IPR_AUTOSENSE_VALID			0x40000000 | ||||||
| #define IPR_ATA_DEVICE_WAS_RESET		0x20000000 |  | ||||||
| #define IPR_IOASC_SPECIFIC_MASK		0x00ffffff | #define IPR_IOASC_SPECIFIC_MASK		0x00ffffff | ||||||
| #define IPR_FIELD_POINTER_VALID		(0x80000000 >> 8) | #define IPR_FIELD_POINTER_VALID		(0x80000000 >> 8) | ||||||
| #define IPR_FIELD_POINTER_MASK		0x0000ffff | #define IPR_FIELD_POINTER_MASK		0x0000ffff | ||||||
|  | @ -727,7 +676,6 @@ struct ipr_ioasa { | ||||||
| 		struct ipr_ioasa_vset vset; | 		struct ipr_ioasa_vset vset; | ||||||
| 		struct ipr_ioasa_af_dasd dasd; | 		struct ipr_ioasa_af_dasd dasd; | ||||||
| 		struct ipr_ioasa_gpdd gpdd; | 		struct ipr_ioasa_gpdd gpdd; | ||||||
| 		struct ipr_ioasa_gata gata; |  | ||||||
| 	} u; | 	} u; | ||||||
| 
 | 
 | ||||||
| 	struct ipr_auto_sense auto_sense; | 	struct ipr_auto_sense auto_sense; | ||||||
|  | @ -741,7 +689,6 @@ struct ipr_ioasa64 { | ||||||
| 		struct ipr_ioasa_vset vset; | 		struct ipr_ioasa_vset vset; | ||||||
| 		struct ipr_ioasa_af_dasd dasd; | 		struct ipr_ioasa_af_dasd dasd; | ||||||
| 		struct ipr_ioasa_gpdd gpdd; | 		struct ipr_ioasa_gpdd gpdd; | ||||||
| 		struct ipr_ioasa_gata gata; |  | ||||||
| 	} u; | 	} u; | ||||||
| 
 | 
 | ||||||
| 	struct ipr_auto_sense auto_sense; | 	struct ipr_auto_sense auto_sense; | ||||||
|  | @ -1279,13 +1226,6 @@ struct ipr_bus_attributes { | ||||||
| 	u32 max_xfer_rate; | 	u32 max_xfer_rate; | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| struct ipr_sata_port { |  | ||||||
| 	struct ipr_ioa_cfg *ioa_cfg; |  | ||||||
| 	struct ata_port *ap; |  | ||||||
| 	struct ipr_resource_entry *res; |  | ||||||
| 	struct ipr_ioasa_gata ioasa; |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| struct ipr_resource_entry { | struct ipr_resource_entry { | ||||||
| 	u8 needs_sync_complete:1; | 	u8 needs_sync_complete:1; | ||||||
| 	u8 in_erp:1; | 	u8 in_erp:1; | ||||||
|  | @ -1323,7 +1263,6 @@ struct ipr_resource_entry { | ||||||
| 
 | 
 | ||||||
| 	struct ipr_ioa_cfg *ioa_cfg; | 	struct ipr_ioa_cfg *ioa_cfg; | ||||||
| 	struct scsi_device *sdev; | 	struct scsi_device *sdev; | ||||||
| 	struct ipr_sata_port *sata_port; |  | ||||||
| 	struct list_head queue; | 	struct list_head queue; | ||||||
| }; /* struct ipr_resource_entry */ | }; /* struct ipr_resource_entry */ | ||||||
| 
 | 
 | ||||||
|  | @ -1582,7 +1521,6 @@ struct ipr_ioa_cfg { | ||||||
| 	struct ipr_cmnd *reset_cmd; | 	struct ipr_cmnd *reset_cmd; | ||||||
| 	int (*reset) (struct ipr_cmnd *); | 	int (*reset) (struct ipr_cmnd *); | ||||||
| 
 | 
 | ||||||
| 	struct ata_host ata_host; |  | ||||||
| 	char ipr_cmd_label[8]; | 	char ipr_cmd_label[8]; | ||||||
| #define IPR_CMD_LABEL		"ipr_cmd" | #define IPR_CMD_LABEL		"ipr_cmd" | ||||||
| 	u32 max_cmds; | 	u32 max_cmds; | ||||||
|  | @ -1604,7 +1542,6 @@ struct ipr_cmnd { | ||||||
| 	union { | 	union { | ||||||
| 		struct ipr_ioadl_desc ioadl[IPR_NUM_IOADL_ENTRIES]; | 		struct ipr_ioadl_desc ioadl[IPR_NUM_IOADL_ENTRIES]; | ||||||
| 		struct ipr_ioadl64_desc ioadl64[IPR_NUM_IOADL_ENTRIES]; | 		struct ipr_ioadl64_desc ioadl64[IPR_NUM_IOADL_ENTRIES]; | ||||||
| 		struct ipr_ata64_ioadl ata_ioadl; |  | ||||||
| 	} i; | 	} i; | ||||||
| 	union { | 	union { | ||||||
| 		struct ipr_ioasa ioasa; | 		struct ipr_ioasa ioasa; | ||||||
|  | @ -1612,7 +1549,6 @@ struct ipr_cmnd { | ||||||
| 	} s; | 	} s; | ||||||
| 	struct list_head queue; | 	struct list_head queue; | ||||||
| 	struct scsi_cmnd *scsi_cmd; | 	struct scsi_cmnd *scsi_cmd; | ||||||
| 	struct ata_queued_cmd *qc; |  | ||||||
| 	struct completion completion; | 	struct completion completion; | ||||||
| 	struct timer_list timer; | 	struct timer_list timer; | ||||||
| 	struct work_struct work; | 	struct work_struct work; | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 Brian King
						Brian King