All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alim Akhtar <alim.akhtar@samsung.com>
To: amit daniel kachhap <amit.daniel@samsung.com>
Cc: linux-scsi@vger.kernel.org,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	vinholikatti@gmail.com, JBottomley@odin.com, essuuj@gmail.com
Subject: Re: [PATCH 07/10] scsi: ufs: add add specific callback for hibern8
Date: Thu, 17 Sep 2015 14:01:50 +0530	[thread overview]
Message-ID: <55FA7A76.2080705@samsung.com> (raw)
In-Reply-To: <CADGdYn4Vuz9ruC0y2mQrMOCRpWJfk9aF61Uk+AGKBgBSO1UZSg@mail.gmail.com>

Hi Amit,

On 08/26/2015 11:51 AM, amit daniel kachhap wrote:
> On Fri, Aug 21, 2015 at 2:57 PM, Alim Akhtar <alim.akhtar@samsung.com> wrote:
>> From: Seungwon Jeon <tgih.jun@samsung.com>
>>
>> Some host controller needs specific handling before/after
>> (un)hibernation, This change adds specific callback function
>> to support vendor's implementation.
>>
>> Signed-off-by: Seungwon Jeon <tgih.jun@samsung.com>
>> Signed-off-by: Alim Akhtar <alim.akhtar@samsung.com>
>> ---
>>   drivers/scsi/ufs/ufshcd.c |   36 ++++++++++++++++++++++++++++++++----
>>   drivers/scsi/ufs/ufshcd.h |    3 +++
>>   2 files changed, 35 insertions(+), 4 deletions(-)
>>
>> diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
>> index bc27f5e..d425ea1 100644
>> --- a/drivers/scsi/ufs/ufshcd.c
>> +++ b/drivers/scsi/ufs/ufshcd.c
>> @@ -181,8 +181,7 @@ static int ufshcd_probe_hba(struct ufs_hba *hba);
>>   static int __ufshcd_setup_clocks(struct ufs_hba *hba, bool on,
>>                                   bool skip_ref_clk);
>>   static int ufshcd_setup_clocks(struct ufs_hba *hba, bool on);
>> -static int ufshcd_uic_hibern8_exit(struct ufs_hba *hba);
>> -static int ufshcd_uic_hibern8_enter(struct ufs_hba *hba);
>> +static int ufshcd_uic_hibern8_ctrl(struct ufs_hba *hba, bool en);
>>   static inline void ufshcd_add_delay_before_dme_cmd(struct ufs_hba *hba);
>>   static int ufshcd_host_reset_and_restore(struct ufs_hba *hba);
>>   static irqreturn_t ufshcd_intr(int irq, void *__hba);
>> @@ -215,6 +214,16 @@ static inline void ufshcd_disable_irq(struct ufs_hba *hba)
>>          }
>>   }
>>
>> +static inline int ufshcd_uic_hibern8_enter(struct ufs_hba *hba)
>> +{
>> +       return ufshcd_uic_hibern8_ctrl(hba, true);
>> +}
>> +
>> +static inline int ufshcd_uic_hibern8_exit(struct ufs_hba *hba)
>> +{
>> +       return ufshcd_uic_hibern8_ctrl(hba, false);
>> +}
>> +
>>   /*
>>    * ufshcd_wait_for_register - wait for register value to change
>>    * @hba - per-adapter interface
>> @@ -2395,7 +2404,7 @@ out:
>>          return ret;
>>   }
>>
>> -static int ufshcd_uic_hibern8_enter(struct ufs_hba *hba)
>> +static int __ufshcd_uic_hibern8_enter(struct ufs_hba *hba)
>>   {
>>          struct uic_command uic_cmd = {0};
>>
>> @@ -2404,7 +2413,7 @@ static int ufshcd_uic_hibern8_enter(struct ufs_hba *hba)
>>          return ufshcd_uic_pwr_ctrl(hba, &uic_cmd);
>>   }
>>
>> -static int ufshcd_uic_hibern8_exit(struct ufs_hba *hba)
>> +static int __ufshcd_uic_hibern8_exit(struct ufs_hba *hba)
>>   {
>>          struct uic_command uic_cmd = {0};
>>          int ret;
>> @@ -2419,6 +2428,25 @@ static int ufshcd_uic_hibern8_exit(struct ufs_hba *hba)
>>          return ret;
>>   }
>>
>> +static int ufshcd_uic_hibern8_ctrl(struct ufs_hba *hba, bool en)
>> +{
>> +       int ret;
>> +
>> +       if (hba->vops && hba->vops->hibern8_notify)
>> +               hba->vops->hibern8_notify(hba, en, PRE_CHANGE);
> Return of hibern8_notify is not checked. Otherwise make the return type void.
ok will change.
>> +
>> +       ret = en ? __ufshcd_uic_hibern8_enter(hba) :
>> +                       __ufshcd_uic_hibern8_exit(hba);
>> +       if (ret)
>> +               goto out;
>> +
>> +       if (hba->vops && hba->vops->hibern8_notify)
>> +               hba->vops->hibern8_notify(hba, en, POST_CHANGE);
>> +
>> +out:
>> +       return ret;
>> +}
>> +
>>    /**
>>    * ufshcd_init_pwr_info - setting the POR (power on reset)
>>    * values in hba power info
>> diff --git a/drivers/scsi/ufs/ufshcd.h b/drivers/scsi/ufs/ufshcd.h
>> index 0b7dde0..045968e 100644
>> --- a/drivers/scsi/ufs/ufshcd.h
>> +++ b/drivers/scsi/ufs/ufshcd.h
>> @@ -260,6 +260,8 @@ struct ufs_pwr_mode_info {
>>    * @specify_nexus_t_xfer_req:
>>    * @specify_nexus_t_tm_req: called before command is issued to allow vendor
>>    *                     specific handling to be set for nexus type.
>> + * @hibern8_notify: called before and after hibernate/unhibernate is carried out
>> + *                 to allow vendor spesific implementation.
>>    * @suspend: called during host controller PM callback
>>    * @resume: called during host controller PM callback
>>    */
>> @@ -276,6 +278,7 @@ struct ufs_hba_variant_ops {
>>          int     (*pwr_change_notify)(struct ufs_hba *,
>>                                          bool, struct ufs_pa_layer_attr *,
>>                                          struct ufs_pa_layer_attr *);
>> +       int     (*hibern8_notify)(struct ufs_hba *, bool, bool);
>>          void    (*specify_nexus_t_xfer_req)(struct ufs_hba *,
>>                                              int, struct scsi_cmnd *);
>>          void    (*specify_nexus_t_tm_req)(struct ufs_hba *, int, u8);
>> --
>> 1.7.10.4
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>> Please read the FAQ at  http://www.tux.org/lkml/
>

  reply	other threads:[~2015-09-17  8:31 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-08-21  9:27 [PATCH 00/10] exynos-ufs: add support for Exynos Alim Akhtar
2015-08-21  9:27 ` [PATCH 01/10] phy: exynos-ufs: add UFS PHY driver for EXYNOS SoC Alim Akhtar
2015-08-23 22:45   ` Alexey Klimov
2015-08-28 13:01     ` Alim Akhtar
2015-08-26  6:09   ` amit daniel kachhap
2015-09-18  5:35   ` Kishon Vijay Abraham I
2015-09-18  5:35     ` Kishon Vijay Abraham I
2015-10-01  4:28     ` Alim Akhtar
2015-08-21  9:27 ` [PATCH 02/10] scsi: ufs: add quirk to contain unconformable utrd field Alim Akhtar
2015-08-26  6:13   ` amit daniel kachhap
2015-08-28  9:33     ` Alim Akhtar
2015-08-21  9:27 ` [PATCH 03/10] scsi: ufs: add quirk to fix mishandling utrlclr/utmrlclr Alim Akhtar
2015-08-21  9:27 ` [PATCH 04/10] scsi: ufs: add quirk not to allow reset of interrupt aggregation Alim Akhtar
2015-08-26  6:16   ` amit daniel kachhap
2015-09-17  8:30     ` Alim Akhtar
2015-08-21  9:27 ` [PATCH 05/10] scsi: ufs: add quirk to enable host controller without hce Alim Akhtar
2015-08-21  9:27 ` [PATCH 06/10] scsi: ufs: add specific callback for nexus type Alim Akhtar
2015-08-21  9:27 ` [PATCH 07/10] scsi: ufs: add add specific callback for hibern8 Alim Akhtar
2015-08-26  6:21   ` amit daniel kachhap
2015-09-17  8:31     ` Alim Akhtar [this message]
2015-08-21  9:27 ` [PATCH 08/10] scsi: ufs: make ufshcd_config_pwr_mode of non-static func Alim Akhtar
2015-08-26  6:23   ` amit daniel kachhap
2015-09-17  8:33     ` Alim Akhtar
2015-08-21  9:28 ` [PATCH 09/10] scsi: ufs: return value of pwr_change_notify Alim Akhtar
2015-08-26  6:25   ` amit daniel kachhap
2015-09-17  8:33     ` Alim Akhtar
2015-08-21  9:28 ` [PATCH 10/10] scsi: ufs-exynos: add UFS host support for Exynos SoCs Alim Akhtar
2015-08-26  6:42   ` amit daniel kachhap
2015-09-17  5:34     ` Alim Akhtar

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=55FA7A76.2080705@samsung.com \
    --to=alim.akhtar@samsung.com \
    --cc=JBottomley@odin.com \
    --cc=amit.daniel@samsung.com \
    --cc=essuuj@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=vinholikatti@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.