All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnd Hannemann <arnd@arndnet.de>
To: Magnus Damm <magnus.damm@gmail.com>
Cc: linux-mmc@vger.kernel.org, linux-sh@vger.kernel.org,
	g.liakhovetski@gmx.de, Ian Molton <ian@mnementh.co.uk>,
	Samuel Ortiz <sameo@linux.intel.com>
Subject: Re: [PATCH 1/4] mmc: tmio: Implement SDIO IRQ
Date: Mon, 20 Dec 2010 16:51:45 +0100	[thread overview]
Message-ID: <4D0F7B91.10604@arndnet.de> (raw)
In-Reply-To: <AANLkTi=HuQKRuTLLKt3Y4r9Boo71dq4qGtHLNy2=RD-V@mail.gmail.com>

Hi Magnus,

Am 20.12.2010 04:58, schrieb Magnus Damm:
> Hi again Arnd,
> 
> On Wed, Dec 15, 2010 at 12:44 AM, Magnus Damm <magnus.damm@gmail.com> wrote:
>> On Wed, Dec 8, 2010 at 12:08 AM, Arnd Hannemann <arnd@arndnet.de> wrote:
>>> Am 07.12.2010 09:37, schrieb Magnus Damm:
>>>> On Tue, Dec 7, 2010 at 9:22 PM, Arnd Hannemann <arnd@arndnet.de> wrote:
>>>>> Am 07.12.2010 00:39, schrieb Magnus Damm:
>>>>>> On Tue, Dec 7, 2010 at 2:35 AM, Arnd Hannemann <arnd@arndnet.de> wrote:
>>>>>>> This patch implements SDIO IRQ support for mfds which
>>>>>>> announce the MMC_CAP_SDIO_IRQ capability for tmio_mmc.
>>>>>>> Tested with a b43-based wireless SDIO card and sh_mobile_sdhi.
>>>>>>>
>>>>>>> This patch applies on top of:
>>>>>>> mmc: tmio_mmc: allow multi-element scatter-gather lists
>>>>>>> mmc: tmio_mmc: fix PIO fallback on DMA descriptor allocation failure
>>>>>>> mmc: tmio: merge the private header into the driver
>>>>>>> mmc: tmio: implement a bounce buffer for unaligned DMA
>>>>>>>
>>>>>>> Signed-off-by: Arnd Hannemann <arnd@arndnet.de>
>>>>>>> CC: Ian Molton <ian@mnementh.co.uk>
>>>>>>> CC: Samuel Ortiz <sameo@linux.intel.com>
>>>>>>> CC: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
>>>>>>> ---
>>>>>>>  drivers/mmc/host/tmio_mmc.c |   54 ++++++++++++++++++++++++++++++++++++++++++-
>>>>>>>  1 files changed, 53 insertions(+), 1 deletions(-)
>>>>>>
> 
>>>> I'll try to find my AR6002 card, maybe that will shed some light...
>>>
>>> Yeah, that would be really cool.
>>
>> I'll try again next time I have a bit of time to spare. =)
> 
> Alright, now my AR6002-based card is working with your patches. At
> least it seems to be working - my antenna cable is broken so I can
> unfortunately not do any more proper than a simple "iwlist wlan0
> scan". Good thing is that the SDIO IRQ mode and polling mode seem to
> behave about the same.
> 
> Please note that I did not test using the upstream driver. I couldn't
> get that one working last week, so today I reverted to using my last
> known working configuration - the out-of-tree "ar69_sdk" driver
> pointed out by the following instructions:
> http://armin762.wordpress.com/2010/05/24/nvidia-tegra2-getting-wifiatheros-6002-working/

Thanks for testing!

> 
> Anyway, I'm all for including your SDIO IRQ patches, but I think that
> they should be reworked a bit.
> 
> I propose using two flags:
> 
> 1) A hardware-has-sdio-irq-support flag for include/linux/mfd/tmio.h,
> perhaps TMIO_MMC_SDIO_IRQre
> 
> The SDIO IRQ hardware registers are only touched when tmio-mmc is
> provided the TMIO_MMC_SDIO_IRQ flag. The default behavior would be to
> mask the SDIO IRQ interrupt source regardless of the MMC_CAP_SDIO_IRQ
> flag. This should allow us to always enable the SDIO IRQ interrupt
> source in INTC. The SDIO driver should set the TMIO_MMC_SDIO_IRQ flag
> to show that SDHI is known to support SDIO IRQ.
> 
> Hopefully this TMIO_MMC_SDIO_IRQ flag will make it easier for Ian to
> review the code and see that it doesn't break any other platforms that
> may or may not lack SDIO IRQ support.
> 
> 2) The regular MMC_CAP_SDIO_IRQ flag.
> 
> This is enabled per board. If the SDIO IRQ feature doesn't work in
> some case then the system integrator can simply just simply go back to
> polled mode by not setting MMC_CAP_SIDO_IRQ.
> 
> I'm not sure if we can keep the SDIO IRQ interrupt source constantly
> enabled in INTC though. Your current patches require the board
> specific MMC_CAP_SDIO_IRQ flag to be paired with the cpu-specific INTC
> enable change. If someone wishes tho disable SDIO_IRQ support for
> their board then they must know that they also need to revert the INTC
> enable bits, otherwise they'll get endless interrupts when the
> tmio-mmc driver starts. I believe the two-flag approach above will
> solve this problem.

