mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-12 13:55:32 +00:00
mtd: CFI: quirk for PF38F4476.
This chip reports CFI 1.3, but the CFI PRI is like CFI 1.1. Add a quirk to pass probe on this chip. This patch depends on "MTD: CFI 1.0 and CFI 1.1" Signed-off-by: Daniel Ribeiro <drwyrm@gmail.com> Acked-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
This commit is contained in:
parent
d6fed9e9fc
commit
ec2d0d8425
1 changed files with 12 additions and 0 deletions
|
@ -46,6 +46,7 @@
|
|||
#define MANUFACTURER_INTEL 0x0089
|
||||
#define I82802AB 0x00ad
|
||||
#define I82802AC 0x00ac
|
||||
#define PF38F4476 0x881c
|
||||
#define MANUFACTURER_ST 0x0020
|
||||
#define M50LPW080 0x002F
|
||||
#define M50FLW080A 0x0080
|
||||
|
@ -315,9 +316,18 @@ static struct cfi_fixup fixup_table[] = {
|
|||
{ 0, 0, NULL, NULL }
|
||||
};
|
||||
|
||||
static void cfi_fixup_major_minor(struct cfi_private *cfi,
|
||||
struct cfi_pri_intelext *extp)
|
||||
{
|
||||
if (cfi->mfr == MANUFACTURER_INTEL &&
|
||||
cfi->id == PF38F4476 && extp->MinorVersion == '3')
|
||||
extp->MinorVersion = '1';
|
||||
}
|
||||
|
||||
static inline struct cfi_pri_intelext *
|
||||
read_pri_intelext(struct map_info *map, __u16 adr)
|
||||
{
|
||||
struct cfi_private *cfi = map->fldrv_priv;
|
||||
struct cfi_pri_intelext *extp;
|
||||
unsigned int extp_size = sizeof(*extp);
|
||||
|
||||
|
@ -326,6 +336,8 @@ read_pri_intelext(struct map_info *map, __u16 adr)
|
|||
if (!extp)
|
||||
return NULL;
|
||||
|
||||
cfi_fixup_major_minor(cfi, extp);
|
||||
|
||||
if (extp->MajorVersion != '1' ||
|
||||
(extp->MinorVersion < '0' || extp->MinorVersion > '5')) {
|
||||
printk(KERN_ERR " Unknown Intel/Sharp Extended Query "
|
||||
|
|
Loading…
Reference in a new issue