Re: [U-Boot] [PATCH 2/3] OMAP3: Rename interrupts.c to timer.c

2009-05-11 Thread Wolfgang Denk
Dear Dirk,

In message 4a047b71.6080...@googlemail.com you wrote:

  This results then in something
 
  cpu/sa1100/{interrupts.c = timer.c} |5 +-
  rename cpu/arm925t/{interrupts.c = timer.c} (99%)
 
  (from [1]). But this is only what normally 'diffstat' generates and 
  what is totally ignored by 'patch' .
  
  It can be applied with git am (well, not the diffstat, but the special
  rename diff hunk that git also generates).
 
 Ok, thanks. But not with other tools, like plain 'patch', correct?

Indeed. But why would you use such a tool in combination with a git
repository? It makes no sense.

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH, MD: Wolfgang Denk  Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: w...@denx.de
You can't evaluate a man by logic alone.
-- McCoy, I, Mudd, stardate 4513.3
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH 2/3] OMAP3: Rename interrupts.c to timer.c

2009-05-08 Thread Dirk Behme
Dear Jean-Christophe,

Jean-Christophe PLAGNIOL-VILLARD wrote:
 On 17:41 Tue 05 May , Dirk Behme wrote:
 After removal of dublicated interrupt code, rename file to what it
 really does now.
 I prefer to rename all files at the same time

Then, please don't complain that you have to do everything on your 
own and nobody helps you ;) I would prefer that changes are done by 
the board maintainers and not by the custodian, though.

 Btw please use git to show that you only rename the file without change

I'm not sure that this works for non-custodians. Custodians can do 
git-rename and then send a patch to the mailing list. When a custodian 
sends such a patch, it is mainly for review only, and not to be 
applied somewhere (because it is already in git).

This results then in something

cpu/sa1100/{interrupts.c = timer.c} |5 +-
rename cpu/arm925t/{interrupts.c = timer.c} (99%)

(from [1]). But this is only what normally 'diffstat' generates and 
what is totally ignored by 'patch' . I.e. in the part of the patch 
which is handled by 'patch' this info is totally missing. As far as I 
know 'patch' itself can't deal with file rename any other way than 
remove one file and create the other one with

--- u-boot-main.orig/cpu/arm_cortexa8/omap3/interrupts.c
+++ /dev/null

--- /dev/null
+++ u-boot-main/cpu/arm_cortexa8/omap3/timer.c

So it's my understanding that non-custodians have to send a patch 
which can be applied everywhere by everyone by 'patch' utility, i.e. 
the part 'patch' deals with contains all information necessary.

Do I miss anything?

Best regards

Dirk

[1] http://lists.denx.de/pipermail/u-boot/2009-May/051921.html

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH 2/3] OMAP3: Rename interrupts.c to timer.c

2009-05-08 Thread Scott Wood
On Fri, May 08, 2009 at 05:47:27PM +0200, Dirk Behme wrote:
 I'm not sure that this works for non-custodians. Custodians can do 
 git-rename and then send a patch to the mailing list. When a custodian 
 sends such a patch, it is mainly for review only, and not to be 
 applied somewhere (because it is already in git).
 
 This results then in something
 
 cpu/sa1100/{interrupts.c = timer.c} |5 +-
 rename cpu/arm925t/{interrupts.c = timer.c} (99%)
 
 (from [1]). But this is only what normally 'diffstat' generates and 
 what is totally ignored by 'patch' .

It can be applied with git am (well, not the diffstat, but the special
rename diff hunk that git also generates).

-Scott
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH 2/3] OMAP3: Rename interrupts.c to timer.c

2009-05-08 Thread Dirk Behme
Scott Wood wrote:
 On Fri, May 08, 2009 at 05:47:27PM +0200, Dirk Behme wrote:
 I'm not sure that this works for non-custodians. Custodians can do 
 git-rename and then send a patch to the mailing list. When a custodian 
 sends such a patch, it is mainly for review only, and not to be 
 applied somewhere (because it is already in git).

 This results then in something

 cpu/sa1100/{interrupts.c = timer.c} |5 +-
 rename cpu/arm925t/{interrupts.c = timer.c} (99%)

 (from [1]). But this is only what normally 'diffstat' generates and 
 what is totally ignored by 'patch' .
 
 It can be applied with git am (well, not the diffstat, but the special
 rename diff hunk that git also generates).

