Re: [PATCHv4 3/4] OMAP3: Devkit8000: Check return value of gpio_request

2011-01-20 Thread Thomas Weber
Hello,
Am 19.01.2011 13:23, schrieb Sergei Shtylyov:
 Hello.

 On 19-01-2011 11:19, Thomas Weber wrote:

 The return value of gpio_request is ignored.
 This patch adds the check of the return value of gpio_request.

 Signed-off-by: Thomas Weberwe...@corscience.de
 ---
   arch/arm/mach-omap2/board-devkit8000.c |   16 ++--
   1 files changed, 14 insertions(+), 2 deletions(-)

 diff --git a/arch/arm/mach-omap2/board-devkit8000.c
 b/arch/arm/mach-omap2/board-devkit8000.c
 index 9fb416b..4ddd81c 100644
 --- a/arch/arm/mach-omap2/board-devkit8000.c
 +++ b/arch/arm/mach-omap2/board-devkit8000.c
 [...]
 @@ -244,13 +246,23 @@ static int devkit8000_twl_gpio_setup(struct
 device *dev,

   /* TWL4030_GPIO_MAX + 0 is LCD_PWREN (out, active high) */
   devkit8000_lcd_device.reset_gpio = gpio + TWL4030_GPIO_MAX + 0;
 -gpio_request(devkit8000_lcd_device.reset_gpio, LCD_PWREN);
 +ret = gpio_request(devkit8000_lcd_device.reset_gpio, LCD_PWREN);
 +if (ret  0) {
 +printk(KERN_ERR Failed to request GPIO for LCD_PWRN\n);
 +return ret;
 +}
 +
   /* Disable until needed */
   gpio_direction_output(devkit8000_lcd_device.reset_gpio, 0);

   /* gpio + 7 is DVI_PD (out, active low) */
   devkit8000_dvi_device.reset_gpio = gpio + 7;
 -gpio_request(devkit8000_dvi_device.reset_gpio, DVI PowerDown);
 +ret = gpio_request(devkit8000_dvi_device.reset_gpio, DVI
 PowerDown);
 +if (ret  0) {
 +printk(KERN_ERR Failed to request GPIO for DVI PowerDown\n);

You forgot to call:

 gpio_free(devkit8000_lcd_device.reset_gpio);

Couldn't I use lcd without dvi?
And shouldn't the gpio then be set to -EINVAL for the gpio_is_valid()
check in enable_lcd()/disable_lcd() and enable_dvi()/disable_dvi()?

Thomas
 +return ret;
 +}
 +
   /* Disable until needed */
   gpio_direction_output(devkit8000_dvi_device.reset_gpio, 0);

 WBR, Sergei
 -- 


--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v4] ARM: Thumb-2: Symbol manipulation macros for function body copying

2011-01-20 Thread Dave Martin
On Wed, Jan 19, 2011 at 10:29 PM, Kevin Hilman khil...@ti.com wrote:
 Dave Martin dave.mar...@linaro.org writes:

 In low-level board support code, there is sometimes a need to
 copy a function body to another location at run-time.

 A straightforward call to memcpy doesn't work in Thumb-2,
 because bit 0 of external Thumb function symbols is set to 1,
 indicating that the function is Thumb.  Without corrective
 measures, this will cause an off-by-one copy, and the copy
 may be called using the wrong instruction set.

 This patch adds an fncpy() macro to help with such copies.

 Particular care is needed, because C doesn't guarantee any
 defined behaviour when casting a function pointer to any other
 type.  This has been observed to lead to strange optimisation
 side-effects when doing the arithmetic which is required in
 order to copy/move function bodies correctly in Thumb-2.

 Thanks to Russell King and Nicolas Pitre for their input
 on this patch.

 Signed-off-by: Dave Martin dave.mar...@linaro.org
 Tested-by: Jean Pihet j-pi...@ti.com

 Tested-by: Kevin Hilman khil...@ti.com

 along with Jean's OMAP patch on:

 OMAP2420/n810: including basic suspend/resume test.

 OMAP16xx/OSK: boot test only.

 Kevin


Thanks
---Dave
--
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] ARM: smp: Introduce ARCH_HAS_COMMON_CORES_CLOCK to speed-up boot

2011-01-20 Thread Santosh Shilimkar
On some architectures, secondary cores shares clock with primiary
core and hence scale together. Hence secondary core lpj calibration
is not necessary and can be skipped to save considerable time.

This can speed up the secondary cpu boot and hotplug cpu online
paths.

Discussion thread:
http://www.spinics.net/lists/arm-kernel/msg24.html

Signed-off-by: Santosh Shilimkar santosh.shilim...@ti.com
Cc: Russell King rmk+ker...@arm.linux.org.uk
Cc: Linus Walleij linus.wall...@stericsson.com
---
 arch/arm/Kconfig|5 +
 arch/arm/kernel/smp.c   |   36 
 arch/arm/mach-omap2/Kconfig |1 +
 3 files changed, 34 insertions(+), 8 deletions(-)

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 5cff165..8944639 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -823,6 +823,7 @@ config ARCH_U300
 config ARCH_U8500
bool ST-Ericsson U8500 Series
select CPU_V7
+   select ARCH_HAS_COMMON_CORES_CLOCK
select ARM_AMBA
select GENERIC_CLOCKEVENTS
select CLKDEV_LOOKUP
@@ -1418,6 +1419,10 @@ config ARCH_SPARSEMEM_DEFAULT
 config ARCH_SELECT_MEMORY_MODEL
def_bool ARCH_SPARSEMEM_ENABLE
 
+config ARCH_HAS_COMMON_CORES_CLOCK
+  bool
+  depends on SMP
+
 config HIGHMEM
bool High Memory Support (EXPERIMENTAL)
depends on MMU  EXPERIMENTAL
diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c
index 4539ebc..8e72b11 100644
--- a/arch/arm/kernel/smp.c
+++ b/arch/arm/kernel/smp.c
@@ -270,6 +270,20 @@ static void __cpuinit smp_store_cpu_info(unsigned int 
cpuid)
 }
 
 /*
+ * Skip the secondary calibration on architectures sharing clock
+ * with primary cpu. Archs can select ARCH_HAS_COMMON_CORES_CLOCK
+ * for this.
+ */
+static inline int skip_secondary_calibrate(void)
+{
+#ifdef CONFIG_ARCH_HAS_COMMON_CORES_CLOCK
+   return true;
+#else
+   return false;
+#endif
+}
+
+/*
  * This is the secondary CPU boot entry.  We're using this CPUs
  * idle thread stack, but a set of temporary page tables.
  */
@@ -312,7 +326,8 @@ asmlinkage void __cpuinit secondary_start_kernel(void)
 */
percpu_timer_setup();
 
-   calibrate_delay();
+   if (!skip_secondary_calibrate())
+   calibrate_delay();
 
smp_store_cpu_info(cpu);
 
@@ -332,14 +347,19 @@ void __init smp_cpus_done(unsigned int max_cpus)
int cpu;
unsigned long bogosum = 0;
 
-   for_each_online_cpu(cpu)
-   bogosum += per_cpu(cpu_data, cpu).loops_per_jiffy;
+   if (!skip_secondary_calibrate()) {
+   for_each_online_cpu(cpu)
+   bogosum += per_cpu(cpu_data, cpu).loops_per_jiffy;
 
-   printk(KERN_INFO SMP: Total of %d processors activated 
-  (%lu.%02lu BogoMIPS).\n,
-  num_online_cpus(),
-  bogosum / (50/HZ),
-  (bogosum / (5000/HZ)) % 100);
+   printk(KERN_INFO SMP: Total of %d processors activated 
+  (%lu.%02lu BogoMIPS).\n,
+   num_online_cpus(),
+   bogosum / (50/HZ),
+   (bogosum / (5000/HZ)) % 100);
+   } else {
+   printk(KERN_INFO SMP: Total of %d processors activated.\n,
+   num_online_cpus());
+   }
 }
 
 void __init smp_prepare_boot_cpu(void)
diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig
index 1a2cf62..e6ad15d 100644
--- a/arch/arm/mach-omap2/Kconfig
+++ b/arch/arm/mach-omap2/Kconfig
@@ -43,6 +43,7 @@ config ARCH_OMAP4
default y
depends on ARCH_OMAP2PLUS
select CPU_V7
+   select ARCH_HAS_COMMON_CORES_CLOCK
select ARM_GIC
select PL310_ERRATA_588369
select ARM_ERRATA_720789
-- 
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: [PATCH] ARM: oprofile: Always allow backtraces

2011-01-20 Thread Robert Richter
On 20.01.11 04:42:24, Will Deacon wrote:
 Hi Ari,
 
  Always allow backtrace when using oprofile on ARM, even if a PMU
  isn't present.
  
  Restores functionality originally introduced in
  1b7b56982fdcd9d85effd76f3928cf5d6eb26155 by Richard Purdie.
 
 Well spotted, I'd forgotten we still want this for timer mode.
 Comments inline.
  
  diff --git a/arch/arm/oprofile/common.c b/arch/arm/oprofile/common.c
  index 8aa9744..a23e5ae 100644
  --- a/arch/arm/oprofile/common.c
  +++ b/arch/arm/oprofile/common.c
  @@ -46,6 +46,7 @@ char *op_name_from_perf_id(void)
  return NULL;
  }
   }
  +#endif
  
   static int report_trace(struct stackframe *frame, void *d)
   {
  @@ -109,6 +110,7 @@ static void arm_backtrace(struct pt_regs * const regs, 
  unsigned int depth)
  tail = user_backtrace(tail);
   }
  
  +#ifdef CONFIG_HW_PERF_EVENTS
 
 Can you reorder the backtrace stuff so that we don't need the extra
 #endif/#ifdef please?

I would like to go even further, see the diff below.

-Robert

---
 arch/arm/oprofile/common.c |   45 ---
 1 files changed, 25 insertions(+), 20 deletions(-)

diff --git a/arch/arm/oprofile/common.c b/arch/arm/oprofile/common.c
index 8aa9744..916aa2e 100644
--- a/arch/arm/oprofile/common.c
+++ b/arch/arm/oprofile/common.c
@@ -47,18 +47,6 @@ char *op_name_from_perf_id(void)
}
 }
 
-static int report_trace(struct stackframe *frame, void *d)
-{
-   unsigned int *depth = d;
-
-   if (*depth) {
-   oprofile_add_trace(frame-pc);
-   (*depth)--;
-   }
-
-   return *depth == 0;
-}
-
 /*
  * The registers we're interested in are at the end of the variable
  * length saved register structure. The fp points at the end of this
@@ -91,6 +79,30 @@ static struct frame_tail* user_backtrace(struct frame_tail 
*tail)
return buftail[0].fp-1;
 }
 
+#else
+
+static int oprofile_arch_init(struct oprofile_operations *ops)
+{
+   pr_info(oprofile: hardware counters not available\n);
+   return -ENODEV;
+}
+
+static void oprofile_arch_exit(void) { }
+
+#endif /* CONFIG_HW_PERF_EVENTS */
+
+static int report_trace(struct stackframe *frame, void *d)
+{
+   unsigned int *depth = d;
+
+   if (*depth) {
+   oprofile_add_trace(frame-pc);
+   (*depth)--;
+   }
+
+   return *depth == 0;
+}
+
 static void arm_backtrace(struct pt_regs * const regs, unsigned int depth)
 {
struct frame_tail *tail = ((struct frame_tail *) regs-ARM_fp) - 1;
@@ -111,6 +123,7 @@ static void arm_backtrace(struct pt_regs * const regs, 
unsigned int depth)
 
 int __init oprofile_arch_init(struct oprofile_operations *ops)
 {
+   /* provide backtrace support also in timer mode: */
ops-backtrace  = arm_backtrace;
 
return oprofile_perf_init(ops);
@@ -120,11 +133,3 @@ void __exit oprofile_arch_exit(void)
 {
oprofile_perf_exit();
 }
-#else
-int __init oprofile_arch_init(struct oprofile_operations *ops)
-{
-   pr_info(oprofile: hardware counters not available\n);
-   return -ENODEV;
-}
-void __exit oprofile_arch_exit(void) {}
-#endif /* CONFIG_HW_PERF_EVENTS */
-- 
1.7.3.4



-- 
Advanced Micro Devices, Inc.
Operating System Research Center

--
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 DSS Enable clocks in dss_setup_partial_planes

2011-01-20 Thread Taneja, Archit
Hi,

I am not sure if this is needed. All calls within configure_dispc()
ensure that clocks are enabled before a register write.

The functions which read/write to registers and don't enable/disable
clocks have names which start with a _(for most cases).

Regards,
Archit

linux-omap-ow...@vger.kernel.org wrote:
 From 086e3454c8f154cd90a4669899f2179f16ef32cd Mon Sep 17 00:00:00
 2001 From: Ben Tucker btuc...@mpc-data.co.uk
 Date: Thu, 13 Jan 2011 12:56:45 +
 Subject: [PATCH] OMAP DSS Enable clocks in
 dss_setup_partial_planes  Enable the interface clocks while
 calling  configure_dispc().
 
 ---
  drivers/video/omap2/dss/manager.c |2 ++
  1 files changed, 2 insertions(+), 0 deletions(-)
 
 diff --git a/drivers/video/omap2/dss/manager.c
 b/drivers/video/omap2/dss/manager.c
 index 545e9b9..cb90dac 100644
 --- a/drivers/video/omap2/dss/manager.c
 +++ b/drivers/video/omap2/dss/manager.c
 @@ -1106,7 +1106,9 @@ void dss_setup_partial_planes(struct
 omap_dss_device *dssdev, mc-w = w;
 mc-h = h;
 
 +   dss_clk_enable(DSS_CLK_ICK | DSS_CLK_FCK1);
 configure_dispc(); +   dss_clk_disable(DSS_CLK_ICK |
 DSS_CLK_FCK1); 
 
 mc-do_manual_update = false;
 
 --
 1.7.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] omap3: nand: bch ecc support added

2011-01-20 Thread Sukumar Ghorai
bch error correction (t=4 and t=8) for 512 bytes support added.
Tested in omap-3630 es-1.1 silicon.

Need to select the bch-ecc from board file. E.g.
arch/arm/mach-omap2/board-flash.c: board_nand_init()
board_nand_data.ecc_opt = OMAP_ECC_BCH4_CODE_HW

This patch has dependency on -
http://www.mail-archive.com/linux-omap@vger.kernel.org/msg42658.html

Signed-off-by: Sukumar Ghorai s-gho...@ti.com
---
 arch/arm/mach-omap2/gpmc.c |  126 ---
 arch/arm/plat-omap/include/plat/gpmc.h |6 +-
 drivers/mtd/nand/Makefile  |1 +
 drivers/mtd/nand/omap2.c   |  119 --
 drivers/mtd/nand/omap_bch_decoder.c|  393 
 5 files changed, 583 insertions(+), 62 deletions(-)
 create mode 100644 drivers/mtd/nand/omap_bch_decoder.c

diff --git a/arch/arm/mach-omap2/gpmc.c b/arch/arm/mach-omap2/gpmc.c
index 29c9732..91cfdca 100644
--- a/arch/arm/mach-omap2/gpmc.c
+++ b/arch/arm/mach-omap2/gpmc.c
@@ -48,6 +48,7 @@
 #define GPMC_ECC_CONTROL   0x1f8
 #define GPMC_ECC_SIZE_CONFIG   0x1fc
 #define GPMC_ECC1_RESULT0x200
+#define GPMC_ECC_BCH_RESULT_0  0x240
 
 #define GPMC_CS0_OFFSET0x60
 #define GPMC_CS_SIZE   0x30
@@ -94,7 +95,6 @@ static struct resourcegpmc_mem_root;
 static struct resource gpmc_cs_mem[GPMC_CS_NUM];
 static DEFINE_SPINLOCK(gpmc_mem_lock);
 static unsigned int gpmc_cs_map;   /* flag for cs which are initialized */
-static int gpmc_ecc_used = -EINVAL;/* cs using ecc engine */
 
 static void __iomem *gpmc_base;
 
@@ -832,52 +832,77 @@ void omap3_gpmc_restore_context(void)
 
 /**
  * gpmc_enable_hwecc - enable hardware ecc functionality
+ * @ecc_type: ecc type e.g. Hamming, BCH
  * @cs: chip select number
  * @mode: read/write mode
  * @dev_width: device bus width(1 for x16, 0 for x8)
  * @ecc_size: bytes for which ECC will be generated
  */
-int gpmc_enable_hwecc(int cs, int mode, int dev_width, int ecc_size)
+int gpmc_enable_hwecc(int ecc_type, int cs, int mode,
+   int dev_width, int ecc_size)
 {
-   unsigned int val;
-
-   /* check if ecc module is in used */
-   if (gpmc_ecc_used != -EINVAL)
-   return -EINVAL;
-
-   gpmc_ecc_used = cs;
-
-   /* clear ecc and enable bits */
-   val = ((0x00018) | 0x0001);
-   gpmc_write_reg(GPMC_ECC_CONTROL, val);
-
-   /* program ecc and result sizes */
-   val = ecc_size  1) - 1)  22) | (0x000F));
-   gpmc_write_reg(GPMC_ECC_SIZE_CONFIG, val);
+   unsigned int bch_mod = 0, bch_wrapmode = 0, eccsize1 = 0, eccsize0 = 0;
+   unsigned int ecc_conf_val = 0, ecc_size_conf_val = 0;
 
