1
0
mirror of git://projects.qi-hardware.com/openwrt-xburst.git synced 2025-04-21 12:27:27 +03:00

changed Makefile and profiles, added patches for kernel 2.6.24

(stable-branch of Openmoko)


git-svn-id: svn://svn.openwrt.org/openwrt/trunk@13613 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
mirko
2008-12-12 11:58:53 +00:00
parent d9f49b62b2
commit fc54b9bf15
589 changed files with 178974 additions and 18 deletions

View File

@@ -0,0 +1,71 @@
From 54524f4531c8b262431b794fea610d81bb351c86 Mon Sep 17 00:00:00 2001
From: Harald Welte <laforge@openmoko.org>
Date: Tue, 21 Oct 2008 08:17:07 +0100
Subject: [PATCH] S3C24xx NAND: allow for faster timings
Tacls can actually be zero with some NAND flash devices, so we need
to permit this.
Also, the TACLS register actually specifies the actual number of
HCLK clocks, where the TWRPH0 and TWRPH1 registers are auto-incremented
by one HCLK clock in hardware.
Signed-off-by: Harald Welte <laforge@openmoko.org>
---
drivers/mtd/nand/s3c2410.c | 13 +++++++------
1 files changed, 7 insertions(+), 6 deletions(-)
diff --git a/drivers/mtd/nand/s3c2410.c b/drivers/mtd/nand/s3c2410.c
index 4413d76..eeb48ed 100644
--- a/drivers/mtd/nand/s3c2410.c
+++ b/drivers/mtd/nand/s3c2410.c
@@ -158,6 +158,10 @@ static int s3c_nand_calc_rate(int wanted, unsigned long clk, int max)
{
int result;
+ /* Tacls can be 0ns in some cases */
+ if (wanted == 0)
+ return 0;
+
result = (wanted * clk) / NS_IN_KHZ;
result++;
@@ -168,9 +172,6 @@ static int s3c_nand_calc_rate(int wanted, unsigned long clk, int max)
return -1;
}
- if (result < 1)
- result = 1;
-
return result;
}
@@ -202,7 +203,7 @@ static int s3c2410_nand_inithw(struct s3c2410_nand_info *info,
twrph1 = 8;
}
- if (tacls < 0 || twrph0 < 0 || twrph1 < 0) {
+ if (tacls < 0 || twrph0 < 1 || twrph1 < 1) {
dev_err(info->device, "cannot get suitable timings\n");
return -EINVAL;
}
@@ -213,14 +214,14 @@ static int s3c2410_nand_inithw(struct s3c2410_nand_info *info,
switch (info->cpu_type) {
case TYPE_S3C2410:
cfg = S3C2410_NFCONF_EN;
- cfg |= S3C2410_NFCONF_TACLS(tacls - 1);
+ cfg |= S3C2410_NFCONF_TACLS(tacls);
cfg |= S3C2410_NFCONF_TWRPH0(twrph0 - 1);
cfg |= S3C2410_NFCONF_TWRPH1(twrph1 - 1);
break;
case TYPE_S3C2440:
case TYPE_S3C2412:
- cfg = S3C2440_NFCONF_TACLS(tacls - 1);
+ cfg = S3C2440_NFCONF_TACLS(tacls);
cfg |= S3C2440_NFCONF_TWRPH0(twrph0 - 1);
cfg |= S3C2440_NFCONF_TWRPH1(twrph1 - 1);
--
1.5.6.5