Ok, thanks. But not with other tools, like plain 'patch', correct?

Best regards

Dirk
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH 2/3] OMAP3: Rename interrupts.c to timer.c

2009-05-08 Thread Scott Wood
Dirk Behme wrote:
 Scott Wood wrote:
 It can be applied with git am (well, not the diffstat, but the special
 rename diff hunk that git also generates).
 
 Ok, thanks. But not with other tools, like plain 'patch', correct?

Right, until someone fixes that. :-)

Which I suppose could be a problem if git am refuses to accept the 
patch and the normal patch command needs to be used to resolve the 
conflict (I really wish git would treat it more like a merge from a UI 
perspective, even if it doesn't look that way internally).

-Scott
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH 2/3] OMAP3: Rename interrupts.c to timer.c

2009-05-08 Thread Wolfgang Denk
Dear Dirk,

In message 4a04540f.10...@googlemail.com you wrote:
 
  Btw please use git to show that you only rename the file without change
 
 I'm not sure that this works for non-custodians. Custodians can do 
 git-rename and then send a patch to the mailing list. When a custodian 
 sends such a patch, it is mainly for review only, and not to be 
 applied somewhere (because it is already in git).

In which way is this rtestricted to custodians? everybody can do the
same in his own git repositories and use this to provide patches and
statistics.

 (from [1]). But this is only what normally 'diffstat' generates and 
 what is totally ignored by 'patch' . I.e. in the part of the patch 

We don't use plain old patch, we use git tools (like git am). And
these do understand about rename patches.

 which is handled by 'patch' this info is totally missing. As far as I 
 know 'patch' itself can't deal with file rename any other way than 
 remove one file and create the other one with

That's why we use git.

 So it's my understanding that non-custodians have to send a patch 
 which can be applied everywhere by everyone by 'patch' utility, i.e. 
 the part 'patch' deals with contains all information necessary.
 
 Do I miss anything?

Yes, you are missing that we use git these days, and git is more
powerful.

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH, MD: Wolfgang Denk  Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: w...@denx.de
In the beginning, there was nothing, which exploded.
- Terry Pratchett, _Lords and Ladies_
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH 2/3] OMAP3: Rename interrupts.c to timer.c

2009-05-07 Thread Jean-Christophe PLAGNIOL-VILLARD
On 17:41 Tue 05 May , Dirk Behme wrote:
 After removal of dublicated interrupt code, rename file to what it
 really does now.
I prefer to rename all files at the same time

Btw please use git to show that you only rename the file without change

Best Regards,
J.
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] [PATCH 2/3] OMAP3: Rename interrupts.c to timer.c

2009-05-05 Thread Dirk Behme
After removal of dublicated interrupt code, rename file to what it
really does now.

From: Jean-Christophe PLAGNIOL-VILLARD plagn...@jcrosoft.com
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD plagn...@jcrosoft.com
Signed-off-by: Dirk Behme dirk.be...@googlemail.com
---
 cpu/arm_cortexa8/omap3/Makefile |2 
 cpu/arm_cortexa8/omap3/interrupts.c |  138 
 cpu/arm_cortexa8/omap3/timer.c  |  138 
 3 files changed, 139 insertions(+), 139 deletions(-)

Index: u-boot-main/cpu/arm_cortexa8/omap3/Makefile
===
--- u-boot-main.orig/cpu/arm_cortexa8/omap3/Makefile
+++ u-boot-main/cpu/arm_cortexa8/omap3/Makefile
@@ -26,7 +26,7 @@ include $(TOPDIR)/config.mk
 LIB=  $(obj)lib$(SOC).a
 
 SOBJS  := lowlevel_init.o
