24 Aug, 2018

1 commit

  • Pull UBI/UBIFS updates from Richard Weinberger:

    - Year 2038 preparations

    - New UBI feature to skip CRC checks of static volumes

    - A new Kconfig option to disable xattrs in UBIFS

    - Lots of fixes in UBIFS, found by our new test framework

    * tag 'upstream-4.19-rc1' of git://git.infradead.org/linux-ubifs: (21 commits)
    ubifs: Set default assert action to read-only
    ubifs: Allow setting assert action as mount parameter
    ubifs: Rework ubifs_assert()
    ubifs: Pass struct ubifs_info to ubifs_assert()
    ubifs: Turn two ubifs_assert() into a WARN_ON()
    ubi: expose the volume CRC check skip flag
    ubi: provide a way to skip CRC checks
    ubifs: Use kmalloc_array()
    ubifs: Check data node size before truncate
    Revert "UBIFS: Fix potential integer overflow in allocation"
    ubifs: Add comment on c->commit_sem
    ubifs: introduce Kconfig symbol for xattr support
    ubifs: use swap macro in swap_dirty_idx
    ubifs: tnc: use monotonic znode timestamp
    ubifs: use timespec64 for inode timestamps
    ubifs: xattr: Don't operate on deleted inodes
    ubifs: gc: Fix typo
    ubifs: Fix memory leak in lprobs self-check
    ubi: Initialize Fastmap checkmapping correctly
    ubifs: Fix synced_i_size calculation for xattr inodes
    ...

    Linus Torvalds
     

19 Aug, 2018

1 commit

  • Pull char/misc driver updates from Greg KH:
    "Here is the bit set of char/misc drivers for 4.19-rc1

    There is a lot here, much more than normal, seems like everyone is
    writing new driver subsystems these days... Anyway, major things here
    are:

    - new FSI driver subsystem, yet-another-powerpc low-level hardware
    bus

    - gnss, finally an in-kernel GPS subsystem to try to tame all of the
    crazy out-of-tree drivers that have been floating around for years,
    combined with some really hacky userspace implementations. This is
    only for GNSS receivers, but you have to start somewhere, and this
    is great to see.

    Other than that, there are new slimbus drivers, new coresight drivers,
    new fpga drivers, and loads of DT bindings for all of these and
    existing drivers.

    All of these have been in linux-next for a while with no reported
    issues"

    * tag 'char-misc-4.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (255 commits)
    android: binder: Rate-limit debug and userspace triggered err msgs
    fsi: sbefifo: Bump max command length
    fsi: scom: Fix NULL dereference
    misc: mic: SCIF Fix scif_get_new_port() error handling
    misc: cxl: changed asterisk position
    genwqe: card_base: Use true and false for boolean values
    misc: eeprom: assignment outside the if statement
    uio: potential double frees if __uio_register_device() fails
    eeprom: idt_89hpesx: clean up an error pointer vs NULL inconsistency
    misc: ti-st: Fix memory leak in the error path of probe()
    android: binder: Show extra_buffers_size in trace
    firmware: vpd: Fix section enabled flag on vpd_section_destroy
    platform: goldfish: Retire pdev_bus
    goldfish: Use dedicated macros instead of manual bit shifting
    goldfish: Add missing includes to goldfish.h
    mux: adgs1408: new driver for Analog Devices ADGS1408/1409 mux
    dt-bindings: mux: add adi,adgs1408
    Drivers: hv: vmbus: Cleanup synic memory free path
    Drivers: hv: vmbus: Remove use of slow_virt_to_phys()
    Drivers: hv: vmbus: Reset the channel callback in vmbus_onoffer_rescind()
    ...

    Linus Torvalds
     

15 Aug, 2018

