Commit 48e9912e authored by Richard Weinberger's avatar Richard Weinberger
Browse files

Merge tag 'cfi/for-5.8' of gitolite.kernel.org:pub/scm/linux/kernel/git/mtd/linux into mtd/next

CFI changes:

* Support the absence of protection registers for Intel CFI flashes
* Replace zero-length array with flexible-arrays
parents 3f554003 11399346
Loading
Loading
Loading
Loading
+8 −5
Original line number Diff line number Diff line
@@ -420,6 +420,7 @@ read_pri_intelext(struct map_info *map, __u16 adr)
		extra_size = 0;

		/* Protection Register info */
		if (extp->NumProtectionFields)
			extra_size += (extp->NumProtectionFields - 1) *
				      sizeof(struct cfi_intelext_otpinfo);
	}
@@ -695,12 +696,14 @@ static int cfi_intelext_partition_fixup(struct mtd_info *mtd,
	 */
	if (extp && extp->MajorVersion == '1' && extp->MinorVersion >= '3'
	    && extp->FeatureSupport & (1 << 9)) {
		int offs = 0;
		struct cfi_private *newcfi;
		struct flchip *chip;
		struct flchip_shared *shared;
		int offs, numregions, numparts, partshift, numvirtchips, i, j;
		int numregions, numparts, partshift, numvirtchips, i, j;

		/* Protection Register info */
		if (extp->NumProtectionFields)
			offs = (extp->NumProtectionFields - 1) *
			       sizeof(struct cfi_intelext_otpinfo);

+3 −3
Original line number Diff line number Diff line
@@ -138,7 +138,7 @@ struct cfi_ident {
	uint16_t InterfaceDesc;
	uint16_t MaxBufWriteSize;
	uint8_t  NumEraseRegions;
	uint32_t EraseRegionInfo[0]; /* Not host ordered */
	uint32_t EraseRegionInfo[]; /* Not host ordered */
} __packed;

/* Extended Query Structure for both PRI and ALT */
@@ -165,7 +165,7 @@ struct cfi_pri_intelext {
	uint16_t ProtRegAddr;
	uint8_t  FactProtRegSize;
	uint8_t  UserProtRegSize;
	uint8_t  extra[0];
	uint8_t  extra[];
} __packed;

struct cfi_intelext_otpinfo {
@@ -286,7 +286,7 @@ struct cfi_private {
	map_word sector_erase_cmd;
	unsigned long chipshift; /* Because they're of the same type */
	const char *im_name;	 /* inter_module name for cmdset_setup */
	struct flchip chips[0];  /* per-chip data structure for each chip */
	struct flchip chips[];  /* per-chip data structure for each chip */
};

uint32_t cfi_build_cmd_addr(uint32_t cmd_ofs,
+1 −1
Original line number Diff line number Diff line
@@ -24,7 +24,7 @@ struct lpddr_private {
	struct qinfo_chip *qinfo;
	int numchips;
	unsigned long chipshift;
	struct flchip chips[0];
	struct flchip chips[];
};

/* qinfo_query_info structure contains request information for