Lines Matching refs:extp

121 static void cfi_tell_features(struct cfi_pri_intelext *extp)
124 printk(" Extended Query version %c.%c\n", extp->MajorVersion, extp->MinorVersion);
125 printk(" Feature/Command Support: %4.4X\n", extp->FeatureSupport);
126 printk(" - Chip Erase: %s\n", extp->FeatureSupport&1?"supported":"unsupported");
127 printk(" - Suspend Erase: %s\n", extp->FeatureSupport&2?"supported":"unsupported");
128 printk(" - Suspend Program: %s\n", extp->FeatureSupport&4?"supported":"unsupported");
129 printk(" - Legacy Lock/Unlock: %s\n", extp->FeatureSupport&8?"supported":"unsupported");
130 printk(" - Queued Erase: %s\n", extp->FeatureSupport&16?"supported":"unsupported");
131 printk(" - Instant block lock: %s\n", extp->FeatureSupport&32?"supported":"unsupported");
132 printk(" - Protection Bits: %s\n", extp->FeatureSupport&64?"supported":"unsupported");
133 printk(" - Page-mode read: %s\n", extp->FeatureSupport&128?"supported":"unsupported");
134 printk(" - Synchronous read: %s\n", extp->FeatureSupport&256?"supported":"unsupported");
135 printk(" - Simultaneous operations: %s\n", extp->FeatureSupport&512?"supported":"unsupported");
136 printk(" - Extended Flash Array: %s\n", extp->FeatureSupport&1024?"supported":"unsupported");
138 if (extp->FeatureSupport & (1<<i))
142 printk(" Supported functions after Suspend: %2.2X\n", extp->SuspendCmdSupport);
143 printk(" - Program after Erase Suspend: %s\n", extp->SuspendCmdSupport&1?"supported":"unsupported");
145 if (extp->SuspendCmdSupport & (1<<i))
149 printk(" Block Status Register Mask: %4.4X\n", extp->BlkStatusRegMask);
150 printk(" - Lock Bit Active: %s\n", extp->BlkStatusRegMask&1?"yes":"no");
151 printk(" - Lock-Down Bit Active: %s\n", extp->BlkStatusRegMask&2?"yes":"no");
153 if (extp->BlkStatusRegMask & (1<<i))
156 printk(" - EFA Lock Bit: %s\n", extp->BlkStatusRegMask&16?"yes":"no");
157 printk(" - EFA Lock-Down Bit: %s\n", extp->BlkStatusRegMask&32?"yes":"no");
159 if (extp->BlkStatusRegMask & (1<<i))
164 extp->VccOptimal >> 4, extp->VccOptimal & 0xf);
165 if (extp->VppOptimal)
167 extp->VppOptimal >> 4, extp->VppOptimal & 0xf);
176 struct cfi_pri_intelext *extp = cfi->cmdset_priv;
181 extp->FeatureSupport = cpu_to_le32(extp->FeatureSupport);
182 extp->BlkStatusRegMask = cpu_to_le16(extp->BlkStatusRegMask);
183 extp->ProtRegAddr = cpu_to_le16(extp->ProtRegAddr);
185 memcpy(&atmel_pri, extp, sizeof(atmel_pri));
186 memset((char *)extp + 5, 0, sizeof(*extp) - 5);
205 extp->FeatureSupport = features;
228 struct cfi_pri_intelext *extp = cfi->cmdset_priv;
232 extp->SuspendCmdSupport &= ~1;
283 struct cfi_pri_intelext *extp = cfi->cmdset_priv;
295 extp->FeatureSupport &= ~512;
374 struct cfi_pri_intelext *extp)
377 cfi->id == PF38F4476 && extp->MinorVersion == '3')
378 extp->MinorVersion = '1';
396 struct cfi_pri_intelext *extp;
398 unsigned int extp_size = sizeof(*extp);
401 extp = (struct cfi_pri_intelext *)cfi_read_pri(map, adr, extp_size, "Intel/Sharp");
402 if (!extp)
405 cfi_fixup_major_minor(cfi, extp);
407 if (extp->MajorVersion != '1' ||
408 (extp->MinorVersion < '0' || extp->MinorVersion > '5')) {
410 "version %c.%c.\n", extp->MajorVersion,
411 extp->MinorVersion);
412 kfree(extp);
417 extp->FeatureSupport = le32_to_cpu(extp->FeatureSupport);
418 extp->BlkStatusRegMask = le16_to_cpu(extp->BlkStatusRegMask);
419 extp->ProtRegAddr = le16_to_cpu(extp->ProtRegAddr);
421 if (extp->MinorVersion >= '0') {
425 if (extp->NumProtectionFields) {
427 (struct cfi_intelext_otpinfo *)&extp->extra[0];
429 extra_size += (extp->NumProtectionFields - 1) *
432 if (extp_size >= sizeof(*extp) + extra_size) {
436 for (i = 0; i < extp->NumProtectionFields - 1; i++) {
446 if (extp->MinorVersion >= '1') {
449 if (extp_size < sizeof(*extp) + extra_size)
451 extra_size += extp->extra[extra_size - 1];
454 if (extp->MinorVersion >= '3') {
459 if (extp_size < sizeof(*extp) + extra_size)
461 nb_parts = extp->extra[extra_size - 1];
464 if (extp->MinorVersion >= '4')
469 rinfo = (struct cfi_intelext_regioninfo *)&extp->extra[extra_size];
471 if (extp_size < sizeof(*extp) + extra_size)
478 if (extp->MinorVersion >= '4')
481 if (extp_size < sizeof(*extp) + extra_size) {
483 extp_size = sizeof(*extp) + extra_size;
484 kfree(extp);
495 return extp;
534 struct cfi_pri_intelext *extp;
536 extp = read_pri_intelext(map, adr);
537 if (!extp) {
543 cfi->cmdset_priv = extp;
549 cfi_tell_features(extp);
552 if(extp->SuspendCmdSupport & 1) {
702 struct cfi_pri_intelext *extp = cfi->cmdset_priv;
715 if (extp && extp->MajorVersion == '1' && extp->MinorVersion >= '3'
716 && extp->FeatureSupport & (1 << 9)) {
724 if (extp->NumProtectionFields)
725 offs = (extp->NumProtectionFields - 1) *
729 offs += extp->extra[offs+1]+2;
732 numregions = extp->extra[offs];
736 if (extp->MinorVersion >= '4')
743 rinfo = (struct cfi_intelext_regioninfo *)&extp->extra[offs];
754 if (extp->MinorVersion >= '4') {
756 prinfo = (struct cfi_intelext_programming_regioninfo *)&extp->extra[offs];
2125 struct cfi_pri_intelext *extp = cfi->cmdset_priv;
2163 mdelay = (!extp || !(extp->FeatureSupport & (1 << 5))) ? 1500 : 0;
2322 struct cfi_pri_intelext *extp = cfi->cmdset_priv;
2333 if (!extp || !(extp->FeatureSupport & 64) || !extp->NumProtectionFields)
2354 otp = (struct cfi_intelext_otpinfo *)&extp->extra[0];
2358 reg_prot_offset = extp->ProtRegAddr;
2360 reg_fact_size = 1 << extp->FactProtRegSize;
2362 reg_user_size = 1 << extp->UserProtRegSize;
2436 if (++field == extp->NumProtectionFields)
2529 struct cfi_pri_intelext *extp = cfi->cmdset_priv;
2535 && extp && (extp->FeatureSupport & (1 << 5)))
2624 struct cfi_pri_intelext *extp = cfi->cmdset_priv;
2647 && extp && (extp->FeatureSupport & (1 << 5)))