6 commits

  • Now that we have the logic for skipping CRC check for static UBI volumes
    in the core, let's expose it to users.

    This makes use of a padding byte in the volume description data
    structure as a flag. This flag only tell for now whether we should skip
    the CRC check of a volume.

    This checks the UBI volume for which we are trying to skip the CRC check
    is static.

    Let's also make sure that the flags passed to verify_mkvol_req are
    valid.

    We voluntarily do not take into account the skip_check flag in
    vol_cdev_write() as we want to make sure what we wrote was correctly
    written.

    Suggested-by: Boris Brezillon
    Signed-off-by: Quentin Schulz
    Reviewed-by: Boris Brezillon
    Signed-off-by: Richard Weinberger

    Quentin Schulz
     
  • Some users of static UBI volumes implement their own integrity check,
    thus making the volume CRC check done at open time useless. For
    instance, this is the case when one use the ubiblock + dm-verity +
    squashfs combination, where dm-verity already checks integrity of the
    block device but this time at the block granularity instead of verifying
    the whole volume.

    Skipping this test drastically improves the boot-time.

    Suggested-by: Boris Brezillon
    Signed-off-by: Quentin Schulz
    Reviewed-by: Boris Brezillon
    Reviewed-by: Richard Weinberger
    Signed-off-by: Richard Weinberger

    Quentin Schulz
     
  • We cannot do it last, otherwithse it will be skipped for dynamic
    volumes.

    Reported-by: Lachmann, Juergen
    Fixes: 34653fd8c46e ("ubi: fastmap: Check each mapping only once")
    Signed-off-by: Richard Weinberger

    Richard Weinberger
     
  • Pull sound updates from Takashi Iwai:
    "It's been busy summer weeks and hence lots of changes, partly for a
    few new drivers and partly for a wide range of fixes.

    Here are highlights:

    ALSA Core:
    - Fix rawmidi buffer management, code cleanup / refactoring
    - Fix the SG-buffer page handling with incorrect fallback size
    - Fix the stall at virmidi trigger callback with a large buffer; also
    offloading and code-refactoring along with it
    - Various ALSA sequencer code cleanups

    ASoC:
    - Deploy the standard snd_pcm_stop_xrun() helper in several drivers
    - Support for providing name prefixes to generic component nodes
    - Quite a few fixes for DPCM as it gains a bit wider use and more
    robust testing
    - Generalization of the DIO2125 support to a simple amplifier driver
    - Accessory detection support for the audio graph card
    - DT support for PXA AC'97 devices
    - Quirks for a number of new x86 systems
    - Support for AM Logic Meson, Everest ES7154, Intel systems with
    RT5682, Qualcomm QDSP6 and WCD9335, Realtek RT5682 and TI TAS5707

    HD-audio:
    - Code refactoring in HD-audio ext codec codes to drop own classes;
    preliminary works for the upcoming legacy codec support
    - Generalized DRM audio component for the upcoming radeon / amdgpu
    support
    - Unification of mic mute-LED and GPIO support for various codecs
    - Further improvement of CA0132 codec support including Recon3D
    - Proper vga_switcheroo handling for AMD i-GPU
    - Update of model list in documentation
    - Fixups for another HP Spectre x360, Conexant codecs, power-save
    blacklist update

    USB-audio:
    - Fix the invalid sample rate setup with external clock
    - Support of UAC3 selector units and processing units
    - Basic UAC3 power-domain support
    - Support for Encore mDSD and Thesycon-based DSD devices
    - Preparation for future complete callback changes

    Firewire:
    - Add support for MOTU Traveler

    Misc:
    - The endianess notation fixes in various drivers
    - Add fall-through comment in lots of drivers
    - Various sparse warning fixes, e.g. about PCM format types"

    * tag 'sound-4.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (529 commits)
    ASoC: adav80x: mark expected switch fall-through
    ASoC: da7219: Add delays to capture path to remove DC offset noise
    ALSA: usb-audio: Mark expected switch fall-through
    ALSA: mixart: Mark expected switch fall-through
    ALSA: opl3: Mark expected switch fall-through
    ALSA: hda/ca0132 - Add exit commands for Recon3D
    ALSA: hda/ca0132 - Change mixer controls for Recon3D
    ALSA: hda/ca0132 - Add Recon3D input and output select commands
    ALSA: hda/ca0132 - Add DSP setup defaults for Recon3D
    ALSA: hda/ca0132 - Add Recon3D startup functions and setup
    ALSA: hda/ca0132 - Add bool variable to enable/disable pci region2 mmio
    ALSA: hda/ca0132 - Add Recon3D pincfg
    ALSA: hda/ca0132 - Add quirk ID and enum for Recon3D
    ALSA: hda/ca0132 - Add alt_functions unsolicited response
    ALSA: hda/ca0132 - Clean up ca0132_init function.
    ALSA: hda/ca0132 - Create mmio gpio function to make code clearer
    ASoC: wm_adsp: Make DSP name configurable by codec driver
    ASoC: wm_adsp: Declare firmware controls from codec driver
    ASoC: max98373: Added software reset register to readable registers
    ASoC: wm_adsp: Correct DSP pointer for preloader control
    ...

    Linus Torvalds
     
  • Pull spi updates from Mark Brown:
    "Quite an active release for the SPI subsystem, lots of small updates
    and fixes scattered about with highlights including:

    - 3-wire support in the GPIO driver.

    - support for setting a custom memory name in the memory mapped flash
    drivers.

    - support for extended mode in the Freescale DSPI controller.

    - support for the non-standard integration with the Microsemi Ocelot
    platform in the DesignWare driver.

    - new driver for the SocioNext UniPhier"

    * tag 'spi-v4.19' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: (47 commits)
    spi: davinci: fix a NULL pointer dereference
    spi: spi-mem: Constify spi_mem->name
    mtd: m25p80: Call spi_mem_get_name() to let controller set a custom name
    spi: spi-mem: Extend the SPI mem interface to set a custom memory name
    spi: spi-mem: Fix a typo in the documentation of struct spi_mem
    spi: uniphier: remove unnecessary include headers
    spi: spi-gpio: add SPI_3WIRE support
    spi: add flags parameter to txrx_word function pointers
    spi: add SPI controller driver for UniPhier SoC
    spi: add DT bindings for UniPhier SPI controller
    spi: dw: document Microsemi integration
    spi: img-spfi: Set device select bits for SPFI port state
    spi: omap2-mcspi: remove several redundant variables
    spi: dw-mmio: add MSCC Ocelot support
    spi: dw: export dw_spi_set_cs
    spi: spi-fsl-espi: Log fifo counters on error
    spi: imx: Use the longuest possible burst size when in dynamic_burst
    spi: imx: remove unnecessary check in spi_imx_can_dma
    spi: imx: Use correct number of bytes per words
    spi: imx: Use dynamic bursts only when bits_per_word is 8, 16 or 32
    ...

    Linus Torvalds
     
  • Pull mtd updates from Boris Brezillon:
    "JFFS2 changes:
    - Support 64-bit timestamps

    MTD core changes:
    - Support sub-partitions
    - Clarify mtd_oob_ops documentation
    - Make Kconfig formatting consistent
    - Fix potential overflows in mtdchar_{write,read}()
    - Fallback to ->_{read,write}() when ->_{read,write}_oob() is missing
    and no OOB data were requested
    - Remove VLA usage in the bch lib

    MTD driver changes:
    - Use mtd_device_register() instead of mtd_device_parse_register()
    where applicable
    - Use proper printk format to print physical addresses in the
    solutionengine driver
    - Add missing mtd_set_of_node() call in the powernv driver
    - Remove unneeded variables in a few drivers
    - Plug the TRX part parser to the DT partition parsers logic
    - Check ioremap_cache() return code in the gpio-addr-flash driver
    - Stop using VMLINUX_SYMBOL_STR() in gen_probe.c

    SPI NOR core changes:
    - Apply reset hacks only when reset is explicitly marked as broken in
    the DT

    SPI NOR driver changes:
    - Minor cleanup/fixes in the m25p80 driver
    - Release flash_np in the nxp-spifi driver
    - Add suspend/resume hooks to the atmel-quadspi driver
    - Include gpio/consumer.h instead of gpio.h in the atmel-quadspi
    driver
    - Use %pK instead of %p in the stm32-quadspi driver
    - Improve timeout handling in the cadence-quadspi driver
    - Use mtd_device_register() instead of mtd_device_parse_register() in
    the intel-spi driver

    NAND core changes:
    - Add the SPI-NAND framework.
    - Create a helper to find the best ECC configuration.
    - Create NAND controller operations.
    - Allocate dynamically ONFI parameters structure.
    - Add defines for ONFI version bits.
    - Add manufacturer fixup for ONFI parameter page.
    - Add an option to specify NAND chip as a boot device.
    - Add Reed-Solomon error correction algorithm.
    - Better name for the controller structure.
    - Remove unused caller_is_module() definition.
    - Make subop helpers return unsigned values.
    - Expose _notsupp() helpers for raw page accessors.
    - Add default values for dynamic timings.
    - Kill the chip->scan_bbt() hook.
    - Rename nand_default_bbt() into nand_create_bbt().
    - Start to clean the nand_chip structure.
    - Remove stale prototype from rawnand.h.

    Raw NAND controllers drivers changes:
    - Qcom: structuring cleanup.
    - Denali: use core helper to find the best ECC configuration.
    - Possible build of almost all drivers by adding a dependency on
    COMPILE_TEST for almost all of them in Kconfig, implies various
    fixes, Kconfig cleanup, GPIO headers inclusion cleanup, and even
    changes in sparc64 and ia64 architectures.
    - Clean the ->probe() functions error path of a lot of drivers.
    - Migrate all drivers to use nand_scan() instead of
    nand_scan_ident()/nand_scan_tail() pair.
    - Use mtd_device_register() where applicable to simplify the code.
    - Marvell:
    * Handle on-die ECC.
    * Better clocks handling.
    * Remove bogus comment.
    * Add suspend and resume support.
    - Tegra: add NAND controller driver.
    - Atmel:
    * Add module param to avoid using dma.
    * Drop Wenyou Yang from MAINTAINERS.
    - Denali: optimize timings handling.
    - FSMC: Stop using chip->read_buf().
    - FSL:
    * Switch to SPDX license tag identifiers.
    * Fix qualifiers in MXC init functions.

    Raw NAND chip drivers changes:
    - Micron:
    * Add fixup for ONFI revision.
    * Update ecc_stats.corrected.
    * Make ECC activation stateful.
    * Avoid enabling/disabling ECC when it can't be disabled.
    * Get the actual number of bitflips.
    * Allow forced on-die ECC.
    * Support 8/512 on-die ECC.
    * Fix on-die ECC detection logic.
    - Hynix:
    * Fix decoding the OOB size on H27UCG8T2BTR.
    * Use ->exec_op() in hynix_nand_reg_write_op()"

    * tag 'mtd/for-4.19' of git://git.infradead.org/linux-mtd: (188 commits)
    mtd: rawnand: atmel: Select GENERIC_ALLOCATOR
    MAINTAINERS: drop Wenyou Yang from Atmel NAND driver support
    mtd: rawnand: allocate dynamically ONFI parameters during detection
    mtd: spi-nor: only apply reset hacks to broken hardware
    mtd: spi-nor: cadence-quadspi: fix timeout handling
    mtd: spi-nor: atmel-quadspi: Include gpio/consumer.h instead of gpio.h
    mtd: spi-nor: intel-spi: use mtd_device_register()
    mtd: spi-nor: stm32-quadspi: replace "%p" with "%pK"
    mtd: spi-nor: atmel-quadspi: add suspend/resume hooks
    mtd: rawnand: allocate model parameter dynamically
    mtd: rawnand: do not export nand_scan_[ident|tail]() anymore
    mtd: rawnand: txx9ndfmc: convert driver to nand_scan()
    mtd: rawnand: txx9ndfmc: clarify ECC parameters assignation
    mtd: rawnand: tegra: convert driver to nand_scan()
    mtd: rawnand: jz4740: convert driver to nand_scan()
    mtd: rawnand: jz4740: group nand_scan_{ident, tail} calls
    mtd: rawnand: jz4740: fix probe function error path
    mtd: rawnand: docg4: convert driver to nand_scan()
    mtd: rawnand: do not execute nand_scan_ident() if maxchips is zero
    mtd: rawnand: atmel: convert driver to nand_scan()
    ...

    Linus Torvalds
     

