From: Ray Jui <rjui@broadcom.com>
To: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>
Cc: Wolfram Sang <wsa@the-dreams.de>,
Rob Herring <robh+dt@kernel.org>, Pawel Moll <pawel.moll@arm.com>,
Mark Rutland <mark.rutland@arm.com>,
Ian Campbell <ijc+devicetree@hellion.org.uk>,
Kumar Gala <galak@codeaurora.org>,
Grant Likely <grant.likely@linaro.org>,
Christian Daudt <bcm@fixthebug.org>,
Matt Porter <mporter@linaro.org>,
Florian Fainelli <f.fainelli@gmail.com>,
Russell King <linux@arm.linux.org.uk>,
Scott Branden <sbranden@broadcom.com>,
linux-i2c@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
bcm-kernel-feedback-list@broadcom.com,
devicetree@vger.kernel.org
Subject: Re: [PATCH v3 2/3] i2c: iproc: Add Broadcom iProc I2C Driver
Date: Wed, 14 Jan 2015 12:05:20 -0800 [thread overview]
Message-ID: <54B6CC00.3050609@broadcom.com> (raw)
In-Reply-To: <20150114075137.GL22880@pengutronix.de>
On 1/13/2015 11:51 PM, Uwe Kleine-König wrote:
> Hello,
>
> On Tue, Jan 13, 2015 at 06:14:17PM -0800, Ray Jui wrote:
>>>> + irq = platform_get_irq(pdev, 0);
>>>> + if (irq < 0) {
>>> irq == 0 should be handled as error, too.
>>>
>> Ah. I thought zero is a valid global interrupt number, and I see other
>> drivers checking against < 0 as well. Is my understanding incorrect?
> These are wrong, too. 0 should never be a valid interrupt number. There
> are some exceptions but mostly for historic reasons. The right handling
> is used for example in drivers/i2c/busses/i2c-efm32.c.
>
Okay. Will check against <= 0. Thanks.
>>>> + dev_err(dev->device, "no irq resource\n");
>>>> + return irq;
>>>> + }
>> [...]
>>>> +static int bcm_iproc_i2c_remove(struct platform_device *pdev)
>>>> +{
>>>> + struct bcm_iproc_i2c_dev *dev = platform_get_drvdata(pdev);
>>>> +
>>>> + i2c_del_adapter(&dev->adapter);
>>>> + bcm_iproc_i2c_disable(dev);
>>> I think you have a problem here if bcm_iproc_i2c_remove is called while
>>> an irq is still being serviced. I'm not sure how to prevent this
>>> properly for a shared interrupt.
>>>
>> Can I grab i2c_lock_adapter to ensure the bus is locked (so there's no
>> outstanding transactions or IRQs by the time we remove the adapter)? But
>> I see no I2C bus driver does this in their remove function...
> The problem I pointed out is the reason for some driver authors not to
> use devm_request_irq. If you use plain request_irq and the matching
> free_irq in the .remove callback you can be sure that the irq isn't
> running any more as soon as free_irq returns.
>
Okay. Will change to use request_irq and make sure that it's freed in
the remove function. Also, the interrupt is dedicated to the I2C
controller, so I'll remove the IRQF_SHARED flag.
> BTW, if you use vim, you can add
>
> set cinoptions=(,:
> if has("autocmd")
> filetype plugin indent on
> endif
>
> to your .vimrc. Then while typing vim does the indention right and
> consistent, and with the = command you can reindent.
>
Wow this is excellent! Just tried and it works perfectly. Thanks a lot!!!
> Best regards
> Uwe
>
next prev parent reply other threads:[~2015-01-14 20:05 UTC|newest]
Thread overview: 106+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <Ray Jui <rjui@broadcom.com>
[not found] ` <Ray Jui <rjui-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
2014-12-10 0:54 ` [PATCH 0/4] Add I2C support to Broadcom iProc Ray Jui
2014-12-10 0:54 ` [PATCH 1/4] i2c: iProc: define Broadcom iProc I2C binding Ray Jui
2014-12-10 1:27 ` Varka Bhadram
[not found] ` <5487A16C.5000707-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2014-12-10 1:35 ` Ray Jui
[not found] ` <CAEUmHyb_wu1kVj-G5LQj8Q_A1Tid1gSGbU=cGeBf4EXZgXChbg@mail.gmail.com>
[not found] ` <CAEUmHyb_wu1kVj-G5LQj8Q_A1Tid1gSGbU=cGeBf4EXZgXChbg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-12-10 3:27 ` Ray Jui
2014-12-10 0:54 ` [PATCH 2/4] i2c: iproc: Add Broadcom iProc I2C Driver Ray Jui
2014-12-10 1:33 ` Varka Bhadram
[not found] ` <5487A2D6.8070901-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2014-12-10 1:41 ` Ray Jui
[not found] ` <CAEUmHyZ+VqjzL4LkQozGJtnictPNXHYWM2qMKvD=LmfQdcT8iQ@mail.gmail.com>
[not found] ` <CAEUmHyZ86r=7KzJzfE9_upv45vN7geW9woqMkaGaBPwfp3xbMQ@mail.gmail.com>
[not found] ` <CAEUmHyZ86r=7KzJzfE9_upv45vN7geW9woqMkaGaBPwfp3xbMQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-12-10 3:31 ` Ray Jui
2014-12-10 0:54 ` [PATCH 3/4] ARM: mach-bcm: Enable I2C support for iProc Ray Jui
2014-12-10 0:54 ` [PATCH 4/4] ARM: dts: add I2C device nodes for Broadcom Cygnus Ray Jui
2014-12-10 2:18 ` [PATCH v2 0/4] Add I2C support to Broadcom iProc Ray Jui
2014-12-10 2:18 ` [PATCH v2 1/4] i2c: iProc: define Broadcom iProc I2C binding Ray Jui
2014-12-10 2:18 ` [PATCH v2 2/4] i2c: iproc: Add Broadcom iProc I2C Driver Ray Jui
[not found] ` <1418177893-22094-1-git-send-email-rjui-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
2014-12-10 2:18 ` [PATCH v2 3/4] ARM: mach-bcm: Enable I2C support for iProc Ray Jui
[not found] ` <1418177893-22094-4-git-send-email-rjui-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
2014-12-10 2:20 ` Florian Fainelli
[not found] ` <5487ADE5.4070705-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2014-12-10 2:24 ` Ray Jui
[not found] ` <5487AEF0.5010404-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
2014-12-10 3:20 ` Florian Fainelli
[not found] ` <5487BBE0.4000701-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2014-12-10 3:58 ` Ray Jui
2014-12-10 2:18 ` [PATCH v2 4/4] ARM: dts: add I2C device nodes for Broadcom Cygnus Ray Jui
2014-12-10 3:57 ` [PATCH v3 0/3] Add I2C support to Broadcom iProc Ray Jui
2014-12-10 3:57 ` [PATCH v3 1/3] i2c: iProc: define Broadcom iProc I2C binding Ray Jui
2014-12-10 3:57 ` [PATCH v3 2/3] i2c: iproc: Add Broadcom iProc I2C Driver Ray Jui
[not found] ` <1418183832-24793-3-git-send-email-rjui-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
2015-01-13 22:50 ` Uwe Kleine-König
[not found] ` <20150113225012.GK22880-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2015-01-14 2:14 ` Ray Jui
2015-01-14 7:51 ` Uwe Kleine-König
2015-01-14 20:05 ` Ray Jui [this message]
[not found] ` <54B5D0F9.8030902-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
2015-01-15 11:59 ` Wolfram Sang
2015-01-16 22:51 ` Ray Jui
2014-12-10 3:57 ` [PATCH v3 3/3] ARM: dts: add I2C device nodes for Broadcom Cygnus Ray Jui
[not found] ` <548F577E.7020207@broadcom.com>
[not found] ` <548F577E.7020207-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
2014-12-15 21:55 ` [PATCH v3 0/3] Add I2C support to Broadcom iProc Wolfram Sang
2014-12-16 0:12 ` Ray Jui
2015-01-14 22:23 ` [PATCH v4 " Ray Jui
2015-01-14 22:23 ` [PATCH v4 1/3] i2c: iProc: define Broadcom iProc I2C binding Ray Jui
[not found] ` <1421274213-3544-1-git-send-email-rjui-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
2015-01-14 22:23 ` [PATCH v4 2/3] i2c: iproc: Add Broadcom iProc I2C Driver Ray Jui
[not found] ` <1421274213-3544-3-git-send-email-rjui-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
2015-01-15 8:41 ` Uwe Kleine-König
[not found] ` <20150115084119.GN22880-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2015-01-15 12:07 ` Wolfram Sang
2015-01-15 16:32 ` Uwe Kleine-König
2015-01-16 22:52 ` Ray Jui
2015-01-16 22:09 ` Ray Jui
[not found] ` <54B98C18.4080807-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
2015-01-17 16:01 ` Uwe Kleine-König
[not found] ` <20150117160113.GA22880-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2015-01-17 19:58 ` Ray Jui
[not found] ` <54BABEE9.8070801-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
2015-01-17 20:18 ` Uwe Kleine-König
[not found] ` <20150117201849.GC22880-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2015-01-17 20:51 ` Ray Jui
[not found] ` <54BACB66.6040909-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
2015-01-17 21:10 ` Uwe Kleine-König
[not found] ` <20150117211017.GD22880-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2015-01-17 21:26 ` Ray Jui
[not found] ` <54BAD391.9080909-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
2015-01-17 22:40 ` Russell King - ARM Linux
[not found] ` <20150117224021.GA26493-l+eeeJia6m9vn6HldHNs0ANdhmdF6hFW@public.gmane.org>
2015-01-18 0:30 ` Ray Jui
2015-01-19 19:28 ` Russell King - ARM Linux
[not found] ` <20150119192805.GF26493-l+eeeJia6m9vn6HldHNs0ANdhmdF6hFW@public.gmane.org>
2015-01-19 21:25 ` Ray Jui
2015-01-14 22:23 ` [PATCH v4 3/3] ARM: dts: add I2C device nodes for Broadcom Cygnus Ray Jui
[not found] ` <1421274213-3544-4-git-send-email-rjui-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
2015-01-15 8:44 ` Uwe Kleine-König
[not found] ` <20150115084456.GO22880-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2015-01-16 19:24 ` Ray Jui
[not found] ` <54B96559.1010007-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
2015-01-16 19:48 ` Uwe Kleine-König
[not found] ` <20150116194831.GV22880-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2015-01-16 23:18 ` Ray Jui
2015-01-16 23:42 ` [PATCH v5 0/3] Add I2C support to Broadcom iProc Ray Jui
[not found] ` <1421451737-7107-1-git-send-email-rjui-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
2015-01-16 23:42 ` [PATCH v5 1/3] i2c: iProc: define Broadcom iProc I2C binding Ray Jui
2015-01-16 23:42 ` [PATCH v5 2/3] i2c: iproc: Add Broadcom iProc I2C Driver Ray Jui
[not found] ` <1421451737-7107-3-git-send-email-rjui-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
2015-01-18 9:14 ` Arend van Spriel
[not found] ` <54BB795C.6040402-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
2015-01-18 9:47 ` Uwe Kleine-König
[not found] ` <20150118094741.GE22880-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2015-01-18 11:06 ` Wolfram Sang
2015-01-18 11:17 ` Uwe Kleine-König
[not found] ` <20150118111759.GG22880-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2015-01-18 11:42 ` Wolfram Sang
2015-01-18 11:46 ` Arend van Spriel
[not found] ` <54BB9D2B.20408-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
2015-01-18 11:56 ` Uwe Kleine-König
[not found] ` <20150118115650.GH22880-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2015-01-18 12:13 ` Arend van Spriel
[not found] ` <54BBA36A.10608-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
2015-01-19 19:15 ` Ray Jui
2015-01-16 23:42 ` [PATCH v5 3/3] ARM: dts: add I2C device nodes for Broadcom Cygnus Ray Jui
2015-01-19 19:23 ` [PATCH v6 0/3] Add I2C support to Broadcom iProc Ray Jui
[not found] ` <1421695428-19102-1-git-send-email-rjui-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
2015-01-19 19:23 ` [PATCH v6 1/3] i2c: iProc: define Broadcom iProc I2C binding Ray Jui
2015-01-19 19:23 ` [PATCH v6 3/3] ARM: dts: add I2C device nodes for Broadcom Cygnus Ray Jui
2015-01-19 19:23 ` [PATCH v6 2/3] i2c: iproc: Add Broadcom iProc I2C Driver Ray Jui
[not found] ` <1421695428-19102-3-git-send-email-rjui-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
2015-01-19 19:44 ` Russell King - ARM Linux
[not found] ` <20150119194420.GG26493-l+eeeJia6m9vn6HldHNs0ANdhmdF6hFW@public.gmane.org>
2015-01-19 21:31 ` Ray Jui
2015-01-19 21:51 ` [PATCH v7 0/3] Add I2C support to Broadcom iProc Ray Jui
2015-01-19 21:51 ` [PATCH v7 1/3] i2c: iProc: define Broadcom iProc I2C binding Ray Jui
2015-01-19 21:51 ` [PATCH v7 2/3] i2c: iproc: Add Broadcom iProc I2C Driver Ray Jui
2015-02-06 22:31 ` [v7,2/3] " Kevin Cernekee
[not found] ` <20150206223149.GB345-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2015-02-06 22:48 ` Dmitry Torokhov
[not found] ` <CAE_wzQ-POweLLmTyHoMvs_NESjW5UmPxh2ZQCaW4-W74MsrHag-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-02-06 23:01 ` Kevin Cernekee
2015-02-07 0:54 ` Ray Jui
2015-01-19 21:51 ` [PATCH v7 3/3] ARM: dts: add I2C device nodes for Broadcom Cygnus Ray Jui
2015-02-07 1:28 ` [PATCH v8 0/3] Add I2C support to Broadcom iProc Ray Jui
2015-02-07 1:28 ` [PATCH v8 1/3] i2c: iProc: define Broadcom iProc I2C binding Ray Jui
2015-02-07 1:28 ` [PATCH v8 2/3] i2c: iproc: Add Broadcom iProc I2C Driver Ray Jui
[not found] ` <1423272507-18459-3-git-send-email-rjui-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
2015-02-07 17:50 ` Wolfram Sang
2015-02-08 5:08 ` Ray Jui
2015-02-08 11:03 ` Wolfram Sang
2015-02-08 18:10 ` Ray Jui
[not found] ` <54D7A694.4000903-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
2015-02-09 10:03 ` Wolfram Sang
2015-02-07 1:28 ` [PATCH v8 3/3] ARM: dts: add I2C device nodes for Broadcom Cygnus Ray Jui
2015-02-08 5:25 ` [PATCH v9 0/3] Add I2C support to Broadcom iProc Ray Jui
2015-02-08 5:25 ` [PATCH v9 1/3] i2c: iProc: define Broadcom iProc I2C binding Ray Jui
[not found] ` <1423373126-30024-2-git-send-email-rjui-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
2015-02-09 12:09 ` Wolfram Sang
[not found] ` <1423373126-30024-1-git-send-email-rjui-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
2015-02-08 5:25 ` [PATCH v9 2/3] i2c: iproc: Add Broadcom iProc I2C Driver Ray Jui
[not found] ` <1423373126-30024-3-git-send-email-rjui-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
2015-02-08 16:29 ` Wolfram Sang
2015-02-08 17:56 ` Ray Jui
2015-02-09 12:10 ` Wolfram Sang
2015-02-10 5:23 ` Ray Jui
[not found] ` <54D995DA.7040201-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
2015-02-10 8:33 ` Wolfram Sang
2015-02-10 17:10 ` Ray Jui
2015-02-08 5:25 ` [PATCH v9 3/3] ARM: dts: add I2C device nodes for Broadcom Cygnus Ray Jui
2015-02-09 12:11 ` Wolfram Sang
2015-02-10 5:24 ` Ray Jui
[not found] ` <54D99606.9070309-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
2015-02-10 5:34 ` Florian Fainelli
[not found] ` <54D99848.2080205-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2015-02-10 5:36 ` Ray Jui
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=54B6CC00.3050609@broadcom.com \
--to=rjui@broadcom.com \
--cc=bcm-kernel-feedback-list@broadcom.com \
--cc=bcm@fixthebug.org \
--cc=devicetree@vger.kernel.org \
--cc=f.fainelli@gmail.com \
--cc=galak@codeaurora.org \
--cc=grant.likely@linaro.org \
--cc=ijc+devicetree@hellion.org.uk \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-i2c@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@arm.linux.org.uk \
--cc=mark.rutland@arm.com \
--cc=mporter@linaro.org \
--cc=pawel.moll@arm.com \
--cc=robh+dt@kernel.org \
--cc=sbranden@broadcom.com \
--cc=u.kleine-koenig@pengutronix.de \
--cc=wsa@the-dreams.de \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).