[PATCH] mmc: mmc_test: add wait_busy to the async check_result

2011-06-27 Thread Per Forlin
add missing mmc_test_wait_busy() to the check_result_async(). Host drivers
may fail it not waiting for busy state to go away before starting
the next transaction.

Signed-off-by: Per Forlin per.for...@linaro.org
---
 drivers/mmc/card/mmc_test.c |3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/drivers/mmc/card/mmc_test.c b/drivers/mmc/card/mmc_test.c
index 5325049..ea8e7b1 100644
--- a/drivers/mmc/card/mmc_test.c
+++ b/drivers/mmc/card/mmc_test.c
@@ -715,13 +715,14 @@ static int mmc_test_check_result(struct mmc_test_card 
*test,
return ret;
 }
 
-
 static int mmc_test_check_result_async(struct mmc_card *card,
   struct mmc_async_req *areq)
 {
struct mmc_test_async_req *test_async =
container_of(areq, struct mmc_test_async_req, areq);
 
+   mmc_test_wait_busy(test_async-test);
+
return mmc_test_check_result(test_async-test, areq-mrq);
 }
 
-- 
1.7.4.1


___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: [powerdebug] patches for the segmentation fault error

2011-06-27 Thread Daniel Lezcano
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 06/27/2011 09:36 AM, Milo (Woogyom) Kim wrote:
 
 Hi, Daniel
 
 I found some segmentation fault in the powerdebug.
 If there is no clock information, then windata[win].rowdata is null.
 (If clock_display() returns -1, then display_set_row_data() is not called)
 In this case the seg fault error occurs when display_get_row_data() is
 called.

Thanks Milo for reporting the problem.

I opened a bug in launchpad for this:

https://bugs.launchpad.net/linaro-powerdebug/+bug/802387

Your patches are fixing the problem but I think that does not fix the
root problem which is we are setting the display ops on the clocks.

At the first glance, I think we should not call display_register in the
clock_init function if we are not able to access debugfs.

The same should apply to all init function for the different subsystems.

(cc'ed linaro-dev)
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQEcBAEBAgAGBQJOCD4vAAoJEAKBbMCpUGYAvW4IALXI8nNyrtiej97/9gjFBhZT
cfHZgAgY5f4J+GoCyxX2tyCfbqkHgDGaJDvAWkWxMjBLQiVpnjchOG96aj+o5qud
YQ3vFXuLKmXWyAjxhxuXfOKyjhvHf6QcKLXWS7OMBoxfozYJ0EwEvSjfGVL2sF3e
rurZVZYU47Ms8jVq/MzaEyi1GZiE5D6ZhjfuSc9XhJ70+NORaVcgChOE3E2XGh5O
DfKjFHfr/nsjVGXPp0vTdlHH4ZgecDCkuorK8a9Bi0xX7ijRVUUVgjepuK/Fflqo
33/I995r2utVK+x/FgcyNBi28qhNieeVIBcVdZHEFKGPCiGFdbGkqz2JDagJxnc=
=99OZ
-END PGP SIGNATURE-

___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


[powerdebug] fix segfault when no clock is available

2011-06-27 Thread Daniel Lezcano
When there is no clock available, we even register the display ops.
The 'enter' callbakc is set but not data is available int the row
private data which leads to a segfaults.

This patch fix this problem by not registering the ops if the pm
subsystem was not correctly initialized.

In the meantime, we have to erase the window when we are switching
from one window to another. We can say it is the default display
callback.

Signed-off-by: Daniel Lezcano daniel.lezc...@linaro.org
Reported-by: Milo (Woogyom) Kim woogyom@gmail.com
---
 clocks.c|8 
 display.c   |5 -
 regulator.c |8 
 sensor.c|8 
 4 files changed, 16 insertions(+), 13 deletions(-)

diff --git a/clocks.c b/clocks.c
index 0bd0a0e..20a245c 100644
--- a/clocks.c
+++ b/clocks.c
@@ -405,9 +405,6 @@ int clock_init(void)
 {
char clk_dir_path[PATH_MAX];
 
-   if (display_register(CLOCK, clock_ops))
-   return -1;
-
if (locate_debugfs(clk_dir_path))
return -1;
 
@@ -420,5 +417,8 @@ int clock_init(void)
if (!clock_tree)
return -1;
 
-   return fill_clock_tree();
+   if (fill_clock_tree())
+   return -1;
+
+   return display_register(CLOCK, clock_ops);
 }
diff --git a/display.c b/display.c
index 0cfbf94..ebc4de6 100644
--- a/display.c
+++ b/display.c
@@ -120,7 +120,10 @@ static int display_refresh(int win, bool read)
if (windata[win].ops  windata[win].ops-display)
return windata[win].ops-display(read);
 
-   return 0;
+   if (werase(main_win))
+   return -1;
+
+   return wrefresh(main_win);
 }
 
 int display_refresh_pad(int win)
