Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6a492b0f authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull SCSI updates from James Bottomley:
 "This update includes the usual round of driver updates (fcoe, lpfc,
  ufs, qla2xxx, hisi_sas).  The most important other change is removing
  the flag to allow non-blk_mq on a per host basis (it's unused); there
  is still a global module parameter for all of SCSI just in case.

  The rest are an assortment of minor fixes and typo updates"

* tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (101 commits)
  scsi:libsas: fix oops caused by assigning a freed task to ->lldd_task
  fnic: pci_dma_mapping_error() doesn't return an error code
  scsi: lpfc: avoid harmless comparison warning
  fcoe: implement FIP VLAN responder
  fcoe: Rename 'fip_frame' to 'fip_vn2vn_notify_frame'
  lpfc: call lpfc_sli_validate_fcp_iocb() with the hbalock held
  scsi: ufs: remove unnecessary goto label
  hpsa: change hpsa_passthru_ioctl timeout
  hpsa: correct skipping masked peripherals
  qla2xxx: Update driver version to 8.07.00.38-k
  qla2xxx: Fix BBCR offset
  qla2xxx: Fix duplicate message id.
  qla2xxx: Disable the adapter and skip error recovery in case of register disconnect.
  qla2xxx: Separate ISP type bits out from device type.
  qla2xxx: Correction to function qla26xx_dport_diagnostics().
  qla2xxx: Add support to handle Loop Init error Asynchronus event.
  qla2xxx: Let DPORT be enabled purely by nvram.
  qla2xxx: Add bsg interface to support statistics counter reset.
  qla2xxx: Add bsg interface to support D_Port Diagnostics.
  qla2xxx: Check for device state before unloading the driver.
  ...
parents d85486d4 354a086d
Loading
Loading
Loading
Loading
+26 −0
Original line number Diff line number Diff line
* Universal Flash Storage (UFS) DesignWare Host Controller

DWC_UFS nodes are defined to describe on-chip UFS host controllers and MPHY.
Each UFS controller instance should have its own node.

Required properties:
- compatible	: compatible list must contain the PHY type & version:
			"snps,g210-tc-6.00-20bit"
			"snps,g210-tc-6.00-40bit"
		  complemented with the Controller IP version:
			"snps,dwc-ufshcd-1.40a"
		  complemented with the JEDEC version:
			"jedec,ufs-1.1"
			"jedec,ufs-2.0"

- reg		: <registers mapping>
- interrupts	: <interrupt mapping for UFS host controller IRQ>

Example for a setup using a 1.40a DWC Controller with a 6.00 G210 40-bit TC:
	dwc-ufs@d0000000 {
		compatible = "snps,g210-tc-6.00-40bit",
			     "snps,dwc-ufshcd-1.40a",
			     "jedec,ufs-2.0";
		reg = < 0xd0000000 0x10000 >;
		interrupts = < 24 >;
	};
+2 −2
Original line number Diff line number Diff line
@@ -4,8 +4,8 @@ UFSHC nodes are defined to describe on-chip UFS host controllers.
Each UFS controller instance should have its own node.

Required properties:
- compatible		: must contain "jedec,ufs-1.1", may also list one or more
					  of the following:
- compatible		: must contain "jedec,ufs-1.1" or "jedec,ufs-2.0", may
			  also list one or more of the following:
					  "qcom,msm8994-ufshc"
					  "qcom,msm8996-ufshc"
					  "qcom,ufshc"
+11 −5
Original line number Diff line number Diff line
@@ -213,7 +213,7 @@ S: Maintained
F:	drivers/media/dvb-frontends/a8293*

AACRAID SCSI RAID DRIVER
M:	Adaptec OEM Raid Solutions <aacraid@adaptec.com>
M:	Adaptec OEM Raid Solutions <aacraid@microsemi.com>
L:	linux-scsi@vger.kernel.org
W:	http://www.adaptec.com/
S:	Supported
@@ -4699,7 +4699,7 @@ S: Maintained
F:	drivers/staging/fbtft/

FCOE SUBSYSTEM (libfc, libfcoe, fcoe)
M:	Vasu Dev <vasu.dev@intel.com>
M:	Johannes Thumshirn <jth@kernel.org>
L:	fcoe-devel@open-fcoe.org
W:	www.Open-FCoE.org
S:	Supported
@@ -10260,6 +10260,7 @@ M: "Martin K. Petersen" <martin.petersen@oracle.com>
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/mkp/scsi.git
L:	linux-scsi@vger.kernel.org
S:	Maintained
F:	Documentation/devicetree/bindings/scsi/
F:	drivers/scsi/
F:	include/scsi/

@@ -11894,6 +11895,12 @@ S: Supported
F:	Documentation/scsi/ufs.txt
F:	drivers/scsi/ufs/

UNIVERSAL FLASH STORAGE HOST CONTROLLER DRIVER DWC HOOKS
M:	Joao Pinto <Joao.Pinto@synopsys.com>
L:	linux-scsi@vger.kernel.org
S:	Supported
F:	drivers/scsi/ufs/*dwc*

UNSORTED BLOCK IMAGES (UBI)
M:	Artem Bityutskiy <dedekind1@gmail.com>
M:	Richard Weinberger <richard@nod.at>
@@ -11919,8 +11926,7 @@ S: Maintained
F:	drivers/net/wireless/ath/ar5523/

USB ATTACHED SCSI
M:	Hans de Goede <hdegoede@redhat.com>
M:	Gerd Hoffmann <kraxel@redhat.com>
M:	Oliver Neukum <oneukum@suse.com>
L:	linux-usb@vger.kernel.org
L:	linux-scsi@vger.kernel.org
S:	Maintained
@@ -12419,7 +12425,7 @@ S: Maintained
F:	drivers/net/vmxnet3/

VMware PVSCSI driver
M:	Arvind Kumar <arvindkumar@vmware.com>
M:	Jim Gill <jgill@vmware.com>
M:	VMware PV-Drivers <pv-drivers@vmware.com>
L:	linux-scsi@vger.kernel.org
S:	Maintained
+6 −4
Original line number Diff line number Diff line
@@ -1120,9 +1120,9 @@ process_script_interrupt(__u32 dsps, __u32 dsp, struct scsi_cmnd *SCp,
				"reselection is tag %d, slot %p(%d)\n",
				hostdata->msgin[2], slot, slot->tag);
		} else {
			struct scsi_cmnd *SCp;
			struct NCR_700_Device_Parameters *p = SDp->hostdata;
			struct scsi_cmnd *SCp = p->current_cmnd;

			SCp = SDp->current_cmnd;
			if(unlikely(SCp == NULL)) {
				sdev_printk(KERN_ERR, SDp,
					"no saved request for untagged cmd\n");
@@ -1825,9 +1825,11 @@ NCR_700_queuecommand_lck(struct scsi_cmnd *SCp, void (*done)(struct scsi_cmnd *)
		CDEBUG(KERN_DEBUG, SCp, "sending out tag %d, slot %p\n",
		       slot->tag, slot);
	} else {
		struct NCR_700_Device_Parameters *p = SCp->device->hostdata;

		slot->tag = SCSI_NO_TAG;
		/* save current command for reselection */
		SCp->device->current_cmnd = SCp;
		p->current_cmnd = SCp;
	}
	/* sanity check: some of the commands generated by the mid-layer
	 * have an eccentric idea of their sc_data_direction */
