All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kishon Vijay Abraham I <kishon@ti.com>
To: "myungjoo.ham" <myungjoo.ham@samsung.com>,
	Graeme Gregory <gg@slimlogic.co.uk>
Cc: cw00.choi@samsung.com, balbi@ti.com, ldewangan@nvidia.com,
	devicetree-discuss@lists.ozlabs.org, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org, grant.likely@linaro.org,
	rob.herring@calxeda.com, rob@landley.net, ruchika@ti.com,
	tony@atomide.com, sameo@linux.intel.com,
	broonie@opensource.wolfsonmicro.com
Subject: Re: [PATCH v4] extcon: Palmas Extcon Driver
Date: Wed, 22 May 2013 11:53:21 +0530	[thread overview]
Message-ID: <519C6459.7000604@ti.com> (raw)
In-Reply-To: <51888F45.4030303@ti.com>

Hi,

On Tuesday 07 May 2013 10:51 AM, Kishon Vijay Abraham I wrote:
> Hi,
>
> On Tuesday 07 May 2013 06:13 AM, myungjoo.ham wrote:
>>> From: Graeme Gregory <gg@slimlogic.co.uk>
>>>
>>> This is the driver for the USB comparator built into the palmas chip. It
>>> handles the various USB OTG events that can be generated by cable
>>> insertion/removal.
>>>
>>> Signed-off-by: Graeme Gregory <gg@slimlogic.co.uk>
>>> Signed-off-by: Moiz Sonasath <m-sonasath@ti.com>
>>> Signed-off-by: Ruchika Kharwar <ruchika@ti.com>
>>> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
>>> [kishon@ti.com: adapted palmas usb driver to use the extcon framework]
>>> Signed-off-by: Sebastien Guiriec <s-guiriec@ti.com>
>>
>> Here goes some comments in the code:
>>
>> []
>>
>>> diff --git a/drivers/extcon/extcon-palmas.c
>> b/drivers/extcon/extcon-palmas.c
>>> new file mode 100644
>>> index 0000000..3ef042f
>>> --- /dev/null
>>> +++ b/drivers/extcon/extcon-palmas.c
>>> @@ -0,0 +1,389 @@
>>> +/*
>>> + * Palmas USB transceiver driver
>>> + *
>>> + * Copyright (C) 2013 Texas Instruments Incorporated -
>>> http://www.ti.com
>>> + * This program is free software; you can redistribute it and/or modify
>>> + * it under the terms of the GNU General Public License as published by
>>> + * the Free Software Foundation; either version 2 of the License, or
>>> + * (at your option) any later version.
>>> + *
>>> + * Author: Graeme Gregory <gg@...mlogic.co.uk>
>>> + * Author: Kishon Vijay Abraham I <kishon@...com>
>>> + *
>>> + * Based on twl6030_usb.c
>>> + *
>>> + * Author: Hema HK <hemahk@...com>
>>> + *
>>> + * This program is distributed in the hope that it will be useful,
>>> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
>>> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
>>> + * GNU General Public License for more details.
>>> + */
>>
>> Why the email addresses are masked in the source code?
>> (I'm just curious as this is the first time to see such in kernel source)
>
> That was not intentional. Took the previous version from the net. My bad.
>>
>>> +
>>> +#include <linux/module.h>
>>> +#include <linux/init.h>
>>> +#include <linux/interrupt.h>
>>> +#include <linux/platform_device.h>
>>> +#include <linux/io.h>
>>> +#include <linux/usb/phy_companion.h>
>>> +#include <linux/regulator/consumer.h>
>>> +#include <linux/err.h>
>>> +#include <linux/notifier.h>
>>> +#include <linux/slab.h>
>>> +#include <linux/delay.h>
>>> +#include <linux/mfd/palmas.h>
>>> +#include <linux/of.h>
>>> +#include <linux/of_platform.h>
>>> +#include <linux/extcon/extcon_palmas.h>
>>> +
>>> +static const char *palmas_extcon_cable[] = {
>>> +    [0] = "USB",
>>> +    [1] = "USB-HOST",
>>
>>     [1] = "USB-Host",
>>
>>> +    NULL,
>>> +};
>>> +
>>> +static const int mutually_exclusive[] = {0x3, 0x0};
>>> +
>>> +static void palmas_usb_wakeup(struct palmas *palmas, int enable)
>>> +{
>>> +    if (enable)
>>> +        palmas_write(palmas, PALMAS_USB_OTG_BASE, PALMAS_USB_WAKEUP,
>>> +            PALMAS_USB_WAKEUP_ID_WK_UP_COMP);
>>> +    else
>>> +        palmas_write(palmas, PALMAS_USB_OTG_BASE, PALMAS_USB_WAKEUP,
>> 0);
>>> +}
>>> +
>>> +static ssize_t palmas_usb_vbus_show(struct device *dev,
>>> +            struct device_attribute *attr, char *buf)
>>> +{
>>> +    unsigned long        flags;
>>> +    int            ret = -EINVAL;
>>> +    struct palmas_usb    *palmas_usb = dev_get_drvdata(dev);
>>> +
>>> +    spin_lock_irqsave(&palmas_usb->lock, flags);
>>
>> This spinlock is used in this sysfs-show function only.
>> Is this really needed?
>> The only protected value here is "linkstat", which is "readonly"
>> in this protected context.
>> Thus, removing the spin_lock and updating like the following should
>> be the same with less overhead:
>>
>>     int linkstat = palmas_usb->linkstat;
>>     switch(linkstat) {
>
> hmm.. ok.
I think this is to do with disabling interrupts while reporting the VBUS 
state. (linkstat is updated in irq handler). So this should be fine I guess?

Thanks
Kishon

WARNING: multiple messages have this Message-ID (diff)
From: Kishon Vijay Abraham I <kishon@ti.com>
To: "myungjoo.ham" <myungjoo.ham@samsung.com>,
	Graeme Gregory <gg@slimlogic.co.uk>
Cc: <cw00.choi@samsung.com>, <balbi@ti.com>, <ldewangan@nvidia.com>,
	<devicetree-discuss@lists.ozlabs.org>,
	<linux-doc@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	<grant.likely@linaro.org>, <rob.herring@calxeda.com>,
	<rob@landley.net>, <ruchika@ti.com>, <tony@atomide.com>,
	<sameo@linux.intel.com>, <broonie@opensource.wolfsonmicro.com>
Subject: Re: [PATCH v4] extcon: Palmas Extcon Driver
Date: Wed, 22 May 2013 11:53:21 +0530	[thread overview]
Message-ID: <519C6459.7000604@ti.com> (raw)
In-Reply-To: <51888F45.4030303@ti.com>

Hi,

On Tuesday 07 May 2013 10:51 AM, Kishon Vijay Abraham I wrote:
> Hi,
>
> On Tuesday 07 May 2013 06:13 AM, myungjoo.ham wrote:
>>> From: Graeme Gregory <gg@slimlogic.co.uk>
>>>
>>> This is the driver for the USB comparator built into the palmas chip. It
>>> handles the various USB OTG events that can be generated by cable
>>> insertion/removal.
>>>
>>> Signed-off-by: Graeme Gregory <gg@slimlogic.co.uk>
>>> Signed-off-by: Moiz Sonasath <m-sonasath@ti.com>
>>> Signed-off-by: Ruchika Kharwar <ruchika@ti.com>
>>> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
>>> [kishon@ti.com: adapted palmas usb driver to use the extcon framework]
>>> Signed-off-by: Sebastien Guiriec <s-guiriec@ti.com>
>>
>> Here goes some comments in the code:
>>
>> []
>>
>>> diff --git a/drivers/extcon/extcon-palmas.c
>> b/drivers/extcon/extcon-palmas.c
>>> new file mode 100644
>>> index 0000000..3ef042f
>>> --- /dev/null
>>> +++ b/drivers/extcon/extcon-palmas.c
>>> @@ -0,0 +1,389 @@
>>> +/*
>>> + * Palmas USB transceiver driver
>>> + *
>>> + * Copyright (C) 2013 Texas Instruments Incorporated -
>>> http://www.ti.com
>>> + * This program is free software; you can redistribute it and/or modify
>>> + * it under the terms of the GNU General Public License as published by
>>> + * the Free Software Foundation; either version 2 of the License, or
>>> + * (at your option) any later version.
>>> + *
>>> + * Author: Graeme Gregory <gg@...mlogic.co.uk>
>>> + * Author: Kishon Vijay Abraham I <kishon@...com>
>>> + *
>>> + * Based on twl6030_usb.c
>>> + *
>>> + * Author: Hema HK <hemahk@...com>
>>> + *
>>> + * This program is distributed in the hope that it will be useful,
>>> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
>>> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
>>> + * GNU General Public License for more details.
>>> + */
>>
>> Why the email addresses are masked in the source code?
>> (I'm just curious as this is the first time to see such in kernel source)
>
> That was not intentional. Took the previous version from the net. My bad.
>>
>>> +
>>> +#include <linux/module.h>
>>> +#include <linux/init.h>
>>> +#include <linux/interrupt.h>
>>> +#include <linux/platform_device.h>
>>> +#include <linux/io.h>
>>> +#include <linux/usb/phy_companion.h>
>>> +#include <linux/regulator/consumer.h>
>>> +#include <linux/err.h>
>>> +#include <linux/notifier.h>
>>> +#include <linux/slab.h>
>>> +#include <linux/delay.h>
>>> +#include <linux/mfd/palmas.h>
>>> +#include <linux/of.h>
>>> +#include <linux/of_platform.h>
>>> +#include <linux/extcon/extcon_palmas.h>
>>> +
>>> +static const char *palmas_extcon_cable[] = {
>>> +    [0] = "USB",
>>> +    [1] = "USB-HOST",
>>
>>     [1] = "USB-Host",
>>
>>> +    NULL,
>>> +};
>>> +
>>> +static const int mutually_exclusive[] = {0x3, 0x0};
>>> +
>>> +static void palmas_usb_wakeup(struct palmas *palmas, int enable)
>>> +{
>>> +    if (enable)
>>> +        palmas_write(palmas, PALMAS_USB_OTG_BASE, PALMAS_USB_WAKEUP,
>>> +            PALMAS_USB_WAKEUP_ID_WK_UP_COMP);
>>> +    else
>>> +        palmas_write(palmas, PALMAS_USB_OTG_BASE, PALMAS_USB_WAKEUP,
>> 0);
>>> +}
>>> +
>>> +static ssize_t palmas_usb_vbus_show(struct device *dev,
>>> +            struct device_attribute *attr, char *buf)
>>> +{
>>> +    unsigned long        flags;
>>> +    int            ret = -EINVAL;
>>> +    struct palmas_usb    *palmas_usb = dev_get_drvdata(dev);
>>> +
>>> +    spin_lock_irqsave(&palmas_usb->lock, flags);
>>
>> This spinlock is used in this sysfs-show function only.
>> Is this really needed?
>> The only protected value here is "linkstat", which is "readonly"
>> in this protected context.
>> Thus, removing the spin_lock and updating like the following should
>> be the same with less overhead:
>>
>>     int linkstat = palmas_usb->linkstat;
>>     switch(linkstat) {
>
> hmm.. ok.
I think this is to do with disabling interrupts while reporting the VBUS 
state. (linkstat is updated in irq handler). So this should be fine I guess?

Thanks
Kishon

  reply	other threads:[~2013-05-22  6:23 UTC|newest]

Thread overview: 67+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-03-07 13:21 [PATCH v2 0/4] usb: added palmas-usb driver and a few misc fixes Kishon Vijay Abraham I
2013-03-07 13:21 ` Kishon Vijay Abraham I
     [not found] ` <1362662506-14823-1-git-send-email-kishon-l0cyMroinI0@public.gmane.org>
2013-03-07 13:21   ` [PATCH v2 1/4] usb: dwc3: set dma_mask for dwc3_omap device Kishon Vijay Abraham I
2013-03-07 13:21     ` Kishon Vijay Abraham I
2013-03-07 13:21 ` [PATCH v2 2/4] usb: dwc3: dwc3-omap: return -EPROBE_DEFER if probe has not yet executed Kishon Vijay Abraham I
2013-03-07 13:21   ` Kishon Vijay Abraham I
2013-03-07 13:21 ` [PATCH v2 3/4] USB: Palmas OTG Transceiver Driver Kishon Vijay Abraham I
2013-03-07 13:21   ` Kishon Vijay Abraham I
     [not found]   ` <1362662506-14823-4-git-send-email-kishon-l0cyMroinI0@public.gmane.org>
2013-03-14 13:56     ` Felipe Balbi
2013-03-14 13:56       ` Felipe Balbi
2013-03-14 14:53       ` kishon
2013-03-14 14:53         ` kishon
2013-03-25  9:32     ` [PATCH v3] USB: PHY: Palmas USB " Kishon Vijay Abraham I
2013-03-25  9:32       ` Kishon Vijay Abraham I
     [not found]       ` <1364203926-24488-1-git-send-email-kishon-l0cyMroinI0@public.gmane.org>
2013-03-25  9:46         ` Laxman Dewangan
2013-03-25  9:46           ` Laxman Dewangan
2013-03-26  6:03           ` Kishon Vijay Abraham I
2013-03-26  9:01             ` Graeme Gregory
2013-03-26  9:12               ` Laxman Dewangan
2013-03-26  9:27                 ` Graeme Gregory
2013-03-26  9:34                   ` Laxman Dewangan
2013-03-26  9:51                     ` Graeme Gregory
2013-03-26 11:28                       ` Laxman Dewangan
     [not found]                   ` <51516A10.40704-kDsPt+C1G03kYMGBc/C6ZA@public.gmane.org>
2013-03-26 16:22                     ` Stephen Warren
2013-03-26 16:22                       ` Stephen Warren
2013-03-26 16:57                       ` Graeme Gregory
2013-03-26 20:23                         ` Stephen Warren
2013-03-27 11:03                           ` Graeme Gregory
2013-03-26 10:21               ` Felipe Balbi
2013-03-26 10:28                 ` Laxman Dewangan
     [not found]                   ` <51517859.2020407-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2013-03-26 12:07                     ` Felipe Balbi
2013-03-26 12:07                       ` Felipe Balbi
2013-03-26 16:14                   ` Stephen Warren
2013-03-26 10:19             ` Felipe Balbi
2013-05-06 13:17     ` [PATCH v4] extcon: Palmas Extcon Driver Kishon Vijay Abraham I
2013-05-06 13:17       ` Kishon Vijay Abraham I
2013-05-06 14:26       ` Laxman Dewangan
2013-05-07  5:06         ` Kishon Vijay Abraham I
2013-05-06 14:40       ` Mark Brown
2013-05-07  5:12         ` Kishon Vijay Abraham I
2013-05-07  5:12           ` Kishon Vijay Abraham I
     [not found]           ` <51888D55.3090907-l0cyMroinI0@public.gmane.org>
2013-05-07  7:58             ` Mark Brown
2013-05-07  7:58               ` Mark Brown
2013-05-07  9:47               ` Kishon Vijay Abraham I
2013-05-07  9:47                 ` Kishon Vijay Abraham I
2013-05-07  9:49                 ` Graeme Gregory
2013-05-07 10:45                 ` Mark Brown
2013-05-14  9:18                   ` Kishon Vijay Abraham I
2013-05-14  9:18                     ` Kishon Vijay Abraham I
2013-05-14  9:54                     ` Graeme Gregory
2013-05-14 18:43                       ` Laxman Dewangan
2013-05-07  0:43       ` myungjoo.ham
2013-05-07  5:21         ` Kishon Vijay Abraham I
2013-05-07  5:21           ` Kishon Vijay Abraham I
2013-05-22  6:23           ` Kishon Vijay Abraham I [this message]
2013-05-22  6:23             ` Kishon Vijay Abraham I
2013-05-07  6:10       ` Chanwoo Choi
2013-05-07  6:25         ` Kishon Vijay Abraham I
2013-05-07  6:25           ` Kishon Vijay Abraham I
2013-05-07  6:57           ` Chanwoo Choi
2013-05-07  7:05             ` Chanwoo Choi
     [not found]               ` <5188A7BE.4080509-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2013-05-07  8:17                 ` Kishon Vijay Abraham I
2013-05-07  8:17                   ` Kishon Vijay Abraham I
2013-03-07 13:21 ` [PATCH v2 4/4] usb: musb: omap2430: replace *_* with *-* in property names Kishon Vijay Abraham I
2013-03-07 13:21   ` Kishon Vijay Abraham I
2013-03-14 13:57   ` Felipe Balbi
2013-03-14 13:57     ` Felipe Balbi

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=519C6459.7000604@ti.com \
    --to=kishon@ti.com \
    --cc=balbi@ti.com \
    --cc=broonie@opensource.wolfsonmicro.com \
    --cc=cw00.choi@samsung.com \
    --cc=devicetree-discuss@lists.ozlabs.org \
    --cc=gg@slimlogic.co.uk \
    --cc=grant.likely@linaro.org \
    --cc=ldewangan@nvidia.com \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=myungjoo.ham@samsung.com \
    --cc=rob.herring@calxeda.com \
    --cc=rob@landley.net \
    --cc=ruchika@ti.com \
    --cc=sameo@linux.intel.com \
    --cc=tony@atomide.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.