diff --git a/regulator.c b/regulator.c
index 849f906..e9b01bb 100644
--- a/regulator.c
+++ b/regulator.c
@@ -236,12 +236,12 @@ static struct display_ops regulator_ops = {
 
 int regulator_init(void)
 {
-   if (display_register(REGULATOR, regulator_ops))
-   return -1;
-
reg_tree = tree_load(SYSFS_REGULATOR, regulator_filter_cb);
if (!reg_tree)
return -1;
 
-   return fill_regulator_tree();
+   if (fill_regulator_tree())
+   return -1;
+
+   return display_register(REGULATOR, regulator_ops);
 }
diff --git a/sensor.c b/sensor.c
index d63510e..e172f88 100644
--- a/sensor.c
+++ b/sensor.c
@@ -271,12 +271,12 @@ static struct display_ops sensor_ops = {
 
 int sensor_init(void)
 {
-   if (display_register(SENSOR, sensor_ops))
-   return -1;
-
sensor_tree = tree_load(SYSFS_SENSOR, sensor_filter_cb);
if (!sensor_tree)
return -1;
 
-   return fill_sensor_tree();
+   if (fill_sensor_tree())
+   return -1;
+
+   return display_register(SENSOR, sensor_ops);
 }
-- 
1.7.1


___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


[PATCH 0/2] ORIGEN Board Support

2011-06-27 Thread Chander Kashyap
Adds support for ORIGEN board with MMC Booting.

Chander Kashyap (2):
  ARMV7: Add support for Samsung ORIGEN board
  ORIGEN: Add MMC SPL support

 MAINTAINERS   |1 +
 board/samsung/origen/Makefile |   46 ++
 board/samsung/origen/lowlevel_init.S  |  468 +
 board/samsung/origen/mem_setup.S  |  392 +
 board/samsung/origen/origen.c |  103 +
 boards.cfg|1 +
 include/configs/origen.h  |  167 
 mmc_spl/board/samsung/origen/Makefile |  105 +
 mmc_spl/board/samsung/origen/mmc_boot.c   |   75 
 mmc_spl/board/samsung/origen/tools/mkv310_image.c |  139 ++
 mmc_spl/board/samsung/origen/u-boot.lds   |   86 
 11 files changed, 1583 insertions(+), 0 deletions(-)
 create mode 100644 board/samsung/origen/Makefile
 create mode 100644 board/samsung/origen/lowlevel_init.S
 create mode 100644 board/samsung/origen/mem_setup.S
 create mode 100644 board/samsung/origen/origen.c
 create mode 100644 include/configs/origen.h
 create mode 100644 mmc_spl/board/samsung/origen/Makefile
 create mode 100644 mmc_spl/board/samsung/origen/mmc_boot.c
 create mode 100644 mmc_spl/board/samsung/origen/tools/mkv310_image.c
 create mode 100644 mmc_spl/board/samsung/origen/u-boot.lds

-- 
1.7.4.1


___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


[PATCH 2/2] ORIGEN: Add MMC SPL support

2011-06-27 Thread Chander Kashyap
Adds mmc boot support.

Signed-off-by: Chander Kashyap chander.kash...@linaro.org
---
 mmc_spl/board/samsung/origen/Makefile |  105 
 mmc_spl/board/samsung/origen/mmc_boot.c   |   75 +++
 mmc_spl/board/samsung/origen/tools/mkv310_image.c |  139 +
 mmc_spl/board/samsung/origen/u-boot.lds   |   86 +
 4 files changed, 405 insertions(+), 0 deletions(-)
 create mode 100644 mmc_spl/board/samsung/origen/Makefile
 create mode 100644 mmc_spl/board/samsung/origen/mmc_boot.c
 create mode 100644 mmc_spl/board/samsung/origen/tools/mkv310_image.c
 create mode 100644 mmc_spl/board/samsung/origen/u-boot.lds

diff --git a/mmc_spl/board/samsung/origen/Makefile 
b/mmc_spl/board/samsung/origen/Makefile
new file mode 100644
index 000..7b62684
--- /dev/null
+++ b/mmc_spl/board/samsung/origen/Makefile
@@ -0,0 +1,105 @@
+#
+# (C) Copyright 2006-2007
+# Stefan Roese, DENX Software Engineering, s...@denx.de.
+#
+# (C) Copyright 2008
+# Guennadi Liakhovetki, DENX Software Engineering, l...@denx.de
+#
+# (C) Copyright 2011
+# Chander Kashyap, Samsung Electronics, k.chan...@samsung.com
+#
+# See file CREDITS for list of people who contributed to this
+# project.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of
+# the License, or (at your option) any later version.
+#
+# 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., 59 Temple Place, Suite 330, Boston,
+# MA 02111-1307 USA
+#
+
+CONFIG_MMC_SPL = y
+
+include $(TOPDIR)/config.mk
+
+LDSCRIPT= $(TOPDIR)/mmc_spl/board/$(BOARDDIR)/u-boot.lds
+LDFLAGS= -Bstatic -T $(mmcobj)u-boot.lds -Ttext 
$(CONFIG_SYS_TEXT_BASE) $(PLATFORM_LDFLAGS)
+AFLAGS += -DCONFIG_MMC_SPL
+CFLAGS += -DCONFIG_MMC_SPL
+CFLAGS += -DCONFIG_PRELOADER
+
+SOBJS  = start.o mem_setup.o lowlevel_init.o
+COBJS  = mmc_boot.o
+
+SRCS   := $(SOBJS:.o=.S) $(COBJS:.o=.c)
+OBJS   := $(addprefix $(obj),$(SOBJS) $(COBJS))
+__OBJS := $(SOBJS) $(COBJS)
+LNDIR  := $(OBJTREE)/mmc_spl/board/$(BOARDDIR)
+
+mmcobj := $(OBJTREE)/mmc_spl/
+
+
+MKV310_MMC_SPL_EXEC = mkv310_mmc_spl_exec
+MMC_SPL_BIN = u-boot-mmc-spl.bin
+
+ALL = $(mmcobj)u-boot-spl $(mmcobj)u-boot-spl.bin $(mmcobj)$(MMC_SPL_BIN)
+
+all:$(obj).depend $(ALL)
+
+$(mmcobj)$(MMC_SPL_BIN):  $(mmcobj)u-boot-spl.bin tools/$(MKV310_MMC_SPL_EXEC)
+   ./tools/$(MKV310_MMC_SPL_EXEC) $(mmcobj)u-boot-spl.bin 
$(mmcobj)$(MMC_SPL_BIN)
+   rm -f tools/$(MKV310_MMC_SPL_EXEC)
+
+tools/$(MKV310_MMC_SPL_EXEC): tools/mkv310_image.c
+   $(HOSTCC) tools/mkv310_image.c -o tools/$(MKV310_MMC_SPL_EXEC)
+
+$(mmcobj)u-boot-spl.bin:   $(mmcobj)u-boot-spl
+   $(OBJCOPY) ${OBJCFLAGS} -O binary $ $@
+
+$(mmcobj)u-boot-spl:   $(OBJS) $(mmcobj)u-boot.lds
+   cd $(LNDIR)  $(LD) $(LDFLAGS) $(__OBJS) \
+   -Map $(mmcobj)u-boot-spl.map \
+   -o $(mmcobj)u-boot-spl
+
+$(mmcobj)u-boot.lds: $(LDSCRIPT)
+   $(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - $^ $@
+
+# create symbolic links for common files
+
+# from cpu directory
+start.S:
+   @rm -f $@
+   @ln -s $(TOPDIR)/arch/arm/cpu/armv7/start.S $@
+
+# from board directory
+mem_setup.S:
+   @rm -f $@
+   @ln -s $(TOPDIR)/board/samsung/origen/mem_setup.S $@
+
+lowlevel_init.S:
+   @rm -f $@
+   @ln -s $(TOPDIR)/board/samsung/origen/lowlevel_init.S $@
+
+#
+
+$(obj)%.o: %.S
+   $(CC) $(AFLAGS) -c -o $@ $
+
+$(obj)%.o: %.c
+   $(CC) $(CFLAGS) -c -o $@ $
+
+# defines $(obj).depend target
+include $(SRCTREE)/rules.mk
+
+sinclude $(obj).depend
+
+#
diff --git a/mmc_spl/board/samsung/origen/mmc_boot.c 
b/mmc_spl/board/samsung/origen/mmc_boot.c
new file mode 100644
index 000..459d27d
--- /dev/null
+++ b/mmc_spl/board/samsung/origen/mmc_boot.c
@@ -0,0 +1,75 @@
+/*
+ * Copyright (C) 2011 Samsung Electronics
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * 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

[PATCH 1/2] ARMV7: Add support for Samsung ORIGEN board

2011-06-27 Thread Chander Kashyap
Origen board is based upon S5PV310 SoC which is similiar to
S5PC210 SoC.

Signed-off-by: Chander Kashyap chander.kash...@linaro.org
---
 MAINTAINERS  |1 +
 board/samsung/origen/Makefile|   46 
 board/samsung/origen/lowlevel_init.S |  468 ++
 board/samsung/origen/mem_setup.S |  392 
 board/samsung/origen/origen.c|  103 
 boards.cfg   |1 +
 include/configs/origen.h |  167 
 7 files changed, 1178 insertions(+), 0 deletions(-)
 create mode 100644 board/samsung/origen/Makefile
 create mode 100644 board/samsung/origen/lowlevel_init.S
 create mode 100644 board/samsung/origen/mem_setup.S
 create mode 100644 board/samsung/origen/origen.c
 create mode 100644 include/configs/origen.h

diff --git a/MAINTAINERS b/MAINTAINERS
index 30c327b..c233f82 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -707,6 +707,7 @@ Minkyu Kang mk7.k...@samsung.com
 Chander Kashyap k.chan...@samsung.com
 
SMDKV310ARM ARMV7 (S5PC210 SoC)
+   origen  ARM ARMV7 (S5PC210 SoC)
 
 Frederik Kriewitz frede...@kriewitz.eu
 
diff --git a/board/samsung/origen/Makefile b/board/samsung/origen/Makefile
new file mode 100644
index 000..65eff91
--- /dev/null
+++ b/board/samsung/origen/Makefile
@@ -0,0 +1,46 @@
+#
+# Copyright (C) 2011 Samsung Electronics
+#
+# See file CREDITS for list of people who contributed to this
+# project.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of
+# the License, or (at your option) any later version.
+#
+# 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., 59 Temple Place, Suite 330, Boston,
+# MA 02111-1307 USA
+#
+
+include $(TOPDIR)/config.mk
+
+LIB= $(obj)lib$(BOARD).o
+
+SOBJS  := mem_setup.o
+SOBJS  += lowlevel_init.o
+COBJS  += origen.o
+
+SRCS   := $(SOBJS:.o=.S) $(COBJS:.o=.c)
+OBJS   := $(addprefix $(obj),$(COBJS) $(SOBJS))
+
+all:$(obj).depend $(LIB)
+
+$(LIB):$(OBJS)
+   $(AR) $(ARFLAGS) $@ $(OBJS)
+
+#
+
+# defines $(obj).depend target
+include $(SRCTREE)/rules.mk
+
+sinclude $(obj).depend
+
+#
diff --git a/board/samsung/origen/lowlevel_init.S 
b/board/samsung/origen/lowlevel_init.S
new file mode 100644
index 000..cbb3c45
--- /dev/null
+++ b/board/samsung/origen/lowlevel_init.S
@@ -0,0 +1,468 @@
+/*
+ * Lowlevel setup for ORIGEN board based on S5PV310
+ *
+ * Copyright (C) 2011 Samsung Electronics
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * 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., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+#include config.h
+#include version.h
+#include asm/arch/cpu.h
+
+/*
+ * Register usages:
+ *
+ * r5 has zero always
+ * r7 has GPIO part1 base 0x1140
+ * r6 has GPIO part2 base 0x1100
+ */
+
+#define MEM_DLLl_ON
+
+_TEXT_BASE:
+   .word   CONFIG_SYS_TEXT_BASE
+
+   .globl lowlevel_init
+lowlevel_init:
+   push{lr}
+
+   /* r5 has always zero */
+   mov r5, #0
+   ldr r7, =S5PC210_GPIO_PART1_BASE
+   ldr r6, =S5PC210_GPIO_PART2_BASE
+
+   /* check reset status  */
+   ldr r0, =(S5PC210_POWER_BASE + 0x804)   @ INFORM1
+   ldr r1, [r0]
+
+   /* AFTR wakeup reset */
+   ldr r2, =S5P_CHECK_DIDLE
+   cmp r1, r2
+   beq exit_wakeup
+
+   /* Sleep wakeup reset */
+   ldr r2, =S5P_CHECK_SLEEP
+   cmp r1, r2
+   beq wakeup_reset
+
+   /*
+* If U-boot is already running in ram, no need to relocate U-Boot.
+* Memory controller must be configured before relocating U-Boot
+* in ram.
+*/
+  

Announcement:Linaro Android 2.3.4

2011-06-27 Thread Patrik Ryd
Hi,

Linaro Android has now moved up to 2.3.4 and all of our patches on the
linaro_android_2.3.3 branches have been rebased.

The official builds (https://android-build.linaro.org/index) are now
based on the linaro_android_2.3.4 branch of the manifest.

Please rebase any dev_branches you have to 2.3.4. The
linaro_android_2.3.3 branch will no longer be supported.

Regards
Patrik

___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: Customization of Gerrit for Android

2011-06-27 Thread Alexander Sack
hi,

great news.

I think we should use a different hostname for gerrit. like
review.android.linaro.org. With that we have the option to make a dedicated
android git host using the android.git.l.o name eventually.

Will check with android team what hostname to use exactly and let you know.
 On Jun 24, 2011 10:05 PM, James Westby james.wes...@linaro.org wrote:
 On Mon, 13 Jun 2011 20:27:34 -0500, Zach Pfeffer zach.pfef...@linaro.org
wrote:
 James,

 Thanks for jumping on this. The need for Gerrit grows by the day.

 The first thing I'd want to do would be to log in using my openid and
 upload my ssh key to it.

 This should now be possible.

 Everyone can now go to android.git.linaro.org and login by entering your
 LP profile URL, e.g.

 https://launchpad.net/~james-w

 (the form there is hardcoded to display those options which is
 unfortunate.)

 You should then be able to add your ssh key.

 The ssh server runs on port 29418 for your testing.

 The next two steps I believe is something that you can do so I will
 leave it up to you. Let me know if there are other things that need
 configuration in Gerrit for these to proceed.

 Thanks,

 James

 Second, I'd want to sync the Android-LEB and push a test change.

 Third, I'd want to take the test change through the Gerrit lifecycle.

 From there I'd want to hook up auto-merging and per-change build
validation.

 -Zach

 On 13 June 2011 19:34, James Westby james.wes...@linaro.org wrote:
  Hi Zach,
 
  We have a request in the queue to set up Gerrit for the Android team,
  and I know it's something that you consider very important. We haven't
  yet talked specifics of the configuration of Gerrit, and so I don't yet
  have a solid idea of what work there is for the Infrastructure team
  there. I'd like to rectify that and create an implementation plan for
  the first steps to where you want to go.
 
  To that end, if we had a vanilla Gerrit instance up and running
  tomorrow, what would be the first things that you would want to do to
it
  before it would be useful to you?
 
  Thanks,
 
  James
 
___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: [PATCH v6 00/11] mmc: use nonblock mmc requests to minimize latency

2011-06-27 Thread Per Forlin
On 24 June 2011 10:58, Per Forlin per.for...@linaro.org wrote:
 On 23 June 2011 15:37, Russell King - ARM Linux li...@arm.linux.org.uk 
 wrote:
 On Tue, Jun 21, 2011 at 11:26:27AM +0200, Per Forlin wrote:
 Here are the results.

 It looks like this patch is either a no-op or slightly worse.  As
 people have been telling me that dsb is rather expensive, and this
 patch results in less dsbs, I'm finding these results hard to believe.
 It seems to be saying that dsb is an effective no-op on your platform.

 The result of your patch depends on the number of sg-elements. With
 your patch there is only on DSB per list instead of element I can
 write a test to measure performance per number of sg-element in the
 sg-list. Fixed transfer size but vary the number of sg-elements in the
 list. This test may give a better understanding of the affect.

 I have seen performance gain if using __raw_write instead of writel.
 Writel test includes both the cost of DSB and the outer_sync, where
 outer_sync is more expensive one I presume.

 So either people are wrong about dsb being expensive, the patch is
 wrong, or there's something wrong with these results/test method.

 You do have an error in the ported patch, as that hasn't updated the
 v7 cache cleaning code to remove the dsb() there, but that would only
 affect the write tests.

 I will fix that mistake
diff --git a/arch/arm/mm/cache-v7.S b/arch/arm/mm/cache-v7.S
index d32f02b..3fb51c5 100644
--- a/arch/arm/mm/cache-v7.S
+++ b/arch/arm/mm/cache-v7.S
@@ -228,7 +228,6 @@ ENTRY(v7_flush_kern_dcache_area)
add r0, r0, r2
cmp r0, r1
blo 1b
-   dsb
mov pc, lr
 ENDPROC(v7_flush_kern_dcache_area)


 I'll come back with new numbers on Monday.

I have extended the test to measure bandwidth for various various
length of the sg list.

mmc_test without DSB patch:
mmc0: Test case 37. Write performance with blocking req 4k to 4MB...
mmc0: Transfer of 32768 x 8 sectors (32768 x 4 KiB) took 18.298817895
seconds (7334 kB/s, 7162 KiB/s, 1790.71 IOPS, sg_len 1)
mmc0: Transfer of 16384 x 16 sectors (16384 x 8 KiB) took 11.046417371
seconds (12150 kB/s, 11865 KiB/s, 1483.19 IOPS, sg_len 1)
mmc0: Transfer of 8192 x 32 sectors (8192 x 16 KiB) took 8.700345332
seconds (15426 kB/s, 15065 KiB/s, 941.57 IOPS, sg_len 1)
mmc0: Transfer of 4096 x 64 sectors (4096 x 32 KiB) took 7.428314416
seconds (18068 kB/s, 17644 KiB/s, 551.40 IOPS, sg_len 1)
mmc0: Transfer of 2048 x 128 sectors (2048 x 64 KiB) took 6.843811190
seconds (19611 kB/s, 19151 KiB/s, 299.24 IOPS, sg_len 1)
mmc0: Transfer of 1024 x 256 sectors (1024 x 128 KiB) took 6.548462043
seconds (20496 kB/s, 20015 KiB/s, 156.37 IOPS, sg_len 1)
mmc0: Transfer of 512 x 512 sectors (512 x 256 KiB) took 6.392456168
seconds (20996 kB/s, 20504 KiB/s, 80.09 IOPS, sg_len 1)
mmc0: Transfer of 256 x 1024 sectors (256 x 512 KiB) took 6.278533955
seconds (21377 kB/s, 20876 KiB/s, 40.77 IOPS, sg_len 1)
mmc0: Transfer of 128 x 2048 sectors (128 x 1024 KiB) took 6.007019613
seconds (22343 kB/s, 21819 KiB/s, 21.30 IOPS, sg_len 1)
mmc0: Transfer of 32 x 8192 sectors (32 x 4096 KiB) took 5.975690092
seconds (22460 kB/s, 21934 KiB/s, 5.35 IOPS, sg_len 1)
mmc0: Result: OK
mmc0: Tests completed.
mmc0: Starting tests of card mmc0:80ca...
mmc0: Test case 38. Write performance with non-blocking req 4k to 4MB...
mmc0: Transfer of 32768 x 8 sectors (32768 x 4 KiB) took 18.006849673
seconds (7453 kB/s, 7279 KiB/s, 1819.75 IOPS, sg_len 1)
mmc0: Transfer of 16384 x 16 sectors (16384 x 8 KiB) took 10.744232260
seconds (12492 kB/s, 12199 KiB/s, 1524.91 IOPS, sg_len 1)
mmc0: Transfer of 8192 x 32 sectors (8192 x 16 KiB) took 8.378324787
seconds (16019 kB/s, 15644 KiB/s, 977.76 IOPS, sg_len 1)
mmc0: Transfer of 4096 x 64 sectors (4096 x 32 KiB) took 7.120544379
seconds (18849 kB/s, 18407 KiB/s, 575.23 IOPS, sg_len 1)
mmc0: Transfer of 2048 x 128 sectors (2048 x 64 KiB) took 6.551513699
seconds (20486 kB/s, 20006 KiB/s, 312.59 IOPS, sg_len 1)
mmc0: Transfer of 1024 x 256 sectors (1024 x 128 KiB) took 6.252501827
seconds (21466 kB/s, 20963 KiB/s, 163.77 IOPS, sg_len 1)
mmc0: Transfer of 512 x 512 sectors (512 x 256 KiB) took 6.102325404
seconds (21994 kB/s, 21479 KiB/s, 83.90 IOPS, sg_len 1)
mmc0: Transfer of 256 x 1024 sectors (256 x 512 KiB) took 5.978148815
seconds (22451 kB/s, 21925 KiB/s, 42.82 IOPS, sg_len 1)
mmc0: Transfer of 128 x 2048 sectors (128 x 1024 KiB) took 5.873932398
seconds (22849 kB/s, 22314 KiB/s, 21.79 IOPS, sg_len 1)
mmc0: Transfer of 32 x 8192 sectors (32 x 4096 KiB) took 5.874753979
seconds (22846 kB/s, 22311 KiB/s, 5.44 IOPS, sg_len 1)
mmc0: Result: OK
mmc0: Tests completed.
mmc0: Starting tests of card mmc0:80ca...
mmc0: Test case 39. Read performance with blocking req 4k to 4MB...
mmc0: Transfer of 32768 x 8 sectors (32768 x 4 KiB) took 20.897765402
seconds (6422 kB/s, 6272 KiB/s, 1568.01 IOPS, sg_len 1)
mmc0: Transfer of 16384 x 16 sectors (16384 x 8 KiB) took 12.921478271
seconds (10387 kB/s, 10143 

[Patch 5/11] Regulator: DA9052 regulator support v1

2011-06-27 Thread ashishj3
The DA9052 PMIC has below featured regulators:-
4 DVS Buck converters 0.5V - 3.6V upto 1Amp.
10 Programmable LDO's High PSSR, 1% accuracy.

This patch support all the DA9052 regulators. The output voltages are
fully programmable via I2C or SPI interface. The platform data with
regulation constraints is passed down from the board to the regulator.

Signed-off-by: David Dajun Chen dc...@diasemi.com
Signed-off-by: Ashish Jangam ashish.jan...@kpitcummins.com
CC: Mark Brown broo...@opensource.wolfsonmicro.com
--- 
drivers/regulator/Kconfig|7 +
 drivers/regulator/Makefile   |1 +
 drivers/regulator/da9052-regulator.c |  543 ++
 3 files changed, 551 insertions(+), 0 deletions(-)
 create mode 100755 drivers/regulator/da9052-regulator.c
diff --git a/drivers/regulator/Kconfig b/drivers/regulator/Kconfig
index fa61fe2..ae80461 100644
--- a/drivers/regulator/Kconfig
+++ b/drivers/regulator/Kconfig
@@ -167,6 +167,13 @@ config REGULATOR_DA903X
  Say y here to support the BUCKs and LDOs regulators found on
  Dialog Semiconductor DA9030/DA9034 PMIC.

+config REGULATOR_DA9052
+tristate Dialog DA9052 regulators
+depends on PMIC_DA9052
+help
+  Say y here to support the BUCKs and LDOs regulators found on
+  Dialog Semiconductor DA9052 PMIC.
+
 config REGULATOR_PCF50633
tristate PCF50633 regulator driver
 depends on MFD_PCF50633
diff --git a/drivers/regulator/Makefile b/drivers/regulator/Makefile
index 8cb6d0d..07d340b 100644
--- a/drivers/regulator/Makefile
+++ b/drivers/regulator/Makefile
@@ -28,6 +28,7 @@ obj-$(CONFIG_REGULATOR_WM8400) += wm8400-regulator.o
 obj-$(CONFIG_REGULATOR_WM8994) += wm8994-regulator.o
 obj-$(CONFIG_REGULATOR_TPS6586X) += tps6586x-regulator.o
 obj-$(CONFIG_REGULATOR_DA903X) += da903x.o
+obj-$(CONFIG_REGULATOR_DA9052) += da9052-regulator.o
 obj-$(CONFIG_REGULATOR_PCF50633) += pcf50633-regulator.o
 obj-$(CONFIG_REGULATOR_PCAP) += pcap-regulator.o
 obj-$(CONFIG_REGULATOR_MC13783) += mc13783-regulator.o
diff --git a/drivers/regulator/da9052-regulator.c 
b/drivers/regulator/da9052-regulator.c
new file mode 100755
index 000..f609a5c
--- /dev/null
+++ b/drivers/regulator/da9052-regulator.c
@@ -0,0 +1,543 @@
+/*
+* da9052-regulator.c: Regulator driver for DA9052
+*
+* Copyright(c) 2011 Dialog Semiconductor Ltd.
+*
+*Author: David Dajun Chen dc...@diasemi.com
+*
+* This program is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 2 of the License, or
+* (at your option) any later version.
+*
+*/
+
+#include linux/module.h
+#include linux/moduleparam.h
+#include linux/init.h
+#include linux/err.h
+#include linux/platform_device.h
+#include linux/regulator/driver.h
+#include linux/regulator/machine.h
+
+#include linux/mfd/da9052/da9052.h
+#include linux/mfd/da9052/reg.h
+#include linux/mfd/da9052/pdata.h
+
+/* Buck step size */
+#define DA9052_BUCK_PERI_3uV_STEP  10
+#define DA9052_BUCK_PERI_REG_MAP_UPTO_3uV  24
+#define DA9052_CONST_3uV   300
+
+/* Buck current limits */
+#define DA9052_BUCK_CURRENT_LIMIT_700mA0
+#define DA9052_BUCK_CURRENT_LIMIT_800mA1
+#define DA9052_BUCK_CURRENT_LIMIT_1000mA   2
+#define DA9052_BUCK_CURRENT_LIMIT_1200mA   3
+
+/* Bit masks */
+#define DA9052_BUCK_ILIM_MASK_EVEN 0x3F
+#define DA9052_BUCK_ILIM_MASK_ODD  0xF3
+
+struct da9052_regulator_info {
+   struct regulator_desc reg_desc;
+   int step_uV;
+   int min_uV;
+   int max_uV;
+   unsigned char volt_shift;
+   unsigned char en_bit;
+   unsigned char activate_bit;
+};
+
+struct da9052_regulator {
+   struct da9052 *da9052;
+   struct da9052_regulator_info *info;
+   struct regulator_dev *rdev;
+};
+
+static int verify_range(struct da9052_regulator_info *info,
+int min_uV, int max_uV)
+{
+   if (min_uV  info-min_uV || min_uV  info-max_uV)
+   return -EINVAL;
+   if (max_uV  info-min_uV || max_uV  info-max_uV)
+   return -EINVAL;
+
+   return 0;
+}
+
+static int da9052_regulator_enable(struct regulator_dev *rdev)
+{
+   struct da9052_regulator *regulator = rdev_get_drvdata(rdev);
+   struct da9052_regulator_info *info = regulator-info;
+   int offset = rdev_get_id(rdev);
+
+   return da9052_reg_update(regulator-da9052,
+DA9052_BUCKCORE_REG + offset,
+1  info-en_bit, 1);
+}
+
+static int da9052_regulator_disable(struct regulator_dev *rdev)
+{
+   struct da9052_regulator *regulator = rdev_get_drvdata(rdev);
+   struct da9052_regulator_info *info = regulator-info;
+   int offset = rdev_get_id(rdev);
+
+   return da9052_reg_update(regulator-da9052,
+DA9052_BUCKCORE_REG + offset,
+ 

Re: [PATCH v6 00/11] mmc: use nonblock mmc requests to minimize latency

2011-06-27 Thread saeed bishara

 +static inline void __dma_sync(void)
 +{
 +       dsb();
 +}
 +
  /*
  * Return whether the given device DMA address mask can be supported
  * properly.  For example, if your device can only drive the low 24-bits
 @@ -378,6 +383,7 @@ static inline dma_addr_t dma_map_single(struct device 
 *dev, void *cpu_addr,
        BUG_ON(!valid_dma_direction(dir));

        addr = __dma_map_single(dev, cpu_addr, size, dir);
 +       __dma_sync();
Russell,
  I'm curious about the correctness of this patch for systems with
outer cache. shouldn't the dsb be issued before the outer cache
maintenance?
saeed

___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


[PATCH] Samsung ARM:EXYNOS4: DMA Cleanup

2011-06-27 Thread Sangwook Lee
Function declaration differs between file:s3c-pl330.c and file:dma.h
and SPARSE (Documentation/sparse.txt) gives error messages

Signed-off-by: Sangwook Lee sangwook@linaro.org
---
 arch/arm/plat-samsung/include/plat/dma.h |   16 
 1 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/arch/arm/plat-samsung/include/plat/dma.h 
b/arch/arm/plat-samsung/include/plat/dma.h
index 2e8f8c6..7365f46 100644
--- a/arch/arm/plat-samsung/include/plat/dma.h
+++ b/arch/arm/plat-samsung/include/plat/dma.h
@@ -62,7 +62,7 @@ typedef int  (*s3c2410_dma_opfn_t)(struct s3c2410_dma_chan *,
  * request a dma channel exclusivley
 */
 
-extern int s3c2410_dma_request(unsigned int channel,
+extern int s3c2410_dma_request(enum dma_ch id,
   struct s3c2410_dma_client *, void *dev);
 
 
@@ -71,14 +71,14 @@ extern int s3c2410_dma_request(unsigned int channel,
  * change the state of the dma channel
 */
 
-extern int s3c2410_dma_ctrl(unsigned int channel, enum s3c2410_chan_op op);
+extern int s3c2410_dma_ctrl(enum dma_ch id, enum s3c2410_chan_op op);
 
 /* s3c2410_dma_setflags
  *
  * set the channel's flags to a given state
 */
 
-extern int s3c2410_dma_setflags(unsigned int channel,
+extern int s3c2410_dma_setflags(enum dma_ch id,
unsigned int flags);
 
 /* s3c2410_dma_free
@@ -86,7 +86,7 @@ extern int s3c2410_dma_setflags(unsigned int channel,
  * free the dma channel (will also abort any outstanding operations)
 */
 
-extern int s3c2410_dma_free(unsigned int channel, struct s3c2410_dma_client *);
+extern int s3c2410_dma_free(enum dma_ch id, struct s3c2410_dma_client *);
 
 /* s3c2410_dma_enqueue
  *
@@ -95,7 +95,7 @@ extern int s3c2410_dma_free(unsigned int channel, struct 
s3c2410_dma_client *);
  * drained before the buffer is given to the DMA system.
 */
 
-extern int s3c2410_dma_enqueue(unsigned int channel, void *id,
+extern int s3c2410_dma_enqueue(enum dma_ch idx, void *id,
   dma_addr_t data, int size);
 
 /* s3c2410_dma_config
@@ -103,14 +103,14 @@ extern int s3c2410_dma_enqueue(unsigned int channel, void 
*id,
  * configure the dma channel
 */
 
-extern int s3c2410_dma_config(unsigned int channel, int xferunit);
+extern int s3c2410_dma_config(enum dma_ch id, int xferunit);
 
 /* s3c2410_dma_devconfig
  *
  * configure the device we're talking to
 */
 
-extern int s3c2410_dma_devconfig(unsigned int channel,
+extern int s3c2410_dma_devconfig(enum dma_ch id,
enum s3c2410_dmasrc source, unsigned long devaddr);
 
 /* s3c2410_dma_getposition
@@ -118,7 +118,7 @@ extern int s3c2410_dma_devconfig(unsigned int channel,
  * get the position that the dma transfer is currently at
 */
 
-extern int s3c2410_dma_getposition(unsigned int channel,
+extern int s3c2410_dma_getposition(enum dma_ch id,
   dma_addr_t *src, dma_addr_t *dest);
 
 extern int s3c2410_dma_set_opfn(unsigned int, s3c2410_dma_opfn_t rtn);
-- 
1.7.4.1


___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: [PATCH v6 00/11] mmc: use nonblock mmc requests to minimize latency

2011-06-27 Thread Russell King - ARM Linux
On Mon, Jun 27, 2011 at 01:34:48PM +0300, saeed bishara wrote:
 Russell,
   I'm curious about the correctness of this patch for systems with
 outer cache. shouldn't the dsb be issued before the outer cache
 maintenance?

Maybe we should do two passes over SG lists then - one for the inner and
another for the outer cache?

In effect we could do three passes:

1. Calculate the total size of the SG list to determine whether full
   cache flush is more efficient.
2. Flush inner cache
   Then dsb()
3. Flush outer cache
   Another dsb()


___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: ARM Cross-Compilation

2011-06-27 Thread Wookey
+++ Marc-André Moreau [2011-06-26 10:41 -0400]:
 
 Nothing wrong with this method, and it is reliable, but I find it
 quicker and easier to use multistrap and do:
 multistrap -f
 
 
 Will look into that, it could save me time 

sorry that should read 
multistrap -f /usr/share/multistrap/ubuntu/armel.conf

but then I realised that it's not been updated for natty. I'll do an
upload forthwith.

  xapt:
 
  The problem is then that xapt will fail to install the converted 
 packages,
  saying the package architecture is different from the current 
 architecture, as
  well as missing dependencies. 

 You are suffering from this problem:
 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=629595 which is
 because we are in the middle of a transition to multiarch packages.
 
 Ok, so I should assume that this stuff is broken for pretty much anyone using
 natty? 

Essentially yes. I'll see if I can get an xapt (or dpkg-cross) update pushed in.

 however there is then a link failure, when it tries to link the wrong
 arch of libpthread.so:
 /usr/lib/gcc/arm-linux-gnueabi/4.5.2/../../../../arm-linux-gnueabi/bin/ld:
 skipping incompatible /usr/lib/x86_64-linux-gnu/libpthread.so when
 searching for -lpthread
 /usr/lib/x86_64-linux-gnu/libpthread.a: could not read symbols: File 
 format
 not recognized
 collect2: ld returned 1 exit status
 
 
 If I understand correctly, xapt is broken on natty, so I could give this build
 of xapt a try, but then when trying to build FreeRDP I'll still have the
 problem described above? 

Correct. I'll have a look at that to see what's going on there and
what options we have to fix it. Something is pointing at the wrong-arch
version.

  deb [arch=armel] http://ports.ubuntu.com/ natty main universe
  deb-src [arch=armel] http://ports.ubuntu.com/ natty main universe
 
 That looks OK (except the last line should be:
 deb-src http://ports.ubuntu.com/ natty main universe
 (It doesn't actually break anything - just makes no sense - Have I
 left that in a doc somewhere?)
 
 Hum... not sure where I read that, are you referring to the [arch=armel] part?
 I read in certain places that it was something new that should be there, but 
 it
 didn't change anything. 

You need [arch=armel] for the binary line, but not the source line
(where it is meaningless). Change it if you see it in docs.

 So, the easiest way to get cross-building is to do it on a debian
 wheezy machine/chroot where the tools and build work OK. As you want
 to do neon dev then you may need to install a new-enough
 cross-toolchain, which probably means a linaro one.
 
 
 I see the linaro wiki and website refer to ubuntu a lot, and not necessarily
 debian. There is also much more support and documentation for ubuntu rather
 than debian for the pandaboard. I understand it would be much easier to get it
 to compile in the first place with debian wheezy, but I would prefer staying
 with ubuntu, if it is possible. I tried just tried xapt in oneiric, it doesn't
 seem to be fixed :( Besides xapt, what would be seriously broken in ubuntu
 natty? Maybe I could just compile the latest version of xapt myself on natty?

linaro does currently do much of its work in Ubuntu so you are likely
to find latest stuff there. On the other hand Debian on panadaboard
works fine too SFAIK, so they are probably both reasonable choices.

In general the cross-tools should work the same in both, but it's one
area where some stuff happens first in Debian.  I don't expect
anything else to be seriously broken in natty, but then I don't expect
different link behaviour for a given build on the two systems either,
so you never know until you try.


 So, is a wheezy-based build sufficient for you for the time being? Or
 do you have to have it building on natty to do useful dev?
 
 
 My main problem would be debian support on the pandaboard which is much less
 documented than ubuntu. I'd prefer working around the various issues found in
 natty and work with natty instead, if we can work around all the current
 problems. If it's just too much of a pain, I'll have to give wheezy a try, but
 I don't think it'll be as easy to get wheezy up and running on the 
 pandaboard. 

This thread suggests it's perfectly do-able:
http://groups.google.com/group/pandaboard/browse_thread/thread/94773021fbe2a2aa

but natty/onieric needs fixing anyway, so I'll do that, which will, as
you say probably give you an easier life overall.

Wookey
-- 
Principal hats:  Linaro, Emdebian, Wookware, Balloonboard, ARM
http://wookware.org/

___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: More pinmux feedback, and GPIO vs. pinmux interaction

2011-06-27 Thread Linus Walleij
On Fri, Jun 24, 2011 at 5:51 AM, Mike Frysinger vapier@gmail.com wrote:

 can you guys start cc-ing uclinux-dist-de...@blackfin.uclinux.org on
 future pinmux discussions?

OK!
Please refer to the LKML thread:
[PATCH 1/2] drivers: create a pinmux subsystem v3

For now, I'll include blackfin for the v4 post.

 we already have a thin layer in the
 Blackfin tree for handling pin muxing that has served us well for a
 few years, so we want to keep tabs on where this is going.  i just
 happened to stumble across this today.

Aha now it's yet another name, portmux, to add to the happy family
of pinmux, padmux, fingermux, alternate functions and mission mode
terminology soup ;-)

 arch/blackfin/include/asm/portmux.h:
 peripheral_request()
 peripheral_request_list()
 peripheral_free()
 peripheral_free_list()

 this lets you pass in an array of pins and it returns success only if
 all were available.  we find the array request method gets used the
 vast majority of the time, so any proposed API should include that.

I think if you look at the Documentation/pinctrl.txt file from the
last iteration of the framework you find that this is exactly what
the pinmux part of the pinctrl subsystem does. It avoids pin
clashes in a discrete number space.

If I'm not mistaken. (Which happens a lot.)

 we also handle pins that can only be used in peripheral mode.  this
 allows us to write code that requests UART pins without having to know
 whether the pin is muxed or dedicated or somewhere in between.

This is done with pinmux_get() and pinmux_enable() in this
framework.

 Grant does not seem to like the idea of the gpio subsystem
 meddeling with all this stuff anyway, so I intend to take all that
 into pinctrl, and then gpio only deal with, well GPIO. Setting
 bits quickly and such.

 but there has to be resource management between the two subsystems
 somewhere.  on the Blackfin side, if you request a pin as a GPIO using
 the GPIO api, and then try to request it in peripheral mode, you get
 EBUSY back.  you cant have the two blocks stepping on each others
 toes.

Yes. Avoiding this is exactly the idea behind the
int (*gpio_request_enable) (struct pinmux_dev *pmxdev, unsigned offset);
member in the pinmux_ops vtable. We're discussing the exact
semantics of this call here.

We all agree we need something that can allocate a single pin for
GPIO in the number space, I think.

 some Blackfin parts have this to ease the conflicts between devices
 that customers want.  if UART0 and SPI0 share PF0, PF1, and PF2,
 sometimes UART0 can be routed to PG3 and PG4 so that SPI0 can be used.

This kind usecase is covered extensively in the documentation
and previous discussion IIUC.

 atm we've made this a Kconfig option.  obviously that wont fly in the
 build one image to run on all platforms, but that isnt a problem for
 Blackfin systems today, and customers have been OK with this minor
 limitation.

I think we may be able to fix that limitation, and would like to make sure
we're not engineering in some limitation for Blackfin, so hit us.

 we implemented this on the Blackfin side by encoding things into the
 pin data.  but that's because we had enough space in u16 to cover all
 of our parts so far.

 for example, the PA1 pin can act as GPIO, or as a timer pin, or as
 part of our high speed peripheral SPORT.
 #define P_SPORT2_DTSEC (P_DEFINED | P_IDENT(GPIO_PA1) | P_FUNCT(0))
 #define P_TMR4 (P_DEFINED | P_IDENT(GPIO_PA1) | P_FUNCT(1))
 when someone does peripheral_request(P_TMR4), the code first reserves
 itself with the GPIO core, and then configures the pinmux logic to set
 this pin as function 1 (it's a 2 bit field).

In ARM we're at the stage now where each mach-foo under arch/arm/*
is running its own show in this regard. For example mach-ux500
magically stuff all its pin configuration into a u32 cleverly reusing bits
here and there.

Everyone is special, just like everybody else...

Basically there are as many pinmux implementations as there are
machines, and then we end up with that other Linus beating us on the
head for not consolidating our stuff into something generic.

So I'm doing this framework using some structs and radix trees
and no magic bitstuffing for now.

 we also have pin grouping logic implemented for the parts which dont
 have per-pin muxing so you cant request different pins in the same
 group for the same mode.

We should be able to solve that I think!

Yours,
Linus Walleij

___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: Customization of Gerrit for Android

2011-06-27 Thread James Westby
On Mon, 27 Jun 2011 11:25:59 +0200, Alexander Sack a...@linaro.org wrote:
 hi,
 
 great news.
 
 I think we should use a different hostname for gerrit. like
 review.android.linaro.org. With that we have the option to make a dedicated
 android git host using the android.git.l.o name eventually.

I don't understand what this means. What's a dedicated android git
host and why can't it co-exist with Gerrit?

Thanks,

James

___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: [PATCH 1/2] drivers: create a pinmux subsystem v3

2011-06-27 Thread Linus Walleij
On Thu, Jun 16, 2011 at 9:10 PM, Stephen Warren swar...@nvidia.com wrote:
 Linus Walleij wrote at Thursday, June 16, 2011 6:47 AM:
 NOW I  *think* I get it.

 So we're basically talking about the function mapping API here.

 Yes, basically.

 In more detail, I'm talking about making the functions exposed to
 clients of the pinmux be a different set than the functions
 implemented by the pinmux driver. Perhaps we should call the former
 mappings not make that clear; I see you did just below!

OK I get it now I believe.

 The mappings, provided by and specific to a particular board/machine
 would always expose only the exact configurations actually used on that
 board:

 mapping device: tegra-kbc
 mapping name: config a
 mapping function list: row[7:4], row[3:0], col[3:0]

 (note how I added a mapping name field here; more on this below. This
 is related to mapping and function names being different things)

OK so one mapping reference several functions in this way,
I see.

 You will need atleast to move the functions out of the mapping
 something like this:

 static char *mmc0_10[] = { mmc0-1:0, mmc0-3:2, mmc0-7:4 };

 static struct pinmux_map pmx_mapping[] = {
        {
                .functions = mmc0_10,
                .functions_len = ARRAY_SIZE(mmc0_10);
                .dev_name = tegra-sdhci.0,
        },
 };

 Which sort of kludges up the syntax for all the simple cases that will
 also have to add ARRAY_SIZE() and a separate string array for
 each of its single-function maps.

 So it has the downside of complicating the simple maps.

 Yes, you're right. I think I have a simpler solution that degenerates to
 the same syntax as in your current patch. Starting with your original:

 static struct pinmux_map pmx_mapping[] = {
       {
               .dev_name = tegra-sdhci.0,
               .function = mmc0-1:0,
       },

 (where devices look up mappings by .function, among other options)

 We then add a new mapping name field; you'll see why soon:

 static struct pinmux_map pmx_mapping[] = {
       {
               .dev_name = tegra-sdhci.0,
               .map_name = 2 bit,
               .function = mmc0-1:0,
       },

 (where we now use .map_name for searching the list instead of
 .function, which ties into my comment above about having explicit
 different sets of names for mapping entries and low-level pinmux driver
 internal function names.

 We can still set .map_name = NULL and omit it in the simple case where
 drivers search based on .dev_name and don't specify any specific
 .map_name to search for, and don't have multiple options for mappings
 they can switch between.

 Now, we can have multiple entries with the same .map_name:

 static struct pinmux_map pmx_mapping[] = {
       {
               .dev_name = tegra-sdhci.0,
               .map_name = 4 bit, # Note this is 4 now
               .function = mmc0-1:0,
       },
       {
               .dev_name = tegra-sdhci.0,
               .map_name = 4 bit,
               .function = mmc0-3:2,
       },

 This means that if a client request map name 4 bit, then both functions
 mmc0-1:0 and mmc0-3:2 are part of that mapping.

(...)

 In terms of implementation, this is still pretty easy; all we do when
 reserving or activating a given mapping is to walk the entire list, find
 *all* entries that match the client's search terms, and operate on all of
 them, instead of stopping at the first one.

So:
pmx = pinmux_get(dev, 4 bit);

in this case would reserve pins for two functions on pinmux_get() and
activate two different functions after one another when
we pinmux_enable(pmx) on this, mmc0-1:0 and mmc0-3:2 in some
undefined order (inferenced across namespace).

I don't think it's as simple as you say, this gets hairy pretty quickly:

Since my previous pinmux_get() would create a struct pinmux * cookie
for each map entry, assuming a 1:1 relationship between map entries
and pinmuxes, we now break this, and you need to introduce
more complex logic to search through the pinmux_list and dynamically
add more functions to each entry with a matching map_name.

Then you need to take care of the case where acquiring pins for
one of the functions fail: then you need to go back and free the
already acquired pins in the error path.

I tried quickly to see if I could code this up, and it got very complex
real quick, sadly. Maybe if I can just get to iterate a v4 first, I
could venture down this track.

But if you can code up the patch for this, I'm pretty much game for
it!

 struct pinmux, as returned by pinmux_get(), would need some adjustments
 to store either an array of map entries, or just the .map_name of the
 found entry/entries, so the loop could be repeated later.

Yes if we can just write the code for it I buy into it. :-)

 So sorry but just to hammer home my point, the disadvantages of the pinmux
 driver itself (as opposed to the mapping list) aggregating multiple pins
 or groups-of-pins into functions for each supported combination are:

 * 

Re: FYI: Linaro Validation showcase video at Computex 2011

2011-06-27 Thread Jim Huang
On 24 June 2011 13:17, Paul Larson paul.lar...@linaro.org wrote:
 Neat!  Any feedback from those who saw it?


hi Paul,

Yes, we got many feedback and inputs while presenting LAVA and
corresponding Android platform support.

I think most visitors agreed with the idea and importance of LAVA, but
it is a bit hard for some of them to Imagine how (and why) various
steps are necessary to perform ordinary concepts such as Built in the
cloud - Deploy Linaro Evaluation Build images into target - Execute
system benchmark - Collect results and visualize in somewhere.

The reason why I attempted to write Gtk+ front-end is simplifying
the details of the showcase and even making it visualized for LAVA.
By the way, thank Validation team to bring it to the world. :)

Sincerely,
-jserv

 On Fri, Jun 24, 2011 at 12:00 AM, Jim Huang jim.hu...@linaro.org wrote:
 During the first week of June, we prepared the technical showcase[1]
 about Linaro powered devices and projects including LAVA[1].

 To emphasize how LAVA works, we just uploaded another demo video:
    http://www.youtube.com/watch?v=_3dT68MOzz0
 It starts at 2:27.

___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: [PATCH v6 00/11] mmc: use nonblock mmc requests to minimize latency

2011-06-27 Thread Linus Walleij
On Mon, Jun 27, 2011 at 12:02 PM, Russell King - ARM Linux
li...@arm.linux.org.uk wrote:

 The next thing to think about in DMA-land is whether we should total up
 the size of the SG list and choose whether to flush the individual SG
 elements or do a full cache flush.  There becomes a point where the full
 cache flush becomes cheaper than flushing each SG element individually.

We noticed that even for a single (large) buffer, any cache flush operation
above a certain threshold flushing indiviudal lines become more expensive
than flushing the entire cache.

I requested colleagues to look into implenting this threshold in the
arch/arm/mm/cache-v7.S file. but I think they ran into trouble and
eventually had to give up on it.

Vijay or Srinidhi, can you share your findings?

Thanks,
Linus Walleij

___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Building/testing linaro kernels in Thumb-2

2011-06-27 Thread Dave Martin
There are brief notes about how to enable Thumb-2 kernel building here:

https://wiki.linaro.org/Resources/HowTo/KernelDeploy#From_a_generic_base

Currently, omap and vexpress are known to work in this configuration,
and mx51evk seems to have basic support.  Other platforms might not
work at all.

If people can get into the habit of testing both ARM and Thumb-2
kernel configurations when testing the linaro kernel tree, that would
be great!

Cheers
---Dave

___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


[ACTIVITY] Multimedia WG status report - wk25.2011 (20110620-20110624)

2011-06-27 Thread Ilias Biris
https://wiki.linaro.org/WorkingGroups/Middleware/Multimedia/WeeklyReport

Highlights:

Approaching the public plans review - blueprints are being created by
the team. 5 TRs will be the work focus:
- OpenMAX Integration
- Userspace UMM
- Codec optimization
- NEON optimization forum
- Audio integration

It was decided that due to time shortage because of the planning, the
work to release libjpeg-turbo for Android during 11.07 would not be
feasible

Also in discussions during this week, with Jesse Barker and Kurt Taylor,
it was identified that we would need some guidance and support related
to Android deliverables. Specifically having someone from the Android
team guide our integration tasks, and perhaps set up a regular sync-up
about Android integration would be beneficial.

BR,
-- 
Ilias Biris,
Aallonkohina 2D 19, 02320 Espoo, Finland
Tel: +358 50 4839608 (mobile)
Email: ilias dot biris at linaro dot org
Skype: ilias_biris

___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


[ACTIVITY] Graphics WG status - wk25.2011 (20110620-20110624)

2011-06-27 Thread Ilias Biris
https://wiki.linaro.org/WorkingGroups/Middleware/Graphics/WeeklyReport

== Highlights:
* glcompbench and glmark2 have been released on 20110627
* unity-gles tarball on its way for the milestone release - getting
ironed out as this is written
* Last week's Graphics meeting was replaced by the meeting of the Memory
Management group which took place on #linaro-mm-sig IRC channel on
20110622. There is more detailed information on the linaro-mm-sig
meeting wiki page
(https://wiki.linaro.org/OfficeofCTO/MemoryManagement/Notes/2011-06-22).
Also don't miss to read the LWN article on Contiguous Memory Allocation
: http://lwn.net/Articles/447405/

== Upcoming Deliverables: Planned content for the 11.07 release.

== Risks / Issues:
This was discussed together with Jesse Barker and Kurt Taylor from MMWG:
related to Android released content from the graphics WG, we would need
some guidance and support. Specifically having someone from the Android
team guide our integration tasks, and perhaps set up a regular sync-up
about Android integration would be beneficial.

BR,
-- 
Ilias Biris,
Aallonkohina 2D 19, 02320 Espoo, Finland
Tel: +358 50 4839608 (mobile)
Email: ilias dot biris at linaro dot org
Skype: ilias_biris

___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


RE: [PATCH v6 00/11] mmc: use nonblock mmc requests to minimize latency

2011-06-27 Thread Vijaya Kumar K-1
Hi,

  The below are the timings on clean  flush.

/*
Size Clean   Dirty_cleanFlush   Dirty_Flush
 T1(ns)   T2(ns)  T3(ns)  T2(ns)

4096 3051730517 30517 30517
8192 3051730517 30517 30517
163843051830518 30518 30518
327683051830518 30518 61035--
368646103661036 61035 61035
655369155391553 91553 91553
131072 183106 183106183106  183106

Full 3051830518 30518 30518--
Cache 

*/
/* Based on Above values, 32768 size is breakeven for flushing/cleaning
 * full D cache
 */

I have noticed with 32KB DLIMIT, there is small reduction about 1fps in 
skiamark profile after this change. It could be because of full flush or
clean is causing more cache misses later on in the execution.

However with 64KB DLIMIT, there is further degrade in skiamark performance.
So I think 32KB is good value.

However the problems are seen in the Android UI. Small artifacts are 
seen during Video playback on UI widgets.

This artifacts are not seen if clean is called for each cpu.

Also I find it takes some effort to implement clean_all / flush_all
API's in cache-V7.S (asm) file to execute on each cpu.
And hence it was parked aside.

And I have not investigated, why flush on both cases in case of flush all on
Both cpu's always works?

Thanks  Regards
Vijay



-Original Message-
From: Linus Walleij [mailto:linus.wall...@linaro.org] 
Sent: Monday, June 27, 2011 5:30 PM
To: Russell King - ARM Linux; Srinidhi KASAGAR; Vijaya Kumar K-1
Cc: Per Forlin; Nicolas Pitre; Chris Ball; linaro-dev@lists.linaro.org; 
linux-...@vger.kernel.org; linux-arm-ker...@lists.infradead.org; Robert Fekete
Subject: Re: [PATCH v6 00/11] mmc: use nonblock mmc requests to minimize latency

On Mon, Jun 27, 2011 at 12:02 PM, Russell King - ARM Linux
li...@arm.linux.org.uk wrote:

 The next thing to think about in DMA-land is whether we should total up
 the size of the SG list and choose whether to flush the individual SG
 elements or do a full cache flush.  There becomes a point where the full
 cache flush becomes cheaper than flushing each SG element individually.

We noticed that even for a single (large) buffer, any cache flush operation
above a certain threshold flushing indiviudal lines become more expensive
than flushing the entire cache.

I requested colleagues to look into implenting this threshold in the
arch/arm/mm/cache-v7.S file. but I think they ran into trouble and
eventually had to give up on it.

Vijay or Srinidhi, can you share your findings?

Thanks,
Linus Walleij

___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: Switch to ubuntu-build.linaro.org

2011-06-27 Thread James Westby
On Sun, 26 Jun 2011 11:06:08 +0300, Fathi Boudra fathi.bou...@linaro.org 
wrote:
 Yes. 3 consecutive days without any glitches.
 +1 on my side.

Fathi,

Do you want to switch this week? (I can't tell you exactly when we can
switch as it relies on the availability of an IS sysadmin to make the
changes.)

Were you planning on taking the 11.06 release from ubuntu-build images
or the OEM-built images?

Thanks,

James

___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


[ACTIVITY] OCTO status report - wk25.2011 (20110620-20110624)

2011-06-27 Thread Ilias Biris
https://wiki.linaro.org/OfficeofCTO/Status/2011-06-21


== Highlights ==
- The Memory Management group met on #linaro-mm-sig IRC channel on
20110622. A summary of the meeting:
   * Most of the discussion revolved around the large physical
allocation support (aka CMA) - specifically on the CMA areas
initialization, allocations being in a specific area (memory bank),
handling device specific attributes.
   * Towards the end of the meeting the discussion also touched on
dma-mapping API status, as well as the participation to Linaro Connect.
There are already 5 V4L2 developers interested in collocating a V4L2
brainstorming session with Linaro Connect. there might be a 6th one

- ARMHF
   * Java is fixed - at least gcj seems to work. However immediately
after that ecj started complaining. Konstantinos has nevertheless built
a lot of packages for armhf - next step is to bootstrap openjdk
   * kde4libs has been failing lately, leading to not being able to have
kde armhf packages ready. This was pinpointed to be due to qt4 atomics
being broken on armhf, missing the patch from Ubuntu, so kde packages
are now getting fixed

* Debian has/is just undergoing a huge number of transitions now,
and for debian-ports the team has to act on those manually (status is in
http://www.debian-ports.org/~iwamatsu/transition/)

- Device tree: Grant Likely has been working on bug
https://bugs.launchpad.net/bugs/707047 (Only half of RAM useable when
using Device Tree on Panda board). Grant is also coordinating the
efforts for the Linaro Connect discussions related to device tree and
boot architecture.

- Boot architecture: Loïc Minier has started a discussion on the
boot-architecture mailing list (see
http://lists.linaro.org/pipermail/boot-architecture/2011-June/16.html)
- trying to create a reasonable use case which 'expresses the concept of
modules that the boot architecture would cover'.

== Upcoming Deliverables ==
* Expected to close some documentation work items for ARMHF and Boot
Architecture during week 26
* Bootable SD card images for armhf, for the efikas, pandaboard,
trimslice, should be uploaded during week 26
* ARMHF initial set of benchmarks should start appearing during week 26

== Miscellaneous ==
David Rusling back from holiday
Konstantinos Margaritis is back from the Genesi sprint US trip

-- 
Ilias Biris,
Aallonkohina 2D 19, 02320 Espoo, Finland
Tel: +358 50 4839608 (mobile)
Email: ilias dot biris at linaro dot org
Skype: ilias_biris

___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Linaro Kernel 11.06 Snapshot

2011-06-27 Thread Deepak Saxena
The Linaro Kernel Working Group (KWG) is excited to announce the
availability our June 2011 development snapshot:

linux-linaro-2.6.39-2011.06-0

As the word snapshot implies, these are meant as development kernels
and have not been fully validated. You should expect issues and to help
us deliver a better kernel in the future, please file bugs in Launchpad at
https://bugs.launchpad.net/linux-linaro.

The source tarball is available at:
  
http://launchpad.net/linux-linaro/2.6.39/2.6.39-2011.06/+download/linux-linaro-2.6.39-2011.06-0.tar.bz2

The kernel sources can also  be accessed using git at:
  git://git.linaro.org/kernel/linux-linaro-2.6.39.git
  tag: linux-linaro-2.6.39-2011.06-0

This snapshot is based on the 2.6.39.1 stable kernel with a number
of changes developed by Linaro and integrated from the 3.0-rc. The
changes since our 11.05 release, other than what is already in
2.6.39 include:

 * Fixed LP #754254: imx51 randomly truncates serial input at 31 characters

 * Ability to append Device Tree to zImage at build time

 * Support for parallel async MMC requests

 * Common MMIO clocksource infrastructure

 * Moving of various drivers out of arch/arm into drivers/

A full changelog against 2.6.39.1 is available at:
  
http://launchpad.net/linux-linaro/2.6.39/2.6.39-2011.06/+download/linux-linaro-2.6.39-2011.06-0.tar.bz2

High Priority Known Issues:

  * Only half of RAM useable when using Device Tree on Panda board
   (LP #707047)

Mailing list:  http://lists.linaro.org/mailman/listinfo/linaro-dev

Questions? https://ask.linaro.org/

___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


[STATUS] Zach Pfeffer 2011/6/19 - 2011/6/25

2011-06-27 Thread Zach Pfeffer
== Zach Pfeffer pfefferz ==

=== Highlights ===
 * Finishing up 11.06 milestones
 * Tested patch to linaro-image-tools for Android LEB
 * Got Android PoC program underway (Frans for STE, Bernhard for Freescale)
 * Clarified 11.06 deliverable
 * Onboarded Bernhard Rosenkraenzer and Frans Gifford
 * Interviewed
 * Held meeting and wrote up ideas for AOSP upstreaming
 * Forward ported EDID parser from Pandroid 35 to Andy's TI LEB to
ensure a fully enable LEB with 1080P
 * Supported STE's Android bringup

=== Plans ===
 * Finish 11.06 release
 * Go through the backlog for 11.07 planning
 * Push Freescale and STE builds forward

=== Issues ===
 * Need a company-wide AOSP plan
 * Need AOSP based 3.0 kernels

___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: Switch to ubuntu-build.linaro.org

2011-06-27 Thread Fathi Boudra
On 27 June 2011 19:40, James Westby james.wes...@linaro.org wrote:
 On Sun, 26 Jun 2011 11:06:08 +0300, Fathi Boudra fathi.bou...@linaro.org 
 wrote:
 Yes. 3 consecutive days without any glitches.
 +1 on my side.

 Fathi,

 Do you want to switch this week? (I can't tell you exactly when we can
 switch as it relies on the availability of an IS sysadmin to make the
 changes.)

asap, this week or next week.

 Were you planning on taking the 11.06 release from ubuntu-build images
 or the OEM-built images?

from ubuntu-build.linaro.org

Cheers,

Fathi

___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Linaro GCC 4.4 end-of-life reached on June 28, 2011

2011-06-27 Thread Michael Hope
This note is to confirm that support for Linaro GCC 4.4 formally ended
on June 28, 2011.

The recommended upgrade path is to our current Linaro GCC 4.6
development branch or to our Linaro GCC 4.5 maintenance branch.
Third-party fixes continue to be accepted for Linaro GCC 4.4 and all
releases, branches, and history will remain available.

Since entering development in July 2010, we have made eight releases
containing many new features 22 bug fixes.  Linaro GCC 4.4 was our
first release and set the stage for the current, ongoing work.

-- Michael Hope
   Toolchain Technical Lead

___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Linaro GCC 4.5 entered maintenance on June 28, 2011

2011-06-27 Thread Michael Hope
This note is to confirm that Linaro GCC 4.5 entered maintenance on
June 28, 2011.

The new development branch is the 4.6.1 based Linaro GCC 4.6.  Linaro GCC 4.5
continues to be actively supported with select high-impact bug fixes
and will remain so until it enters end-of-life, shortly after Linaro
GCC 4.7 is released.  Monthly releases will be made alongside the new
development release.

-- Michael Hope
   Toolchain Technical Lead

___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


[ACTIVITY] Android Platform Team 2011-05-29 to 2011-06-04

2011-06-27 Thread Zach Pfeffer
Getting the Android Platform Team status pages out. Sorry for the wait.

== Key Points for wider discussion ==
 * Starting to look at shipping a full Panda LEB

== Team Highlights ==
 * Started working on Android public plan
 * Started interviewing new candidates
 * Created LT panda build to work from
 * Created GTK LAVA frontend

== Risks / Issues ==
 * Need staff
 * Computex demo needs clarity

== Miscellaneous ==
 * None

___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


[ACTIVITY] Android Platform Team 2011-06-05 to 2011-06-11

2011-06-27 Thread Zach Pfeffer
== Key Points for wider discussion ==
 * LEB work progressing
 * Reference builds available

== Team Highlights ==
 * Gave Android Public Plan Review
 * Attended and participated in the Multimedia WG Mini-Summit in Austin
 * Started bringing in Pandroid build
 * 4.5 GCC packaging work

== Risks / Issues ==
 * Staff

== Miscellaneous ==
 * None

___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


[ACTIVITY] Android Platform Team 2011-06-12 to 2011-06-18

2011-06-27 Thread Zach Pfeffer
== Key Points for wider discussion ==
 * Android LEB is almost done
 * Pushing to AOSP

== Team Highlights ==
 * Started weekly WG and LT integration meetings
 * Helped debug SGX issue
 * Continued SPDX work
 * Almost finished with Pandroid build
 * LAVA Gtk+ published
 * AOSP contribution: https://review.source.android.com//#change,23997
 * AOSP contribution: https://review.source.android.com//#change,23998
 * Tried snowball community distro: Unable to boot
 * Frans and Bernhard coming onboard

== Risks / Issues ==
 * Staff
 * Licensing

== Miscellaneous ==
 * New starters: Frans Gifford, Bernhard Rosenkränzer

___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev