* [PATCH] ARM: mach-shmobile: AG5EVM/Kota2 external Ethernet fix
From: Magnus Damm @ 2011-08-22 5:45 UTC (permalink / raw)
To: linux-sh
From: Magnus Damm <damm@opensource.se>
Keep the ZB clock enabled on sh73a0 to allow the BSC
to access external peripherals hooked up to CS signals.
This is needed to unbreak Ethernet support on sh73a0 boards
such as AG5EVM and Kota2 together with the following patch:
794d78f drivers: sh: late disabling of clocks V2
Signed-off-by: Magnus Damm <damm@opensource.se>
---
arch/arm/mach-shmobile/clock-sh73a0.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- 0001/arch/arm/mach-shmobile/clock-sh73a0.c
+++ work/arch/arm/mach-shmobile/clock-sh73a0.c 2011-08-22 14:31:42.000000000 +0900
@@ -243,7 +243,7 @@ static struct clk div6_clks[DIV6_NR] = {
[DIV6_VCK1] = SH_CLK_DIV6(&pll1_div2_clk, VCLKCR1, 0),
[DIV6_VCK2] = SH_CLK_DIV6(&pll1_div2_clk, VCLKCR2, 0),
[DIV6_VCK3] = SH_CLK_DIV6(&pll1_div2_clk, VCLKCR3, 0),
- [DIV6_ZB1] = SH_CLK_DIV6(&pll1_div2_clk, ZBCKCR, 0),
+ [DIV6_ZB1] = SH_CLK_DIV6(&pll1_div2_clk, ZBCKCR, CLK_ENABLE_ON_INIT),
[DIV6_FLCTL] = SH_CLK_DIV6(&pll1_div2_clk, FLCKCR, 0),
[DIV6_SDHI0] = SH_CLK_DIV6(&pll1_div2_clk, SD0CKCR, 0),
[DIV6_SDHI1] = SH_CLK_DIV6(&pll1_div2_clk, SD1CKCR, 0),
^ permalink raw reply
* [Replacement][PATCH 1/2 v2] PM: Use spinlock instead of mutex in clock management functions
From: Rafael J. Wysocki @ 2011-08-22 6:18 UTC (permalink / raw)
To: linux-sh; +Cc: Linux PM mailing list, LKML, Magnus Damm, Alan Stern
In-Reply-To: <201108212110.45316.rjw@sisk.pl>
From: Rafael J. Wysocki <rjw@sisk.pl>
The lock member of struct pm_clk_data is of type struct mutex,
which is a problem, because the suspend and resume routines
defined in drivers/base/power/clock_ops.c cannot be executed
with interrupts disabled for this reason. Modify
struct pm_clk_data so that its lock member is a spinlock.
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
---
The previous [1/2] in this series was on top of the branch at
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git pm-domains
but what is needed now is a version on top of the current mainline tree, which
is this one.
Thanks,
Rafael
---
drivers/base/power/clock_ops.c | 40 ++++++++++++++++++++++------------------
1 file changed, 22 insertions(+), 18 deletions(-)
Index: linux/drivers/base/power/clock_ops.c
=================================--- linux.orig/drivers/base/power/clock_ops.c
+++ linux/drivers/base/power/clock_ops.c
@@ -19,7 +19,7 @@
struct pm_clk_data {
struct list_head clock_list;
- struct mutex lock;
+ spinlock_t lock;
};
enum pce_status {
@@ -73,9 +73,9 @@ int pm_clk_add(struct device *dev, const
}
}
- mutex_lock(&pcd->lock);
+ spin_lock_irq(&pcd->lock);
list_add_tail(&ce->node, &pcd->clock_list);
- mutex_unlock(&pcd->lock);
+ spin_unlock_irq(&pcd->lock);
return 0;
}
@@ -83,8 +83,8 @@ int pm_clk_add(struct device *dev, const
* __pm_clk_remove - Destroy PM clock entry.
* @ce: PM clock entry to destroy.
*
- * This routine must be called under the mutex protecting the PM list of clocks
- * corresponding the the @ce's device.
+ * This routine must be called under the spinlock protecting the PM list of
+ * clocks corresponding the the @ce's device.
*/
static void __pm_clk_remove(struct pm_clock_entry *ce)
{
@@ -123,7 +123,7 @@ void pm_clk_remove(struct device *dev, c
if (!pcd)
return;
- mutex_lock(&pcd->lock);
+ spin_lock_irq(&pcd->lock);
list_for_each_entry(ce, &pcd->clock_list, node) {
if (!con_id && !ce->con_id) {
@@ -137,7 +137,7 @@ void pm_clk_remove(struct device *dev, c
}
}
- mutex_unlock(&pcd->lock);
+ spin_unlock_irq(&pcd->lock);
}
/**
@@ -158,7 +158,7 @@ int pm_clk_init(struct device *dev)
}
INIT_LIST_HEAD(&pcd->clock_list);
- mutex_init(&pcd->lock);
+ spin_lock_init(&pcd->lock);
dev->power.subsys_data = pcd;
return 0;
}
@@ -181,12 +181,12 @@ void pm_clk_destroy(struct device *dev)
dev->power.subsys_data = NULL;
- mutex_lock(&pcd->lock);
+ spin_lock_irq(&pcd->lock);
list_for_each_entry_safe_reverse(ce, c, &pcd->clock_list, node)
__pm_clk_remove(ce);
- mutex_unlock(&pcd->lock);
+ spin_unlock_irq(&pcd->lock);
kfree(pcd);
}
@@ -220,13 +220,14 @@ int pm_clk_suspend(struct device *dev)
{
struct pm_clk_data *pcd = __to_pcd(dev);
struct pm_clock_entry *ce;
+ unsigned long flags;
dev_dbg(dev, "%s()\n", __func__);
if (!pcd)
return 0;
- mutex_lock(&pcd->lock);
+ spin_lock_irqsave(&pcd->lock, flags);
list_for_each_entry_reverse(ce, &pcd->clock_list, node) {
if (ce->status = PCE_STATUS_NONE)
@@ -238,7 +239,7 @@ int pm_clk_suspend(struct device *dev)
}
}
- mutex_unlock(&pcd->lock);
+ spin_unlock_irqrestore(&pcd->lock, flags);
return 0;
}
@@ -251,13 +252,14 @@ int pm_clk_resume(struct device *dev)
{
struct pm_clk_data *pcd = __to_pcd(dev);
struct pm_clock_entry *ce;
+ unsigned long flags;
dev_dbg(dev, "%s()\n", __func__);
if (!pcd)
return 0;
- mutex_lock(&pcd->lock);
+ spin_lock_irqsave(&pcd->lock, flags);
list_for_each_entry(ce, &pcd->clock_list, node) {
if (ce->status = PCE_STATUS_NONE)
@@ -269,7 +271,7 @@ int pm_clk_resume(struct device *dev)
}
}
- mutex_unlock(&pcd->lock);
+ spin_unlock_irqrestore(&pcd->lock, flags);
return 0;
}
@@ -344,6 +346,7 @@ int pm_clk_suspend(struct device *dev)
{
struct pm_clk_data *pcd = __to_pcd(dev);
struct pm_clock_entry *ce;
+ unsigned long flags;
dev_dbg(dev, "%s()\n", __func__);
@@ -351,12 +354,12 @@ int pm_clk_suspend(struct device *dev)
if (!pcd || !dev->driver)
return 0;
- mutex_lock(&pcd->lock);
+ spin_lock_irqsave(&pcd->lock, flags);
list_for_each_entry_reverse(ce, &pcd->clock_list, node)
clk_disable(ce->clk);
- mutex_unlock(&pcd->lock);
+ spin_unlock_irqrestore(&pcd->lock, flags);
return 0;
}
@@ -369,6 +372,7 @@ int pm_clk_resume(struct device *dev)
{
struct pm_clk_data *pcd = __to_pcd(dev);
struct pm_clock_entry *ce;
+ unsigned long flags;
dev_dbg(dev, "%s()\n", __func__);
@@ -376,12 +380,12 @@ int pm_clk_resume(struct device *dev)
if (!pcd || !dev->driver)
return 0;
- mutex_lock(&pcd->lock);
+ spin_lock_irqsave(&pcd->lock, flags);
list_for_each_entry(ce, &pcd->clock_list, node)
clk_enable(ce->clk);
- mutex_unlock(&pcd->lock);
+ spin_unlock_irqrestore(&pcd->lock, flags);
return 0;
}
^ permalink raw reply
* Sourcery G++ Lite 2011.03-37 for SuperH GNU/Linux now available
From: Andrew Stubbs @ 2011-08-22 10:05 UTC (permalink / raw)
To: linux-sh
CodeSourcery is pleased to announce the availability of a new Sourcery
G++ Lite Edition release for SuperH GNU/Linux. This is available for
download from:
http://www.codesourcery.com/sgpp/lite/superh
(This page provides both uClinux and full GNU/Linux releases.)
Some of the new features in this release include:
* GCC 4.5.2
* EGLIBC 2.13
Please see the Getting Started Guide for a complete set of release notes:
http://www.codesourcery.com/sgpp/lite/superh/portal/doc11511/getting-started.pdf
P.S. Apologies for the belated release.
--
Andrew Stubbs
CodeSourcery/Mentor Graphics
^ permalink raw reply
* Sourcery G++ Lite 2011.03-36 for SuperH uClinux now available
From: Andrew Stubbs @ 2011-08-22 10:06 UTC (permalink / raw)
To: linux-sh
CodeSourcery is pleased to announce the availability of a new Sourcery
G++ Lite Edition release for SuperH uClinux. This is available for
download from:
http://www.codesourcery.com/sgpp/lite/superh
(This page provides both uClinux and full GNU/Linux releases.)
This new release features an upgrade to GCC 4.5.2.
Please see the Getting Started Guide for a complete set of release notes:
http://www.codesourcery.com/sgpp/lite/superh/portal/doc11490/getting-started.pdf
P.S. Apologies for the belated release.
--
Andrew Stubbs
CodeSourcery
^ permalink raw reply
* [PATCH 1/2] sh: Fix unaligned memory access for branches without delay
From: Phil Edworthy @ 2011-08-22 15:56 UTC (permalink / raw)
To: linux-sh
This patch just clears the return code for those cases where an
unaligned memory access occurs on branch instructions without a
delay slot.
Signed-off-by: Phil Edworthy <phil.edworthy@renesas.com>
---
arch/sh/kernel/traps_32.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/arch/sh/kernel/traps_32.c b/arch/sh/kernel/traps_32.c
index d9006f8..61fa4a5 100644
--- a/arch/sh/kernel/traps_32.c
+++ b/arch/sh/kernel/traps_32.c
@@ -466,6 +466,7 @@ int handle_unaligned_access(insn_size_t instruction, struct pt_regs *regs,
case 0x0500: /* mov.w @(disp,Rm),R0 */
goto simple;
case 0x0B00: /* bf lab - no delayslot*/
+ ret = 0;
break;
case 0x0F00: /* bf/s lab */
ret = handle_delayslot(regs, instruction, ma);
@@ -479,6 +480,7 @@ int handle_unaligned_access(insn_size_t instruction, struct pt_regs *regs,
}
break;
case 0x0900: /* bt lab - no delayslot */
+ ret = 0;
break;
case 0x0D00: /* bt/s lab */
ret = handle_delayslot(regs, instruction, ma);
--
1.7.0.4
^ permalink raw reply related
* [PATCH 2/2] sh: Add unaligned memory access for PC relative intructions
From: Phil Edworthy @ 2011-08-22 15:56 UTC (permalink / raw)
To: linux-sh
This add unaligned memory access support for the following instructions:
mov.w @(disp,PC),Rn
mov.l @(disp,PC),Rn
These instructions are often used on SH2A toolchains.
Signed-off-by: Phil Edworthy <phil.edworthy@renesas.com>
---
arch/sh/kernel/traps_32.c | 37 +++++++++++++++++++++++++++++++++++++
1 files changed, 37 insertions(+), 0 deletions(-)
diff --git a/arch/sh/kernel/traps_32.c b/arch/sh/kernel/traps_32.c
index 61fa4a5..957c506 100644
--- a/arch/sh/kernel/traps_32.c
+++ b/arch/sh/kernel/traps_32.c
@@ -316,6 +316,37 @@ static int handle_unaligned_ins(insn_size_t instruction, struct pt_regs *regs,
break;
}
break;
+
+ case 9: /* mov.w @(disp,PC),Rn */
+ srcu = (unsigned char __user *)regs->pc;
+ srcu += (instruction & 0x00FF) << 1;
+ dst = (unsigned char *)rn;
+ *(unsigned long *)dst = 0;
+
+#if !defined(__LITTLE_ENDIAN__)
+ dst += 2;
+#endif
+
+ if (ma->from(dst, srcu, 2))
+ goto fetch_fault;
+ sign_extend(2, dst);
+ ret = 0;
+ break;
+
+ case 0xd: /* mov.l @(disp,PC),Rn */
+ srcu = (unsigned char __user *)regs->pc;
+ srcu += (instruction & 0x00FF) << 2;
+ dst = (unsigned char *)rn;
+ *(unsigned long *)dst = 0;
+
+#if !defined(__LITTLE_ENDIAN__)
+ dst += 2;
+#endif
+
+ if (ma->from(dst, srcu, 4))
+ goto fetch_fault;
+ ret = 0;
+ break;
}
return ret;
@@ -496,6 +527,9 @@ int handle_unaligned_access(insn_size_t instruction, struct pt_regs *regs,
}
break;
+ case 0x9000: /* mov.w @(disp,Rm),Rn */
+ goto simple;
+
case 0xA000: /* bra label */
ret = handle_delayslot(regs, instruction, ma);
if (ret=0)
@@ -509,6 +543,9 @@ int handle_unaligned_access(insn_size_t instruction, struct pt_regs *regs,
regs->pc += SH_PC_12BIT_OFFSET(instruction);
}
break;
+
+ case 0xD000: /* mov.l @(disp,Rm),Rn */
+ goto simple;
}
return ret;
--
1.7.0.4
^ permalink raw reply related
* [PATCH] serial: sh-sci: report CTS as active for get_mctrl
From: Yoshii Takashi @ 2011-08-23 8:27 UTC (permalink / raw)
To: linux-sh
Hi, anybody want to use RTS/CTS on sh-sci?
It does not seems to have been working for long time.
Here is the one-line fix.
I'm not sure what is the optimal set of the "false" signal for get_mctrl.
I guess it might be CD|DSR|CTS, but this patch does only minimum change.
Description follows...
sh-sci.c sets hardware up and then let the HW do all flow controls.
There is no software code, nor needs to get/set real CTS signal.
But, when turning CRTSCTS on through termios, uart_set_termios() in
serial_core.c checks CTS, and stops TX if it is inactive at the moment.
Because sci_get_mctrl() returns a fixed value DTR|RTS|DSR but CTS,
the sequence
open -> set CRTSCTS -> write
hit the case and stop working, no more outputs.
This patch makes sci_get_mctrl() report CTS in addition.
Signed-off-by: Takashi YOSHII <takashi.yoshii.zj@renesas.com>
---
drivers/tty/serial/sh-sci.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/tty/serial/sh-sci.c b/drivers/tty/serial/sh-sci.c
index 7149a2c..e0229a4 100644
--- a/drivers/tty/serial/sh-sci.c
+++ b/drivers/tty/serial/sh-sci.c
@@ -1076,7 +1076,7 @@ static unsigned int sci_get_mctrl(struct uart_port *port)
/* This routine is used for getting signals of: DTR, DCD, DSR, RI,
and CTS/RTS */
- return TIOCM_DTR | TIOCM_RTS | TIOCM_DSR;
+ return TIOCM_DTR | TIOCM_RTS | TIOCM_CTS | TIOCM_DSR;
}
#ifdef CONFIG_SERIAL_SH_SCI_DMA
-- 1.7.3.4
^ permalink raw reply related
* [PATCH] sh: fix the compile error in setup-sh7757.c
From: Yoshihiro Shimoda @ 2011-08-23 9:15 UTC (permalink / raw)
To: linux-sh
Fix the following build errors:
CC arch/sh/kernel/cpu/sh4a/setup-sh7757.o
arch/sh/kernel/cpu/sh4a/setup-sh7757.c:681: error: implicit declaration of function ‘DMA_BIT_MASK’
arch/sh/kernel/cpu/sh4a/setup-sh7757.c:681: error: initializer element is not constant
arch/sh/kernel/cpu/sh4a/setup-sh7757.c:681: error: (near initialization for ‘usb_ehci_device.dev.coherent_dma_mask’)
arch/sh/kernel/cpu/sh4a/setup-sh7757.c:705: error: initializer element is not constant
arch/sh/kernel/cpu/sh4a/setup-sh7757.c:705: error: (near initialization for ‘usb_ohci_device.dev.coherent_dma_mask’)
make[3]: *** [arch/sh/kernel/cpu/sh4a/setup-sh7757.o] Error 1
Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
---
arch/sh/kernel/cpu/sh4a/setup-sh7757.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7757.c b/arch/sh/kernel/cpu/sh4a/setup-sh7757.c
index e915dea..0555929 100644
--- a/arch/sh/kernel/cpu/sh4a/setup-sh7757.c
+++ b/arch/sh/kernel/cpu/sh4a/setup-sh7757.c
@@ -15,6 +15,7 @@
#include <linux/serial_sci.h>
#include <linux/io.h>
#include <linux/mm.h>
+#include <linux/dma-mapping.h>
#include <linux/sh_timer.h>
#include <linux/sh_dma.h>
--
1.7.1
^ permalink raw reply related
* [PATCH] net: sh_eth: fix the compile error
From: Yoshihiro Shimoda @ 2011-08-23 9:26 UTC (permalink / raw)
To: netdev; +Cc: SH-Linux
Fix the following build error:
CC drivers/net/sh_eth.o
drivers/net/sh_eth.c:1115: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘sh_eth_interrupt’
drivers/net/sh_eth.c: In function ‘sh_eth_open’:
drivers/net/sh_eth.c:1387: error: implicit declaration of function ‘request_irq’
drivers/net/sh_eth.c:1387: error: ‘sh_eth_interrupt’ undeclared (first use in this function)
drivers/net/sh_eth.c:1387: error: (Each undeclared identifier is reported only once
drivers/net/sh_eth.c:1387: error: for each function it appears in.)
drivers/net/sh_eth.c:1391: error: ‘IRQF_SHARED’ undeclared (first use in this function)
drivers/net/sh_eth.c:1424: error: implicit declaration of function ‘free_irq’
make[2]: *** [drivers/net/sh_eth.o] Error 1
Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
---
drivers/net/sh_eth.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/drivers/net/sh_eth.c b/drivers/net/sh_eth.c
index ad35c21..f6de45b 100644
--- a/drivers/net/sh_eth.c
+++ b/drivers/net/sh_eth.c
@@ -30,6 +30,7 @@
#include <linux/phy.h>
#include <linux/cache.h>
#include <linux/io.h>
+#include <linux/interrupt.h>
#include <linux/pm_runtime.h>
#include <linux/slab.h>
#include <linux/ethtool.h>
--
1.7.1
^ permalink raw reply related
* [PATCH 2/2 v2] sh: Add unaligned memory access for PC relative
From: Phil Edworthy @ 2011-08-23 10:23 UTC (permalink / raw)
To: linux-sh
This adds unaligned memory access support for the following instructions:
mov.w @(disp,PC),Rn
mov.l @(disp,PC),Rn
These instructions are often used on SH2A toolchains.
Signed-off-by: Phil Edworthy <phil.edworthy@renesas.com>
---
Fixed the mov.l case for big endian
Fixed typo in commit msg
arch/sh/kernel/traps_32.c | 33 +++++++++++++++++++++++++++++++++
1 files changed, 33 insertions(+), 0 deletions(-)
diff --git a/arch/sh/kernel/traps_32.c b/arch/sh/kernel/traps_32.c
index 61fa4a5..bc632b5 100644
--- a/arch/sh/kernel/traps_32.c
+++ b/arch/sh/kernel/traps_32.c
@@ -316,6 +316,33 @@ static int handle_unaligned_ins(insn_size_t instruction, struct pt_regs *regs,
break;
}
break;
+
+ case 9: /* mov.w @(disp,PC),Rn */
+ srcu = (unsigned char __user *)regs->pc;
+ srcu += (instruction & 0x00FF) << 1;
+ dst = (unsigned char *)rn;
+ *(unsigned long *)dst = 0;
+
+#if !defined(__LITTLE_ENDIAN__)
+ dst += 2;
+#endif
+
+ if (ma->from(dst, srcu, 2))
+ goto fetch_fault;
+ sign_extend(2, dst);
+ ret = 0;
+ break;
+
+ case 0xd: /* mov.l @(disp,PC),Rn */
+ srcu = (unsigned char __user *)regs->pc;
+ srcu += (instruction & 0x00FF) << 2;
+ dst = (unsigned char *)rn;
+ *(unsigned long *)dst = 0;
+
+ if (ma->from(dst, srcu, 4))
+ goto fetch_fault;
+ ret = 0;
+ break;
}
return ret;
@@ -496,6 +523,9 @@ int handle_unaligned_access(insn_size_t instruction, struct pt_regs *regs,
}
break;
+ case 0x9000: /* mov.w @(disp,Rm),Rn */
+ goto simple;
+
case 0xA000: /* bra label */
ret = handle_delayslot(regs, instruction, ma);
if (ret=0)
@@ -509,6 +539,9 @@ int handle_unaligned_access(insn_size_t instruction, struct pt_regs *regs,
regs->pc += SH_PC_12BIT_OFFSET(instruction);
}
break;
+
+ case 0xD000: /* mov.l @(disp,Rm),Rn */
+ goto simple;
}
return ret;
--
1.7.0.4
^ permalink raw reply related
* Re: [PATCH] serial: sh-sci: report CTS as active for get_mctrl
From: Paul Mundt @ 2011-08-23 10:31 UTC (permalink / raw)
To: linux-sh
In-Reply-To: <4E536466.6020604@renesas.com>
On Tue, Aug 23, 2011 at 05:27:18PM +0900, Yoshii Takashi wrote:
> Hi, anybody want to use RTS/CTS on sh-sci?
>
> It does not seems to have been working for long time.
> Here is the one-line fix.
>
> I'm not sure what is the optimal set of the "false" signal for get_mctrl.
> I guess it might be CD|DSR|CTS, but this patch does only minimum change.
>
> Description follows...
>
> sh-sci.c sets hardware up and then let the HW do all flow controls.
> There is no software code, nor needs to get/set real CTS signal.
>
> But, when turning CRTSCTS on through termios, uart_set_termios() in
> serial_core.c checks CTS, and stops TX if it is inactive at the moment.
>
> Because sci_get_mctrl() returns a fixed value DTR|RTS|DSR but CTS,
> the sequence
> open -> set CRTSCTS -> write
> hit the case and stop working, no more outputs.
>
> This patch makes sci_get_mctrl() report CTS in addition.
>
> Signed-off-by: Takashi YOSHII <takashi.yoshii.zj@renesas.com>
This looks reasonable, but what application specifically was hitting
this? I'd like for this to hang around a bit before sending it off for
-stable in any event. There are a lot of CPUs and port types to check..
^ permalink raw reply
* Re: [PATCH 2/2] sh: Add unaligned memory access for PC relative intructions
From: Paul Mundt @ 2011-08-23 10:42 UTC (permalink / raw)
To: linux-sh
In-Reply-To: <1314028597-7612-1-git-send-email-phil.edworthy@renesas.com>
On Mon, Aug 22, 2011 at 04:56:37PM +0100, Phil Edworthy wrote:
> This add unaligned memory access support for the following instructions:
> mov.w @(disp,PC),Rn
> mov.l @(disp,PC),Rn
>
> These instructions are often used on SH2A toolchains.
>
Looks good! Are there any other instruction pairs you've stumbled in to
on the SH-2A side? The 32-bit instructions are still a largely unresolved
issue, too.
^ permalink raw reply
* Re: [PATCH 2/4] PM: Reference counting of power.subsys_data
From: Pavel Machek @ 2011-08-23 20:09 UTC (permalink / raw)
To: Rafael J. Wysocki
Cc: Linux PM mailing list, LKML, linux-sh, Magnus Damm, Greg KH
In-Reply-To: <201108090031.42691.rjw@sisk.pl>
Hi!
> Since the power.subsys_data device field will be used by multiple
> filesystems, introduce a reference counting mechanism for it to avoid
> freeing it prematurely or changing its value at a wrong time.
>
> Make the PM clocks management code that currently is the only user of
> power.subsys_data use the new reference counting.
>
> Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
> ---
> drivers/base/power/Makefile | 2
> drivers/base/power/clock_ops.c | 24 ++---------
> drivers/base/power/common.c | 86 +++++++++++++++++++++++++++++++++++++++++
> include/linux/pm.h | 3 +
> 4 files changed, 95 insertions(+), 20 deletions(-)
>
> Index: linux-2.6/drivers/base/power/common.c
> =================================> --- /dev/null
> +++ linux-2.6/drivers/base/power/common.c
> @@ -0,0 +1,86 @@
> +/*
> + * drivers/base/power/common.c - Common device power management code.
> + *
> + * Copyright (C) 2011 Rafael J. Wysocki <rjw@sisk.pl>, Renesas Electronics Corp.
This looks like you now work for Renesas....?
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
^ permalink raw reply
* [PATCH] ARM: mach-shmobile: clock-sh7372: fixup USB-DMAC1 settings
From: Kuninori Morimoto @ 2011-08-24 2:44 UTC (permalink / raw)
To: linux-sh
In-Reply-To: <w3p1vcreaqm.wl%kuninori.morimoto.gx@renesas.com>
USB-DMAC1 needs SMSTPCR4/MSTP407 controls, not MSTP214
Reported-by: Magnus Damm <damm@opensource.se>
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
Paul
It is based on paul/rmobile/dma branch
arch/arm/mach-shmobile/clock-sh7372.c | 5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/arch/arm/mach-shmobile/clock-sh7372.c b/arch/arm/mach-shmobile/clock-sh7372.c
index c239ab1..3f8de2c 100644
--- a/arch/arm/mach-shmobile/clock-sh7372.c
+++ b/arch/arm/mach-shmobile/clock-sh7372.c
@@ -512,7 +512,7 @@ enum { MSTP001,
MSTP214, MSTP218, MSTP217, MSTP216,
MSTP207, MSTP206, MSTP204, MSTP203, MSTP202, MSTP201, MSTP200,
MSTP329, MSTP328, MSTP323, MSTP322, MSTP314, MSTP313, MSTP312,
- MSTP423, MSTP415, MSTP413, MSTP411, MSTP410, MSTP406, MSTP403,
+ MSTP423, MSTP415, MSTP413, MSTP411, MSTP410, MSTP407, MSTP406, MSTP403,
MSTP_NR };
#define MSTP(_parent, _reg, _bit, _flags) \
@@ -558,6 +558,7 @@ static struct clk mstp_clks[MSTP_NR] = {
[MSTP413] = MSTP(&pllc1_div2_clk, SMSTPCR4, 13, 0), /* HDMI */
[MSTP411] = MSTP(&div6_clks[DIV6_SUB], SMSTPCR4, 11, 0), /* IIC3 */
[MSTP410] = MSTP(&div6_clks[DIV6_SUB], SMSTPCR4, 10, 0), /* IIC4 */
+ [MSTP407] = MSTP(&div4_clks[DIV4_HP], SMSTPCR4, 7, 0), /* USBDMAC */
[MSTP406] = MSTP(&div6_clks[DIV6_SUB], SMSTPCR4, 6, 0), /* USB1 */
[MSTP403] = MSTP(&r_clk, SMSTPCR4, 3, 0), /* KEYSC */
};
@@ -635,7 +636,7 @@ static struct clk_lookup lookups[] = {
CLKDEV_DEV_ID("sh-dma-engine.1", &mstp_clks[MSTP217]), /* DMAC2 */
CLKDEV_DEV_ID("sh-dma-engine.2", &mstp_clks[MSTP216]), /* DMAC3 */
CLKDEV_DEV_ID("sh-dma-engine.3", &mstp_clks[MSTP214]), /* USB-DMAC0 */
- CLKDEV_DEV_ID("sh-dma-engine.4", &mstp_clks[MSTP214]), /* USB-DMAC1 */
+ CLKDEV_DEV_ID("sh-dma-engine.4", &mstp_clks[MSTP407]), /* USB-DMAC1 */
CLKDEV_DEV_ID("sh-sci.5", &mstp_clks[MSTP207]), /* SCIFA5 */
CLKDEV_DEV_ID("sh-sci.6", &mstp_clks[MSTP206]), /* SCIFB */
CLKDEV_DEV_ID("sh-sci.0", &mstp_clks[MSTP204]), /* SCIFA0 */
--
1.7.4.1
^ permalink raw reply related
* Re: [PATCH 2/2 v2] sh-sci / PM: Use power.irq_safe
From: Paul Mundt @ 2011-08-24 5:33 UTC (permalink / raw)
To: Rafael J. Wysocki
Cc: linux-sh, Linux PM mailing list, LKML, Magnus Damm, Alan Stern
In-Reply-To: <201108212111.45012.rjw@sisk.pl>
On Sun, Aug 21, 2011 at 09:11:44PM +0200, Rafael J. Wysocki wrote:
> From: Rafael J. Wysocki <rjw@sisk.pl>
>
> Since sci_port_enable() and sci_port_disable() may be run with
> interrupts off and they execute pm_runtime_get_sync() and
> pm_runtime_put_sync(), respectively, the SCI device's
> power.irq_safe flags has to be used to indicate that it is safe
> to execute runtime PM callbacks for this device with interrupts off.
>
> Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Not sure how you want this one handled. Did you simply want to roll this
in with your other patch with my Acked-by, or should I be taking this
through my tree already regardless of the 1/2 patch?
^ permalink raw reply
* Re: [PATCH 0/4 v7] mmc: tmio, sdhi: provide multiple irq handlers
From: Simon Horman @ 2011-08-24 5:37 UTC (permalink / raw)
To: linux-mmc, linux-sh
Cc: Chris Ball, Paul Mundt, Guennadi Liakhovetski, Magnus Damm
In-Reply-To: <1313740642-18307-1-git-send-email-horms@verge.net.au>
On Fri, Aug 19, 2011 at 04:57:18PM +0900, Simon Horman wrote:
> The SDHI driver already supports making use of up to three interrupt
> sources.
>
> This series breaks up the existing interrupt handler into three handlers,
> one for card access, one for card detect interrupts, and one for SDIO
> interrupts. A cover-all handler, which makes use of these new broken-out
> handlers is provided for for the case where there is only one interrupt
> source.
>
> This series also wires up the broken-out irq handlers in the SDHI driver
Magnus, Guennadi,
when you get a chance could I get an ack or otherwise on these changes.
^ permalink raw reply
* Re: [PATCH] ARM: mach-shmobile: clock-sh7372: fixup USB-DMAC1 settings
From: Magnus Damm @ 2011-08-24 9:20 UTC (permalink / raw)
To: linux-sh
In-Reply-To: <w3p1vcreaqm.wl%kuninori.morimoto.gx@renesas.com>
Hi Morimoto-san,
On Wed, Aug 24, 2011 at 11:44 AM, Kuninori Morimoto
<kuninori.morimoto.gx@renesas.com> wrote:
> USB-DMAC1 needs SMSTPCR4/MSTP407 controls, not MSTP214
>
> Reported-by: Magnus Damm <damm@opensource.se>
> Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
> ---
Thanks for your work on this. Please make sure the code is well tested.
> @@ -558,6 +558,7 @@ static struct clk mstp_clks[MSTP_NR] = {
> [MSTP413] = MSTP(&pllc1_div2_clk, SMSTPCR4, 13, 0), /* HDMI */
> [MSTP411] = MSTP(&div6_clks[DIV6_SUB], SMSTPCR4, 11, 0), /* IIC3 */
> [MSTP410] = MSTP(&div6_clks[DIV6_SUB], SMSTPCR4, 10, 0), /* IIC4 */
> + [MSTP407] = MSTP(&div4_clks[DIV4_HP], SMSTPCR4, 7, 0), /* USBDMAC */
> [MSTP406] = MSTP(&div6_clks[DIV6_SUB], SMSTPCR4, 6, 0), /* USB1 */
> [MSTP403] = MSTP(&r_clk, SMSTPCR4, 3, 0), /* KEYSC */
> };
Nit: s/USBDMAC/USB-DMAC0/g
> @@ -635,7 +636,7 @@ static struct clk_lookup lookups[] = {
> CLKDEV_DEV_ID("sh-dma-engine.1", &mstp_clks[MSTP217]), /* DMAC2 */
> CLKDEV_DEV_ID("sh-dma-engine.2", &mstp_clks[MSTP216]), /* DMAC3 */
> CLKDEV_DEV_ID("sh-dma-engine.3", &mstp_clks[MSTP214]), /* USB-DMAC0 */
> - CLKDEV_DEV_ID("sh-dma-engine.4", &mstp_clks[MSTP214]), /* USB-DMAC1 */
> + CLKDEV_DEV_ID("sh-dma-engine.4", &mstp_clks[MSTP407]), /* USB-DMAC1 */
> CLKDEV_DEV_ID("sh-sci.5", &mstp_clks[MSTP207]), /* SCIFA5 */
> CLKDEV_DEV_ID("sh-sci.6", &mstp_clks[MSTP206]), /* SCIFB */
> CLKDEV_DEV_ID("sh-sci.0", &mstp_clks[MSTP204]), /* SCIFA0 */
This should follow the same order as above. Please move down MSTP407
next to the other MSTP4xx bits.
Thanks,
/ magnus
^ permalink raw reply
* [PATCH] ARM: mach-shmobile: sh7372 LCDC1 suspend fix
From: Magnus Damm @ 2011-08-24 9:39 UTC (permalink / raw)
To: linux-sh
From: Magnus Damm <damm@opensource.se>
Associate the HDMI clock together with LCDC1 on sh7372.
Without this patch Suspend-to-RAM hangs on the boards
AP4EVB and Mackerel. The code hangs in the LCDC driver
where the software is waiting forever for the hardware to
power down. By explicitly associating the HDMI clock with
LCDC1 we can make sure the HDMI clock is enabled using
Runtime PM whenever the driver is accessing the hardware.
This HDMI and LCDC1 dependency is documented in the sh7372
data sheet. Older kernels did work as expected but the
recently merged (3.1-rc)
794d78f drivers: sh: late disabling of clocks V2
introduced code to turn off clocks lacking software reference
which happens to include the HDMI clock that is needed by
LCDC1 to operate as expected.
Signed-off-by: Magnus Damm <damm@opensource.se>
---
Rafael, since this patch is Suspend-to-RAM related, can you
please merge this with your other 3.1-rc fixes?
arch/arm/mach-shmobile/board-ap4evb.c | 1 +
arch/arm/mach-shmobile/board-mackerel.c | 1 +
arch/arm/mach-shmobile/clock-sh7372.c | 2 ++
3 files changed, 4 insertions(+)
--- 0001/arch/arm/mach-shmobile/board-ap4evb.c
+++ work/arch/arm/mach-shmobile/board-ap4evb.c 2011-08-24 08:50:18.000000000 +0900
@@ -1412,6 +1412,7 @@ static void __init ap4evb_init(void)
fsi_init_pm_clock();
sh7372_pm_init();
pm_clk_add(&fsi_device.dev, "spu2");
+ pm_clk_add(&hdmi_lcdc_device.dev, "hdmi");
}
static void __init ap4evb_timer_init(void)
--- 0001/arch/arm/mach-shmobile/board-mackerel.c
+++ work/arch/arm/mach-shmobile/board-mackerel.c 2011-08-24 08:50:09.000000000 +0900
@@ -1588,6 +1588,7 @@ static void __init mackerel_init(void)
hdmi_init_pm_clock();
sh7372_pm_init();
pm_clk_add(&fsi_device.dev, "spu2");
+ pm_clk_add(&hdmi_lcdc_device.dev, "hdmi");
}
static void __init mackerel_timer_init(void)
--- 0001/arch/arm/mach-shmobile/clock-sh7372.c
+++ work/arch/arm/mach-shmobile/clock-sh7372.c 2011-08-24 08:49:58.000000000 +0900
@@ -655,6 +655,8 @@ static struct clk_lookup lookups[] = {
CLKDEV_DEV_ID("renesas_usbhs.1", &mstp_clks[MSTP406]), /* USB1 */
CLKDEV_DEV_ID("sh_keysc.0", &mstp_clks[MSTP403]), /* KEYSC */
+ CLKDEV_ICK_ID("hdmi", "sh_mobile_lcdc_fb.1",
+ &div6_reparent_clks[DIV6_HDMI]),
CLKDEV_ICK_ID("ick", "sh-mobile-hdmi", &div6_reparent_clks[DIV6_HDMI]),
CLKDEV_ICK_ID("icka", "sh_fsi2", &div6_reparent_clks[DIV6_FSIA]),
CLKDEV_ICK_ID("ickb", "sh_fsi2", &div6_reparent_clks[DIV6_FSIB]),
^ permalink raw reply
* Re: [PATCH 0/4 v7] mmc: tmio, sdhi: provide multiple irq handlers
From: Magnus Damm @ 2011-08-24 9:47 UTC (permalink / raw)
To: Simon Horman
Cc: linux-mmc, linux-sh, Chris Ball, Paul Mundt,
Guennadi Liakhovetski
In-Reply-To: <20110824053711.GB17212@verge.net.au>
On Wed, Aug 24, 2011 at 2:37 PM, Simon Horman <horms@verge.net.au> wrote:
> On Fri, Aug 19, 2011 at 04:57:18PM +0900, Simon Horman wrote:
>> The SDHI driver already supports making use of up to three interrupt
>> sources.
>>
>> This series breaks up the existing interrupt handler into three handlers,
>> one for card access, one for card detect interrupts, and one for SDIO
>> interrupts. A cover-all handler, which makes use of these new broken-out
>> handlers is provided for for the case where there is only one interrupt
>> source.
>>
>> This series also wires up the broken-out irq handlers in the SDHI driver
>
> Magnus, Guennadi,
>
> when you get a chance could I get an ack or otherwise on these changes.
Hi Simon,
Your latest revision of SDHI patches looked very good, thanks for your effort!
I prefer to give acks to each of the patches individually if possible,
but I'm a bit confused by all the versions floating around. So for
now, please add my acked-by for all patches in this series.
In the future, please consider a) including version number in the
subject of the patch email and b) including a list of all the patches
(including version) in [PATCH 0/...]. That will make it easier to
track down each individual patch.
Thank you!
/ magnus
^ permalink raw reply
* [PATCH 2/2 v3] sh: Add unaligned memory access for PC relative
From: Phil Edworthy @ 2011-08-24 10:43 UTC (permalink / raw)
To: linux-sh
This adds unaligned memory access support for the following instructions:
mov.w @(disp,PC),Rn
mov.l @(disp,PC),Rn
These instructions are often used on SH2A toolchains.
Signed-off-by: Phil Edworthy <phil.edworthy@renesas.com>
---
v3:
Fixed the PC relative address calculation
v2:
Fixed the mov.l case for big endian
Fixed typo in commit msg
arch/sh/kernel/traps_32.c | 35 +++++++++++++++++++++++++++++++++++
1 files changed, 35 insertions(+), 0 deletions(-)
diff --git a/arch/sh/kernel/traps_32.c b/arch/sh/kernel/traps_32.c
index 61fa4a5..7bbef95 100644
--- a/arch/sh/kernel/traps_32.c
+++ b/arch/sh/kernel/traps_32.c
@@ -316,6 +316,35 @@ static int handle_unaligned_ins(insn_size_t instruction, struct pt_regs *regs,
break;
}
break;
+
+ case 9: /* mov.w @(disp,PC),Rn */
+ srcu = (unsigned char __user *)regs->pc;
+ srcu += 4;
+ srcu += (instruction & 0x00FF) << 1;
+ dst = (unsigned char *)rn;
+ *(unsigned long *)dst = 0;
+
+#if !defined(__LITTLE_ENDIAN__)
+ dst += 2;
+#endif
+
+ if (ma->from(dst, srcu, 2))
+ goto fetch_fault;
+ sign_extend(2, dst);
+ ret = 0;
+ break;
+
+ case 0xd: /* mov.l @(disp,PC),Rn */
+ srcu = (unsigned char __user *)(regs->pc & ~0x3);
+ srcu += 4;
+ srcu += (instruction & 0x00FF) << 2;
+ dst = (unsigned char *)rn;
+ *(unsigned long *)dst = 0;
+
+ if (ma->from(dst, srcu, 4))
+ goto fetch_fault;
+ ret = 0;
+ break;
}
return ret;
@@ -496,6 +525,9 @@ int handle_unaligned_access(insn_size_t instruction, struct pt_regs *regs,
}
break;
+ case 0x9000: /* mov.w @(disp,Rm),Rn */
+ goto simple;
+
case 0xA000: /* bra label */
ret = handle_delayslot(regs, instruction, ma);
if (ret=0)
@@ -509,6 +541,9 @@ int handle_unaligned_access(insn_size_t instruction, struct pt_regs *regs,
regs->pc += SH_PC_12BIT_OFFSET(instruction);
}
break;
+
+ case 0xD000: /* mov.l @(disp,Rm),Rn */
+ goto simple;
}
return ret;
--
1.7.0.4
^ permalink raw reply related
* Re: [PATCH] serial: sh-sci: report CTS as active for get_mctrl
From: takashi.yoshii.zj @ 2011-08-24 11:04 UTC (permalink / raw)
To: linux-sh
In-Reply-To: <4E536466.6020604@renesas.com>
Hi,
> This looks reasonable, but what application specifically was hitting
> this? ...
Well, it was detected by pure test. So, actually, nobody is in trouble :)
But I think it occurs on anything that use hardware flow control and write(TX).
Even shell terminal session does. Try invoke "stty crtscts" on your shell.
It will freeze your terminal session whatever its flow control setting is.
Or, do like as followings on ssh session, is safer.
$ stty -F /dev/ttySC1 clocal crtscts -echo
$ echo x > /dev/ttySC1
Output 'x' on serial expected, but it stops and no output.
To make things clearer, I've made following test program and ran on sh7785lcr with
free ttySC1 (not used for console, nor shell).
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <termios.h>
main(){
struct termios t;
int fd = open("/dev/ttySC1", O_RDWR);
tcgetattr(fd, &t);
t.c_cflag |= CRTSCTS;
tcsetattr(fd, TCSANOW, &t);
write(fd, "x", 1);
close(fd);
}
Output 'x' and exit, is expected.
But no output and stops during "close" on last line.
More precisely, it is waiting for event on tty->write_wait at uart_close().
(In addition to close(), ioctl() will be also a case. It waits for outputs done)
/yoshii
^ permalink raw reply
* Re: [PATCH 2/2] sh: Add unaligned memory access for PC relative
From: phil.edworthy @ 2011-08-24 13:18 UTC (permalink / raw)
To: linux-sh
In-Reply-To: <1314028597-7612-1-git-send-email-phil.edworthy@renesas.com>
> > This add unaligned memory access support for the following
instructions:
> > mov.w @(disp,PC),Rn
> > mov.l @(disp,PC),Rn
> >
> > These instructions are often used on SH2A toolchains.
> >
> Looks good! Are there any other instruction pairs you've stumbled in to
> on the SH-2A side? The 32-bit instructions are still a largely
unresolved
> issue, too.
Not so far, though I haven't run much yet. I'm still having some issues
with the loader so it's difficult to be sure that these emulated
instructions are correct...
Phil
^ permalink raw reply
* Re: [PATCH] ARM: mach-shmobile: sh7372 LCDC1 suspend fix
From: Rafael J. Wysocki @ 2011-08-24 20:43 UTC (permalink / raw)
To: linux-sh
In-Reply-To: <20110824093936.8230.53081.sendpatchset@rxone.opensource.se>
Hi,
On Wednesday, August 24, 2011, Magnus Damm wrote:
> From: Magnus Damm <damm@opensource.se>
>
> Associate the HDMI clock together with LCDC1 on sh7372.
>
> Without this patch Suspend-to-RAM hangs on the boards
> AP4EVB and Mackerel. The code hangs in the LCDC driver
> where the software is waiting forever for the hardware to
> power down. By explicitly associating the HDMI clock with
> LCDC1 we can make sure the HDMI clock is enabled using
> Runtime PM whenever the driver is accessing the hardware.
>
> This HDMI and LCDC1 dependency is documented in the sh7372
> data sheet. Older kernels did work as expected but the
> recently merged (3.1-rc)
>
> 794d78f drivers: sh: late disabling of clocks V2
>
> introduced code to turn off clocks lacking software reference
> which happens to include the HDMI clock that is needed by
> LCDC1 to operate as expected.
>
> Signed-off-by: Magnus Damm <damm@opensource.se>
> ---
>
> Rafael, since this patch is Suspend-to-RAM related, can you
> please merge this with your other 3.1-rc fixes?
Yes, I'll do that. Applied to linux-pm/pm-fixes and will be
pushed to Linus later this week.
Thanks,
Rafael
> arch/arm/mach-shmobile/board-ap4evb.c | 1 +
> arch/arm/mach-shmobile/board-mackerel.c | 1 +
> arch/arm/mach-shmobile/clock-sh7372.c | 2 ++
> 3 files changed, 4 insertions(+)
>
> --- 0001/arch/arm/mach-shmobile/board-ap4evb.c
> +++ work/arch/arm/mach-shmobile/board-ap4evb.c 2011-08-24 08:50:18.000000000 +0900
> @@ -1412,6 +1412,7 @@ static void __init ap4evb_init(void)
> fsi_init_pm_clock();
> sh7372_pm_init();
> pm_clk_add(&fsi_device.dev, "spu2");
> + pm_clk_add(&hdmi_lcdc_device.dev, "hdmi");
> }
>
> static void __init ap4evb_timer_init(void)
> --- 0001/arch/arm/mach-shmobile/board-mackerel.c
> +++ work/arch/arm/mach-shmobile/board-mackerel.c 2011-08-24 08:50:09.000000000 +0900
> @@ -1588,6 +1588,7 @@ static void __init mackerel_init(void)
> hdmi_init_pm_clock();
> sh7372_pm_init();
> pm_clk_add(&fsi_device.dev, "spu2");
> + pm_clk_add(&hdmi_lcdc_device.dev, "hdmi");
> }
>
> static void __init mackerel_timer_init(void)
> --- 0001/arch/arm/mach-shmobile/clock-sh7372.c
> +++ work/arch/arm/mach-shmobile/clock-sh7372.c 2011-08-24 08:49:58.000000000 +0900
> @@ -655,6 +655,8 @@ static struct clk_lookup lookups[] = {
> CLKDEV_DEV_ID("renesas_usbhs.1", &mstp_clks[MSTP406]), /* USB1 */
> CLKDEV_DEV_ID("sh_keysc.0", &mstp_clks[MSTP403]), /* KEYSC */
>
> + CLKDEV_ICK_ID("hdmi", "sh_mobile_lcdc_fb.1",
> + &div6_reparent_clks[DIV6_HDMI]),
> CLKDEV_ICK_ID("ick", "sh-mobile-hdmi", &div6_reparent_clks[DIV6_HDMI]),
> CLKDEV_ICK_ID("icka", "sh_fsi2", &div6_reparent_clks[DIV6_FSIA]),
> CLKDEV_ICK_ID("ickb", "sh_fsi2", &div6_reparent_clks[DIV6_FSIB]),
>
>
^ permalink raw reply
* Re: [PATCH 2/2 v2] sh-sci / PM: Use power.irq_safe
From: Rafael J. Wysocki @ 2011-08-24 20:52 UTC (permalink / raw)
To: Paul Mundt; +Cc: linux-sh, Linux PM mailing list, LKML, Magnus Damm, Alan Stern
In-Reply-To: <20110824053317.GC26391@linux-sh.org>
On Wednesday, August 24, 2011, Paul Mundt wrote:
> On Sun, Aug 21, 2011 at 09:11:44PM +0200, Rafael J. Wysocki wrote:
> > From: Rafael J. Wysocki <rjw@sisk.pl>
> >
> > Since sci_port_enable() and sci_port_disable() may be run with
> > interrupts off and they execute pm_runtime_get_sync() and
> > pm_runtime_put_sync(), respectively, the SCI device's
> > power.irq_safe flags has to be used to indicate that it is safe
> > to execute runtime PM callbacks for this device with interrupts off.
> >
> > Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
>
> Not sure how you want this one handled. Did you simply want to roll this
> in with your other patch with my Acked-by, or should I be taking this
> through my tree already regardless of the 1/2 patch?
I'd prefer to push it through my tree, if you don't mind. Magnus has
already acked it for me, hopefully that's OK?
Rafael
^ permalink raw reply
* [PATCH 0/4 v8] mmc: tmio, sdhi: provide multiple irq handlers
From: Simon Horman @ 2011-08-25 1:27 UTC (permalink / raw)
To: linux-mmc, linux-sh
Cc: Chris Ball, Paul Mundt, Guennadi Liakhovetski, Magnus Damm,
Simon Horman
The SDHI driver already supports making use of up to three interrupt
sources.
This series breaks up the existing interrupt handler into three handlers,
one for sdcard access, one for card detect and one for SDIO interrupts.
A cover-all handler, which makes use of these new broken-out handlers
is provided for for the case where there is a multiplexed interrupt source.
This series also wires up the new IRQ handlers for the mackerel and ag4evm.
This series contains the following patches:
[PATCH v8 1/4] mmc: tmio: Cache interrupt masks
[PATCH v8 2/4] mmc: tmio: Provide separate interrupt handlers
[PATCH v8 3/4] mmc: sdhi: Allow name IRQs to use specific handlers
[PATCH v8 4/4] ARM: shmobile: ag5evm, ap4: Named SDHI IRQ sources
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox