summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Kicinski <kuba@kernel.org>2026-06-11 17:06:55 -0700
committerJakub Kicinski <kuba@kernel.org>2026-06-11 17:06:55 -0700
commit5a031965451c332bc0a6b7dfecfe44e90a0590e1 (patch)
tree2345b8befc12db9e9c684d0f2a8daac674259c23
parent9912dfa2d46aef4cd708246aa6b39b49213f5e62 (diff)
parent1b92c1f6d6d87f9ec3c2bef3c68b99b097712f9a (diff)
Merge tag 'nfc-net-next-20260611' of https://codeberg.org/linux-nfc/linux
David Heidelberg says: ==================== NFC updates for net-next 20260611 - nxp-nci: Add ISO15693 support - nxp-nci: treat -ENXIO in IRQ thread as no data available - nci: uart: Constify struct tty_ldisc_ops - trf7970a: fix comment typos - Use named initializers for struct i2c_device_id - MAINTAINERS: Update address for David Heidelberg * tag 'nfc-net-next-20260611' of https://codeberg.org/linux-nfc/linux: MAINTAINERS: Update address for David Heidelberg nfc: Use named initializers for struct i2c_device_id nfc: nxp-nci: treat -ENXIO in IRQ thread as no data available nfc: nxp-nci: Add ISO15693 support nfc: nci: uart: Constify struct tty_ldisc_ops nfc: trf7970a: fix comment typos ==================== Link: https://patch.msgid.link/1aed7555-3d24-413c-b284-bc85fdd33055@ixit.cz Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-rw-r--r--MAINTAINERS2
-rw-r--r--drivers/nfc/microread/i2c.c2
-rw-r--r--drivers/nfc/nfcmrvl/i2c.c4
-rw-r--r--drivers/nfc/nxp-nci/core.c1
-rw-r--r--drivers/nfc/nxp-nci/i2c.c12
-rw-r--r--drivers/nfc/pn533/i2c.c4
-rw-r--r--drivers/nfc/pn544/i2c.c4
-rw-r--r--drivers/nfc/s3fwrn5/i2c.c4
-rw-r--r--drivers/nfc/st-nci/i2c.c4
-rw-r--r--drivers/nfc/st21nfca/i2c.c4
-rw-r--r--drivers/nfc/trf7970a.c6
-rw-r--r--net/nfc/nci/uart.c2
12 files changed, 29 insertions, 20 deletions
diff --git a/MAINTAINERS b/MAINTAINERS
index 34f71583fef7..cc1dde0c9067 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -18886,7 +18886,7 @@ F: drivers/net/net_failover.c
F: include/net/net_failover.h
NFC SUBSYSTEM
-M: David Heidelberg <david+nfc@ixit.cz>
+M: David Heidelberg <david@ixit.cz>
L: oe-linux-nfc@lists.linux.dev
S: Maintained
T: git https://codeberg.org/linux-nfc/linux.git
diff --git a/drivers/nfc/microread/i2c.c b/drivers/nfc/microread/i2c.c
index f00cff7f9693..f45e883b8730 100644
--- a/drivers/nfc/microread/i2c.c
+++ b/drivers/nfc/microread/i2c.c
@@ -276,7 +276,7 @@ static void microread_i2c_remove(struct i2c_client *client)
}
static const struct i2c_device_id microread_i2c_id[] = {
- { MICROREAD_I2C_DRIVER_NAME },
+ { .name = MICROREAD_I2C_DRIVER_NAME },
{ }
};
MODULE_DEVICE_TABLE(i2c, microread_i2c_id);
diff --git a/drivers/nfc/nfcmrvl/i2c.c b/drivers/nfc/nfcmrvl/i2c.c
index 39ecf2aeda80..66877a7d03f2 100644
--- a/drivers/nfc/nfcmrvl/i2c.c
+++ b/drivers/nfc/nfcmrvl/i2c.c
@@ -252,8 +252,8 @@ static const struct of_device_id of_nfcmrvl_i2c_match[] __maybe_unused = {
MODULE_DEVICE_TABLE(of, of_nfcmrvl_i2c_match);
static const struct i2c_device_id nfcmrvl_i2c_id_table[] = {
- { "nfcmrvl_i2c" },
- {}
+ { .name = "nfcmrvl_i2c" },
+ { }
};
MODULE_DEVICE_TABLE(i2c, nfcmrvl_i2c_id_table);
diff --git a/drivers/nfc/nxp-nci/core.c b/drivers/nfc/nxp-nci/core.c
index 66b198663387..448e5a4e7338 100644
--- a/drivers/nfc/nxp-nci/core.c
+++ b/drivers/nfc/nxp-nci/core.c
@@ -25,6 +25,7 @@
NFC_PROTO_FELICA_MASK | \
NFC_PROTO_ISO14443_MASK | \
NFC_PROTO_ISO14443_B_MASK | \
+ NFC_PROTO_ISO15693_MASK | \
NFC_PROTO_NFC_DEP_MASK)
#define NXP_NCI_RF_PLL_UNLOCKED_NTF nci_opcode_pack(NCI_GID_RF_MGMT, 0x21)
diff --git a/drivers/nfc/nxp-nci/i2c.c b/drivers/nfc/nxp-nci/i2c.c
index a6c08175d9dd..faebc89a7ef5 100644
--- a/drivers/nfc/nxp-nci/i2c.c
+++ b/drivers/nfc/nxp-nci/i2c.c
@@ -231,6 +231,14 @@ static irqreturn_t nxp_nci_i2c_irq_thread_fn(int irq, void *phy_id)
if (info->mode == NXP_NCI_MODE_FW)
nxp_nci_fw_recv_frame(phy->ndev, NULL);
}
+ if (r == -ENXIO) {
+ /*
+ * -ENXIO may occur if the controller has not yet
+ * provided data after asserting IRQ.
+ */
+ dev_dbg(&client->dev, "No data available yet\n");
+ goto exit_irq_handled;
+ }
if (r < 0) {
nfc_err(&client->dev, "Read failed with error %d\n", r);
goto exit_irq_handled;
@@ -341,8 +349,8 @@ static void nxp_nci_i2c_remove(struct i2c_client *client)
}
static const struct i2c_device_id nxp_nci_i2c_id_table[] = {
- { "nxp-nci_i2c" },
- {}
+ { .name = "nxp-nci_i2c" },
+ { }
};
MODULE_DEVICE_TABLE(i2c, nxp_nci_i2c_id_table);
diff --git a/drivers/nfc/pn533/i2c.c b/drivers/nfc/pn533/i2c.c
index 132c050a365d..94aca9119f0f 100644
--- a/drivers/nfc/pn533/i2c.c
+++ b/drivers/nfc/pn533/i2c.c
@@ -249,8 +249,8 @@ static const struct of_device_id of_pn533_i2c_match[] __maybe_unused = {
MODULE_DEVICE_TABLE(of, of_pn533_i2c_match);
static const struct i2c_device_id pn533_i2c_id_table[] = {
- { PN533_I2C_DRIVER_NAME },
- {}
+ { .name = PN533_I2C_DRIVER_NAME },
+ { }
};
MODULE_DEVICE_TABLE(i2c, pn533_i2c_id_table);
diff --git a/drivers/nfc/pn544/i2c.c b/drivers/nfc/pn544/i2c.c
index b31b5bef7187..dcfa96bd4345 100644
--- a/drivers/nfc/pn544/i2c.c
+++ b/drivers/nfc/pn544/i2c.c
@@ -44,8 +44,8 @@
PN544_HCI_I2C_LLC_MAX_PAYLOAD)
static const struct i2c_device_id pn544_hci_i2c_id_table[] = {
- { "pn544" },
- {}
+ { .name = "pn544" },
+ { }
};
MODULE_DEVICE_TABLE(i2c, pn544_hci_i2c_id_table);
diff --git a/drivers/nfc/s3fwrn5/i2c.c b/drivers/nfc/s3fwrn5/i2c.c
index 91b8d1445efd..e9a34d27a369 100644
--- a/drivers/nfc/s3fwrn5/i2c.c
+++ b/drivers/nfc/s3fwrn5/i2c.c
@@ -205,8 +205,8 @@ static void s3fwrn5_i2c_remove(struct i2c_client *client)
}
static const struct i2c_device_id s3fwrn5_i2c_id_table[] = {
- { S3FWRN5_I2C_DRIVER_NAME },
- {}
+ { .name = S3FWRN5_I2C_DRIVER_NAME },
+ { }
};
MODULE_DEVICE_TABLE(i2c, s3fwrn5_i2c_id_table);
diff --git a/drivers/nfc/st-nci/i2c.c b/drivers/nfc/st-nci/i2c.c
index 416770adbeba..9ae839a6f5cc 100644
--- a/drivers/nfc/st-nci/i2c.c
+++ b/drivers/nfc/st-nci/i2c.c
@@ -257,8 +257,8 @@ static void st_nci_i2c_remove(struct i2c_client *client)
}
static const struct i2c_device_id st_nci_i2c_id_table[] = {
- { ST_NCI_DRIVER_NAME },
- {}
+ { .name = ST_NCI_DRIVER_NAME },
+ { }
};
MODULE_DEVICE_TABLE(i2c, st_nci_i2c_id_table);
diff --git a/drivers/nfc/st21nfca/i2c.c b/drivers/nfc/st21nfca/i2c.c
index 6d7861383806..aa5f4922b6b0 100644
--- a/drivers/nfc/st21nfca/i2c.c
+++ b/drivers/nfc/st21nfca/i2c.c
@@ -572,8 +572,8 @@ static void st21nfca_hci_i2c_remove(struct i2c_client *client)
}
static const struct i2c_device_id st21nfca_hci_i2c_id_table[] = {
- { ST21NFCA_HCI_DRIVER_NAME },
- {}
+ { .name = ST21NFCA_HCI_DRIVER_NAME },
+ { }
};
MODULE_DEVICE_TABLE(i2c, st21nfca_hci_i2c_id_table);
diff --git a/drivers/nfc/trf7970a.c b/drivers/nfc/trf7970a.c
index 08c27bb438b5..f22e091019de 100644
--- a/drivers/nfc/trf7970a.c
+++ b/drivers/nfc/trf7970a.c
@@ -61,15 +61,15 @@
* support that. So, if an abort is received before trf7970a_send_cmd()
* has sent the command to the tag, it simply returns -ECANCELED. If the
* command has already been sent to the tag, then the driver continues
- * normally and recieves the response data (or error) but just before
+ * normally and receives the response data (or error) but just before
* sending the data upstream, it frees the rx_skb and sends -ECANCELED
* upstream instead. If the command failed, that error will be sent
* upstream.
*
- * When recieving data from a tag and the interrupt status register has
+ * When receiving data from a tag and the interrupt status register has
* only the SRX bit set, it means that all of the data has been received
* (once what's in the fifo has been read). However, depending on timing
- * an interrupt status with only the SRX bit set may not be recived. In
+ * an interrupt status with only the SRX bit set may not be received. In
* those cases, the timeout mechanism is used to wait 20 ms in case more
* data arrives. After 20 ms, it is assumed that all of the data has been
* received and the accumulated rx data is sent upstream. The
diff --git a/net/nfc/nci/uart.c b/net/nfc/nci/uart.c
index 5a3aed7f84f5..aa20e8603f32 100644
--- a/net/nfc/nci/uart.c
+++ b/net/nfc/nci/uart.c
@@ -421,7 +421,7 @@ void nci_uart_set_config(struct nci_uart *nu, int baudrate, int flow_ctrl)
}
EXPORT_SYMBOL_GPL(nci_uart_set_config);
-static struct tty_ldisc_ops nci_uart_ldisc = {
+static const struct tty_ldisc_ops nci_uart_ldisc = {
.owner = THIS_MODULE,
.num = N_NCI,
.name = "n_nci",