12 Aug, 2018

1 commit

  • The driver uses genalloc functions. Select GENERIC_ALLOCATOR to prevent
    build errors when selected through COMPILE_TEST.

    Fixes: 88a40e7dca00 ("mtd: rawnand: atmel: Allow selection of this driver when COMPILE_TEST=y")
    Reported-by: Randy Dunlap
    Signed-off-by: Boris Brezillon
    Acked-by: Miquel Raynal
    Acked-by: Randy Dunlap

    Boris Brezillon
     

11 Aug, 2018

3 commits

  • Pull SPI NOR updates from Boris Brezillon:
    "
    Core changes:
    - Apply reset hacks only when reset is explicitly marked as broken in
    the DT

    Driver changes:
    - Minor cleanup/fixes in the m25p80 driver
    - Release flash_np in the nxp-spifi driver
    - Add suspend/resume hooks to the atmel-quadspi driver
    - Include gpio/consumer.h instead of gpio.h in the atmel-quadspi driver
    - Use %pK instead of %p in the stm32-quadspi driver
    - Improve timeout handling in the cadence-quadspi driver
    - Use mtd_device_register() instead of mtd_device_parse_register() in
    the intel-spi driver
    "

    Boris Brezillon
     
  • Pull NAND updates from Miquel Raynal:

    "
    NAND core changes:
    - Add the SPI-NAND framework.
    - Create a helper to find the best ECC configuration.
    - Create NAND controller operations.
    - Allocate dynamically ONFI parameters structure.
    - Add defines for ONFI version bits.
    - Add manufacturer fixup for ONFI parameter page.
    - Add an option to specify NAND chip as a boot device.
    - Add Reed-Solomon error correction algorithm.
    - Better name for the controller structure.
    - Remove unused caller_is_module() definition.
    - Make subop helpers return unsigned values.
    - Expose _notsupp() helpers for raw page accessors.
    - Add default values for dynamic timings.
    - Kill the chip->scan_bbt() hook.
    - Rename nand_default_bbt() into nand_create_bbt().
    - Start to clean the nand_chip structure.
    - Remove stale prototype from rawnand.h.

    Raw NAND controllers drivers changes:
    - Qcom: structuring cleanup.
    - Denali: use core helper to find the best ECC configuration.
    - Possible build of almost all drivers by adding a dependency on
    COMPILE_TEST for almost all of them in Kconfig, implies various
    fixes, Kconfig cleanup, GPIO headers inclusion cleanup, and even
    changes in sparc64 and ia64 architectures.
    - Clean the ->probe() functions error path of a lot of drivers.
    - Migrate all drivers to use nand_scan() instead of
    nand_scan_ident()/nand_scan_tail() pair.
    - Use mtd_device_register() where applicable to simplify the code.
    - Marvell:
    * Handle on-die ECC.
    * Better clocks handling.
    * Remove bogus comment.
    * Add suspend and resume support.
    - Tegra: add NAND controller driver.
    - Atmel:
    * Add module param to avoid using dma.
    * Drop Wenyou Yang from MAINTAINERS.
    - Denali: optimize timings handling.
    - FSMC: Stop using chip->read_buf().
    - FSL:
    * Switch to SPDX license tag identifiers.
    * Fix qualifiers in MXC init functions.

    Raw NAND chip drivers changes:
    - Micron:
    * Add fixup for ONFI revision.
    * Update ecc_stats.corrected.
    * Make ECC activation stateful.
    * Avoid enabling/disabling ECC when it can't be disabled.
    * Get the actual number of bitflips.
    * Allow forced on-die ECC.
    * Support 8/512 on-die ECC.
    * Fix on-die ECC detection logic.
    - Hynix:
    * Fix decoding the OOB size on H27UCG8T2BTR.
    * Use ->exec_op() in hynix_nand_reg_write_op().
    "

    Boris Brezillon
     
  • Mark Brown
     

