All of lore.kernel.org
 help / color / mirror / Atom feed
From: Subhash Jadavani <subhashj@codeaurora.org>
To: Adrian Hunter <adrian.hunter@intel.com>
Cc: Chris Ball <cjb@laptop.org>,
	linux-mmc@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	linux-omap@vger.kernel.org, Rajendra Nayak <rnayak@ti.com>,
	Venkatraman S <svenkatr@ti.com>,
	Kukjin Kim <kgene.kim@samsung.com>,
	Thomas Abraham <thomas.abraham@linaro.org>,
	Kyungmin Park <kyungmin.park@samsung.com>,
	Sekhar Nori <nsekhar@ti.com>, Kevin Hilman <khilman@ti.com>
Subject: Re: [PATCH V2 1/1] mmc: start removing enable / disable API
Date: Thu, 01 Mar 2012 15:51:02 +0530	[thread overview]
Message-ID: <4F4F4D8E.5030305@codeaurora.org> (raw)
In-Reply-To: <4F4F31A7.3060307@intel.com>

On 3/1/2012 1:51 PM, Adrian Hunter wrote:
> On 01/03/12 10:08, Subhash Jadavani wrote:
>> On 2/29/2012 12:47 PM, Adrian Hunter wrote:
>>> Most parts of the enable / disable API are no longer used and
>>> can be removed.
>>>
>>> Cc: Rajendra Nayak<rnayak@ti.com>
>>> Cc: Venkatraman S<svenkatr@ti.com>
>>> Cc: Kukjin Kim<kgene.kim@samsung.com>
>>> Cc: Thomas Abraham<thomas.abraham@linaro.org>
>>> Cc: Kyungmin Park<kyungmin.park@samsung.com>
>>> Cc: Sekhar Nori<nsekhar@ti.com>
>>> Cc: Kevin Hilman<khilman@ti.com>
>>> Signed-off-by: Adrian Hunter<adrian.hunter@intel.com>
>>> ---
>>>    arch/arm/mach-exynos/mach-nuri.c           |    5 +-
>>>    arch/arm/mach-exynos/mach-universal_c210.c |    9 +-
>>>    drivers/mmc/core/core.c                    |  187
>>> +++-------------------------
>>>    drivers/mmc/core/host.c                    |    1 -
>>>    drivers/mmc/core/host.h                    |    1 -
>>>    drivers/mmc/host/davinci_mmc.c             |    4 -
>>>    drivers/mmc/host/omap_hsmmc.c              |   15 +--
>>>    include/linux/mmc/core.h                   |    1 -
>>>    include/linux/mmc/host.h                   |   46 +------
>>>    9 files changed, 27 insertions(+), 242 deletions(-)
>>>
>>> diff --git a/arch/arm/mach-exynos/mach-nuri.c
>>> b/arch/arm/mach-exynos/mach-nuri.c
>>> index 644af11..de68248 100644
>>> --- a/arch/arm/mach-exynos/mach-nuri.c
>>> +++ b/arch/arm/mach-exynos/mach-nuri.c
>>> @@ -109,7 +109,7 @@ static struct s3c_sdhci_platdata nuri_hsmmc0_data
>>> __initdata = {
>>>        .max_width        = 8,
>>>        .host_caps        = (MMC_CAP_8_BIT_DATA | MMC_CAP_4_BIT_DATA |
>>>                    MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED |
>>> -                MMC_CAP_DISABLE | MMC_CAP_ERASE),
>>> +                MMC_CAP_ERASE),
>>>        .cd_type        = S3C_SDHCI_CD_PERMANENT,
>>>    };
>>>
>>> @@ -147,8 +147,7 @@ static struct platform_device emmc_fixed_voltage = {
>>>    static struct s3c_sdhci_platdata nuri_hsmmc2_data __initdata = {
>>>        .max_width        = 4,
>>>        .host_caps        = MMC_CAP_4_BIT_DATA |
>>> -                MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED |
>>> -                MMC_CAP_DISABLE,
>>> +                MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED,
>>>        .ext_cd_gpio        = EXYNOS4_GPX3(3),    /* XEINT_27 */
>>>        .ext_cd_gpio_invert    = 1,
>>>        .cd_type        = S3C_SDHCI_CD_GPIO,
>>> diff --git a/arch/arm/mach-exynos/mach-universal_c210.c
>>> b/arch/arm/mach-exynos/mach-universal_c210.c
>>> index 9b3fbae..57cfe61 100644
>>> --- a/arch/arm/mach-exynos/mach-universal_c210.c
>>> +++ b/arch/arm/mach-exynos/mach-universal_c210.c
>>> @@ -734,8 +734,7 @@ static struct platform_device universal_gpio_keys = {
>>>    static struct s3c_sdhci_platdata universal_hsmmc0_data __initdata = {
>>>        .max_width        = 8,
>>>        .host_caps        = (MMC_CAP_8_BIT_DATA | MMC_CAP_4_BIT_DATA |
>>> -                MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED |
>>> -                MMC_CAP_DISABLE),
>>> +                MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED),
>>>        .cd_type        = S3C_SDHCI_CD_PERMANENT,
>>>    };
>>>
>>> @@ -772,8 +771,7 @@ static struct platform_device mmc0_fixed_voltage = {
>>>    static struct s3c_sdhci_platdata universal_hsmmc2_data __initdata = {
>>>        .max_width        = 4,
>>>        .host_caps        = MMC_CAP_4_BIT_DATA |
>>> -                MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED |
>>> -                MMC_CAP_DISABLE,
>>> +                MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED,
>>>        .ext_cd_gpio        = EXYNOS4_GPX3(4),      /* XEINT_28 */
>>>        .ext_cd_gpio_invert    = 1,
>>>        .cd_type        = S3C_SDHCI_CD_GPIO,
>>> @@ -783,8 +781,7 @@ static struct s3c_sdhci_platdata universal_hsmmc2_data
>>> __initdata = {
>>>    static struct s3c_sdhci_platdata universal_hsmmc3_data __initdata = {
>>>        .max_width        = 4,
>>>        .host_caps        = MMC_CAP_4_BIT_DATA |
>>> -                MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED |
>>> -                MMC_CAP_DISABLE,
>>> +                MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED,
>>>        .cd_type        = S3C_SDHCI_CD_EXTERNAL,
>>>    };
>>>
>>> diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c
>>> index 0b317f0..44dd013 100644
>>> --- a/drivers/mmc/core/core.c
>>> +++ b/drivers/mmc/core/core.c
>>> @@ -605,105 +605,6 @@ unsigned int mmc_align_data_size(struct mmc_card
>>> *card, unsigned int sz)
>>>    EXPORT_SYMBOL(mmc_align_data_size);
>>>
>>>    /**
>>> - *    mmc_host_enable - enable a host.
>>> - *    @host: mmc host to enable
>>> - *
>>> - *    Hosts that support power saving can use the 'enable' and 'disable'
>>> - *    methods to exit and enter power saving states. For more information
>>> - *    see comments for struct mmc_host_ops.
>>> - */
>>> -int mmc_host_enable(struct mmc_host *host)
>>> -{
>>> -    if (!(host->caps&   MMC_CAP_DISABLE))
>>> -        return 0;
>>> -
>>> -    if (host->en_dis_recurs)
>>> -        return 0;
>>> -
>>> -    if (host->nesting_cnt++)
>>> -        return 0;
>>> -
>>> -    cancel_delayed_work_sync(&host->disable);
>>> -
>>> -    if (host->enabled)
>>> -        return 0;
>>> -
>>> -    if (host->ops->enable) {
>>> -        int err;
>>> -
>>> -        host->en_dis_recurs = 1;
>>> -        mmc_host_clk_hold(host);
>>> -        err = host->ops->enable(host);
>>> -        mmc_host_clk_release(host);
>>> -        host->en_dis_recurs = 0;
>>> -
>>> -        if (err) {
>>> -            pr_debug("%s: enable error %d\n",
>>> -                 mmc_hostname(host), err);
>>> -            return err;
>>> -        }
>>> -    }
>>> -    host->enabled = 1;
>>> -    return 0;
>>> -}
>>> -EXPORT_SYMBOL(mmc_host_enable);
>>> -
>>> -static int mmc_host_do_disable(struct mmc_host *host, int lazy)
>>> -{
>>> -    if (host->ops->disable) {
>>> -        int err;
>>> -
>>> -        host->en_dis_recurs = 1;
>>> -        mmc_host_clk_hold(host);
>>> -        err = host->ops->disable(host, lazy);
>>> -        mmc_host_clk_release(host);
>>> -        host->en_dis_recurs = 0;
>>> -
>>> -        if (err<   0) {
>>> -            pr_debug("%s: disable error %d\n",
>>> -                 mmc_hostname(host), err);
>>> -            return err;
>>> -        }
>>> -        if (err>   0) {
>>> -            unsigned long delay = msecs_to_jiffies(err);
>>> -
>>> -            mmc_schedule_delayed_work(&host->disable, delay);
>>> -        }
>>> -    }
>>> -    host->enabled = 0;
>>> -    return 0;
>>> -}
>>> -
>>> -/**
>>> - *    mmc_host_disable - disable a host.
>>> - *    @host: mmc host to disable
>>> - *
>>> - *    Hosts that support power saving can use the 'enable' and 'disable'
>>> - *    methods to exit and enter power saving states. For more information
>>> - *    see comments for struct mmc_host_ops.
>>> - */
>>> -int mmc_host_disable(struct mmc_host *host)
>>> -{
>>> -    int err;
>>> -
>>> -    if (!(host->caps&   MMC_CAP_DISABLE))
>>> -        return 0;
>>> -
>>> -    if (host->en_dis_recurs)
>>> -        return 0;
>>> -
>>> -    if (--host->nesting_cnt)
>>> -        return 0;
>>> -
>>> -    if (!host->enabled)
>>> -        return 0;
>>> -
>>> -    err = mmc_host_do_disable(host, 0);
>>> -    return err;
>>> -}
>>> -EXPORT_SYMBOL(mmc_host_disable);
>>> -
>>> -/**
>>>     *    __mmc_claim_host - exclusively claim a host
>>>     *    @host: mmc host to claim
>>>     *    @abort: whether or not the operation should be aborted
>>> @@ -741,8 +642,8 @@ int __mmc_claim_host(struct mmc_host *host, atomic_t
>>> *abort)
>>>            wake_up(&host->wq);
>>>        spin_unlock_irqrestore(&host->lock, flags);
>>>        remove_wait_queue(&host->wq,&wait);
>>> -    if (!stop)
>>> -        mmc_host_enable(host);
>>> +    if (host->ops->enable&&   !stop&&   host->claim_cnt == 1)
>> Shouldn't we still make sure that clocks are hold (by calling
>> mmc_host_clk_hold() ) before calling enable?
> The only enable / disable user is omap_hsmmc which uses it to get
> and put runtime pm, so there is no reason to hold / release clock
> gating - since that path will also get / put runtime pm which is synchronized.
Ok.

> --
> To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html


WARNING: multiple messages have this Message-ID (diff)
From: subhashj@codeaurora.org (Subhash Jadavani)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH V2 1/1] mmc: start removing enable / disable API
Date: Thu, 01 Mar 2012 15:51:02 +0530	[thread overview]
Message-ID: <4F4F4D8E.5030305@codeaurora.org> (raw)
In-Reply-To: <4F4F31A7.3060307@intel.com>

On 3/1/2012 1:51 PM, Adrian Hunter wrote:
> On 01/03/12 10:08, Subhash Jadavani wrote:
>> On 2/29/2012 12:47 PM, Adrian Hunter wrote:
>>> Most parts of the enable / disable API are no longer used and
>>> can be removed.
>>>
>>> Cc: Rajendra Nayak<rnayak@ti.com>
>>> Cc: Venkatraman S<svenkatr@ti.com>
>>> Cc: Kukjin Kim<kgene.kim@samsung.com>
>>> Cc: Thomas Abraham<thomas.abraham@linaro.org>
>>> Cc: Kyungmin Park<kyungmin.park@samsung.com>
>>> Cc: Sekhar Nori<nsekhar@ti.com>
>>> Cc: Kevin Hilman<khilman@ti.com>
>>> Signed-off-by: Adrian Hunter<adrian.hunter@intel.com>
>>> ---
>>>    arch/arm/mach-exynos/mach-nuri.c           |    5 +-
>>>    arch/arm/mach-exynos/mach-universal_c210.c |    9 +-
>>>    drivers/mmc/core/core.c                    |  187
>>> +++-------------------------
>>>    drivers/mmc/core/host.c                    |    1 -
>>>    drivers/mmc/core/host.h                    |    1 -
>>>    drivers/mmc/host/davinci_mmc.c             |    4 -
>>>    drivers/mmc/host/omap_hsmmc.c              |   15 +--
>>>    include/linux/mmc/core.h                   |    1 -
>>>    include/linux/mmc/host.h                   |   46 +------
>>>    9 files changed, 27 insertions(+), 242 deletions(-)
>>>
>>> diff --git a/arch/arm/mach-exynos/mach-nuri.c
>>> b/arch/arm/mach-exynos/mach-nuri.c
>>> index 644af11..de68248 100644
>>> --- a/arch/arm/mach-exynos/mach-nuri.c
>>> +++ b/arch/arm/mach-exynos/mach-nuri.c
>>> @@ -109,7 +109,7 @@ static struct s3c_sdhci_platdata nuri_hsmmc0_data
>>> __initdata = {
>>>        .max_width        = 8,
>>>        .host_caps        = (MMC_CAP_8_BIT_DATA | MMC_CAP_4_BIT_DATA |
>>>                    MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED |
>>> -                MMC_CAP_DISABLE | MMC_CAP_ERASE),
>>> +                MMC_CAP_ERASE),
>>>        .cd_type        = S3C_SDHCI_CD_PERMANENT,
>>>    };
>>>
>>> @@ -147,8 +147,7 @@ static struct platform_device emmc_fixed_voltage = {
>>>    static struct s3c_sdhci_platdata nuri_hsmmc2_data __initdata = {
>>>        .max_width        = 4,
>>>        .host_caps        = MMC_CAP_4_BIT_DATA |
>>> -                MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED |
>>> -                MMC_CAP_DISABLE,
>>> +                MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED,
>>>        .ext_cd_gpio        = EXYNOS4_GPX3(3),    /* XEINT_27 */
>>>        .ext_cd_gpio_invert    = 1,
>>>        .cd_type        = S3C_SDHCI_CD_GPIO,
>>> diff --git a/arch/arm/mach-exynos/mach-universal_c210.c
>>> b/arch/arm/mach-exynos/mach-universal_c210.c
>>> index 9b3fbae..57cfe61 100644
>>> --- a/arch/arm/mach-exynos/mach-universal_c210.c
>>> +++ b/arch/arm/mach-exynos/mach-universal_c210.c
>>> @@ -734,8 +734,7 @@ static struct platform_device universal_gpio_keys = {
>>>    static struct s3c_sdhci_platdata universal_hsmmc0_data __initdata = {
>>>        .max_width        = 8,
>>>        .host_caps        = (MMC_CAP_8_BIT_DATA | MMC_CAP_4_BIT_DATA |
>>> -                MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED |
>>> -                MMC_CAP_DISABLE),
>>> +                MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED),
>>>        .cd_type        = S3C_SDHCI_CD_PERMANENT,
>>>    };
>>>
>>> @@ -772,8 +771,7 @@ static struct platform_device mmc0_fixed_voltage = {
>>>    static struct s3c_sdhci_platdata universal_hsmmc2_data __initdata = {
>>>        .max_width        = 4,
>>>        .host_caps        = MMC_CAP_4_BIT_DATA |
>>> -                MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED |
>>> -                MMC_CAP_DISABLE,
>>> +                MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED,
>>>        .ext_cd_gpio        = EXYNOS4_GPX3(4),      /* XEINT_28 */
>>>        .ext_cd_gpio_invert    = 1,
>>>        .cd_type        = S3C_SDHCI_CD_GPIO,
>>> @@ -783,8 +781,7 @@ static struct s3c_sdhci_platdata universal_hsmmc2_data
>>> __initdata = {
>>>    static struct s3c_sdhci_platdata universal_hsmmc3_data __initdata = {
>>>        .max_width        = 4,
>>>        .host_caps        = MMC_CAP_4_BIT_DATA |
>>> -                MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED |
>>> -                MMC_CAP_DISABLE,
>>> +                MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED,
>>>        .cd_type        = S3C_SDHCI_CD_EXTERNAL,
>>>    };
>>>
>>> diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c
>>> index 0b317f0..44dd013 100644
>>> --- a/drivers/mmc/core/core.c
>>> +++ b/drivers/mmc/core/core.c
>>> @@ -605,105 +605,6 @@ unsigned int mmc_align_data_size(struct mmc_card
>>> *card, unsigned int sz)
>>>    EXPORT_SYMBOL(mmc_align_data_size);
>>>
>>>    /**
>>> - *    mmc_host_enable - enable a host.
>>> - *    @host: mmc host to enable
>>> - *
>>> - *    Hosts that support power saving can use the 'enable' and 'disable'
>>> - *    methods to exit and enter power saving states. For more information
>>> - *    see comments for struct mmc_host_ops.
>>> - */
>>> -int mmc_host_enable(struct mmc_host *host)
>>> -{
>>> -    if (!(host->caps&   MMC_CAP_DISABLE))
>>> -        return 0;
>>> -
>>> -    if (host->en_dis_recurs)
>>> -        return 0;
>>> -
>>> -    if (host->nesting_cnt++)
>>> -        return 0;
>>> -
>>> -    cancel_delayed_work_sync(&host->disable);
>>> -
>>> -    if (host->enabled)
>>> -        return 0;
>>> -
>>> -    if (host->ops->enable) {
>>> -        int err;
>>> -
>>> -        host->en_dis_recurs = 1;
>>> -        mmc_host_clk_hold(host);
>>> -        err = host->ops->enable(host);
>>> -        mmc_host_clk_release(host);
>>> -        host->en_dis_recurs = 0;
>>> -
>>> -        if (err) {
>>> -            pr_debug("%s: enable error %d\n",
>>> -                 mmc_hostname(host), err);
>>> -            return err;
>>> -        }
>>> -    }
>>> -    host->enabled = 1;
>>> -    return 0;
>>> -}
>>> -EXPORT_SYMBOL(mmc_host_enable);
>>> -
>>> -static int mmc_host_do_disable(struct mmc_host *host, int lazy)
>>> -{
>>> -    if (host->ops->disable) {
>>> -        int err;
>>> -
>>> -        host->en_dis_recurs = 1;
>>> -        mmc_host_clk_hold(host);
>>> -        err = host->ops->disable(host, lazy);
>>> -        mmc_host_clk_release(host);
>>> -        host->en_dis_recurs = 0;
>>> -
>>> -        if (err<   0) {
>>> -            pr_debug("%s: disable error %d\n",
>>> -                 mmc_hostname(host), err);
>>> -            return err;
>>> -        }
>>> -        if (err>   0) {
>>> -            unsigned long delay = msecs_to_jiffies(err);
>>> -
>>> -            mmc_schedule_delayed_work(&host->disable, delay);
>>> -        }
>>> -    }
>>> -    host->enabled = 0;
>>> -    return 0;
>>> -}
>>> -
>>> -/**
>>> - *    mmc_host_disable - disable a host.
>>> - *    @host: mmc host to disable
>>> - *
>>> - *    Hosts that support power saving can use the 'enable' and 'disable'
>>> - *    methods to exit and enter power saving states. For more information
>>> - *    see comments for struct mmc_host_ops.
>>> - */
>>> -int mmc_host_disable(struct mmc_host *host)
>>> -{
>>> -    int err;
>>> -
>>> -    if (!(host->caps&   MMC_CAP_DISABLE))
>>> -        return 0;
>>> -
>>> -    if (host->en_dis_recurs)
>>> -        return 0;
>>> -
>>> -    if (--host->nesting_cnt)
>>> -        return 0;
>>> -
>>> -    if (!host->enabled)
>>> -        return 0;
>>> -
>>> -    err = mmc_host_do_disable(host, 0);
>>> -    return err;
>>> -}
>>> -EXPORT_SYMBOL(mmc_host_disable);
>>> -
>>> -/**
>>>     *    __mmc_claim_host - exclusively claim a host
>>>     *    @host: mmc host to claim
>>>     *    @abort: whether or not the operation should be aborted
>>> @@ -741,8 +642,8 @@ int __mmc_claim_host(struct mmc_host *host, atomic_t
>>> *abort)
>>>            wake_up(&host->wq);
>>>        spin_unlock_irqrestore(&host->lock, flags);
>>>        remove_wait_queue(&host->wq,&wait);
>>> -    if (!stop)
>>> -        mmc_host_enable(host);
>>> +    if (host->ops->enable&&   !stop&&   host->claim_cnt == 1)
>> Shouldn't we still make sure that clocks are hold (by calling
>> mmc_host_clk_hold() ) before calling enable?
> The only enable / disable user is omap_hsmmc which uses it to get
> and put runtime pm, so there is no reason to hold / release clock
> gating - since that path will also get / put runtime pm which is synchronized.
Ok.

> --
> To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

  reply	other threads:[~2012-03-01 10:21 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-02-29  7:17 [PATCH V2 0/1] mmc: start removing enable / disable API Adrian Hunter
2012-02-29  7:17 ` Adrian Hunter
2012-02-29  7:17 ` [PATCH V2 1/1] " Adrian Hunter
2012-02-29  7:17   ` Adrian Hunter
2012-03-01  8:08   ` Subhash Jadavani
2012-03-01  8:08     ` Subhash Jadavani
2012-03-01  8:21     ` Adrian Hunter
2012-03-01  8:21       ` Adrian Hunter
2012-03-01 10:21       ` Subhash Jadavani [this message]
2012-03-01 10:21         ` Subhash Jadavani
2012-03-01 12:40   ` S, Venkatraman
2012-03-01 12:40     ` S, Venkatraman
2012-03-02  5:58   ` Jaehoon Chung
2012-03-02  5:58     ` Jaehoon Chung
2012-03-09  4:35   ` Chris Ball
2012-03-09  4:35     ` Chris Ball
  -- strict thread matches above, loose matches on Subject: below --
2012-02-29 12:01 Manjunathappa, Prakash

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=4F4F4D8E.5030305@codeaurora.org \
    --to=subhashj@codeaurora.org \
    --cc=adrian.hunter@intel.com \
    --cc=cjb@laptop.org \
    --cc=kgene.kim@samsung.com \
    --cc=khilman@ti.com \
    --cc=kyungmin.park@samsung.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-mmc@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=nsekhar@ti.com \
    --cc=rnayak@ti.com \
    --cc=svenkatr@ti.com \
    --cc=thomas.abraham@linaro.org \
    /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.