mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git
synced 2026-05-02 18:17:50 -04:00
Merge tag 'mtd/for-6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux
Pull MTD updates from Miquel Raynal:
"MTD:
- Simon Glass wanted to support binman's output properties in order
to check their validity using the binding checks and proposed
changes with the missing properties as well as a binman compatible.
- Krzysztof Kozlowski on his side shared a new yaml for describing
Samsung's OneNAND interface.
- The interface with NVMEM has also been slightly improved/fixed,
especially now that OTP are also supported in the NAND subsystem.
- Along with these changes, small cleanups have also been contributed
around ID tables, structure sizes, arithmetic checks and comments.
Raw NAND subsystem:
- Two small fixes, one in the Hynix vendor code for properly
returning an error which might have been ignored and another in the
Davinci driver to properly synchronize the controller with the gpio
domain.
SPI NOR subsystem:
- SPI NOR now uses div_u64() instead of div64_u64() in places where
the divisor is 32 bits. Many 32 bit architectures can optimize this
variant better than a full 64 bit divide"
* tag 'mtd/for-6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux:
mtd: spi-nor: replace unnecessary div64_u64() with div_u64()
mtd: mchp23k256: drop unneeded MODULE_ALIAS
dt-bindings: mtd: fixed-partition: Add binman compatibles
dt-bindings: mtd: fixed-partitions: Add alignment properties
mtd: maps: sa1100-flash: Prefer struct_size over open coded arithmetic
mtd: core: Align comment with an action in mtd_otp_nvmem_add()
mtd: rawnand: hynix: fixed typo
mtd: rawnand: davinci: Add dummy read after sending command
mtd: partitions: redboot: Added conversion of operands to a larger type
dt-bindings: mtd: Add Samsung S5Pv210 OneNAND
mtd: core: Don't fail mtd_otp_nvmem_add() if OTP is unsupported
mtd: core: Report error if first mtd_otp_size() call fails in mtd_otp_nvmem_add()
This commit is contained in:
@@ -257,4 +257,3 @@ module_spi_driver(mchp23k256_driver);
|
||||
MODULE_DESCRIPTION("MTD SPI driver for MCHP23K256 RAM chips");
|
||||
MODULE_AUTHOR("Andrew Lunn <andre@lunn.ch>");
|
||||
MODULE_LICENSE("GPL v2");
|
||||
MODULE_ALIAS("spi:mchp23k256");
|
||||
|
||||
@@ -153,7 +153,7 @@ static struct sa_info *sa1100_setup_mtd(struct platform_device *pdev,
|
||||
struct flash_platform_data *plat)
|
||||
{
|
||||
struct sa_info *info;
|
||||
int nr, size, i, ret = 0;
|
||||
int nr, i, ret = 0;
|
||||
|
||||
/*
|
||||
* Count number of devices.
|
||||
@@ -167,12 +167,10 @@ static struct sa_info *sa1100_setup_mtd(struct platform_device *pdev,
|
||||
goto out;
|
||||
}
|
||||
|
||||
size = sizeof(struct sa_info) + sizeof(struct sa_subdev_info) * nr;
|
||||
|
||||
/*
|
||||
* Allocate the map_info structs in one go.
|
||||
*/
|
||||
info = kzalloc(size, GFP_KERNEL);
|
||||
info = kzalloc(struct_size(info, subdev, nr), GFP_KERNEL);
|
||||
if (!info) {
|
||||
ret = -ENOMEM;
|
||||
goto out;
|
||||
|
||||
@@ -956,8 +956,10 @@ static int mtd_otp_nvmem_add(struct mtd_info *mtd)
|
||||
|
||||
if (mtd->_get_user_prot_info && mtd->_read_user_prot_reg) {
|
||||
size = mtd_otp_size(mtd, true);
|
||||
if (size < 0)
|
||||
return size;
|
||||
if (size < 0) {
|
||||
err = size;
|
||||
goto err;
|
||||
}
|
||||
|
||||
if (size > 0) {
|
||||
nvmem = mtd_otp_nvmem_register(mtd, "user-otp", size,
|
||||
@@ -1012,6 +1014,9 @@ static int mtd_otp_nvmem_add(struct mtd_info *mtd)
|
||||
|
||||
err:
|
||||
nvmem_unregister(mtd->otp_user_nvmem);
|
||||
/* Don't report error if OTP is not supported. */
|
||||
if (err == -EOPNOTSUPP)
|
||||
return 0;
|
||||
return dev_err_probe(dev, err, "Failed to register OTP NVMEM device\n");
|
||||
}
|
||||
|
||||
|
||||
@@ -671,8 +671,11 @@ static int davinci_nand_exec_instr(struct davinci_nand_info *info,
|
||||
break;
|
||||
}
|
||||
|
||||
if (instr->delay_ns)
|
||||
if (instr->delay_ns) {
|
||||
/* Dummy read to be sure that command is sent before ndelay starts */
|
||||
davinci_nand_readl(info, 0);
|
||||
ndelay(instr->delay_ns);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -401,7 +401,7 @@ static int hynix_nand_rr_init(struct nand_chip *chip)
|
||||
if (ret)
|
||||
pr_warn("failed to initialize read-retry infrastructure");
|
||||
|
||||
return 0;
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void hynix_nand_extract_oobsize(struct nand_chip *chip,
|
||||
|
||||
@@ -102,7 +102,7 @@ nogood:
|
||||
offset -= master->erasesize;
|
||||
}
|
||||
} else {
|
||||
offset = directory * master->erasesize;
|
||||
offset = (unsigned long) directory * master->erasesize;
|
||||
while (mtd_block_isbad(master, offset)) {
|
||||
offset += master->erasesize;
|
||||
if (offset == master->size)
|
||||
|
||||
@@ -2893,7 +2893,7 @@ static int spi_nor_late_init_params(struct spi_nor *nor)
|
||||
spi_nor_init_default_locking_ops(nor);
|
||||
|
||||
if (params->n_banks > 1)
|
||||
params->bank_size = div64_u64(params->size, params->n_banks);
|
||||
params->bank_size = div_u64(params->size, params->n_banks);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -3406,7 +3406,7 @@ static int spi_nor_set_mtd_eraseregions(struct spi_nor *nor)
|
||||
return -EINVAL;
|
||||
|
||||
mtd_region[i].erasesize = erasesize;
|
||||
mtd_region[i].numblocks = div64_ul(region[i].size, erasesize);
|
||||
mtd_region[i].numblocks = div_u64(region[i].size, erasesize);
|
||||
mtd_region[i].offset = region[i].offset;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user