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

Commit d2c3506b authored by David Kershner's avatar David Kershner Committed by Greg Kroah-Hartman
Browse files

staging: unisys: Add s-Par visorhba



This driver create a host bus adapter device when s-Par sends a
device create message to create a storage adapter on the visorbus.
When the message is received by visorbus, the visorhba_probe function
is called and the hba device is created and managed by the visorhba
driver.

Signed-off-by: default avatarErik Arfvidson <erik.arfvidson@unisys.com>
Signed-off-by: default avatarBenjamin Romer <benjamin.romer@unisys.com>
Signed-off-by: default avatarDavid Kershner <david.kershner@unisys.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent a6c8746d
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -14,5 +14,6 @@ if UNISYSSPAR
source "drivers/staging/unisys/visorbus/Kconfig"
source "drivers/staging/unisys/visornic/Kconfig"
source "drivers/staging/unisys/visorhid/Kconfig"
source "drivers/staging/unisys/visorhba/Kconfig"

endif # UNISYSSPAR
+1 −0
Original line number Diff line number Diff line
@@ -4,3 +4,4 @@
obj-$(CONFIG_UNISYS_VISORBUS)		+= visorbus/
obj-$(CONFIG_UNISYS_VISORNIC)		+= visornic/
obj-$(CONFIG_UNISYS_VISORHID)          += visorhid/
obj-$(CONFIG_UNISYS_VISORHBA)		+= visorhba/
+13 −13
Original line number Diff line number Diff line
@@ -147,6 +147,10 @@ struct phys_info {
	u16 pi_len;
} __packed;

#define MIN_NUMSIGNALS 64

/* structs with pragma pack  */

struct guest_phys_info {
	u64 address;
	u64 length;
@@ -183,7 +187,7 @@ struct vhba_config_max { /* 20 bytes */
} __packed;

struct uiscmdrsp_scsi {
	void *scsicmd;		/* the handle to the cmd that was received -
	u64 handle;		/* the handle to the cmd that was received -
				 * send it back as is in the rsp packet.  */
	u8 cmnd[MAX_CMND_SIZE];	/* the cdb for the command */
	u32 bufflen;		/* length of data to be transferred out or in */
@@ -437,24 +441,22 @@ struct uiscmdrsp_scsitaskmgmt {
	struct uisscsi_dest vdest;

	    /* the vdisk for which this task mgmt is generated */
	void *scsicmd;
	u64 handle;

	    /* This is some handle that the guest has saved off for its own use.
	    /* This is a handle that the guest has saved off for its own use.
	     * Its value is preserved by iopart & returned as is in the task
	     * mgmt rsp.
	     */
	void *notify;
	u64 notify_handle;

	   /* For linux guests, this is a pointer to wait_queue_head that a
	    * thread is waiting on to see if the taskmgmt command has completed.
	    * For windows guests, this is a pointer to a location that a waiting
	    * thread is testing to see if the taskmgmt command has completed.
	    * When the rsp is received by guest, the thread receiving the
	    * response uses this to notify the thread waiting for taskmgmt
	    * command completion.  Its value is preserved by iopart & returned
	    * as is in the task mgmt rsp.
	    */
	void *notifyresult;
	u64 notifyresult_handle;

	    /* this is a handle to location in guest where the result of the
	     * taskmgmt command (result field) is to saved off when the response
@@ -486,24 +488,22 @@ struct uiscmdrsp_vdiskmgmt {
	struct uisscsi_dest vdest;

	    /* the vdisk for which this task mgmt is generated */
	void *scsicmd;
	u64 handle;

	    /* This is some handle that the guest has saved off for its own use.
	    /* This is a handle that the guest has saved off for its own use.
	     * Its value is preserved by iopart & returned as is in the task
	     * mgmt rsp.
	     */
	void *notify;
	u64 notify_handle;

	    /* For linux guests, this is a pointer to wait_queue_head that a
	     * thread is waiting on to see if the tskmgmt command has completed.
	     * For win32 guests, this is a pointer to a location that a waiting
	     * thread is testing to see if the taskmgmt command has completed.
	     * When the rsp is received by guest, the thread receiving the
	     * response uses this to notify the thread waiting for taskmgmt
	     * command completion.  Its value is preserved by iopart & returned
	     * as is in the task mgmt rsp.
	     */
	void *notifyresult;
	u64 notifyresult_handle;

	    /* this is a handle to location in guest where the result of the
	     * taskmgmt command (result field) is to saved off when the response
+14 −0
Original line number Diff line number Diff line
#
# Unisys visorhba configuration
#

config UNISYS_VISORHBA
	tristate "Unisys visorhba driver"
	depends on UNISYSSPAR && UNISYS_VISORBUS && SCSI
	---help---
	The Unisys visorhba driver provides support for s-Par HBA
	devices exposed on the s-Par visorbus. When a message is sent
	to visorbus to create a HBA device, the probe function of
	visorhba is called to create the scsi device.
	If you say Y here, you will enable the Unisys visorhba driver.
+10 −0
Original line number Diff line number Diff line
#
# Makefile for Unisys channel
#

obj-$(CONFIG_UNISYS_VISORHBA)	+= visorhba.o

visorhba-y := visorhba_main.o

ccflags-y += -Idrivers/staging/unisys/include
Loading