aboutsummaryrefslogtreecommitdiffstats
path: root/package/boot/uboot-lantiq/patches/0007-sf-eon-use-16-bit-ID-for-comparison.patch
blob: 6836674fed51cd4a03e005ae13ae64c7381a854b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
From d32f45357f0475a2f810752eeb9412fe692e1c0a Mon Sep 17 00:00:00 2001
From: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
Date: Wed, 7 Nov 2012 14:09:21 +0100
Subject: sf: eon: use 16 bit ID for comparison

Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>

--- a/drivers/mtd/spi/eon.c
+++ b/drivers/mtd/spi/eon.c
@@ -11,19 +11,19 @@
 #include "spi_flash_internal.h"
 
 struct eon_spi_flash_params {
-	u8 idcode1;
+	u16 idcode;
 	u16 nr_sectors;
 	const char *name;
 };
 
 static const struct eon_spi_flash_params eon_spi_flash_table[] = {
 	{
-		.idcode1 = 0x16,
+		.idcode = 0x3016,
 		.nr_sectors = 1024,
 		.name = "EN25Q32B",
 	},
 	{
-		.idcode1 = 0x18,
+		.idcode = 0x3018,
 		.nr_sectors = 4096,
 		.name = "EN25Q128",
 	},
@@ -33,10 +33,11 @@ int spi_flash_probe_eon(struct spi_flash
 {
 	const struct eon_spi_flash_params *params;
 	unsigned int i;
+	u16 id = idcode[2] | idcode[1] << 8;
 
 	for (i = 0; i < ARRAY_SIZE(eon_spi_flash_table); ++i) {
 		params = &eon_spi_flash_table[i];
-		if (params->idcode1 == idcode[2])
+		if (params->idcode == id)
 			break;
 	}