diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-12-17 12:59:26 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-12-17 12:59:26 -0500 |
commit | d6666be6f0c43efb9475d1d35fbef9f8be61b7b1 (patch) | |
tree | f544aec1dfdffa0c6b6d381f8e6710cad7e16074 /drivers/memory | |
parent | 0ea90b9e79cff66934119e6dd8fa8e9d0f7d005a (diff) | |
parent | 68f29815034e9dc9ed53cad85946c32b07adc8cc (diff) |
Merge tag 'for-linus-20141215' of git://git.infradead.org/linux-mtd
Pull MTD updates from Brian Norris:
"Summary:
- Add device tree support for DoC3
- SPI NOR:
Refactoring, for better layering between spi-nor.c and its
driver users (e.g., m25p80.c)
New flash device support
Support 6-byte ID strings
- NAND:
New NAND driver for Allwinner SoC's (sunxi)
GPMI NAND: add support for raw (no ECC) access, for testing
purposes
Add ATO manufacturer ID
A few odd driver fixes
- MTD tests:
Allow testers to compensate for OOB bitflips in oobtest
Fix a torturetest regression
- nandsim: Support longer ID byte strings
And more"
* tag 'for-linus-20141215' of git://git.infradead.org/linux-mtd: (63 commits)
mtd: tests: abort torturetest on erase errors
mtd: physmap_of: fix potential NULL dereference
mtd: spi-nor: allow NULL as chip name and try to auto detect it
mtd: nand: gpmi: add raw oob access functions
mtd: nand: gpmi: add proper raw access support
mtd: nand: gpmi: add gpmi_copy_bits function
mtd: spi-nor: factor out write_enable() for erase commands
mtd: spi-nor: add support for s25fl128s
mtd: spi-nor: remove the jedec_id/ext_id
mtd: spi-nor: add id/id_len for flash_info{}
mtd: nand: correct the comment of function nand_block_isreserved()
jffs2: Drop bogus if in comment
mtd: atmel_nand: replace memcpy32_toio/memcpy32_fromio with memcpy
mtd: cafe_nand: drop duplicate .write_page implementation
mtd: m25p80: Add support for serial flash Spansion S25FL132K
MTD: m25p80: fix inconsistency in m25p_ids compared to spi_nor_ids
mtd: spi-nor: improve wait-till-ready timeout loop
mtd: delete unnecessary checks before two function calls
mtd: nand: omap: Fix NAND enumeration on 3430 LDP
mtd: nand: add ATO manufacturer info
...
Diffstat (limited to 'drivers/memory')
-rw-r--r-- | drivers/memory/fsl_ifc.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/drivers/memory/fsl_ifc.c b/drivers/memory/fsl_ifc.c index 3d5d792d5cb2..410c39749872 100644 --- a/drivers/memory/fsl_ifc.c +++ b/drivers/memory/fsl_ifc.c | |||
@@ -61,7 +61,7 @@ int fsl_ifc_find(phys_addr_t addr_base) | |||
61 | if (!fsl_ifc_ctrl_dev || !fsl_ifc_ctrl_dev->regs) | 61 | if (!fsl_ifc_ctrl_dev || !fsl_ifc_ctrl_dev->regs) |
62 | return -ENODEV; | 62 | return -ENODEV; |
63 | 63 | ||
64 | for (i = 0; i < ARRAY_SIZE(fsl_ifc_ctrl_dev->regs->cspr_cs); i++) { | 64 | for (i = 0; i < fsl_ifc_ctrl_dev->banks; i++) { |
65 | u32 cspr = in_be32(&fsl_ifc_ctrl_dev->regs->cspr_cs[i].cspr); | 65 | u32 cspr = in_be32(&fsl_ifc_ctrl_dev->regs->cspr_cs[i].cspr); |
66 | if (cspr & CSPR_V && (cspr & CSPR_BA) == | 66 | if (cspr & CSPR_V && (cspr & CSPR_BA) == |
67 | convert_ifc_address(addr_base)) | 67 | convert_ifc_address(addr_base)) |
@@ -213,7 +213,7 @@ static irqreturn_t fsl_ifc_ctrl_irq(int irqno, void *data) | |||
213 | static int fsl_ifc_ctrl_probe(struct platform_device *dev) | 213 | static int fsl_ifc_ctrl_probe(struct platform_device *dev) |
214 | { | 214 | { |
215 | int ret = 0; | 215 | int ret = 0; |
216 | 216 | int version, banks; | |
217 | 217 | ||
218 | dev_info(&dev->dev, "Freescale Integrated Flash Controller\n"); | 218 | dev_info(&dev->dev, "Freescale Integrated Flash Controller\n"); |
219 | 219 | ||
@@ -231,6 +231,15 @@ static int fsl_ifc_ctrl_probe(struct platform_device *dev) | |||
231 | goto err; | 231 | goto err; |
232 | } | 232 | } |
233 | 233 | ||
234 | version = ioread32be(&fsl_ifc_ctrl_dev->regs->ifc_rev) & | ||
235 | FSL_IFC_VERSION_MASK; | ||
236 | banks = (version == FSL_IFC_VERSION_1_0_0) ? 4 : 8; | ||
237 | dev_info(&dev->dev, "IFC version %d.%d, %d banks\n", | ||
238 | version >> 24, (version >> 16) & 0xf, banks); | ||
239 | |||
240 | fsl_ifc_ctrl_dev->version = version; | ||
241 | fsl_ifc_ctrl_dev->banks = banks; | ||
242 | |||
234 | /* get the Controller level irq */ | 243 | /* get the Controller level irq */ |
235 | fsl_ifc_ctrl_dev->irq = irq_of_parse_and_map(dev->dev.of_node, 0); | 244 | fsl_ifc_ctrl_dev->irq = irq_of_parse_and_map(dev->dev.of_node, 0); |
236 | if (fsl_ifc_ctrl_dev->irq == NO_IRQ) { | 245 | if (fsl_ifc_ctrl_dev->irq == NO_IRQ) { |