lkml.org 
[lkml]   [2012]   [Mar]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] ASoC: max98095: add jack detection
On Tue, Mar 13, 2012 at 12:44:08PM -0700, Rhyland Klein wrote:

> This change adds the logic to support using the jack detect mechanism built
> in to the codec to detect both when a jack was inserted and what type of
> jack is present.

This looks mostly good, a few things below.

> @@ -51,6 +52,9 @@ struct max98095_priv {
> u8 lin_state;
> unsigned int mic1pre;
> unsigned int mic2pre;
> + int irq;

You can just get the irq from the I2C device.

> + if (max98095->headphone_jack == max98095->mic_jack)
> + snd_soc_jack_report(max98095->headphone_jack,
> + hp_report | mic_report,
> + SND_JACK_HEADSET);
> + else {

Braces on both sides of the if for clarity.

> +static irqreturn_t max98095_jack_handler(int irq, void *data)
> +{
> + struct snd_soc_codec *codec = data;
> + int ret;
> +
> + ret = max98095_report_jack(codec);
> +
> + return ret ? IRQ_NONE : IRQ_HANDLED;

There is no point in having a separate function here, this function has
no contents. Just inline it. Please also avoid the use of the ternery
operator.

> + /* configure jack detection: slew is calculated as 4 * (delay + 1)
> + * The default is 24 (0x18) to get 100ms delay.
> + */
> + ret = snd_soc_write(codec, M98095_08E_JACK_DC_SLEW,
> + M98095_DEFAULT_SLEW_DELAY);
> + if (ret < 0) {
> + dev_err(codec->dev, "Failed to cfg auto detect %d\n", ret);
> + return ret;
> + }

Platform data?

> + enable_irq(max98095->irq);

You shouldn't be fiddling around with enable_irq() and disable_irq().
Why are you doing this?
[unhandled content-type:application/pgp-signature]
\
 
 \ /
  Last update: 2012-03-14 00:11    [W:0.101 / U:0.016 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site