diff options
Diffstat (limited to 'extras/recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm-wip-cpuidle')
6 files changed, 327 insertions, 0 deletions
diff --git a/extras/recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm-wip-cpuidle/0001-OMAP2-clockdomain-Add-an-api-to-read-idle-mode.patch b/extras/recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm-wip-cpuidle/0001-OMAP2-clockdomain-Add-an-api-to-read-idle-mode.patch new file mode 100644 index 00000000..d9b05173 --- /dev/null +++ b/extras/recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm-wip-cpuidle/0001-OMAP2-clockdomain-Add-an-api-to-read-idle-mode.patch | |||
@@ -0,0 +1,77 @@ | |||
1 | From 988f50cb51d18e81ed2f7673a09694d28c9d086a Mon Sep 17 00:00:00 2001 | ||
2 | From: Rajendra Nayak <rnayak@ti.com> | ||
3 | Date: Tue, 5 Apr 2011 15:22:31 +0530 | ||
4 | Subject: [PATCH 1/6] OMAP2+: clockdomain: Add an api to read idle mode | ||
5 | |||
6 | Add a clockdomain api to check if hardware supervised | ||
7 | idle transitions are enabled on a clockdomain. | ||
8 | |||
9 | Signed-off-by: Rajendra Nayak <rnayak@ti.com> | ||
10 | --- | ||
11 | arch/arm/mach-omap2/clockdomain.c | 21 +++++++++++++++++++++ | ||
12 | arch/arm/mach-omap2/clockdomain.h | 3 +++ | ||
13 | 2 files changed, 24 insertions(+), 0 deletions(-) | ||
14 | |||
15 | diff --git a/arch/arm/mach-omap2/clockdomain.c b/arch/arm/mach-omap2/clockdomain.c | ||
16 | index 6cb6c03..2ab3686 100644 | ||
17 | --- a/arch/arm/mach-omap2/clockdomain.c | ||
18 | +++ b/arch/arm/mach-omap2/clockdomain.c | ||
19 | @@ -795,6 +795,27 @@ void clkdm_deny_idle(struct clockdomain *clkdm) | ||
20 | arch_clkdm->clkdm_deny_idle(clkdm); | ||
21 | } | ||
22 | |||
23 | +/** | ||
24 | + * clkdm_is_idle - Check if the clkdm hwsup/autoidle is enabled | ||
25 | + * @clkdm: struct clockdomain * | ||
26 | + * | ||
27 | + * Returns true if the clockdomain is in hardware-supervised | ||
28 | + * idle mode, or 0 otherwise. | ||
29 | + * | ||
30 | + */ | ||
31 | +int clkdm_is_idle(struct clockdomain *clkdm) | ||
32 | +{ | ||
33 | + if (!clkdm) | ||
34 | + return -EINVAL; | ||
35 | + | ||
36 | + if (!arch_clkdm || !arch_clkdm->clkdm_is_idle) | ||
37 | + return -EINVAL; | ||
38 | + | ||
39 | + pr_debug("clockdomain: reading idle state for %s\n", clkdm->name); | ||
40 | + | ||
41 | + return arch_clkdm->clkdm_is_idle(clkdm); | ||
42 | +} | ||
43 | + | ||
44 | |||
45 | /* Clockdomain-to-clock framework interface code */ | ||
46 | |||
47 | diff --git a/arch/arm/mach-omap2/clockdomain.h b/arch/arm/mach-omap2/clockdomain.h | ||
48 | index 5823584..085ed82 100644 | ||
49 | --- a/arch/arm/mach-omap2/clockdomain.h | ||
50 | +++ b/arch/arm/mach-omap2/clockdomain.h | ||
51 | @@ -138,6 +138,7 @@ struct clockdomain { | ||
52 | * @clkdm_wakeup: Force a clockdomain to wakeup | ||
53 | * @clkdm_allow_idle: Enable hw supervised idle transitions for clock domain | ||
54 | * @clkdm_deny_idle: Disable hw supervised idle transitions for clock domain | ||
55 | + * @clkdm_is_idle: Check if hw supervised idle transitions are enabled | ||
56 | * @clkdm_clk_enable: Put the clkdm in right state for a clock enable | ||
57 | * @clkdm_clk_disable: Put the clkdm in right state for a clock disable | ||
58 | */ | ||
59 | @@ -154,6 +155,7 @@ struct clkdm_ops { | ||
60 | int (*clkdm_wakeup)(struct clockdomain *clkdm); | ||
61 | void (*clkdm_allow_idle)(struct clockdomain *clkdm); | ||
62 | void (*clkdm_deny_idle)(struct clockdomain *clkdm); | ||
63 | + int (*clkdm_is_idle)(struct clockdomain *clkdm); | ||
64 | int (*clkdm_clk_enable)(struct clockdomain *clkdm); | ||
65 | int (*clkdm_clk_disable)(struct clockdomain *clkdm); | ||
66 | }; | ||
67 | @@ -177,6 +179,7 @@ int clkdm_clear_all_sleepdeps(struct clockdomain *clkdm); | ||
68 | |||
69 | void clkdm_allow_idle(struct clockdomain *clkdm); | ||
70 | void clkdm_deny_idle(struct clockdomain *clkdm); | ||
71 | +int clkdm_is_idle(struct clockdomain *clkdm); | ||
72 | |||
73 | int clkdm_wakeup(struct clockdomain *clkdm); | ||
74 | int clkdm_sleep(struct clockdomain *clkdm); | ||
75 | -- | ||
76 | 1.6.6.1 | ||
77 | |||
diff --git a/extras/recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm-wip-cpuidle/0002-OMAP2-clockdomain-Add-SoC-support-for-clkdm_is_idle.patch b/extras/recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm-wip-cpuidle/0002-OMAP2-clockdomain-Add-SoC-support-for-clkdm_is_idle.patch new file mode 100644 index 00000000..c7c1ea0b --- /dev/null +++ b/extras/recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm-wip-cpuidle/0002-OMAP2-clockdomain-Add-SoC-support-for-clkdm_is_idle.patch | |||
@@ -0,0 +1,86 @@ | |||
1 | From e3ba8d41bfafd782f3ee7f8930d9bf393986c662 Mon Sep 17 00:00:00 2001 | ||
2 | From: Rajendra Nayak <rnayak@ti.com> | ||
3 | Date: Tue, 5 Apr 2011 15:22:36 +0530 | ||
4 | Subject: [PATCH 2/6] OMAP2+: clockdomain: Add SoC support for clkdm_is_idle | ||
5 | |||
6 | Add the SoC specific implemenation for clkdm_is_idle | ||
7 | for OMAP2/3 and OMAP4. | ||
8 | |||
9 | Signed-off-by: Rajendra Nayak <rnayak@ti.com> | ||
10 | --- | ||
11 | arch/arm/mach-omap2/clockdomain2xxx_3xxx.c | 12 ++++++++++++ | ||
12 | arch/arm/mach-omap2/clockdomain44xx.c | 7 +++++++ | ||
13 | 2 files changed, 19 insertions(+), 0 deletions(-) | ||
14 | |||
15 | diff --git a/arch/arm/mach-omap2/clockdomain2xxx_3xxx.c b/arch/arm/mach-omap2/clockdomain2xxx_3xxx.c | ||
16 | index 48d0db7..db49baa 100644 | ||
17 | --- a/arch/arm/mach-omap2/clockdomain2xxx_3xxx.c | ||
18 | +++ b/arch/arm/mach-omap2/clockdomain2xxx_3xxx.c | ||
19 | @@ -13,6 +13,7 @@ | ||
20 | */ | ||
21 | |||
22 | #include <linux/types.h> | ||
23 | +#include <linux/errno.h> | ||
24 | #include <plat/prcm.h> | ||
25 | #include "prm.h" | ||
26 | #include "prm2xxx_3xxx.h" | ||
27 | @@ -146,6 +147,15 @@ static void omap2_clkdm_deny_idle(struct clockdomain *clkdm) | ||
28 | _clkdm_del_autodeps(clkdm); | ||
29 | } | ||
30 | |||
31 | +static int omap2_clkdm_is_idle(struct clockdomain *clkdm) | ||
32 | +{ | ||
33 | + if (!clkdm->clktrctrl_mask) | ||
34 | + return -1; | ||
35 | + | ||
36 | + return omap2_cm_is_clkdm_in_hwsup(clkdm->pwrdm.ptr->prcm_offs, | ||
37 | + clkdm->clktrctrl_mask); | ||
38 | +} | ||
39 | + | ||
40 | static void _enable_hwsup(struct clockdomain *clkdm) | ||
41 | { | ||
42 | if (cpu_is_omap24xx()) | ||
43 | @@ -252,6 +262,7 @@ struct clkdm_ops omap2_clkdm_operations = { | ||
44 | .clkdm_wakeup = omap2_clkdm_wakeup, | ||
45 | .clkdm_allow_idle = omap2_clkdm_allow_idle, | ||
46 | .clkdm_deny_idle = omap2_clkdm_deny_idle, | ||
47 | + .clkdm_is_idle = omap2_clkdm_is_idle, | ||
48 | .clkdm_clk_enable = omap2_clkdm_clk_enable, | ||
49 | .clkdm_clk_disable = omap2_clkdm_clk_disable, | ||
50 | }; | ||
51 | @@ -269,6 +280,7 @@ struct clkdm_ops omap3_clkdm_operations = { | ||
52 | .clkdm_wakeup = omap3_clkdm_wakeup, | ||
53 | .clkdm_allow_idle = omap3_clkdm_allow_idle, | ||
54 | .clkdm_deny_idle = omap3_clkdm_deny_idle, | ||
55 | + .clkdm_is_idle = omap2_clkdm_is_idle, | ||
56 | .clkdm_clk_enable = omap2_clkdm_clk_enable, | ||
57 | .clkdm_clk_disable = omap2_clkdm_clk_disable, | ||
58 | }; | ||
59 | diff --git a/arch/arm/mach-omap2/clockdomain44xx.c b/arch/arm/mach-omap2/clockdomain44xx.c | ||
60 | index a1a4ecd..4b10727 100644 | ||
61 | --- a/arch/arm/mach-omap2/clockdomain44xx.c | ||
62 | +++ b/arch/arm/mach-omap2/clockdomain44xx.c | ||
63 | @@ -93,6 +93,12 @@ static void omap4_clkdm_deny_idle(struct clockdomain *clkdm) | ||
64 | clkdm->cm_inst, clkdm->clkdm_offs); | ||
65 | } | ||
66 | |||
67 | +static int omap4_clkdm_is_idle(struct clockdomain *clkdm) | ||
68 | +{ | ||
69 | + return omap4_cminst_is_clkdm_in_hwsup(clkdm->prcm_partition, | ||
70 | + clkdm->cm_inst, clkdm->clkdm_offs); | ||
71 | +} | ||
72 | + | ||
73 | static int omap4_clkdm_clk_enable(struct clockdomain *clkdm) | ||
74 | { | ||
75 | bool hwsup = false; | ||
76 | @@ -132,6 +138,7 @@ struct clkdm_ops omap4_clkdm_operations = { | ||
77 | .clkdm_wakeup = omap4_clkdm_wakeup, | ||
78 | .clkdm_allow_idle = omap4_clkdm_allow_idle, | ||
79 | .clkdm_deny_idle = omap4_clkdm_deny_idle, | ||
80 | + .clkdm_is_idle = omap4_clkdm_is_idle, | ||
81 | .clkdm_clk_enable = omap4_clkdm_clk_enable, | ||
82 | .clkdm_clk_disable = omap4_clkdm_clk_disable, | ||
83 | }; | ||
84 | -- | ||
85 | 1.6.6.1 | ||
86 | |||
diff --git a/extras/recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm-wip-cpuidle/0003-OMAP2-PM-Initialise-sleep_switch-to-a-non-valid-valu.patch b/extras/recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm-wip-cpuidle/0003-OMAP2-PM-Initialise-sleep_switch-to-a-non-valid-valu.patch new file mode 100644 index 00000000..cbe5ca20 --- /dev/null +++ b/extras/recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm-wip-cpuidle/0003-OMAP2-PM-Initialise-sleep_switch-to-a-non-valid-valu.patch | |||
@@ -0,0 +1,35 @@ | |||
1 | From 7cdc87071a4bb390ad5d7ddea210bd2b4d662114 Mon Sep 17 00:00:00 2001 | ||
2 | From: Rajendra Nayak <rnayak@ti.com> | ||
3 | Date: Tue, 5 Apr 2011 15:22:41 +0530 | ||
4 | Subject: [PATCH 3/6] OMAP2+: PM: Initialise sleep_switch to a non-valid value | ||
5 | |||
6 | sleep_switch which is initialised to 0 in omap_set_pwrdm_state | ||
7 | happens to be a valid sleep_switch type (FORCEWAKEUP_SWITCH) | ||
8 | which are defined as | ||
9 | #define FORCEWAKEUP_SWITCH 0 | ||
10 | #define LOWPOWERSTATE_SWITCH 1 | ||
11 | |||
12 | This causes the function to wrongly program some clock domains | ||
13 | even when the Powerdomain is in ON state. | ||
14 | |||
15 | Signed-off-by: Rajendra Nayak <rnayak@ti.com> | ||
16 | --- | ||
17 | arch/arm/mach-omap2/pm.c | 2 +- | ||
18 | 1 files changed, 1 insertions(+), 1 deletions(-) | ||
19 | |||
20 | diff --git a/arch/arm/mach-omap2/pm.c b/arch/arm/mach-omap2/pm.c | ||
21 | index 49486f5..d48813f 100644 | ||
22 | --- a/arch/arm/mach-omap2/pm.c | ||
23 | +++ b/arch/arm/mach-omap2/pm.c | ||
24 | @@ -106,7 +106,7 @@ static void omap2_init_processor_devices(void) | ||
25 | int omap_set_pwrdm_state(struct powerdomain *pwrdm, u32 state) | ||
26 | { | ||
27 | u32 cur_state; | ||
28 | - int sleep_switch = 0; | ||
29 | + int sleep_switch = -1; | ||
30 | int ret = 0; | ||
31 | |||
32 | if (pwrdm == NULL || IS_ERR(pwrdm)) | ||
33 | -- | ||
34 | 1.6.6.1 | ||
35 | |||
diff --git a/extras/recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm-wip-cpuidle/0004-OMAP2-PM-idle-clkdms-only-if-already-in-idle.patch b/extras/recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm-wip-cpuidle/0004-OMAP2-PM-idle-clkdms-only-if-already-in-idle.patch new file mode 100644 index 00000000..16eedf9a --- /dev/null +++ b/extras/recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm-wip-cpuidle/0004-OMAP2-PM-idle-clkdms-only-if-already-in-idle.patch | |||
@@ -0,0 +1,50 @@ | |||
1 | From cec133850aa42c03d912c764aaa441677e782eca Mon Sep 17 00:00:00 2001 | ||
2 | From: Rajendra Nayak <rnayak@ti.com> | ||
3 | Date: Tue, 5 Apr 2011 15:22:48 +0530 | ||
4 | Subject: [PATCH 4/6] OMAP2+: PM: idle clkdms only if already in idle | ||
5 | |||
6 | The omap_set_pwrdm_state function forces clockdomains | ||
7 | to idle, without checking the existing idle state | ||
8 | programmed, instead based solely on the HW capability | ||
9 | of the clockdomain to support idle. | ||
10 | This is wrong and the clockdomains should be idled | ||
11 | post a state_switch *only* if idle transitions on the | ||
12 | clockdomain were already enabled. | ||
13 | |||
14 | Signed-off-by: Rajendra Nayak <rnayak@ti.com> | ||
15 | --- | ||
16 | arch/arm/mach-omap2/pm.c | 4 +++- | ||
17 | 1 files changed, 3 insertions(+), 1 deletions(-) | ||
18 | |||
19 | diff --git a/arch/arm/mach-omap2/pm.c b/arch/arm/mach-omap2/pm.c | ||
20 | index d48813f..840b0e1 100644 | ||
21 | --- a/arch/arm/mach-omap2/pm.c | ||
22 | +++ b/arch/arm/mach-omap2/pm.c | ||
23 | @@ -108,6 +108,7 @@ int omap_set_pwrdm_state(struct powerdomain *pwrdm, u32 state) | ||
24 | u32 cur_state; | ||
25 | int sleep_switch = -1; | ||
26 | int ret = 0; | ||
27 | + int hwsup = 0; | ||
28 | |||
29 | if (pwrdm == NULL || IS_ERR(pwrdm)) | ||
30 | return -EINVAL; | ||
31 | @@ -127,6 +128,7 @@ int omap_set_pwrdm_state(struct powerdomain *pwrdm, u32 state) | ||
32 | (pwrdm->flags & PWRDM_HAS_LOWPOWERSTATECHANGE)) { | ||
33 | sleep_switch = LOWPOWERSTATE_SWITCH; | ||
34 | } else { | ||
35 | + hwsup = clkdm_is_idle(pwrdm->pwrdm_clkdms[0]); | ||
36 | clkdm_wakeup(pwrdm->pwrdm_clkdms[0]); | ||
37 | pwrdm_wait_transition(pwrdm); | ||
38 | sleep_switch = FORCEWAKEUP_SWITCH; | ||
39 | @@ -142,7 +144,7 @@ int omap_set_pwrdm_state(struct powerdomain *pwrdm, u32 state) | ||
40 | |||
41 | switch (sleep_switch) { | ||
42 | case FORCEWAKEUP_SWITCH: | ||
43 | - if (pwrdm->pwrdm_clkdms[0]->flags & CLKDM_CAN_ENABLE_AUTO) | ||
44 | + if (hwsup) | ||
45 | clkdm_allow_idle(pwrdm->pwrdm_clkdms[0]); | ||
46 | else | ||
47 | clkdm_sleep(pwrdm->pwrdm_clkdms[0]); | ||
48 | -- | ||
49 | 1.6.6.1 | ||
50 | |||
diff --git a/extras/recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm-wip-cpuidle/0005-OMAP2-hwmod-Follow-the-recomended-PRCM-sequence.patch b/extras/recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm-wip-cpuidle/0005-OMAP2-hwmod-Follow-the-recomended-PRCM-sequence.patch new file mode 100644 index 00000000..b0af9e7f --- /dev/null +++ b/extras/recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm-wip-cpuidle/0005-OMAP2-hwmod-Follow-the-recomended-PRCM-sequence.patch | |||
@@ -0,0 +1,46 @@ | |||
1 | From 8fb6b7c488b31fbff5b81bdeea5dbb236342458b Mon Sep 17 00:00:00 2001 | ||
2 | From: Rajendra Nayak <rnayak@ti.com> | ||
3 | Date: Tue, 29 Mar 2011 22:37:43 +0530 | ||
4 | Subject: [PATCH 5/6] OMAP2+: hwmod: Follow the recomended PRCM sequence | ||
5 | |||
6 | Follow the recomended PRCM sequence. | ||
7 | This still does not take care of Optional clocks. | ||
8 | |||
9 | Signed-off-by: Rajendra Nayak <rnayak@ti.com> | ||
10 | --- | ||
11 | arch/arm/mach-omap2/omap_hwmod.c | 9 ++++++++- | ||
12 | 1 files changed, 8 insertions(+), 1 deletions(-) | ||
13 | |||
14 | diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c | ||
15 | index e034294..fc0db0c 100644 | ||
16 | --- a/arch/arm/mach-omap2/omap_hwmod.c | ||
17 | +++ b/arch/arm/mach-omap2/omap_hwmod.c | ||
18 | @@ -1223,6 +1223,7 @@ static int _reset(struct omap_hwmod *oh) | ||
19 | static int _enable(struct omap_hwmod *oh) | ||
20 | { | ||
21 | int r; | ||
22 | + int hwsup = 0; | ||
23 | |||
24 | if (oh->_state != _HWMOD_STATE_INITIALIZED && | ||
25 | oh->_state != _HWMOD_STATE_IDLE && | ||
26 | @@ -1250,10 +1251,16 @@ static int _enable(struct omap_hwmod *oh) | ||
27 | omap_hwmod_mux(oh->mux, _HWMOD_STATE_ENABLED); | ||
28 | |||
29 | _add_initiator_dep(oh, mpu_oh); | ||
30 | + if (oh->_clk && oh->_clk->clkdm) { | ||
31 | + hwsup = clkdm_is_idle(oh->_clk->clkdm); | ||
32 | + clkdm_wakeup(oh->_clk->clkdm); | ||
33 | + } | ||
34 | _enable_clocks(oh); | ||
35 | - | ||
36 | r = _wait_target_ready(oh); | ||
37 | if (!r) { | ||
38 | + if (oh->_clk && oh->_clk->clkdm && hwsup) | ||
39 | + clkdm_allow_idle(oh->_clk->clkdm); | ||
40 | + | ||
41 | oh->_state = _HWMOD_STATE_ENABLED; | ||
42 | |||
43 | /* Access the sysconfig only if the target is ready */ | ||
44 | -- | ||
45 | 1.6.6.1 | ||
46 | |||
diff --git a/extras/recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm-wip-cpuidle/0006-OMAP-Serial-Check-wk_st-only-if-present.patch b/extras/recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm-wip-cpuidle/0006-OMAP-Serial-Check-wk_st-only-if-present.patch new file mode 100644 index 00000000..a8fc0c07 --- /dev/null +++ b/extras/recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm-wip-cpuidle/0006-OMAP-Serial-Check-wk_st-only-if-present.patch | |||
@@ -0,0 +1,33 @@ | |||
1 | From 7b74888d198c260992349fab214cad3adf853ef9 Mon Sep 17 00:00:00 2001 | ||
2 | From: Rajendra Nayak <rnayak@ti.com> | ||
3 | Date: Tue, 2 Mar 2010 17:25:30 +0530 | ||
4 | Subject: [PATCH 6/6] OMAP: Serial: Check wk_st only if present | ||
5 | |||
6 | Uart on the resume path tries to read wk_st registers, even | ||
7 | on architectures were its not present/populated. | ||
8 | This patch fixes the issue. | ||
9 | |||
10 | Signed-off-by: Rajendra Nayak <rnayak@ti.com> | ||
11 | --- | ||
12 | arch/arm/mach-omap2/serial.c | 5 +++-- | ||
13 | 1 files changed, 3 insertions(+), 2 deletions(-) | ||
14 | |||
15 | diff --git a/arch/arm/mach-omap2/serial.c b/arch/arm/mach-omap2/serial.c | ||
16 | index 1ac361b..a0046ce 100644 | ||
17 | --- a/arch/arm/mach-omap2/serial.c | ||
18 | +++ b/arch/arm/mach-omap2/serial.c | ||
19 | @@ -418,8 +418,9 @@ void omap_uart_resume_idle(int num) | ||
20 | } | ||
21 | |||
22 | /* Check for normal UART wakeup */ | ||
23 | - if (__raw_readl(uart->wk_st) & uart->wk_mask) | ||
24 | - omap_uart_block_sleep(uart); | ||
25 | + if (uart->wk_st && uart->wk_mask) | ||
26 | + if (__raw_readl(uart->wk_st) & uart->wk_mask) | ||
27 | + omap_uart_block_sleep(uart); | ||
28 | return; | ||
29 | } | ||
30 | } | ||
31 | -- | ||
32 | 1.6.6.1 | ||
33 | |||