switch (mode) {
case GPMC_ECC_READ:
-   gpmc_write_reg(GPMC_ECC_CONTROL, 0x101);
+   if (ecc_type == OMAP_ECC_BCH4_CODE_HW) {
+   eccsize1 = 0xD; eccsize0 = 0x48;
+   bch_mod = 0;
+   bch_wrapmode = 0x09;
+   } else if (ecc_type == OMAP_ECC_BCH8_CODE_HW) {
+   eccsize1 = 0x1A; eccsize0 = 0x18;
+   bch_mod = 1;
+   bch_wrapmode = 0x04;
+   } else
+   eccsize1 = ((ecc_size  1) - 1)  22;
break;
+
case GPMC_ECC_READSYN:
-gpmc_write_reg(GPMC_ECC_CONTROL, 0x100);
break;
+
case GPMC_ECC_WRITE:
-   gpmc_write_reg(GPMC_ECC_CONTROL, 0x101);
+   if (ecc_type == OMAP_ECC_BCH4_CODE_HW) {
+   eccsize1 = 0x20; eccsize0 = 0x00;
+   bch_mod = 0;
+   bch_wrapmode = 0x06;
+   } else if (ecc_type == OMAP_ECC_BCH8_CODE_HW) {
+   eccsize1 = 0x20; eccsize0 = 0x00;
+   bch_mod = 1;
+   bch_wrapmode = 0x06;
+   } else
+   eccsize1 = ((ecc_size  1) - 1)  22;
break;
+
default:
printk(KERN_INFO Error: Unrecognized Mode[%d]!\n, mode);
break;
}
 
-   /* (ECC 16 or 8 bit col) | ( CS  )  | ECC Enable */
-   val = (dev_width  7) | (cs  1) | (0x1);
-   gpmc_write_reg(GPMC_ECC_CONFIG, val);
+   /* clear ecc and enable bits */
+   if ((ecc_type == OMAP_ECC_BCH4_CODE_HW) ||
+   (ecc_type == OMAP_ECC_BCH8_CODE_HW)) {
+   gpmc_write_reg(GPMC_ECC_CONTROL, 0x0001);
+   ecc_size_conf_val = (eccsize1  22) | (eccsize0  12);
+   ecc_conf_val = ((0x01  16) | (bch_mod  12)
+   | (bch_wrapmode  8) | (dev_width  7)
+   | (0x03  4) | (cs  1) | (0x1));
+   } else {
+   gpmc_write_reg(GPMC_ECC_CONTROL, 0x0101);
+   ecc_size_conf_val = (eccsize1  22) | 0x000F;
+   ecc_conf_val = (dev_width  7) | (cs  1) | (0x1);
+   }
+
+   

Re: [PATCH] ARM: oprofile: Always allow backtraces

2011-01-20 Thread Robert Richter
On 20.01.11 10:52:39, Robert Richter wrote:

 I would like to go even further, see the diff below.
 
 -Robert
 
 ---
  arch/arm/oprofile/common.c |   45 ---
  1 files changed, 25 insertions(+), 20 deletions(-)
 
 diff --git a/arch/arm/oprofile/common.c b/arch/arm/oprofile/common.c
 index 8aa9744..916aa2e 100644
 --- a/arch/arm/oprofile/common.c
 +++ b/arch/arm/oprofile/common.c
 @@ -47,18 +47,6 @@ char *op_name_from_perf_id(void)
   }
  }
  
 -static int report_trace(struct stackframe *frame, void *d)
 -{
 - unsigned int *depth = d;
 -
 - if (*depth) {
 - oprofile_add_trace(frame-pc);
 - (*depth)--;
 - }
 -
 - return *depth == 0;
 -}
 -
  /*
   * The registers we're interested in are at the end of the variable
   * length saved register structure. The fp points at the end of this
 @@ -91,6 +79,30 @@ static struct frame_tail* user_backtrace(struct frame_tail 
 *tail)
   return buftail[0].fp-1;
  }
  
 +#else
 +
 +static int oprofile_arch_init(struct oprofile_operations *ops)

Of course it should compile, but in this sense...

-Robert

 +{
 + pr_info(oprofile: hardware counters not available\n);
 + return -ENODEV;
 +}
 +
 +static void oprofile_arch_exit(void) { }
 +
 +#endif /* CONFIG_HW_PERF_EVENTS */
 +
 +static int report_trace(struct stackframe *frame, void *d)
 +{
 + unsigned int *depth = d;
 +
 + if (*depth) {
 + oprofile_add_trace(frame-pc);
 + (*depth)--;
 + }
 +
 + return *depth == 0;
 +}
 +
  static void arm_backtrace(struct pt_regs * const regs, unsigned int depth)
  {
   struct frame_tail *tail = ((struct frame_tail *) regs-ARM_fp) - 1;
 @@ -111,6 +123,7 @@ static void arm_backtrace(struct pt_regs * const regs, 
 unsigned int depth)
  
  int __init oprofile_arch_init(struct oprofile_operations *ops)
  {
 + /* provide backtrace support also in timer mode: */
   ops-backtrace  = arm_backtrace;
  
   return oprofile_perf_init(ops);
 @@ -120,11 +133,3 @@ void __exit oprofile_arch_exit(void)
  {
   oprofile_perf_exit();
  }
 -#else
 -int __init oprofile_arch_init(struct oprofile_operations *ops)
 -{
 - pr_info(oprofile: hardware counters not available\n);
 - return -ENODEV;
 -}
 -void __exit oprofile_arch_exit(void) {}
 -#endif /* CONFIG_HW_PERF_EVENTS */


-- 
Advanced Micro Devices, Inc.
Operating System Research Center

--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] ARM: oprofile: Always allow backtraces

2011-01-20 Thread Robert Richter
On 20.01.11 05:17:16, Ari Kauppi wrote:

  @@ -91,6 +79,30 @@ static struct frame_tail* user_backtrace(struct 
  frame_tail *tail)
  return buftail[0].fp-1;
  }
 
  +#else
  +
  +static int oprofile_arch_init(struct oprofile_operations *ops)
  +{
  +   pr_info(oprofile: hardware counters not available\n);
  +   return -ENODEV;
  +}
  +
  +static void oprofile_arch_exit(void) { }
 
 I guess you mean oprofile_perf_init and oprofile_perf_exit?

Yes, did not compile test it as my arm cross compile chain was broken.

Maybe we move it to include/linux/oprofile.h.

I also observed some mismatches while using CONFIG_HW_PERF_EVENTS and
CONFIG_PERF_EVENTS, esp. with include/linux/oprofile.h. /arch/sh is
also affected. We need to review this too.

 
 Also the user_backtrace and frame_tail need to be moved out from the 
 #ifdef.

Yes, thanks.

-Robert

-- 
Advanced Micro Devices, Inc.
Operating System Research Center

--
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: Add basic support for 720MHz part

2011-01-20 Thread Premi, Sanjeev
 -Original Message-
 From: Varadarajan, Charulatha 
 Sent: Tuesday, January 18, 2011 2:44 PM
 To: Premi, Sanjeev
 Cc: linux-omap@vger.kernel.org
 Subject: Re: [PATCH] omap3: Add basic support for 720MHz part
 
 Couple of minor comments.

[snip]...[snip]

  --- a/arch/arm/mach-omap2/control.h
  +++ b/arch/arm/mach-omap2/control.h
  @@ -365,6 +365,13 @@
   #define                FEAT_NEON               0
   #define                FEAT_NEON_NONE          1
 
  +/*
  + * Product ID register
  + */
 
 Do not use multiline comment style for single line comments

[sp] Was only following the multi-line comment stye few lines
 above...

 
  +#define OMAP3_PRODID                   0x020C
  +
  +#define OMAP3_SKUID_MASK               0x0f
  +#define                OMAP3_SKUID_720MHZ      0x08
 
   #ifndef __ASSEMBLY__
   #ifdef CONFIG_ARCH_OMAP2PLUS
  diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c
  index 5f9086c..53fbe01 100644
  --- a/arch/arm/mach-omap2/id.c
  +++ b/arch/arm/mach-omap2/id.c
  @@ -195,6 +195,15 @@ static void __init omap3_check_features(void)
          * TODO: Get additional info (where applicable)
          *       e.g. Size of L2 cache.
          */
  +
  +       /*
  +        * Does it support 720MHz?
  +        */
 
 Ditto

[sp] Same here.
 But since the code is quite evident, I will remove the comment
 altogether.

 
  +       status = (OMAP3_SKUID_MASK  read_tap_reg(OMAP3_PRODID));
  +
  +       if (status  OMAP3_SKUID_720MHZ) {
  +               omap3_features |= OMAP3_HAS_720MHZ;
  +       }
 
 No need of { } as there is only one line statement inside the 
 if condition.

[sp] missed this.

~sanjeev

[snip]...[snip]--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] ARM: oprofile: Always allow backtraces

2011-01-20 Thread Ari Kauppi

On Thu, 20 Jan 2011, Robert Richter wrote:

Hi,


On 20.01.11 04:42:24, Will Deacon wrote:

Hi Ari,


Always allow backtrace when using oprofile on ARM, even if a PMU
isn't present.

Restores functionality originally introduced in
1b7b56982fdcd9d85effd76f3928cf5d6eb26155 by Richard Purdie.


Well spotted, I'd forgotten we still want this for timer mode.
Comments inline.


diff --git a/arch/arm/oprofile/common.c b/arch/arm/oprofile/common.c
index 8aa9744..a23e5ae 100644
--- a/arch/arm/oprofile/common.c
+++ b/arch/arm/oprofile/common.c
@@ -46,6 +46,7 @@ char *op_name_from_perf_id(void)
return NULL;
}
 }
+#endif

 static int report_trace(struct stackframe *frame, void *d)
 {
@@ -109,6 +110,7 @@ static void arm_backtrace(struct pt_regs * const regs, 
unsigned int depth)
tail = user_backtrace(tail);
 }

+#ifdef CONFIG_HW_PERF_EVENTS


Can you reorder the backtrace stuff so that we don't need the extra
#endif/#ifdef please?


I would like to go even further, see the diff below.


Thanks for comments, I can prepare a new patch. I think your patch below 
has two typos but the idea was clear, please see comments below.



-Robert

---
arch/arm/oprofile/common.c |   45 ---
1 files changed, 25 insertions(+), 20 deletions(-)

diff --git a/arch/arm/oprofile/common.c b/arch/arm/oprofile/common.c
index 8aa9744..916aa2e 100644
--- a/arch/arm/oprofile/common.c
+++ b/arch/arm/oprofile/common.c
@@ -47,18 +47,6 @@ char *op_name_from_perf_id(void)
}
}

-static int report_trace(struct stackframe *frame, void *d)
-{
-   unsigned int *depth = d;
-
-   if (*depth) {
-   oprofile_add_trace(frame-pc);
-   (*depth)--;
-   }
-
-   return *depth == 0;
-}
-
/*
 * The registers we're interested in are at the end of the variable
 * length saved register structure. The fp points at the end of this
@@ -91,6 +79,30 @@ static struct frame_tail* user_backtrace(struct frame_tail 
*tail)
return buftail[0].fp-1;
}

+#else
+
+static int oprofile_arch_init(struct oprofile_operations *ops)
+{
+   pr_info(oprofile: hardware counters not available\n);
+   return -ENODEV;
+}
+
+static void oprofile_arch_exit(void) { }


I guess you mean oprofile_perf_init and oprofile_perf_exit?

Also the user_backtrace and frame_tail need to be moved out from the 
#ifdef.



+
+#endif /* CONFIG_HW_PERF_EVENTS */
+
+static int report_trace(struct stackframe *frame, void *d)
+{
+   unsigned int *depth = d;
+
+   if (*depth) {
+   oprofile_add_trace(frame-pc);
+   (*depth)--;
+   }
+
+   return *depth == 0;
+}
+
static void arm_backtrace(struct pt_regs * const regs, unsigned int depth)
{
struct frame_tail *tail = ((struct frame_tail *) regs-ARM_fp) - 1;
@@ -111,6 +123,7 @@ static void arm_backtrace(struct pt_regs * const regs, 
unsigned int depth)

int __init oprofile_arch_init(struct oprofile_operations *ops)
{
+   /* provide backtrace support also in timer mode: */
ops-backtrace   = arm_backtrace;

return oprofile_perf_init(ops);
@@ -120,11 +133,3 @@ void __exit oprofile_arch_exit(void)
{
oprofile_perf_exit();
}
-#else
-int __init oprofile_arch_init(struct oprofile_operations *ops)
-{
-   pr_info(oprofile: hardware counters not available\n);
-   return -ENODEV;
-}
-void __exit oprofile_arch_exit(void) {}
-#endif /* CONFIG_HW_PERF_EVENTS */



--
Ari

--
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] OMAP: DMA: clear interrupt status correctly

2011-01-20 Thread Adrian Hunter

On 20/01/11 00:44, Tony Lindgren wrote:

* Tony Lindgrent...@atomide.com  [110119 14:23]:

* Adrian Hunteradrian.hun...@nokia.com  [110119 02:23]:


 From fffa19df17d73c1ed2e8c65c0b6604ee1dddff84 Mon Sep 17 00:00:00 2001
From: Adrian Hunteradrian.hun...@nokia.com
Date: Wed, 24 Nov 2010 13:23:21 +0200
Subject: [PATCH] OMAP: DMA: clear interrupt status correctly

When clearing the DMA channel, clear all status bits.

When handling a DMA interrupt, clear only the interrupt
status bits that have been read and are passed to the
channel's interrupt handler, not every status bit.

Signed-off-by: Adrian Hunteradrian.hun...@nokia.com


Thanks, will queue as a fix.


This did not apply for some reason, I've applied it manually.
Please check that I got it right in omap-fixes branch soonish.
Let me know if it needs updating.


Looks fine



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] omap3: Add basic support for 720MHz part

2011-01-20 Thread Varadarajan, Charulatha
On Thu, Jan 20, 2011 at 16:28, Premi, Sanjeev pr...@ti.com wrote:
 -Original Message-
 From: Varadarajan, Charulatha
 Sent: Tuesday, January 18, 2011 2:44 PM
 To: Premi, Sanjeev
 Cc: linux-omap@vger.kernel.org
 Subject: Re: [PATCH] omap3: Add basic support for 720MHz part

Also do not miss the version number while posting patches.
--
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] omap2: fix DPLL_FREQSEL calculation

2011-01-20 Thread Felipe Balbi
Hi,

On Thu, Jan 20, 2011 at 11:42:24AM +0100, John Ogness wrote:
 This patch fixes the calculation of the internal frequency. The value
 of n is one less than the actual divider. 0 is a valid value.
 
 An example where the internal frequency is calculated correctly can be
 found here: clkt_dpll.c:_dpll_test_fint()
 
 This patch is against linux-next-20110120.
 
 Signed-off-by: John Ogness john.ogn...@linutronix.de

scripts/get_maintainer.pl would've helped you getting a better Cc list.
I'm adding linux-omap and lakml

 ---
  arch/arm/mach-omap2/dpll3xxx.c |2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 --- a/arch/arm/mach-omap2/dpll3xxx.c  2011-01-20 11:20:41.706860086 +0100
 +++ b/arch/arm/mach-omap2/dpll3xxx.c  2011-01-20 11:21:27.966860086 +0100
 @@ -93,7 +93,7 @@ static u16 _omap3_dpll_compute_freqsel(s
   unsigned long fint;
   u16 f = 0;
  
 - fint = clk-dpll_data-clk_ref-rate / n;
 + fint = clk-dpll_data-clk_ref-rate / (n + 1);
  
   pr_debug(clock: fint is %lu\n, fint);
  
 --
 To unsubscribe from this list: send the line unsubscribe linux-kernel in
 the body of a message to majord...@vger.kernel.org
 More majordomo info at  http://vger.kernel.org/majordomo-info.html
 Please read the FAQ at  http://www.tux.org/lkml/

-- 
balbi
--
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: Add basic support for 720MHz part

2011-01-20 Thread G, Manjunath Kondaiah
On Thu, Jan 20, 2011 at 04:28:11PM +0530, Premi, Sanjeev wrote:
  -Original Message-
  From: Varadarajan, Charulatha 
  Sent: Tuesday, January 18, 2011 2:44 PM
  To: Premi, Sanjeev
  Cc: linux-omap@vger.kernel.org
  Subject: Re: [PATCH] omap3: Add basic support for 720MHz part
  
  Couple of minor comments.
 
 [snip]...[snip]
 
   --- a/arch/arm/mach-omap2/control.h
   +++ b/arch/arm/mach-omap2/control.h
   @@ -365,6 +365,13 @@
    #define                FEAT_NEON               0
    #define                FEAT_NEON_NONE          1
  
   +/*
   + * Product ID register
   + */
  
  Do not use multiline comment style for single line comments
 
 [sp] Was only following the multi-line comment stye few lines
  above...
 
  
   +#define OMAP3_PRODID                   0x020C
   +
   +#define OMAP3_SKUID_MASK               0x0f
   +#define                OMAP3_SKUID_720MHZ      0x08
  
    #ifndef __ASSEMBLY__
    #ifdef CONFIG_ARCH_OMAP2PLUS
   diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c
   index 5f9086c..53fbe01 100644
   --- a/arch/arm/mach-omap2/id.c
   +++ b/arch/arm/mach-omap2/id.c
   @@ -195,6 +195,15 @@ static void __init omap3_check_features(void)
           * TODO: Get additional info (where applicable)
           *       e.g. Size of L2 cache.
           */
   +
   +       /*
   +        * Does it support 720MHz?
   +        */
  
  Ditto
 
 [sp] Same here.
  But since the code is quite evident, I will remove the comment
  altogether.
 
  
   +       status = (OMAP3_SKUID_MASK  read_tap_reg(OMAP3_PRODID));
   +
   +       if (status  OMAP3_SKUID_720MHZ) {
   +               omap3_features |= OMAP3_HAS_720MHZ;
   +       }
  
  No need of { } as there is only one line statement inside the 
  if condition.
 
 [sp] missed this.

Looks fine. Feel free to add after the above changes:

Reviewed-by: G, Manjunath Kondaiah manj...@ti.com

-Manjunath

--
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


[PATCHv4] omap3: Add basic support for 720MHz part

2011-01-20 Thread Sanjeev Premi
This patch adds support for new speed enhanced parts with ARM
and IVA running at 720MHz and 520MHz respectively. These parts
can be probed at run-time by reading PRODID.SKUID[3:0] at
0x4830A20C [1].

This patch specifically does following:
 * Detect devices capable of 720MHz.
 * Add new OPP
 * Ensure that OPP is conditionally enabled.
 * Check for presence of IVA before attempting to enable
   the corresponding OPP.

  [1] http://focus.ti.com/lit/ug/spruff1d/spruff1d.pdf

Signed-off-by: Sanjeev Premi pr...@ti.com
---
Since v3:
1) Minor changes to comments and braces.
   
