lkml.org 
[lkml]   [2021]   [Feb]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRE: [PATCH v24 4/4] scsi: ufs: Add HPB 2.0 support
Date
> 
>
> > +static int ufshpb_issue_umap_all_req(struct ufshpb_lu *hpb)
> Maybe ufshpb_issue_umap_all_req is just a wrapper for
> ufshpb_issue_umap_req?
> e.g it calls ufshpb_issue_umap_req(hpb, int read_buferr_id = 0x3) ?
> Then on host mode inactivation:
> static int ufshpb_issue_umap_single_req(struct ufshpb_lu *hpb)
> {
> return ufshpb_issue_umap_req(hpb, 0x1);
> }
Better yet, ufshpb_execute_umap_req can get *rgn as an extra argument.
ufshpb_issue_umap_all_req will call it with NULL, while
ufshpb_issue_umap_single_req will call it with the rgn to inactivate.

Then, ufshpb_set_unmap_cmd takes the form:
static void ufshpb_set_unmap_cmd(unsigned char *cdb, struct ufshpb_region *rgn)
{
cdb[0] = UFSHPB_WRITE_BUFFER;

if (rgn) {
cdb[1] = UFSHPB_WRITE_BUFFER_INACT_SINGLE_ID;
put_unaligned_be16(rgn->rgn_idx, &cdb[2]);
} else {
cdb[1] = UFSHPB_WRITE_BUFFER_INACT_ALL_ID;
}

cdb[9] = 0x00;
}

Does it make sense?
Thanks,
Avri
\
 
 \ /
  Last update: 2021-02-24 12:56    [W:0.072 / U:0.640 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site