mirror of https://github.com/OpenIPC/firmware.git
				
				
				
			
		
			
				
	
	
		
			47 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Diff
		
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Diff
		
	
	
| --- linux-4.9.37/drivers/mmc/card/queue.h	2017-07-12 16:42:41.000000000 +0300
 | |
| +++ linux-4.9.y/drivers/mmc/card/queue.h	2021-06-07 13:01:33.000000000 +0300
 | |
| @@ -48,6 +48,7 @@
 | |
|  	struct mmc_async_req	mmc_active;
 | |
|  	enum mmc_packed_type	cmd_type;
 | |
|  	struct mmc_packed	*packed;
 | |
| +	struct mmc_cmdq_req	cmdq_req;
 | |
|  };
 | |
|  
 | |
|  struct mmc_queue {
 | |
| @@ -62,12 +63,25 @@
 | |
|  	struct mmc_queue_req	mqrq[2];
 | |
|  	struct mmc_queue_req	*mqrq_cur;
 | |
|  	struct mmc_queue_req	*mqrq_prev;
 | |
| +	struct mmc_queue_req	*mqrq_cmdq;
 | |
| +	struct work_struct	cmdq_err_work;
 | |
| +
 | |
| +	struct completion	cmdq_pending_req_done;
 | |
| +	struct completion	cmdq_shutdown_complete;
 | |
| +	struct request		*cmdq_req_peeked;
 | |
| +
 | |
| +	int (*cmdq_issue_fn)(struct mmc_queue *,
 | |
| +			     struct request *);
 | |
| +	void (*cmdq_complete_fn)(struct request *);
 | |
| +	void (*cmdq_error_fn)(struct mmc_queue *);
 | |
| +	enum blk_eh_timer_return (*cmdq_req_timed_out)(struct request *);
 | |
| +	void (*cmdq_shutdown)(struct mmc_queue *);
 | |
|  };
 | |
|  
 | |
|  extern int mmc_init_queue(struct mmc_queue *, struct mmc_card *, spinlock_t *,
 | |
| -			  const char *);
 | |
| +			  const char *, int);
 | |
|  extern void mmc_cleanup_queue(struct mmc_queue *);
 | |
| -extern void mmc_queue_suspend(struct mmc_queue *);
 | |
| +extern int mmc_queue_suspend(struct mmc_queue *, int);
 | |
|  extern void mmc_queue_resume(struct mmc_queue *);
 | |
|  
 | |
|  extern unsigned int mmc_queue_map_sg(struct mmc_queue *,
 | |
| @@ -79,5 +93,6 @@
 | |
|  extern void mmc_packed_clean(struct mmc_queue *);
 | |
|  
 | |
|  extern int mmc_access_rpmb(struct mmc_queue *);
 | |
| -
 | |
| +extern int mmc_cmdq_init(struct mmc_queue *mq, struct mmc_card *card);
 | |
| +extern void mmc_cmdq_clean(struct mmc_queue *mq, struct mmc_card *card);
 | |
|  #endif
 |