Since v2:
1) pr_xxx() - dev_xxx() functions - suggested by 
   Manjunath (manj...@ti.com)
2) Add check for presense of IVA - earlier planned to
   be in a separate patch; but we multiple discussions
   on optimizations.
3) Do look-up for hwmod corresponding for iva only if
   iva is present. Should save multiple strcmp()s in
   _lookup().

Since v1:
1) Using opp_enable() to enable the OPP after the OPP
   table has been initialized.
2) Starting at 3 levels of indent, the statements had
   be broken into multiple lines for most of the code.
   So, opted to create a new static that enables the
   OPPs corresponding to 720MHz.
3) I have only build tested this patch - will be able
   to confirm working tomorrow. With any further change,
   if needed. (However, functionally nothing has changed.)


 arch/arm/mach-omap2/control.h |6 +++
 arch/arm/mach-omap2/id.c  |5 +++
 arch/arm/mach-omap2/opp3xxx_data.c|   63 -
 arch/arm/plat-omap/include/plat/cpu.h |2 +
 4 files changed, 75 insertions(+), 1 deletions(-)

diff --git a/arch/arm/mach-omap2/control.h b/arch/arm/mach-omap2/control.h
index f0629ae..c338466 100644
--- a/arch/arm/mach-omap2/control.h
+++ b/arch/arm/mach-omap2/control.h
@@ -365,6 +365,12 @@
 #defineFEAT_NEON   0
 #defineFEAT_NEON_NONE  1
 
+/* Product ID register */
+#define OMAP3_PRODID   0x020C
+
+/* Mask to extract SKU ID from Product ID */
+#define OMAP3_SKUID_MASK   0x0f
+#defineOMAP3_SKUID_720MHZ  0x08
 
 #ifndef __ASSEMBLY__
 #ifdef CONFIG_ARCH_OMAP2PLUS
diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c
index 5f9086c..8c4500f 100644
--- a/arch/arm/mach-omap2/id.c
+++ b/arch/arm/mach-omap2/id.c
@@ -191,6 +191,10 @@ static void __init omap3_check_features(void)
if (!cpu_is_omap3505()  !cpu_is_omap3517())
omap3_features |= OMAP3_HAS_IO_WAKEUP;
 
+   status = (OMAP3_SKUID_MASK  read_tap_reg(OMAP3_PRODID));
+   if (status  OMAP3_SKUID_720MHZ)
+   omap3_features |= OMAP3_HAS_720MHZ;
+
/*
 * TODO: Get additional info (where applicable)
 *   e.g. Size of L2 cache.
@@ -445,6 +449,7 @@ static void __init omap3_cpuinfo(void)
OMAP3_SHOW_FEATURE(neon);
OMAP3_SHOW_FEATURE(isp);
OMAP3_SHOW_FEATURE(192mhz_clk);
+   OMAP3_SHOW_FEATURE(720mhz);
 
printk()\n);
 }
diff --git a/arch/arm/mach-omap2/opp3xxx_data.c 
b/arch/arm/mach-omap2/opp3xxx_data.c
index 0486fce..cba17f7 100644
--- a/arch/arm/mach-omap2/opp3xxx_data.c
+++ b/arch/arm/mach-omap2/opp3xxx_data.c
@@ -17,8 +17,10 @@
  * GNU General Public License for more details.
  */
 #include linux/module.h
+#include linux/opp.h
 
 #include plat/cpu.h
+#include plat/omap_device.h
 
 #include omap_opp_data.h
 
