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>
This commit is contained in:
Jakub Kicinski
2026-06-11 17:06:55 -07:00
12 changed files with 29 additions and 20 deletions

View File

@@ -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

View File

@@ -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);

View File

@@ -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);

View File

@@ -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)

View File

@@ -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);

View File

@@ -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);

View File

@@ -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);

View File

@@ -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);

View File

@@ -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);

View File

@@ -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);

View File

@@ -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

View File

@@ -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",