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

Commit ffc771b3 authored by Jens Axboe's avatar Jens Axboe
Browse files

mtip32xx: convert to use blk-mq



This rips out timeout handling, requeueing, etc in converting
it to use blk-mq instead.

Acked-by: default avatarAsai Thambi S P <asamymuthupa@micron.com>
Signed-off-by: default avatarJens Axboe <axboe@fb.com>
parent bd6f0bba
Loading
Loading
Loading
Loading
+294 −595

File changed.

Preview size limit exceeded, changes collapsed.

+3 −21
Original line number Diff line number Diff line
@@ -331,12 +331,8 @@ struct mtip_cmd {
	 */
	void (*comp_func)(struct mtip_port *port,
				int tag,
				void *data,
				struct mtip_cmd *cmd,
				int status);
	/* Additional callback function that may be called by comp_func() */
	void (*async_callback)(void *data, int status);

	void *async_data; /* Addl. data passed to async_callback() */

	int scatter_ents; /* Number of scatter list entries used */

@@ -347,10 +343,6 @@ struct mtip_cmd {
	int retries; /* The number of retries left for this command. */

	int direction; /* Data transfer direction */

	unsigned long comp_time; /* command completion time, in jiffies */

	atomic_t active; /* declares if this command sent to the drive. */
};

/* Structure used to describe a port. */
@@ -436,12 +428,6 @@ struct mtip_port {
	 * or error handling is active
	 */
	unsigned long cmds_to_issue[SLOTBITS_IN_LONGS];
	/*
	 * Array of command slots. Structure includes pointers to the
	 * command header and command table, and completion function and data
	 * pointers.
	 */
	struct mtip_cmd commands[MTIP_MAX_COMMAND_SLOTS];
	/* Used by mtip_service_thread to wait for an event */
	wait_queue_head_t svc_wait;
	/*
@@ -452,13 +438,7 @@ struct mtip_port {
	/*
	 * Timer used to complete commands that have been active for too long.
	 */
	struct timer_list cmd_timer;
	unsigned long ic_pause_timer;
	/*
	 * Semaphore used to block threads if there are no
	 * command slots available.
	 */
	struct semaphore cmd_slot;

	/* Semaphore to control queue depth of unaligned IOs */
	struct semaphore cmd_slot_unal;
@@ -485,6 +465,8 @@ struct driver_data {

	struct request_queue *queue; /* Our request queue. */

	struct blk_mq_tag_set tags; /* blk_mq tags */

	struct mtip_port *port; /* Pointer to the port data structure. */

	unsigned product_type; /* magic value declaring the product type */