Lines Matching defs:extp
119 static void cfi_tell_features(struct cfi_pri_intelext *extp)
122 printk(" Extended Query version %c.%c\n", extp->MajorVersion, extp->MinorVersion);
123 printk(" Feature/Command Support: %4.4X\n", extp->FeatureSupport);
124 printk(" - Chip Erase: %s\n", extp->FeatureSupport&1?"supported":"unsupported");
125 printk(" - Suspend Erase: %s\n", extp->FeatureSupport&2?"supported":"unsupported");
126 printk(" - Suspend Program: %s\n", extp->FeatureSupport&4?"supported":"unsupported");
127 printk(" - Legacy Lock/Unlock: %s\n", extp->FeatureSupport&8?"supported":"unsupported");
128 printk(" - Queued Erase: %s\n", extp->FeatureSupport&16?"supported":"unsupported");
129 printk(" - Instant block lock: %s\n", extp->FeatureSupport&32?"supported":"unsupported");
130 printk(" - Protection Bits: %s\n", extp->FeatureSupport&64?"supported":"unsupported");
131 printk(" - Page-mode read: %s\n", extp->FeatureSupport&128?"supported":"unsupported");
132 printk(" - Synchronous read: %s\n", extp->FeatureSupport&256?"supported":"unsupported");
133 printk(" - Simultaneous operations: %s\n", extp->FeatureSupport&512?"supported":"unsupported");
134 printk(" - Extended Flash Array: %s\n", extp->FeatureSupport&1024?"supported":"unsupported");
136 if (extp->FeatureSupport & (1<<i))
140 printk(" Supported functions after Suspend: %2.2X\n", extp->SuspendCmdSupport);
141 printk(" - Program after Erase Suspend: %s\n", extp->SuspendCmdSupport&1?"supported":"unsupported");
143 if (extp->SuspendCmdSupport & (1<<i))
147 printk(" Block Status Register Mask: %4.4X\n", extp->BlkStatusRegMask);
148 printk(" - Lock Bit Active: %s\n", extp->BlkStatusRegMask&1?"yes":"no");
149 printk(" - Lock-Down Bit Active: %s\n", extp->BlkStatusRegMask&2?"yes":"no");
151 if (extp->BlkStatusRegMask & (1<<i))
154 printk(" - EFA Lock Bit: %s\n", extp->BlkStatusRegMask&16?"yes":"no");
155 printk(" - EFA Lock-Down Bit: %s\n", extp->BlkStatusRegMask&32?"yes":"no");
157 if (extp->BlkStatusRegMask & (1<<i))
162 extp->VccOptimal >> 4, extp->VccOptimal & 0xf);
163 if (extp->VppOptimal)
165 extp->VppOptimal >> 4, extp->VppOptimal & 0xf);
174 struct cfi_pri_intelext *extp = cfi->cmdset_priv;
179 extp->FeatureSupport = cpu_to_le32(extp->FeatureSupport);
180 extp->BlkStatusRegMask = cpu_to_le16(extp->BlkStatusRegMask);
181 extp->ProtRegAddr = cpu_to_le16(extp->ProtRegAddr);
183 memcpy(&atmel_pri, extp, sizeof(atmel_pri));
184 memset((char *)extp + 5, 0, sizeof(*extp) - 5);
203 extp->FeatureSupport = features;
226 struct cfi_pri_intelext *extp = cfi->cmdset_priv;
230 extp->SuspendCmdSupport &= ~1;
281 struct cfi_pri_intelext *extp = cfi->cmdset_priv;
293 extp->FeatureSupport &= ~512;
372 struct cfi_pri_intelext *extp)
375 cfi->id == PF38F4476 && extp->MinorVersion == '3')
376 extp->MinorVersion = '1';
394 struct cfi_pri_intelext *extp;
396 unsigned int extp_size = sizeof(*extp);
399 extp = (struct cfi_pri_intelext *)cfi_read_pri(map, adr, extp_size, "Intel/Sharp");
400 if (!extp)
403 cfi_fixup_major_minor(cfi, extp);
405 if (extp->MajorVersion != '1' ||
406 (extp->MinorVersion < '0' || extp->MinorVersion > '5')) {
408 "version %c.%c.\n", extp->MajorVersion,
409 extp->MinorVersion);
410 kfree(extp);
415 extp->FeatureSupport = le32_to_cpu(extp->FeatureSupport);
416 extp->BlkStatusRegMask = le16_to_cpu(extp->BlkStatusRegMask);
417 extp->ProtRegAddr = le16_to_cpu(extp->ProtRegAddr);
419 if (extp->MinorVersion >= '0') {
423 if (extp->NumProtectionFields) {
425 (struct cfi_intelext_otpinfo *)&extp->extra[0];
427 extra_size += (extp->NumProtectionFields - 1) *
430 if (extp_size >= sizeof(*extp) + extra_size) {
434 for (i = 0; i < extp->NumProtectionFields - 1; i++) {
444 if (extp->MinorVersion >= '1') {
447 if (extp_size < sizeof(*extp) + extra_size)
449 extra_size += extp->extra[extra_size - 1];
452 if (extp->MinorVersion >= '3') {
457 if (extp_size < sizeof(*extp) + extra_size)
459 nb_parts = extp->extra[extra_size - 1];
462 if (extp->MinorVersion >= '4')
467 rinfo = (struct cfi_intelext_regioninfo *)&extp->extra[extra_size];
469 if (extp_size < sizeof(*extp) + extra_size)
476 if (extp->MinorVersion >= '4')
479 if (extp_size < sizeof(*extp) + extra_size) {
481 extp_size = sizeof(*extp) + extra_size;
482 kfree(extp);
493 return extp;
532 struct cfi_pri_intelext *extp;
534 extp = read_pri_intelext(map, adr);
535 if (!extp) {
541 cfi->cmdset_priv = extp;
547 cfi_tell_features(extp);
550 if(extp->SuspendCmdSupport & 1) {
700 struct cfi_pri_intelext *extp = cfi->cmdset_priv;
713 if (extp && extp->MajorVersion == '1' && extp->MinorVersion >= '3'
714 && extp->FeatureSupport & (1 << 9)) {
722 if (extp->NumProtectionFields)
723 offs = (extp->NumProtectionFields - 1) *
727 offs += extp->extra[offs+1]+2;
730 numregions = extp->extra[offs];
734 if (extp->MinorVersion >= '4')
741 rinfo = (struct cfi_intelext_regioninfo *)&extp->extra[offs];
752 if (extp->MinorVersion >= '4') {
754 prinfo = (struct cfi_intelext_programming_regioninfo *)&extp->extra[offs];
2123 struct cfi_pri_intelext *extp = cfi->cmdset_priv;
2161 mdelay = (!extp || !(extp->FeatureSupport & (1 << 5))) ? 1500 : 0;
2320 struct cfi_pri_intelext *extp = cfi->cmdset_priv;
2331 if (!extp || !(extp->FeatureSupport & 64) || !extp->NumProtectionFields)
2352 otp = (struct cfi_intelext_otpinfo *)&extp->extra[0];
2356 reg_prot_offset = extp->ProtRegAddr;
2358 reg_fact_size = 1 << extp->FactProtRegSize;
2360 reg_user_size = 1 << extp->UserProtRegSize;
2434 if (++field == extp->NumProtectionFields)
2527 struct cfi_pri_intelext *extp = cfi->cmdset_priv;
2533 && extp && (extp->FeatureSupport & (1 << 5)))
2621 struct cfi_pri_intelext *extp = cfi->cmdset_priv;
2644 && extp && (extp->FeatureSupport & (1 << 5)))