* [PATCH 1/3] sound/spitz: Properly handle MIC GPIO
@ 2011-04-02 1:43 Marek Vasut
2011-04-02 1:43 ` [PATCH 2/3] Use gpio_set_value_cansleep() in corgi_lcd.c Marek Vasut
` (2 more replies)
0 siblings, 3 replies; 12+ messages in thread
From: Marek Vasut @ 2011-04-02 1:43 UTC (permalink / raw)
To: linux-arm-kernel
This patch firstly restructurizes the code a bit by getting rid of continuous
checking for machine type in spitz_mic_bias().
Then the patch properly requests the MIC GPIO in the spitz_init() and frees it
in spitz_exit().
Signed-off-by: Marek Vasut <marek.vasut@gmail.com>
---
sound/soc/pxa/spitz.c | 41 +++++++++++++++++++++++++++++------------
1 files changed, 29 insertions(+), 12 deletions(-)
diff --git a/sound/soc/pxa/spitz.c b/sound/soc/pxa/spitz.c
index 8e15713..b253d86 100644
--- a/sound/soc/pxa/spitz.c
+++ b/sound/soc/pxa/spitz.c
@@ -42,6 +42,7 @@
static int spitz_jack_func;
static int spitz_spk_func;
+static int spitz_mic_gpio;
static void spitz_ext_control(struct snd_soc_codec *codec)
{
@@ -217,14 +218,7 @@ static int spitz_set_spk(struct snd_kcontrol *kcontrol,
static int spitz_mic_bias(struct snd_soc_dapm_widget *w,
struct snd_kcontrol *k, int event)
{
- if (machine_is_borzoi() || machine_is_spitz())
- gpio_set_value(SPITZ_GPIO_MIC_BIAS,
- SND_SOC_DAPM_EVENT_ON(event));
-
- if (machine_is_akita())
- gpio_set_value(AKITA_GPIO_MIC_BIAS,
- SND_SOC_DAPM_EVENT_ON(event));
-
+ gpio_set_value_cansleep(spitz_mic_gpio, SND_SOC_DAPM_EVENT_ON(event));
return 0;
}
@@ -339,22 +333,45 @@ static int __init spitz_init(void)
if (!(machine_is_spitz() || machine_is_borzoi() || machine_is_akita()))
return -ENODEV;
+ if (machine_is_borzoi() || machine_is_spitz())
+ spitz_mic_gpio = SPITZ_GPIO_MIC_BIAS;
+ else
+ spitz_mic_gpio = AKITA_GPIO_MIC_BIAS;
+
+ ret = gpio_request(spitz_mic_gpio, "MIC GPIO");
+ if (ret)
+ goto err1;
+
+ ret = gpio_direction_output(spitz_mic_gpio, 0);
+ if (ret)
+ goto err2;
+
spitz_snd_device = platform_device_alloc("soc-audio", -1);
- if (!spitz_snd_device)
- return -ENOMEM;
+ if (!spitz_snd_device) {
+ ret = -ENOMEM;
+ goto err2;
+ }
platform_set_drvdata(spitz_snd_device, &snd_soc_spitz);
- ret = platform_device_add(spitz_snd_device);
+ ret = platform_device_add(spitz_snd_device);
if (ret)
- platform_device_put(spitz_snd_device);
+ goto err3;
+
+ return 0;
+err3:
+ platform_device_put(spitz_snd_device);
+err2:
+ gpio_free(spitz_mic_gpio);
+err1:
return ret;
}
static void __exit spitz_exit(void)
{
platform_device_unregister(spitz_snd_device);
+ gpio_free(spitz_mic_gpio);
}
module_init(spitz_init);
--
1.7.4.1
^ permalink raw reply related [flat|nested] 12+ messages in thread* [PATCH 2/3] Use gpio_set_value_cansleep() in corgi_lcd.c
2011-04-02 1:43 [PATCH 1/3] sound/spitz: Properly handle MIC GPIO Marek Vasut
@ 2011-04-02 1:43 ` Marek Vasut
2011-04-04 10:45 ` Eric Miao
2011-04-02 1:43 ` [PATCH 3/3] PXA: Reorganise pxa2xx_base init() function Marek Vasut
2011-04-03 13:18 ` [PATCH 1/3] sound/spitz: Properly handle MIC GPIO Mark Brown
2 siblings, 1 reply; 12+ messages in thread
From: Marek Vasut @ 2011-04-02 1:43 UTC (permalink / raw)
To: linux-arm-kernel
Signed-off-by: Marek Vasut <marek.vasut@gmail.com>
---
drivers/video/backlight/corgi_lcd.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/video/backlight/corgi_lcd.c b/drivers/video/backlight/corgi_lcd.c
index 1e71c35..8c80cb7 100644
--- a/drivers/video/backlight/corgi_lcd.c
+++ b/drivers/video/backlight/corgi_lcd.c
@@ -409,10 +409,10 @@ static int corgi_bl_set_intensity(struct corgi_lcd *lcd, int intensity)
cont = !!(intensity & 0x20) ^ lcd->gpio_backlight_cont_inverted;
if (gpio_is_valid(lcd->gpio_backlight_cont))
- gpio_set_value(lcd->gpio_backlight_cont, cont);
+ gpio_set_value_cansleep(lcd->gpio_backlight_cont, cont);
if (gpio_is_valid(lcd->gpio_backlight_on))
- gpio_set_value(lcd->gpio_backlight_on, intensity);
+ gpio_set_value_cansleep(lcd->gpio_backlight_on, intensity);
if (lcd->kick_battery)
lcd->kick_battery();
--
1.7.4.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 2/3] Use gpio_set_value_cansleep() in corgi_lcd.c
2011-04-02 1:43 ` [PATCH 2/3] Use gpio_set_value_cansleep() in corgi_lcd.c Marek Vasut
@ 2011-04-04 10:45 ` Eric Miao
2011-04-04 12:06 ` Mark Brown
2011-04-10 7:58 ` Pavel Machek
0 siblings, 2 replies; 12+ messages in thread
From: Eric Miao @ 2011-04-04 10:45 UTC (permalink / raw)
To: linux-arm-kernel
Personally, I don't quite like the idea of an explicit _cansleep() version,
which is just confusing. A programmer shouldn't be aware of which
version to use.
David, you have any justification?
On Sat, Apr 2, 2011 at 9:43 AM, Marek Vasut <marek.vasut@gmail.com> wrote:
> Signed-off-by: Marek Vasut <marek.vasut@gmail.com>
> ---
> ?drivers/video/backlight/corgi_lcd.c | ? ?4 ++--
> ?1 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/video/backlight/corgi_lcd.c b/drivers/video/backlight/corgi_lcd.c
> index 1e71c35..8c80cb7 100644
> --- a/drivers/video/backlight/corgi_lcd.c
> +++ b/drivers/video/backlight/corgi_lcd.c
> @@ -409,10 +409,10 @@ static int corgi_bl_set_intensity(struct corgi_lcd *lcd, int intensity)
> ? ? ? ?cont = !!(intensity & 0x20) ^ lcd->gpio_backlight_cont_inverted;
>
> ? ? ? ?if (gpio_is_valid(lcd->gpio_backlight_cont))
> - ? ? ? ? ? ? ? gpio_set_value(lcd->gpio_backlight_cont, cont);
> + ? ? ? ? ? ? ? gpio_set_value_cansleep(lcd->gpio_backlight_cont, cont);
>
> ? ? ? ?if (gpio_is_valid(lcd->gpio_backlight_on))
> - ? ? ? ? ? ? ? gpio_set_value(lcd->gpio_backlight_on, intensity);
> + ? ? ? ? ? ? ? gpio_set_value_cansleep(lcd->gpio_backlight_on, intensity);
>
> ? ? ? ?if (lcd->kick_battery)
> ? ? ? ? ? ? ? ?lcd->kick_battery();
> --
> 1.7.4.1
>
>
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 2/3] Use gpio_set_value_cansleep() in corgi_lcd.c
2011-04-04 10:45 ` Eric Miao
@ 2011-04-04 12:06 ` Mark Brown
2011-04-04 12:33 ` Eric Miao
2011-04-10 7:58 ` Pavel Machek
1 sibling, 1 reply; 12+ messages in thread
From: Mark Brown @ 2011-04-04 12:06 UTC (permalink / raw)
To: linux-arm-kernel
On Mon, Apr 04, 2011 at 06:45:46PM +0800, Eric Miao wrote:
> Personally, I don't quite like the idea of an explicit _cansleep() version,
> which is just confusing. A programmer shouldn't be aware of which
> version to use.
When working in interrupt context you need to pay attention to this
stuff; personally I'd prefer an explict IRQ safe version but YMMV. The
only use the code makes of this is to generate warnings to make problems
easier to diagnose.
> David, you have any justification?
Sadly David passed away recently.
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 2/3] Use gpio_set_value_cansleep() in corgi_lcd.c
2011-04-04 12:06 ` Mark Brown
@ 2011-04-04 12:33 ` Eric Miao
2011-04-04 12:44 ` Marek Vasut
0 siblings, 1 reply; 12+ messages in thread
From: Eric Miao @ 2011-04-04 12:33 UTC (permalink / raw)
To: linux-arm-kernel
On Mon, Apr 4, 2011 at 8:06 PM, Mark Brown
<broonie@opensource.wolfsonmicro.com> wrote:
> On Mon, Apr 04, 2011 at 06:45:46PM +0800, Eric Miao wrote:
>> Personally, I don't quite like the idea of an explicit _cansleep() version,
>> which is just confusing. A programmer shouldn't be aware of which
>> version to use.
>
> When working in interrupt context you need to pay attention to this
> stuff; personally I'd prefer an explict IRQ safe version but YMMV. ?The
> only use the code makes of this is to generate warnings to make problems
> easier to diagnose.
>
>> David, you have any justification?
>
> Sadly David passed away recently.
>
What????!!!!????? I didn't know that.
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 2/3] Use gpio_set_value_cansleep() in corgi_lcd.c
2011-04-04 12:33 ` Eric Miao
@ 2011-04-04 12:44 ` Marek Vasut
2011-04-04 12:49 ` Russell King - ARM Linux
0 siblings, 1 reply; 12+ messages in thread
From: Marek Vasut @ 2011-04-04 12:44 UTC (permalink / raw)
To: linux-arm-kernel
> On Mon, Apr 4, 2011 at 8:06 PM, Mark Brown
> <broonie@opensource.wolfsonmicro.com> wrote:
> > On Mon, Apr 04, 2011 at 06:45:46PM +0800, Eric Miao wrote:
> > > Personally, I don't quite like the idea of an explicit _cansleep()
> > > version, which is just confusing. A programmer shouldn't be aware of
> > > which version to use.
> >
> > When working in interrupt context you need to pay attention to this
> > stuff; personally I'd prefer an explict IRQ safe version but YMMV. ?The
> > only use the code makes of this is to generate warnings to make
> > problems easier to diagnose.
> >
> > > David, you have any justification?
> >
> > Sadly David passed away recently.
> >
>
> What????!!!!????? I didn't know that.
Me neither. I'm shocked. What happened?
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 2/3] Use gpio_set_value_cansleep() in corgi_lcd.c
2011-04-04 12:44 ` Marek Vasut
@ 2011-04-04 12:49 ` Russell King - ARM Linux
2011-04-04 12:52 ` Marek Vasut
2011-04-04 12:59 ` Russell King - ARM Linux
0 siblings, 2 replies; 12+ messages in thread
From: Russell King - ARM Linux @ 2011-04-04 12:49 UTC (permalink / raw)
To: linux-arm-kernel
On Mon, Apr 04, 2011 at 02:44:17PM +0200, Marek Vasut wrote:
> > On Mon, Apr 4, 2011 at 8:06 PM, Mark Brown
> > <broonie@opensource.wolfsonmicro.com> wrote:
> > > On Mon, Apr 04, 2011 at 06:45:46PM +0800, Eric Miao wrote:
> > > > Personally, I don't quite like the idea of an explicit _cansleep()
> > > > version, which is just confusing. A programmer shouldn't be aware of
> > > > which version to use.
> > >
> > > When working in interrupt context you need to pay attention to this
> > > stuff; personally I'd prefer an explict IRQ safe version but YMMV. ?The
> > > only use the code makes of this is to generate warnings to make
> > > problems easier to diagnose.
> > >
> > > > David, you have any justification?
> > >
> > > Sadly David passed away recently.
> > >
> >
> > What????!!!!????? I didn't know that.
>
> Me neither. I'm shocked. What happened?
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 2/3] Use gpio_set_value_cansleep() in corgi_lcd.c
2011-04-04 12:49 ` Russell King - ARM Linux
@ 2011-04-04 12:52 ` Marek Vasut
2011-04-04 12:59 ` Russell King - ARM Linux
1 sibling, 0 replies; 12+ messages in thread
From: Marek Vasut @ 2011-04-04 12:52 UTC (permalink / raw)
To: linux-arm-kernel
> On Mon, Apr 04, 2011 at 02:44:17PM +0200, Marek Vasut wrote:
> > > On Mon, Apr 4, 2011 at 8:06 PM, Mark Brown
> > > <broonie@opensource.wolfsonmicro.com> wrote:
> > > > On Mon, Apr 04, 2011 at 06:45:46PM +0800, Eric Miao wrote:
> > > > > Personally, I don't quite like the idea of an explicit
> > > > > _cansleep() version, which is just confusing. A programmer
> > > > > shouldn't be aware of which version to use.
> > > >
> > > > When working in interrupt context you need to pay attention to this
> > > > stuff; personally I'd prefer an explict IRQ safe version but YMMV.
> > > > ?The only use the code makes of this is to generate warnings to
> > > > make problems easier to diagnose.
> > > >
> > > > > David, you have any justification?
> > > >
> > > > Sadly David passed away recently.
> > > >
> > >
> > > What????!!!!????? I didn't know that.
> >
> > Me neither. I'm shocked. What happened?
>
> From what I can tell, so far it's been passed around in private mail
> only, and so people are hearing about it 3rd, 4th or more hand - which
> really isn't the way to go about giving this news.
>
> So, I'm not going to pass on the details which I've heard, instead
> I'd suggest people wait for (or try to find) an official announcement.
>
My condolences :-(
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 2/3] Use gpio_set_value_cansleep() in corgi_lcd.c
2011-04-04 12:49 ` Russell King - ARM Linux
2011-04-04 12:52 ` Marek Vasut
@ 2011-04-04 12:59 ` Russell King - ARM Linux
1 sibling, 0 replies; 12+ messages in thread
From: Russell King - ARM Linux @ 2011-04-04 12:59 UTC (permalink / raw)
To: linux-arm-kernel
On Mon, Apr 04, 2011 at 01:49:26PM +0100, Russell King - ARM Linux wrote:
> On Mon, Apr 04, 2011 at 02:44:17PM +0200, Marek Vasut wrote:
> > > On Mon, Apr 4, 2011 at 8:06 PM, Mark Brown
> > > <broonie@opensource.wolfsonmicro.com> wrote:
> > > > On Mon, Apr 04, 2011 at 06:45:46PM +0800, Eric Miao wrote:
> > > > > Personally, I don't quite like the idea of an explicit _cansleep()
> > > > > version, which is just confusing. A programmer shouldn't be aware of
> > > > > which version to use.
> > > >
> > > > When working in interrupt context you need to pay attention to this
> > > > stuff; personally I'd prefer an explict IRQ safe version but YMMV. ?The
> > > > only use the code makes of this is to generate warnings to make
> > > > problems easier to diagnose.
> > > >
> > > > > David, you have any justification?
> > > >
> > > > Sadly David passed away recently.
> > > >
> > >
> > > What????!!!!????? I didn't know that.
> >
> > Me neither. I'm shocked. What happened?
>
> >From what I can tell, so far it's been passed around in private mail
> only, and so people are hearing about it 3rd, 4th or more hand - which
> really isn't the way to go about giving this news.
>
> So, I'm not going to pass on the details which I've heard, instead
> I'd suggest people wait for (or try to find) an official announcement.
Additionally, I'd like to say that I've requested from the person I heard
the news from the details for sending condolences, but so far I'm none
the wiser.
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 2/3] Use gpio_set_value_cansleep() in corgi_lcd.c
2011-04-04 10:45 ` Eric Miao
2011-04-04 12:06 ` Mark Brown
@ 2011-04-10 7:58 ` Pavel Machek
1 sibling, 0 replies; 12+ messages in thread
From: Pavel Machek @ 2011-04-10 7:58 UTC (permalink / raw)
To: linux-arm-kernel
On Mon 2011-04-04 18:45:46, Eric Miao wrote:
> Personally, I don't quite like the idea of an explicit _cansleep() version,
> which is just confusing. A programmer shouldn't be aware of which
> version to use.
>
> David, you have any justification?
Whether it is possible to sleep in given context is not something
that can be detected automatically in general case; so two different
functions are needed.
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 3/3] PXA: Reorganise pxa2xx_base init() function
2011-04-02 1:43 [PATCH 1/3] sound/spitz: Properly handle MIC GPIO Marek Vasut
2011-04-02 1:43 ` [PATCH 2/3] Use gpio_set_value_cansleep() in corgi_lcd.c Marek Vasut
@ 2011-04-02 1:43 ` Marek Vasut
2011-04-03 13:18 ` [PATCH 1/3] sound/spitz: Properly handle MIC GPIO Mark Brown
2 siblings, 0 replies; 12+ messages in thread
From: Marek Vasut @ 2011-04-02 1:43 UTC (permalink / raw)
To: linux-arm-kernel
This kills dead code and kills some redundant code.
Original idea by: Cyril Hrubis <metan@ucw.cz>
Signed-off-by: Marek Vasut <marek.vasut@gmail.com>
---
drivers/pcmcia/pxa2xx_base.c | 30 +++++++++++++-----------------
1 files changed, 13 insertions(+), 17 deletions(-)
diff --git a/drivers/pcmcia/pxa2xx_base.c b/drivers/pcmcia/pxa2xx_base.c
index 2c54054..687d203 100644
--- a/drivers/pcmcia/pxa2xx_base.c
+++ b/drivers/pcmcia/pxa2xx_base.c
@@ -296,18 +296,20 @@ static int pxa2xx_drv_pcmcia_probe(struct platform_device *dev)
goto err0;
}
- clk = clk_get(&dev->dev, NULL);
- if (!clk)
- return -ENODEV;
-
- pxa2xx_drv_pcmcia_ops(ops);
-
sinfo = kzalloc(SKT_DEV_INFO_SIZE(ops->nr), GFP_KERNEL);
if (!sinfo) {
- clk_put(clk);
- return -ENOMEM;
+ ret = -ENOMEM;
+ goto err0;
}
+ clk = clk_get(&dev->dev, NULL);
+ if (!clk) {
+ ret = -ENODEV;
+ goto err0;
+ }
+
+ pxa2xx_drv_pcmcia_ops(ops);
+
sinfo->nskt = ops->nr;
sinfo->clk = clk;
@@ -327,15 +329,8 @@ static int pxa2xx_drv_pcmcia_probe(struct platform_device *dev)
goto err1;
}
- if (ret) {
- while (--i >= 0)
- soc_pcmcia_remove_one(&sinfo->skt[i]);
- kfree(sinfo);
- clk_put(clk);
- } else {
- pxa2xx_configure_sockets(&dev->dev);
- dev_set_drvdata(&dev->dev, sinfo);
- }
+ pxa2xx_configure_sockets(&dev->dev);
+ dev_set_drvdata(&dev->dev, sinfo);
return 0;
@@ -343,6 +338,7 @@ err1:
while (--i >= 0)
soc_pcmcia_remove_one(&sinfo->skt[i]);
kfree(sinfo);
+ clk_put(clk);
err0:
return ret;
}
--
1.7.4.1
^ permalink raw reply related [flat|nested] 12+ messages in thread* [PATCH 1/3] sound/spitz: Properly handle MIC GPIO
2011-04-02 1:43 [PATCH 1/3] sound/spitz: Properly handle MIC GPIO Marek Vasut
2011-04-02 1:43 ` [PATCH 2/3] Use gpio_set_value_cansleep() in corgi_lcd.c Marek Vasut
2011-04-02 1:43 ` [PATCH 3/3] PXA: Reorganise pxa2xx_base init() function Marek Vasut
@ 2011-04-03 13:18 ` Mark Brown
2 siblings, 0 replies; 12+ messages in thread
From: Mark Brown @ 2011-04-03 13:18 UTC (permalink / raw)
To: linux-arm-kernel
On Sat, Apr 02, 2011 at 03:43:15AM +0200, Marek Vasut wrote:
> This patch firstly restructurizes the code a bit by getting rid of continuous
> checking for machine type in spitz_mic_bias().
>
> Then the patch properly requests the MIC GPIO in the spitz_init() and frees it
> in spitz_exit().
>
> Signed-off-by: Marek Vasut <marek.vasut@gmail.com>
Applied, thanks.
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2011-04-10 7:58 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-04-02 1:43 [PATCH 1/3] sound/spitz: Properly handle MIC GPIO Marek Vasut
2011-04-02 1:43 ` [PATCH 2/3] Use gpio_set_value_cansleep() in corgi_lcd.c Marek Vasut
2011-04-04 10:45 ` Eric Miao
2011-04-04 12:06 ` Mark Brown
2011-04-04 12:33 ` Eric Miao
2011-04-04 12:44 ` Marek Vasut
2011-04-04 12:49 ` Russell King - ARM Linux
2011-04-04 12:52 ` Marek Vasut
2011-04-04 12:59 ` Russell King - ARM Linux
2011-04-10 7:58 ` Pavel Machek
2011-04-02 1:43 ` [PATCH 3/3] PXA: Reorganise pxa2xx_base init() function Marek Vasut
2011-04-03 13:18 ` [PATCH 1/3] sound/spitz: Properly handle MIC GPIO Mark Brown
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.