lkml.org 
[lkml]   [2017]   [Jul]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.4 11/83] NFC: nfcmrvl: fix firmware-management initialisation
    Date
    4.4-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Johan Hovold <johan@kernel.org>

    commit 45dd39b974f6632222dd5cdcbea7358a077ab0b0 upstream.

    The nci-device was never deregistered in the event that
    fw-initialisation failed.

    Fix this by moving the firmware initialisation before device
    registration since the firmware work queue should be available before
    registering.

    Note that this depends on a recent fix that moved device-name
    initialisation back to to nci_allocate_device() as the
    firmware-workqueue name is now derived from the nfc-device name.

    Fixes: 3194c6870158 ("NFC: nfcmrvl: add firmware download support")
    Cc: Vincent Cuissard <cuissard@marvell.com>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/nfc/nfcmrvl/main.c | 16 +++++++++-------
    1 file changed, 9 insertions(+), 7 deletions(-)

    --- a/drivers/nfc/nfcmrvl/main.c
    +++ b/drivers/nfc/nfcmrvl/main.c
    @@ -158,26 +158,28 @@ struct nfcmrvl_private *nfcmrvl_nci_regi
    goto error_free_gpio;
    }

    + rc = nfcmrvl_fw_dnld_init(priv);
    + if (rc) {
    + nfc_err(dev, "failed to initialize FW download %d\n", rc);
    + goto error_free_dev;
    + }
    +
    nci_set_drvdata(priv->ndev, priv);

    rc = nci_register_device(priv->ndev);
    if (rc) {
    nfc_err(dev, "nci_register_device failed %d\n", rc);
    - goto error_free_dev;
    + goto error_fw_dnld_deinit;
    }

    /* Ensure that controller is powered off */
    nfcmrvl_chip_halt(priv);

    - rc = nfcmrvl_fw_dnld_init(priv);
    - if (rc) {
    - nfc_err(dev, "failed to initialize FW download %d\n", rc);
    - goto error_free_dev;
    - }
    -
    nfc_info(dev, "registered with nci successfully\n");
    return priv;

    +error_fw_dnld_deinit:
    + nfcmrvl_fw_dnld_deinit(priv);
    error_free_dev:
    nci_free_device(priv->ndev);
    error_free_gpio:

    \
     
     \ /
      Last update: 2017-07-25 23:12    [W:2.103 / U:0.380 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site