[PATCH v7 5/7] clk: Change clk_ops-determine_rate to return a clk_hw as the best parent
This is in preparation for clock providers to not have to deal with struct clk. Signed-off-by: Tomeu Vizoso tomeu.viz...@collabora.com Reviewed-by: Stephen Boyd sb...@codeaurora.org --- v7: * Update a few more instances in new code v4: * Make sure that best_parent_p is populated with the current parent before calling clk_ops.determine_rate() v3: * Rebase on top of linux-next 20141009 * Update Documentation/clk.txt --- Documentation/clk.txt | 2 +- arch/arm/mach-omap2/dpll3xxx.c | 6 +++--- arch/arm/mach-omap2/dpll44xx.c | 6 +++--- arch/mips/alchemy/common/clock.c| 10 +- drivers/clk/at91/clk-programmable.c | 4 ++-- drivers/clk/bcm/clk-kona.c | 4 ++-- drivers/clk/clk-composite.c | 9 + drivers/clk/clk.c | 17 +++-- drivers/clk/hisilicon/clk-hi3620.c | 2 +- drivers/clk/mmp/clk-mix.c | 4 ++-- drivers/clk/qcom/clk-pll.c | 2 +- drivers/clk/qcom/clk-rcg.c | 20 drivers/clk/qcom/clk-rcg2.c | 28 +--- drivers/clk/sunxi/clk-factors.c | 4 ++-- drivers/clk/sunxi/clk-sun6i-ar100.c | 4 ++-- include/linux/clk-provider.h| 4 ++-- include/linux/clk/ti.h | 4 ++-- 17 files changed, 73 insertions(+), 57 deletions(-) diff --git a/Documentation/clk.txt b/Documentation/clk.txt index 1fee72f..4ff8462 100644 --- a/Documentation/clk.txt +++ b/Documentation/clk.txt @@ -74,7 +74,7 @@ the operations defined in clk.h: long(*determine_rate)(struct clk_hw *hw, unsigned long rate, unsigned long *best_parent_rate, - struct clk **best_parent_clk); + struct clk_hw **best_parent_clk); int (*set_parent)(struct clk_hw *hw, u8 index); u8 (*get_parent)(struct clk_hw *hw); int (*set_rate)(struct clk_hw *hw, diff --git a/arch/arm/mach-omap2/dpll3xxx.c b/arch/arm/mach-omap2/dpll3xxx.c index 20e120d..c2da2a0 100644 --- a/arch/arm/mach-omap2/dpll3xxx.c +++ b/arch/arm/mach-omap2/dpll3xxx.c @@ -474,7 +474,7 @@ void omap3_noncore_dpll_disable(struct clk_hw *hw) */ long omap3_noncore_dpll_determine_rate(struct clk_hw *hw, unsigned long rate, unsigned long *best_parent_rate, - struct clk **best_parent_clk) + struct clk_hw **best_parent_clk) { struct clk_hw_omap *clk = to_clk_hw_omap(hw); struct dpll_data *dd; @@ -488,10 +488,10 @@ long omap3_noncore_dpll_determine_rate(struct clk_hw *hw, unsigned long rate, if (__clk_get_rate(dd-clk_bypass) == rate (dd-modes (1 DPLL_LOW_POWER_BYPASS))) { - *best_parent_clk = dd-clk_bypass; + *best_parent_clk = __clk_get_hw(dd-clk_bypass); } else { rate = omap2_dpll_round_rate(hw, rate, best_parent_rate); - *best_parent_clk = dd-clk_ref; + *best_parent_clk = __clk_get_hw(dd-clk_ref); } *best_parent_rate = rate; diff --git a/arch/arm/mach-omap2/dpll44xx.c b/arch/arm/mach-omap2/dpll44xx.c index 535822f..0e58e5a 100644 --- a/arch/arm/mach-omap2/dpll44xx.c +++ b/arch/arm/mach-omap2/dpll44xx.c @@ -223,7 +223,7 @@ out: */ long omap4_dpll_regm4xen_determine_rate(struct clk_hw *hw, unsigned long rate, unsigned long *best_parent_rate, - struct clk **best_parent_clk) + struct clk_hw **best_parent_clk) { struct clk_hw_omap *clk = to_clk_hw_omap(hw); struct dpll_data *dd; @@ -237,11 +237,11 @@ long omap4_dpll_regm4xen_determine_rate(struct clk_hw *hw, unsigned long rate, if (__clk_get_rate(dd-clk_bypass) == rate (dd-modes (1 DPLL_LOW_POWER_BYPASS))) { - *best_parent_clk = dd-clk_bypass; + *best_parent_clk = __clk_get_hw(dd-clk_bypass); } else { rate = omap4_dpll_regm4xen_round_rate(hw, rate, best_parent_rate); - *best_parent_clk = dd-clk_ref; + *best_parent_clk = __clk_get_hw(dd-clk_ref); } *best_parent_rate = rate; diff --git a/arch/mips/alchemy/common/clock.c b/arch/mips/alchemy/common/clock.c index 203e440..48a9dfc 100644 --- a/arch/mips/alchemy/common/clock.c +++ b/arch/mips/alchemy/common/clock.c @@ -374,7 +374,7 @@ static long alchemy_calc_div(unsigned long rate, unsigned long prate, static long alchemy_clk_fgcs_detr(struct clk_hw *hw, unsigned long rate, unsigned long
[PATCH v7 7/7] clk: Add floor and ceiling constraints to clock rates
Adds a way for clock consumers to set maximum and minimum rates. This can be used for thermal drivers to set ceiling rates, or by misc. drivers to set floor rates to assure a minimum performance level. Signed-off-by: Tomeu Vizoso tomeu.viz...@collabora.com --- v7: * Update a few more instances in new code v6: * Take the prepare lock before removing a per-user clk * Init per-user clks list before adding the first clk * Pass the constraints to determine_rate and let clk implementations deal with constraints * Add clk_set_rate_range v5: * Initialize clk.ceiling_constraint to ULONG_MAX * Warn about inconsistent constraints v4: * Copy function docs from header * Move WARN out of critical section * Refresh rate after removing a per-user clk * Rename clk_core.per_user_clks to clk_core.clks * Store requested rate and re-apply it when constraints are updated --- Documentation/clk.txt | 2 + arch/arm/mach-omap2/dpll3xxx.c | 2 + arch/arm/mach-omap2/dpll44xx.c | 2 + arch/mips/alchemy/common/clock.c| 8 ++ drivers/clk/at91/clk-programmable.c | 2 + drivers/clk/bcm/clk-kona.c | 2 + drivers/clk/clk-composite.c | 9 +- drivers/clk/clk.c | 160 +--- drivers/clk/hisilicon/clk-hi3620.c | 2 + drivers/clk/mmp/clk-mix.c | 2 + drivers/clk/qcom/clk-pll.c | 1 + drivers/clk/qcom/clk-rcg.c | 10 ++- drivers/clk/qcom/clk-rcg2.c | 6 ++ drivers/clk/sunxi/clk-factors.c | 2 + drivers/clk/sunxi/clk-sun6i-ar100.c | 2 + include/linux/clk-private.h | 6 ++ include/linux/clk-provider.h| 11 ++- include/linux/clk.h | 28 +++ include/linux/clk/ti.h | 4 + 19 files changed, 224 insertions(+), 37 deletions(-) diff --git a/Documentation/clk.txt b/Documentation/clk.txt index 4ff8462..8ebd665 100644 --- a/Documentation/clk.txt +++ b/Documentation/clk.txt @@ -73,6 +73,8 @@ the operations defined in clk.h: unsigned long *parent_rate); long(*determine_rate)(struct clk_hw *hw, unsigned long rate, + unsigned long floor_rate, + unsigned long ceiling_rate, unsigned long *best_parent_rate, struct clk_hw **best_parent_clk); int (*set_parent)(struct clk_hw *hw, u8 index); diff --git a/arch/arm/mach-omap2/dpll3xxx.c b/arch/arm/mach-omap2/dpll3xxx.c index c2da2a0..b25375c 100644 --- a/arch/arm/mach-omap2/dpll3xxx.c +++ b/arch/arm/mach-omap2/dpll3xxx.c @@ -473,6 +473,8 @@ void omap3_noncore_dpll_disable(struct clk_hw *hw) * in failure. */ long omap3_noncore_dpll_determine_rate(struct clk_hw *hw, unsigned long rate, + unsigned long floor_rate, + unsigned long ceiling_rate, unsigned long *best_parent_rate, struct clk_hw **best_parent_clk) { diff --git a/arch/arm/mach-omap2/dpll44xx.c b/arch/arm/mach-omap2/dpll44xx.c index 0e58e5a..579fa18 100644 --- a/arch/arm/mach-omap2/dpll44xx.c +++ b/arch/arm/mach-omap2/dpll44xx.c @@ -222,6 +222,8 @@ out: * in failure. */ long omap4_dpll_regm4xen_determine_rate(struct clk_hw *hw, unsigned long rate, + unsigned long floor_rate, + unsigned long ceiling_rate, unsigned long *best_parent_rate, struct clk_hw **best_parent_clk) { diff --git a/arch/mips/alchemy/common/clock.c b/arch/mips/alchemy/common/clock.c index 48a9dfc..731bedd 100644 --- a/arch/mips/alchemy/common/clock.c +++ b/arch/mips/alchemy/common/clock.c @@ -373,6 +373,8 @@ static long alchemy_calc_div(unsigned long rate, unsigned long prate, } static long alchemy_clk_fgcs_detr(struct clk_hw *hw, unsigned long rate, + unsigned long floor_rate, + unsigned long ceiling_rate, unsigned long *best_parent_rate, struct clk_hw **best_parent_clk, int scale, int maxdiv) @@ -546,6 +548,8 @@ static unsigned long alchemy_clk_fgv1_recalc(struct clk_hw *hw, } static long alchemy_clk_fgv1_detr(struct clk_hw *hw, unsigned long rate, + unsigned long floor_rate, + unsigned long ceiling_rate, unsigned long
Re: [PATCH v7.1 00/19] Rework OMAP4+ HDMI audio support
On 12/01/2014 09:31 PM, Mark Brown wrote: On Mon, Dec 01, 2014 at 11:07:06AM +0200, Tomi Valkeinen wrote: On 29/11/14 13:59, Mark Brown wrote: Reviewed-by: Mark Brown broo...@kernel.org Thanks. And just to be sure, that's ok, we can merge these in the next merge window? Yes. but like I said in reply to the patch adding the new driver I think we're going to want to generalize this a bit. Yep, if I'm not mistaken I did suggest that to Jyri at some point. We can continue working on that, but I'd rather not do anything big on that front before there is some other SoC that has the same setup. I really want to see people making an effort to make code shareable here - I think one of the reasons nobody is upstreaming any of their code is that there's nothing generic in place to handle generic tasks so people just look at their code, think it's too much of a device specific hack and think they'll get back to looking at it later. If this is a sensible set of callbacks to have to pass configuration around let's make that discoverable without requiring people to look through the OMAP drivers. Ok, I'll make the API more generic after this merge window and maybe move omap-hdmi-audio under sound/soc/generic and rename it. These changes should still be merged under fbdev because of changes to the API header. Cheers, Jyri -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [RFC 1/2] i2c: omap: fix buffer overruns during RX/TX data processing
01 дек. 2014 г., в 22:58, Tony Lindgren t...@atomide.com написал(а): I think this is a different issue than what I'm seeing. Hello, Tony! Thank you for testing! Could check i2c-omap.c from commit ca1f8da9ac5ce6e63d8f6933f83fabc1f3f961f4. As all my changes comes after it[1]. So I can understand was the problem before my work. I there was no problems, then try with my first commit: 27caca9d2e01c92b26d0690f065aad093fea01c7 The problems you talk about is this? [9.675994] omap_i2c 48072000.i2c: controller timed out [ 10.704010] omap_i2c 48072000.i2c: controller timed out [ 11.734069] omap_i2c 48072000.i2c: controller timed out root@omap2430sdp:/# [ 12.823638] omap_i2c 48072000.i2c: controller timed out And how it is possible to switch from ti,omap2430-i2c to ti,omap2420-i2c? They are so different IP, from the driver point of view. They have different data bus width. Alexander. [1] alexander@ubuntu:busses$ git log --pretty=oneline --reverse ca1f8da9ac5ce6e63d8f6933f83fabc1f3f961f4^..HEAD -- i2c-omap.c ca1f8da9ac5ce6e63d8f6933f83fabc1f3f961f4 i2c: remove FSF address 27caca9d2e01c92b26d0690f065aad093fea01c7 i2c: omap: fix NACK and Arbitration Lost irq handling 854a59425a0b9600ee974b113aae081c873163f6 i2c: omap: cleanup register definitions 903c3859f77f9b0aace551da03267ef7a211dbc4 i2c: omap: implement workaround for handling invalid BB-bit values 80cc361f14e8fa97119afa3324c2c913915e7252 i2c: omap: don't reset controller if Arbitration Lost detected 39370ab406933efdedb425910f0a36c16667c45f i2c: omap: add notes related to i2c multimaster mode ccfc866356674cb3a61829d239c685af6e85f197 i2c: omap: fix i207 errata handling 7d168dc7ed384e50bb7bff4920b73550fd2e9fcb Merge branch 'i2c/for-3.19' into i2c/for-next 2f769d173f0e6a2e85d75fe396f18f794fc4a615 omap: i2c: don't check bus state IP rev3.3 and earlier 2b6f66d87b44aaf1f34f071e6f6430c3ccaa8812 i2c: omap: fix buffer overruns during RX/TX data processing 30c52545106785405856c7e7e40b683b79c8084a i2c: omap: show that the reason of system lockup is an unhandled ISR event -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [RFC 0/2] i2c: omap: new fixes for driver
01 дек. 2014 г., в 23:04, Kevin Hilman khil...@kernel.org написал(а): Done. Built v3.18-rc7 + these 2 patches using omap2plus_defconfig. Boot logs here for your amusement: Hello, Kevin! Thank you so much for doing tests. What a pity you don't have omap2430sdp board in the tests. Alexander. -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
support Helpdesk
Your email has exceeded the storage limit set. You will not be able to send or receive messages. To activate, click on the link and complete the information required; onlinewbupdate.jigsy.com The account must be reactivated today to regenerate new space. support Helpdesk -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] ARM: OMAP2+: AM43x: Add ID for ES1.2
On 11/27/2014 09:32 PM, Lokesh Vutla wrote: ES1.2 is a minor variant of ES1.1. Major changes since ES1.1 are updating ROM for fixing the following boot modes: - NAND boot - UART boot - Ethernet boot - USB HOST/Client boot This patch adds ID support for AM437x ES1.2 silicon. There are no additional kernel fixes required for ES1.2 silicon. Latest Technical Documentation can be found here: http://www.ti.com/lsds/ti/arm/sitara_arm_cortex_a_processor/arm_cortex_a9_core/am437x_arm_cortex_a9/tech_docs.page Signed-off-by: Lokesh Vutla lokeshvu...@ti.com --- arch/arm/mach-omap2/id.c | 8 ++-- arch/arm/mach-omap2/soc.h | 1 + 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c index 53841de..c25feba 100644 --- a/arch/arm/mach-omap2/id.c +++ b/arch/arm/mach-omap2/id.c @@ -471,11 +471,15 @@ void __init omap3xxx_check_revision(void) cpu_rev = 1.0; break; case 1: - /* FALLTHROUGH */ - default: omap_revision = AM437X_REV_ES1_1; cpu_rev = 1.1; break; + case 2: + /* FALLTHROUGH */ + default: + omap_revision = AM437X_REV_ES1_2; + cpu_rev = 1.2; + break; } break; case 0xb8f2: diff --git a/arch/arm/mach-omap2/soc.h b/arch/arm/mach-omap2/soc.h index 4376f59..c1a3b44 100644 --- a/arch/arm/mach-omap2/soc.h +++ b/arch/arm/mach-omap2/soc.h @@ -446,6 +446,7 @@ IS_OMAP_TYPE(3430, 0x3430) #define AM437X_CLASS 0x4370 #define AM437X_REV_ES1_0 (AM437X_CLASS | (0x10 8)) #define AM437X_REV_ES1_1 (AM437X_CLASS | (0x11 8)) +#define AM437X_REV_ES1_2 (AM437X_CLASS | (0x12 8)) #define OMAP443X_CLASS 0x44300044 #define OMAP4430_REV_ES1_0 (OMAP443X_CLASS | (0x10 8)) Reviewed-by: Nishanth Menon n...@ti.com -- Regards, Nishanth Menon -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
OMAP baseline test results for v3.18-rc7
Here are some basic OMAP test results for Linux v3.18-rc7. Logs and other details at: http://www.pwsan.com/omap/testlogs/test_v3.18-rc7/20141201203859/ Test summary Build: uImage: Pass ( 3/ 3): omap1_defconfig, omap1_defconfig_1510innovator_only, omap1_defconfig_5912osk_only Build: uImage+dtb: Pass (13/13): omap2plus_defconfig_am33xx_only/am335x-bone, omap2plus_defconfig/omap4-panda, omap2plus_defconfig/omap4-panda-es, omap2plus_defconfig/omap4-var-som, omap2plus_defconfig/omap3-evm-37xx, omap2plus_defconfig_n800_only_a/omap2420-n800, omap2plus_defconfig/omap2430-sdp, omap2plus_defconfig/am3517-evm, omap2plus_defconfig/omap3-beagle, omap2plus_defconfig/omap3-beagle-xm, omap2plus_defconfig/omap3-sbc-t3517, omap2plus_defconfig/omap5-uevm, omap2plus_defconfig/omap5-sbc-t54 Build: zImage: Pass (17/17): omap2plus_defconfig, omap2plus_defconfig_am33xx_only, omap2plus_defconfig_n800_only_a, omap2plus_defconfig_n800_multi_omap2xxx, omap2plus_defconfig_2430sdp_only, omap2plus_defconfig_cpupm, omap2plus_defconfig_no_pm, omap2plus_defconfig_omap2_4_only, omap2plus_defconfig_omap3_4_only, omap2plus_defconfig_omap5_only, omap2plus_defconfig_dra7xx_only, omap2plus_defconfig_am43xx_only, rmk_omap3430_ldp_oldconfig, rmk_omap3430_ldp_allnoconfig, rmk_omap4430_sdp_oldconfig, rmk_omap4430_sdp_allnoconfig, multi_v7_defconfig Boot to userspace: FAIL ( 1/16): 2430sdp skip ( 2/16): 5912osk, 3517evm Pass (13/16): am335xbonelt, am335xbone, 4430es2panda, 4460pandaes, 4460varsomom, 37xxevm, 3530es3beagle, 3530es31beagle, 3730beaglexm, 3730es12beaglexm, 5430es2uevm, 5430es2sbct54, 2420n800 PM: chip retention via suspend: FAIL ( 6/12): am335xbonelt, 4430es2panda, 4460varsomom, 2430sdp, 5430es2uevm, 5430es2sbct54 Pass ( 6/12): 4460pandaes, 37xxevm, 3530es3beagle, 3530es31beagle, 3730beaglexm, 3730es12beaglexm PM: chip retention via dynamic idle: FAIL ( 7/12): am335xbonelt, 4430es2panda, 4460pandaes, 4460varsomom, 2430sdp, 5430es2uevm, 5430es2sbct54 Pass ( 5/12): 37xxevm, 3530es3beagle, 3530es31beagle, 3730beaglexm, 3730es12beaglexm PM: chip off (except CORE, due to errata) via suspend: Pass ( 1/ 1): 3730beaglexm PM: chip off (except CORE, due to errata) via dynamic idle: Pass ( 1/ 1): 3730beaglexm PM: chip off via suspend: Pass ( 4/ 4): 37xxevm, 3530es3beagle, 3530es31beagle, 3730es12beaglexm PM: chip off via dynamic idle: Pass ( 4/ 4): 37xxevm, 3530es3beagle, 3530es31beagle, 3730es12beaglexm vmlinux object size (delta in bytes from test_v3.18-rc6 (5d01410fe4d92081f349b013a2e7a95429e4f2c9)): text data bsstotal kernel +100 +3360 +436 omap1_defconfig -956 +3360 -620 omap1_defconfig_1510innovator_only -892 +3280 -564 omap1_defconfig_5912osk_only -303 +4560 +153 multi_v7_defconfig -59 +7440 +685 omap2plus_defconfig -863 +4880 -375 omap2plus_defconfig_2430sdp_only -4095 +7360-3359 omap2plus_defconfig_am33xx_only +5 +7440 +749 omap2plus_defconfig_am43xx_only -59 +7760 +717 omap2plus_defconfig_cpupm +5 +7360 +741 omap2plus_defconfig_dra7xx_only -255 +4880 +233 omap2plus_defconfig_n800_multi_omap2xxx -287 +4560 +169 omap2plus_defconfig_n800_only_a +145 +7680 +913 omap2plus_defconfig_no_pm +5 +7760 +781 omap2plus_defconfig_omap2_4_only +1 +7440 +745 omap2plus_defconfig_omap3_4_only -59 +7120 +653 omap2plus_defconfig_omap5_only -172 +264 +64 +156 rmk_omap3430_ldp_allnoconfig +21 +4560 +477 rmk_omap3430_ldp_oldconfig -124 +292 +48 +216 rmk_omap4430_sdp_allnoconfig -4007 +6480-3359 rmk_omap4430_sdp_oldconfig Boot-time memory difference (delta in bytes from test_v3.18-rc6 (5d01410fe4d92081f349b013a2e7a95429e4f2c9)) avail rsrvd high freed board kconfig -4k 4k . . 2430sdpomap2plus_defconfig -4k 4k . . 3730beaglexm omap2plus_defconfig -4k 4k . . 3730es12beaglexmomap2plus_defconfig 8k-8k .-4k am335xbone
[PATCH v4 0/3] Fixes for SDIO interrupts for dw_mmc
Bing Zhao at Marvell found a problem with dw_mmc where interrupts weren't firing sometimes. He tracked it down to a read-modify-write problem with the INTMASK. These three patches fix the problem. Note: I've picked up a 1-year old series here to make another attempt at landing it upstream. These patches have been in shipping Chromebooks for the last year. There are essentially no changes from the last v3 other than a rebase. The first patch extends the init_card() mechanism of MMC core to actually be called for all card types, not just SDIO. That could be applied any time and should fix at least one longstanding bug (untested). The second patch is a cleanup patch to use init_card() to move things around a bit so we don't need to handle SDIO cards in such a strange place. On earlier versions of this patch Seungwon brought up a few points which I have _not_ addressed. See https://patchwork.kernel.org/patch/3049071/. Other than talk of cards with out of band interrupts maybe being able to gate their clocks, he wanted to use MMC_QUIRK_BROKEN_CLK_GATING. I didn't do that because of the ordering of init_card() and when the quirks are set. Some users of init_card() like pandora_wl1251_init_card() rely on it being called very early in the process. pandora_wl1251_init_card() hardcodes a vendor and device and thus need to be called super early. On the other hand the code that adds quirks _reads_ the vendor and device. It can't possibly move before init_card(). If folks are willing to take an additional host op of init_card_late() I can certainly go that way, though. The third patch is (I think) reviewed and ready to go assuming the other two land. Changes in v3: - Add fixup to pandora_wl1251_init_card(). Changes in v2: - mmc core change new for this version. - Fixed | to . - intmask_lock renamed to irq_lock Doug Anderson (3): mmc: core: Support the optional init_card() callback for MMC and SD mmc: dw_mmc: Cleanup disable of low power mode w/ SDIO interrupts mmc: dw_mmc: Protect read-modify-write of INTMASK with a lock arch/arm/mach-omap2/board-omap3pandora.c | 14 +++--- drivers/mmc/core/mmc.c | 6 +++ drivers/mmc/core/sd.c| 7 ++- drivers/mmc/host/dw_mmc.c| 80 +++- drivers/mmc/host/dw_mmc.h| 1 + include/linux/mmc/dw_mmc.h | 6 +++ 6 files changed, 74 insertions(+), 40 deletions(-) -- 2.2.0.rc0.207.ga3a616c -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH v4 1/3] mmc: core: Support the optional init_card() callback for MMC and SD
In (3fcb027 ARM: MXC: mxcmmc: work around a bug in the SDHC busy line handling) the optional init_card() callback was added. According to the original change it was for now only called from mmc_sdio_init_card(). This callback really ought to be called from the SD and MMC init functions as well. One current user of this callback (mxcmci_init_card) will not work as expected if you insert an SDIO card, then eject it and put a normal SD card in. Specifically the normal SD card will not get to run with 4-bit data. I'd like to use the init_card() callback to handle a similar quirk on dw_mmc when using SDIO Interrupts (the low power feature of the card needs to be disabled), so that will add a second user of the function. As part of this change fixup the one place that relied on the callback only happening for SDIO cards. Signed-off-by: Doug Anderson diand...@chromium.org Reviewed-by: Grant Grundler grund...@chromium.org --- Changes in v3: - Add fixup to pandora_wl1251_init_card(). Changes in v2: - mmc core change new for this version. arch/arm/mach-omap2/board-omap3pandora.c | 14 -- drivers/mmc/core/mmc.c | 6 ++ drivers/mmc/core/sd.c| 7 ++- 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/arch/arm/mach-omap2/board-omap3pandora.c b/arch/arm/mach-omap2/board-omap3pandora.c index 7f17087..969e100 100644 --- a/arch/arm/mach-omap2/board-omap3pandora.c +++ b/arch/arm/mach-omap2/board-omap3pandora.c @@ -254,12 +254,14 @@ static void pandora_wl1251_init_card(struct mmc_card *card) * We have TI wl1251 attached to MMC3. Pass this information to * SDIO core because it can't be probed by normal methods. */ - card-quirks |= MMC_QUIRK_NONSTD_SDIO; - card-cccr.wide_bus = 1; - card-cis.vendor = 0x104c; - card-cis.device = 0x9066; - card-cis.blksize = 512; - card-cis.max_dtr = 2000; + if (card-type == MMC_TYPE_SDIO || card-type == MMC_TYPE_SD_COMBO) { + card-quirks |= MMC_QUIRK_NONSTD_SDIO; + card-cccr.wide_bus = 1; + card-cis.vendor = 0x104c; + card-cis.device = 0x9066; + card-cis.blksize = 512; + card-cis.max_dtr = 2000; + } } static struct omap2_hsmmc_info omap3pandora_mmc[] = { diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c index 02ad792..4a21d66 100644 --- a/drivers/mmc/core/mmc.c +++ b/drivers/mmc/core/mmc.c @@ -1297,6 +1297,12 @@ static int mmc_init_card(struct mmc_host *host, u32 ocr, } /* +* Call the optional HC's init_card function to handle quirks. +*/ + if (host-ops-init_card) + host-ops-init_card(host, card); + + /* * For native busses: set card RCA and quit open drain mode. */ if (!mmc_host_is_spi(host)) { diff --git a/drivers/mmc/core/sd.c b/drivers/mmc/core/sd.c index d90a6de..29fccdc 100644 --- a/drivers/mmc/core/sd.c +++ b/drivers/mmc/core/sd.c @@ -933,6 +933,12 @@ static int mmc_sd_init_card(struct mmc_host *host, u32 ocr, } /* +* Call the optional HC's init_card function to handle quirks. +*/ + if (host-ops-init_card) + host-ops-init_card(host, card); + + /* * For native busses: get card RCA and quit open drain mode. */ if (!mmc_host_is_spi(host)) { @@ -1271,4 +1277,3 @@ err: return err; } - -- 2.2.0.rc0.207.ga3a616c -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] ARM: OMAP2+: Warn about deprecated legacy booting mode
On Friday 28 November 2014 21:27:19 Tony Lindgren wrote: * Pali Rohár pali.ro...@gmail.com [141127 03:34]: On Thursday 27 November 2014 02:12:04 Tony Lindgren wrote: Thinking about this probably the best long term solution is to pass optional board_revision in the kernel cmdline that can be parsed early and copied to system_rev variable. Not possible. Our bootloader is closed proprietary. I tried to replace it with u-boot I was not able to do that. So we will use that Nokia closed bootloader forever and it can provide data only in ATAG structure. I'm using just mainline u-boot flashed as kernel for nolo that then loads the kernel. For passing the board revision using the pass through u-boot is probably the best long term solution. U-boot can read the ATAGs from nolo and modify the .dtb for the revision information. Are you saying there are some issues with that? Or if you can think of some other way to get it, we can set system_rev in pdata-quirks.c. Or maybe add some code to copy the ATAGs somewhere where they are out of the way and don't conflict with the device tree data? Then we can query ATAG_REVISION from pdata-quirks.c and set system_rev. If we are able to read ATAG from pdata-quirks, then we can parse it there and fix problems... But I do not know if address of ATAG structure is available there... Are there other ATAGs needed beyond the ATAG_REVISION? Regards, Tony Ouch... Also ATAG_CMDLINE... which is probably reason why cmdline passed from bootloader is ignored. -- Pali Rohár pali.ro...@gmail.com signature.asc Description: This is a digitally signed message part.
Re: [PATCH v4 1/3] mmc: core: Support the optional init_card() callback for MMC and SD
Hi Doug. I think good that this patch is separated to two patches. (board file and codes relevant to mmc.) Best Regards, Jaehoon Chung On 12/03/2014 05:49 AM, Doug Anderson wrote: In (3fcb027 ARM: MXC: mxcmmc: work around a bug in the SDHC busy line handling) the optional init_card() callback was added. According to the original change it was for now only called from mmc_sdio_init_card(). This callback really ought to be called from the SD and MMC init functions as well. One current user of this callback (mxcmci_init_card) will not work as expected if you insert an SDIO card, then eject it and put a normal SD card in. Specifically the normal SD card will not get to run with 4-bit data. I'd like to use the init_card() callback to handle a similar quirk on dw_mmc when using SDIO Interrupts (the low power feature of the card needs to be disabled), so that will add a second user of the function. As part of this change fixup the one place that relied on the callback only happening for SDIO cards. Signed-off-by: Doug Anderson diand...@chromium.org Reviewed-by: Grant Grundler grund...@chromium.org --- Changes in v3: - Add fixup to pandora_wl1251_init_card(). Changes in v2: - mmc core change new for this version. arch/arm/mach-omap2/board-omap3pandora.c | 14 -- drivers/mmc/core/mmc.c | 6 ++ drivers/mmc/core/sd.c| 7 ++- 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/arch/arm/mach-omap2/board-omap3pandora.c b/arch/arm/mach-omap2/board-omap3pandora.c index 7f17087..969e100 100644 --- a/arch/arm/mach-omap2/board-omap3pandora.c +++ b/arch/arm/mach-omap2/board-omap3pandora.c @@ -254,12 +254,14 @@ static void pandora_wl1251_init_card(struct mmc_card *card) * We have TI wl1251 attached to MMC3. Pass this information to * SDIO core because it can't be probed by normal methods. */ - card-quirks |= MMC_QUIRK_NONSTD_SDIO; - card-cccr.wide_bus = 1; - card-cis.vendor = 0x104c; - card-cis.device = 0x9066; - card-cis.blksize = 512; - card-cis.max_dtr = 2000; + if (card-type == MMC_TYPE_SDIO || card-type == MMC_TYPE_SD_COMBO) { + card-quirks |= MMC_QUIRK_NONSTD_SDIO; + card-cccr.wide_bus = 1; + card-cis.vendor = 0x104c; + card-cis.device = 0x9066; + card-cis.blksize = 512; + card-cis.max_dtr = 2000; + } } static struct omap2_hsmmc_info omap3pandora_mmc[] = { diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c index 02ad792..4a21d66 100644 --- a/drivers/mmc/core/mmc.c +++ b/drivers/mmc/core/mmc.c @@ -1297,6 +1297,12 @@ static int mmc_init_card(struct mmc_host *host, u32 ocr, } /* + * Call the optional HC's init_card function to handle quirks. + */ + if (host-ops-init_card) + host-ops-init_card(host, card); + + /* * For native busses: set card RCA and quit open drain mode. */ if (!mmc_host_is_spi(host)) { diff --git a/drivers/mmc/core/sd.c b/drivers/mmc/core/sd.c index d90a6de..29fccdc 100644 --- a/drivers/mmc/core/sd.c +++ b/drivers/mmc/core/sd.c @@ -933,6 +933,12 @@ static int mmc_sd_init_card(struct mmc_host *host, u32 ocr, } /* + * Call the optional HC's init_card function to handle quirks. + */ + if (host-ops-init_card) + host-ops-init_card(host, card); + + /* * For native busses: get card RCA and quit open drain mode. */ if (!mmc_host_is_spi(host)) { @@ -1271,4 +1277,3 @@ err: return err; } - -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH v5 0/4] Fixes for SDIO interrupts for dw_mmc
Bing Zhao at Marvell found a problem with dw_mmc where interrupts weren't firing sometimes. He tracked it down to a read-modify-write problem with the INTMASK. These patches fix the problem. Note: I've picked up a 1-year old series here to make another attempt at landing it upstream. These patches have been in shipping Chromebooks for the last year. Note that v3 to v4 has no changes other than a rebase and a small commit message update. The first two patches extend the init_card() mechanism of MMC core to actually be called for all card types, not just SDIO. That could be applied any time and should fix at least one longstanding bug (untested). The third patch is a cleanup patch to use init_card() to move things around a bit so we don't need to handle SDIO cards in such a strange place. On earlier versions of this patch Seungwon brought up a few points which I have _not_ addressed. See https://patchwork.kernel.org/patch/3049071/. Other than talk of cards with out of band interrupts maybe being able to gate their clocks, he wanted to use MMC_QUIRK_BROKEN_CLK_GATING. I didn't do that because of the ordering of init_card() and when the quirks are set. Some users of init_card() like pandora_wl1251_init_card() rely on it being called very early in the process. pandora_wl1251_init_card() hardcodes a vendor and device and thus need to be called super early. On the other hand the code that adds quirks _reads_ the vendor and device. It can't possibly move before init_card(). If folks are willing to take an additional host op of init_card_late() I can certainly go that way, though. The fourth patch is (I think) reviewed and ready to go assuming the other two land. Changes in v5: - Split fixup to pandora_wl1251_init_card() into its own patch. Changes in v3: - Add fixup to pandora_wl1251_init_card(). Changes in v2: - mmc core change new for this version. - Fixed | to . - intmask_lock renamed to irq_lock Doug Anderson (4): ARM: OMAP2+: Make sure pandora_wl1251_init_card() applies to SDIO only mmc: core: Support the optional init_card() callback for MMC and SD mmc: dw_mmc: Cleanup disable of low power mode w/ SDIO interrupts mmc: dw_mmc: Protect read-modify-write of INTMASK with a lock arch/arm/mach-omap2/board-omap3pandora.c | 14 +++--- drivers/mmc/core/mmc.c | 6 +++ drivers/mmc/core/sd.c| 7 ++- drivers/mmc/host/dw_mmc.c| 80 +++- drivers/mmc/host/dw_mmc.h| 1 + include/linux/mmc/dw_mmc.h | 6 +++ 6 files changed, 74 insertions(+), 40 deletions(-) -- 2.2.0.rc0.207.ga3a616c -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH v5 1/4] ARM: OMAP2+: Make sure pandora_wl1251_init_card() applies to SDIO only
In preparation for having init_card() called for all card types (not just SDIO), change pandora_wl1251_init_card() so it checks whether the card type is SDIO. Signed-off-by: Doug Anderson diand...@chromium.org --- Changes in v5: - Split fixup to pandora_wl1251_init_card() into its own patch. Changes in v3: None Changes in v2: None arch/arm/mach-omap2/board-omap3pandora.c | 14 -- 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/arch/arm/mach-omap2/board-omap3pandora.c b/arch/arm/mach-omap2/board-omap3pandora.c index 7f17087..969e100 100644 --- a/arch/arm/mach-omap2/board-omap3pandora.c +++ b/arch/arm/mach-omap2/board-omap3pandora.c @@ -254,12 +254,14 @@ static void pandora_wl1251_init_card(struct mmc_card *card) * We have TI wl1251 attached to MMC3. Pass this information to * SDIO core because it can't be probed by normal methods. */ - card-quirks |= MMC_QUIRK_NONSTD_SDIO; - card-cccr.wide_bus = 1; - card-cis.vendor = 0x104c; - card-cis.device = 0x9066; - card-cis.blksize = 512; - card-cis.max_dtr = 2000; + if (card-type == MMC_TYPE_SDIO || card-type == MMC_TYPE_SD_COMBO) { + card-quirks |= MMC_QUIRK_NONSTD_SDIO; + card-cccr.wide_bus = 1; + card-cis.vendor = 0x104c; + card-cis.device = 0x9066; + card-cis.blksize = 512; + card-cis.max_dtr = 2000; + } } static struct omap2_hsmmc_info omap3pandora_mmc[] = { -- 2.2.0.rc0.207.ga3a616c -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v4 1/3] mmc: core: Support the optional init_card() callback for MMC and SD
Jaehoon, On Tue, Dec 2, 2014 at 3:15 PM, Jaehoon Chung jh80.ch...@samsung.com wrote: Hi Doug. I think good that this patch is separated to two patches. (board file and codes relevant to mmc.) Yes, good idea. I've spun v5 with this. -Doug -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH] gpio / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
From: Rafael J. Wysocki rafael.j.wyso...@intel.com After commit b2b49ccbdd54 (PM: Kconfig: Set PM_RUNTIME if PM_SLEEP is selected) PM_RUNTIME is always set if PM is set, so #ifdef blocks depending on CONFIG_PM_RUNTIME may now be changed to depend on CONFIG_PM. Replace CONFIG_PM_RUNTIME with CONFIG_PM in drivers/gpio/gpio-omap.c. Signed-off-by: Rafael J. Wysocki rafael.j.wyso...@intel.com --- Note: This depends on commit b2b49ccbdd54 (PM: Kconfig: Set PM_RUNTIME if PM_SLEEP is selected) which is only in linux-next at the moment (via the linux-pm tree). Please let me know if it is OK to take this one into linux-pm. --- drivers/gpio/gpio-omap.c |8 1 file changed, 4 insertions(+), 4 deletions(-) Index: linux-pm/drivers/gpio/gpio-omap.c === --- linux-pm.orig/drivers/gpio/gpio-omap.c +++ linux-pm/drivers/gpio/gpio-omap.c @@ -1259,7 +1259,7 @@ static int omap_gpio_probe(struct platfo #ifdef CONFIG_ARCH_OMAP2PLUS -#if defined(CONFIG_PM_RUNTIME) +#if defined(CONFIG_PM) static void omap_gpio_restore_context(struct gpio_bank *bank); static int omap_gpio_runtime_suspend(struct device *dev) @@ -1440,7 +1440,7 @@ static int omap_gpio_runtime_resume(stru return 0; } -#endif /* CONFIG_PM_RUNTIME */ +#endif /* CONFIG_PM */ void omap2_gpio_prepare_for_idle(int pwr_mode) { @@ -1468,7 +1468,7 @@ void omap2_gpio_resume_after_idle(void) } } -#if defined(CONFIG_PM_RUNTIME) +#if defined(CONFIG_PM) static void omap_gpio_init_context(struct gpio_bank *p) { struct omap_gpio_reg_offs *regs = p-regs; @@ -1525,7 +1525,7 @@ static void omap_gpio_restore_context(st writel_relaxed(bank-context.irqenable2, bank-base + bank-regs-irqenable2); } -#endif /* CONFIG_PM_RUNTIME */ +#endif /* CONFIG_PM */ #else #define omap_gpio_runtime_suspend NULL #define omap_gpio_runtime_resume NULL -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH] i2c-omap / PM: Drop CONFIG_PM_RUNTIME from i2c-omap.c
From: Rafael J. Wysocki rafael.j.wyso...@intel.com After commit b2b49ccbdd54 (PM: Kconfig: Set PM_RUNTIME if PM_SLEEP is selected) PM_RUNTIME is always set if PM is set, so some #ifdef blocks depending on CONFIG_PM_RUNTIME may be dropped now. Do that in drivers/i2c/busses/i2c-omap.c. Signed-off-by: Rafael J. Wysocki rafael.j.wyso...@intel.com --- Note: This depends on commit b2b49ccbdd54 (PM: Kconfig: Set PM_RUNTIME if PM_SLEEP is selected) which is only in linux-next at the moment (via the linux-pm tree). Please let me know if it is OK to take this one into linux-pm. --- drivers/i2c/busses/i2c-omap.c |2 -- 1 file changed, 2 deletions(-) Index: linux-pm/drivers/i2c/busses/i2c-omap.c === --- linux-pm.orig/drivers/i2c/busses/i2c-omap.c +++ linux-pm/drivers/i2c/busses/i2c-omap.c @@ -1280,7 +1280,6 @@ static int omap_i2c_remove(struct platfo } #ifdef CONFIG_PM -#ifdef CONFIG_PM_RUNTIME static int omap_i2c_runtime_suspend(struct device *dev) { struct platform_device *pdev = to_platform_device(dev); @@ -1318,7 +1317,6 @@ static int omap_i2c_runtime_resume(struc return 0; } -#endif /* CONFIG_PM_RUNTIME */ static struct dev_pm_ops omap_i2c_pm_ops = { SET_RUNTIME_PM_OPS(omap_i2c_runtime_suspend, -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH] hsi / OMAP / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
From: Rafael J. Wysocki rafael.j.wyso...@intel.com After commit b2b49ccbdd54 (PM: Kconfig: Set PM_RUNTIME if PM_SLEEP is selected) PM_RUNTIME is always set if PM is set, so #ifdef blocks depending on CONFIG_PM_RUNTIME may now be changed to depend on CONFIG_PM. Do that for the omap_ssi driver. Signed-off-by: Rafael J. Wysocki rafael.j.wyso...@intel.com --- Note: This depends on commit b2b49ccbdd54 (PM: Kconfig: Set PM_RUNTIME if PM_SLEEP is selected) which is only in linux-next at the moment (via the linux-pm tree). Please let me know if it is OK to take this one into linux-pm. --- drivers/hsi/controllers/omap_ssi.c |2 +- drivers/hsi/controllers/omap_ssi_port.c |2 +- 2 files changed, 2 insertions(+), 2 deletions(-) Index: linux-pm/drivers/hsi/controllers/omap_ssi.c === --- linux-pm.orig/drivers/hsi/controllers/omap_ssi.c +++ linux-pm/drivers/hsi/controllers/omap_ssi.c @@ -555,7 +555,7 @@ static int __exit ssi_remove(struct plat return 0; } -#ifdef CONFIG_PM_RUNTIME +#ifdef CONFIG_PM static int omap_ssi_runtime_suspend(struct device *dev) { struct hsi_controller *ssi = dev_get_drvdata(dev); Index: linux-pm/drivers/hsi/controllers/omap_ssi_port.c === --- linux-pm.orig/drivers/hsi/controllers/omap_ssi_port.c +++ linux-pm/drivers/hsi/controllers/omap_ssi_port.c @@ -1260,7 +1260,7 @@ static int __exit ssi_port_remove(struct return 0; } -#ifdef CONFIG_PM_RUNTIME +#ifdef CONFIG_PM static int ssi_save_port_ctx(struct omap_ssi_port *omap_port) { struct hsi_port *port = to_hsi_port(omap_port-dev); -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] hsi / OMAP / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
Hi, On Wed, Dec 03, 2014 at 03:02:24AM +0100, Rafael J. Wysocki wrote: After commit b2b49ccbdd54 (PM: Kconfig: Set PM_RUNTIME if PM_SLEEP is selected) PM_RUNTIME is always set if PM is set, so #ifdef blocks depending on CONFIG_PM_RUNTIME may now be changed to depend on CONFIG_PM. Do that for the omap_ssi driver. Signed-off-by: Rafael J. Wysocki rafael.j.wyso...@intel.com Acked-By: Sebastian Reichel s...@kernel.org -- Sebastian signature.asc Description: Digital signature
Re: [PATCH] gpio / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
On Wed, Dec 3, 2014 at 10:50 AM, Rafael J. Wysocki r...@rjwysocki.net wrote: From: Rafael J. Wysocki rafael.j.wyso...@intel.com After commit b2b49ccbdd54 (PM: Kconfig: Set PM_RUNTIME if PM_SLEEP is selected) PM_RUNTIME is always set if PM is set, so #ifdef blocks depending on CONFIG_PM_RUNTIME may now be changed to depend on CONFIG_PM. Replace CONFIG_PM_RUNTIME with CONFIG_PM in drivers/gpio/gpio-omap.c. Signed-off-by: Rafael J. Wysocki rafael.j.wyso...@intel.com Acked-by: Alexandre Courbot acour...@nvidia.com -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: OMAP baseline test results for v3.18-rc7
Hi Paul, On 12/02/14 20:39, Paul Walmsley wrote: Here are some basic OMAP test results for Linux v3.18-rc7. Logs and other details at: http://www.pwsan.com/omap/testlogs/test_v3.18-rc7/20141201203859/ Test summary [...] Build: uImage+dtb: Pass (13/13): omap2plus_defconfig_am33xx_only/am335x-bone, omap2plus_defconfig/omap4-panda, omap2plus_defconfig/omap4-panda-es, omap2plus_defconfig/omap4-var-som, omap2plus_defconfig/omap3-evm-37xx, omap2plus_defconfig_n800_only_a/omap2420-n800, omap2plus_defconfig/omap2430-sdp, omap2plus_defconfig/am3517-evm, omap2plus_defconfig/omap3-beagle, omap2plus_defconfig/omap3-beagle-xm, omap2plus_defconfig/omap3-sbc-t3517, omap2plus_defconfig/omap5-uevm, omap2plus_defconfig/omap5-sbc-t54 [...] Boot to userspace: FAIL ( 1/16): 2430sdp skip ( 2/16): 5912osk, 3517evm Pass (13/16): am335xbonelt, am335xbone, 4430es2panda, 4460pandaes, 4460varsomom, 37xxevm, 3530es3beagle, 3530es31beagle, 3730beaglexm, 3730es12beaglexm, 5430es2uevm, 5430es2sbct54, 2420n800 I've looked at the boot log and it seems cm-t3517 is booting just fine... A problem with the test/report collecting script? 5912osk is not listed by the link above, but there are indeed 16 entries... [...] -- Regards, Igor. -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html