@@ -1892,7 +1894,7 @@ NCR_700_queuecommand_lck(struct scsi_cmnd *SCp, void (*done)(struct scsi_cmnd *)
		slot->SG[i].ins = bS_to_host(SCRIPT_RETURN);
		slot->SG[i].pAddr = 0;
		dma_cache_sync(hostdata->dev, slot->SG, sizeof(slot->SG), DMA_TO_DEVICE);
		DEBUG((" SETTING %08lx to %x\n",
		DEBUG((" SETTING %p to %x\n",
		       (&slot->pSG[i].ins),
		       slot->SG[i].ins));
	}
+9 −6
Original line number Diff line number Diff line
@@ -82,6 +82,7 @@ struct NCR_700_Device_Parameters {
	 * cmnd[1], this could be in static storage */
	unsigned char cmnd[MAX_COMMAND_SIZE];
	__u8	depth;
	struct scsi_cmnd *current_cmnd;	/* currently active command */
};


@@ -423,23 +424,25 @@ struct NCR_700_Host_Parameters {
#define script_patch_32(dev, script, symbol, value) \
{ \
	int i; \
	dma_addr_t da = value; \
	for(i=0; i< (sizeof(A_##symbol##_used) / sizeof(__u32)); i++) { \
		__u32 val = bS_to_cpu((script)[A_##symbol##_used[i]]) + value; \
		__u32 val = bS_to_cpu((script)[A_##symbol##_used[i]]) + da; \
		(script)[A_##symbol##_used[i]] = bS_to_host(val); \
		dma_cache_sync((dev), &(script)[A_##symbol##_used[i]], 4, DMA_TO_DEVICE); \
		DEBUG((" script, patching %s at %d to 0x%lx\n", \
		       #symbol, A_##symbol##_used[i], (value))); \
		DEBUG((" script, patching %s at %d to %pad\n", \
		       #symbol, A_##symbol##_used[i], &da)); \
	} \
}

#define script_patch_32_abs(dev, script, symbol, value) \
{ \
	int i; \
	dma_addr_t da = value; \
	for(i=0; i< (sizeof(A_##symbol##_used) / sizeof(__u32)); i++) { \
		(script)[A_##symbol##_used[i]] = bS_to_host(value); \
		(script)[A_##symbol##_used[i]] = bS_to_host(da); \
		dma_cache_sync((dev), &(script)[A_##symbol##_used[i]], 4, DMA_TO_DEVICE); \
		DEBUG((" script, patching %s at %d to 0x%lx\n", \
		       #symbol, A_##symbol##_used[i], (value))); \
		DEBUG((" script, patching %s at %d to %pad\n", \
		       #symbol, A_##symbol##_used[i], &da)); \
	} \
}

Loading