09 Aug, 2018

1 commit


02 Aug, 2018

1 commit


01 Aug, 2018

7 commits

  • Now that it is possible to do dynamic allocations during the
    identification phase, convert the onfi_params structure (which is only
    needed with ONFI compliant chips) into a pointer that will be allocated
    only if needed.

    Signed-off-by: Miquel Raynal
    Reviewed-by: Boris Brezillon

    Miquel Raynal
     
  • Commit 59b356ffd0b0 ("mtd: m25p80: restore the status of SPI flash when
    exiting") is the latest from a long history of attempts to add reboot
    handling to handle stateful addressing modes on SPI flash. Some prior
    mostly-related discussions:

    http://lists.infradead.org/pipermail/linux-mtd/2013-March/046343.html
    [PATCH 1/3] mtd: m25p80: utilize dedicated 4-byte addressing commands

    http://lists.infradead.org/pipermail/barebox/2014-September/020682.html
    [RFC] MTD m25p80 3-byte addressing and boot problem

    http://lists.infradead.org/pipermail/linux-mtd/2015-February/057683.html
    [PATCH 2/2] m25p80: if supported put chip to deep power down if not used

    Previously, attempts to add reboot-time software reset handling were
    rejected, but the latest attempt was not.

    Quick summary of the problem:
    Some systems (e.g., boot ROM or bootloader) assume that they can read
    initial boot code from their SPI flash using 3-byte addressing. If the
    flash is left in 4-byte mode after reset, these systems won't boot. The
    above patch provided a shutdown/remove hook to attempt to reset the
    addressing mode before we reboot. Notably, this patch misses out on
    huge classes of unexpected reboots (e.g., crashes, watchdog resets).

    Unfortunately, it is essentially impossible to solve this problem 100%:
    if your system doesn't know how to reset the SPI flash to power-on
    defaults at initialization time, no amount of software can really rescue
    you -- there will always be a chance of some unexpected reset that
    leaves your flash in an addressing mode that your boot sequence didn't
    expect.

    While it is not directly harmful to perform hacks like the
    aforementioned commit on all 4-byte addressing flash, a
    properly-designed system should not need the hack -- and in fact,
    providing this hack may mask the fact that a given system is indeed
    broken. So this patch attempts to apply this unsound hack more narrowly,
    providing a strong suggestion to developers and system designers that
    this is truly a hack. With luck, system designers can catch their errors
    early on in their development cycle, rather than applying this hack long
    term. But apparently enough systems are out in the wild that we still
    have to provide this hack.

    Document a new device tree property to denote systems that do not have a
    proper hardware (or software) reset mechanism, and apply the hack (with
    a loud warning) only in this case.

    Signed-off-by: Brian Norris
    Reviewed-by: Guenter Roeck
    Signed-off-by: Boris Brezillon

    Brian Norris
     
  • wait_for_completion_timeout returns an unsigned long not an int, so
    let's check its return value directly instead of storing it in ret,
    and avoid checking for negative values since this cannot happen.

    Signed-off-by: Nicholas Mc Guire
    Signed-off-by: Boris Brezillon

    Nicholas Mc Guire
     
  • GPIO consumers now include instead of
    if they can.

    Signed-off-by: Boris Brezillon

    Boris Brezillon
     
  • This driver doesn't specify parsers so it can use that little helper.

    Signed-off-by: Rafał Miłecki
    Signed-off-by: Boris Brezillon

    Rafał Miłecki
     
  • The format specifier "%p" can leak kernel addresses.
    Use "%pK" instead.

    Signed-off-by: Benjamin Gaignard
    Signed-off-by: Boris Brezillon

    Benjamin Gaignard
     
  • Implement suspend/resume hooks.

    Signed-off-by: Claudiu Beznea
    Reviewed-by: Tudor Ambarus
    Signed-off-by: Boris Brezillon

    Claudiu Beznea
     

31 Jul, 2018

19 commits

  • Thanks to the migration of all drivers to use nand_scan() and the
    related nand_controller_ops, we can now allocate data during the
    detection phase. Let's do it first for the NAND model parameter which
    is allocated in nand_detect().

    Signed-off-by: Miquel Raynal
    Reviewed-by: Boris Brezillon

    Miquel Raynal
     
  • Both nand_scan_ident() and nand_scan_tail() helpers used to be called
    directly from controller drivers that needed to tweak some ECC-related
    parameters before nand_scan_tail(). This separation prevented dynamic
    allocations during the phase of NAND identification, which was
    inconvenient.

    All controller drivers have been moved to use nand_scan(), in
    conjunction with the chip->ecc.[attach|detach]_chip() hooks that
    actually do the required tweaking sequence between both ident/tail
    calls, allowing programmers to use dynamic allocation as they need all
    across the scanning sequence.

    Declare nand_scan_[ident|tail]() statically now.

    Signed-off-by: Miquel Raynal
    Reviewed-by: Boris Brezillon

    Miquel Raynal
     
  • Two helpers have been added to the core to do all kind of controller
    side configuration/initialization between the detection phase and the
    final NAND scan. Implement these hooks so that we can convert the driver
    to just use nand_scan() instead of the nand_scan_ident() +
    nand_scan_tail() pair.

    Signed-off-by: Miquel Raynal
    Reviewed-by: Boris Brezillon

    Miquel Raynal
     
  • A comment in the probe declares that values are assigned to ecc.size
    and ecc.bytes, but these values will be overwritten. This is not
    entirely right as they are overwritten only if
    mtd->writesize >= 512. Let's clarify this by moving these assignations
    to txx9ndfmc_nand_scan().

    Signed-off-by: Miquel Raynal
    Reviewed-by: Boris Brezillon

    Miquel Raynal
     
  • Two helpers have been added to the core to do all kind of controller
    side configuration/initialization between the detection phase and the
    final NAND scan. Implement these hooks so that we can convert the driver
    to just use nand_scan() instead of the nand_scan_ident() +
    nand_scan_tail() pair.

    Signed-off-by: Miquel Raynal
    Reviewed-by: Boris Brezillon

    Miquel Raynal
     
  • Two helpers have been added to the core to do all kind of controller
    side configuration/initialization between the detection phase and the
    final NAND scan. Implement these hooks so that we can convert the driver
    to just use nand_scan() instead of the nand_scan_ident() +
    nand_scan_tail() pair.

    Signed-off-by: Miquel Raynal
    Reviewed-by: Boris Brezillon

    Miquel Raynal
     
  • Prepare the migration to nand_scan() by moving both calls to
    nand_scan_ident() and nand_scan_tail() in a single spot.

    Signed-off-by: Miquel Raynal
    Reviewed-by: Boris Brezillon

    Miquel Raynal
     
  • An error after nand_scan_tail() should trigger a nand_cleanup(), not a
    nand_release() as mtd_device_register() (or one of its variants) has not
    been called and there is no need to deregister any MTD device yet.

    Signed-off-by: Miquel Raynal
    Reviewed-by: Boris Brezillon

    Miquel Raynal
     
  • Two helpers have been added to the core to do all kind of controller
    side configuration/initialization between the detection phase and the
    final NAND scan. Implement these hooks so that we can convert the driver
    to just use nand_scan() instead of the nand_scan_ident() +
    nand_scan_tail() pair.

    Signed-off-by: Miquel Raynal
    Reviewed-by: Boris Brezillon
    Signed-off-by: Miquel Raynal

    Miquel Raynal
     
  • Some driver (eg. docg4) will need to handle themselves the
    identification phase. As part of the migration to use nand_scan()
    everywhere (which will unconditionnaly call nand_scan_ident()), we add
    a condition at the start of nand_scan_with_ids() to jump over
    nand_scan_ident() if the maxchips parameters is zero, meaning that the
    driver does not want the core to handle this phase.

    Signed-off-by: Miquel Raynal
    Reviewed-by: Boris Brezillon

    Miquel Raynal
     
  • Two helpers have been added to the core to do all kind of controller
    side configuration/initialization between the detection phase and the
    final NAND scan. Implement these hooks so that we can convert the driver
    to just use nand_scan() instead of the nand_scan_ident() +
    nand_scan_tail() pair.

    Signed-off-by: Miquel Raynal
    Reviewed-by: Boris Brezillon

    Miquel Raynal
     
  • No need for an atmel_nand_register() function, let's move the code in
    it directly where the function was called: in
    atmel_nand_controller_add_nand(). To make things consistent, also
    rename atmel_nand_unregister() into
    atmel_nand_controller_remove_nand().

    Signed-off-by: Miquel Raynal
    Reviewed-by: Boris Brezillon

    Miquel Raynal
     
  • Two helpers have been added to the core to do all kind of controller
    side configuration/initialization between the detection phase and the
    final NAND scan. Implement these hooks so that we can convert the driver
    to just use nand_scan() instead of the nand_scan_ident() +
    nand_scan_tail() pair.

    Signed-off-by: Miquel Raynal
    Reviewed-by: Boris Brezillon

    Miquel Raynal
     
  • Two helpers have been added to the core to do all kind of controller
    side configuration/initialization between the detection phase and the
    final NAND scan. Implement these hooks so that we can convert the driver
    to just use nand_scan() instead of the nand_scan_ident() +
    nand_scan_tail() pair.

    Signed-off-by: Miquel Raynal
    Reviewed-by: Boris Brezillon

    Miquel Raynal
     
  • Two helpers have been added to the core to do all kind of controller
    side configuration/initialization between the detection phase and the
    final NAND scan. Implement these hooks so that we can convert the driver
    to just use nand_scan() instead of the nand_scan_ident() +
    nand_scan_tail() pair.

    Signed-off-by: Miquel Raynal
    Reviewed-by: Boris Brezillon

    Miquel Raynal
     
  • Two helpers have been added to the core to do all kind of controller
    side configuration/initialization between the detection phase and the
    final NAND scan. Implement these hooks so that we can convert the driver
    to just use nand_scan() instead of the nand_scan_ident() +
    nand_scan_tail() pair.

    Signed-off-by: Miquel Raynal
    Reviewed-by: Boris Brezillon

    Miquel Raynal
     
  • Two helpers have been added to the core to do all kind of controller
    side configuration/initialization between the detection phase and the
    final NAND scan. Implement these hooks so that we can convert the driver
    to just use nand_scan() instead of the nand_scan_ident() +
    nand_scan_tail() pair.

    Signed-off-by: Miquel Raynal
    Reviewed-by: Boris Brezillon

    Miquel Raynal
     
  • Two helpers have been added to the core to do all kind of controller
    side configuration/initialization between the detection phase and the
    final NAND scan. Implement these hooks so that we can convert the driver
    to just use nand_scan_with_ids() (alternative to nand_scan() for passing
    a flash IDs table) instead of the nand_scan_ident() + nand_scan_tail()
    pair.

    Signed-off-by: Miquel Raynal
    Reviewed-by: Boris Brezillon

    Miquel Raynal
     
  • nand_cleanup() should be called upon error after a successful
    nand_scan_tail().

    Rework the error path to follow this rule .

    Signed-off-by: Miquel Raynal

    Miquel Raynal