All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mark Brown <broonie@opensource.wolfsonmicro.com>
To: MyungJoo Ham <myungjoo.ham@samsung.com>
Cc: linux-kernel@vger.kernel.org, NeilBrown <neilb@suse.de>,
	"Randy Dunlap" <rdunlap@xenotime.net>,
	"Mike Lockwood" <lockwood@android.com>,
	"Arve Hjønnevag" <arve@android.com>,
	"Kyungmin Park" <kyungmin.park@samsung.com>,
	"Donggeun Kim" <dg77.kim@samsung.com>, "Greg KH" <gregkh@suse.de>,
	"Arnd Bergmann" <arnd@arndb.de>,
	"Linus Walleij" <linus.walleij@linaro.org>,
	"Dmitry Torokhov" <dmitry.torokhov@gmail.com>,
	"Morten CHRISTIANSEN" <morten.christiansen@stericsson.com>,
	"John Stultz" <john.stultz@linaro.org>,
	"Joerg Roedel" <joerg.roedel@amd.com>,
	myungjoo.ham@gmail.com
Subject: Re: [PATCH v5 5/5] Extcon: adc-jack driver to support 3.5 pi or simliar devices
Date: Fri, 10 Feb 2012 16:25:12 +0000	[thread overview]
Message-ID: <20120210162512.GF6472@opensource.wolfsonmicro.com> (raw)
In-Reply-To: <1328856038-21912-6-git-send-email-myungjoo.ham@samsung.com>

