[build errro on for-next branch] RE: [1/3] omap3evm: ehci: Add EHCI padconfig for board Rev = E
Hi, * Ajay Kumar Gupta ajay.gu...@ti.com [091028 16:12]: OMAP3EVM (Rev = E) has EHCI port on main board itself. Apart from this there is a slot to connect Mistral Daughter Card (MDC) to it which also has one EHCI port. Only one EHCI port can be used at a time and we can choose the port using GPIO61. These are the new GPIO lines used for different purpose on EHCI interface. - GPIO21 - EHCI phy reset - GPIO22 - EHCI VBUS enable - GPIO61 - Selects EHCI port either on main board or on Mistral Daughter Card (MDC). Let's put this on hold until we have the new mux framework. Should be trivial to do then. Tony, Another patch [1] which depends on this is already merged to 'for-next' branch causing a compilation error. [1] omap3evm: ehci: Update EHCI support on OMAP3EVM (Rev = E) So either revert the above patch from 'for-next' or merge the pinmux patch also. Regards, Ajay Tony Signed-off-by: Ajay Kumar Gupta ajay.gu...@ti.com --- arch/arm/mach-omap2/mux.c |7 +++ arch/arm/plat-omap/include/plat/mux.h |5 + 2 files changed, 12 insertions(+), 0 deletions(-) diff --git a/arch/arm/mach-omap2/mux.c b/arch/arm/mach-omap2/mux.c index 32c953e..00ad592 100644 --- a/arch/arm/mach-omap2/mux.c +++ b/arch/arm/mach-omap2/mux.c @@ -551,6 +551,13 @@ MUX_CFG_34XX(AF13_3430_MMC3_DAT3, 0x5e2, MUX_CFG_34XX(AF26_34XX_SYS_NIRQ, 0x1E0, OMAP3_WAKEUP_EN | OMAP34XX_PIN_INPUT_PULLUP | OMAP34XX_MUX_MODE0) +/* EHCI GPIO's on OMAP3EVM (Rev = E) */ +MUX_CFG_34XX(AH14_34XX_GPIO21, 0x5ea, + OMAP34XX_MUX_MODE4 | OMAP34XX_PIN_INPUT_PULLUP) +MUX_CFG_34XX(AF9_34XX_GPIO22, 0x5ec, + OMAP34XX_MUX_MODE4 | OMAP34XX_PIN_INPUT_PULLUP) +MUX_CFG_34XX(U3_34XX_GPIO61, 0x0c8, + OMAP34XX_MUX_MODE4 | OMAP34XX_PIN_INPUT_PULLUP) }; #define OMAP34XX_PINS_SZ ARRAY_SIZE(omap34xx_pins) diff --git a/arch/arm/plat-omap/include/plat/mux.h b/arch/arm/plat- omap/include/plat/mux.h index f3c1d8a..8316d4f 100644 --- a/arch/arm/plat-omap/include/plat/mux.h +++ b/arch/arm/plat-omap/include/plat/mux.h @@ -840,6 +840,11 @@ enum omap34xx_index { /* SYS_NIRQ T2 INT1 */ AF26_34XX_SYS_NIRQ, + + /* EHCI GPIO's for OMAP3EVM (Rev = E) */ + AH14_34XX_GPIO21, + AF9_34XX_GPIO22, + U3_34XX_GPIO61, }; struct omap_mux_cfg { -- 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] omap3evm: MIgrate to smsc911x ethernet driver.
Migrate to smsc911x ethernet driver instead of smc911x driver. The smsc911x ethernet driver supports NAPI and performs better under heavy traffic. With the smc911x driver we were witnessing very high iowait time for high IO load over NFS. Signed-off-by: Sriramakrishnan s...@ti.com --- This patch has been refreshed against the tip of for-next branch. Tested by reverting commit 20dec08ce892df224 as it was breaking compilation otherwise. arch/arm/configs/omap3_evm_defconfig |4 +- arch/arm/mach-omap2/board-omap3evm.c | 43 +++-- 2 files changed, 32 insertions(+), 15 deletions(-) diff --git a/arch/arm/configs/omap3_evm_defconfig b/arch/arm/configs/omap3_evm_defconfig index da69732..e190fc8 100644 --- a/arch/arm/configs/omap3_evm_defconfig +++ b/arch/arm/configs/omap3_evm_defconfig @@ -617,8 +617,8 @@ CONFIG_MII=y # CONFIG_DM9000 is not set # CONFIG_ENC28J60 is not set # CONFIG_ETHOC is not set -CONFIG_SMC911X=y -# CONFIG_SMSC911X is not set +# CONFIG_SMC911X is not set +CONFIG_SMSC911X=y # CONFIG_DNET is not set # CONFIG_IBM_NEW_EMAC_ZMII is not set # CONFIG_IBM_NEW_EMAC_RGMII is not set diff --git a/arch/arm/mach-omap2/board-omap3evm.c b/arch/arm/mach-omap2/board-omap3evm.c index be93142..e8a7617 100644 --- a/arch/arm/mach-omap2/board-omap3evm.c +++ b/arch/arm/mach-omap2/board-omap3evm.c @@ -22,11 +22,13 @@ #include linux/input.h #include linux/input/matrix_keypad.h #include linux/leds.h +#include linux/interrupt.h #include linux/spi/spi.h #include linux/spi/ads7846.h #include linux/i2c/twl4030.h #include linux/usb/otg.h +#include linux/smsc911x.h #include linux/regulator/machine.h @@ -52,7 +54,7 @@ #define OMAP3EVM_ETHR_SIZE 1024 #define OMAP3EVM_ETHR_ID_REV 0x50 #define OMAP3EVM_ETHR_GPIO_IRQ 176 -#define OMAP3EVM_SMC911X_CS5 +#define OMAP3EVM_SMSC911X_CS 5 static u8 omap3_evm_version; @@ -84,7 +86,8 @@ static void __init omap3_evm_get_revision(void) } } -static struct resource omap3evm_smc911x_resources[] = { +#if defined(CONFIG_SMSC911X) || defined(CONFIG_SMSC911X_MODULE) +static struct resource omap3evm_smsc911x_resources[] = { [0] = { .start = OMAP3EVM_ETHR_START, .end= (OMAP3EVM_ETHR_START + OMAP3EVM_ETHR_SIZE - 1), @@ -93,24 +96,34 @@ static struct resource omap3evm_smc911x_resources[] = { [1] = { .start = OMAP_GPIO_IRQ(OMAP3EVM_ETHR_GPIO_IRQ), .end= OMAP_GPIO_IRQ(OMAP3EVM_ETHR_GPIO_IRQ), - .flags = IORESOURCE_IRQ, + .flags = (IORESOURCE_IRQ | IRQF_TRIGGER_LOW), }, }; -static struct platform_device omap3evm_smc911x_device = { - .name = smc911x, +static struct smsc911x_platform_config smsc911x_config = { + .phy_interface = PHY_INTERFACE_MODE_MII, + .irq_polarity = SMSC911X_IRQ_POLARITY_ACTIVE_LOW, + .irq_type = SMSC911X_IRQ_TYPE_OPEN_DRAIN, + .flags = (SMSC911X_USE_32BIT | SMSC911X_SAVE_MAC_ADDRESS), +}; + +static struct platform_device omap3evm_smsc911x_device = { + .name = smsc911x, .id = -1, - .num_resources = ARRAY_SIZE(omap3evm_smc911x_resources), - .resource = omap3evm_smc911x_resources[0], + .num_resources = ARRAY_SIZE(omap3evm_smsc911x_resources), + .resource = omap3evm_smsc911x_resources[0], + .dev= { + .platform_data = smsc911x_config, + }, }; -static inline void __init omap3evm_init_smc911x(void) +static inline void __init omap3evm_init_smsc911x(void) { int eth_cs; struct clk *l3ck; unsigned int rate; - eth_cs = OMAP3EVM_SMC911X_CS; + eth_cs = OMAP3EVM_SMSC911X_CS; l3ck = clk_get(NULL, l3_ck); if (IS_ERR(l3ck)) @@ -118,15 +131,20 @@ static inline void __init omap3evm_init_smc911x(void) else rate = clk_get_rate(l3ck); - if (gpio_request(OMAP3EVM_ETHR_GPIO_IRQ, SMC911x irq) 0) { - printk(KERN_ERR Failed to request GPIO%d for smc911x IRQ\n, + if (gpio_request(OMAP3EVM_ETHR_GPIO_IRQ, SMSC911x irq) 0) { + printk(KERN_ERR Failed to request GPIO%d for smsc911x IRQ\n, OMAP3EVM_ETHR_GPIO_IRQ); return; } gpio_direction_input(OMAP3EVM_ETHR_GPIO_IRQ); + platform_device_register(omap3evm_smsc911x_device); } +#else +static inline void __init omap3evm_init_smsc911x(void) { return; } +#endif + static struct regulator_consumer_supply omap3evm_vmmc1_supply = { .supply = vmmc, }; @@ -368,12 +386,10 @@ static void __init omap3_evm_init_irq(void) omap2_init_common_hw(mt46h32m32lf6_sdrc_params, NULL); omap_init_irq(); omap_gpio_init(); - omap3evm_init_smc911x(); } static struct platform_device *omap3_evm_devices[] __initdata = { omap3_evm_lcd_device, -
Re: [PATCH 00/19] OMAP: DSS2 v5 intro
Hi, On Thu, 2009-11-12 at 21:48 +0100, ext Stephen Rothwell wrote: Hi Tony, Tomi, On Thu, 12 Nov 2009 10:14:57 -0800 Tony Lindgren t...@atomide.com wrote: OK. The only dependency is the the move of the headers. Tomi, can you please rebase your patches on top of the 7xx-iosplit-plat-merge branch in linux-omap tree? This is commit 8171d88089ad63fc442b2bf32af7c18653adc5cb, and it should stay static. OK, *if* you (Tony) guarantee that the base is stable (i.e. never rebased, but may have things added to it) and in linux-next, then I can take the DSS2 stuff separately if you want me to. Tomi, you can, of course, merge that branch into your tree instead of rebasing on top of it (which ever is easiest). I rebased DSS2 on top of 8171d88089ad63fc442b2bf32af7c18653adc5cb. It can be found from git://gitorious.org/linux-omap-dss2/linux.git for-next branch. I'm ok with Tony pulling DSS2 to his next-branch, or Stephen pulling directly, which ever works easier for you. Tomi -- 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 v2 26/32] OMAP3: PM debug: allow runtime toggle of PM features
-Original Message- From: linux-omap-ow...@vger.kernel.org [mailto:linux-omap-ow...@vger.kernel.org] On Behalf Of Kevin Hilman Sent: Friday, October 23, 2009 4:40 AM To: linux-omap@vger.kernel.org Cc: linux-arm-ker...@lists.infradead.org Subject: [PATCH v2 26/32] OMAP3: PM debug: allow runtime toggle of PM features Allow enable/disable of low-power states during idle. To enable low-power idle: echo 1 /debug/pm_debug/sleep_while_idle to disable: echo 0 /debug/pm_debug/sleep_while_idle Also allow enable/disable of OFF-mode. To enable: echo 1 /debug/pm_debug/enable_off_mode to disable: echo 0 /debug/pm_debug/enable_off_mode Signed-off-by: Kevin Hilman khil...@deeprootsystems.com --- arch/arm/mach-omap2/pm-debug.c | 27 +++ arch/arm/mach-omap2/pm.h |4 arch/arm/mach-omap2/pm34xx.c | 22 ++ arch/arm/mach-omap2/serial.c |2 -- 4 files changed, 53 insertions(+), 2 deletions(-) diff --git a/arch/arm/mach-omap2/pm-debug.c b/arch/arm/mach-omap2/pm-debug.c index 7eb2c12..1725da3 100644 --- a/arch/arm/mach-omap2/pm-debug.c +++ b/arch/arm/mach-omap2/pm-debug.c @@ -527,6 +527,29 @@ static int __init pwrdms_setup(struct powerdomain *pwrdm, void *dir) return 0; } +static int option_get(void *data, u64 *val) +{ + u32 *option = data; + + *val = *option; + + return 0; +} + +static int option_set(void *data, u64 val) +{ + u32 *option = data; + + *option = val; + + if (option == enable_off_mode) + omap3_pm_off_mode_enable(val); + + return 0; +} + +DEFINE_SIMPLE_ATTRIBUTE(pm_dbg_option_fops, option_get, option_set, %llu\n); + static int __init pm_dbg_init(void) { int i; @@ -569,6 +592,10 @@ static int __init pm_dbg_init(void) } + (void) debugfs_create_file(enable_off_mode, S_IRUGO | S_IWUGO, d, +enable_off_mode, pm_dbg_option_fops); + (void) debugfs_create_file(sleep_while_idle, S_IRUGO | S_IWUGO, d, +sleep_while_idle, pm_dbg_option_fops); pm_dbg_init_done = 1; return 0; diff --git a/arch/arm/mach-omap2/pm.h b/arch/arm/mach-omap2/pm.h index 45cafac..9582793 100644 --- a/arch/arm/mach-omap2/pm.h +++ b/arch/arm/mach-omap2/pm.h @@ -13,7 +13,11 @@ #include plat/powerdomain.h +extern u32 enable_off_mode; +extern u32 sleep_while_idle; + extern void *omap3_secure_ram_storage; +extern void omap3_pm_off_mode_enable(int); extern int omap3_pm_get_suspend_state(struct powerdomain *pwrdm); extern int omap3_pm_set_suspend_state(struct powerdomain *pwrdm, int state); diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c index 90d1dc5..ade2e4a 100644 --- a/arch/arm/mach-omap2/pm34xx.c +++ b/arch/arm/mach-omap2/pm34xx.c @@ -25,6 +25,7 @@ #include linux/list.h #include linux/err.h #include linux/gpio.h +#include linux/clk.h #include plat/sram.h #include plat/clockdomain.h @@ -57,6 +58,9 @@ #define OMAP343X_TABLE_VALUE_OFFSET 0x30 #define OMAP343X_CONTROL_REG_VALUE_OFFSET 0x32 +u32 enable_off_mode; +u32 sleep_while_idle; + struct power_state { struct powerdomain *pwrdm; u32 next_state; @@ -456,6 +460,8 @@ static int omap3_fclks_active(void) static int omap3_can_sleep(void) { + if (!sleep_while_idle) + return 0; if (!omap_uart_can_sleep()) return 0; if (omap3_fclks_active()) @@ -900,6 +906,22 @@ static void __init prcm_setup_regs(void) omap3_d2d_idle(); } +void omap3_pm_off_mode_enable(int enable) +{ + struct power_state *pwrst; + u32 state; + + if (enable) + state = PWRDM_POWER_OFF; + else + state = PWRDM_POWER_RET; + + list_for_each_entry(pwrst, pwrst_list, node) { + pwrst-next_state = state; + set_pwrdm_state(pwrst-pwrdm, state); Shld the next states of MPU and CORE domain also be changed? It should happen only in idle thread or system suspend path. Not at any arbit point where user sets enable_off_mode. + } +} + int omap3_pm_get_suspend_state(struct powerdomain *pwrdm) { struct power_state *pwrst; diff --git a/arch/arm/mach-omap2/serial.c b/arch/arm/mach-omap2/serial.c index dabc089..2e17b57 100644 --- a/arch/arm/mach-omap2/serial.c +++ b/arch/arm/mach-omap2/serial.c @@ -155,8 +155,6 @@ static inline void __init omap_uart_reset(struct omap_uart_state *uart) #if defined(CONFIG_PM) defined(CONFIG_ARCH_OMAP3) -static int enable_off_mode; /* to be removed by full off-mode patches */ - static void omap_uart_save_context(struct omap_uart_state *uart) { u16 lcr = 0; -- 1.6.4.3 -- 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 -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to
[PATCH v2] omap3: Change the default silicon
Currently the default silicon - in absence of identification - is set to OMAP3630 ES1.0. Though, condition may/should not arise; but the default should be latest in the most common silicon variant - currently OMAP3430 ES3.1. Signed-off-by: Sanjeev Premi pr...@ti.com --- arch/arm/mach-omap2/id.c |4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c index 1c15112..7098e12 100644 --- a/arch/arm/mach-omap2/id.c +++ b/arch/arm/mach-omap2/id.c @@ -243,8 +243,8 @@ void __init omap3_check_revision(void) } break; default: - /* Unknown default to latest silicon rev as default*/ - omap_revision = OMAP3630_REV_ES1_0; + /* Unknown. Default to most common among all variants */ + omap_revision = OMAP3430_REV_ES3_1; } } -- 1.6.2.2 -- 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] omap3: Change the default silicon
Premi, Sanjeev had written, on 11/13/2009 04:10 AM, the following: -Original Message- From: Gadiyar, Anand Sent: Friday, November 13, 2009 10:41 AM To: Tony Lindgren; Premi, Sanjeev Cc: linux-omap@vger.kernel.org Subject: RE: [PATCH] omap3: Change the default silicon Tony Lindgren wrote: * Sanjeev Premi pr...@ti.com [091029 07:35]: Currently the default silicon - in absence of identification - is set to OMAP3630 ES1.0. Though, condition may/should not arise; but the default should be latest in the most common silicon variant - currently OMAP3430 ES3.1. Is this still needed? To me it seems more likely there will more 3630 based silicon than 3430 based silicon? 3430 ES3.1s are the most common I believe. All boards in the wild are 3430 based. 3630 is just coming up and will take a while to be as common. IMO, 3430 ES3.1 should be default. - Anand [sp] That's exactly the reason for this patch. There is a small typo in the comment though :( /* Unknown. Default to latest among all variants */ Should be: /* Unknown. Default to common among all variants */ Sending a v2 for the same. I believe this patch should be dropped - here is why - if you have new silicons that are in 3430 category, you should be sending patches for them ;).. The latest and greatest in the bucket of silicons is 3630 and I would rather go with felipe's patch [1] cleaning up the id.c than this - in my opinion, hitting this condition is only because you have the next generation of devices.. -- Regards, Nishanth Menon Ref: [1]: http://patchwork.kernel.org/patch/59540/ -- 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] omap3: Change the default silicon
-Original Message- From: Gadiyar, Anand Sent: Friday, November 13, 2009 10:41 AM To: Tony Lindgren; Premi, Sanjeev Cc: linux-omap@vger.kernel.org Subject: RE: [PATCH] omap3: Change the default silicon Tony Lindgren wrote: * Sanjeev Premi pr...@ti.com [091029 07:35]: Currently the default silicon - in absence of identification - is set to OMAP3630 ES1.0. Though, condition may/should not arise; but the default should be latest in the most common silicon variant - currently OMAP3430 ES3.1. Is this still needed? To me it seems more likely there will more 3630 based silicon than 3430 based silicon? 3430 ES3.1s are the most common I believe. All boards in the wild are 3430 based. 3630 is just coming up and will take a while to be as common. IMO, 3430 ES3.1 should be default. - Anand [sp] That's exactly the reason for this patch. There is a small typo in the comment though :( /* Unknown. Default to latest among all variants */ Should be: /* Unknown. Default to common among all variants */ Sending a v2 for the same. ~sanjeev Regards, Tony Signed-off-by: Sanjeev Premi pr...@ti.com --- arch/arm/mach-omap2/id.c |4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c index 1c15112..0162623 100644 --- a/arch/arm/mach-omap2/id.c +++ b/arch/arm/mach-omap2/id.c @@ -243,8 +243,8 @@ void __init omap3_check_revision(void) } break; default: - /* Unknown default to latest silicon rev as default*/ - omap_revision = OMAP3630_REV_ES1_0; + /* Unknown. Default to latest among all variants */ + omap_revision = OMAP3430_REV_ES3_1; } } -- 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 1/1] DSPBRIDGE: cache operation against kernel address instead of user's
From: Doyu Hiroshi (Nokia-D/Helsinki) hiroshi.d...@nokia.com Subject: [PATCH 1/1] DSPBRIDGE: cache operation against kernel address instead of user's Date: Fri, 6 Nov 2009 13:34:21 +0100 From: Hiroshi DOYU hiroshi.d...@nokia.com Based on the discussion: http://www.spinics.net/lists/arm-kernel/msg72810.html HACK: export follow_page() for dspbridge cache operation Signed-off-by: Hiroshi DOYU hiroshi.d...@nokia.com --- drivers/dsp/bridge/rmgr/proc.c | 76 +++- mm/memory.c|1 + 2 files changed, 60 insertions(+), 17 deletions(-) diff --git a/drivers/dsp/bridge/rmgr/proc.c b/drivers/dsp/bridge/rmgr/proc.c index a75b64a..dc37beb 100644 --- a/drivers/dsp/bridge/rmgr/proc.c +++ b/drivers/dsp/bridge/rmgr/proc.c @@ -159,6 +159,8 @@ #define PWR_TIMEOUT 500/* Sleep/wake timout in msec */ #define EXTEND _EXT_END/* Extmem end addr in DSP binary */ +#define DSP_CACHE_LINE 128 + extern char *iva_img; /* --- Globals */ @@ -679,8 +681,48 @@ DSP_STATUS PROC_EnumNodes(DSP_HPROCESSOR hProcessor, OUT DSP_HNODE *aNodeTab, return status; } +/* Cache operation against kernel address instead of users */ +static int memory_sync_page(struct vm_area_struct *vma, unsigned long start, + ssize_t len, enum DSP_FLUSHTYPE ftype) +{ + struct page *page; + void *kaddr; + unsigned long offset; + ssize_t rest; + +#ifdef CHECK_DSP_CACHE_LINE + if ((start DSP_CACHE_LINE) || (len DSP_CACHE_LINE)) + pr_warning(%s: not aligned: %08lx(%d)\n, __func__, +start, len); +#endif + while (len) { + page = follow_page(vma, start, FOLL_GET); + if (!page) { + pr_err(%s: no page for %08lx\n, __func__, start); + return -EINVAL; + } else if (IS_ERR(page)) { + pr_err(%s: err page for %08lx(%lu)\n, __func__, start, +IS_ERR(page)); + return IS_ERR(page); + } + + offset = start ~PAGE_SIZE; should be: + offset = start ~PAGE_MASK; The fixed version is attached. 0001-DSPBRIDGE-cache-operation-against-kernel-address-in.patch Description: Binary data
RE: [PATCH] omap3: Change the default silicon
-Original Message- From: Menon, Nishanth Sent: Friday, November 13, 2009 3:46 PM To: Premi, Sanjeev Cc: Gadiyar, Anand; Tony Lindgren; linux-omap@vger.kernel.org Subject: Re: [PATCH] omap3: Change the default silicon Premi, Sanjeev had written, on 11/13/2009 04:10 AM, the following: -Original Message- From: Gadiyar, Anand Sent: Friday, November 13, 2009 10:41 AM To: Tony Lindgren; Premi, Sanjeev Cc: linux-omap@vger.kernel.org Subject: RE: [PATCH] omap3: Change the default silicon Tony Lindgren wrote: * Sanjeev Premi pr...@ti.com [091029 07:35]: Currently the default silicon - in absence of identification - is set to OMAP3630 ES1.0. Though, condition may/should not arise; but the default should be latest in the most common silicon variant - currently OMAP3430 ES3.1. Is this still needed? To me it seems more likely there will more 3630 based silicon than 3430 based silicon? 3430 ES3.1s are the most common I believe. All boards in the wild are 3430 based. 3630 is just coming up and will take a while to be as common. IMO, 3430 ES3.1 should be default. - Anand [sp] That's exactly the reason for this patch. There is a small typo in the comment though :( /* Unknown. Default to latest among all variants */ Should be: /* Unknown. Default to common among all variants */ Sending a v2 for the same. I believe this patch should be dropped - here is why - if you have new silicons that are in 3430 category, you should be sending patches for them ;).. Default != new si The latest and greatest in the bucket of silicons is 3630 and I would rather go with felipe's patch [1] cleaning up the id.c than No issues with felipe's patch. It is cleaning the code style. this - in my opinion, hitting this condition is only because you have the next generation of devices.. Since we are talking OMAP3 derivatives, the default should be the base - in case the condition ever arises. The fall back should usually be 'most common' than 'latest'. ~sanjeev -- Regards, Nishanth Menon Ref: [1]: http://patchwork.kernel.org/patch/59540/ -- 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] omap3: Change the default silicon
Premi, Sanjeev had written, on 11/13/2009 04:53 AM, the following: -Original Message- From: Menon, Nishanth Sent: Friday, November 13, 2009 3:46 PM To: Premi, Sanjeev Cc: Gadiyar, Anand; Tony Lindgren; linux-omap@vger.kernel.org Subject: Re: [PATCH] omap3: Change the default silicon Premi, Sanjeev had written, on 11/13/2009 04:10 AM, the following: -Original Message- From: Gadiyar, Anand Sent: Friday, November 13, 2009 10:41 AM To: Tony Lindgren; Premi, Sanjeev Cc: linux-omap@vger.kernel.org Subject: RE: [PATCH] omap3: Change the default silicon Tony Lindgren wrote: * Sanjeev Premi pr...@ti.com [091029 07:35]: Currently the default silicon - in absence of identification - is set to OMAP3630 ES1.0. Though, condition may/should not arise; but the default should be latest in the most common silicon variant - currently OMAP3430 ES3.1. Is this still needed? To me it seems more likely there will more 3630 based silicon than 3430 based silicon? 3430 ES3.1s are the most common I believe. All boards in the wild are 3430 based. 3630 is just coming up and will take a while to be as common. IMO, 3430 ES3.1 should be default. - Anand [sp] That's exactly the reason for this patch. There is a small typo in the comment though :( /* Unknown. Default to latest among all variants */ Should be: /* Unknown. Default to common among all variants */ Sending a v2 for the same. I believe this patch should be dropped - here is why - if you have new silicons that are in 3430 category, you should be sending patches for them ;).. Default != new si IMHO, I would rather have it as a BUG() instead of giving something default there.. essentially hitting that case points at: hey here is a chip the programmers did not think about, let me be smart and try to dream up what they might be using - lets face it, our code aint' that smart.. we have two options: a) Make a guess what it might be b) force the programmer to fix the bug and send us the patch ;).. just my 2 cents.. The latest and greatest in the bucket of silicons is 3630 and I would rather go with felipe's patch [1] cleaning up the id.c than No issues with felipe's patch. It is cleaning the code style. this - in my opinion, hitting this condition is only because you have the next generation of devices.. Since we are talking OMAP3 derivatives, the default should be the base - in case the condition ever arises. The fall back should usually be 'most common' than 'latest'. ~sanjeev -- Regards, Nishanth Menon Ref: [1]: http://patchwork.kernel.org/patch/59540/ -- 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
Re: [PATCH 3/4] Add support for DEVKIT8000 LCD
On Thu, 2009-11-12 at 17:14 +0100, ext Daniel Toussaint wrote: On Thu, Nov 12, 2009 at 7:46 PM, Tomi Valkeinen tomi.valkei...@nokia.com wrote: On Thu, 2009-11-12 at 11:23 +0100, ext Kim Botherway wrote: This patch add support for the Timll DEVKIT8000 LCD panel I don't handle old omapfb patches. I think you should contact Imre Deak for those, although my advise would be to use the new display subsystem driver. Question more or less related to this thread : when submitting new boards, it is better to work with DSS2 directly right ? I am also preparing a new board patch at this point, so I would like to know what is the sanest way to work ? Patch the linux-omap-2.6 tree with DSS2 patches , and then diff from there ? Or is is wiser to first submit without display related items, and wait for linux-omap-2.6 tree to have DSS2 support - which is going to happen soon I guess. Keep in mind that DSS2 is still a bit living target, you may need to do changes to your board file or panel driver every now and then. If that is ok for you, then I'd say DSS2 is better choice. I'd say if you can wait, submit the patches only after DSS2 has gone in. And I think at least the panel drivers should go through me, and I won't take any patches until the core DSS2 driver has been merged. Tomi -- 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 6/10] omap: mailbox: remove unnecessary arg for
From 27c97972080ba1fea6296ee59105aebd5ea4442a Mon Sep 17 00:00:00 2001 From: C A Subramaniam subramaniam...@ti.com Date: Thu, 12 Nov 2009 16:18:05 -0800 Subject: [PATCH 6/10] omap: mailbox: remove unnecessary arg for omap_mbox_msg_send Also removed from tx_data Signed-off-by: C A Subramaniam subramaniam...@ti.com Acked-by: Hiroshi DOYU hiroshi.d...@nokia.com Signed-off-by: Tony Lindgren t...@atomide.com --- arch/arm/plat-omap/include/plat/mailbox.h |2 +- arch/arm/plat-omap/mailbox.c |4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/arch/arm/plat-omap/include/plat/mailbox.h b/arch/arm/plat-omap/include/plat/mailbox.h index 319306a..8260a3f 100644 --- a/arch/arm/plat-omap/include/plat/mailbox.h +++ b/arch/arm/plat-omap/include/plat/mailbox.h @@ -63,7 +63,7 @@ struct omap_mbox { void(*err_notify)(void); }; -int omap_mbox_msg_send(struct omap_mbox *, mbox_msg_t msg, void *); +int omap_mbox_msg_send(struct omap_mbox *, mbox_msg_t msg); void omap_mbox_init_seq(struct omap_mbox *); struct omap_mbox *omap_mbox_get(const char *); diff --git a/arch/arm/plat-omap/mailbox.c b/arch/arm/plat-omap/mailbox.c index b49bb29..99ecf80 100644 --- a/arch/arm/plat-omap/mailbox.c +++ b/arch/arm/plat-omap/mailbox.c @@ -88,7 +88,6 @@ static int __mbox_msg_send(struct omap_mbox *mbox, mbox_msg_t msg) struct omap_msg_tx_data { mbox_msg_t msg; - void*arg; }; static void omap_msg_tx_end_io(struct request *rq, int error) @@ -97,7 +96,7 @@ static void omap_msg_tx_end_io(struct request *rq, int error) __blk_put_request(rq-q, rq); } -int omap_mbox_msg_send(struct omap_mbox *mbox, mbox_msg_t msg, void* arg) +int omap_mbox_msg_send(struct omap_mbox *mbox, mbox_msg_t msg) { struct omap_msg_tx_data *tx_data; struct request *rq; @@ -114,7 +113,6 @@ int omap_mbox_msg_send(struct omap_mbox *mbox, mbox_msg_t msg, void* arg) } tx_data-msg = msg; - tx_data-arg = arg; rq-end_io = omap_msg_tx_end_io; blk_insert_request(q, rq, 0, tx_data); -- 1.5.3.2 -- 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 7/10] omap mailbox: expose omap_mbox_enable()/disable_irq()
From 177e2efb7384c03ac445b55e2e4ccf44e2160051 Mon Sep 17 00:00:00 2001 From: C A Subramaniam subramaniam...@ti.com Date: Fri, 13 Nov 2009 15:04:57 +0530 Subject: [PATCH 7/10] omap mailbox: expose omap_mbox_enable()/disable_irq() Signed-off-by: Hiroshi DOYU hiroshi.d...@nokia.com --- arch/arm/plat-omap/include/plat/mailbox.h | 12 arch/arm/plat-omap/mailbox.c | 12 ++-- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/arch/arm/plat-omap/include/plat/mailbox.h b/arch/arm/plat-omap/include/plat/mailbox.h index 8260a3f..bf06953 100644 --- a/arch/arm/plat-omap/include/plat/mailbox.h +++ b/arch/arm/plat-omap/include/plat/mailbox.h @@ -92,4 +92,16 @@ static inline void omap_mbox_restore_ctx(struct omap_mbox *mbox) mbox-ops-restore_ctx(mbox); } +static inline void omap_mbox_enable_irq(struct omap_mbox *mbox, + omap_mbox_irq_t irq) +{ + mbox-ops-enable_irq(mbox, irq); +} + +static inline void omap_mbox_disable_irq(struct omap_mbox *mbox, +omap_mbox_irq_t irq) +{ + mbox-ops-disable_irq(mbox, irq); +} + #endif /* MAILBOX_H */ diff --git a/arch/arm/plat-omap/mailbox.c b/arch/arm/plat-omap/mailbox.c index eb76df2..d5377a3 100644 --- a/arch/arm/plat-omap/mailbox.c +++ b/arch/arm/plat-omap/mailbox.c @@ -50,14 +50,6 @@ static inline int mbox_fifo_full(struct omap_mbox *mbox) } /* Mailbox IRQ handle functions */ -static inline void enable_mbox_irq(struct omap_mbox *mbox, omap_mbox_irq_t irq) -{ - mbox-ops-enable_irq(mbox, irq); -} -static inline void disable_mbox_irq(struct omap_mbox *mbox, omap_mbox_irq_t irq) -{ - mbox-ops-disable_irq(mbox, irq); -} static inline void ack_mbox_irq(struct omap_mbox *mbox, omap_mbox_irq_t irq) { if (mbox-ops-ack_irq) @@ -144,7 +136,7 @@ static void mbox_tx_work(struct work_struct *work) ret = __mbox_msg_send(mbox, tx_data-msg); if (ret) { - enable_mbox_irq(mbox, IRQ_TX); + omap_mbox_enable_irq(mbox, IRQ_TX); spin_lock(q-queue_lock); blk_requeue_request(q, rq); spin_unlock(q-queue_lock); @@ -196,7 +188,7 @@ static void mbox_rxq_fn(struct request_queue *q) static void __mbox_tx_interrupt(struct omap_mbox *mbox) { - disable_mbox_irq(mbox, IRQ_TX); + omap_mbox_disable_irq(mbox, IRQ_TX); ack_mbox_irq(mbox, IRQ_TX); schedule_work(mbox-txq-work); } -- 1.5.3.2 -- 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 8/10] omap mailbox: OMAP4-Mailbox - Adds code changes to support OMAP4 mailbox
From 1a5865e67ce5fae94ae283882411cd01f48e07a7 Mon Sep 17 00:00:00 2001 From: C A Subramaniam subramaniam...@ti.com Date: Fri, 13 Nov 2009 16:42:40 +0530 Subject: [PATCH 8/10] omap mailbox: OMAP4-Mailbox - Adds code changes to support OMAP4 mailbox. This patch adds code changes in the mailbox driver module to add support for OMAP4 mailbox. Signed-off-by: Hari Kanigeri h-kanige...@ti.com Signed-off-by: C A Subramaniam subramaniam...@ti.com Signed-off-by: Ramesh Gupta G grgu...@ti.com --- arch/arm/mach-omap2/mailbox.c | 118 +++-- arch/arm/plat-omap/mailbox.c | 25 +++-- 2 files changed, 122 insertions(+), 21 deletions(-) diff --git a/arch/arm/mach-omap2/mailbox.c b/arch/arm/mach-omap2/mailbox.c index 5ba3aa6..3b21a5d 100644 --- a/arch/arm/mach-omap2/mailbox.c +++ b/arch/arm/mach-omap2/mailbox.c @@ -18,17 +18,26 @@ #include plat/mailbox.h #include mach/irqs.h +#define DRV_NAME omap2-mailbox + #define MAILBOX_REVISION 0x000 #define MAILBOX_SYSCONFIG 0x010 #define MAILBOX_SYSSTATUS 0x014 #define MAILBOX_MESSAGE(m) (0x040 + 4 * (m)) #define MAILBOX_FIFOSTATUS(m) (0x080 + 4 * (m)) #define MAILBOX_MSGSTATUS(m) (0x0c0 + 4 * (m)) + +#ifdef CONFIG_ARCH_OMAP4 +#define MAILBOX_IRQSTATUS(u) (0x104 + 10 * (u)) +#define MAILBOX_IRQENABLE(u) (0x108 + 10 * (u)) +#define MAILBOX_IRQENABLE_CLR(u) (0x10c + 10 * (u)) +#else #define MAILBOX_IRQSTATUS(u) (0x100 + 8 * (u)) #define MAILBOX_IRQENABLE(u) (0x104 + 8 * (u)) +#endif -#define MAILBOX_IRQ_NEWMSG(u) (1 (2 * (u))) -#define MAILBOX_IRQ_NOTFULL(u) (1 (2 * (u) + 1)) +#define MAILBOX_IRQ_NEWMSG(m) (1 (2 * (m))) +#define MAILBOX_IRQ_NOTFULL(m) (1 (2 * (m) + 1)) /* SYSCONFIG: register bit definition */ #define AUTOIDLE (1 0) @@ -38,7 +47,12 @@ /* SYSSTATUS: register bit definition */ #define RESETDONE (1 0) +#ifdef CONFIG_ARCH_OMAP4 +#define MBOX_REG_SIZE 0x130 +#else #define MBOX_REG_SIZE 0x120 +#endif + #define MBOX_NR_REGS (MBOX_REG_SIZE / sizeof(u32)) static void __iomem *mbox_base; @@ -57,6 +71,9 @@ struct omap_mbox2_priv { u32 newmsg_bit; u32 notfull_bit; u32 ctx[MBOX_NR_REGS]; +#ifdef CONFIG_ARCH_OMAP4 + unsigned long irqdisable; +#endif }; static struct clk *mbox_ick_handle; @@ -82,8 +99,9 @@ static int omap2_mbox_startup(struct omap_mbox *mbox) mbox_ick_handle = clk_get(NULL, mailboxes_ick); if (IS_ERR(mbox_ick_handle)) { - pr_err(Can't get mailboxes_ick\n); - return -ENODEV; + printk(KERN_ERR Could not get mailboxes_ick: %d\n, + PTR_ERR(mbox_ick_handle)); + return PTR_ERR(mbox_ick_handle); } clk_enable(mbox_ick_handle); @@ -115,6 +133,7 @@ static void omap2_mbox_shutdown(struct omap_mbox *mbox) { clk_disable(mbox_ick_handle); clk_put(mbox_ick_handle); + mbox_ick_handle = NULL; } /* Mailbox FIFO handle functions */ @@ -143,7 +162,7 @@ static int omap2_mbox_fifo_full(struct omap_mbox *mbox) { struct omap_mbox2_fifo *fifo = ((struct omap_mbox2_priv *)mbox-priv)-tx_fifo; - return (mbox_read_reg(fifo-fifo_stat)); + return mbox_read_reg(fifo-fifo_stat); } /* Mailbox IRQ handle functions */ @@ -163,10 +182,9 @@ static void omap2_mbox_disable_irq(struct omap_mbox *mbox, { struct omap_mbox2_priv *p = (struct omap_mbox2_priv *)mbox-priv; u32 l, bit = (irq == IRQ_TX) ? p-notfull_bit : p-newmsg_bit; - - l = mbox_read_reg(p-irqenable); + l = mbox_read_reg(p-irqdisable); l = ~bit; - mbox_write_reg(l, p-irqenable); + mbox_write_reg(l, p-irqdisable); } static void omap2_mbox_ack_irq(struct omap_mbox *mbox, @@ -189,7 +207,7 @@ static int omap2_mbox_is_irq(struct omap_mbox *mbox, u32 enable = mbox_read_reg(p-irqenable); u32 status = mbox_read_reg(p-irqstatus); - return (enable status bit); + return (int)(enable status bit); } static void omap2_mbox_save_ctx(struct omap_mbox *mbox) @@ -242,9 +260,12 @@ static struct omap_mbox_ops omap2_mbox_ops = { */ /* FIXME: the following structs should be filled automatically by the user id */ - +#ifdef CONFIG_ARCH_OMAP4 +static struct omap_mbox2_priv omap2_mbox_1_priv = { +#else /* DSP */ static struct omap_mbox2_priv omap2_mbox_dsp_priv = { +#endif .tx_fifo = { .msg= MAILBOX_MESSAGE(0), .fifo_stat = MAILBOX_FIFOSTATUS(0), @@ -257,7 +278,19 @@ static struct omap_mbox2_priv omap2_mbox_dsp_priv = { .irqstatus = MAILBOX_IRQSTATUS(0), .notfull_bit= MAILBOX_IRQ_NOTFULL(0), .newmsg_bit = MAILBOX_IRQ_NEWMSG(1), +#ifdef CONFIG_ARCH_OMAP4 + .irqdisable =
[PATCH 9/10] omap: mailbox: OMAP4 Mailbox Patch to change the IRQ
From 8a1b63918459dfbb5152dd31988714f91f4fd51b Mon Sep 17 00:00:00 2001 From: C A Subramaniam subramaniam...@ti.com Date: Thu, 12 Nov 2009 16:18:06 -0800 Subject: [PATCH 9/10] omap: mailbox: OMAP4 Mailbox Patch to change the IRQ flag from IRQF_DISABLED to IRQF_SHARED Currently, this facilitates both the tesla and ducati sides to request for the same irq through an omap_mbox_get() call. Signed-off-by: C A Subramaniam subramaniam...@ti.com Signed-off-by: Ramesh Gupta G grgu...@ti.com Acked-by: Hiroshi DOYU hiroshi.d...@nokia.com Signed-off-by: Tony Lindgren t...@atomide.com --- arch/arm/plat-omap/mailbox.c |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/arch/arm/plat-omap/mailbox.c b/arch/arm/plat-omap/mailbox.c index 99ecf80..eb76df2 100644 --- a/arch/arm/plat-omap/mailbox.c +++ b/arch/arm/plat-omap/mailbox.c @@ -283,7 +283,7 @@ static int omap_mbox_startup(struct omap_mbox *mbox) return ret; } - ret = request_irq(mbox-irq, mbox_interrupt, IRQF_DISABLED, + ret = request_irq(mbox-irq, mbox_interrupt, IRQF_SHARED, mbox-name, mbox); if (unlikely(ret)) { printk(KERN_ERR -- 1.5.3.2 -- 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 10/10] omap mailbox: OMAP4 Mailbox-driver Patch to support tasklet implementation
From 5fd7c2bfae11879edfcae7db073deb11bea1f584 Mon Sep 17 00:00:00 2001 From: C A Subramaniam subramaniam...@ti.com Date: Fri, 13 Nov 2009 15:59:58 +0530 Subject: [PATCH 10/10] omap mailbox: OMAP4 Mailbox-driver Patch to support tasklet implementation This patch uses a tasklet implementation for sending mailbox messages. Signed-off-by: C A Subramaniam subramaniam...@ti.com Signed-off-by: Ramesh Gupta G grgu...@ti.com Signed-off-by: Hiroshi DOYU hiroshi.d...@nokia.com --- arch/arm/plat-omap/include/plat/mailbox.h |8 +++- arch/arm/plat-omap/mailbox.c | 59 2 files changed, 23 insertions(+), 44 deletions(-) diff --git a/arch/arm/plat-omap/include/plat/mailbox.h b/arch/arm/plat-omap/include/plat/mailbox.h index bf06953..729166b 100644 --- a/arch/arm/plat-omap/include/plat/mailbox.h +++ b/arch/arm/plat-omap/include/plat/mailbox.h @@ -6,6 +6,7 @@ #include linux/wait.h #include linux/workqueue.h #include linux/blkdev.h +#include linux/interrupt.h typedef u32 mbox_msg_t; struct omap_mbox; @@ -28,8 +29,10 @@ struct omap_mbox_ops { int (*fifo_empty)(struct omap_mbox *mbox); int (*fifo_full)(struct omap_mbox *mbox); /* irq */ - void(*enable_irq)(struct omap_mbox *mbox, omap_mbox_irq_t irq); - void(*disable_irq)(struct omap_mbox *mbox, omap_mbox_irq_t irq); + void(*enable_irq)(struct omap_mbox *mbox, + omap_mbox_irq_t irq); + void(*disable_irq)(struct omap_mbox *mbox, + omap_mbox_irq_t irq); void(*ack_irq)(struct omap_mbox *mbox, omap_mbox_irq_t irq); int (*is_irq)(struct omap_mbox *mbox, omap_mbox_irq_t irq); /* ctx */ @@ -41,6 +44,7 @@ struct omap_mbox_queue { spinlock_t lock; struct request_queue*queue; struct work_struct work; + struct tasklet_struct tasklet; int (*callback)(void *); struct omap_mbox*mbox; }; diff --git a/arch/arm/plat-omap/mailbox.c b/arch/arm/plat-omap/mailbox.c index 4d7947e..8e90633 100644 --- a/arch/arm/plat-omap/mailbox.c +++ b/arch/arm/plat-omap/mailbox.c @@ -80,74 +80,45 @@ static int __mbox_msg_send(struct omap_mbox *mbox, mbox_msg_t msg) return ret; } -struct omap_msg_tx_data { - mbox_msg_t msg; -}; - -static void omap_msg_tx_end_io(struct request *rq, int error) -{ - kfree(rq-special); - __blk_put_request(rq-q, rq); -} int omap_mbox_msg_send(struct omap_mbox *mbox, mbox_msg_t msg) { - struct omap_msg_tx_data *tx_data; + struct request *rq; struct request_queue *q = mbox-txq-queue; - tx_data = kmalloc(sizeof(*tx_data), GFP_ATOMIC); - if (unlikely(!tx_data)) - return -ENOMEM; - rq = blk_get_request(q, WRITE, GFP_ATOMIC); - if (unlikely(!rq)) { - kfree(tx_data); + if (unlikely(!rq)) return -ENOMEM; - } - tx_data-msg = msg; - rq-end_io = omap_msg_tx_end_io; - blk_insert_request(q, rq, 0, tx_data); + blk_insert_request(q, rq, 0, (void *) msg); + tasklet_schedule(mbox-txq-tasklet); - schedule_work(mbox-txq-work); return 0; } EXPORT_SYMBOL(omap_mbox_msg_send); -static void mbox_tx_work(struct work_struct *work) +static void mbox_tx_tasklet(unsigned long tx_data) { int ret; struct request *rq; - struct omap_mbox_queue *mq = container_of(work, - struct omap_mbox_queue, work); - struct omap_mbox *mbox = mq-queue-queuedata; + struct omap_mbox *mbox = (struct omap_mbox *)tx_data; struct request_queue *q = mbox-txq-queue; while (1) { - struct omap_msg_tx_data *tx_data; - spin_lock(q-queue_lock); rq = blk_fetch_request(q); - spin_unlock(q-queue_lock); if (!rq) break; - tx_data = rq-special; - - ret = __mbox_msg_send(mbox, tx_data-msg); + ret = __mbox_msg_send(mbox, (mbox_msg_t)rq-special); if (ret) { omap_mbox_enable_irq(mbox, IRQ_TX); - spin_lock(q-queue_lock); blk_requeue_request(q, rq); - spin_unlock(q-queue_lock); return; } - - spin_lock(q-queue_lock); - __blk_end_request_all(rq, 0); - spin_unlock(q-queue_lock); + blk_end_request_all(rq, 0); } } @@ -192,7 +163,7 @@ static void __mbox_tx_interrupt(struct omap_mbox *mbox) { omap_mbox_disable_irq(mbox, IRQ_TX); ack_mbox_irq(mbox, IRQ_TX); - schedule_work(mbox-txq-work); +
[PATCH 5/10] omap: mailbox: remove disable_/enable_mbox_irq in isr
From 977b46afb3d52422d486458c6c7889c9ce906b3d Mon Sep 17 00:00:00 2001 From: Hiroshi DOYU hiroshi.d...@nokia.com Date: Thu, 12 Nov 2009 16:18:05 -0800 Subject: [PATCH 5/10] omap: mailbox: remove disable_/enable_mbox_irq in isr No need to handle it in isr, since irq won't happen during isr. Signed-off-by: Hiroshi DOYU hiroshi.d...@nokia.com Signed-off-by: Tony Lindgren t...@atomide.com --- arch/arm/plat-omap/mailbox.c |3 --- 1 files changed, 0 insertions(+), 3 deletions(-) diff --git a/arch/arm/plat-omap/mailbox.c b/arch/arm/plat-omap/mailbox.c index 13ca236..b49bb29 100644 --- a/arch/arm/plat-omap/mailbox.c +++ b/arch/arm/plat-omap/mailbox.c @@ -209,8 +209,6 @@ static void __mbox_rx_interrupt(struct omap_mbox *mbox) mbox_msg_t msg; struct request_queue *q = mbox-rxq-queue; - disable_mbox_irq(mbox, IRQ_RX); - while (!mbox_fifo_empty(mbox)) { rq = blk_get_request(q, WRITE, GFP_ATOMIC); if (unlikely(!rq)) @@ -226,7 +224,6 @@ static void __mbox_rx_interrupt(struct omap_mbox *mbox) /* no more messages in the fifo. clear IRQ source. */ ack_mbox_irq(mbox, IRQ_RX); - enable_mbox_irq(mbox, IRQ_RX); nomem: schedule_work(mbox-rxq-work); } -- 1.5.3.2 -- 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 4/10] omap: mailbox: remove class interface
From fcd239d499ab89a13e186d5ec5e2d0dde7d21e9e Mon Sep 17 00:00:00 2001 From: Hiroshi DOYU hiroshi.d...@nokia.com Date: Thu, 12 Nov 2009 16:18:05 -0800 Subject: [PATCH 4/10] omap: mailbox: remove class interface It's not used at present. Signed-off-by: Hiroshi DOYU hiroshi.d...@nokia.com Signed-off-by: Tony Lindgren t...@atomide.com --- arch/arm/plat-omap/include/plat/mailbox.h |1 - arch/arm/plat-omap/mailbox.c | 115 ++-- 2 files changed, 9 insertions(+), 107 deletions(-) diff --git a/arch/arm/plat-omap/include/plat/mailbox.h b/arch/arm/plat-omap/include/plat/mailbox.h index b7a6991..319306a 100644 --- a/arch/arm/plat-omap/include/plat/mailbox.h +++ b/arch/arm/plat-omap/include/plat/mailbox.h @@ -8,7 +8,6 @@ #include linux/blkdev.h typedef u32 mbox_msg_t; -typedef void (mbox_receiver_t)(mbox_msg_t msg); struct omap_mbox; typedef int __bitwise omap_mbox_irq_t; diff --git a/arch/arm/plat-omap/mailbox.c b/arch/arm/plat-omap/mailbox.c index f82810e..13ca236 100644 --- a/arch/arm/plat-omap/mailbox.c +++ b/arch/arm/plat-omap/mailbox.c @@ -71,7 +71,7 @@ static inline int is_mbox_irq(struct omap_mbox *mbox, omap_mbox_irq_t irq) /* * message sender */ -static int __mbox_msg_send(struct omap_mbox *mbox, mbox_msg_t msg, void *arg) +static int __mbox_msg_send(struct omap_mbox *mbox, mbox_msg_t msg) { int ret = 0, i = 1000; @@ -82,15 +82,7 @@ static int __mbox_msg_send(struct omap_mbox *mbox, mbox_msg_t msg, void *arg) return -1; udelay(1); } - - if (arg mbox-txq-callback) { - ret = mbox-txq-callback(arg); - if (ret) - goto out; - } - mbox_fifo_write(mbox, msg); - out: return ret; } @@ -152,7 +144,7 @@ static void mbox_tx_work(struct work_struct *work) tx_data = rq-special; - ret = __mbox_msg_send(mbox, tx_data-msg, tx_data-arg); + ret = __mbox_msg_send(mbox, tx_data-msg); if (ret) { enable_mbox_irq(mbox, IRQ_TX); spin_lock(q-queue_lock); @@ -180,11 +172,6 @@ static void mbox_rx_work(struct work_struct *work) mbox_msg_t msg; unsigned long flags; - if (mbox-rxq-callback == NULL) { - sysfs_notify(mbox-dev-kobj, NULL, mbox); - return; - } - while (1) { spin_lock_irqsave(q-queue_lock, flags); rq = blk_fetch_request(q); @@ -257,69 +244,6 @@ static irqreturn_t mbox_interrupt(int irq, void *p) return IRQ_HANDLED; } -/* - * sysfs files - */ -static ssize_t -omap_mbox_write(struct device *dev, struct device_attribute *attr, - const char *buf, size_t count) -{ - int ret; - mbox_msg_t *p = (mbox_msg_t *)buf; - struct omap_mbox *mbox = dev_get_drvdata(dev); - - for (; count = sizeof(mbox_msg_t); count -= sizeof(mbox_msg_t)) { - ret = omap_mbox_msg_send(mbox, be32_to_cpu(*p), NULL); - if (ret) - return -EAGAIN; - p++; - } - - return (size_t)((char *)p - buf); -} - -static ssize_t -omap_mbox_read(struct device *dev, struct device_attribute *attr, char *buf) -{ - unsigned long flags; - struct request *rq; - mbox_msg_t *p = (mbox_msg_t *) buf; - struct omap_mbox *mbox = dev_get_drvdata(dev); - struct request_queue *q = mbox-rxq-queue; - - while (1) { - spin_lock_irqsave(q-queue_lock, flags); - rq = blk_fetch_request(q); - spin_unlock_irqrestore(q-queue_lock, flags); - - if (!rq) - break; - - *p = (mbox_msg_t)rq-special; - - blk_end_request_all(rq, 0); - - p++; - } - - pr_debug(%02x %02x %02x %02x\n, buf[0], buf[1], buf[2], buf[3]); - - return (size_t) ((char *)p - buf); -} - -static DEVICE_ATTR(mbox, S_IRUGO | S_IWUSR, omap_mbox_read, omap_mbox_write); - -static ssize_t mbox_show(struct class *class, char *buf) -{ - return sprintf(buf, mbox); -} - -static CLASS_ATTR(mbox, S_IRUGO, mbox_show, NULL); - -static struct class omap_mbox_class = { - .name = omap-mailbox, -}; - static struct omap_mbox_queue *mbox_queue_alloc(struct omap_mbox *mbox, request_fn_proc *proc, void (*work) (struct work_struct *)) @@ -353,7 +277,7 @@ static void mbox_queue_free(struct omap_mbox_queue *q) kfree(q); } -static int omap_mbox_init(struct omap_mbox *mbox) +static int omap_mbox_startup(struct omap_mbox *mbox) { int ret; struct omap_mbox_queue *mq; @@ -436,7 +360,7 @@ struct omap_mbox *omap_mbox_get(const char *name) read_unlock(mboxes_lock); - ret = omap_mbox_init(mbox); + ret = omap_mbox_startup(mbox); if
[PATCH 1/2 (for-next)] ARM: OMAP3: Add support for the IGEP v2 board (rev B)
From: Enric Balletbo i Serra eballe...@iseebcn.com This patch adds minimal IGEP v2 support. The IGEP v2 board is a low-cost, fan-less and industrial temperature range single board computer that unleashes laptop-like performance and expandability without the bulk, expense, or noise of typical desktop machines. Its architecture shares much in common with other OMAP3 boards. Signed-off-by: Enric Balletbo i Serra eballe...@iseebcn.com --- arch/arm/mach-omap2/Kconfig |4 + arch/arm/mach-omap2/Makefile |2 + arch/arm/mach-omap2/board-igep0020.c | 251 ++ 3 files changed, 257 insertions(+), 0 deletions(-) create mode 100644 arch/arm/mach-omap2/board-igep0020.c diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig index 35b7f5c..b25af76 100644 --- a/arch/arm/mach-omap2/Kconfig +++ b/arch/arm/mach-omap2/Kconfig @@ -113,6 +113,10 @@ config MACH_OMAP_3630SDP bool OMAP3630 SDP board depends on ARCH_OMAP3 ARCH_OMAP34XX +config MACH_IGEP0020 + bool IGEP0020 + depends on ARCH_OMAP3 ARCH_OMAP34XX + config MACH_OMAP_4430SDP bool OMAP 4430 SDP board depends on ARCH_OMAP4 diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile index fd7198e..59b0ccc 100644 --- a/arch/arm/mach-omap2/Makefile +++ b/arch/arm/mach-omap2/Makefile @@ -88,6 +88,8 @@ obj-$(CONFIG_MACH_OMAP_3630SDP) += board-3630sdp.o \ mmc-twl4030.o obj-$(CONFIG_MACH_CM_T35) += board-cm-t35.o \ mmc-twl4030.o +obj-$(CONFIG_MACH_IGEP0020)+= board-igep0020.o \ + mmc-twl4030.o obj-$(CONFIG_MACH_OMAP_4430SDP)+= board-4430sdp.o diff --git a/arch/arm/mach-omap2/board-igep0020.c b/arch/arm/mach-omap2/board-igep0020.c new file mode 100644 index 000..fa62e80 --- /dev/null +++ b/arch/arm/mach-omap2/board-igep0020.c @@ -0,0 +1,251 @@ +/* + * Copyright (C) 2009 Integration Software and Electronic Engineering. + * + * Modified from mach-omap2/board-generic.c + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#include linux/kernel.h +#include linux/init.h +#include linux/platform_device.h +#include linux/delay.h +#include linux/err.h +#include linux/clk.h +#include linux/io.h +#include linux/gpio.h +#include linux/interrupt.h + +#include linux/regulator/machine.h +#include linux/i2c/twl4030.h + +#include asm/mach-types.h +#include asm/mach/arch.h + +#include plat/board.h +#include plat/common.h +#include plat/gpmc.h +#include plat/mux.h +#include plat/usb.h + +#include mmc-twl4030.h + +#define IGEP2_SMSC911X_CS 5 +#define IGEP2_SMSC911X_GPIO 176 +#define IGEP2_GPIO_USBH_NRESET 24 +#define IGEP2_GPIO_LED0_RED26 +#define IGEP2_GPIO_LED0_GREEN 27 +#define IGEP2_GPIO_LED1_RED28 + +#if defined(CONFIG_SMSC911X) || defined(CONFIG_SMSC911X_MODULE) + +#include linux/smsc911x.h + +static struct smsc911x_platform_config igep2_smsc911x_config = { + .irq_polarity = SMSC911X_IRQ_POLARITY_ACTIVE_LOW, + .irq_type = SMSC911X_IRQ_TYPE_OPEN_DRAIN, + .flags = SMSC911X_USE_32BIT | SMSC911X_SAVE_MAC_ADDRESS , + .phy_interface = PHY_INTERFACE_MODE_MII, +}; + +static struct resource igep2_smsc911x_resources[] = { + { + .flags = IORESOURCE_MEM, + }, + { + .start = OMAP_GPIO_IRQ(IGEP2_SMSC911X_GPIO), + .end= OMAP_GPIO_IRQ(IGEP2_SMSC911X_GPIO), + .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_LOWLEVEL, + }, +}; + +static struct platform_device igep2_smsc911x_device = { + .name = smsc911x, + .id = 0, + .num_resources = ARRAY_SIZE(igep2_smsc911x_resources), + .resource = igep2_smsc911x_resources, + .dev= { + .platform_data = igep2_smsc911x_config, + }, +}; + +static inline void __init igep2_init_smsc911x(void) +{ + unsigned long cs_mem_base; + + if (gpmc_cs_request(IGEP2_SMSC911X_CS, SZ_16M, cs_mem_base) 0) { + pr_err(IGEP v2: Failed request for GPMC mem for smsc911x\n); + gpmc_cs_free(IGEP2_SMSC911X_CS); + return; + } + + igep2_smsc911x_resources[0].start = cs_mem_base + 0x0; + igep2_smsc911x_resources[0].end = cs_mem_base + 0xff; + + if ((gpio_request(IGEP2_SMSC911X_GPIO, SMSC911X IRQ) == 0) + (gpio_direction_input(IGEP2_SMSC911X_GPIO) == 0)) { + gpio_export(IGEP2_SMSC911X_GPIO, 0); + } else { + pr_err(IGEP v2: Could not obtain gpio for for SMSC911X IRQ\n); + return; + } + + platform_device_register(igep2_smsc911x_device); +} + +#else +static
[PATCH 0/10] omap mailbox: Refreshed patch series for-next branch
Hi All, Following is the refreshed version of patches for mailbox driver. Hi Tony, I have gone through the patch set in the for-next branch and have made the following changes: Patch 7 was missing. I have re-worked it to the for-next branch. As you had mentioned in the previous mail, Patches 8 and 10 have been re-worked. Request you to please apply the patches 7, 8 and 10 on the for-next branch. Patches already APPLIED on the for-next branch: -- 0001-omap-mailbox-Add-build-specific-changes-to-support.patch 0002-omap-mailbox-OMAP4-Add-resources-and-mailbox-reg.patch 0003-omap-mailbox-remove-sequence-bit-checking.patch 0004-omap-mailbox-remove-class-interface.patch 0005-omap-mailbox-remove-disable_-enable_mbox_irq-in-is.patch 0006-omap-mailbox-remove-unnecessary-arg-for-omap_mbox_.patch 0009-omap-mailbox-OMAP4-Mailbox-Patch-to-change-the-IRQ.patch Patches refreshed for the for-next branch (need to be APPLIED): -- 0007-omap-mailbox-expose-omap_mbox_enable-disable_irq.patch 0008-omap-mailbox-OMAP4-Mailbox-Adds-code-changes-to-s.patch 0010-omap-mailbox-OMAP4-Mailbox-driver-Patch-to-support.patch Please do let me know if you have any concerns. Thank you and Regards Subbu-- 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 2/10] omap: mailbox: OMAP4 - Add resources
From 80f2bf9ba7e2d87490a36346d25517c41033677f Mon Sep 17 00:00:00 2001 From: C A Subramaniam subramaniam...@ti.com Date: Thu, 12 Nov 2009 16:18:04 -0800 Subject: [PATCH 2/10] omap: mailbox: OMAP4 - Add resources and mailbox register base address for OMAP4 mailbox This patch adds resource information of mailbox driver for OMAP4 mailbox module. Register base address also added Signed-off-by: C A Subramaniam subramaniam...@ti.com Signed-off-by: Ramesh Gupta G grgu...@ti.com Acked-by: Hiroshi DOYU hiroshi.d...@nokia.com Signed-off-by: Tony Lindgren t...@atomide.com --- arch/arm/mach-omap2/devices.c | 36 +--- arch/arm/plat-omap/include/plat/omap44xx.h |2 + 2 files changed, 29 insertions(+), 9 deletions(-) diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c index 8b6cd8c..733d3dc 100644 --- a/arch/arm/mach-omap2/devices.c +++ b/arch/arm/mach-omap2/devices.c @@ -136,9 +136,10 @@ static inline void omap_init_camera(void) #if defined(CONFIG_OMAP_MBOX_FWK) || defined(CONFIG_OMAP_MBOX_FWK_MODULE) -#define MBOX_REG_SIZE 0x120 +#define MBOX_REG_SIZE 0x120 -static struct resource omap2_mbox_resources[] = { +#ifdef CONFIG_ARCH_OMAP2 +static struct resource omap_mbox_resources[] = { { .start = OMAP24XX_MAILBOX_BASE, .end= OMAP24XX_MAILBOX_BASE + MBOX_REG_SIZE - 1, @@ -153,8 +154,10 @@ static struct resource omap2_mbox_resources[] = { .flags = IORESOURCE_IRQ, }, }; +#endif -static struct resource omap3_mbox_resources[] = { +#ifdef CONFIG_ARCH_OMAP3 +static struct resource omap_mbox_resources[] = { { .start = OMAP34XX_MAILBOX_BASE, .end= OMAP34XX_MAILBOX_BASE + MBOX_REG_SIZE - 1, @@ -165,6 +168,24 @@ static struct resource omap3_mbox_resources[] = { .flags = IORESOURCE_IRQ, }, }; +#endif + +#ifdef CONFIG_ARCH_OMAP4 + +#define OMAP4_MBOX_REG_SIZE0x130 +static struct resource omap_mbox_resources[] = { + { + .start = OMAP44XX_MAILBOX_BASE, + .end= OMAP44XX_MAILBOX_BASE + + OMAP4_MBOX_REG_SIZE - 1, + .flags = IORESOURCE_MEM, + }, + { + .start = INT_44XX_MAIL_U0_MPU, + .flags = IORESOURCE_IRQ, + }, +}; +#endif static struct platform_device mbox_device = { .name = omap2-mailbox, @@ -173,12 +194,9 @@ static struct platform_device mbox_device = { static inline void omap_init_mbox(void) { - if (cpu_is_omap2420()) { - mbox_device.num_resources = ARRAY_SIZE(omap2_mbox_resources); - mbox_device.resource = omap2_mbox_resources; - } else if (cpu_is_omap3430()) { - mbox_device.num_resources = ARRAY_SIZE(omap3_mbox_resources); - mbox_device.resource = omap3_mbox_resources; + if (cpu_is_omap2420() || cpu_is_omap3430() || cpu_is_omap44xx()) { + mbox_device.num_resources = ARRAY_SIZE(omap_mbox_resources); + mbox_device.resource = omap_mbox_resources; } else { pr_err(%s: platform not supported\n, __func__); return; diff --git a/arch/arm/plat-omap/include/plat/omap44xx.h b/arch/arm/plat-omap/include/plat/omap44xx.h index 3361897..e52902a 100644 --- a/arch/arm/plat-omap/include/plat/omap44xx.h +++ b/arch/arm/plat-omap/include/plat/omap44xx.h @@ -40,5 +40,7 @@ #define OMAP44XX_LOCAL_TWD_BASE0x48240600 #define OMAP44XX_WKUPGEN_BASE 0x48281000 +#define OMAP44XX_MAILBOX_BASE (L4_44XX_BASE + 0xF4000) + #endif /* __ASM_ARCH_OMAP44XX_H */ -- 1.5.3.2 -- 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 3/10] omap: mailbox: remove sequence bit checking
From 39b709da59a8f146169577702c4d77048050c3d0 Mon Sep 17 00:00:00 2001 From: Hiroshi DOYU hiroshi.d...@nokia.com Date: Thu, 12 Nov 2009 16:18:04 -0800 Subject: [PATCH 3/10] omap: mailbox: remove sequence bit checking Any protocol should be handled in the upper layer and mailbox driver shouldn't care about the contents of messages. Signed-off-by: Hiroshi DOYU hiroshi.d...@nokia.com Signed-off-by: Tony Lindgren t...@atomide.com --- arch/arm/plat-omap/mailbox.c | 70 ++--- 1 files changed, 4 insertions(+), 66 deletions(-) diff --git a/arch/arm/plat-omap/mailbox.c b/arch/arm/plat-omap/mailbox.c index 734bff3..f82810e 100644 --- a/arch/arm/plat-omap/mailbox.c +++ b/arch/arm/plat-omap/mailbox.c @@ -28,54 +28,9 @@ #include plat/mailbox.h -static int enable_seq_bit; -module_param(enable_seq_bit, bool, 0); -MODULE_PARM_DESC(enable_seq_bit, Enable sequence bit checking.); - static struct omap_mbox *mboxes; static DEFINE_RWLOCK(mboxes_lock); -/* - * Mailbox sequence bit API - */ - -/* seq_rcv should be initialized with any value other than - * 0 and 1 31, to allow either value for the first - * message. */ -static inline void mbox_seq_init(struct omap_mbox *mbox) -{ - if (!enable_seq_bit) - return; - - /* any value other than 0 and 1 31 */ - mbox-seq_rcv = 0x; -} - -static inline void mbox_seq_toggle(struct omap_mbox *mbox, mbox_msg_t * msg) -{ - if (!enable_seq_bit) - return; - - /* add seq_snd to msg */ - *msg = (*msg 0x7fff) | mbox-seq_snd; - /* flip seq_snd */ - mbox-seq_snd ^= 1 31; -} - -static inline int mbox_seq_test(struct omap_mbox *mbox, mbox_msg_t msg) -{ - mbox_msg_t seq; - - if (!enable_seq_bit) - return 0; - - seq = msg (1 31); - if (seq == mbox-seq_rcv) - return -1; - mbox-seq_rcv = seq; - return 0; -} - /* Mailbox FIFO handle functions */ static inline mbox_msg_t mbox_fifo_read(struct omap_mbox *mbox) { @@ -113,13 +68,6 @@ static inline int is_mbox_irq(struct omap_mbox *mbox, omap_mbox_irq_t irq) return mbox-ops-is_irq(mbox, irq); } -/* Mailbox Sequence Bit function */ -void omap_mbox_init_seq(struct omap_mbox *mbox) -{ - mbox_seq_init(mbox); -} -EXPORT_SYMBOL(omap_mbox_init_seq); - /* * message sender */ @@ -141,7 +89,6 @@ static int __mbox_msg_send(struct omap_mbox *mbox, mbox_msg_t msg, void *arg) goto out; } - mbox_seq_toggle(mbox, msg); mbox_fifo_write(mbox, msg); out: return ret; @@ -254,11 +201,11 @@ static void mbox_rx_work(struct work_struct *work) /* * Mailbox interrupt handler */ -static void mbox_txq_fn(struct request_queue * q) +static void mbox_txq_fn(struct request_queue *q) { } -static void mbox_rxq_fn(struct request_queue * q) +static void mbox_rxq_fn(struct request_queue *q) { } @@ -284,11 +231,6 @@ static void __mbox_rx_interrupt(struct omap_mbox *mbox) msg = mbox_fifo_read(mbox); - if (unlikely(mbox_seq_test(mbox, msg))) { - pr_info(mbox: Illegal seq bit!(%08x)\n, msg); - if (mbox-err_notify) - mbox-err_notify(); - } blk_insert_request(q, rq, 0, (void *)msg); if (mbox-ops-type == OMAP_MBOX_TYPE1) @@ -320,7 +262,7 @@ static irqreturn_t mbox_interrupt(int irq, void *p) */ static ssize_t omap_mbox_write(struct device *dev, struct device_attribute *attr, - const char * buf, size_t count) + const char *buf, size_t count) { int ret; mbox_msg_t *p = (mbox_msg_t *)buf; @@ -357,10 +299,6 @@ omap_mbox_read(struct device *dev, struct device_attribute *attr, char *buf) blk_end_request_all(rq, 0); - if (unlikely(mbox_seq_test(mbox, *p))) { - pr_info(mbox: Illegal seq bit!(%08x) ignored\n, *p); - continue; - } p++; } @@ -383,7 +321,7 @@ static struct class omap_mbox_class = { }; static struct omap_mbox_queue *mbox_queue_alloc(struct omap_mbox *mbox, - request_fn_proc * proc, + request_fn_proc *proc, void (*work) (struct work_struct *)) { struct request_queue *q; -- 1.5.3.2 -- 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 1/10] omap: mailbox: Add build specific changes to support omap mailbox
From bf41b0fd7324149a647b43d434ae3821bea49541 Mon Sep 17 00:00:00 2001 From: C A Subramaniam subramaniam...@ti.com Date: Thu, 12 Nov 2009 16:18:03 -0800 Subject: [PATCH 1/10] omap: mailbox: Add build specific changes to support omap mailbox This patch adds changes to the build related files of mailbox driver Signed-off-by: C A Subramaniam subramaniam...@ti.com Signed-off-by: Ramesh Gupta G grgu...@ti.com Acked-by: Hiroshi DOYU hiroshi.d...@nokia.com Signed-off-by: Tony Lindgren t...@atomide.com --- arch/arm/mach-omap2/Makefile |3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile index 5c32b65..b77fe24 100644 --- a/arch/arm/mach-omap2/Makefile +++ b/arch/arm/mach-omap2/Makefile @@ -44,6 +44,9 @@ obj-$(CONFIG_ARCH_OMAP4) += cm4xxx.o obj-$(CONFIG_ARCH_OMAP2) += clock24xx.o obj-$(CONFIG_ARCH_OMAP3) += clock34xx.o +obj-$(CONFIG_OMAP_MBOX_FWK)+= mailbox_mach.o +mailbox_mach-objs := mailbox.o + iommu-y+= iommu2.o iommu-$(CONFIG_ARCH_OMAP3) += omap3-iommu.o -- 1.5.3.2 -- 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] OMAP: GPIO module enable/disable
This patch disables a GPIO module when all pins of a GPIO module are inactive (clock gating forced at module level) and enables the module when any gpio in the module is requested. The module is enabled only when mod_usage indicates that no GPIO in that module is currently active and the GPIO being requested is the 1st one to be active in that module. Each module would be disabled in omap_gpio_free() API when all GPIOs in a particular module becomes inactive. The module is re-enabled in omap_gpio_request() API when a GPIO is requested from the module that was previously disabled. Since individual GPIO's bookkeeping is added in this patch via mod_usage, the same is used in omap_set_gpio_debounce() omap_set_gpio_debounce_time() APIs to ensure that the gpio being used is actually requested prior to being used (Nishant Menon's n...@ti.comsuggestion) GPIO module level details are specific to hardware and hence introducing this patch in low level layer (plat-omap/gpio.c) Signed-off-by: Charulatha V ch...@ti.com Acked-by: Nishanth Menon n...@ti.com --- arch/arm/plat-omap/gpio.c | 32 1 files changed, 32 insertions(+), 0 deletions(-) diff --git a/arch/arm/plat-omap/gpio.c b/arch/arm/plat-omap/gpio.c index b71052c..ce4f0cd 100644 --- a/arch/arm/plat-omap/gpio.c +++ b/arch/arm/plat-omap/gpio.c @@ -195,6 +195,7 @@ struct gpio_bank { spinlock_t lock; struct gpio_chip chip; struct clk *dbck; + u32 mod_usage; }; #define METHOD_MPUIO 0 @@ -628,6 +629,10 @@ void omap_set_gpio_debounce(int gpio, int enable) #else reg += OMAP24XX_GPIO_DEBOUNCE_EN; #endif + if (!(bank-mod_usage l)) { + printk(KERN_ERR GPIO %d not requested\n, gpio); + return; + } spin_lock_irqsave(bank-lock, flags); val = __raw_readl(reg); @@ -663,6 +668,11 @@ void omap_set_gpio_debounce_time(int gpio, int enc_time) bank = get_gpio_bank(gpio); reg = bank-base; + if (!bank-mod_usage) { + printk(KERN_ERR GPIO not requested\n); + return; + } + enc_time = 0xff; #ifdef CONFIG_ARCH_OMAP4 reg += OMAP4_GPIO_DEBOUNCINGTIME; @@ -1144,6 +1154,16 @@ static int omap_gpio_request(struct gpio_chip *chip, unsigned offset) __raw_writel(__raw_readl(reg) | (1 offset), reg); } #endif + if (!cpu_class_is_omap1()) { + if (!bank-mod_usage) { + u32 ctrl; + ctrl = __raw_readl(bank-base + OMAP24XX_GPIO_CTRL); + ctrl = 0xFFFE; + /* Module is enabled, clocks are not gated */ + __raw_writel(ctrl, bank-base + OMAP24XX_GPIO_CTRL); + } + bank-mod_usage |= 1 offset; + } spin_unlock_irqrestore(bank-lock, flags); return 0; @@ -1170,6 +1190,16 @@ static void omap_gpio_free(struct gpio_chip *chip, unsigned offset) __raw_writel(1 offset, reg); } #endif + if (!cpu_class_is_omap1()) { + bank-mod_usage = ~(1 offset); + if (!bank-mod_usage) { + u32 ctrl; + ctrl = __raw_readl(bank-base + OMAP24XX_GPIO_CTRL); + /* Module is disabled, clocks are gated */ + ctrl |= 1; + __raw_writel(ctrl, bank-base + OMAP24XX_GPIO_CTRL); + } + } _reset_gpio(bank, bank-chip.base + offset); spin_unlock_irqrestore(bank-lock, flags); } @@ -1749,6 +1779,8 @@ static int __init _omap_gpio_init(void) gpio_count = 32; } #endif + + bank-mod_usage = 0; /* REVISIT eventually switch from OMAP-specific gpio structs * over to the generic ones */ -- 1.6.0.4 -- 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: Query: Regulator framework in EHCI driver
On Fri, Nov 13, 2009 at 09:52:14AM +0530, Gupta, Ajay Kumar wrote: + snprintf(supply, 7, hsusb%d, i); It'd be better to use sizeof() rather than a hard coded 7 here. + omap-regulator[i] = regulator_get(omap-dev, supply); Looking at your code this needs to be regulator_get_exclusive() - you conditinoally disable the regulator when unregistering depending on if it reports as enabled but if the supply is shared then it can be enabled without this driver having done so. Alternatively, make the regulator_disable() in the shutdown path unconditional. -- 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 2/2] ASoC: OMAP: reconfigure DMA to resume audio
On Thu, Nov 12, 2009 at 02:15:18PM -0600, Jane Wang wrote: Reconfigure DMA transfer parameters to resume audio after system comming out of OFF state. Signed-off-by: Jane Wang jw...@ti.com This looks OK to me but I'd like an ack from the OMAP folks. Adding Jarkko as well as he's the maintainer for OMAP audio. --- sound/soc/omap/omap-pcm.c |7 ++- 1 files changed, 6 insertions(+), 1 deletions(-) diff --git a/sound/soc/omap/omap-pcm.c b/sound/soc/omap/omap-pcm.c index 6a829ee..5e04390 100644 --- a/sound/soc/omap/omap-pcm.c +++ b/sound/soc/omap/omap-pcm.c @@ -215,8 +215,13 @@ static int omap_pcm_trigger(struct snd_pcm_substream *substream, int cmd) spin_lock_irqsave(prtd-lock, flags); switch (cmd) { - case SNDRV_PCM_TRIGGER_START: case SNDRV_PCM_TRIGGER_RESUME: + /* Reconfigure DMA transfer parameters + * in order to come back from OFF mode + */ + omap_pcm_prepare(substream); + /* fall through */ + case SNDRV_PCM_TRIGGER_START: case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: prtd-period_index = 0; /* Configure McBSP internal buffer usage */ -- 1.5.4.3 -- 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
CPUFREQ for beagle
I want the CPUFREQdriver for the beagleboard which can work with linux2.6.29 properly plz any one Help thnx in Advance tarek -- 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 1/2] OMAP3: MCBSP: Suspend/resume failure fix
McBSP fucntional clock is not disabled when suspend is triggerd which prevents PER domain entering target low-power state. To fix the problem: 1. Disable/enable McBSP functional clock for suspend/resume. 2. In addition, reconfigure McBSP, this is needed when systerm comes out of OFF state. Signed-off-by: Jane Wang jw...@ti.com --- arch/arm/plat-omap/include/mach/mcbsp.h |2 ++ arch/arm/plat-omap/mcbsp.c | 27 +++ sound/soc/omap/omap-mcbsp.c | 14 -- 3 files changed, 41 insertions(+), 2 deletions(-) diff --git a/arch/arm/plat-omap/include/mach/mcbsp.h b/arch/arm/plat-omap/include/mach/mcbsp.h index e0d6eca..94e1c66 100644 --- a/arch/arm/plat-omap/include/mach/mcbsp.h +++ b/arch/arm/plat-omap/include/mach/mcbsp.h @@ -440,6 +440,8 @@ static inline int omap_mcbsp_get_dma_op_mode(unsigned int id) { return 0; } #endif int omap_mcbsp_request(unsigned int id); void omap_mcbsp_free(unsigned int id); +void omap_mcbsp_disable_fclk(unsigned int id); +void omap_mcbsp_enable_fclk(unsigned int id); void omap_mcbsp_start(unsigned int id, int tx, int rx); void omap_mcbsp_stop(unsigned int id, int tx, int rx); void omap_mcbsp_xmit_word(unsigned int id, u32 word); diff --git a/arch/arm/plat-omap/mcbsp.c b/arch/arm/plat-omap/mcbsp.c index e664b91..bfe3c61 100644 --- a/arch/arm/plat-omap/mcbsp.c +++ b/arch/arm/plat-omap/mcbsp.c @@ -459,6 +459,33 @@ int omap_mcbsp_request(unsigned int id) } EXPORT_SYMBOL(omap_mcbsp_request); +void omap_mcbsp_disable_fclk(unsigned int id) +{ + struct omap_mcbsp *mcbsp; + + if (!omap_mcbsp_check_valid_id(id)) { + printk(KERN_ERR %s: Invalid id (%d)\n, __func__, id + 1); + return; + } + mcbsp = id_to_mcbsp_ptr(id); + clk_disable(mcbsp-fclk); +} +EXPORT_SYMBOL(omap_mcbsp_disable_fclk); + + +void omap_mcbsp_enable_fclk(unsigned int id) +{ + struct omap_mcbsp *mcbsp; + + if (!omap_mcbsp_check_valid_id(id)) { + printk(KERN_ERR %s: Invalid id (%d)\n, __func__, id + 1); + return; + } + mcbsp = id_to_mcbsp_ptr(id); + clk_enable(mcbsp-fclk); +} +EXPORT_SYMBOL(omap_mcbsp_enable_fclk); + void omap_mcbsp_free(unsigned int id) { struct omap_mcbsp *mcbsp; diff --git a/sound/soc/omap/omap-mcbsp.c b/sound/soc/omap/omap-mcbsp.c index 45be942..e56b5ff 100644 --- a/sound/soc/omap/omap-mcbsp.c +++ b/sound/soc/omap/omap-mcbsp.c @@ -229,18 +229,28 @@ static int omap_mcbsp_dai_trigger(struct snd_pcm_substream *substream, int cmd, switch (cmd) { case SNDRV_PCM_TRIGGER_START: - case SNDRV_PCM_TRIGGER_RESUME: case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: mcbsp_data-active++; omap_mcbsp_start(mcbsp_data-bus_id, play, !play); break; + case SNDRV_PCM_TRIGGER_RESUME: + mcbsp_data-active++; + omap_mcbsp_enable_fclk(mcbsp_data-bus_id); + omap_mcbsp_config(mcbsp_data-bus_id, + mcbsp_data-regs); + omap_mcbsp_start(mcbsp_data-bus_id, play, !play); + break; case SNDRV_PCM_TRIGGER_STOP: - case SNDRV_PCM_TRIGGER_SUSPEND: case SNDRV_PCM_TRIGGER_PAUSE_PUSH: omap_mcbsp_stop(mcbsp_data-bus_id, play, !play); mcbsp_data-active--; break; + case SNDRV_PCM_TRIGGER_SUSPEND: + omap_mcbsp_stop(mcbsp_data-bus_id, play, !play); + omap_mcbsp_disable_fclk(mcbsp_data-bus_id); + mcbsp_data-active--; + break; default: err = -EINVAL; } -- 1.5.4.3 -- 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 2/2] ASoC: OMAP: reconfigure DMA to resume audio
-Original Message- From: Mark Brown [mailto:broo...@opensource.wolfsonmicro.com] Sent: Friday, November 13, 2009 7:51 AM To: Wang, Jane Cc: alsa-de...@alsa-project.org; linux-omap@vger.kernel.org; peter.ujfal...@nokia.com; Jarkko Nikula Subject: Re: [PATCH 2/2] ASoC: OMAP: reconfigure DMA to resume audio On Thu, Nov 12, 2009 at 02:15:18PM -0600, Jane Wang wrote: Reconfigure DMA transfer parameters to resume audio after system comming out of OFF state. Signed-off-by: Jane Wang jw...@ti.com This looks OK to me but I'd like an ack from the OMAP folks. Adding Jarkko as well as he's the maintainer for OMAP audio. Thanks. I think my original patch failed to post on the mailing list. I will resend the patch and cc Jarkko. -- 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 1/2] OMAP3: MCBSP: Suspend/resume failure fix
On 13 Nov 2009, at 17:39, Jane Wang jw...@ti.com wrote: McBSP fucntional clock is not disabled when suspend is triggerd which prevents PER domain entering target low-power state. To fix the problem: 1. Disable/enable McBSP functional clock for suspend/resume. 2. In addition, reconfigure McBSP, this is needed when systerm comes out of OFF state. There is no need to resend your patches this iften - please allow at least a week or so for review. You only need to repost if addressing comments or it looks like the patch got missed. Signed-off-by: Jane Wang jw...@ti.com --- arch/arm/plat-omap/include/mach/mcbsp.h |2 ++ arch/arm/plat-omap/mcbsp.c | 27 ++ + sound/soc/omap/omap-mcbsp.c | 14 -- 3 files changed, 41 insertions(+), 2 deletions(-) diff --git a/arch/arm/plat-omap/include/mach/mcbsp.h b/arch/arm/plat- omap/include/mach/mcbsp.h index e0d6eca..94e1c66 100644 --- a/arch/arm/plat-omap/include/mach/mcbsp.h +++ b/arch/arm/plat-omap/include/mach/mcbsp.h @@ -440,6 +440,8 @@ static inline int omap_mcbsp_get_dma_op_mode (unsigned int id) { return 0; } #endif int omap_mcbsp_request(unsigned int id); void omap_mcbsp_free(unsigned int id); +void omap_mcbsp_disable_fclk(unsigned int id); +void omap_mcbsp_enable_fclk(unsigned int id); void omap_mcbsp_start(unsigned int id, int tx, int rx); void omap_mcbsp_stop(unsigned int id, int tx, int rx); void omap_mcbsp_xmit_word(unsigned int id, u32 word); diff --git a/arch/arm/plat-omap/mcbsp.c b/arch/arm/plat-omap/mcbsp.c index e664b91..bfe3c61 100644 --- a/arch/arm/plat-omap/mcbsp.c +++ b/arch/arm/plat-omap/mcbsp.c @@ -459,6 +459,33 @@ int omap_mcbsp_request(unsigned int id) } EXPORT_SYMBOL(omap_mcbsp_request); +void omap_mcbsp_disable_fclk(unsigned int id) +{ +struct omap_mcbsp *mcbsp; + +if (!omap_mcbsp_check_valid_id(id)) { +printk(KERN_ERR %s: Invalid id (%d)\n, __func__, id + 1); +return; +} +mcbsp = id_to_mcbsp_ptr(id); +clk_disable(mcbsp-fclk); +} +EXPORT_SYMBOL(omap_mcbsp_disable_fclk); + + +void omap_mcbsp_enable_fclk(unsigned int id) +{ +struct omap_mcbsp *mcbsp; + +if (!omap_mcbsp_check_valid_id(id)) { +printk(KERN_ERR %s: Invalid id (%d)\n, __func__, id + 1); +return; +} +mcbsp = id_to_mcbsp_ptr(id); +clk_enable(mcbsp-fclk); +} +EXPORT_SYMBOL(omap_mcbsp_enable_fclk); + void omap_mcbsp_free(unsigned int id) { struct omap_mcbsp *mcbsp; diff --git a/sound/soc/omap/omap-mcbsp.c b/sound/soc/omap/omap-mcbsp.c index 45be942..e56b5ff 100644 --- a/sound/soc/omap/omap-mcbsp.c +++ b/sound/soc/omap/omap-mcbsp.c @@ -229,18 +229,28 @@ static int omap_mcbsp_dai_trigger(struct snd_pcm_substream *substream, int cmd, switch (cmd) { case SNDRV_PCM_TRIGGER_START: -case SNDRV_PCM_TRIGGER_RESUME: case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: mcbsp_data-active++; omap_mcbsp_start(mcbsp_data-bus_id, play, !play); break; +case SNDRV_PCM_TRIGGER_RESUME: +mcbsp_data-active++; +omap_mcbsp_enable_fclk(mcbsp_data-bus_id); +omap_mcbsp_config(mcbsp_data-bus_id, +mcbsp_data-regs); +omap_mcbsp_start(mcbsp_data-bus_id, play, !play); +break; case SNDRV_PCM_TRIGGER_STOP: -case SNDRV_PCM_TRIGGER_SUSPEND: case SNDRV_PCM_TRIGGER_PAUSE_PUSH: omap_mcbsp_stop(mcbsp_data-bus_id, play, !play); mcbsp_data-active--; break; +case SNDRV_PCM_TRIGGER_SUSPEND: +omap_mcbsp_stop(mcbsp_data-bus_id, play, !play); +omap_mcbsp_disable_fclk(mcbsp_data-bus_id); +mcbsp_data-active--; +break; default: err = -EINVAL; } -- 1.5.4.3 -- 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: [alsa-devel] [PATCH 1/2] OMAP3: MCBSP: Suspend/resume failure fix
-Original Message- From: alsa-devel-boun...@alsa-project.org [mailto:alsa-devel-boun...@alsa- project.org] On Behalf Of Mark Brown Sent: Friday, November 13, 2009 11:49 AM To: Wang, Jane Cc: alsa-de...@alsa-project.org; linux-omap@vger.kernel.org; peter.ujfal...@nokia.com; Wang, Jane Subject: Re: [alsa-devel] [PATCH 1/2] OMAP3: MCBSP: Suspend/resume failure fix On 13 Nov 2009, at 17:39, Jane Wang jw...@ti.com wrote: McBSP fucntional clock is not disabled when suspend is triggerd which prevents PER domain entering target low-power state. To fix the problem: 1. Disable/enable McBSP functional clock for suspend/resume. 2. In addition, reconfigure McBSP, this is needed when systerm comes out of OFF state. There is no need to resend your patches this iften - please allow at least a week or so for review. You only need to repost if addressing comments or it looks like the patch got missed. Sorry for sending this again. Something is not set correctly with my git send-email. The email did not reach the mailing lists, it only reached people in cc. -- 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: Some patches need reposting, inbox cleared, patchwork cleared
* Gadiyar, Anand gadi...@ti.com [091112 20:43]: Gadiyar, Anand wrote: Tony Lindgren wrote: Hi all, I'm finally done sorting through the patchwork patches to add to the omap for-next queue. So I've nuked my linux-omap inbox, and cleared the patches that I'm supposed to deal with in patchwork. Please check that you patch is applied (or merged into some existing patch) in the omap for-next branch. If you don't see your patch in the omap for-next branch, and you don't see the patch in the patchwork list, please repost your patch. When reposting, please send the whole series again. The patchwork pending patches are at: http://patchwork.kernel.org/project/linux-omap/list/ I have not touched the patches in patchwork that are tagged for felipebalbi, khilman or pwsan, so this message only concerns the ones I'm supposed to deal with. If you have lots of patches, you can also post a git branch that's rebased on commit 8171d88089ad63fc442b2bf32af7c18653adc5cb. Don't use the omap for-next for rebasing, as it's still changing. I've dropped all the patches that did not apply to for-next, or that have dependency to some other subsystem. I've commented on few of the patches that don't apply, but not all of them. Then some fix patches I've merged to the earlier patches, and for those there's no APPLIED email message. I've probably also accidentally trashed some perfectly valid patches too.. So please check and repost as needed! Tony, What happened to the 3630 support stuff that had been merged to your master branch as of yesterday? - Anand I meant, I see these patches in for-next, but they're not present in the l-o master branch. Is this deliberate? Hmm, it should be all merged into master branch also: $ git log --pretty=oneline --grep=3630 -n100 master arch/arm/mach-omap2 1739bbc268aeffc8d3d040cf6493ef4399a1a181 omap: 3630sdp: introduce 3630 sdp board support 13ac7e77f407e4c529eb1cb058031f896fd3e80c omap: zoom3: introduce zoom3 board support 79c6fce9daa80936eba830c49b6c559f5ca6295d omap: zoom: drop i2c-1 speed to 2400 3efbe15e7755108268b9ed72d3b6c6539f671ebe omap: zoom: rename zoom2 name to generic zoom 97bd76cf5e5c18ddcc8d38f997ae7aec4db3bb01 omap: zoom2: split board file for software reuse 2c8681ac36b4247c26c5789f63de9f522436c1c5 omap3630: Set omap3630 MMC1 I/O speed to 52Mhz 9283cf8a9d21889fb838634e7017e84acf69e79f omap3630: Configure HSMMC1 to 4-bit 1a309b7370e5aa6d703eded1afc53218a205a71f omap3630: Add HSMMC related checks 1e9e0b997c30b81b2165fa68cad4411e6136a8d2 omap3: 3630: update is_chip variable 6fb081fb525c05aed6fee28bf73fe4ee1fe2d5bd omap3: Introduce OMAP3630 Can you check and let me know if something is missing? Regards, Tony -- 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: CPUFREQ for beagle
-Original Message- From: linux-omap-ow...@vger.kernel.org [mailto:linux-omap-ow...@vger.kernel.org] On Behalf Of tarek attia Sent: Friday, November 13, 2009 11:09 AM To: linux-omap Subject: CPUFREQ for beagle I want the CPUFREQdriver for the beagleboard which can work with linux2.6.29 properly You should be able to find that in Kevin's git tree: git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-omap-pm.git pm-2.6.29 plz any one Help thnx in Advance tarek -- 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 -- 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: Some patches need reposting, inbox cleared, patchwork cleared
-Original Message- From: linux-omap-ow...@vger.kernel.org [mailto:linux-omap-ow...@vger.kernel.org] On Behalf Of Tony Lindgren Sent: Friday, November 13, 2009 12:03 PM To: Gadiyar, Anand Cc: linux-omap@vger.kernel.org Subject: Re: Some patches need reposting, inbox cleared, patchwork cleared Tony, What happened to the 3630 support stuff that had been merged to your master branch as of yesterday? - Anand I meant, I see these patches in for-next, but they're not present in the l-o master branch. Is this deliberate? Hmm, it should be all merged into master branch also: $ git log --pretty=oneline --grep=3630 -n100 master arch/arm/mach-omap2 1739bbc268aeffc8d3d040cf6493ef4399a1a181 omap: 3630sdp: introduce 3630 sdp board support 13ac7e77f407e4c529eb1cb058031f896fd3e80c omap: zoom3: introduce zoom3 board support 79c6fce9daa80936eba830c49b6c559f5ca6295d omap: zoom: drop i2c-1 speed to 2400 3efbe15e7755108268b9ed72d3b6c6539f671ebe omap: zoom: rename zoom2 name to generic zoom 97bd76cf5e5c18ddcc8d38f997ae7aec4db3bb01 omap: zoom2: split board file for software reuse 2c8681ac36b4247c26c5789f63de9f522436c1c5 omap3630: Set omap3630 MMC1 I/O speed to 52Mhz 9283cf8a9d21889fb838634e7017e84acf69e79f omap3630: Configure HSMMC1 to 4-bit 1a309b7370e5aa6d703eded1afc53218a205a71f omap3630: Add HSMMC related checks 1e9e0b997c30b81b2165fa68cad4411e6136a8d2 omap3: 3630: update is_chip variable 6fb081fb525c05aed6fee28bf73fe4ee1fe2d5bd omap3: Introduce OMAP3630 Can you check and let me know if something is missing? I just verified booting zoom3 on l-o master, and its working fine. Only extra patch that I have to add is the 8250 patch, that needs posting separately. Regards, Tony -- 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 -- 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: [alsa-devel] [PATCH 1/2] OMAP3: MCBSP: Suspend/resume failure fix
On 13 Nov 2009, at 17:52, Wang, Jane jw...@ti.com wrote: -Original Message- From: alsa-devel-boun...@alsa-project.org [mailto:alsa-devel- boun...@alsa- project.org] On Behalf Of Mark Brown Sent: Friday, November 13, 2009 11:49 AM To: Wang, Jane Cc: alsa-de...@alsa-project.org; linux-omap@vger.kernel.org; peter.ujfal...@nokia.com; Wang, Jane Subject: Re: [alsa-devel] [PATCH 1/2] OMAP3: MCBSP: Suspend/resume failure fix On 13 Nov 2009, at 17:39, Jane Wang jw...@ti.com wrote: McBSP fucntional clock is not disabled when suspend is triggerd which prevents PER domain entering target low-power state. To fix the problem: 1. Disable/enable McBSP functional clock for suspend/resume. 2. In addition, reconfigure McBSP, this is needed when systerm comes out of OFF state. There is no need to resend your patches this iften - please allow at least a week or so for review. You only need to repost if addressing comments or it looks like the patch got missed. Sorry for sending this again. Something is not set correctly with my git send-email. The email did not reach the mailing lists, it only reached people in cc. No, your posts are making it through to the lists just fine. Note that alsa-devel is moderated for non-subscribers -- 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: Some patches need reposting, inbox cleared, patchwork cleared
* Pandita, Vikram vikram.pand...@ti.com [091113 10:05]: -Original Message- From: linux-omap-ow...@vger.kernel.org [mailto:linux-omap-ow...@vger.kernel.org] On Behalf Of Tony Lindgren Sent: Friday, November 13, 2009 12:03 PM To: Gadiyar, Anand Cc: linux-omap@vger.kernel.org Subject: Re: Some patches need reposting, inbox cleared, patchwork cleared Tony, What happened to the 3630 support stuff that had been merged to your master branch as of yesterday? - Anand I meant, I see these patches in for-next, but they're not present in the l-o master branch. Is this deliberate? Hmm, it should be all merged into master branch also: $ git log --pretty=oneline --grep=3630 -n100 master arch/arm/mach-omap2 1739bbc268aeffc8d3d040cf6493ef4399a1a181 omap: 3630sdp: introduce 3630 sdp board support 13ac7e77f407e4c529eb1cb058031f896fd3e80c omap: zoom3: introduce zoom3 board support 79c6fce9daa80936eba830c49b6c559f5ca6295d omap: zoom: drop i2c-1 speed to 2400 3efbe15e7755108268b9ed72d3b6c6539f671ebe omap: zoom: rename zoom2 name to generic zoom 97bd76cf5e5c18ddcc8d38f997ae7aec4db3bb01 omap: zoom2: split board file for software reuse 2c8681ac36b4247c26c5789f63de9f522436c1c5 omap3630: Set omap3630 MMC1 I/O speed to 52Mhz 9283cf8a9d21889fb838634e7017e84acf69e79f omap3630: Configure HSMMC1 to 4-bit 1a309b7370e5aa6d703eded1afc53218a205a71f omap3630: Add HSMMC related checks 1e9e0b997c30b81b2165fa68cad4411e6136a8d2 omap3: 3630: update is_chip variable 6fb081fb525c05aed6fee28bf73fe4ee1fe2d5bd omap3: Introduce OMAP3630 Can you check and let me know if something is missing? I just verified booting zoom3 on l-o master, and its working fine. OK good. Can you also try booting this patch from Felipe on 3630: http://patchwork.kernel.org/patch/59540/ Only extra patch that I have to add is the 8250 patch, that needs posting separately. OK Regards, Tony -- 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: Some patches need reposting, inbox cleared, patchwork cleared
-Original Message- From: Tony Lindgren [mailto:t...@atomide.com] I just verified booting zoom3 on l-o master, and its working fine. OK good. Can you also try booting this patch from Felipe on 3630: http://patchwork.kernel.org/patch/59540/ Patch does not apply. Rebasing now and testing. Only extra patch that I have to add is the 8250 patch, that needs posting separately. OK Regards, Tony -- 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: Some patches need reposting, inbox cleared, patchwork cleared
Hmm, it should be all merged into master branch also: $ git log --pretty=oneline --grep=3630 -n100 master arch/arm/mach-omap2 1739bbc268aeffc8d3d040cf6493ef4399a1a181 omap: 3630sdp: introduce 3630 sdp board support 13ac7e77f407e4c529eb1cb058031f896fd3e80c omap: zoom3: introduce zoom3 board support 79c6fce9daa80936eba830c49b6c559f5ca6295d omap: zoom: drop i2c-1 speed to 2400 3efbe15e7755108268b9ed72d3b6c6539f671ebe omap: zoom: rename zoom2 name to generic zoom 97bd76cf5e5c18ddcc8d38f997ae7aec4db3bb01 omap: zoom2: split board file for software reuse 2c8681ac36b4247c26c5789f63de9f522436c1c5 omap3630: Set omap3630 MMC1 I/O speed to 52Mhz 9283cf8a9d21889fb838634e7017e84acf69e79f omap3630: Configure HSMMC1 to 4-bit 1a309b7370e5aa6d703eded1afc53218a205a71f omap3630: Add HSMMC related checks 1e9e0b997c30b81b2165fa68cad4411e6136a8d2 omap3: 3630: update is_chip variable 6fb081fb525c05aed6fee28bf73fe4ee1fe2d5bd omap3: Introduce OMAP3630 Can you check and let me know if something is missing? Looks like I pulled too early. I did a git pull now and the files are back. - Anand -- 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: Some patches need reposting, inbox cleared, patchwork cleared
Tony -Original Message- From: linux-omap-ow...@vger.kernel.org [mailto:linux-omap-ow...@vger.kernel.org] On Behalf Of Pandita, Vikram From: Tony Lindgren [mailto:t...@atomide.com] I just verified booting zoom3 on l-o master, and its working fine. OK good. Can you also try booting this patch from Felipe on 3630: http://patchwork.kernel.org/patch/59540/ Patch does not apply. Rebasing now and testing. Rebased Patch (attached) boots up fine now on 3630 Zoom3 board. Logs: CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c53c7f CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache Machine: OMAP Zoom3 board Memory policy: ECC disabled, Data cache writeback OMAP3630 ES1.0 (l2cache iva sgx neon isp ) arm-omap-code-cleanup-to-id.c.patch Description: arm-omap-code-cleanup-to-id.c.patch
RE: CPUFREQ for beagle
-Original Message- From: tarek attia [mailto:tarek.m.at...@gmail.com] Sent: Friday, November 13, 2009 12:12 PM To: Pandita, Vikram Subject: Re: CPUFREQ for beagle thnx for reply :) I tried it before but it downloaded kernel 2.6.32 which didn't work with the root file system of Angstrom wich relies on kernel 2.6.29 ! $git clone git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-omap-pm.git $git checkout -b pm-29 origin/pm-2.6.29 This will get you to 2.6.29 pm code for sure. Any idea ??? any help will be appreciated Best Regards tarek On Fri, Nov 13, 2009 at 8:03 PM, Pandita, Vikram vikram.pand...@ti.com wrote: -Original Message- From: linux-omap-ow...@vger.kernel.org [mailto:linux-omap-ow...@vger.kernel.org] On Behalf Of tarek attia Sent: Friday, November 13, 2009 11:09 AM To: linux-omap Subject: CPUFREQ for beagle I want the CPUFREQdriver for the beagleboard which can work with linux2.6.29 properly You should be able to find that in Kevin's git tree: git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-omap-pm.git pm-2.6.29 plz any one Help thnx in Advance tarek -- 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 -- 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: n800/810 boot log
Gadiyar, Anand wrote at 2009-11-13 00:58 -0600: Could someone please send me a bootlog of n800/810 with CONFIG_DEBUG_LL enabled? (any recent kernel will do, 2.6.29 and above. An older one is also okay) Is it possible for me to do this without a serial connection? Like say booting Maemo with a recent kernel and grabbing dmesg... signature.asc Description: Digital signature
RE: n800/810 boot log
green wrote: Gadiyar, Anand wrote at 2009-11-13 00:58 -0600: Could someone please send me a bootlog of n800/810 with CONFIG_DEBUG_LL enabled? (any recent kernel will do, 2.6.29 and above. An older one is also okay) Is it possible for me to do this without a serial connection? Like say booting Maemo with a recent kernel and grabbing dmesg... I suppose it should be good enough. I'm just looking for the MUSB revision info on those boards (should have asked explicitly for that :) ). That should show up in dmesg. - Anand -- 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 12/14] omap3: move check_revision above check_features, v2
* Tony Lindgren t...@atomide.com [091112 16:09]: From: Tony Lindgren Menon Looks like the From: got messed up. Here's a fixed version. Tony From b6c79698403f9926fb43d7e5cef9503a30b5709f Mon Sep 17 00:00:00 2001 From: Nishanth Menon n...@ti.com Date: Fri, 13 Nov 2009 12:41:25 -0800 Subject: [PATCH] omap3: move check_revision above check_features omap3_check_revision() does not depend on omap3_check_features() move this above so that we can add logic based on revision detected in check_features. Signed-off-by: Nishanth Menon n...@ti.com Acked-by: Mika Westerberg mika.westerb...@iki.fi Signed-off-by: Tony Lindgren t...@atomide.com diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c index 441ca26..6c11b41 100644 --- a/arch/arm/mach-omap2/id.c +++ b/arch/arm/mach-omap2/id.c @@ -352,8 +352,8 @@ void __init omap2_check_revision(void) if (cpu_is_omap24xx()) omap24xx_check_revision(); else if (cpu_is_omap34xx()) { - omap3_check_features(); omap3_check_revision(); + omap3_check_features(); omap3_cpuinfo(); } else if (cpu_is_omap44xx()) {
Re: [PATCH 7/10] omap mailbox: expose omap_mbox_enable()/disable_irq()
* C.A, Subramaniam subramaniam...@ti.com [091113 04:32]: From 177e2efb7384c03ac445b55e2e4ccf44e2160051 Mon Sep 17 00:00:00 2001 From: C A Subramaniam subramaniam...@ti.com Date: Fri, 13 Nov 2009 15:04:57 +0530 Subject: [PATCH 7/10] omap mailbox: expose omap_mbox_enable()/disable_irq() Signed-off-by: Hiroshi DOYU hiroshi.d...@nokia.com Is this missing a Signed-off-by: C A Subramaniam subramaniam...@ti.com, or should this be From: Hiroshi DOYU hiroshi.d...@nokia.com? Regards, Tony --- arch/arm/plat-omap/include/plat/mailbox.h | 12 arch/arm/plat-omap/mailbox.c | 12 ++-- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/arch/arm/plat-omap/include/plat/mailbox.h b/arch/arm/plat-omap/include/plat/mailbox.h index 8260a3f..bf06953 100644 --- a/arch/arm/plat-omap/include/plat/mailbox.h +++ b/arch/arm/plat-omap/include/plat/mailbox.h @@ -92,4 +92,16 @@ static inline void omap_mbox_restore_ctx(struct omap_mbox *mbox) mbox-ops-restore_ctx(mbox); } +static inline void omap_mbox_enable_irq(struct omap_mbox *mbox, + omap_mbox_irq_t irq) +{ + mbox-ops-enable_irq(mbox, irq); +} + +static inline void omap_mbox_disable_irq(struct omap_mbox *mbox, + omap_mbox_irq_t irq) +{ + mbox-ops-disable_irq(mbox, irq); +} + #endif /* MAILBOX_H */ diff --git a/arch/arm/plat-omap/mailbox.c b/arch/arm/plat-omap/mailbox.c index eb76df2..d5377a3 100644 --- a/arch/arm/plat-omap/mailbox.c +++ b/arch/arm/plat-omap/mailbox.c @@ -50,14 +50,6 @@ static inline int mbox_fifo_full(struct omap_mbox *mbox) } /* Mailbox IRQ handle functions */ -static inline void enable_mbox_irq(struct omap_mbox *mbox, omap_mbox_irq_t irq) -{ - mbox-ops-enable_irq(mbox, irq); -} -static inline void disable_mbox_irq(struct omap_mbox *mbox, omap_mbox_irq_t irq) -{ - mbox-ops-disable_irq(mbox, irq); -} static inline void ack_mbox_irq(struct omap_mbox *mbox, omap_mbox_irq_t irq) { if (mbox-ops-ack_irq) @@ -144,7 +136,7 @@ static void mbox_tx_work(struct work_struct *work) ret = __mbox_msg_send(mbox, tx_data-msg); if (ret) { - enable_mbox_irq(mbox, IRQ_TX); + omap_mbox_enable_irq(mbox, IRQ_TX); spin_lock(q-queue_lock); blk_requeue_request(q, rq); spin_unlock(q-queue_lock); @@ -196,7 +188,7 @@ static void mbox_rxq_fn(struct request_queue *q) static void __mbox_tx_interrupt(struct omap_mbox *mbox) { - disable_mbox_irq(mbox, IRQ_TX); + omap_mbox_disable_irq(mbox, IRQ_TX); ack_mbox_irq(mbox, IRQ_TX); schedule_work(mbox-txq-work); } -- 1.5.3.2 -- 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 8/10] omap mailbox: OMAP4-Mailbox - Adds code changes to support OMAP4 mailbox
Hi, Just noticed all the iffdef else stuff here, that should be easy to remove. * C.A, Subramaniam subramaniam...@ti.com [091113 04:33]: From 1a5865e67ce5fae94ae283882411cd01f48e07a7 Mon Sep 17 00:00:00 2001 From: C A Subramaniam subramaniam...@ti.com Date: Fri, 13 Nov 2009 16:42:40 +0530 Subject: [PATCH 8/10] omap mailbox: OMAP4-Mailbox - Adds code changes to support OMAP4 mailbox. This patch adds code changes in the mailbox driver module to add support for OMAP4 mailbox. Signed-off-by: Hari Kanigeri h-kanige...@ti.com Signed-off-by: C A Subramaniam subramaniam...@ti.com Signed-off-by: Ramesh Gupta G grgu...@ti.com --- arch/arm/mach-omap2/mailbox.c | 118 +++-- arch/arm/plat-omap/mailbox.c | 25 +++-- 2 files changed, 122 insertions(+), 21 deletions(-) diff --git a/arch/arm/mach-omap2/mailbox.c b/arch/arm/mach-omap2/mailbox.c index 5ba3aa6..3b21a5d 100644 --- a/arch/arm/mach-omap2/mailbox.c +++ b/arch/arm/mach-omap2/mailbox.c @@ -18,17 +18,26 @@ #include plat/mailbox.h #include mach/irqs.h +#define DRV_NAME omap2-mailbox + #define MAILBOX_REVISION 0x000 #define MAILBOX_SYSCONFIG0x010 #define MAILBOX_SYSSTATUS0x014 #define MAILBOX_MESSAGE(m) (0x040 + 4 * (m)) #define MAILBOX_FIFOSTATUS(m)(0x080 + 4 * (m)) #define MAILBOX_MSGSTATUS(m) (0x0c0 + 4 * (m)) + +#ifdef CONFIG_ARCH_OMAP4 +#define MAILBOX_IRQSTATUS(u) (0x104 + 10 * (u)) +#define MAILBOX_IRQENABLE(u) (0x108 + 10 * (u)) +#define MAILBOX_IRQENABLE_CLR(u) (0x10c + 10 * (u)) +#else #define MAILBOX_IRQSTATUS(u) (0x100 + 8 * (u)) #define MAILBOX_IRQENABLE(u) (0x104 + 8 * (u)) +#endif How about just have separate defines for OMAP4: #define OMAP4_MAILBOX_IRQSTATUS(u) (0x104 + 10 * (u)) #define OMAP4_MAILBOX_IRQENABLE(u) (0x108 + 10 * (u)) #define OMAP4_MAILBOX_IRQENABLE_CLR(u) (0x10c + 10 * (u)) -#define MAILBOX_IRQ_NEWMSG(u)(1 (2 * (u))) -#define MAILBOX_IRQ_NOTFULL(u) (1 (2 * (u) + 1)) +#define MAILBOX_IRQ_NEWMSG(m)(1 (2 * (m))) +#define MAILBOX_IRQ_NOTFULL(m) (1 (2 * (m) + 1)) /* SYSCONFIG: register bit definition */ #define AUTOIDLE (1 0) @@ -38,7 +47,12 @@ /* SYSSTATUS: register bit definition */ #define RESETDONE(1 0) +#ifdef CONFIG_ARCH_OMAP4 +#define MBOX_REG_SIZE0x130 +#else #define MBOX_REG_SIZE0x120 +#endif + #define OMAP4_MBOX_REG_SIZE 0x130 #define MBOX_NR_REGS (MBOX_REG_SIZE / sizeof(u32)) static void __iomem *mbox_base; @@ -57,6 +71,9 @@ struct omap_mbox2_priv { u32 newmsg_bit; u32 notfull_bit; u32 ctx[MBOX_NR_REGS]; +#ifdef CONFIG_ARCH_OMAP4 + unsigned long irqdisable; +#endif }; static struct clk *mbox_ick_handle; @@ -82,8 +99,9 @@ static int omap2_mbox_startup(struct omap_mbox *mbox) mbox_ick_handle = clk_get(NULL, mailboxes_ick); if (IS_ERR(mbox_ick_handle)) { - pr_err(Can't get mailboxes_ick\n); - return -ENODEV; + printk(KERN_ERR Could not get mailboxes_ick: %d\n, + PTR_ERR(mbox_ick_handle)); + return PTR_ERR(mbox_ick_handle); } clk_enable(mbox_ick_handle); @@ -115,6 +133,7 @@ static void omap2_mbox_shutdown(struct omap_mbox *mbox) { clk_disable(mbox_ick_handle); clk_put(mbox_ick_handle); + mbox_ick_handle = NULL; } /* Mailbox FIFO handle functions */ @@ -143,7 +162,7 @@ static int omap2_mbox_fifo_full(struct omap_mbox *mbox) { struct omap_mbox2_fifo *fifo = ((struct omap_mbox2_priv *)mbox-priv)-tx_fifo; - return (mbox_read_reg(fifo-fifo_stat)); + return mbox_read_reg(fifo-fifo_stat); } /* Mailbox IRQ handle functions */ @@ -163,10 +182,9 @@ static void omap2_mbox_disable_irq(struct omap_mbox *mbox, { struct omap_mbox2_priv *p = (struct omap_mbox2_priv *)mbox-priv; u32 l, bit = (irq == IRQ_TX) ? p-notfull_bit : p-newmsg_bit; - - l = mbox_read_reg(p-irqenable); + l = mbox_read_reg(p-irqdisable); l = ~bit; - mbox_write_reg(l, p-irqenable); + mbox_write_reg(l, p-irqdisable); } static void omap2_mbox_ack_irq(struct omap_mbox *mbox, @@ -189,7 +207,7 @@ static int omap2_mbox_is_irq(struct omap_mbox *mbox, u32 enable = mbox_read_reg(p-irqenable); u32 status = mbox_read_reg(p-irqstatus); - return (enable status bit); + return (int)(enable status bit); } static void omap2_mbox_save_ctx(struct omap_mbox *mbox) @@ -242,9 +260,12 @@ static struct omap_mbox_ops omap2_mbox_ops = { */ /* FIXME: the following structs should be filled automatically by the user id */ - +#ifdef CONFIG_ARCH_OMAP4 +static struct
[APPLIED] [PATCH 2/2 (for-next)] ARM: OMAP3: Add defconfig for IGEP v2 board
This patch has been applied to the linux-omap by youw fwiendly patch wobot. Branch in linux-omap: for-next Initial commit ID (Likely to change): 45ab940bff69daf16f8adf16840b0c9d2b194e81 PatchWorks http://patchwork.kernel.org/patch/59782/ Git (Likely to change, and takes a while to get mirrored) http://git.kernel.org/?p=linux/kernel/git/tmlind/linux-omap-2.6.git;a=commit;h=45ab940bff69daf16f8adf16840b0c9d2b194e81 -- 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
[APPLIED] [PATCH] omap3evm: MIgrate to smsc911x ethernet driver.
This patch has been applied to the linux-omap by youw fwiendly patch wobot. Branch in linux-omap: for-next Initial commit ID (Likely to change): 265da0faeeb7e1b5b4ff98f6a6c0b65816051645 PatchWorks http://patchwork.kernel.org/patch/59758/ Git (Likely to change, and takes a while to get mirrored) http://git.kernel.org/?p=linux/kernel/git/tmlind/linux-omap-2.6.git;a=commit;h=265da0faeeb7e1b5b4ff98f6a6c0b65816051645 -- 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
[APPLIED] [PATCH v4] OMAP: GPIO module enable/disable
This patch has been applied to the linux-omap by youw fwiendly patch wobot. Branch in linux-omap: for-next Initial commit ID (Likely to change): e76818f60ec2d475b5f462e79651d8f09ad455d4 PatchWorks http://patchwork.kernel.org/patch/59797/ Git (Likely to change, and takes a while to get mirrored) http://git.kernel.org/?p=linux/kernel/git/tmlind/linux-omap-2.6.git;a=commit;h=e76818f60ec2d475b5f462e79651d8f09ad455d4 -- 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: DMA: Use some define rather than a hexadecimal constant for LCD register
* Janusz Krzysztofik jkrzy...@tis.icnet.pl [091110 03:20]: The patch corrects the issue introduced with my previous patch: OMAP: DMA: Fix omapfb/lcdc on OMAP1510 broken when PM set as pointed out by OMAP subsystem maintainer. Looks like this patch needs to be refreshed against linux-omap for-next branch. Tony Signed-off-by: Janusz Krzysztofik jkrzy...@tis.icnet.pl --- Hi, I'd really like to have the first one get in as a fix in the -rc series, that's why I decided to correct the issue in a follow up. Thanks, Janusz --- -- 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 diff -upr linux-2.6.32-rc6.orig/arch/arm/plat-omap/dma.c linux-2.6.32-rc6/arch/arm/plat-omap/dma.c --- linux-2.6.32-rc6.orig/arch/arm/plat-omap/dma.c2009-11-05 19:30:39.0 +0100 +++ linux-2.6.32-rc6/arch/arm/plat-omap/dma.c 2009-11-10 03:57:06.0 +0100 @@ -34,6 +34,7 @@ #include mach/hardware.h #include mach/dma.h +#include mach/omapfb.h #include mach/tc.h #undef DEBUG @@ -1113,7 +1114,7 @@ int omap_dma_running(void) * when it gets enabled, so assume DMA running if LCD enabled. */ if (cpu_is_omap1510()) - if (omap_readw(0xfffec000 + 0x00) (1 0)) + if (omap_readw(OMAP_LCDC_CONTROL) OMAP_LCDC_CTRL_LCD_EN) return 1; /* Check if LCD DMA is running */ diff -upr linux-2.6.32-rc6.orig/arch/arm/plat-omap/include/mach/omapfb.h linux-2.6.32-rc6/arch/arm/plat-omap/include/mach/omapfb.h --- linux-2.6.32-rc6.orig/arch/arm/plat-omap/include/mach/omapfb.h 2009-11-03 20:37:49.0 +0100 +++ linux-2.6.32-rc6/arch/arm/plat-omap/include/mach/omapfb.h 2009-11-10 03:52:00.0 +0100 @@ -170,6 +170,38 @@ enum omapfb_update_mode { #include mach/board.h +#define OMAP_LCDC_BASE 0xfffec000 +#define OMAP_LCDC_SIZE 256 +#define OMAP_LCDC_IRQINT_LCD_CTRL + +#define OMAP_LCDC_CONTROL(OMAP_LCDC_BASE + 0x00) +#define OMAP_LCDC_TIMING0(OMAP_LCDC_BASE + 0x04) +#define OMAP_LCDC_TIMING1(OMAP_LCDC_BASE + 0x08) +#define OMAP_LCDC_TIMING2(OMAP_LCDC_BASE + 0x0c) +#define OMAP_LCDC_STATUS (OMAP_LCDC_BASE + 0x10) +#define OMAP_LCDC_SUBPANEL (OMAP_LCDC_BASE + 0x14) +#define OMAP_LCDC_LINE_INT (OMAP_LCDC_BASE + 0x18) +#define OMAP_LCDC_DISPLAY_STATUS (OMAP_LCDC_BASE + 0x1c) + +#define OMAP_LCDC_STAT_DONE (1 0) +#define OMAP_LCDC_STAT_VSYNC (1 1) +#define OMAP_LCDC_STAT_SYNC_LOST (1 2) +#define OMAP_LCDC_STAT_ABC (1 3) +#define OMAP_LCDC_STAT_LINE_INT (1 4) +#define OMAP_LCDC_STAT_FUF (1 5) +#define OMAP_LCDC_STAT_LOADED_PALETTE(1 6) + +#define OMAP_LCDC_CTRL_LCD_EN(1 0) +#define OMAP_LCDC_CTRL_LCD_TFT (1 7) +#define OMAP_LCDC_CTRL_LINE_IRQ_CLR_SEL (1 10) + +#define OMAP_LCDC_IRQ_VSYNC (1 2) +#define OMAP_LCDC_IRQ_DONE (1 3) +#define OMAP_LCDC_IRQ_LOADED_PALETTE (1 4) +#define OMAP_LCDC_IRQ_LINE_NIRQ (1 5) +#define OMAP_LCDC_IRQ_LINE (1 6) +#define OMAP_LCDC_IRQ_MASK (((1 5) - 1) 2) + #define OMAP_LCDC_INV_VSYNC 0x0001 #define OMAP_LCDC_INV_HSYNC 0x0002 #define OMAP_LCDC_INV_PIX_CLOCK 0x0004 diff -upr linux-2.6.32-rc6.orig/drivers/video/omap/lcdc.c linux-2.6.32-rc6/drivers/video/omap/lcdc.c --- linux-2.6.32-rc6.orig/drivers/video/omap/lcdc.c 2009-11-03 20:37:49.0 +0100 +++ linux-2.6.32-rc6/drivers/video/omap/lcdc.c2009-11-10 03:51:16.0 +0100 @@ -38,38 +38,6 @@ #define MODULE_NAME lcdc -#define OMAP_LCDC_BASE 0xfffec000 -#define OMAP_LCDC_SIZE 256 -#define OMAP_LCDC_IRQINT_LCD_CTRL - -#define OMAP_LCDC_CONTROL(OMAP_LCDC_BASE + 0x00) -#define OMAP_LCDC_TIMING0(OMAP_LCDC_BASE + 0x04) -#define OMAP_LCDC_TIMING1(OMAP_LCDC_BASE + 0x08) -#define OMAP_LCDC_TIMING2(OMAP_LCDC_BASE + 0x0c) -#define OMAP_LCDC_STATUS (OMAP_LCDC_BASE + 0x10) -#define OMAP_LCDC_SUBPANEL (OMAP_LCDC_BASE + 0x14) -#define OMAP_LCDC_LINE_INT (OMAP_LCDC_BASE + 0x18) -#define OMAP_LCDC_DISPLAY_STATUS (OMAP_LCDC_BASE + 0x1c) - -#define OMAP_LCDC_STAT_DONE (1 0) -#define OMAP_LCDC_STAT_VSYNC (1 1) -#define OMAP_LCDC_STAT_SYNC_LOST (1 2) -#define OMAP_LCDC_STAT_ABC (1 3) -#define OMAP_LCDC_STAT_LINE_INT (1 4) -#define OMAP_LCDC_STAT_FUF (1 5) -#define OMAP_LCDC_STAT_LOADED_PALETTE(1 6) - -#define OMAP_LCDC_CTRL_LCD_EN
Re: [PATCH 2/9 v2] omap3: pm: introduce opp accessor functions
Nishanth Menon n...@ti.com writes: Modifies the initial patch From Sanjeev: http://patchwork.kernel.org/patch/50998/ NOTE: The original opp_table introduced by Sanjeev is not needed anymore as we can use enabled flag to have better granularity in enable/disable of OPPs. This introduces the following accessor functions: freq_to_opp and opp_to_freq: Matching functions to convert OPP to freq and viceversa. freq_to_vsel: Converts a frequency to corresponding voltage. opp_enable: To enable/disable a specific OPP in a OPP table this allows granular runtime disable/enable of specific OPPs, esp when used in conjunction with search and mapping functions get_next_freq: A search function to get next matching frequency. This could possibly provide the basis for more complex OPP transition algos of the future. get_limit_freq: A search function to get the least or maximum frequency based on search criteria. Allows for independence from OPP_IDs in the future. Since the accessor functions hide the details of the table implementation, the opp table is now moved away from omap3-opp.h to pm34xx.c. The terminator entry is needed at the start and end of the table as it is still needed for reverse and forward search as the length of the table is unknown. Tests done: Accessor functions standalone tested on a PC host with dummy OPP table to simulate boundary, invalid and valid conditions, SDP3430, SDP3630 for system stability. Cc: Benoit Cousson b-cous...@ti.com Cc: Jon Hunter jon-hun...@ti.com Cc: Kevin Hilman khil...@deeprootsystems.com Cc: Madhusudhan Chikkature Rajashekar madhu...@ti.com Cc: Paul Walmsley p...@pwsan.com Cc: Romit Dasgupta ro...@ti.com Cc: Sanjeev Premi pr...@ti.com Cc: Santosh Shilimkar santosh.shilim...@ti.com Cc: Sergio Alberto Aguirre Rodriguez saagui...@ti.com Cc: SuiLun Lam s-...@ti.com Cc: Thara Gopinath th...@ti.com Cc: Vishwanath Sripathy vishwanath...@ti.com Signed-off-by: Sanjeev Premi pr...@ti.com Signed-off-by: Nishanth Menon n...@ti.com Some general style comments: - Very good and throrough commenting, Nice! Some minor changes needed - use kerneldoc style throughout (applies to other patches as well) - use standard multi-line comments - overuse of BUG(). Failures should be more graceful, returning errors and checking errors in callers - EXPORT_SYMBOL(): none of these OPP accessors should be exported to drivers. This is PM core code only. General design comments: OPP accessor functions don't belong in omap-pm.h. A new OPP header should be used. Maybe plat/opp.h May be personal preference, but I'm not crazy about the implementation of the accessor functions. I think moving to a list and using the standard list iterators will clean this up I know we discussed this on the initial call and some said that walking an array would be faster. But looking at the code, I think the readability would improve greatly and we don't need OPP tables with dummy first and last entries etc. A list implementation would also allow you make generalized iterators like is done in the clkdm and pwrdm code (see pwrdm_for_each, clkdm_for_each.) At a high level, I'm not in line with the general direction here. In particular, this series continues the use of passing around OPP IDs instead of real world values like frequencies. I think a general cleanup is needed to get rid of the OPP IDs, so either real world values (frequencies and voltages) are passed around or pointers to OPP structs are passed. I know one of your goals was to make this less intrusive, but for me, nothing in the current OPP layer and SRF is upstreamable anyways, so I have no objectsion to intrusive changes to these layers. More detailed comments below... --- arch/arm/mach-omap2/omap3-opp.h | 40 +--- arch/arm/mach-omap2/pm.c | 160 + arch/arm/mach-omap2/pm34xx.c | 42 arch/arm/plat-omap/include/plat/omap-pm.h | 109 4 files changed, 314 insertions(+), 37 deletions(-) diff --git a/arch/arm/mach-omap2/omap3-opp.h b/arch/arm/mach-omap2/omap3-opp.h index 42557e1..27e2ca5 100644 --- a/arch/arm/mach-omap2/omap3-opp.h +++ b/arch/arm/mach-omap2/omap3-opp.h @@ -21,42 +21,8 @@ #define S83M8300 #define S166M 16600 -static struct omap_opp omap3_mpu_rate_table[] = { - {0, 0, 0, 0}, - /*OPP1*/ - {true, S125M, VDD1_OPP1, 0x1E}, - /*OPP2*/ - {true, S250M, VDD1_OPP2, 0x26}, - /*OPP3*/ - {true, S500M, VDD1_OPP3, 0x30}, - /*OPP4*/ - {true, S550M, VDD1_OPP4, 0x36}, - /*OPP5*/ - {true, S600M, VDD1_OPP5, 0x3C}, -}; - -static struct omap_opp omap3_l3_rate_table[] = { - {0, 0, 0, 0}, - /*OPP1*/ - {false, 0, VDD2_OPP1, 0x1E}, - /*OPP2*/ - {true, S83M, VDD2_OPP2, 0x24}, - /*OPP3*/ - {true, S166M, VDD2_OPP3, 0x2C}, -}; - -static struct omap_opp
Re: [build errro on for-next branch] RE: [1/3] omap3evm: ehci: Add EHCI padconfig for board Rev = E
* Gupta, Ajay Kumar ajay.gu...@ti.com [091113 00:58]: Hi, * Ajay Kumar Gupta ajay.gu...@ti.com [091028 16:12]: OMAP3EVM (Rev = E) has EHCI port on main board itself. Apart from this there is a slot to connect Mistral Daughter Card (MDC) to it which also has one EHCI port. Only one EHCI port can be used at a time and we can choose the port using GPIO61. These are the new GPIO lines used for different purpose on EHCI interface. - GPIO21 - EHCI phy reset - GPIO22 - EHCI VBUS enable - GPIO61 - Selects EHCI port either on main board or on Mistral Daughter Card (MDC). Let's put this on hold until we have the new mux framework. Should be trivial to do then. Tony, Another patch [1] which depends on this is already merged to 'for-next' branch causing a compilation error. [1] omap3evm: ehci: Update EHCI support on OMAP3EVM (Rev = E) So either revert the above patch from 'for-next' or merge the pinmux patch also. OK, merged the additional pinmux patch into the Update EHCI support.. patch. Tony Regards, Ajay Tony Signed-off-by: Ajay Kumar Gupta ajay.gu...@ti.com --- arch/arm/mach-omap2/mux.c |7 +++ arch/arm/plat-omap/include/plat/mux.h |5 + 2 files changed, 12 insertions(+), 0 deletions(-) diff --git a/arch/arm/mach-omap2/mux.c b/arch/arm/mach-omap2/mux.c index 32c953e..00ad592 100644 --- a/arch/arm/mach-omap2/mux.c +++ b/arch/arm/mach-omap2/mux.c @@ -551,6 +551,13 @@ MUX_CFG_34XX(AF13_3430_MMC3_DAT3, 0x5e2, MUX_CFG_34XX(AF26_34XX_SYS_NIRQ, 0x1E0, OMAP3_WAKEUP_EN | OMAP34XX_PIN_INPUT_PULLUP | OMAP34XX_MUX_MODE0) +/* EHCI GPIO's on OMAP3EVM (Rev = E) */ +MUX_CFG_34XX(AH14_34XX_GPIO21, 0x5ea, + OMAP34XX_MUX_MODE4 | OMAP34XX_PIN_INPUT_PULLUP) +MUX_CFG_34XX(AF9_34XX_GPIO22, 0x5ec, + OMAP34XX_MUX_MODE4 | OMAP34XX_PIN_INPUT_PULLUP) +MUX_CFG_34XX(U3_34XX_GPIO61, 0x0c8, + OMAP34XX_MUX_MODE4 | OMAP34XX_PIN_INPUT_PULLUP) }; #define OMAP34XX_PINS_SZ ARRAY_SIZE(omap34xx_pins) diff --git a/arch/arm/plat-omap/include/plat/mux.h b/arch/arm/plat- omap/include/plat/mux.h index f3c1d8a..8316d4f 100644 --- a/arch/arm/plat-omap/include/plat/mux.h +++ b/arch/arm/plat-omap/include/plat/mux.h @@ -840,6 +840,11 @@ enum omap34xx_index { /* SYS_NIRQ T2 INT1 */ AF26_34XX_SYS_NIRQ, + + /* EHCI GPIO's for OMAP3EVM (Rev = E) */ + AH14_34XX_GPIO21, + AF9_34XX_GPIO22, + U3_34XX_GPIO61, }; struct omap_mux_cfg { -- 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: Some patches need reposting, inbox cleared, patchwork cleared
* Pandita, Vikram vikram.pand...@ti.com [091113 11:06]: Tony -Original Message- From: linux-omap-ow...@vger.kernel.org [mailto:linux-omap-ow...@vger.kernel.org] On Behalf Of Pandita, Vikram From: Tony Lindgren [mailto:t...@atomide.com] I just verified booting zoom3 on l-o master, and its working fine. OK good. Can you also try booting this patch from Felipe on 3630: http://patchwork.kernel.org/patch/59540/ Patch does not apply. Rebasing now and testing. Rebased Patch (attached) boots up fine now on 3630 Zoom3 board. Logs: CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c53c7f CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache Machine: OMAP Zoom3 board Memory policy: ECC disabled, Data cache writeback OMAP3630 ES1.0 (l2cache iva sgx neon isp ) OK, thanks applying it. Tony -- 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 8/9 v2] omap3: pm: introduce dynamic OPP
Nishanth Menon n...@ti.com writes: OPP tables have been used as static arrays till now this causes limitations in terms of ability to dynamically making decisions for cpu types and populating it with the right values. This implementation is based on the discussions in the thread: http://marc.info/?l=linux-omapm=125482970102327w=2 inputs from Romit, Benoit, Kevin, Sanjeev, Santosh acked. omap3_pm_init_opp_table is introduced here, and the default omap3 tables have been renamed to omap34xx_ tables, original omap3_xx tables are now dynamically allocated and populated. Corresponding board files calling omap2_init_common_hw with the active opp table params have been updated with this patch. This now paves way to introduce 3630 OPP tables. Tested on: SDP3430 - SDP3630 boot breaks with this patch (as SDP3630 needs corresponding correct VDD2 freq w.r.t SDRC clk. The next patch in this series fixes things) Cc: Benoit Cousson b-cous...@ti.com Cc: Jon Hunter jon-hun...@ti.com Cc: Kevin Hilman khil...@deeprootsystems.com Cc: Madhusudhan Chikkature Rajashekar madhu...@ti.com Cc: Paul Walmsley p...@pwsan.com Cc: Romit Dasgupta ro...@ti.com Cc: Sanjeev Premi pr...@ti.com Cc: Santosh Shilimkar santosh.shilim...@ti.com Cc: Sergio Alberto Aguirre Rodriguez saagui...@ti.com Cc: SuiLun Lam s-...@ti.com Cc: Thara Gopinath th...@ti.com Cc: Vishwanath Sripathy vishwanath...@ti.com Signed-off-by: Nishanth Menon n...@ti.com [...] +void __init omap3_pm_init_opp_table(void) +{ + /* Populate the base CPU rate tables here */ + omap3_mpu_rate_table = kmalloc(sizeof(omap34xx_mpu_rate_table), + GFP_KERNEL); + omap3_dsp_rate_table = kmalloc(sizeof(omap34xx_dsp_rate_table), + GFP_KERNEL); + omap3_l3_rate_table = kmalloc(sizeof(omap34xx_l3_rate_table), + GFP_KERNEL); + + BUG_ON(!omap3_mpu_rate_table || !omap3_dsp_rate_table || + !omap3_l3_rate_table); + + memcpy(omap3_mpu_rate_table, omap34xx_mpu_rate_table, + sizeof(omap34xx_mpu_rate_table)); + memcpy(omap3_dsp_rate_table, omap34xx_dsp_rate_table, + sizeof(omap34xx_dsp_rate_table)); + memcpy(omap3_l3_rate_table, omap34xx_l3_rate_table, + sizeof(omap34xx_l3_rate_table)); +} + Minor issue, but FYI... rather than the kmalloc + memcpy, you can use kmemdup() to do the same thing. Kevin -- 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][PATCH] ARM: OMAP: McBSP: Use register cache
Hi, This patch got outdated and does not apply any more, but the idea still hangs in my queue. I am not sure why the patch has never been acknowledged nor rejected. Maybe it just got missed? Could you please take a position on this idea? Thanks, Janusz http://www.spinics.net/lists/linux-omap/msg16720.html Wednesday 12 August 2009 12:39:25 Janusz Krzysztofik wrote: Change the way McBSP registers are updated: use cached values instead of relying upon those read back from the device. With this patch, I have finally managed to get rid of all random playback/recording hangups on my OMAP1510 based Amstrad Delta (buggy?) hardware. Before that, I could suspect that values read back from McBSP registers before updating them happened to be errornous. I think there is one important point that makes this patch worth of applying, apart from my hardware quality. With the current code, if it ever happens to any machine, no matter if OMAP1510 or newer, to read incorrect value from a McBSP register, this wrong value will get written back without any checking. That can lead to hardware damage if, for example, an input pin is turned into output as a result. Created against linux-2.6.31-rc5 Tested on Amstrad Delta Signed-off-by: Janusz Krzysztofik --- --- linux-2.6.31-rc5/arch/arm/plat-omap/include/mach/mcbsp.h.orig 2009-08-11 23:43:25.0 +0200 +++ linux-2.6.31-rc5/arch/arm/plat-omap/include/mach/mcbsp.h 2009-08-11 23:45:46.0 +0200 @@ -377,6 +377,8 @@ struct omap_mcbsp { struct omap_mcbsp_platform_data *pdata; struct clk *iclk; struct clk *fclk; + + struct omap_mcbsp_reg_cfg reg_cache; }; extern struct omap_mcbsp **mcbsp_ptr; extern int omap_mcbsp_count; --- linux-2.6.31-rc5/arch/arm/plat-omap/mcbsp.c.orig 2009-08-11 23:43:25.0 +0200 +++ linux-2.6.31-rc5/arch/arm/plat-omap/mcbsp.c 2009-08-11 23:45:35.0 +0200 @@ -91,6 +91,7 @@ static void omap_mcbsp_dump_reg(u8 id) static irqreturn_t omap_mcbsp_tx_irq_handler(int irq, void *dev_id) { struct omap_mcbsp *mcbsp_tx = dev_id; + struct omap_mcbsp_reg_cfg *reg_cache = mcbsp_tx-reg_cache; u16 irqst_spcr2; irqst_spcr2 = OMAP_MCBSP_READ(mcbsp_tx-io_base, SPCR2); @@ -101,7 +102,7 @@ static irqreturn_t omap_mcbsp_tx_irq_han irqst_spcr2); /* Writing zero to XSYNC_ERR clears the IRQ */ OMAP_MCBSP_WRITE(mcbsp_tx-io_base, SPCR2, - irqst_spcr2 ~(XSYNC_ERR)); + reg_cache-spcr2 = ~(XSYNC_ERR)); } else { complete(mcbsp_tx-tx_irq_completion); } @@ -112,6 +113,7 @@ static irqreturn_t omap_mcbsp_tx_irq_han static irqreturn_t omap_mcbsp_rx_irq_handler(int irq, void *dev_id) { struct omap_mcbsp *mcbsp_rx = dev_id; + struct omap_mcbsp_reg_cfg *reg_cache = mcbsp_rx-reg_cache; u16 irqst_spcr1; irqst_spcr1 = OMAP_MCBSP_READ(mcbsp_rx-io_base, SPCR1); @@ -122,7 +124,7 @@ static irqreturn_t omap_mcbsp_rx_irq_han irqst_spcr1); /* Writing zero to RSYNC_ERR clears the IRQ */ OMAP_MCBSP_WRITE(mcbsp_rx-io_base, SPCR1, - irqst_spcr1 ~(RSYNC_ERR)); + reg_cache-spcr1 = ~(RSYNC_ERR)); } else { complete(mcbsp_rx-tx_irq_completion); } @@ -167,6 +169,7 @@ static void omap_mcbsp_rx_dma_callback(i void omap_mcbsp_config(unsigned int id, const struct omap_mcbsp_reg_cfg *config) { struct omap_mcbsp *mcbsp; + struct omap_mcbsp_reg_cfg *reg_cache; void __iomem *io_base; if (!omap_mcbsp_check_valid_id(id)) { @@ -174,26 +177,27 @@ void omap_mcbsp_config(unsigned int id, return; } mcbsp = id_to_mcbsp_ptr(id); + reg_cache = mcbsp-reg_cache; io_base = mcbsp-io_base; dev_dbg(mcbsp-dev, Configuring McBSP%d phys_base: 0x%08lx\n, mcbsp-id, mcbsp-phys_base); /* We write the given config */ - OMAP_MCBSP_WRITE(io_base, SPCR2, config-spcr2); - OMAP_MCBSP_WRITE(io_base, SPCR1, config-spcr1); - OMAP_MCBSP_WRITE(io_base, RCR2, config-rcr2); - OMAP_MCBSP_WRITE(io_base, RCR1, config-rcr1); - OMAP_MCBSP_WRITE(io_base, XCR2, config-xcr2); - OMAP_MCBSP_WRITE(io_base, XCR1, config-xcr1); - OMAP_MCBSP_WRITE(io_base, SRGR2, config-srgr2); - OMAP_MCBSP_WRITE(io_base, SRGR1, config-srgr1); - OMAP_MCBSP_WRITE(io_base, MCR2, config-mcr2); - OMAP_MCBSP_WRITE(io_base, MCR1, config-mcr1); - OMAP_MCBSP_WRITE(io_base, PCR0, config-pcr0); + OMAP_MCBSP_WRITE(io_base, SPCR2, reg_cache-spcr2 = config-spcr2); + OMAP_MCBSP_WRITE(io_base, SPCR1, reg_cache-spcr1 = config-spcr1); + OMAP_MCBSP_WRITE(io_base, RCR2, reg_cache-rcr2 = config-rcr2); + OMAP_MCBSP_WRITE(io_base, RCR1, reg_cache-rcr1 = config-rcr1); + OMAP_MCBSP_WRITE(io_base, XCR2, reg_cache-xcr2 =
Re: OMAP: DMA: Use some define rather than a hexadecimal constant for LCD register
Saturday 14 November 2009 01:57:10 Tony Lindgren napisał(a): * Janusz Krzysztofik jkrzy...@tis.icnet.pl [091110 03:20]: The patch corrects the issue introduced with my previous patch: OMAP: DMA: Fix omapfb/lcdc on OMAP1510 broken when PM set as pointed out by OMAP subsystem maintainer. Looks like this patch needs to be refreshed against linux-omap for-next branch. OK, I'll take care of this. Janusz Tony Signed-off-by: Janusz Krzysztofik jkrzy...@tis.icnet.pl --- Hi, I'd really like to have the first one get in as a fix in the -rc series, that's why I decided to correct the issue in a follow up. Thanks, Janusz --- -- 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 diff -upr linux-2.6.32-rc6.orig/arch/arm/plat-omap/dma.c linux-2.6.32-rc6/arch/arm/plat-omap/dma.c --- linux-2.6.32-rc6.orig/arch/arm/plat-omap/dma.c 2009-11-05 19:30:39.0 +0100 +++ linux-2.6.32-rc6/arch/arm/plat-omap/dma.c 2009-11-10 03:57:06.0 +0100 @@ -34,6 +34,7 @@ #include mach/hardware.h #include mach/dma.h +#include mach/omapfb.h #include mach/tc.h #undef DEBUG @@ -1113,7 +1114,7 @@ int omap_dma_running(void) * when it gets enabled, so assume DMA running if LCD enabled. */ if (cpu_is_omap1510()) - if (omap_readw(0xfffec000 + 0x00) (1 0)) + if (omap_readw(OMAP_LCDC_CONTROL) OMAP_LCDC_CTRL_LCD_EN) return 1; /* Check if LCD DMA is running */ diff -upr linux-2.6.32-rc6.orig/arch/arm/plat-omap/include/mach/omapfb.h linux-2.6.32-rc6/arch/arm/plat-omap/include/mach/omapfb.h --- linux-2.6.32-rc6.orig/arch/arm/plat-omap/include/mach/omapfb.h 2009-11-03 20:37:49.0 +0100 +++ linux-2.6.32-rc6/arch/arm/plat-omap/include/mach/omapfb.h 2009-11-10 03:52:00.0 +0100 @@ -170,6 +170,38 @@ enum omapfb_update_mode { #include mach/board.h +#define OMAP_LCDC_BASE 0xfffec000 +#define OMAP_LCDC_SIZE 256 +#define OMAP_LCDC_IRQ INT_LCD_CTRL + +#define OMAP_LCDC_CONTROL (OMAP_LCDC_BASE + 0x00) +#define OMAP_LCDC_TIMING0 (OMAP_LCDC_BASE + 0x04) +#define OMAP_LCDC_TIMING1 (OMAP_LCDC_BASE + 0x08) +#define OMAP_LCDC_TIMING2 (OMAP_LCDC_BASE + 0x0c) +#define OMAP_LCDC_STATUS (OMAP_LCDC_BASE + 0x10) +#define OMAP_LCDC_SUBPANEL (OMAP_LCDC_BASE + 0x14) +#define OMAP_LCDC_LINE_INT (OMAP_LCDC_BASE + 0x18) +#define OMAP_LCDC_DISPLAY_STATUS (OMAP_LCDC_BASE + 0x1c) + +#define OMAP_LCDC_STAT_DONE(1 0) +#define OMAP_LCDC_STAT_VSYNC (1 1) +#define OMAP_LCDC_STAT_SYNC_LOST (1 2) +#define OMAP_LCDC_STAT_ABC (1 3) +#define OMAP_LCDC_STAT_LINE_INT(1 4) +#define OMAP_LCDC_STAT_FUF (1 5) +#define OMAP_LCDC_STAT_LOADED_PALETTE (1 6) + +#define OMAP_LCDC_CTRL_LCD_EN (1 0) +#define OMAP_LCDC_CTRL_LCD_TFT (1 7) +#define OMAP_LCDC_CTRL_LINE_IRQ_CLR_SEL(1 10) + +#define OMAP_LCDC_IRQ_VSYNC(1 2) +#define OMAP_LCDC_IRQ_DONE (1 3) +#define OMAP_LCDC_IRQ_LOADED_PALETTE (1 4) +#define OMAP_LCDC_IRQ_LINE_NIRQ(1 5) +#define OMAP_LCDC_IRQ_LINE (1 6) +#define OMAP_LCDC_IRQ_MASK (((1 5) - 1) 2) + #define OMAP_LCDC_INV_VSYNC 0x0001 #define OMAP_LCDC_INV_HSYNC 0x0002 #define OMAP_LCDC_INV_PIX_CLOCK 0x0004 diff -upr linux-2.6.32-rc6.orig/drivers/video/omap/lcdc.c linux-2.6.32-rc6/drivers/video/omap/lcdc.c --- linux-2.6.32-rc6.orig/drivers/video/omap/lcdc.c 2009-11-03 20:37:49.0 +0100 +++ linux-2.6.32-rc6/drivers/video/omap/lcdc.c 2009-11-10 03:51:16.0 +0100 @@ -38,38 +38,6 @@ #define MODULE_NAMElcdc -#define OMAP_LCDC_BASE 0xfffec000 -#define OMAP_LCDC_SIZE 256 -#define OMAP_LCDC_IRQ INT_LCD_CTRL - -#define OMAP_LCDC_CONTROL (OMAP_LCDC_BASE + 0x00) -#define OMAP_LCDC_TIMING0 (OMAP_LCDC_BASE + 0x04) -#define OMAP_LCDC_TIMING1 (OMAP_LCDC_BASE + 0x08) -#define OMAP_LCDC_TIMING2 (OMAP_LCDC_BASE + 0x0c) -#define OMAP_LCDC_STATUS (OMAP_LCDC_BASE + 0x10) -#define OMAP_LCDC_SUBPANEL (OMAP_LCDC_BASE + 0x14) -#define OMAP_LCDC_LINE_INT (OMAP_LCDC_BASE + 0x18) -#define OMAP_LCDC_DISPLAY_STATUS (OMAP_LCDC_BASE + 0x1c) - -#define OMAP_LCDC_STAT_DONE(1 0) -#define OMAP_LCDC_STAT_VSYNC (1 1) -#define OMAP_LCDC_STAT_SYNC_LOST (1 2) -#define OMAP_LCDC_STAT_ABC (1 3) -#define OMAP_LCDC_STAT_LINE_INT