This makes sense, I'll shortly post a revised patchset implementing
your idea...

Thanks,
Arnd

WARNING: multiple messages have this Message-ID (diff)
From: Arnd Hannemann <arnd@arndnet.de>
To: Magnus Damm <magnus.damm@gmail.com>
Cc: linux-mmc@vger.kernel.org, linux-sh@vger.kernel.org,
	g.liakhovetski@gmx.de, Ian Molton <ian@mnementh.co.uk>,
	Samuel Ortiz <sameo@linux.intel.com>
Subject: Re: [PATCH 1/4] mmc: tmio: Implement SDIO IRQ
Date: Mon, 20 Dec 2010 15:51:45 +0000	[thread overview]
Message-ID: <4D0F7B91.10604@arndnet.de> (raw)
In-Reply-To: <AANLkTi=HuQKRuTLLKt3Y4r9Boo71dq4qGtHLNy2=RD-V@mail.gmail.com>

Hi Magnus,

Am 20.12.2010 04:58, schrieb Magnus Damm:
> Hi again Arnd,
> 
> On Wed, Dec 15, 2010 at 12:44 AM, Magnus Damm <magnus.damm@gmail.com> wrote:
>> On Wed, Dec 8, 2010 at 12:08 AM, Arnd Hannemann <arnd@arndnet.de> wrote:
>>> Am 07.12.2010 09:37, schrieb Magnus Damm:
>>>> On Tue, Dec 7, 2010 at 9:22 PM, Arnd Hannemann <arnd@arndnet.de> wrote:
>>>>> Am 07.12.2010 00:39, schrieb Magnus Damm:
>>>>>> On Tue, Dec 7, 2010 at 2:35 AM, Arnd Hannemann <arnd@arndnet.de> wrote:
>>>>>>> This patch implements SDIO IRQ support for mfds which
>>>>>>> announce the MMC_CAP_SDIO_IRQ capability for tmio_mmc.
>>>>>>> Tested with a b43-based wireless SDIO card and sh_mobile_sdhi.
>>>>>>>
>>>>>>> This patch applies on top of:
>>>>>>> mmc: tmio_mmc: allow multi-element scatter-gather lists
>>>>>>> mmc: tmio_mmc: fix PIO fallback on DMA descriptor allocation failure
>>>>>>> mmc: tmio: merge the private header into the driver
>>>>>>> mmc: tmio: implement a bounce buffer for unaligned DMA
>>>>>>>
>>>>>>> Signed-off-by: Arnd Hannemann <arnd@arndnet.de>
>>>>>>> CC: Ian Molton <ian@mnementh.co.uk>
>>>>>>> CC: Samuel Ortiz <sameo@linux.intel.com>
>>>>>>> CC: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
>>>>>>> ---
>>>>>>>  drivers/mmc/host/tmio_mmc.c |   54 ++++++++++++++++++++++++++++++++++++++++++-
>>>>>>>  1 files changed, 53 insertions(+), 1 deletions(-)
>>>>>>
> 
>>>> I'll try to find my AR6002 card, maybe that will shed some light...
>>>
>>> Yeah, that would be really cool.
>>
>> I'll try again next time I have a bit of time to spare. =)
> 
> Alright, now my AR6002-based card is working with your patches. At
> least it seems to be working - my antenna cable is broken so I can
> unfortunately not do any more proper than a simple "iwlist wlan0
> scan". Good thing is that the SDIO IRQ mode and polling mode seem to
> behave about the same.
> 
> Please note that I did not test using the upstream driver. I couldn't
> get that one working last week, so today I reverted to using my last
> known working configuration - the out-of-tree "ar69_sdk" driver
> pointed out by the following instructions:
> http://armin762.wordpress.com/2010/05/24/nvidia-tegra2-getting-wifiatheros-6002-working/

Thanks for testing!

