Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755515Ab3EVGX7 (ORCPT ); Wed, 22 May 2013 02:23:59 -0400 Received: from arroyo.ext.ti.com ([192.94.94.40]:43160 "EHLO arroyo.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754773Ab3EVGXz (ORCPT ); Wed, 22 May 2013 02:23:55 -0400 Message-ID: <519C6459.7000604@ti.com> Date: Wed, 22 May 2013 11:53:21 +0530 From: Kishon Vijay Abraham I User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130510 Thunderbird/17.0.6 MIME-Version: 1.0 To: "myungjoo.ham" , Graeme Gregory CC: , , , , , , , , , , , , Subject: Re: [PATCH v4] extcon: Palmas Extcon Driver References: <1362662506-14823-4-git-send-email-kishon@ti.com> <1367846225-15685-1-git-send-email-kishon@ti.com> <005c01ce4abb$d956fea0$8c04fbe0$@samsung.com> <51888F45.4030303@ti.com> In-Reply-To: <51888F45.4030303@ti.com> Content-Type: text/plain; charset="ISO-8859-1"; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 4281 Lines: 126 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 >>> >>> 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 >>> Signed-off-by: Moiz Sonasath >>> Signed-off-by: Ruchika Kharwar >>> Signed-off-by: Kishon Vijay Abraham I >>> [kishon@ti.com: adapted palmas usb driver to use the extcon framework] >>> Signed-off-by: Sebastien Guiriec >> >> 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 >>> + * Author: Kishon Vijay Abraham I >>> + * >>> + * Based on twl6030_usb.c >>> + * >>> + * Author: Hema HK >>> + * >>> + * 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 >>> +#include >>> +#include >>> +#include >>> +#include >>> +#include >>> +#include >>> +#include >>> +#include >>> +#include >>> +#include >>> +#include >>> +#include >>> +#include >>> +#include >>> + >>> +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 -- 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/