Thread (14 messages) 14 messages, 3 authors, 2021-02-26

RE: [PATCH v24 4/4] scsi: ufs: Add HPB 2.0 support

From: Avri Altman <Avri.Altman@wdc.com>
Date: 2021-02-24 11:55:26
Also in: lkml

quoted
+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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help