Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 157593
b: refs/heads/master
c: 178b699
h: refs/heads/master
i:
  157591: e4217bf
v: v3
  • Loading branch information
Janusz Krzysztofik authored and Mark Brown committed Jul 24, 2009
1 parent 2d2b0c3 commit 8498475
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 5 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 474828a40f6ddab6e2a3475a19c5c84aa3ec7d60
refs/heads/master: 178b699c25c39f042c3c2446e6bd5dbed18c0442
20 changes: 16 additions & 4 deletions trunk/sound/soc/soc-jack.c
Original file line number Diff line number Diff line change
Expand Up @@ -73,14 +73,15 @@ void snd_soc_jack_report(struct snd_soc_jack *jack, int status, int mask)
oldstatus = jack->status;

jack->status &= ~mask;
jack->status |= status;
jack->status |= status & mask;

/* The DAPM sync is expensive enough to be worth skipping */
if (jack->status == oldstatus)
/* The DAPM sync is expensive enough to be worth skipping.
* However, empty mask means pin synchronization is desired. */
if (mask && (jack->status == oldstatus))
goto out;

list_for_each_entry(pin, &jack->pins, list) {
enable = pin->mask & status;
enable = pin->mask & jack->status;

if (pin->invert)
enable = !enable;
Expand Down Expand Up @@ -228,8 +229,16 @@ int snd_soc_jack_add_gpios(struct snd_soc_jack *jack, int count,
if (ret)
goto err;

#ifdef CONFIG_GPIO_SYSFS
/* Expose GPIO value over sysfs for diagnostic purposes */
gpio_export(gpios[i].gpio, false);
#endif

INIT_WORK(&gpios[i].work, gpio_work);
gpios[i].jack = jack;

/* Update initial jack status */
snd_soc_jack_gpio_detect(&gpios[i]);
}

return 0;
Expand Down Expand Up @@ -258,6 +267,9 @@ void snd_soc_jack_free_gpios(struct snd_soc_jack *jack, int count,
int i;

for (i = 0; i < count; i++) {
#ifdef CONFIG_GPIO_SYSFS
gpio_unexport(gpios[i].gpio);
#endif
free_irq(gpio_to_irq(gpios[i].gpio), &gpios[i]);
gpio_free(gpios[i].gpio);
gpios[i].jack = NULL;
Expand Down

0 comments on commit 8498475

Please sign in to comment.