@@ -33,6 +35,8 @@ static struct omap_opp_def __initdata omap34xx_opp_def_list[] 
= {
OPP_INITIALIZER(mpu, true, 55000, 127),
/* MPU OPP5 */
OPP_INITIALIZER(mpu, true, 6, 135),
+   /* MPU OPP6 */
+   OPP_INITIALIZER(mpu, false, 72000, 135),
 
/*
 * L3 OPP1 - 41.5 MHz is disabled because: The voltage for that OPP is
@@ -58,6 +62,8 @@ static struct omap_opp_def __initdata omap34xx_opp_def_list[] 
= {
OPP_INITIALIZER(iva, true, 4, 127),
/* DSP OPP5 */
OPP_INITIALIZER(iva, true, 43000, 135),
+   /* DSP OPP6 */
+   OPP_INITIALIZER(iva, false, 52000, 135),
 };
 
 static struct omap_opp_def __initdata omap36xx_opp_def_list[] = {
@@ -85,6 +91,57 @@ static struct omap_opp_def __initdata 
omap36xx_opp_def_list[] = {
OPP_INITIALIZER(iva, false, 8, 1375000),
 };
 
+
+/**
+ * omap3_opp_enable_720Mhz() - Enable the OPP corresponding to 720MHz
+ *
+ * This function would be executed only if the silicon is capable of
+ * running at the 720MHz.
+ */
+static int __init omap3_opp_enable_720Mhz(void)
+{
+   int r = -ENODEV;
+   struct omap_hwmod *oh_mpu = omap_hwmod_lookup(mpu);
+   struct omap_hwmod *oh_iva;
+   struct platform_device *pdev;
+
+   if (!oh_mpu || !oh_mpu-od) {
+   goto err;
+   } else {
+   pdev = oh_mpu-od-pdev;
+
+   r = opp_enable(pdev-dev, 72000);
+   if (r  0) {
+   

RE: [PATCH] omap3: Add basic support for 720MHz part

2011-01-20 Thread Premi, Sanjeev
 -Original Message-
 From: G, Manjunath Kondaiah [mailto:manj...@ti.com] 
 Sent: Thursday, January 20, 2011 4:51 PM
 To: Premi, Sanjeev
 Cc: Varadarajan, Charulatha; linux-omap@vger.kernel.org
 Subject: Re: [PATCH] omap3: Add basic support for 720MHz part
 

[snip]

 
 Looks fine. Feel free to add after the above changes:
 
 Reviewed-by: G, Manjunath Kondaiah manj...@ti.com
 

Sorry, noticed this mail after sending the patch from linux box :(

 -Manjunath
 
 --
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: [PATCHv2] OMAP: Enable Magic SysRq on serial console ttyOx

2011-01-20 Thread G, Manjunath Kondaiah
On Wed, Jan 19, 2011 at 07:28:20PM +0530, Govindraj wrote:
 On Wed, Jan 19, 2011 at 7:01 PM, Thomas Weber we...@corscience.de wrote:
  Am 19.01.2011 14:00, schrieb G, Manjunath Kondaiah:
  On Wed, Jan 19, 2011 at 03:01:39PM +0530, Govindraj wrote:
  On Wed, Jan 19, 2011 at 2:11 PM, Thomas Weber we...@corscience.de wrote:
  Magic SysRq key is not working for OMAP on new serial
  console ttyOx because SUPPORT_SYSRQ is not defined
  for omap-serial.
 
  This patch defines SUPPORT_SYSRQ in omap-serial and
  enables handling of Magic SysRq character.
 
  Signed-off-by: Thomas Weber we...@corscience.de
 
  Looks fine to me.
 
  Acked-by: Govindraj.R govindraj.r...@ti.com
  I tried to use SysRq key on minicom after applying this patch, it looks
  like it is not triggering sysrq event.
 
  Am I missing anything?
 
  -Manjunath
  --
  Hello Manjunath,
 
  Do you have CONFIG_MAGIC_SYSRQ enabled?
  Magic SysRq key in Kernel Hacking
 
  I tested it on Devkit8000 (beagle board clone).
 
 
 re-setting lsr_break_flag to 0 in receive chars is causing issues
 in getting sysrq key break sequence on omap-serial.c
 
 Manju,
 
 can you try this change on your environment.
 With below change works for me on 3430SDP/4430SDP.
 key sequence I checked.
 [alt + b + t]  = shows trace of tasks running.
 [alt + b + b] = system reboot.

With below patch, it works fine on TeraTerm. However, I am not able to
perform the same on minicom.

Tested-by: Manjunath G Kondaiah manj...@ti.com

-Manjunath

 
 
 diff --git a/drivers/serial/omap-serial.c b/drivers/serial/omap-serial.c
 index 1201eff..6df623e 100644
 --- a/drivers/serial/omap-serial.c
 +++ b/drivers/serial/omap-serial.c
 @@ -20,6 +20,10 @@
   * this driver as required for the omap-platform.
   */
 
 +#if defined(CONFIG_SERIAL_OMAP_CONSOLE)  defined(CONFIG_MAGIC_SYSRQ)
 +#define SUPPORT_SYSRQ
 +#endif
 +
  #include linux/module.h
  #include linux/init.h
  #include linux/console.h
 @@ -190,7 +194,6 @@ static inline void receive_chars(struct
 uart_omap_port *up, int *status)
 if (up-port.line == up-port.cons-index) {
 /* Recover the break flag from console xmit */
 lsr |= up-lsr_break_flag;
 -   up-lsr_break_flag = 0;
 }
  #endif
 if (lsr  UART_LSR_BI)
 
 
 --
 Thanks,
 Govindraj.R
--
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: [PATCHv2] OMAP: Enable Magic SysRq on serial console ttyOx

2011-01-20 Thread Anand Gadiyar
   Magic SysRq key is not working for OMAP on new serial
   console ttyOx because SUPPORT_SYSRQ is not defined
   for omap-serial.
  
   This patch defines SUPPORT_SYSRQ in omap-serial and
   enables handling of Magic SysRq character.
  
   Signed-off-by: Thomas Weber we...@corscience.de
  
   Looks fine to me.
  
   Acked-by: Govindraj.R govindraj.r...@ti.com
   I tried to use SysRq key on minicom after applying this patch, it
looks
   like it is not triggering sysrq event.
  
   Am I missing anything?
  
   -Manjunath
   --
   Hello Manjunath,
  
   Do you have CONFIG_MAGIC_SYSRQ enabled?
   Magic SysRq key in Kernel Hacking
  
   I tested it on Devkit8000 (beagle board clone).
  
 
  re-setting lsr_break_flag to 0 in receive chars is causing issues
  in getting sysrq key break sequence on omap-serial.c
 
  Manju,
 
  can you try this change on your environment.
  With below change works for me on 3430SDP/4430SDP.
  key sequence I checked.
  [alt + b + t]  = shows trace of tasks running.
  [alt + b + b] = system reboot.

 With below patch, it works fine on TeraTerm. However, I am not able to
 perform the same on minicom.

 Tested-by: Manjunath G Kondaiah manj...@ti.com

 -Manjunath


Not sure what you guys are trying out, but I am able to use sysrq
just fine in minicom (using only Thomas' original patch) - you need
to send a break sequence, and the way to do this in minicom is to
do Ctrl-A followed by F.

Works for me, without the resetting lsr_break_flag to 0 part.

@Govind,

What are the issues you see in getting sysrq key break sequence
without your change? And how is your change fixing this?


- 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] ARM: oprofile: Always allow backtraces

2011-01-20 Thread Sergei Shtylyov

Hello.

On 19-01-2011 23:54, Ari Kauppi wrote:


Always allow backtrace when using oprofile on ARM, even if a PMU
isn't present.



Restores functionality originally introduced in
1b7b56982fdcd9d85effd76f3928cf5d6eb26155 by Richard Purdie.


   You're lacking the commit summary specified in parens which Linus asked to 
add.



Signed-off-by: Ari Kauppikau...@papupata.org
Cc: Richard Purdierpur...@rpsys.net
Cc: Will Deaconwill.dea...@arm.com
Cc: Matt Flemingm...@console-pimps.org


WBR, Sergei
--
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: PM: Adding T2 enabling of smartreflex

2011-01-20 Thread Gulati, Shweta
On Wed, Jan 19, 2011 at 5:54 PM, Nishanth Menon n...@ti.com wrote:
 Gulati, Shweta wrote, on 01/19/2011 02:10 PM:

     I cant see how disable_sr is usable, further as discussed in
    http://marc.info/?l=linux-omapm=129424774929498w=2
    http://marc.info/?l=linux-omapm=129424774929498w=2 we decided to
    introduce api *if needed*. does any one need it?

    There might be some OMAP3xxx chips where for DVFS VMODE or VSEL
    method is used, for those boards this disable API could be called
    from Board File,  to make sure the sequence of execution  of

     late_init_call of twl_init from omap2_common_pm_late_init does not
 hamper clearing of this bit I would add a global variable to keep track
 if Resetting is required or not, will submit V2 with changes.

 Apologies, but a Dumb question:

 late_initcall(omap2_common_pm_late_init)
 board files(arch/arm/include/asm/mach/arch.h machine_desc) tend to have the
 following hooks:

 void                    (*fixup)(struct machine_desc *,
                                 struct tag *, char **,
                                 struct meminfo *);
 void                    (*reserve)(void);/* reserve mem blocks  */
 void                    (*map_io)(void);/* IO mapping function  */
 void                    (*init_early)(void);
 void                    (*init_irq)(void);
 struct sys_timer        *timer;         /* system tick timer    */
 void                    (*init_machine (void);
 void                    (*handle_irq)(struct pt_regs *);

 So if i wanted to disable the SR setting, where should I do it?

 --
 Regards,
 Nishanth Menon

Nishanth,

I think i could not make my point clear in my previous reply.

There are two APIs added 'omap3_twl_disable_sr' and
'omap3_twl_enable_sr'. omap3_twl_enable_sr sets SR bit in TWL4030
registers to make sure VPforceupdate method of voltage scaling works
properly but there could be some OMAP3xxx chips where VMODE or VSEL
method of voltage scaling is used (though today these voltage scaling
methods are not recommended by HW folks). For the boards where
Vpforceupdate method is used this  'omap3_twl_disable_sr' would not be
called.  For possible case of platforms where VMODE or VSEL methods
are used the API 'omap3_twl_disable_sr' will reset this bit.
The API 'omap3_twl_disable_sr' can be called from board file, to make
sure the resetting of this bit is not
overwritten in late_init call of omap3_twl_init(where
'omap3_twl_enable_sr' is called) I suggested adding a
global flag which will keep track whether this bit is cleared from
board file or not.
Would make these changes in V2.

Regards,
Shweta
 PS: could you please fix your mailer when replying on l-o for netetiquette
 reasons?




--
Thanks,
Regards,
Shweta
--
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] OMAP: use fncpy to copy the PM code functions to SRAM

2011-01-20 Thread Jean Pihet
On Wed, Jan 19, 2011 at 11:10 PM, Tony Lindgren t...@atomide.com wrote:
 * Kevin Hilman khil...@ti.com [110119 13:37]:
 Kevin Hilman khil...@ti.com writes:

  jean.pi...@newoldbits.com writes:
 
  From: Jean Pihet j-pi...@ti.com
 
  The new fncpy API is better suited for copying some
  code to SRAM at runtime. This patch changes the ad-hoc
  code to the more generic fncpy API.
 
  Tested OK on OMAP3 in low power modes (RET/OFF)
  using omap2plus_defconfig with !CONFIG_THUMB2_KERNEL.
  Compile tested on OMAP1/2 using omap1_defconfig.
 
  Signed-off-by: Jean Pihet j-pi...@ti.com
 
  Acked-by: Kevin Hilman khil...@ti.com
 
  Boot tested on OMAP1  OMAP2 as well.  Note that neither OMAP1 or OMAP2
  has had working suspend/resume for a long time now, so I did not test
  suspend/resume.

 For OMAP2:

 Tested-by: Kevin Hilman khil...@ti.com

 to test a little more on OMAP2, I just removed the WFI from the
 low-level code and tested suspend that way.  That's enough to be sure
 the copied code is copied and executed.

 Worked fine on OMAP2420/n810.

 For OMAP1, this didn't work and would require more serious hacking on
 the OMAP1 suspend path, which I currently have no plans to do.

 Boots fine on osk5912 and n800 too:

 Tested-by: Tony Lindgren t...@atomide.com


Thanks for testing!

Regards,
Jean
--
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] OMAP: omap-mcbsp: Fix building after replacement

2011-01-20 Thread Thomas Weber
Fix building omap-mcbsp after replacing ARCH_OMAP24x0 in
commit 8a9c1aa6a4caa7db1c2fca4b47168af9077e0f95.

   omap: Start using CONFIG_SOC_OMAP

We want to have just CONFIG_ARCH_OMAP2, 3 and 4. The rest
are nowadays just subcategories of these.

Search and replace the following:

ARCH_OMAP2420   SOC_OMAP2420
ARCH_OMAP2430   SOC_OMAP2430
ARCH_OMAP3430   SOC_OMAP3430

Signed-off-by: Thomas Weber we...@corscience.de
---
 sound/soc/omap/omap-mcbsp.c |1 +
 sound/soc/omap/omap-mcbsp.h |1 +
 2 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/sound/soc/omap/omap-mcbsp.c b/sound/soc/omap/omap-mcbsp.c
index 3cc293b..ede6afd 100644
--- a/sound/soc/omap/omap-mcbsp.c
+++ b/sound/soc/omap/omap-mcbsp.c
@@ -113,6 +113,7 @@ static const int omap44xx_dma_reqs[][2] = {
 static const int omap44xx_dma_reqs[][2] = {};
 #endif
 
+#if defined(CONFIG_SOC_OMAP2420)
 static const unsigned long omap2420_mcbsp_port[][2] = {
{ OMAP24XX_MCBSP1_BASE + OMAP_MCBSP_REG_DXR1,
  OMAP24XX_MCBSP1_BASE + OMAP_MCBSP_REG_DRR1 },
diff --git a/sound/soc/omap/omap-mcbsp.h b/sound/soc/omap/omap-mcbsp.h
index b7b0ce1..37dc721 100644
--- a/sound/soc/omap/omap-mcbsp.h
+++ b/sound/soc/omap/omap-mcbsp.h
@@ -54,6 +54,7 @@ enum omap_mcbsp_div {
 #undef  NUM_LINKS
 #define NUM_LINKS  4
 #endif
+#if defined(CONFIG_ARCH_OMAP3) || defined(CONFIG_SOC_OMAP2430)
 #undef  NUM_LINKS
 #define NUM_LINKS  5
 #endif
-- 
1.7.4.rc2

--
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 v2] omap2: fix DPLL_FREQSEL calculation

2011-01-20 Thread John Ogness
On 2011-01-20, Felipe Balbi ba...@ti.com wrote:
 scripts/get_maintainer.pl would've helped you getting a better Cc
 list. I'm adding linux-omap and lakml

Thanks.

After investigating the issue further it seems that I had it
backwards. The value of n is the value to divide by, not the value
that goes in the register. This means that it is _dpll_test_fint()
that is doing it incorrectly. Here is a new version of the patch to
fix the right function.



This patch fixes the calculation of the internal frequency. The value
of n is the actual divider to use.

This patch is against linux-next-20110120.

Signed-off-by: John Ogness john.ogn...@linutronix.de
---
 arch/arm/mach-omap2/clkt_dpll.c |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/mach-omap2/clkt_dpll.c b/arch/arm/mach-omap2/clkt_dpll.c
index 337392c..acb7ae5 100644
--- a/arch/arm/mach-omap2/clkt_dpll.c
+++ b/arch/arm/mach-omap2/clkt_dpll.c
@@ -77,7 +77,7 @@ static int _dpll_test_fint(struct clk *clk, u8 n)
dd = clk-dpll_data;
 
/* DPLL divider must result in a valid jitter correction val */
-   fint = clk-parent-rate / (n + 1);
+   fint = clk-parent-rate / n;
if (fint  DPLL_FINT_BAND1_MIN) {
 
pr_debug(rejecting n=%d due to Fint failure, 
--
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] OMAP: omap-mcbsp: Fix building after replacement

2011-01-20 Thread Poddar, Sourav
On Thu, Jan 20, 2011 at 7:42 PM, Thomas Weber we...@corscience.de wrote:
 Fix building omap-mcbsp after replacing ARCH_OMAP24x0 in
 commit 8a9c1aa6a4caa7db1c2fca4b47168af9077e0f95.

   omap: Start using CONFIG_SOC_OMAP

    We want to have just CONFIG_ARCH_OMAP2, 3 and 4. The rest
    are nowadays just subcategories of these.

    Search and replace the following:

    ARCH_OMAP2420               SOC_OMAP2420
    ARCH_OMAP2430               SOC_OMAP2430
    ARCH_OMAP3430               SOC_OMAP3430


I was just about to post a patch for this, but you beat me
to it!

 Signed-off-by: Thomas Weber we...@corscience.de

Acked-by: Sourav Poddar sourav.pod...@ti.com

 ---
  sound/soc/omap/omap-mcbsp.c |    1 +
  sound/soc/omap/omap-mcbsp.h |    1 +
  2 files changed, 2 insertions(+), 0 deletions(-)

 diff --git a/sound/soc/omap/omap-mcbsp.c b/sound/soc/omap/omap-mcbsp.c
 index 3cc293b..ede6afd 100644
 --- a/sound/soc/omap/omap-mcbsp.c
 +++ b/sound/soc/omap/omap-mcbsp.c
 @@ -113,6 +113,7 @@ static const int omap44xx_dma_reqs[][2] = {
  static const int omap44xx_dma_reqs[][2] = {};
  #endif

 +#if defined(CONFIG_SOC_OMAP2420)
  static const unsigned long omap2420_mcbsp_port[][2] = {
        { OMAP24XX_MCBSP1_BASE + OMAP_MCBSP_REG_DXR1,
          OMAP24XX_MCBSP1_BASE + OMAP_MCBSP_REG_DRR1 },
 diff --git a/sound/soc/omap/omap-mcbsp.h b/sound/soc/omap/omap-mcbsp.h
 index b7b0ce1..37dc721 100644
 --- a/sound/soc/omap/omap-mcbsp.h
 +++ b/sound/soc/omap/omap-mcbsp.h
 @@ -54,6 +54,7 @@ enum omap_mcbsp_div {
  #undef  NUM_LINKS
  #define NUM_LINKS      4
  #endif
 +#if defined(CONFIG_ARCH_OMAP3) || defined(CONFIG_SOC_OMAP2430)
  #undef  NUM_LINKS
  #define NUM_LINKS      5
  #endif
 --
 1.7.4.rc2

 --
 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: [PATCH] ARM: smp: Introduce ARCH_HAS_COMMON_CORES_CLOCK to speed-up boot

2011-01-20 Thread Rob Herring

On 01/20/2011 03:42 AM, Santosh Shilimkar wrote:

On some architectures, secondary cores shares clock with primiary
core and hence scale together. Hence secondary core lpj calibration
is not necessary and can be skipped to save considerable time.

This can speed up the secondary cpu boot and hotplug cpu online
paths.

Discussion thread:
http://www.spinics.net/lists/arm-kernel/msg24.html



There's already one way to do this with pre-calculated lpj.

Also, this isn't multi-platform friendly. You could accomplish the same 
thing using the clock api to get the core frequency of each core and 
only calculate lpj if the frequency is different.


Rob
--
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: nand: bch ecc support added

2011-01-20 Thread Vimal Singh
Hi Ghorai,

I am the initial author of this patch. And I guess this patch still
uses most of my work.


Thanks and Regards,
Vimal

On Thu, Jan 20, 2011 at 3:48 PM, Sukumar Ghorai s-gho...@ti.com wrote:
 bch error correction (t=4 and t=8) for 512 bytes support added.
 Tested in omap-3630 es-1.1 silicon.

 Need to select the bch-ecc from board file. E.g.
 arch/arm/mach-omap2/board-flash.c: board_nand_init()
 board_nand_data.ecc_opt = OMAP_ECC_BCH4_CODE_HW

 This patch has dependency on -
 http://www.mail-archive.com/linux-omap@vger.kernel.org/msg42658.html

 Signed-off-by: Sukumar Ghorai s-gho...@ti.com
 ---
  arch/arm/mach-omap2/gpmc.c             |  126 ---
  arch/arm/plat-omap/include/plat/gpmc.h |    6 +-
  drivers/mtd/nand/Makefile              |    1 +
  drivers/mtd/nand/omap2.c               |  119 --
  drivers/mtd/nand/omap_bch_decoder.c    |  393 
 
  5 files changed, 583 insertions(+), 62 deletions(-)
  create mode 100644 drivers/mtd/nand/omap_bch_decoder.c

 diff --git a/arch/arm/mach-omap2/gpmc.c b/arch/arm/mach-omap2/gpmc.c
 index 29c9732..91cfdca 100644
 --- a/arch/arm/mach-omap2/gpmc.c
 +++ b/arch/arm/mach-omap2/gpmc.c
 @@ -48,6 +48,7 @@
  #define GPMC_ECC_CONTROL       0x1f8
  #define GPMC_ECC_SIZE_CONFIG   0x1fc
  #define GPMC_ECC1_RESULT        0x200
 +#define GPMC_ECC_BCH_RESULT_0  0x240

  #define GPMC_CS0_OFFSET                0x60
  #define GPMC_CS_SIZE           0x30
 @@ -94,7 +95,6 @@ static struct resource        gpmc_mem_root;
  static struct resource gpmc_cs_mem[GPMC_CS_NUM];
  static DEFINE_SPINLOCK(gpmc_mem_lock);
  static unsigned int gpmc_cs_map;       /* flag for cs which are initialized 
 */
 -static int gpmc_ecc_used = -EINVAL;    /* cs using ecc engine */

  static void __iomem *gpmc_base;

 @@ -832,52 +832,77 @@ void omap3_gpmc_restore_context(void)

  /**
  * gpmc_enable_hwecc - enable hardware ecc functionality
 + * @ecc_type: ecc type e.g. Hamming, BCH
  * @cs: chip select number
  * @mode: read/write mode
  * @dev_width: device bus width(1 for x16, 0 for x8)
  * @ecc_size: bytes for which ECC will be generated
  */
 -int gpmc_enable_hwecc(int cs, int mode, int dev_width, int ecc_size)
 +int gpmc_enable_hwecc(int ecc_type, int cs, int mode,
 +                       int dev_width, int ecc_size)
  {
 -       unsigned int val;
 -
 -       /* check if ecc module is in used */
 -       if (gpmc_ecc_used != -EINVAL)
 -               return -EINVAL;
 -
 -       gpmc_ecc_used = cs;
 -
 -       /* clear ecc and enable bits */
 -       val = ((0x00018) | 0x0001);
 -       gpmc_write_reg(GPMC_ECC_CONTROL, val);
 -
 -       /* program ecc and result sizes */
 -       val = ecc_size  1) - 1)  22) | (0x000F));
 -       gpmc_write_reg(GPMC_ECC_SIZE_CONFIG, val);
 +       unsigned int bch_mod = 0, bch_wrapmode = 0, eccsize1 = 0, eccsize0 = 
 0;
 +       unsigned int ecc_conf_val = 0, ecc_size_conf_val = 0;

        switch (mode) {
        case GPMC_ECC_READ:
 -               gpmc_write_reg(GPMC_ECC_CONTROL, 0x101);
 +               if (ecc_type == OMAP_ECC_BCH4_CODE_HW) {
 +                       eccsize1 = 0xD; eccsize0 = 0x48;
 +                       bch_mod = 0;
 +                       bch_wrapmode = 0x09;
 +               } else if (ecc_type == OMAP_ECC_BCH8_CODE_HW) {
 +                       eccsize1 = 0x1A; eccsize0 = 0x18;
 +                       bch_mod = 1;
 +                       bch_wrapmode = 0x04;
 +               } else
 +                       eccsize1 = ((ecc_size  1) - 1)  22;
                break;
 +
        case GPMC_ECC_READSYN:
 -                gpmc_write_reg(GPMC_ECC_CONTROL, 0x100);
                break;
 +
        case GPMC_ECC_WRITE:
 -               gpmc_write_reg(GPMC_ECC_CONTROL, 0x101);
 +               if (ecc_type == OMAP_ECC_BCH4_CODE_HW) {
 +                       eccsize1 = 0x20; eccsize0 = 0x00;
 +                       bch_mod = 0;
 +                       bch_wrapmode = 0x06;
 +               } else if (ecc_type == OMAP_ECC_BCH8_CODE_HW) {
 +                       eccsize1 = 0x20; eccsize0 = 0x00;
 +                       bch_mod = 1;
 +                       bch_wrapmode = 0x06;
 +               } else
 +                       eccsize1 = ((ecc_size  1) - 1)  22;
                break;
 +
        default:
                printk(KERN_INFO Error: Unrecognized Mode[%d]!\n, mode);
                break;
        }

 -       /* (ECC 16 or 8 bit col) | ( CS  )  | ECC Enable */
 -       val = (dev_width  7) | (cs  1) | (0x1);
 -       gpmc_write_reg(GPMC_ECC_CONFIG, val);
 +       /* clear ecc and enable bits */
 +       if ((ecc_type == OMAP_ECC_BCH4_CODE_HW) ||
 +               (ecc_type == OMAP_ECC_BCH8_CODE_HW)) {
 +               gpmc_write_reg(GPMC_ECC_CONTROL, 0x0001);
 +               ecc_size_conf_val = (eccsize1  22) | (eccsize0  12);
 +               ecc_conf_val = ((0x01  16) | (bch_mod  12)
 +                       | (bch_wrapmode  8) | (dev_width  7)
 +                

[QUERY] [AUDIO][OMAP3 EVM] arecord not working on OMAP3 EVM

2011-01-20 Thread Koyamangalath, Abhilash
Hi all
While testing audio capture (using arecord e,g.),I'm getting only noise in the 
(zeroed out) output buffers on the OMAP3 EVM.
I have enabled AUXL and AUXR mic inputs through alsamixer, which according to 
the schematics are connected to the Audio In
connector on the board, even though the TWL4030 reg list does not allow me any 
ways ( or so I think) to specify mic-bias for 
these aux inputs.
With AUXL and AUXR muted - I get only silence, which seems to make sense.
Is there any basic startup setting I'm missing, maybe specific to OMAP3 EVM?
Has anyone seen anything like this before, and could provide pointers?

I'm running a kernel based on 2.6.37-rc7 and audio playback is working fine for 
me.




Thanks in advance
Abhilash
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: [PATCH] ARM: smp: Introduce ARCH_HAS_COMMON_CORES_CLOCK to speed-up boot

2011-01-20 Thread Santosh Shilimkar
 -Original Message-
 From: Rob Herring [mailto:robherri...@gmail.com]
 Sent: Thursday, January 20, 2011 8:44 PM
 To: Santosh Shilimkar
 Cc: linux-arm-ker...@lists.infradead.org; Russell King; linux-
 o...@vger.kernel.org; Linus Walleij
 Subject: Re: [PATCH] ARM: smp: Introduce ARCH_HAS_COMMON_CORES_CLOCK
 to speed-up boot

 On 01/20/2011 03:42 AM, Santosh Shilimkar wrote:
  On some architectures, secondary cores shares clock with primiary
  core and hence scale together. Hence secondary core lpj
 calibration
  is not necessary and can be skipped to save considerable time.
 
  This can speed up the secondary cpu boot and hotplug cpu online
  paths.
 
  Discussion thread:
  http://www.spinics.net/lists/arm-kernel/msg24.html
 

 There's already one way to do this with pre-calculated lpj.

How about the hot-plug path? This is not for just boot.

 Also, this isn't multi-platform friendly. You could accomplish the
 same
 thing using the clock api to get the core frequency of each core and
 only calculate lpj if the frequency is different.
May be but what's wrong with the obvious approach which is
completely non-intrusive.
Why is not multi-platform friendly ?
Archs can choose not to select this option.

Regards,
Santosh
--
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


[PATCHv5] OMAP3: Devkit8000: Change lcd power pin

2011-01-20 Thread Thomas Weber
This patch fixes a wrongly used lcd enable pin.

The Devkit8000 uses twl4030_ledA configured as output gpio only for
the lcd enable line. twl4030_gpio.1 is used through the generic
gpio functions while ledA is used via low level twl4030 calls.

This patch removes the low level calls and use the generic gpio functions
for initialization and use of ledA. This patch also fixes a bug where the
lcd would not power down when blanking.

Further this patch fixes an indentation issue. The comment line uses
eight whitespace and is replaced with a hard tab.

gpio_request + gpio_direction_output are replaced with gpio_request_one.
The return value of gpio_request_one is used to set the value of the
gpio to -EINVAL when unsuccessful, so that gpio_is_valid can detect the
unsuccessful request. But already successful requested gpios are not freed.

Reported-by: Daniel Morsing daniel.mors...@gmail.com
Signed-off-by: Thomas Weber we...@corscience.de
---
Changes from v4:
Merge of two patches
Use of gpio_request_one instead of gpio_request + gpio_direction_output
Changes from v3:
Use return value of gpio_request
Changes from v2:
Fix indention = indentation
Better comment for removing low level functions used for twl4030 gpio
Changes from v1:
Pull the indentation fix into this patch
Change the pin for lcd pwren

 arch/arm/mach-omap2/board-devkit8000.c |   27 ---
 1 files changed, 16 insertions(+), 11 deletions(-)

diff --git a/arch/arm/mach-omap2/board-devkit8000.c 
b/arch/arm/mach-omap2/board-devkit8000.c
index a5eb955..e4c12fe 100644
--- a/arch/arm/mach-omap2/board-devkit8000.c
+++ b/arch/arm/mach-omap2/board-devkit8000.c
@@ -115,9 +115,6 @@ static struct omap2_hsmmc_info mmc[] = {
 
 static int devkit8000_panel_enable_lcd(struct omap_dss_device *dssdev)
 {
-   twl_i2c_write_u8(TWL4030_MODULE_GPIO, 0x80, REG_GPIODATADIR1);
-   twl_i2c_write_u8(TWL4030_MODULE_LED, 0x0, 0x0);
-
if (gpio_is_valid(dssdev-reset_gpio))
gpio_set_value_cansleep(dssdev-reset_gpio, 1);
return 0;
@@ -247,6 +244,8 @@ static struct gpio_led gpio_leds[];
 static int devkit8000_twl_gpio_setup(struct device *dev,
unsigned gpio, unsigned ngpio)
 {
+   int ret;
+
omap_mux_init_gpio(29, OMAP_PIN_INPUT);
/* gpio + 0 is mmc0_cd (input/IRQ) */
mmc[0].gpio_cd = gpio + 0;
@@ -255,17 +254,23 @@ static int devkit8000_twl_gpio_setup(struct device *dev,
/* TWL4030_GPIO_MAX + 1 == ledB, PMU_STAT (out, active low LED) */
gpio_leds[2].gpio = gpio + TWL4030_GPIO_MAX + 1;
 
-/* gpio + 1 is LCD_PWREN (out, active high) */
-   devkit8000_lcd_device.reset_gpio = gpio + 1;
-   gpio_request(devkit8000_lcd_device.reset_gpio, LCD_PWREN);
-   /* Disable until needed */
-   gpio_direction_output(devkit8000_lcd_device.reset_gpio, 0);
+   /* TWL4030_GPIO_MAX + 0 is LCD_PWREN (out, active high) */
+   devkit8000_lcd_device.reset_gpio = gpio + TWL4030_GPIO_MAX + 0;
+   ret = gpio_request_one(devkit8000_lcd_device.reset_gpio,
+   GPIOF_DIR_OUT | GPIOF_INIT_LOW, LCD_PWREN);
+   if (ret  0) {
+   devkit8000_lcd_device.reset_gpio = -EINVAL;
+   printk(KERN_ERR Failed to request GPIO for LCD_PWRN\n);
+   }
 
/* gpio + 7 is DVI_PD (out, active low) */
devkit8000_dvi_device.reset_gpio = gpio + 7;
-   gpio_request(devkit8000_dvi_device.reset_gpio, DVI PowerDown);
-   /* Disable until needed */
-   gpio_direction_output(devkit8000_dvi_device.reset_gpio, 0);
+   ret = gpio_request_one(devkit8000_dvi_device.reset_gpio,
+   GPIOF_DIR_OUT | GPIOF_INIT_LOW, DVI PowerDown);
+   if (ret  0) {
+   devkit8000_dvi_device.reset_gpio = -EINVAL;
+   printk(KERN_ERR Failed to request GPIO for DVI PowerDown\n);
+   }
 
return 0;
 }
-- 
1.7.4.rc2

--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] ARM: smp: Introduce ARCH_HAS_COMMON_CORES_CLOCK to speed-up boot

2011-01-20 Thread Linus Walleij
2011/1/20 Rob Herring robherri...@gmail.com:
 On 01/20/2011 03:42 AM, Santosh Shilimkar wrote:

 On some architectures, secondary cores shares clock with primiary
 core and hence scale together. Hence secondary core lpj calibration
 is not necessary and can be skipped to save considerable time.

 This can speed up the secondary cpu boot and hotplug cpu online
 paths.

 Discussion thread:
        http://www.spinics.net/lists/arm-kernel/msg24.html


 There's already one way to do this with pre-calculated lpj.

 Also, this isn't multi-platform friendly.

It can be made to be, then -
skip all Kconfig business (more elegant like this anyway):

static inline int skip_secondary_calibrate(void)
{
return machine_is_u8500() ||
machine_is_svp8500v1() ||
machine_is_svp8500v2() ||
machine_is_svp5500() ||
machine_is_b5500() ||
machine_is_s5500() ||
machine_is_omap4_panda();
}

Hm if this multi-platform stuff is desirable we probably need
a runtime arch_is_omap4(), arch_is_u8500() etc so this machine
list doesn't grow ridiculously long, but ftm this will work.

Yours,
Linus Walleij
--
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


2.6.38-rc1-git1 musb undefined references

2011-01-20 Thread Sid Boyce

Cross compiling for Beagleboard on Ubuntu 11.04 x86_64.
# make-kpkg --revision=0 --append-to-version=-custom --arch=armel 
--cross-compile=/opt/arm-2010q1/bin/arm-none-linux-gnueabi- kernel-image 
--initrd


== making target debian/stamp/build/kernel [new prereqs: vars]==
This is kernel package version 12.036+nmu1.
restore_upstream_debianization
test ! -f scripts/package/builddeb.kpkg-dist || mv -f 
scripts/package/builddeb.kpkg-dist scripts/package/builddeb
test ! -f scripts/package/Makefile.kpkg-dist || mv -f 
scripts/package/Makefile.kpkg-dist scripts/package/Makefile

/usr/bin/make  EXTRAVERSION=-rc1-git1-custom  ARCH=arm \

CROSS_COMPILE=/opt/arm-2010q1/bin/arm-none-linux-gnueabi- zImage
make[1]: Entering directory `/usr/src/XXX/linux-2.6.38-rc1-git1'
scripts/kconfig/conf --silentoldconfig Kconfig
make[1]: Leaving directory `/usr/src/XXX/linux-2.6.38-rc1-git1'
make[1]: Entering directory `/usr/src/XXX/linux-2.6.38-rc1-git1'
  CHK include/linux/version.h
  CHK include/generated/utsrelease.h
make[2]: `include/generated/mach-types.h' is up to date.
  CALLscripts/checksyscalls.sh
  CHK include/generated/compile.h
  LD  fs/built-in.o
  LD  lib/zlib_deflate/built-in.o
  LD  lib/built-in.o
  LD  vmlinux.o
  MODPOST vmlinux.o
WARNING: modpost: Found 3 section mismatch(es).
To see full details build your kernel with:
'make CONFIG_DEBUG_SECTION_MISMATCH=y'
  GEN .version
  CHK include/generated/compile.h
  UPD include/generated/compile.h
  CC  init/version.o
  LD  init/built-in.o
  LD  .tmp_vmlinux1
drivers/built-in.o: In function `musb_free':
clkdev.c:(.text+0xf3d08): undefined reference to `dma_controller_destroy'
drivers/built-in.o: In function `musb_probe':
clkdev.c:(.init.text+0x64a8): undefined reference to `dma_controller_create'
make[1]: *** [.tmp_vmlinux1] Error 1
make[1]: Leaving directory `/usr/src/XXX/linux-2.6.38-rc1-git1'
make: *** [debian/stamp/build/kernel] Error 2
root@sdrbox:/usr/src/XXX/linux-2.6.38-rc1-git1#

root@sdrbox:/usr/src/XXX/linux-2.6.38-rc1-git1# grep OMAP2PLUS .config
CONFIG_ARCH_OMAP2PLUS=y
CONFIG_ARCH_OMAP2PLUS_TYPICAL=y
# CONFIG_USB_MUSB_OMAP2PLUS is not set
root@sdrbox:/usr/src/XXX/linux-2.6.38-rc1-git1# grep MUSB .config
CONFIG_USB_MUSB_HDRC=y
# CONFIG_USB_MUSB_TUSB6010 is not set
# CONFIG_USB_MUSB_OMAP2PLUS is not set
CONFIG_USB_MUSB_AM35X=y
# CONFIG_USB_MUSB_HOST is not set
# CONFIG_USB_MUSB_PERIPHERAL is not set
CONFIG_USB_MUSB_OTG=y
CONFIG_USB_GADGET_MUSB_HDRC=y
CONFIG_USB_MUSB_HDRC_HCD=y
# CONFIG_MUSB_PIO_ONLY is not set
# CONFIG_USB_MUSB_DEBUG is not set

Regards
Sid.
--
Sid Boyce ... Hamradio License G3VBV, Licensed Private Pilot
Emeritus IBM/Amdahl Mainframes and Sun/Fujitsu Servers Tech Support
Senior Staff Specialist, Cricket Coach
Microsoft Windows Free Zone - Linux used for all Computing Tasks

--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] ARM: smp: Introduce ARCH_HAS_COMMON_CORES_CLOCK to speed-up boot

2011-01-20 Thread Rob Herring

On 01/20/2011 09:36 AM, Santosh Shilimkar wrote:

-Original Message-
From: Rob Herring [mailto:robherri...@gmail.com]
Sent: Thursday, January 20, 2011 8:44 PM
To: Santosh Shilimkar
Cc: linux-arm-ker...@lists.infradead.org; Russell King; linux-
o...@vger.kernel.org; Linus Walleij
Subject: Re: [PATCH] ARM: smp: Introduce ARCH_HAS_COMMON_CORES_CLOCK
to speed-up boot

On 01/20/2011 03:42 AM, Santosh Shilimkar wrote:

On some architectures, secondary cores shares clock with primiary
core and hence scale together. Hence secondary core lpj

calibration

is not necessary and can be skipped to save considerable time.

This can speed up the secondary cpu boot and hotplug cpu online
paths.

Discussion thread:
http://www.spinics.net/lists/arm-kernel/msg24.html



There's already one way to do this with pre-calculated lpj.


How about the hot-plug path? This is not for just boot.


The path is the same for hotplug and secondary boot, so yes for both. 
Plus you get the added benefit of speeding up the primary core boot as well.





Also, this isn't multi-platform friendly. You could accomplish the
same
thing using the clock api to get the core frequency of each core and
only calculate lpj if the frequency is different.

May be but what's wrong with the obvious approach which is
completely non-intrusive.
Why is not multi-platform friendly ?
Archs can choose not to select this option.


I meant you can't have single kernel binary with a platform with single 
core freq and a platform with independent core freq.


Looking at this some more, the only reason to call calibrate_delay is to 
get a more accurate value. If you have different frequencies per core, 
you've got bigger problems as loops_per_jiffy value is not per core. So 
your kconfig option name is misleading. Something like 
ARCH_WANT_UDELAY_RECALC would be more accurate. To get a more accurate 
calculation, calibrate_delay only needs to be called by 1 secondary 
core. Perhaps it could be called from somewhere that is not in the 
boot/hotplug path or only done once.


Rob



Regards,
Santosh


--
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


Merging xloader, bootloader and boot environment variables partitions into a single partition on NAND

2011-01-20 Thread Elvis Dowson
Hi,
  I was wondering what the merits and demerits are of having a single 
integrated xloader+bootloader+boot environment variables in a single partition 
in NAND, as opposed to having multiple partitions that hold xloader, bootloader 
and the uboot environment in separate partitions?

Elvis Dowson

--
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


NAND flash update via serial debug console

2011-01-20 Thread Elvis Dowson
Hi,
   Is it possible to flash NAND via the serial debug console for OMAP35xx 
devices? 

Elvis Dowson

--
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] omap2-beagle: Depend upon CONFIG_GPIO_TWL4030

2011-01-20 Thread Tony Lindgren
* Felipe Balbi ba...@ti.com [110119 20:07]:
 On Wed, Jan 19, 2011 at 03:04:13PM -0500, Ben Gamari wrote:
  On Wed, 19 Jan 2011 05:45:28 +0200, Felipe Balbi ba...@ti.com wrote:
   The point is, being able to disable features I don't want on my kernel
   image, is completely valid, if there's a compile breakage, then fix the
   breakage but don't prevent the board from compiling.
   
  I understand. That being said, Linus has made it well known that
  defconfigs will not be an option going forward. Have we found another
 
 I never mentioned defconfigs here.
 
  means of selecting the basic drivers necessary to get a fully functional
  board? Perhaps a CONFIG_MACH_OMAP3_BEAGLE_CORE option selecting the
  necessary driver for a fully functional board would be a solution. I
 
 I'll leave this for Tony to decide, but I don't like your proposal.
 
  remember this being discussed several months ago (when Linus started
  pulling defconfigs out of the tree), but I don't recall there being any
  replacement proposals. It should be possible to build a functional
  kernel from the mainline without iterating over all available
  configuration options.
 
 So you're saying that when you're building a kernel for you
 laptop/desktop you don't have to get a menuconfig and choose the drivers
 you want to compile ? I dare to doubt that.

What we want to do in the long run is build a minimal kernel and make
everything else loaded as modules from initramfs. In order to do that
we need to cut down all the dependencies between core omap code and
the drivers. So I'd stay away from selecting things for boards where
possible.

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: [RFC] omap4: Add board_data and initialise the serial pads

2011-01-20 Thread Tony Lindgren
Hi,

* sricharan r.sricha...@ti.com [110118 07:11]:
 Pass the board specific serial pad mux data
 to the platform level init code.
 
 Signed-off-by: sricharan r.sricha...@ti.com
 ---
 This is a test patch and not intended for a specific use case.
 
 1) The support to add the pad data to the device hwmod entry and to use
it to dynamically configure the pads based on the state of the
hwmod is already present.
 
 2) But using that for pads that requires only  initialisation and not 
dynamic remux, brings in a overhead to iterate over all the
hwmod signals of the device for every device enable/idle transitions.

The right fix for this problem is to change the mux code to keep a separate
list for dynamic pads and static pads. That way all the static pads can
be skipped, and the dynamic list is empty in most cases.

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: [PATCH 0/4] omap4: hsmmc: Adding ADMA support

2011-01-20 Thread Tony Lindgren
* Kishore Kadiyala kishore.kadiy...@ti.com [110118 09:19]:
 This patch series adds support for ADMA on MMC1  MMC2 controllers on OMAP4.
 There is no performance improvement observed using ADMA over SDMA.
 Advantage using ADMA could be reducing contention over SDMA.
 Also the series includes some cleanup.

To me it seems that the only sane way to deal with multiple different
DMA enginges is to implement them all with drivers/dma/dmaengine.c.
Otherwise we'll end up with multiple custom ADMA implementations in
each driver. We need to also make SDMA use the dmaengine code.

If the current dmaengine code does not support this, we need to
improve it to deal with cases like these.

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: [PATCH] OMAP: omap-mcbsp: Fix building after replacement

2011-01-20 Thread Tony Lindgren
* Poddar, Sourav sourav.pod...@ti.com [110120 07:08]:
 On Thu, Jan 20, 2011 at 7:42 PM, Thomas Weber we...@corscience.de wrote:
  Fix building omap-mcbsp after replacing ARCH_OMAP24x0 in
  commit 8a9c1aa6a4caa7db1c2fca4b47168af9077e0f95.
 
    omap: Start using CONFIG_SOC_OMAP
 
     We want to have just CONFIG_ARCH_OMAP2, 3 and 4. The rest
     are nowadays just subcategories of these.
 
     Search and replace the following:
 
     ARCH_OMAP2420               SOC_OMAP2420
     ARCH_OMAP2430               SOC_OMAP2430
     ARCH_OMAP3430               SOC_OMAP3430
 
 
 I was just about to post a patch for this, but you beat me
 to it!
 
  Signed-off-by: Thomas Weber we...@corscience.de
 
 Acked-by: Sourav Poddar sourav.pod...@ti.com

Thanks, merging this into the original. Also adding
applying into linux-omap master.

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: NAND flash update via serial debug console

2011-01-20 Thread Gary Thomas

On 01/20/2011 10:21 AM, Elvis Dowson wrote:

Hi,
Is it possible to flash NAND via the serial debug console for OMAP35xx 
devices?


If you have U-Boot running, you can download whatever you
need via Y-Modem (loady command) and then update the NAND
as needed.

--

Gary Thomas |  Consulting for the
MLB Associates  |Embedded world

--
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 v2 0/3] oprofile: ARM backtraces and few minors

2011-01-20 Thread Ari Kauppi
This patchset re-enables ARM backtraces with non-PMU capable CPUs.

In V2 I have tried to address the comments received for the V1
patches. arch/sh/oprofile/common.c is untouched but should work
as earlier.

Compile tested with arm/omap2plus_defconfig (with and without
CONFIG_HW_PERF_EVENTS).

Ari Kauppi (3):
  oprofile: Use CONFIG_HW_PERF_EVENTS for oprofile_perf_init and
friends
  oprofile: Provide stubs for oprofile_perf_{init,exit}
  ARM: oprofile: Always allow backtraces

 arch/arm/oprofile/common.c |   12 ++--
 include/linux/oprofile.h   |   13 +++--
 2 files changed, 13 insertions(+), 12 deletions(-)

-- 
1.7.4.rc2.3.g60a2e

--
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 v2 1/3] oprofile: Use CONFIG_HW_PERF_EVENTS for oprofile_perf_init and friends

2011-01-20 Thread Ari Kauppi
The implementations are flagged in Makefile with CONFIG_HW_PERF_EVENTS
instead of CONFIG_PERF_EVENTS.

Signed-off-by: Ari Kauppi kau...@papupata.org
---
 include/linux/oprofile.h |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/include/linux/oprofile.h b/include/linux/oprofile.h
index 32fb812..54c8382 100644
--- a/include/linux/oprofile.h
+++ b/include/linux/oprofile.h
@@ -186,10 +186,10 @@ int oprofile_add_data(struct op_entry *entry, unsigned 
long val);
 int oprofile_add_data64(struct op_entry *entry, u64 val);
 int oprofile_write_commit(struct op_entry *entry);
 
-#ifdef CONFIG_PERF_EVENTS
+#ifdef CONFIG_HW_PERF_EVENTS
 int __init oprofile_perf_init(struct oprofile_operations *ops);
 void oprofile_perf_exit(void);
 char *op_name_from_perf_id(void);
-#endif /* CONFIG_PERF_EVENTS */
+#endif /* CONFIG_HW_PERF_EVENTS */
 
 #endif /* OPROFILE_H */
-- 
1.7.4.rc2.3.g60a2e

--
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 v2 2/3] oprofile: Provide stubs for oprofile_perf_{init,exit}

2011-01-20 Thread Ari Kauppi
If CONFIG_HW_PERF_EVENTS is not defined, provide stubs for
oprofile_perf_init and oprofile_perf_exit. Allows cleaning of
architecture specific implementations.

Signed-off-by: Ari Kauppi kau...@papupata.org
---
 include/linux/oprofile.h |9 +
 1 files changed, 9 insertions(+), 0 deletions(-)

diff --git a/include/linux/oprofile.h b/include/linux/oprofile.h
index 54c8382..1ca6411 100644
--- a/include/linux/oprofile.h
+++ b/include/linux/oprofile.h
@@ -16,6 +16,8 @@
 #include linux/types.h
 #include linux/spinlock.h
 #include linux/init.h
+#include linux/errno.h
+#include linux/printk.h
 #include asm/atomic.h
  
 /* Each escaped entry is prefixed by ESCAPE_CODE
@@ -190,6 +192,13 @@ int oprofile_write_commit(struct op_entry *entry);
 int __init oprofile_perf_init(struct oprofile_operations *ops);
 void oprofile_perf_exit(void);
 char *op_name_from_perf_id(void);
+#else
+static inline int __init oprofile_perf_init(struct oprofile_operations *ops)
+{
+   pr_info(oprofile: hardware counters not available\n);
+   return -ENODEV;
+}
+static inline void oprofile_perf_exit(void) { }
 #endif /* CONFIG_HW_PERF_EVENTS */
 
 #endif /* OPROFILE_H */
-- 
1.7.4.rc2.3.g60a2e

--
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 v2 3/3] ARM: oprofile: Always allow backtraces

2011-01-20 Thread Ari Kauppi
Always allow backtrace when using oprofile on ARM, even if a PMU
isn't present. Implemented by removing code and using stubs
provided by linux/oprofile.h.

Restores functionality originally introduced in commit
1b7b56982fdcd9d85effd76f3928cf5d6eb26155 (oprofile: Always allow
backtraces on ARM) by Richard Purdie.

Signed-off-by: Ari Kauppi kau...@papupata.org
---
 arch/arm/oprofile/common.c |   12 ++--
 1 files changed, 2 insertions(+), 10 deletions(-)

diff --git a/arch/arm/oprofile/common.c b/arch/arm/oprofile/common.c
index 8aa9744..2b66391 100644
--- a/arch/arm/oprofile/common.c
+++ b/arch/arm/oprofile/common.c
@@ -10,8 +10,6 @@
  */
 
 #include linux/cpumask.h
-#include linux/err.h
-#include linux/errno.h
 #include linux/init.h
 #include linux/mutex.h
 #include linux/oprofile.h
@@ -46,6 +44,7 @@ char *op_name_from_perf_id(void)
return NULL;
}
 }
+#endif
 
 static int report_trace(struct stackframe *frame, void *d)
 {
@@ -111,6 +110,7 @@ static void arm_backtrace(struct pt_regs * const regs, 
unsigned int depth)
 
 int __init oprofile_arch_init(struct oprofile_operations *ops)
 {
+   /* provide backtrace support also in timer mode: */
ops-backtrace  = arm_backtrace;
 
return oprofile_perf_init(ops);
@@ -120,11 +120,3 @@ void __exit oprofile_arch_exit(void)
 {
oprofile_perf_exit();
 }
-#else
-int __init oprofile_arch_init(struct oprofile_operations *ops)
-{
-   pr_info(oprofile: hardware counters not available\n);
-   return -ENODEV;
-}
-void __exit oprofile_arch_exit(void) {}
-#endif /* CONFIG_HW_PERF_EVENTS */
-- 
1.7.4.rc2.3.g60a2e

--
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


[Query] mm: !*pte hit in mm/memory.c:remap_pte_range

2011-01-20 Thread Aguirre, Sergio
Hi,

WARNING: Linux MM newbie here. Please bare with me a bit.

While debugging a new v4l2 driver that makes use of the OMAP4 Tiler allocators 
in mmap calls, I found out that
remap_pfn_range was getting completely stalled.

And while debugging further, i realized that the point of stall was in 
mm/memory.c, function:

static int remap_pte_range(struct mm_struct *mm, pmd_t *pmd,
unsigned long addr, unsigned long end,
unsigned long pfn, pgprot_t prot)
{
pte_t *pte;
spinlock_t *ptl;

pte = pte_alloc_map_lock(mm, pmd, addr, ptl);
if (!pte)
return -ENOMEM;
arch_enter_lazy_mmu_mode();
do {


BUG_ON(!pte_none(*pte)); ---*** HERE


set_pte_at(mm, addr, pte, pte_mkspecial(pfn_pte(pfn, prot)));
pfn++;
} while (pte++, addr += PAGE_SIZE, addr != end);
arch_leave_lazy_mmu_mode();
pte_unmap_unlock(pte - 1, ptl);
return 0;
}

This is in 2.6.35.6 kernel + TI Android kernel changes. [1]

How should i interpret this? Does this mean something specific?

Any pointers will be appreciated.

Regards,
Sergio

---

[1] 
http://git.omapzoom.org/?p=kernel/omap.git;a=shortlog;h=refs/heads/p-android-omap-2.6.35--
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


Fail to suspend to ram: Class driver suspend failed for cpu0

2011-01-20 Thread Luke Gong
Hello,

I have a beagle board with OMAP3530. I ported linux-omap-pm2.6.32 to
this board. When I want to let it suspend to ram, it fails and I get
the message Class driver suspend failed for cpu0. Here is the log:

root@beagleboard:~# echo mem  /sys/power/state
PM: Syncing filesystems ... done.
Freezing user space processes ... (elapsed 0.00 seconds) done.
Freezing remaining freezable tasks ... (elapsed 0.00 seconds) done.
Suspending console(s) (use no_console_suspend to debug)
omapfb omapfb: timeout waiting for FRAME DONE
Class driver suspend failed for cpu0
Restarting tasks ... done.

*

Is there any idea to fix this problem? Thanks.

-- 
Luke
--
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] omap2-beagle: Depend upon CONFIG_GPIO_TWL4030

2011-01-20 Thread Ben Gamari
--text follows this line--
On Thu, 20 Jan 2011 06:08:25 +0200, Felipe Balbi ba...@ti.com wrote:
 On Wed, Jan 19, 2011 at 03:04:13PM -0500, Ben Gamari wrote:
  I understand. That being said, Linus has made it well known that
  defconfigs will not be an option going forward. Have we found another
 
 I never mentioned defconfigs here.
 
Certainly, I was trying to point out that there is no good way to
package a configuration for a given board, which definitely increases
the learning curve for a board integrator.

  means of selecting the basic drivers necessary to get a fully functional
  board? Perhaps a CONFIG_MACH_OMAP3_BEAGLE_CORE option selecting the
  necessary driver for a fully functional board would be a solution. I
 
 I'll leave this for Tony to decide, but I don't like your proposal.
 
Fair enough.

 So you're saying that when you're building a kernel for you
 laptop/desktop you don't have to get a menuconfig and choose the drivers
 you want to compile ? I dare to doubt that.
 
On the whole x86 hardware is far more uniform than ARM hardware. There
is a good reason why there used to be so many defconfigs for ARM in the tree.

Cheers,

- Ben
--
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 RFC] arm: omap3evm: Add support for an MT9M032 based camera board.

2011-01-20 Thread martin
Hi Laurent,

On Wed, Jan 19, 2011 at 12:38:09AM +0100, Laurent Pinchart wrote:
 Hi Martin,
 
 Thanks for the patch.
 
 On Tuesday 18 January 2011 23:32:16 Martin Hostettler wrote:
  Adds board support for an MT9M032 based camera to omap3evm.
  
  Sigend-off-by: Martin Hostettler mar...@neutronstar.dyndns.org
  ---
   arch/arm/mach-omap2/Makefile|1 +
   arch/arm/mach-omap2/board-omap3evm-camera.c |  177 
   2 files changed, 178 insertions(+), 0 deletions(-)
   create mode 100644 arch/arm/mach-omap2/board-omap3evm-camera.c
 
 Is there a special reason to add camera support to a separate file ?

No it's just that the other code i looked at did it in the same way. I don't
really know what's the best way to handle this board code...

 
 Of course not all OMAP3 EVM systems will use an MT9M032 sensor, so some kind 
 of modularity (and if possible runtime configuration) will be needed.

My 0th version did have a Kconfig option, but i got advise (off-list) that i
should be doing it unconditionally and leave the design for compile or runtime
selection to the developer who adds code for another option.

 
 [snip]
 
  diff --git a/arch/arm/mach-omap2/board-omap3evm-camera.c
  b/arch/arm/mach-omap2/board-omap3evm-camera.c new file mode 100644
  index 000..ea82a49
  --- /dev/null
  +++ b/arch/arm/mach-omap2/board-omap3evm-camera.c
  @@ -0,0 +1,177 @@
 
 [snip]
 
 
  +/*
  + * Copyright (C) 2010-2011 Lund Engineering
  + * Contact: Gil Lund gwl...@lundeng.com
  + * Author: Martin Hostettler mar...@neutronstar.dyndns.org
  + *
  + * 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.
  + *
  + * This program is distributed in the hope that it will be useful, but
  + * WITHOUT ANY WARRANTY; without even the implied warranty of
  + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  + * General Public License for more details.
  + *
  + * You should have received a copy of the GNU General Public License
  + * along with this program; if not, write to the Free Software
  + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  + * 02110-1301 USA
  + */
  +
  +#include linux/i2c.h
  +#include linux/init.h
  +#include linux/platform_device.h
  +
  +#include asm/gpio.h
  +#include plat/mux.h
  +#include mux.h
  +
  +#include ../../../drivers/media/video/isp/isp.h
  +#include ../../../drivers/media/video/mt9m032.h
 
 mt9m032.h should be moved to include/media (the same is true for isp.h as 
 well, I'll probably split it and move the part required by board files to 
 include/media/omap3isp.h).

Ok, sounds sensible.

 
  +#include devices.h
  +
  +#define EVM_TWL_GPIO_BASE OMAP_MAX_GPIO_LINES
  +#define GPIO98_VID_DEC_RES 98
  +#define nCAM_VD_SEL157
  +
  +#define MT9M032_I2C_BUS_NUM2
  +
  +
  +enum omap3evmdc_mux {
  +   MUX_TVP5146,
  +   MUX_CAMERA_SENSOR,
  +   MUX_EXP_CAMERA_SENSOR,
  +};
  +
  +/**
  + * omap3evm_set_mux - Sets mux to enable signal routing to
  + *   different peripherals present on new EVM
  board + * @mux_id: enum, mux id to enable
  + *
  + * Returns 0 for success or a negative error code
  + */
  +static int omap3evm_set_mux(enum omap3evmdc_mux mux_id)
  +{
  +   /* Set GPIO6 = 1 */
  +   gpio_set_value_cansleep(EVM_TWL_GPIO_BASE + 6, 1);
  +   gpio_set_value_cansleep(EVM_TWL_GPIO_BASE + 2, 0);
  +
  +   switch (mux_id) {
  +   case MUX_TVP5146:
  +   gpio_set_value_cansleep(EVM_TWL_GPIO_BASE + 2, 0);
  +   gpio_set_value(nCAM_VD_SEL, 1);
  +   break;
  +
  +   case MUX_CAMERA_SENSOR:
  +   gpio_set_value_cansleep(EVM_TWL_GPIO_BASE + 2, 0);
  +   gpio_set_value(nCAM_VD_SEL, 0);
  +   break;
  +
  +   case MUX_EXP_CAMERA_SENSOR:
  +   gpio_set_value_cansleep(EVM_TWL_GPIO_BASE + 2, 1);
  +   break;
  +
  +   default:
  +   pr_err(omap3evm-camera: Invalid mux id #%d\n, mux_id);
  +   return -EINVAL;
  +   }
  +
  +   return 0;
  +}
  +
 
  +static int __init camera_init(void)
  +{
  +   omap_mux_init_gpio(nCAM_VD_SEL, OMAP_PIN_OUTPUT);
  +   if (gpio_request(nCAM_VD_SEL, nCAM_VD_SEL)  0) {
  +   pr_err(omap3evm-camera: Failed to get GPIO nCAM_VD_SEL(%d)\n,
  +  nCAM_VD_SEL);
  +   goto err;
 
 You can return -EINVAL directly here. This removes the need for the 'err' 
 label.

I like to have all error handling work the same way. So one return for error
and one return for success. At least if it's as trivial as here.

 
  +   }
  +   if (gpio_direction_output(nCAM_VD_SEL, 1)  0) {
  +   pr_err(omap3evm-camera: Failed to set GPIO nCAM_VD_SEL(%d)
  direction\n, +nCAM_VD_SEL);
  +   goto err_vdsel;
  +   }
  +
  +   if (gpio_request(EVM_TWL_GPIO_BASE + 2, T2_GPIO2)  0) {
  +   pr_err(omap3evm-camera: 

Re: Fail to suspend to ram: Class driver suspend failed for cpu0

2011-01-20 Thread Kevin Hilman
Luke Gong lukejg...@gmail.com writes:

 I have a beagle board with OMAP3530. I ported linux-omap-pm2.6.32 to
 this board. When I want to let it suspend to ram, 

This is an old kernel.  Any reason you're not using a newer kernel?

 it fails and I get
 the message Class driver suspend failed for cpu0

This is the CPUfreq driver failing to suspend, probably because there is
no CPUfreq driver implemented in your kernel.  Try disabling CPU_FREQ in
your kernel config.

Kevin

 . Here is the log:

 root@beagleboard:~# echo mem  /sys/power/state
 PM: Syncing filesystems ... done.
 Freezing user space processes ... (elapsed 0.00 seconds) done.
 Freezing remaining freezable tasks ... (elapsed 0.00 seconds) done.
 Suspending console(s) (use no_console_suspend to debug)
 omapfb omapfb: timeout waiting for FRAME DONE
 Class driver suspend failed for cpu0
 Restarting tasks ... done.

 *

 Is there any idea to fix this problem? Thanks.
--
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: Fail to suspend to ram: Class driver suspend failed for cpu0

2011-01-20 Thread Luke Gong
Thanks, Kevin.

On Thu, Jan 20, 2011 at 5:54 PM, Kevin Hilman khil...@ti.com wrote:
 Luke Gong lukejg...@gmail.com writes:

 I have a beagle board with OMAP3530. I ported linux-omap-pm2.6.32 to
 this board. When I want to let it suspend to ram,

 This is an old kernel.  Any reason you're not using a newer kernel?

I have Angstrom7 with kernel 2.6.32 running on this board. So I
selected this old version to test. I might try the latest one.


 it fails and I get
 the message Class driver suspend failed for cpu0

 This is the CPUfreq driver failing to suspend, probably because there is
 no CPUfreq driver implemented in your kernel.  Try disabling CPU_FREQ in
 your kernel config.

It seems can suspend to ram after disabling CPU_FREQ. Here is the log:

root@beagleboard:~# echo mem  /sys/power/state
PM: Syncing filesystems ... done.
Freezing user space processes ... (elapsed 0.00 seconds) done.
Freezing remaining freezable tasks ... (elapsed 0.00 seconds) done.
Suspending console(s) (use no_console_suspend to debug)

*
Once I hit the keyboard, I get:

root@beagleboard:~# echo mem  /sys/power/state
PM: Syncing filesystems ... done.
Freezing user space processes ... (elapsed 0.00 seconds) done.
Freezing remaining freezable tasks ... (elapsed 0.00 seconds) done.
Suspending console(s) (use no_console_suspend to debug)
omapfb omapfb: timeout waiting for FRAME DONE
Powerdomain (core_pwrdm) didn't enter target state 1
Powerdomain (cam_pwrdm) didn't enter target state 1
Powerdomain (per_pwrdm) didn't enter target state 1
Could not enter target state in pm_suspend
Restarting tasks ... done.
root@beagleboard:~#
***

I am just curious why the powerdomain didn't enter target state 1.

Another issue is about CPU frequency scaling. Using the original
Angstrom7, I can scale CPU frequency. But with the linux-omap-pm
kernel, I cannot do it even though I enable this feature in the config
file. Is there any solution to support both cpu frequency scaling and
suspend to ram?

Thanks again for your help.

 Kevin

 . Here is the log:

 root@beagleboard:~# echo mem  /sys/power/state
 PM: Syncing filesystems ... done.
 Freezing user space processes ... (elapsed 0.00 seconds) done.
 Freezing remaining freezable tasks ... (elapsed 0.00 seconds) done.
 Suspending console(s) (use no_console_suspend to debug)
 omapfb omapfb: timeout waiting for FRAME DONE
 Class driver suspend failed for cpu0
 Restarting tasks ... done.

 *

 Is there any idea to fix this problem? Thanks.




-- 
Luke
--
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] omap2: fix DPLL_FREQSEL calculation

2011-01-20 Thread Felipe Balbi
On Thu, Jan 20, 2011 at 03:29:50PM +0100, John Ogness wrote:
 On 2011-01-20, Felipe Balbi ba...@ti.com wrote:
  scripts/get_maintainer.pl would've helped you getting a better Cc
  list. I'm adding linux-omap and lakml
 
 Thanks.
 
 After investigating the issue further it seems that I had it
 backwards. The value of n is the value to divide by, not the value
 that goes in the register. This means that it is _dpll_test_fint()
 that is doing it incorrectly. Here is a new version of the patch to
 fix the right function.

you might want to look at Documentation/SubmittingPatches before sending
these patches. If anyone applies this patch of yours the commitlog will
have all the comments you've made above. Generally, patches are
standalone emails, without a discussion on them, if you want to add
comments which aren't supposed to go into commit log, then do so after
the tear line (---) and before the diff --git line; that way, git will
know it must drop that part of the comments.

-- 
balbi
--
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: 2.6.38-rc1-git1 musb undefined references

2011-01-20 Thread Felipe Balbi
Hi,

(please, keep also linux-usb@vger on the Cc list on any patch regarding
drivers/usb)

On Thu, Jan 20, 2011 at 04:22:01PM +, Sid Boyce wrote:
 Cross compiling for Beagleboard on Ubuntu 11.04 x86_64.
 # make-kpkg --revision=0 --append-to-version=-custom --arch=armel
 --cross-compile=/opt/arm-2010q1/bin/arm-none-linux-gnueabi-
 kernel-image --initrd
 
 == making target debian/stamp/build/kernel [new prereqs: vars]==
 This is kernel package version 12.036+nmu1.
 restore_upstream_debianization
 test ! -f scripts/package/builddeb.kpkg-dist || mv -f
 scripts/package/builddeb.kpkg-dist scripts/package/builddeb
 test ! -f scripts/package/Makefile.kpkg-dist || mv -f
 scripts/package/Makefile.kpkg-dist scripts/package/Makefile
 /usr/bin/make  EXTRAVERSION=-rc1-git1-custom  ARCH=arm \
 
 CROSS_COMPILE=/opt/arm-2010q1/bin/arm-none-linux-gnueabi- zImage
 make[1]: Entering directory `/usr/src/XXX/linux-2.6.38-rc1-git1'
 scripts/kconfig/conf --silentoldconfig Kconfig
 make[1]: Leaving directory `/usr/src/XXX/linux-2.6.38-rc1-git1'
 make[1]: Entering directory `/usr/src/XXX/linux-2.6.38-rc1-git1'
   CHK include/linux/version.h
   CHK include/generated/utsrelease.h
 make[2]: `include/generated/mach-types.h' is up to date.
   CALLscripts/checksyscalls.sh
   CHK include/generated/compile.h
   LD  fs/built-in.o
   LD  lib/zlib_deflate/built-in.o
   LD  lib/built-in.o
   LD  vmlinux.o
   MODPOST vmlinux.o
 WARNING: modpost: Found 3 section mismatch(es).
 To see full details build your kernel with:
 'make CONFIG_DEBUG_SECTION_MISMATCH=y'
   GEN .version
   CHK include/generated/compile.h
   UPD include/generated/compile.h
   CC  init/version.o
   LD  init/built-in.o
   LD  .tmp_vmlinux1
 drivers/built-in.o: In function `musb_free':
 clkdev.c:(.text+0xf3d08): undefined reference to `dma_controller_destroy'
 drivers/built-in.o: In function `musb_probe':
 clkdev.c:(.init.text+0x64a8): undefined reference to `dma_controller_create'
 make[1]: *** [.tmp_vmlinux1] Error 1
 make[1]: Leaving directory `/usr/src/XXX/linux-2.6.38-rc1-git1'
 make: *** [debian/stamp/build/kernel] Error 2
 root@sdrbox:/usr/src/XXX/linux-2.6.38-rc1-git1#

I just compiled 2.6.38-rc1 and it doesn't fail for me.

 root@sdrbox:/usr/src/XXX/linux-2.6.38-rc1-git1# grep OMAP2PLUS .config
 CONFIG_ARCH_OMAP2PLUS=y
 CONFIG_ARCH_OMAP2PLUS_TYPICAL=y
 # CONFIG_USB_MUSB_OMAP2PLUS is not set
 root@sdrbox:/usr/src/XXX/linux-2.6.38-rc1-git1# grep MUSB .config
 CONFIG_USB_MUSB_HDRC=y
 # CONFIG_USB_MUSB_TUSB6010 is not set
 # CONFIG_USB_MUSB_OMAP2PLUS is not set
 CONFIG_USB_MUSB_AM35X=y
 # CONFIG_USB_MUSB_HOST is not set
 # CONFIG_USB_MUSB_PERIPHERAL is not set
 CONFIG_USB_MUSB_OTG=y
 CONFIG_USB_GADGET_MUSB_HDRC=y
 CONFIG_USB_MUSB_HDRC_HCD=y
 # CONFIG_MUSB_PIO_ONLY is not set
 # CONFIG_USB_MUSB_DEBUG is not set

There's a bug on your .config, did you edit by hand ? AM35X doesn't have
DMA support as of today, that's why we have:

config MUSB_PIO_ONLY
bool 'Disable DMA (always use PIO)'
depends on USB_MUSB_HDRC
default USB_MUSB_TUSB6010 || USB_MUSB_DA8XX || USB_MUSB_AM35X

did you disable PIO only ? I know that's a bit fuzzy still, a few
patches will be needed to clean up the entire MUSB Kconfig, I apologize
for that.

-- 
balbi
--
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: nand: bch ecc support added

2011-01-20 Thread Ghorai, Sukumar


 -Original Message-
 From: Vimal Singh [mailto:vimal.neww...@gmail.com]
 Sent: Thursday, January 20, 2011 8:47 PM
 To: Ghorai, Sukumar
 Cc: linux-omap@vger.kernel.org; linux-...@lists.infradead.org; linux-arm-
 ker...@lists.infradead.org; Kamat, Nishant
 Subject: Re: [PATCH] omap3: nand: bch ecc support added

 Hi Ghorai,

 I am the initial author of this patch. And I guess this patch still
 uses most of my work.
[Ghorai] I know you are working on it,

But I think your code was in a shape for -
1. not for up-streamble shape
2. non functional,
So can you check this version matching with your original code?
In that case I can add your Signed-off.



 Thanks and Regards,
 Vimal

 On Thu, Jan 20, 2011 at 3:48 PM, Sukumar Ghorai s-gho...@ti.com wrote:
  bch error correction (t=4 and t=8) for 512 bytes support added.
  Tested in omap-3630 es-1.1 silicon.
 
  Need to select the bch-ecc from board file. E.g.
  arch/arm/mach-omap2/board-flash.c: board_nand_init()
  board_nand_data.ecc_opt = OMAP_ECC_BCH4_CODE_HW
 
  This patch has dependency on -
  http://www.mail-archive.com/linux-omap@vger.kernel.org/msg42658.html
 
  Signed-off-by: Sukumar Ghorai s-gho...@ti.com
  ---
   arch/arm/mach-omap2/gpmc.c |  126 ---
   arch/arm/plat-omap/include/plat/gpmc.h |6 +-
   drivers/mtd/nand/Makefile  |1 +
   drivers/mtd/nand/omap2.c   |  119 --
   drivers/mtd/nand/omap_bch_decoder.c|  393
 
   5 files changed, 583 insertions(+), 62 deletions(-)
   create mode 100644 drivers/mtd/nand/omap_bch_decoder.c
 
  diff --git a/arch/arm/mach-omap2/gpmc.c b/arch/arm/mach-omap2/gpmc.c
  index 29c9732..91cfdca 100644
  --- a/arch/arm/mach-omap2/gpmc.c
  +++ b/arch/arm/mach-omap2/gpmc.c
  @@ -48,6 +48,7 @@
   #define GPMC_ECC_CONTROL   0x1f8
   #define GPMC_ECC_SIZE_CONFIG   0x1fc
   #define GPMC_ECC1_RESULT0x200
  +#define GPMC_ECC_BCH_RESULT_0  0x240
 
   #define GPMC_CS0_OFFSET0x60
   #define GPMC_CS_SIZE   0x30
  @@ -94,7 +95,6 @@ static struct resourcegpmc_mem_root;
   static struct resource gpmc_cs_mem[GPMC_CS_NUM];
   static DEFINE_SPINLOCK(gpmc_mem_lock);
   static unsigned int gpmc_cs_map;   /* flag for cs which are
 initialized */
  -static int gpmc_ecc_used = -EINVAL;/* cs using ecc engine */
 
   static void __iomem *gpmc_base;
 
  @@ -832,52 +832,77 @@ void omap3_gpmc_restore_context(void)
 
   /**
   * gpmc_enable_hwecc - enable hardware ecc functionality
  + * @ecc_type: ecc type e.g. Hamming, BCH
   * @cs: chip select number
   * @mode: read/write mode
   * @dev_width: device bus width(1 for x16, 0 for x8)
   * @ecc_size: bytes for which ECC will be generated
   */
  -int gpmc_enable_hwecc(int cs, int mode, int dev_width, int ecc_size)
  +int gpmc_enable_hwecc(int ecc_type, int cs, int mode,
  +   int dev_width, int ecc_size)
   {
  -   unsigned int val;
  -
  -   /* check if ecc module is in used */
  -   if (gpmc_ecc_used != -EINVAL)
  -   return -EINVAL;
  -
  -   gpmc_ecc_used = cs;
  -
  -   /* clear ecc and enable bits */
  -   val = ((0x00018) | 0x0001);
  -   gpmc_write_reg(GPMC_ECC_CONTROL, val);
  -
  -   /* program ecc and result sizes */
  -   val = ecc_size  1) - 1)  22) | (0x000F));
  -   gpmc_write_reg(GPMC_ECC_SIZE_CONFIG, val);
  +   unsigned int bch_mod = 0, bch_wrapmode = 0, eccsize1 = 0,
 eccsize0 = 0;
  +   unsigned int ecc_conf_val = 0, ecc_size_conf_val = 0;
 
 switch (mode) {
 case GPMC_ECC_READ:
  -   gpmc_write_reg(GPMC_ECC_CONTROL, 0x101);
  +   if (ecc_type == OMAP_ECC_BCH4_CODE_HW) {
  +   eccsize1 = 0xD; eccsize0 = 0x48;
  +   bch_mod = 0;
  +   bch_wrapmode = 0x09;
  +   } else if (ecc_type == OMAP_ECC_BCH8_CODE_HW) {
  +   eccsize1 = 0x1A; eccsize0 = 0x18;
  +   bch_mod = 1;
  +   bch_wrapmode = 0x04;
  +   } else
  +   eccsize1 = ((ecc_size  1) - 1)  22;
 break;
  +
 case GPMC_ECC_READSYN:
  -gpmc_write_reg(GPMC_ECC_CONTROL, 0x100);
 break;
  +
 case GPMC_ECC_WRITE:
  -   gpmc_write_reg(GPMC_ECC_CONTROL, 0x101);
  +   if (ecc_type == OMAP_ECC_BCH4_CODE_HW) {
  +   eccsize1 = 0x20; eccsize0 = 0x00;
  +   bch_mod = 0;
  +   bch_wrapmode = 0x06;
  +   } else if (ecc_type == OMAP_ECC_BCH8_CODE_HW) {
  +   eccsize1 = 0x20; eccsize0 = 0x00;
  +   bch_mod = 1;
  +   bch_wrapmode = 0x06;
  +   } else
  +   eccsize1 = ((ecc_size  1) - 1)  22;
 break;
  +
 default:
 

RE: Fail to suspend to ram: Class driver suspend failed for cpu0

2011-01-20 Thread Vishwanath Sripathy
Luke,

 -Original Message-
 From: linux-omap-ow...@vger.kernel.org [mailto:linux-omap-
 ow...@vger.kernel.org] On Behalf Of Luke Gong
 Sent: Friday, January 21, 2011 5:03 AM
 To: Kevin Hilman
 Cc: linux-omap@vger.kernel.org
 Subject: Re: Fail to suspend to ram: Class driver suspend failed for
 cpu0

 Thanks, Kevin.

 On Thu, Jan 20, 2011 at 5:54 PM, Kevin Hilman khil...@ti.com
 wrote:
  Luke Gong lukejg...@gmail.com writes:
 
  I have a beagle board with OMAP3530. I ported linux-omap-
 pm2.6.32 to
  this board. When I want to let it suspend to ram,
 
  This is an old kernel.  Any reason you're not using a newer kernel?

 I have Angstrom7 with kernel 2.6.32 running on this board. So I
 selected this old version to test. I might try the latest one.

 
  it fails and I get
  the message Class driver suspend failed for cpu0
 
  This is the CPUfreq driver failing to suspend, probably because there
is
  no CPUfreq driver implemented in your kernel.  Try disabling
 CPU_FREQ in
  your kernel config.

 It seems can suspend to ram after disabling CPU_FREQ. Here is the log:

 root@beagleboard:~# echo mem  /sys/power/state
 PM: Syncing filesystems ... done.
 Freezing user space processes ... (elapsed 0.00 seconds) done.
 Freezing remaining freezable tasks ... (elapsed 0.00 seconds) done.
 Suspending console(s) (use no_console_suspend to debug)

 **
 ***
 Once I hit the keyboard, I get:

 root@beagleboard:~# echo mem  /sys/power/state
 PM: Syncing filesystems ... done.
 Freezing user space processes ... (elapsed 0.00 seconds) done.
 Freezing remaining freezable tasks ... (elapsed 0.00 seconds) done.
 Suspending console(s) (use no_console_suspend to debug)
 omapfb omapfb: timeout waiting for FRAME DONE
 Powerdomain (core_pwrdm) didn't enter target state 1
 Powerdomain (cam_pwrdm) didn't enter target state 1
 Powerdomain (per_pwrdm) didn't enter target state 1
 Could not enter target state in pm_suspend
 Restarting tasks ... done.
 root@beagleboard:~#
 ***

 I am just curious why the powerdomain didn't enter target state 1.
It looks like your camera module is not idling upon suspend preventing per
and core to idle. Pls check whether camera driver has implemented
suspend/resume hooks properly. OR you can disable camera module and try.

 Another issue is about CPU frequency scaling. Using the original
 Angstrom7, I can scale CPU frequency. But with the linux-omap-pm
 kernel, I cannot do it even though I enable this feature in the config
 file. Is there any solution to support both cpu frequency scaling and
 suspend to ram?
In current linux-omap-pm branch, DVFS feature is not supported and this
work is under progress. Previously DVFS feature was supported in pm branch
using SRF and it has been removed sometime back.
If you really want cpufreq support, you can pick DVFS patches under review
available at: https://patchwork.kernel.org/patch/290542/

It's also available in the dvfs tree hosted@
http://dev.omapzoom.org/?p=thara/omap-dvfs.git;a=shortlog;h=refs/heads/pm-
dvfs

Vishwa


 Thanks again for your help.
 
  Kevin
 
  . Here is the log:
 
  root@beagleboard:~# echo mem  /sys/power/state
  PM: Syncing filesystems ... done.
  Freezing user space processes ... (elapsed 0.00 seconds) done.
  Freezing remaining freezable tasks ... (elapsed 0.00 seconds) done.
  Suspending console(s) (use no_console_suspend to debug)
  omapfb omapfb: timeout waiting for FRAME DONE
  Class driver suspend failed for cpu0
  Restarting tasks ... done.
 
  *
 
  Is there any idea to fix this problem? Thanks.
 



 --
 Luke
 --
 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: [PATCH v7 00/18] OMAP2,3: hwmod DSS Adaptation

2011-01-20 Thread Kevin Hilman
Hi Sumit,

Sumit Semwal sumit.sem...@ti.com writes:

[...]

 Testing:
 -
 The patches are tested on 2420-n800, 2430sdp, 3630zoom, 3430sdp.
 Complete bootup with penguins on panel is done on 3430sdp.
 For the rest of the mentioned platforms, kernel is built with OMAP2_DSS
 and bootup is tested so that base address and clk_get calls are successful.

I think this series needs more validation on the other platforms.
Getting a visible framebuffer w/tux on all tested platforms seems like a
minimal requirement.

I gave a test of this on 3530/Beagle with CONFIG_PANEL_GENERIC_DPI=y and
driving a DVI monitor, using the following kernel cmdline

# cat /proc/cmdline 
console=ttyO2,115200n8 mpurate=600 vram=12M omapfb.mode=dvi:1024x768MR-16@60 
omapfb.debug=y omapdss.def_disp=dvi root=/dev/mmcblk0p2 rw rootfstype=ext3 
rootwait

Without your series, I see penguin logo and get a console login on the
screen with this boot log (from dmesg |grep -i omapfb):

[2.651885] OMAPFB: omapfb_init  
[2.652160] OMAPFB: omapfb_probe 
[2.657653] OMAPFB: create 3 framebuffers
[2.657714] OMAPFB: fb_infos allocated   
[2.657714] OMAPFB: allocating 1572864 bytes for fb 0
[2.668212] OMAPFB: allocated VRAM paddr 8f40, vaddr d0a0
[2.668243] OMAPFB: region0 phys 8f40 virt d0a0 size=1572864 
[2.668243] OMAPFB: region1 phys  virt   (null) size=0   
[2.668273] OMAPFB: region2 phys  virt   (null) size=0   
[2.668273] OMAPFB: fbmems allocated 
[2.668518] OMAPFB: check_fb_var 0   
[2.668548] OMAPFB: max frame size 1572864, line size 2048   
[2.668548] OMAPFB: xres = 1024, yres = 768, vxres = 1024, vyres = 768   
[2.668579] OMAPFB: set_fb_fix   
[2.669036] OMAPFB: fb_infos initialized 
[2.673522] OMAPFB: set_par(0)   
[2.673614] OMAPFB: set_fb_fix   
[2.673614] OMAPFB: apply_changes, fb 0, ovl 0   
[2.673645] OMAPFB: setup_overlay 0, posx 0, posy 0, outw 1024, outh 768 
[2.673645] OMAPFB: paddr 8f40, vaddr d0a0   
[2.674346] OMAPFB: pan_display(0)   
[2.674346] OMAPFB: setcmap  
[2.674377] OMAPFB: setcmap  
[2.683746] OMAPFB: pan_display(0)   
[2.683776] OMAPFB: setcmap  
[2.692108] OMAPFB: setcmap  
[2.701599] OMAPFB: framebuffers registered  
[2.701629] OMAPFB: apply_changes, fb 0, ovl 0   
[2.701660] OMAPFB: setup_overlay 0, posx 0, posy 0, outw 1024, outh 768 
[2.701690] OMAPFB: paddr 8f40, vaddr d0a0   
[2.701721] OMAPFB: apply_changes, fb 1, ovl 1   
[2.701751] OMAPFB: apply_changes, fb 2, ovl 2   
[2.701751] OMAPFB: create_framebuffers done 
[2.702331] OMAPFB: mgr-apply'ed
[2.704803] OMAPFB: create sysfs for fbs 
[2.704833] OMAPFB: create sysfs for fbs 

With your series applied (no other changes), I don't see anything on the
screen because omapfb_probe() fails:

[2.519653] OMAPFB: omapfb_init  
[2.519958] OMAPFB: omapfb_probe 
[2.520019] omapfb omapfb: no driver for display 
[2.525115] OMAPFB: free_resources   
[2.525146] OMAPFB: free all fbmem   
[2.525177] omapfb omapfb: failed to setup omapfb

which indicates that omap_dss_get_device() is failing in omapfb_probe().

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: Fail to suspend to ram: Class driver suspend failed for cpu0

2011-01-20 Thread Kevin Hilman
Luke Gong lukejg...@gmail.com writes:

 Thanks, Kevin.

 On Thu, Jan 20, 2011 at 5:54 PM, Kevin Hilman khil...@ti.com wrote:
 Luke Gong lukejg...@gmail.com writes:

 I have a beagle board with OMAP3530. I ported linux-omap-pm2.6.32 to
 this board. When I want to let it suspend to ram,

 This is an old kernel.  Any reason you're not using a newer kernel?

 I have Angstrom7 with kernel 2.6.32 running on this board. So I
 selected this old version to test. I might try the latest one.


You'll have to get support from the folks making the Angstrom kernel as
I don't keep track of the kernel baseline they use or the local patches
they apply, so can't help you.

If you can reproduce on current linux-omap, I'll be glad to help.

Kevin



 it fails and I get
 the message Class driver suspend failed for cpu0

 This is the CPUfreq driver failing to suspend, probably because there is
 no CPUfreq driver implemented in your kernel.  Try disabling CPU_FREQ in
 your kernel config.

 It seems can suspend to ram after disabling CPU_FREQ. Here is the log:

 root@beagleboard:~# echo mem  /sys/power/state
 PM: Syncing filesystems ... done.
 Freezing user space processes ... (elapsed 0.00 seconds) done.
 Freezing remaining freezable tasks ... (elapsed 0.00 seconds) done.
 Suspending console(s) (use no_console_suspend to debug)

 *
 Once I hit the keyboard, I get:

 root@beagleboard:~# echo mem  /sys/power/state
 PM: Syncing filesystems ... done.
 Freezing user space processes ... (elapsed 0.00 seconds) done.
 Freezing remaining freezable tasks ... (elapsed 0.00 seconds) done.
 Suspending console(s) (use no_console_suspend to debug)
 omapfb omapfb: timeout waiting for FRAME DONE
 Powerdomain (core_pwrdm) didn't enter target state 1
 Powerdomain (cam_pwrdm) didn't enter target state 1
 Powerdomain (per_pwrdm) didn't enter target state 1
 Could not enter target state in pm_suspend
 Restarting tasks ... done.
 root@beagleboard:~#
 ***

 I am just curious why the powerdomain didn't enter target state 1.

 Another issue is about CPU frequency scaling. Using the original
 Angstrom7, I can scale CPU frequency. But with the linux-omap-pm
 kernel, I cannot do it even though I enable this feature in the config
 file. Is there any solution to support both cpu frequency scaling and
 suspend to ram?

 Thanks again for your help.

 Kevin

 . Here is the log:

 root@beagleboard:~# echo mem  /sys/power/state
 PM: Syncing filesystems ... done.
 Freezing user space processes ... (elapsed 0.00 seconds) done.
 Freezing remaining freezable tasks ... (elapsed 0.00 seconds) done.
 Suspending console(s) (use no_console_suspend to debug)
 omapfb omapfb: timeout waiting for FRAME DONE
 Class driver suspend failed for cpu0
 Restarting tasks ... done.

 *

 Is there any idea to fix this problem? Thanks.

--
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: 2.6.38-rc1-git1 musb undefined references

2011-01-20 Thread Sid Boyce

On 21/01/11 03:22, Felipe Balbi wrote:

Hi,

(please, keep also linux-usb@vger on the Cc list on any patch regarding
drivers/usb)

On Thu, Jan 20, 2011 at 04:22:01PM +, Sid Boyce wrote:

Cross compiling for Beagleboard on Ubuntu 11.04 x86_64.
# make-kpkg --revision=0 --append-to-version=-custom --arch=armel
--cross-compile=/opt/arm-2010q1/bin/arm-none-linux-gnueabi-
kernel-image --initrd

== making target debian/stamp/build/kernel [new prereqs: vars]==
This is kernel package version 12.036+nmu1.
restore_upstream_debianization
test ! -f scripts/package/builddeb.kpkg-dist || mv -f
scripts/package/builddeb.kpkg-dist scripts/package/builddeb
test ! -f scripts/package/Makefile.kpkg-dist || mv -f
scripts/package/Makefile.kpkg-dist scripts/package/Makefile
/usr/bin/make  EXTRAVERSION=-rc1-git1-custom  ARCH=arm \

CROSS_COMPILE=/opt/arm-2010q1/bin/arm-none-linux-gnueabi- zImage
make[1]: Entering directory `/usr/src/XXX/linux-2.6.38-rc1-git1'
scripts/kconfig/conf --silentoldconfig Kconfig
make[1]: Leaving directory `/usr/src/XXX/linux-2.6.38-rc1-git1'
make[1]: Entering directory `/usr/src/XXX/linux-2.6.38-rc1-git1'
   CHK include/linux/version.h
   CHK include/generated/utsrelease.h
make[2]: `include/generated/mach-types.h' is up to date.
   CALLscripts/checksyscalls.sh
   CHK include/generated/compile.h
   LD  fs/built-in.o
   LD  lib/zlib_deflate/built-in.o
   LD  lib/built-in.o
   LD  vmlinux.o
   MODPOST vmlinux.o
WARNING: modpost: Found 3 section mismatch(es).
To see full details build your kernel with:
'make CONFIG_DEBUG_SECTION_MISMATCH=y'
   GEN .version
   CHK include/generated/compile.h
   UPD include/generated/compile.h
   CC  init/version.o
   LD  init/built-in.o
   LD  .tmp_vmlinux1
drivers/built-in.o: In function `musb_free':
clkdev.c:(.text+0xf3d08): undefined reference to `dma_controller_destroy'
drivers/built-in.o: In function `musb_probe':
clkdev.c:(.init.text+0x64a8): undefined reference to `dma_controller_create'
make[1]: *** [.tmp_vmlinux1] Error 1
make[1]: Leaving directory `/usr/src/XXX/linux-2.6.38-rc1-git1'
make: *** [debian/stamp/build/kernel] Error 2
root@sdrbox:/usr/src/XXX/linux-2.6.38-rc1-git1#


I just compiled 2.6.38-rc1 and it doesn't fail for me.


root@sdrbox:/usr/src/XXX/linux-2.6.38-rc1-git1# grep OMAP2PLUS .config
CONFIG_ARCH_OMAP2PLUS=y
CONFIG_ARCH_OMAP2PLUS_TYPICAL=y
# CONFIG_USB_MUSB_OMAP2PLUS is not set
root@sdrbox:/usr/src/XXX/linux-2.6.38-rc1-git1# grep MUSB .config
CONFIG_USB_MUSB_HDRC=y
# CONFIG_USB_MUSB_TUSB6010 is not set
# CONFIG_USB_MUSB_OMAP2PLUS is not set
CONFIG_USB_MUSB_AM35X=y
# CONFIG_USB_MUSB_HOST is not set
# CONFIG_USB_MUSB_PERIPHERAL is not set
CONFIG_USB_MUSB_OTG=y
CONFIG_USB_GADGET_MUSB_HDRC=y
CONFIG_USB_MUSB_HDRC_HCD=y
# CONFIG_MUSB_PIO_ONLY is not set
# CONFIG_USB_MUSB_DEBUG is not set


There's a bug on your .config, did you edit by hand ? AM35X doesn't have
DMA support as of today, that's why we have:

config MUSB_PIO_ONLY
bool 'Disable DMA (always use PIO)'
depends on USB_MUSB_HDRC
default USB_MUSB_TUSB6010 || USB_MUSB_DA8XX || USB_MUSB_AM35X

did you disable PIO only ? I know that's a bit fuzzy still, a few
patches will be needed to clean up the entire MUSB Kconfig, I apologize
for that.



I copied the .config from the Beagleboard and did ARCH=arm make oldconfig.
Thanks, I shall do make omap2plus_defconfig.
Regards
Sid.

--
Sid Boyce ... Hamradio License G3VBV, Licensed Private Pilot
Emeritus IBM/Amdahl Mainframes and Sun/Fujitsu Servers Tech Support
Senior Staff Specialist, Cricket Coach
Microsoft Windows Free Zone - Linux used for all Computing Tasks

--
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: Merging xloader, bootloader and boot environment variables partitions into a single partition on NAND

2011-01-20 Thread Ghorai, Sukumar


 -Original Message-
 From: linux-omap-ow...@vger.kernel.org [mailto:linux-omap-
 ow...@vger.kernel.org] On Behalf Of Elvis Dowson
 Sent: Thursday, January 20, 2011 10:51 PM
 To: linux-omap Mailing List
 Subject: Merging xloader, bootloader and boot environment variables
 partitions into a single partition on NAND
 
 Hi,
   I was wondering what the merits and demerits are of having a single
 integrated xloader+bootloader+boot environment variables in a single
 partition in NAND, as opposed to having multiple partitions that hold
 xloader, bootloader and the uboot environment in separate partitions?
[Ghorai] This the way we represent or arrange the nand/flash. 
Current design helps to update x-loader, u-boot, saveen or kernel in different 
partition(s) from user-space without remember the offset.

 
 Elvis Dowson
 
 --
 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: [PATCH] OMAP: omap-mcbsp: Fix building after replacement

2011-01-20 Thread Varadarajan, Charulatha
On Thu, Jan 20, 2011 at 23:49, Tony Lindgren t...@atomide.com wrote:
 * Poddar, Sourav sourav.pod...@ti.com [110120 07:08]:
 On Thu, Jan 20, 2011 at 7:42 PM, Thomas Weber we...@corscience.de wrote:
  Fix building omap-mcbsp after replacing ARCH_OMAP24x0 in
  commit 8a9c1aa6a4caa7db1c2fca4b47168af9077e0f95.
 
    omap: Start using CONFIG_SOC_OMAP
 
     We want to have just CONFIG_ARCH_OMAP2, 3 and 4. The rest
     are nowadays just subcategories of these.
 
     Search and replace the following:
 
     ARCH_OMAP2420               SOC_OMAP2420
     ARCH_OMAP2430               SOC_OMAP2430
     ARCH_OMAP3430               SOC_OMAP3430
 

 I was just about to post a patch for this, but you beat me
 to it!

  Signed-off-by: Thomas Weber we...@corscience.de

 Acked-by: Sourav Poddar sourav.pod...@ti.com

 Thanks, merging this into the original. Also adding
 applying into linux-omap master.


Aren't we breaking multi-omap build with this?

-V Charulatha
--
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: [PATCHv2] OMAP: Enable Magic SysRq on serial console ttyOx

2011-01-20 Thread Govindraj
On Thu, Jan 20, 2011 at 5:49 PM, Anand Gadiyar gadi...@ti.com wrote:
   Magic SysRq key is not working for OMAP on new serial
   console ttyOx because SUPPORT_SYSRQ is not defined
   for omap-serial.
  
   This patch defines SUPPORT_SYSRQ in omap-serial and
   enables handling of Magic SysRq character.
  
   Signed-off-by: Thomas Weber we...@corscience.de
  
   Looks fine to me.
  
   Acked-by: Govindraj.R govindraj.r...@ti.com
   I tried to use SysRq key on minicom after applying this patch, it
 looks
   like it is not triggering sysrq event.
  
   Am I missing anything?
  
   -Manjunath
   --
   Hello Manjunath,
  
   Do you have CONFIG_MAGIC_SYSRQ enabled?
   Magic SysRq key in Kernel Hacking
  
   I tested it on Devkit8000 (beagle board clone).
  
 
  re-setting lsr_break_flag to 0 in receive chars is causing issues
  in getting sysrq key break sequence on omap-serial.c
 
  Manju,
 
  can you try this change on your environment.
  With below change works for me on 3430SDP/4430SDP.
  key sequence I checked.
  [alt + b + t]  = shows trace of tasks running.
  [alt + b + b] = system reboot.

 With below patch, it works fine on TeraTerm. However, I am not able to
 perform the same on minicom.

 Tested-by: Manjunath G Kondaiah manj...@ti.com

 -Manjunath


 Not sure what you guys are trying out, but I am able to use sysrq
 just fine in minicom (using only Thomas' original patch) - you need
 to send a break sequence, and the way to do this in minicom is to
 do Ctrl-A followed by F.

 Works for me, without the resetting lsr_break_flag to 0 part.

 @Govind,

 What are the issues you see in getting sysrq key break sequence
 without your change? And how is your change fixing this?

Actually I was using teraterm on windows platform.
using keyboard to send a break char [alt + b] sometimes
i observed that first break char was getting lost and subsequent break
chars where getting
recognized. However using send break option from terterm menu seems to
work most of times.
my change can be dropped.

--
Thanks,
Govindraj.R
--
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] OMAP: omap-mcbsp: Fix building after replacement

2011-01-20 Thread Jarkko Nikula
On Fri, 21 Jan 2011 11:55:55 +0530
Varadarajan, Charulatha ch...@ti.com wrote:

  I was just about to post a patch for this, but you beat me
  to it!
 
   Signed-off-by: Thomas Weber we...@corscience.de
 
  Acked-by: Sourav Poddar sourav.pod...@ti.com
 
  Thanks, merging this into the original. Also adding
  applying into linux-omap master.
 
 
 Aren't we breaking multi-omap build with this?
 
Don't point it out immediately but these patches looks like yet another
reason why there's a need to get rid of these ifdefs and cpu_is_omapxxx
tests from the drivers.

-- 
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] OMAP: omap-mcbsp: Fix building after replacement

2011-01-20 Thread Varadarajan, Charulatha
On Fri, Jan 21, 2011 at 12:58, Jarkko Nikula jhnik...@gmail.com wrote:
 On Fri, 21 Jan 2011 11:55:55 +0530
 Varadarajan, Charulatha ch...@ti.com wrote:

  I was just about to post a patch for this, but you beat me
  to it!
 
   Signed-off-by: Thomas Weber we...@corscience.de
 
  Acked-by: Sourav Poddar sourav.pod...@ti.com
 
  Thanks, merging this into the original. Also adding
  applying into linux-omap master.
 

 Aren't we breaking multi-omap build with this?

 Don't point it out immediately but these patches looks like yet another
 reason why there's a need to get rid of these ifdefs and cpu_is_omapxxx
 tests from the drivers.

Yes. I agree.


 --
 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] omap3: nand: bch ecc support added

2011-01-20 Thread Vimal Singh
On Fri, Jan 21, 2011 at 9:37 AM, Ghorai, Sukumar s-gho...@ti.com wrote:

 -Original Message-
 From: Vimal Singh [mailto:vimal.neww...@gmail.com]
 Sent: Thursday, January 20, 2011 8:47 PM
 To: Ghorai, Sukumar
 Cc: linux-omap@vger.kernel.org; linux-...@lists.infradead.org; linux-arm-
 ker...@lists.infradead.org; Kamat, Nishant
 Subject: Re: [PATCH] omap3: nand: bch ecc support added

 Hi Ghorai,

 I am the initial author of this patch. And I guess this patch still
 uses most of my work.
 [Ghorai] I know you are working on it,

 But I think your code was in a shape for -
 1. not for up-streamble shape
That's because I never posted it for up-stream.

 2. non functional,
No, it was a working (at least for 8-bit correction) patch on that
kernel version (I do not remember the correct version now, may be
.29-.30)
It did not work for 4-bit, because of known reason. And I guess while
posting this patch you should also have mentioned/documented about
that. No?

 So can you check this version matching with your original code?
 In that case I can add your Signed-off.
Yes, you should. I can see this version has got many changes, but
original idea is same. And not all code is changed. Does it?

Regards,
Vimal
--
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: [PATCHv2] OMAP: Enable Magic SysRq on serial console ttyOx

2011-01-20 Thread G, Manjunath Kondaiah
On Fri, Jan 21, 2011 at 12:54:29PM +0530, Govindraj wrote:
 On Thu, Jan 20, 2011 at 5:49 PM, Anand Gadiyar gadi...@ti.com wrote:
Magic SysRq key is not working for OMAP on new serial
console ttyOx because SUPPORT_SYSRQ is not defined
for omap-serial.
   
This patch defines SUPPORT_SYSRQ in omap-serial and
enables handling of Magic SysRq character.
   
Signed-off-by: Thomas Weber we...@corscience.de
   
Looks fine to me.
   
Acked-by: Govindraj.R govindraj.r...@ti.com
I tried to use SysRq key on minicom after applying this patch, it
  looks
like it is not triggering sysrq event.
   
Am I missing anything?
   
-Manjunath
--
Hello Manjunath,
   
Do you have CONFIG_MAGIC_SYSRQ enabled?
Magic SysRq key in Kernel Hacking
   
I tested it on Devkit8000 (beagle board clone).
   
  
   re-setting lsr_break_flag to 0 in receive chars is causing issues
   in getting sysrq key break sequence on omap-serial.c
  
   Manju,
  
   can you try this change on your environment.
   With below change works for me on 3430SDP/4430SDP.
   key sequence I checked.
   [alt + b + t]  = shows trace of tasks running.
   [alt + b + b] = system reboot.
 
  With below patch, it works fine on TeraTerm. However, I am not able to
  perform the same on minicom.
 
  Tested-by: Manjunath G Kondaiah manj...@ti.com
 
  -Manjunath
 
 
  Not sure what you guys are trying out, but I am able to use sysrq
  just fine in minicom (using only Thomas' original patch) - you need
  to send a break sequence, and the way to do this in minicom is to
  do Ctrl-A followed by F.
 
  Works for me, without the resetting lsr_break_flag to 0 part.
 
  @Govind,
 
  What are the issues you see in getting sysrq key break sequence
  without your change? And how is your change fixing this?
 
 Actually I was using teraterm on windows platform.
 using keyboard to send a break char [alt + b] sometimes
 i observed that first break char was getting lost and subsequent break
 chars where getting
 recognized. However using send break option from terterm menu seems to
 work most of times.
 my change can be dropped.
If it is fixing the issue of losing first break character, what is wrong in
having this patch?

Do you see any other issues because of this change?

-Manjunath

--
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] [AUDIO][OMAP3 EVM] arecord not working on OMAP3 EVM

2011-01-20 Thread Peter Ujfalusi
On 01/20/11 17:26, ext Koyamangalath, Abhilash wrote:
 Hi all
 While testing audio capture (using arecord e,g.),I'm getting only noise in 
 the (zeroed out) output buffers on the OMAP3 EVM.
 I have enabled AUXL and AUXR mic inputs through alsamixer, which according to 
 the schematics are connected to the Audio In
 connector on the board, even though the TWL4030 reg list does not allow me 
 any ways ( or so I think) to specify mic-bias for 
 these aux inputs.

Well, it is auxiliary input (line in). You do not need bias for it.
I do not have access to OMAP3 EVM documentation, but Beagle also have
AUXL/R as input.
I guess you need to use correct cable, and correct source for the input
(stereo jack I suppose).

 With AUXL and AUXR muted - I get only silence, which seems to make sense.
 Is there any basic startup setting I'm missing, maybe specific to OMAP3 EVM?

Beagle?

 Has anyone seen anything like this before, and could provide pointers?

My bet goes for the wrong cable/accessory pair.

-- 
Péter
--
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