>
> > @@ -5,6 +5,9 @@ obj-$(CONFIG_SCSI_UFS_DWC_TC_PLATFORM) += tc-
> dwc-g210-pltfrm.o ufshcd-dwc.o tc-d
> > obj-$(CONFIG_SCSI_UFS_QCOM) += ufs-qcom.o
> > obj-$(CONFIG_SCSI_UFSHCD) += ufshcd-core.o
> > ufshcd-core-objs := ufshcd.o ufs-sysfs.o
> > +ifeq ($(CONFIG_SCSI_UFS_BSG),y)
> > +ufshcd-core-objs += ufs_bsg.o
> > +endif
>
> This shoukd be:
>
> ufshcd-core-y += ufshcd.o ufs-sysfs.o
> ufshcd-core-$(CONFIG_SCSI_UFS_BSG) += ufs_bsg.o
Done.
>
> > +#include "ufs_bsg.h"
> > +
> > +struct ufs_bsg_node {
> > + struct device dev;
> > + struct request_queue *q;
> > +};
>
> I think I'd rather see the fields directly in struct ufs_hba as
>
> struct device bsg_dev;
> struct request_queue *bsg_queue;
Done.
>
> > +static int ufs_bsg_request(struct bsg_job *job)
> > +{
> > + struct ufs_bsg_request *bsg_request = job->request;
> > + struct ufs_bsg_reply *bsg_reply = job->reply;
> > + int ret = -ENOTSUPP;
> > +
> > + bsg_reply->reply_payload_rcv_len = 0;
> > +
> > + /* Do Nothing for now */
> > + dev_err(job->dev, "unsupported message_code 0x%x\n",
> > + bsg_request->msgcode);
> > +
> > + bsg_reply->result = ret;
> > + if (ret)
> > + job->reply_len = sizeof(uint32_t);
> > + else
> > + job->reply_len = sizeof(struct ufs_bsg_reply) +
> > + bsg_reply->reply_payload_rcv_len;
> > +
> > + bsg_job_done(job, bsg_reply->result, bsg_reply-
> >reply_payload_rcv_len);
> > +
> > + return ret;
>
> Do we really need to store the Linux return valu in the reply field?
> Having only one length and format would seem a lot more intuitive to me.
We do as we are still using the bsg_transport_ops,
but all this is actually done as part of bsg_job_done and
bsg_transport_complete_rq,
so it's not needed. Will remove it.
Thanks,
Avri