]> git.baikalelectronics.ru Git - kernel.git/commit
nfc: pn533: Split pn533 init & nfc_register
authorLars Poeschel <poeschel@lemonage.de>
Tue, 29 Oct 2019 14:46:46 +0000 (15:46 +0100)
committerDavid S. Miller <davem@davemloft.net>
Wed, 30 Oct 2019 04:05:26 +0000 (21:05 -0700)
commit5355e4dd80998f5c727b0af984e7fa954564e5dd
treee2a9210b2aa95ba8f3ad4560092ad9fba4edb9a2
parent9e8fdc36796add59bc15e171c2cb63ee0b20d5a0
nfc: pn533: Split pn533 init & nfc_register

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 b7cff49c8d51 ("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: Lars Poeschel <poeschel@lemonage.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/nfc/pn533/i2c.c
drivers/nfc/pn533/pn533.c
drivers/nfc/pn533/pn533.h
drivers/nfc/pn533/usb.c