• Lars Poeschel's avatar
    nfc: pn533: Split pn533 init & nfc_register · 843cc92e
    Lars Poeschel authored
    There is a problem in the initialisation and setup of the pn533: It
    registers with nfc too early. It could happen, that it finished
    registering with nfc and someone starts using it. But setup of the pn533
    is not yet finished. Bad or at least unintended things could happen.
    So I split out nfc registering (and unregistering) to seperate functions
    that have to be called late in probe then.
    i2c requires a bit more love: i2c requests an irq in it's probe
    function. 'Commit 32ecc75d ("NFC: pn533: change order operations in
    dev registation")' shows, this can not happen too early. An irq can be
    served before structs are fully initialized. The way chosen to prevent
    this is to request the irq after nfc_alloc_device initialized the
    structs, but before nfc_register_device. So there is now this
    pn532_i2c_nfc_alloc function.
    
    Cc: Johan Hovold <johan@kernel.org>
    Cc: Claudiu Beznea <Claudiu.Beznea@microchip.com>
    Cc: Jakub Kicinski <jakub.kicinski@netronome.com>
    Signed-off-by: default avatarLars Poeschel <poeschel@lemonage.de>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    843cc92e
pn533.c 59.2 KB