[-- Attachment #1: Type: text/plain, Size: 2169 bytes --]

On Fri, Feb 10, 2012 at 03:40:38PM +0900, MyungJoo Ham wrote:
> External connector devices that decides connection information based on
> ADC values may use adc-jack device driver. The user simply needs to
> provide a table of adc range and connection states. Then, extcon
> framework will automatically notify others.

This really should be done in terms of the IIO in-kernel framework.

> +	/* Check the length of array and set num_cables */
> +	for (i = 0; data->edev.supported_cable[i]; i++)
> +		;
> +	if (i == 0 || i > SUPPORTED_CABLE_MAX) {

Can we not avoid the hard limit?

> +	/* Check the length of array and set num_conditions */
> +	for (i = 0; data->adc_condition[i].state; i++)
> +		;
> +	data->num_conditions = i;

It'd seem nicer to just specify the length in the parameters, less error
prone.

> +	if (pdata->irq) {
> +		data->irq = pdata->irq;
> +
> +		err = request_threaded_irq(data->irq, NULL,
> +					   adc_jack_irq_thread,
> +					   pdata->irq_flags, pdata->name,
> +					   data);

Since all this does is schedule a delayed work there's no reason to
bother with a threaded IRQ and this could be request_any_context_irq().

> +	err = extcon_dev_register(&data->edev, &pdev->dev);
> +	if (err)
> +		goto err_irq;

What happens if the interrupt fires prior to this...

> +	data->ready = true;

...ah, that's what this is about.  It'd seem cleaner to just reverse the
request and registration.

> +	goto out;

More idiomatic to have a return statement here.

> +static int __devexit adc_jack_remove(struct platform_device *pdev)
> +{
> +	struct adc_jack_data *data = platform_get_drvdata(pdev);
> +
> +	extcon_dev_unregister(&data->edev);
> +	if (data->irq)
> +		free_irq(data->irq, data);

The interrupt needs to be freed prior to the device unregistration
otherwise they may race.

> +static int __init adc_jack_init(void)
> +{
> +	return platform_driver_register(&adc_jack_driver);
> +}
> +
> +static void __exit adc_jack_exit(void)
> +{
> +	platform_driver_unregister(&adc_jack_driver);
> +}

module_platform_driver().

> +	unsigned long handling_delay; /* in jiffies */

I'd suggest calling this "debounce" instead, it seems more idiomatic.

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

  reply	other threads:[~2012-02-10 16:25 UTC|newest]

Thread overview: 68+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-01-11  9:46 [PATCH v3 0/4] introduce External Connector Class (extcon) MyungJoo Ham
2012-01-11  9:46 ` [PATCH v3 1/4] Extcon (external connector): import Android's switch class and modify MyungJoo Ham
2012-01-11  9:46 ` [PATCH v3 2/4] Extcon: support notification based on the state changes MyungJoo Ham
2012-01-11  9:46 ` [PATCH v3 3/4] Extcon: support multiple states at a device MyungJoo Ham
2012-01-11  9:46 ` [PATCH v3 4/4] Extcon: support mutually exclusive relation between cables MyungJoo Ham
2012-01-20  1:01 ` [PATCH v4 0/4] introduce External Connector Class (extcon) MyungJoo Ham
2012-01-20  1:01   ` [PATCH v4 1/4] Extcon (external connector): import Android's switch class and modify MyungJoo Ham
2012-01-20  1:01   ` [PATCH v4 2/4] Extcon: support notification based on the state changes MyungJoo Ham
2012-01-20  1:01   ` [PATCH v4 3/4] Extcon: support multiple states at a device MyungJoo Ham
2012-01-20  1:01   ` [PATCH v4 4/4] Extcon: support mutually exclusive relation between cables MyungJoo Ham
2012-02-10  6:40   ` [PATCH v5 0/5] Introduce External Connector Class (extcon) MyungJoo Ham
2012-02-10  6:40     ` [PATCH v5 1/5] Extcon (external connector): import Android's switch class and modify MyungJoo Ham
2012-02-20  1:54       ` Mark Brown
2012-02-20  6:17         ` MyungJoo Ham
2012-02-20 15:45           ` Mark Brown
2012-02-10  6:40     ` [PATCH v5 2/5] Extcon: support notification based on the state changes MyungJoo Ham
2012-02-20  2:20       ` Mark Brown
2012-02-10  6:40     ` [PATCH v5 3/5] Extcon: support multiple states at a device MyungJoo Ham
2012-02-20  2:24       ` Mark Brown
2012-02-20  7:02         ` MyungJoo Ham
2012-02-22 10:07       ` Arnd Bergmann
2012-02-10  6:40     ` [PATCH v5 4/5] Extcon: support mutually exclusive relation between cables MyungJoo Ham
2012-02-20  2:27       ` Mark Brown
2012-02-22  8:23         ` MyungJoo Ham
2012-02-22 10:00           ` Arnd Bergmann
2012-02-24  4:56             ` MyungJoo Ham
2012-02-24 12:53               ` Arnd Bergmann
2012-02-27  6:47                 ` MyungJoo Ham
2012-02-10  6:40     ` [PATCH v5 5/5] Extcon: adc-jack driver to support 3.5 pi or simliar devices MyungJoo Ham
2012-02-10 16:25       ` Mark Brown [this message]
2012-02-14  2:22         ` MyungJoo Ham
2012-02-14  5:58           ` Mark Brown
2012-02-27 12:15     ` [PATCH v6 0/5] Introduce External Connector Class (extcon) MyungJoo Ham
2012-02-27 12:15       ` MyungJoo Ham
2012-02-27 12:15       ` [PATCH v6 1/5] Extcon (external connector): import Android's switch class and modify MyungJoo Ham
2012-02-27 12:15         ` MyungJoo Ham
2012-03-09 12:41         ` Mark Brown
2012-03-09 12:41           ` Mark Brown
2012-03-12  8:06           ` MyungJoo Ham
2012-03-12  8:06             ` MyungJoo Ham
2012-03-29 22:27           ` Erik Gilling
2012-03-29 22:27             ` Erik Gilling
2012-03-30  8:56             ` MyungJoo Ham
2012-03-30  8:56               ` MyungJoo Ham
2012-03-30 10:14               ` Mark Brown
2012-03-30 10:14                 ` Mark Brown
2012-03-30 10:07             ` Mark Brown
2012-03-30 10:07               ` Mark Brown
2012-03-30 17:29               ` Erik Gilling
2012-03-30 17:29                 ` Erik Gilling
2012-03-30 17:38                 ` Dima Zavin
2012-03-30 17:38                   ` Dima Zavin
2012-04-02  5:09                   ` MyungJoo Ham
2012-04-02  5:09                     ` MyungJoo Ham
2012-03-31 10:19                 ` Mark Brown
2012-03-31 10:19                   ` Mark Brown
2012-02-27 12:15       ` [PATCH v6 2/5] Extcon: support generic GPIO extcon driver MyungJoo Ham
2012-02-27 12:15         ` MyungJoo Ham
2012-03-29 22:37         ` Stephen Boyd
2012-03-29 22:37           ` Stephen Boyd
2012-03-30  8:33           ` MyungJoo Ham
2012-03-30  8:33             ` MyungJoo Ham
2012-02-27 12:15       ` [PATCH v6 3/5] Extcon: support notification based on the state changes MyungJoo Ham
2012-02-27 12:15         ` MyungJoo Ham
2012-02-27 12:15       ` [PATCH v6 4/5] Extcon: support multiple states at a device MyungJoo Ham
2012-02-27 12:15         ` MyungJoo Ham
2012-02-27 12:15       ` [PATCH v6 5/5] Extcon: support mutually exclusive relation between cables MyungJoo Ham
2012-02-27 12:15         ` MyungJoo Ham

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20120210162512.GF6472@opensource.wolfsonmicro.com \
    --to=broonie@opensource.wolfsonmicro.com \
    --cc=arnd@arndb.de \
    --cc=arve@android.com \
    --cc=dg77.kim@samsung.com \
    --cc=dmitry.torokhov@gmail.com \
    --cc=gregkh@suse.de \
    --cc=joerg.roedel@amd.com \
    --cc=john.stultz@linaro.org \
    --cc=kyungmin.park@samsung.com \
    --cc=linus.walleij@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lockwood@android.com \
    --cc=morten.christiansen@stericsson.com \
    --cc=myungjoo.ham@gmail.com \
    --cc=myungjoo.ham@samsung.com \
    --cc=neilb@suse.de \
    --cc=rdunlap@xenotime.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.