Export get_gpio_by_name() function and make its name more focused. We are
doing this because currently get_gpio_by_name() is only used by the devices
exported from SFI DEVS table, but it is also useful for other PCI devices which
also use the GPIO lines, and have their gpio infos in the SFI GPIO table.
Signed-off-by: Lu Guanqun <[email protected]>
Reviewed-by: Tang Feng <[email protected]>
Acked-by: Wu Fengguang <[email protected]>
---
arch/x86/include/asm/mrst.h | 1 +
arch/x86/platform/mrst/mrst.c | 35 ++++++++++++++++++-----------------
2 files changed, 19 insertions(+), 17 deletions(-)
diff --git a/arch/x86/include/asm/mrst.h b/arch/x86/include/asm/mrst.h
index dd8a072..d6cf6d4 100644
--- a/arch/x86/include/asm/mrst.h
+++ b/arch/x86/include/asm/mrst.h
@@ -18,6 +18,7 @@ extern int pci_mrst_init(void);
extern int __init sfi_parse_mrtc(struct sfi_table_header *table);
extern int sfi_mrtc_num;
extern struct sfi_rtc_table_entry sfi_mrtc_array[];
+extern int mid_lookup_gpio(const char *name);
/*
* Medfield is the follow-up of Moorestown, it combines two chip solution into
diff --git a/arch/x86/platform/mrst/mrst.c b/arch/x86/platform/mrst/mrst.c
index bc5993f..909b2cc 100644
--- a/arch/x86/platform/mrst/mrst.c
+++ b/arch/x86/platform/mrst/mrst.c
@@ -389,7 +389,7 @@ static int __init sfi_parse_gpio(struct sfi_table_header *table)
return 0;
}
-static int get_gpio_by_name(const char *name)
+int mid_lookup_gpio(const char *name)
{
struct sfi_gpio_table_entry *pentry = gpio_table;
int i;
@@ -402,6 +402,7 @@ static int get_gpio_by_name(const char *name)
}
return -1;
}
+EXPORT_SYMBOL_GPL(mid_lookup_gpio);
/*
* Here defines the array of devices platform data that IAFW would export
@@ -433,7 +434,7 @@ static void __init install_irq_resource(struct platform_device *pdev,
static void __init *pmic_gpio_platform_data(void *info)
{
static struct intel_pmic_gpio_platform_data pmic_gpio_pdata;
- int gpio_base = get_gpio_by_name("pmic_gpio_base");
+ int gpio_base = mid_lookup_gpio("pmic_gpio_base");
if (gpio_base == -1)
gpio_base = 64;
@@ -453,7 +454,7 @@ static struct dw_spi_chip max3111_uart = {
static void __init *max3111_platform_data(void *info)
{
struct spi_board_info *spi_info = info;
- int intr = get_gpio_by_name("max3111_int");
+ int intr = mid_lookup_gpio("max3111_int");
spi_info->mode = SPI_MODE_0;
spi_info->controller_data = &max3111_uart;
@@ -492,8 +493,8 @@ static void __init *max7315_platform_data(void *info)
strcpy(intr_pin_name, "max7315_int");
}
- gpio_base = get_gpio_by_name(base_pin_name);
- intr = get_gpio_by_name(intr_pin_name);
+ gpio_base = mid_lookup_gpio(base_pin_name);
+ intr = mid_lookup_gpio(intr_pin_name);
if (gpio_base == -1)
return NULL;
@@ -520,8 +521,8 @@ static void *tca6416_platform_data(void *info)
strcpy(base_pin_name, "tca6416_base");
strcpy(intr_pin_name, "tca6416_int");
- gpio_base = get_gpio_by_name(base_pin_name);
- intr = get_gpio_by_name(intr_pin_name);
+ gpio_base = mid_lookup_gpio(base_pin_name);
+ intr = mid_lookup_gpio(intr_pin_name);
if (gpio_base == -1)
return NULL;
@@ -539,7 +540,7 @@ static void *tca6416_platform_data(void *info)
static void *mpu3050_platform_data(void *info)
{
struct i2c_board_info *i2c_info = info;
- int intr = get_gpio_by_name("mpu3050_int");
+ int intr = mid_lookup_gpio("mpu3050_int");
if (intr == -1)
return NULL;
@@ -558,7 +559,7 @@ static void *ektf2136_spi_platform_data(void *info)
{
struct spi_board_info *spi_info = info;
static struct ektf2136_platform_data ektf2136_spi_pdata;
- int gpio = get_gpio_by_name("ts_int");
+ int gpio = mid_lookup_gpio("ts_int");
if (gpio == -1)
return NULL;
@@ -574,8 +575,8 @@ static void __init *emc1403_platform_data(void *info)
{
static short intr2nd_pdata;
struct i2c_board_info *i2c_info = info;
- int intr = get_gpio_by_name("thermal_int");
- int intr2nd = get_gpio_by_name("thermal_alert");
+ int intr = mid_lookup_gpio("thermal_int");
+ int intr2nd = mid_lookup_gpio("thermal_alert");
if (intr == -1 || intr2nd == -1)
return NULL;
@@ -592,7 +593,7 @@ static void __init *msic_ocd_platform_data(void *info)
int gpio_base;
struct platform_device *pdev = (struct platform_device *)info;
- gpio_base = get_gpio_by_name("msic_ocd");
+ gpio_base = mid_lookup_gpio("msic_ocd");
if (gpio_base == -1)
return NULL;
@@ -604,8 +605,8 @@ static void __init *lis331dl_platform_data(void *info)
{
static short intr2nd_pdata;
struct i2c_board_info *i2c_info = info;
- int intr = get_gpio_by_name("accel_int");
- int intr2nd = get_gpio_by_name("accel_2");
+ int intr = mid_lookup_gpio("accel_int");
+ int intr2nd = mid_lookup_gpio("accel_2");
if (intr == -1 || intr2nd == -1)
return NULL;
@@ -763,8 +764,8 @@ static void *tc35894xbg_platform_data(struct i2c_board_info *i2c_info,
struct tc35894xbg_platform_data* tc_data)
{
- tc_data->gpio_irq = get_gpio_by_name("keypad-intr");
- tc_data->gpio_reset = get_gpio_by_name("keypad-reset");
+ tc_data->gpio_irq = mid_lookup_gpio("keypad-intr");
+ tc_data->gpio_reset = mid_lookup_gpio("keypad-reset");
printk(KERN_INFO "Nokia: keypad-intr on %d, keypad-reset on %d\n",
tc_data->gpio_irq, tc_data->gpio_reset);
@@ -1117,7 +1118,7 @@ static int __init pb_keys_init(void)
num = sizeof(gpio_button) / sizeof(struct gpio_keys_button);
for (i = 0; i < num; i++) {
- gb[i].gpio = get_gpio_by_name(gb[i].desc);
+ gb[i].gpio = mid_lookup_gpio(gb[i].desc);
if (gb[i].gpio == -1)
continue;
--
1.7.2.3
On 3/27/2011 7:29 PM, Lu Guanqun wrote:
> Export get_gpio_by_name() function and make its name more focused. We are
> doing this because currently get_gpio_by_name() is only used by the devices
> exported from SFI DEVS table, but it is also useful for other PCI devices which
> also use the GPIO lines, and have their gpio infos in the SFI GPIO table.
>
I can't say that I like the new name... at all.
what's "mid" ?
what is wrong with the original name????
On Mon, 28 Mar 2011 10:34:22 +0800
Arjan van de Ven <[email protected]> wrote:
> On 3/27/2011 7:29 PM, Lu Guanqun wrote:
> > Export get_gpio_by_name() function and make its name more focused.
> > We are doing this because currently get_gpio_by_name() is only used
> > by the devices exported from SFI DEVS table, but it is also useful
> > for other PCI devices which also use the GPIO lines, and have their
> > gpio infos in the SFI GPIO table.
> >
>
> I can't say that I like the new name... at all.
>
> what's "mid" ?
> what is wrong with the original name????
>
Hi Arjan,
The original get_gpio_by_name() is static and only used in mrst.c as it's
mrst/mfld specific. So if we call it from a PCI driver, that name sounds
like a platform independent general API while it's actually mrst/mfld bound.
So we would show this dependency from the function name.
Thanks,
Feng
On 3/27/2011 7:47 PM, Feng Tang wrote:
> On Mon, 28 Mar 2011 10:34:22 +0800
> Arjan van de Ven<[email protected]> wrote:
>
>> On 3/27/2011 7:29 PM, Lu Guanqun wrote:
>>> Export get_gpio_by_name() function and make its name more focused.
>>> We are doing this because currently get_gpio_by_name() is only used
>>> by the devices exported from SFI DEVS table, but it is also useful
>>> for other PCI devices which also use the GPIO lines, and have their
>>> gpio infos in the SFI GPIO table.
>>>
>> I can't say that I like the new name... at all.
>>
>> what's "mid" ?
>> what is wrong with the original name????
>>
> Hi Arjan,
>
> The original get_gpio_by_name() is static and only used in mrst.c as it's
> mrst/mfld specific. So if we call it from a PCI driver, that name sounds
get_gpio_by_name() would be a very good generic name for a function
provided by the gpio layer as well.
> like a platform independent general API while it's actually mrst/mfld bound.
> So we would show this dependency from the function name.
that makes no sense.
and again, what on earth is a "mid"??????????
Hi Arjan,
On Mon, 28 Mar 2011 10:47:23 +0800
Arjan van de Ven <[email protected]> wrote:
> On 3/27/2011 7:47 PM, Feng Tang wrote:
> > On Mon, 28 Mar 2011 10:34:22 +0800
> > Arjan van de Ven<[email protected]> wrote:
> >
> >> On 3/27/2011 7:29 PM, Lu Guanqun wrote:
> >>> Export get_gpio_by_name() function and make its name more focused.
> >>> We are doing this because currently get_gpio_by_name() is only
> >>> used by the devices exported from SFI DEVS table, but it is also
> >>> useful for other PCI devices which also use the GPIO lines, and
> >>> have their gpio infos in the SFI GPIO table.
> >>>
> >> I can't say that I like the new name... at all.
> >>
> >> what's "mid" ?
> >> what is wrong with the original name????
> >>
> > Hi Arjan,
> >
> > The original get_gpio_by_name() is static and only used in mrst.c
> > as it's mrst/mfld specific. So if we call it from a PCI driver,
> > that name sounds
>
> get_gpio_by_name() would be a very good generic name for a function
> provided by the gpio layer as well.
Yes, the "get_gpio_by_name" name itself is very generic, but it's
implementation is not in the GPIO core, but inside the mrst.c and
bound to Moorestown/Medfield platforms.
>
> > like a platform independent general API while it's actually
> > mrst/mfld bound. So we would show this dependency from the function
> > name.
> that makes no sense.
> and again, what on earth is a "mid"??????????
Sorry for missed it in last email, "mid" stands for Mobile Internet Device,
Moorestown/Medfield platform are defined as MID, and this name is already
used by some driver files.
Thanks,
Feng
On 3/27/2011 8:00 PM, Feng Tang wrote:
> Hi Arjan,
>
> On Mon, 28 Mar 2011 10:47:23 +0800
> Arjan van de Ven<[email protected]> wrote:
>
>> On 3/27/2011 7:47 PM, Feng Tang wrote:
>>> On Mon, 28 Mar 2011 10:34:22 +0800
>>> Arjan van de Ven<[email protected]> wrote:
>>>
>>>> On 3/27/2011 7:29 PM, Lu Guanqun wrote:
>>>>> Export get_gpio_by_name() function and make its name more focused.
>>>>> We are doing this because currently get_gpio_by_name() is only
>>>>> used by the devices exported from SFI DEVS table, but it is also
>>>>> useful for other PCI devices which also use the GPIO lines, and
>>>>> have their gpio infos in the SFI GPIO table.
>>>>>
>>>> I can't say that I like the new name... at all.
>>>>
>>>> what's "mid" ?
>>>> what is wrong with the original name????
>>>>
>>> Hi Arjan,
>>>
>>> The original get_gpio_by_name() is static and only used in mrst.c
>>> as it's mrst/mfld specific. So if we call it from a PCI driver,
>>> that name sounds
>> get_gpio_by_name() would be a very good generic name for a function
>> provided by the gpio layer as well.
> Yes, the "get_gpio_by_name" name itself is very generic, but it's
> implementation is not in the GPIO core, but inside the mrst.c and
> bound to Moorestown/Medfield platforms.
so how about adding it?
>>> like a platform independent general API while it's actually
>>> mrst/mfld bound. So we would show this dependency from the function
>>> name.
>> that makes no sense.
>> and again, what on earth is a "mid"??????????
> Sorry for missed it in last email, "mid" stands for Mobile Internet Device,
> Moorestown/Medfield platform are defined as MID, and this name is already
> used by some driver files.
Medfield and MRST are targeting phones. MIDs don't exist... not in this
decade.
if it was renamed to sfi_get_gpio_by_name() it might make SOME sense,
but even then it's a
gratuitous rename for a function that's already in the upstream kernel.
> Thanks,
> Feng
> _______________________________________________
> MeeGo-kernel mailing list
> [email protected]
> http://lists.meego.com/listinfo/meego-kernel
On Mon, Mar 28, 2011 at 10:47:23AM +0800, Arjan van de Ven wrote:
> On 3/27/2011 7:47 PM, Feng Tang wrote:
> > On Mon, 28 Mar 2011 10:34:22 +0800
> > Arjan van de Ven<[email protected]> wrote:
> >
> >> On 3/27/2011 7:29 PM, Lu Guanqun wrote:
> >>> Export get_gpio_by_name() function and make its name more focused.
> >>> We are doing this because currently get_gpio_by_name() is only used
> >>> by the devices exported from SFI DEVS table, but it is also useful
> >>> for other PCI devices which also use the GPIO lines, and have their
> >>> gpio infos in the SFI GPIO table.
> >>>
> >> I can't say that I like the new name... at all.
> >>
> >> what's "mid" ?
> >> what is wrong with the original name????
> >>
> > Hi Arjan,
> >
> > The original get_gpio_by_name() is static and only used in mrst.c as it's
> > mrst/mfld specific. So if we call it from a PCI driver, that name sounds
>
> get_gpio_by_name() would be a very good generic name for a function
> provided by the gpio layer as well.
>
> > like a platform independent general API while it's actually mrst/mfld bound.
> > So we would show this dependency from the function name.
> that makes no sense.
> and again, what on earth is a "mid"??????????
>
MID stands for mobile internet device.
http://en.wikipedia.org/wiki/Mobile_Internet_device
--
guanqun
Hi Arjan,
On Mon, 28 Mar 2011 11:00:53 +0800
Arjan van de Ven <[email protected]> wrote:
> On 3/27/2011 8:00 PM, Feng Tang wrote:
> > Hi Arjan,
> >
> > On Mon, 28 Mar 2011 10:47:23 +0800
> > Arjan van de Ven<[email protected]> wrote:
> >
> >> On 3/27/2011 7:47 PM, Feng Tang wrote:
> >>> On Mon, 28 Mar 2011 10:34:22 +0800
> >>> Arjan van de Ven<[email protected]> wrote:
> >>>
> >>>> On 3/27/2011 7:29 PM, Lu Guanqun wrote:
> >>>>> Export get_gpio_by_name() function and make its name more
> >>>>> focused. We are doing this because currently get_gpio_by_name()
> >>>>> is only used by the devices exported from SFI DEVS table, but
> >>>>> it is also useful for other PCI devices which also use the GPIO
> >>>>> lines, and have their gpio infos in the SFI GPIO table.
> >>>>>
> >>>> I can't say that I like the new name... at all.
> >>>>
> >>>> what's "mid" ?
> >>>> what is wrong with the original name????
> >>>>
> >>> Hi Arjan,
> >>>
> >>> The original get_gpio_by_name() is static and only used in mrst.c
> >>> as it's mrst/mfld specific. So if we call it from a PCI driver,
> >>> that name sounds
> >> get_gpio_by_name() would be a very good generic name for a function
> >> provided by the gpio layer as well.
> > Yes, the "get_gpio_by_name" name itself is very generic, but it's
> > implementation is not in the GPIO core, but inside the mrst.c and
> > bound to Moorestown/Medfield platforms.
>
> so how about adding it?
Will check gpio core code, thanks,
>
> >>> like a platform independent general API while it's actually
> >>> mrst/mfld bound. So we would show this dependency from the
> >>> function name.
> >> that makes no sense.
> >> and again, what on earth is a "mid"??????????
> > Sorry for missed it in last email, "mid" stands for Mobile Internet
> > Device, Moorestown/Medfield platform are defined as MID, and this
> > name is already used by some driver files.
>
> Medfield and MRST are targeting phones. MIDs don't exist... not in
> this decade.
>
>
> if it was renamed to sfi_get_gpio_by_name() it might make SOME sense,
> but even then it's a
> gratuitous rename for a function that's already in the upstream
> kernel.
Thanks for reminding, we'll try to avoid doing so later.
- Feng
On Mon, Mar 28, 2011 at 10:29:19AM +0800, Lu Guanqun wrote:
> Export get_gpio_by_name() function and make its name more focused. We are
> doing this because currently get_gpio_by_name() is only used by the devices
> exported from SFI DEVS table, but it is also useful for other PCI devices which
> also use the GPIO lines, and have their gpio infos in the SFI GPIO table.
As others pointed out, don't change the name of this function.
Also, this is only needed by the one staging driver, right?
thanks,
greg k-h
Hi Greg,
On Mon, 28 Mar 2011 13:50:24 +0800
Greg KH <[email protected]> wrote:
> On Mon, Mar 28, 2011 at 10:29:19AM +0800, Lu Guanqun wrote:
> > Export get_gpio_by_name() function and make its name more focused.
> > We are doing this because currently get_gpio_by_name() is only used
> > by the devices exported from SFI DEVS table, but it is also useful
> > for other PCI devices which also use the GPIO lines, and have their
> > gpio infos in the SFI GPIO table.
>
> As others pointed out, don't change the name of this function.
Yes, will keep it in mind
>
> Also, this is only needed by the one staging driver, right?
Yes, currently it is only needed by the intel_sst driver in stating.
Thanks,
Feng
> Medfield and MRST are targeting phones. MIDs don't exist... not in this
> decade.
Well you can take that up with everyone else somewhere offlist, but the
standard naming being used for these devices as a group is mid_xxx, and
has been in the kernel several releases.
> if it was renamed to sfi_get_gpio_by_name() it might make SOME sense,
> but even then it's a
> gratuitous rename for a function that's already in the upstream kernel.
1. It needs a name that won't clash with anything else or confuse people
2. It shouldn't be exported in the first place but appearing in the PCI
data for the device.
If it must be exported then it definitely needs a rename.