mirror of
https://github.com/torvalds/linux.git
synced 2024-11-24 21:21:41 +00:00
scsi: ufs: core: Set the Command Priority (CP) flag for RT requests
Make the UFS device execute realtime (RT) requests before other requests. This will be used in Android to reduce the I/O latency of the foreground app. Note: UFS devices do not support CDL so using CDL is not a viable alternative. Signed-off-by: Bart Van Assche <bvanassche@acm.org> Link: https://lore.kernel.org/r/20230921192335.676924-5-bvanassche@acm.org Reviewed-by: Avri Altman <avri.altman@wdc.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
c788cf8a21
commit
00d2fa28da
@ -2717,6 +2717,8 @@ static int ufshcd_compose_devman_upiu(struct ufs_hba *hba,
|
||||
*/
|
||||
static void ufshcd_comp_scsi_upiu(struct ufs_hba *hba, struct ufshcd_lrb *lrbp)
|
||||
{
|
||||
struct request *rq = scsi_cmd_to_rq(lrbp->cmd);
|
||||
unsigned int ioprio_class = IOPRIO_PRIO_CLASS(req_get_ioprio(rq));
|
||||
u8 upiu_flags;
|
||||
|
||||
if (hba->ufs_version <= ufshci_version(1, 1))
|
||||
@ -2726,6 +2728,8 @@ static void ufshcd_comp_scsi_upiu(struct ufs_hba *hba, struct ufshcd_lrb *lrbp)
|
||||
|
||||
ufshcd_prepare_req_desc_hdr(lrbp, &upiu_flags,
|
||||
lrbp->cmd->sc_data_direction, 0);
|
||||
if (ioprio_class == IOPRIO_CLASS_RT)
|
||||
upiu_flags |= UPIU_CMD_FLAGS_CP;
|
||||
ufshcd_prepare_utp_scsi_cmd_upiu(lrbp, upiu_flags);
|
||||
}
|
||||
|
||||
|
@ -98,9 +98,10 @@ enum upiu_response_transaction {
|
||||
UPIU_TRANSACTION_REJECT_UPIU = 0x3F,
|
||||
};
|
||||
|
||||
/* UPIU Read/Write flags */
|
||||
/* UPIU Read/Write flags. See also table "UPIU Flags" in the UFS standard. */
|
||||
enum {
|
||||
UPIU_CMD_FLAGS_NONE = 0x00,
|
||||
UPIU_CMD_FLAGS_CP = 0x04,
|
||||
UPIU_CMD_FLAGS_WRITE = 0x20,
|
||||
UPIU_CMD_FLAGS_READ = 0x40,
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user