-COBJS  := sys_info.o board.o clock.o interrupts.o mem.o syslib.o
+COBJS  := sys_info.o board.o clock.o timer.o mem.o syslib.o
 
 SRCS   := $(SOBJS:.o=.S) $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(COBJS) $(SOBJS))
Index: u-boot-main/cpu/arm_cortexa8/omap3/timer.c
===
--- /dev/null
+++ u-boot-main/cpu/arm_cortexa8/omap3/timer.c
@@ -0,0 +1,138 @@
+/*
+ * (C) Copyright 2008
+ * Texas Instruments
+ *
+ * Richard Woodruff r-woodru...@ti.com
+ * Syed Moahmmed Khasim kha...@ti.com
+ *
+ * (C) Copyright 2002
+ * Sysgo Real-Time Solutions, GmbH www.elinos.com
+ * Marius Groeger mgroe...@sysgo.de
+ * Alex Zuepke a...@sysgo.de
+ *
+ * (C) Copyright 2002
+ * Gary Jennejohn, DENX Software Engineering, g...@denx.de
+ *
+ * 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 common.h
+#include asm/io.h
+
+static ulong timestamp;
+static ulong lastinc;
+static gptimer_t *timer_base = (gptimer_t *)CONFIG_SYS_TIMERBASE;
+
+/*
+ * Nothing really to do with interrupts, just starts up a counter.
+ * We run the counter with 13MHz, divided by 8, resulting in timer
+ * frequency of 1.625MHz. With 32bit counter register, counter
+ * overflows in ~44min
+ */
+
+/* 13MHz / 8 = 1.625MHz */
+#define TIMER_CLOCK(V_SCLK / (2  CONFIG_SYS_PTV))
+#define TIMER_LOAD_VAL 0x
+
+int interrupt_init(void)
+{
+   /* start the counter ticking up, reload value on overflow */
+   writel(TIMER_LOAD_VAL, timer_base-tldr);
+   /* enable timer */
+   writel((CONFIG_SYS_PTV  2) | TCLR_PRE | TCLR_AR | TCLR_ST,
+   timer_base-tclr);
+
+   reset_timer_masked();   /* init the timestamp and lastinc value */
+
+   return 0;
+}
+
+/*
+ * timer without interrupts
+ */
+void reset_timer(void)
+{
+   reset_timer_masked();
+}
+
+ulong get_timer(ulong base)
+{
+   return get_timer_masked() - base;
+}
+
+void set_timer(ulong t)
+{
+   timestamp = t;
+}
+
+/* delay x useconds */
+void udelay(unsigned long usec)
+{
+   long tmo = usec * (TIMER_CLOCK / 1000) / 1000;
+   unsigned long now, last = readl(timer_base-tcrr);
+
+   while (tmo  0) {
+   now = readl(timer_base-tcrr);
+   if (last  now) /* count up timer overflow */
+   tmo -= TIMER_LOAD_VAL - last + now;
+   else
+   tmo -= now - last;
+   last = now;
+   }
+}
+
+void reset_timer_masked(void)
+{
+   /* reset time, capture current incrementer value time */
+   lastinc = readl(timer_base-tcrr) / (TIMER_CLOCK / CONFIG_SYS_HZ);
+   timestamp = 0;  /* start advancing time stamp from 0 */
+}
+
+ulong get_timer_masked(void)
+{
+   /* current tick value */
+   ulong now = readl(timer_base-tcrr) / (TIMER_CLOCK / CONFIG_SYS_HZ);
+
+   if (now = lastinc) /* normal mode (non roll) */
+   /* move stamp fordward with absoulte diff ticks */
+   timestamp += (now - lastinc);
+   else/* we have rollover of incrementer */
+   timestamp += ((TIMER_LOAD_VAL / (TIMER_CLOCK / CONFIG_SYS_HZ))
+   - lastinc) + now;
+   lastinc = now;
+   return timestamp;
+}
+
+/*
+ * This function is derived from PowerPC code (read timebase as long long).
+ * On ARM it just returns the timer value.
+ */