> 
> Anyway, I'm all for including your SDIO IRQ patches, but I think that
> they should be reworked a bit.
> 
> I propose using two flags:
> 
> 1) A hardware-has-sdio-irq-support flag for include/linux/mfd/tmio.h,
> perhaps TMIO_MMC_SDIO_IRQre
> 
> The SDIO IRQ hardware registers are only touched when tmio-mmc is
> provided the TMIO_MMC_SDIO_IRQ flag. The default behavior would be to
> mask the SDIO IRQ interrupt source regardless of the MMC_CAP_SDIO_IRQ
> flag. This should allow us to always enable the SDIO IRQ interrupt
> source in INTC. The SDIO driver should set the TMIO_MMC_SDIO_IRQ flag
> to show that SDHI is known to support SDIO IRQ.
> 
> Hopefully this TMIO_MMC_SDIO_IRQ flag will make it easier for Ian to
> review the code and see that it doesn't break any other platforms that
> may or may not lack SDIO IRQ support.
> 
> 2) The regular MMC_CAP_SDIO_IRQ flag.
> 
> This is enabled per board. If the SDIO IRQ feature doesn't work in
> some case then the system integrator can simply just simply go back to
> polled mode by not setting MMC_CAP_SIDO_IRQ.
> 
> I'm not sure if we can keep the SDIO IRQ interrupt source constantly
> enabled in INTC though. Your current patches require the board
> specific MMC_CAP_SDIO_IRQ flag to be paired with the cpu-specific INTC
> enable change. If someone wishes tho disable SDIO_IRQ support for
> their board then they must know that they also need to revert the INTC
> enable bits, otherwise they'll get endless interrupts when the
> tmio-mmc driver starts. I believe the two-flag approach above will
> solve this problem.

This makes sense, I'll shortly post a revised patchset implementing
your idea...

Thanks,
Arnd

  reply	other threads:[~2010-12-20 15:51 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-12-06 17:35 [PATCH 1/4] mmc: tmio: Implement SDIO IRQ Arnd Hannemann
2010-12-06 17:35 ` Arnd Hannemann
2010-12-06 17:35 ` [PATCH 2/4] ARM: mach-shmobile: sh7372 Enable SDIO IRQs Arnd Hannemann
2010-12-06 17:35   ` Arnd Hannemann
2010-12-06 17:35 ` [PATCH 3/4] sh: sh7724 " Arnd Hannemann
2010-12-06 17:35   ` Arnd Hannemann
2010-12-06 17:35 ` [PATCH 4/4] [RFC] sh: sh7722 " Arnd Hannemann
2010-12-06 17:35   ` Arnd Hannemann
2010-12-07  5:39 ` [PATCH 1/4] mmc: tmio: Implement SDIO IRQ Magnus Damm
2010-12-07  5:39   ` Magnus Damm
2010-12-07 12:22   ` Arnd Hannemann
2010-12-07 12:22     ` Arnd Hannemann
2010-12-07 14:37     ` Magnus Damm
2010-12-07 14:37       ` Magnus Damm
2010-12-07 15:08       ` Arnd Hannemann
2010-12-07 15:08         ` Arnd Hannemann
2010-12-14 15:44         ` Magnus Damm
2010-12-14 15:44           ` Magnus Damm
2010-12-20  3:58           ` Magnus Damm
2010-12-20  3:58             ` Magnus Damm
2010-12-20 15:51             ` Arnd Hannemann [this message]
2010-12-20 15:51               ` Arnd Hannemann
2010-12-20 15:53             ` [PATCH 0/6 v2] mmc: tmio: Add SDIO IRQ support Arnd Hannemann
2010-12-22 13:54               ` Magnus Damm
2010-12-22 13:54                 ` Magnus Damm
2010-12-23 10:45                 ` [PATCH] [RFC] sh: sh7723 / ap325rxa enable SDIO IRQs Arnd Hannemann
2010-12-28 10:01                   ` Magnus Damm
2010-12-28 10:01                     ` Magnus Damm
2010-12-20 15:53             ` [PATCH 1/6 v2] mmc: tmio: implement SDIO IRQ Arnd Hannemann
2010-12-20 15:53             ` [PATCH 2/6 v2] mfd: sh_mobile_sdhi: activate SDIO IRQ for tmio_mmc Arnd Hannemann
2010-12-24 11:03               ` Samuel Ortiz
2010-12-24 11:03                 ` [PATCH 2/6 v2] mfd: sh_mobile_sdhi: activate SDIO IRQ for Samuel Ortiz
2010-12-20 15:53             ` [PATCH 3/6 v2] mmc: tmio: disable IRQs early in remove Arnd Hannemann
2010-12-20 15:53             ` [PATCH 4/6 v2] ARM: mach-shmobile: sh7372 Enable SDIO IRQs Arnd Hannemann
2010-12-20 15:53             ` [PATCH 5/6 v2] sh: sh7724 " Arnd Hannemann
2010-12-20 15:53             ` [PATCH 6/6 v2] [RFC] sh: sh7722 " Arnd Hannemann
2010-12-23 10:42               ` [PATCH 6/6 v3] " Arnd Hannemann

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=4D0F7B91.10604@arndnet.de \
    --to=arnd@arndnet.de \
    --cc=g.liakhovetski@gmx.de \
    --cc=ian@mnementh.co.uk \
    --cc=linux-mmc@vger.kernel.org \
    --cc=linux-sh@vger.kernel.org \
    --cc=magnus.damm@gmail.com \
    --cc=sameo@linux.intel.com \
    /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.