Hi Rongjun,

OK, I applied this patch on extcon-next branch.

Thannks,
Chanwoo Choi

On 01/07/2014 06:02 PM, Rongjun Ying wrote:
> 
> 
>> -----Original Message-----
>> From: Chanwoo Choi [mailto:cw00.c...@samsung.com]
>> Sent: Tuesday, January 07, 2014 2:09 PM
>> To: RongJun Ying
>> Cc: MyungJoo Ham; Barry Song; linux-arm-ker...@lists.infradead.org;
>> linux-kernel@vger.kernel.org; DL-SHA-WorkGroupLinux; Rongjun Ying
>> Subject: Re: [PATCH v3] extcon: gpio: Add power resume support
>>
>> Hi RongJun,
>>
>> On 01/07/2014 01:56 PM, RongJun Ying wrote:
>>> From: Rongjun Ying <rongjun.y...@csr.com>
>>>
>>> When system on the suspend state, Some SoC can't get gpio interrupt.
>>> After system resume, need send extcon uevent to userspace.
>>>
>>> Signed-off-by: Rongjun Ying <rongjun.y...@csr.com>
>>> Reviewed-by: Barry Song <baohua.s...@csr.com>
>>> ---
>>>  -v3:
>>>  'check_on_resume' instead of 'load_sleep_irq' as Chanwoo Choi's
>> proposal.
>>>
>>>  drivers/extcon/extcon-gpio.c       |   20 ++++++++++++++++++++
>>>  include/linux/extcon/extcon-gpio.h |    1 +
>>>  2 files changed, 21 insertions(+), 0 deletions(-)
>>>
>>> diff --git a/drivers/extcon/extcon-gpio.c
>>> b/drivers/extcon/extcon-gpio.c index 7e0dff5..fde52c1 100644
>>> --- a/drivers/extcon/extcon-gpio.c
>>> +++ b/drivers/extcon/extcon-gpio.c
>>> @@ -40,6 +40,7 @@ struct gpio_extcon_data {
>>>     int irq;
>>>     struct delayed_work work;
>>>     unsigned long debounce_jiffies;
>>> +   bool check_on_resume;
>>>  };
>>>
>>>  static void gpio_extcon_work(struct work_struct *work) @@ -103,6
>>> +104,7 @@ static int gpio_extcon_probe(struct platform_device *pdev)
>>>     extcon_data->gpio_active_low = pdata->gpio_active_low;
>>>     extcon_data->state_on = pdata->state_on;
>>>     extcon_data->state_off = pdata->state_off;
>>> +   extcon_data->check_on_resume = pdata->check_on_resume;
>>>     if (pdata->state_on && pdata->state_off)
>>>             extcon_data->edev.print_state = extcon_gpio_print_state;
>>>     if (pdata->debounce) {
>>> @@ -159,12 +161,30 @@ static int gpio_extcon_remove(struct
>> platform_device *pdev)
>>>     return 0;
>>>  }
>>>
>>> +#ifdef CONFIG_PM_SLEEP
>>> +static int gpio_extcon_resume(struct device *dev) {
>>> +   struct gpio_extcon_data *extcon_data;
>>> +
>>> +   extcon_data = dev_get_drvdata(dev);
>>> +   if (extcon_data->check_on_resume)
>>> +           queue_delayed_work(system_power_efficient_wq,
>>> +                   &extcon_data->work, extcon_data->debounce_jiffies);
>>> +   return 0;
>>> +}
>>> +#endif
>>> +
>>> +static const struct dev_pm_ops gpio_extcon_pm_ops = {
>>> +   SET_SYSTEM_SLEEP_PM_OPS(NULL, gpio_extcon_resume)
>>
>> If CONFIG_PM_SLEEP is undefined, gpio_extcon_pm_ops cannot find
>> gpio_extcon_resume function.
>> You should define dummy function for gpio_extcon_resume function.
>>
>>
> In the include/Linux/pm.h
> If CONFIG_PM_SLEEP is undefined, the SET_SYSTEM_SLEEP_PM_OPS macro is 
> bypassed.
> 
> #ifdef CONFIG_PM_SLEEP
> #define SET_SYSTEM_SLEEP_PM_OPS(suspend_fn, resume_fn) \
>         .suspend = suspend_fn, \
>         .resume = resume_fn, \
>         .freeze = suspend_fn, \
>         .thaw = resume_fn, \
>         .poweroff = suspend_fn, \
>         .restore = resume_fn,
> #else
> #define SET_SYSTEM_SLEEP_PM_OPS(suspend_fn, resume_fn)
> #endif
>>
>>
>>  To report this email as spam click
>> https://www.mailcontrol.com/sr/MZbqvYs5QwJvpeaetUwhCQ==
>> UfkIuR0P8QH1DW7C+lVo3569nqreWejYcysfmF8UmgH1OQ== .
> 
> 
> Member of the CSR plc group of companies. CSR plc registered in England and 
> Wales, registered number 4187346, registered office Churchill House, 
> Cambridge Business Park, Cowley Road, Cambridge, CB4 0WZ, United Kingdom
> More information can be found at www.csr.com. Keep up to date with CSR on our 
> technical blog, www.csr.com/blog, CSR people blog, www.csr.com/people, 
> YouTube, www.youtube.com/user/CSRplc, Facebook, 
> www.facebook.com/pages/CSR/191038434253534, or follow us on Twitter at 
> www.twitter.com/CSR_plc.
> New for 2014, you can now access the wide range of products powered by aptX 
> at www.aptx.com.
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majord...@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@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 via email to