/*
Common Flash Interface probe code.
(C) 2000 Red Hat. GPL'd.
- $Id: cfi_probe.c,v 1.79 2004/10/20 23:04:01 dwmw2 Exp $
+ $Id: cfi_probe.c,v 1.77 2004/07/14 08:38:44 dwmw2 Exp $
*/
#include <linux/config.h>
struct cfi_private *cfi)
{
int osf = cfi->interleave * cfi->device_type; // scale factor
- map_word val[3];
- map_word qry[3];
+ map_word val;
+ map_word qry;
- qry[0] = cfi_build_cmd('Q', map, cfi);
- qry[1] = cfi_build_cmd('R', map, cfi);
- qry[2] = cfi_build_cmd('Y', map, cfi);
+ qry = cfi_build_cmd('Q', map, cfi);
+ val = map_read(map, base + osf*0x10);
- val[0] = map_read(map, base + osf*0x10);
- val[1] = map_read(map, base + osf*0x11);
- val[2] = map_read(map, base + osf*0x12);
-
- if (!map_word_equal(map, qry[0], val[0]))
+ if (!map_word_equal(map, qry, val))
return 0;
- if (!map_word_equal(map, qry[1], val[1]))
+ qry = cfi_build_cmd('R', map, cfi);
+ val = map_read(map, base + osf*0x11);
+
+ if (!map_word_equal(map, qry, val))
return 0;
- if (!map_word_equal(map, qry[2], val[2]))
+ qry = cfi_build_cmd('Y', map, cfi);
+ val = map_read(map, base + osf*0x12);
+
+ if (!map_word_equal(map, qry, val))
return 0;
return 1; // nothing found
case P_ID_AMD_EXT:
return "AMD/Fujitsu Extended";
-
- case P_ID_WINBOND:
- return "Winbond Standard";
- case P_ID_ST_ADV:
- return "ST Advanced";
-
case P_ID_MITSUBISHI_STD:
return "Mitsubishi Standard";
case P_ID_MITSUBISHI_EXT:
return "Mitsubishi Extended";
-
- case P_ID_SST_PAGE:
- return "SST Page Write";
-
- case P_ID_INTEL_PERFORMANCE:
- return "Intel Performance Code";
-
- case P_ID_INTEL_DATA:
- return "Intel Data";
case P_ID_RESERVED:
return "Not Allowed / Reserved for Future Use";
printk(" - x32-only asynchronous interface\n");
break;
- case 4:
- printk(" - supports x16 and x32 via Word# with asynchronous interface\n");
- break;
-
case 65535:
printk(" - Not Allowed / Reserved\n");
break;