Re: [PATCH v5 6/8] scsi: ufs: make the UFS variant a platform device

From: ygardi
Date: Wed Sep 02 2015 - 12:03:56 EST


> On Wed, Sep 2, 2015 at 3:32 AM, Yaniv Gardi <ygardi@xxxxxxxxxxxxxx> wrote:
>> This change turns the UFS variant (SCSI_UFS_QCOM) into a UFS
>> a platform device.
>> In order to do so a few additional changes are required:
>> 1. The ufshcd-pltfrm is no longer serves as a platform device.
>> Now it only serves as a group of platform APIs such as PM APIs
>> (runtime suspend/resume, system suspend/resume etc), parsers of
>> clocks, regulators and pm_levels from DT.
>> 2. What used to be the old platform "probe" is now "only"
>> a pltfrm_init() routine, that does exactly the same, but only
>> being called by the new probe function of the UFS variant.
>>
>> Signed-off-by: Yaniv Gardi <ygardi@xxxxxxxxxxxxxx>
>
> [...]
>
>> diff --git a/drivers/scsi/ufs/ufs-qcom.c b/drivers/scsi/ufs/ufs-qcom.c
>> index 329ac84..5179250 100644
>> --- a/drivers/scsi/ufs/ufs-qcom.c
>> +++ b/drivers/scsi/ufs/ufs-qcom.c
>> @@ -19,6 +19,7 @@
>>
>> #include <linux/phy/phy-qcom-ufs.h>
>> #include "ufshcd.h"
>> +#include "ufshcd-pltfrm.h"
>> #include "unipro.h"
>> #include "ufs-qcom.h"
>> #include "ufshci.h"
>> @@ -1036,7 +1037,7 @@ void ufs_qcom_clk_scale_notify(struct ufs_hba
>> *hba)
>> * The variant operations configure the necessary controller and PHY
>> * handshake during initialization.
>> */
>> -static const struct ufs_hba_variant_ops ufs_hba_qcom_vops = {
>> +static struct ufs_hba_variant_ops ufs_hba_qcom_vops = {
>> .name = "qcom",
>> .init = ufs_qcom_init,
>> .exit = ufs_qcom_exit,
>> @@ -1050,4 +1051,75 @@ static const struct ufs_hba_variant_ops
>> ufs_hba_qcom_vops = {
>> .resume = ufs_qcom_resume,
>> };
>>
>> +/**
>> + * ufs_qcom_probe - probe routine of the driver
>> + * @pdev: pointer to Platform device handle
>> + *
>> + * Always return 0
>> + */
>> +static int ufs_qcom_probe(struct platform_device *pdev)
>> +{
>> + int err;
>> + struct device *dev = &pdev->dev;
>> + struct ufs_hba *hba;
>> +
>> + /* Perform generic probe */
>> + err = ufshcd_pltfrm_init(pdev, &ufs_hba_qcom_vops);
>> + if (err) {
>> + dev_err(dev, "ufshcd_pltfrm_init() failed %d\n", err);
>> + goto out;
>> + }
>> +
>
> All of this:
>
>> + hba = platform_get_drvdata(pdev);
>> +
>> + return 0;
>> +
>> +dealloc_host:
>> + /* disconnect the bind between the qcom host and the hba */
>> + ufshcd_set_variant(hba, NULL);
>> + ufshcd_dealloc_host(hba);
>
> To this is dead code. You should get a warning that dealloc_host is
> unused. Please check and fix all warnings.
>
> Rob
>

correct. V7 has taken care of that.
thanks,
Yaniv

>> +out:
>> + return err;
>> +}
>> +
> --
> To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/