diff options
Diffstat (limited to 'drivers/nfc')
-rw-r--r-- | drivers/nfc/fdp/i2c.c | 4 | ||||
-rw-r--r-- | drivers/nfc/microread/i2c.c | 4 | ||||
-rw-r--r-- | drivers/nfc/nfcmrvl/i2c.c | 4 | ||||
-rw-r--r-- | drivers/nfc/nxp-nci/i2c.c | 4 | ||||
-rw-r--r-- | drivers/nfc/pn533/i2c.c | 4 | ||||
-rw-r--r-- | drivers/nfc/pn544/i2c.c | 4 | ||||
-rw-r--r-- | drivers/nfc/s3fwrn5/i2c.c | 23 | ||||
-rw-r--r-- | drivers/nfc/st-nci/i2c.c | 4 | ||||
-rw-r--r-- | drivers/nfc/st21nfca/i2c.c | 4 | ||||
-rw-r--r-- | drivers/nfc/virtual_ncidev.c | 3 |
10 files changed, 17 insertions, 41 deletions
diff --git a/drivers/nfc/fdp/i2c.c b/drivers/nfc/fdp/i2c.c index 28a9e1eb9bcf..2d53e0f88d2f 100644 --- a/drivers/nfc/fdp/i2c.c +++ b/drivers/nfc/fdp/i2c.c @@ -336,14 +336,12 @@ static int fdp_nci_i2c_probe(struct i2c_client *client) return 0; } -static int fdp_nci_i2c_remove(struct i2c_client *client) +static void fdp_nci_i2c_remove(struct i2c_client *client) { struct fdp_i2c_phy *phy = i2c_get_clientdata(client); fdp_nci_remove(phy->ndev); fdp_nci_i2c_disable(phy); - - return 0; } static const struct acpi_device_id fdp_nci_i2c_acpi_match[] = { diff --git a/drivers/nfc/microread/i2c.c b/drivers/nfc/microread/i2c.c index 067295124eb9..5eaa18f81355 100644 --- a/drivers/nfc/microread/i2c.c +++ b/drivers/nfc/microread/i2c.c @@ -268,15 +268,13 @@ err_irq: return r; } -static int microread_i2c_remove(struct i2c_client *client) +static void microread_i2c_remove(struct i2c_client *client) { struct microread_i2c_phy *phy = i2c_get_clientdata(client); microread_remove(phy->hdev); free_irq(client->irq, phy); - - return 0; } static const struct i2c_device_id microread_i2c_id[] = { diff --git a/drivers/nfc/nfcmrvl/i2c.c b/drivers/nfc/nfcmrvl/i2c.c index 01329b91d59d..acef0cfd76af 100644 --- a/drivers/nfc/nfcmrvl/i2c.c +++ b/drivers/nfc/nfcmrvl/i2c.c @@ -231,13 +231,11 @@ static int nfcmrvl_i2c_probe(struct i2c_client *client, return 0; } -static int nfcmrvl_i2c_remove(struct i2c_client *client) +static void nfcmrvl_i2c_remove(struct i2c_client *client) { struct nfcmrvl_i2c_drv_data *drv_data = i2c_get_clientdata(client); nfcmrvl_nci_unregister_dev(drv_data->priv); - - return 0; } diff --git a/drivers/nfc/nxp-nci/i2c.c b/drivers/nfc/nxp-nci/i2c.c index ae2ba08d8ac3..ec6446511984 100644 --- a/drivers/nfc/nxp-nci/i2c.c +++ b/drivers/nfc/nxp-nci/i2c.c @@ -314,14 +314,12 @@ static int nxp_nci_i2c_probe(struct i2c_client *client, return r; } -static int nxp_nci_i2c_remove(struct i2c_client *client) +static void nxp_nci_i2c_remove(struct i2c_client *client) { struct nxp_nci_i2c_phy *phy = i2c_get_clientdata(client); nxp_nci_remove(phy->ndev); free_irq(client->irq, phy); - - return 0; } static const struct i2c_device_id nxp_nci_i2c_id_table[] = { diff --git a/drivers/nfc/pn533/i2c.c b/drivers/nfc/pn533/i2c.c index 673eb5e9b887..ddf3db286bad 100644 --- a/drivers/nfc/pn533/i2c.c +++ b/drivers/nfc/pn533/i2c.c @@ -227,7 +227,7 @@ nfc_alloc_err: return r; } -static int pn533_i2c_remove(struct i2c_client *client) +static void pn533_i2c_remove(struct i2c_client *client) { struct pn533_i2c_phy *phy = i2c_get_clientdata(client); @@ -235,8 +235,6 @@ static int pn533_i2c_remove(struct i2c_client *client) pn53x_unregister_nfc(phy->priv); pn53x_common_clean(phy->priv); - - return 0; } static const struct of_device_id of_pn533_i2c_match[] __maybe_unused = { diff --git a/drivers/nfc/pn544/i2c.c b/drivers/nfc/pn544/i2c.c index 62a0f1a010cb..9e754abcfa2a 100644 --- a/drivers/nfc/pn544/i2c.c +++ b/drivers/nfc/pn544/i2c.c @@ -928,7 +928,7 @@ static int pn544_hci_i2c_probe(struct i2c_client *client, return 0; } -static int pn544_hci_i2c_remove(struct i2c_client *client) +static void pn544_hci_i2c_remove(struct i2c_client *client) { struct pn544_i2c_phy *phy = i2c_get_clientdata(client); @@ -940,8 +940,6 @@ static int pn544_hci_i2c_remove(struct i2c_client *client) if (phy->powered) pn544_hci_i2c_disable(phy); - - return 0; } static const struct of_device_id of_pn544_i2c_match[] __maybe_unused = { diff --git a/drivers/nfc/s3fwrn5/i2c.c b/drivers/nfc/s3fwrn5/i2c.c index 4d1cf1bb55b0..ecdee838d25d 100644 --- a/drivers/nfc/s3fwrn5/i2c.c +++ b/drivers/nfc/s3fwrn5/i2c.c @@ -209,27 +209,21 @@ static int s3fwrn5_i2c_probe(struct i2c_client *client, if (ret < 0) return ret; - phy->clk = devm_clk_get_optional(&client->dev, NULL); - if (IS_ERR(phy->clk)) - return dev_err_probe(&client->dev, PTR_ERR(phy->clk), - "failed to get clock\n"); - /* * S3FWRN5 depends on a clock input ("XI" pin) to function properly. * Depending on the hardware configuration this could be an always-on * oscillator or some external clock that must be explicitly enabled. * Make sure the clock is running before starting S3FWRN5. */ - ret = clk_prepare_enable(phy->clk); - if (ret < 0) { - dev_err(&client->dev, "failed to enable clock: %d\n", ret); - return ret; - } + phy->clk = devm_clk_get_optional_enabled(&client->dev, NULL); + if (IS_ERR(phy->clk)) + return dev_err_probe(&client->dev, PTR_ERR(phy->clk), + "failed to get clock\n"); ret = s3fwrn5_probe(&phy->common.ndev, phy, &phy->i2c_dev->dev, &i2c_phy_ops); if (ret < 0) - goto disable_clk; + return ret; ret = devm_request_threaded_irq(&client->dev, phy->i2c_dev->irq, NULL, s3fwrn5_i2c_irq_thread_fn, IRQF_ONESHOT, @@ -241,19 +235,14 @@ static int s3fwrn5_i2c_probe(struct i2c_client *client, s3fwrn5_remove: s3fwrn5_remove(phy->common.ndev); -disable_clk: - clk_disable_unprepare(phy->clk); return ret; } -static int s3fwrn5_i2c_remove(struct i2c_client *client) +static void s3fwrn5_i2c_remove(struct i2c_client *client) { struct s3fwrn5_i2c_phy *phy = i2c_get_clientdata(client); s3fwrn5_remove(phy->common.ndev); - clk_disable_unprepare(phy->clk); - - return 0; } static const struct i2c_device_id s3fwrn5_i2c_id_table[] = { diff --git a/drivers/nfc/st-nci/i2c.c b/drivers/nfc/st-nci/i2c.c index cbd968f013c7..89fa24d71bef 100644 --- a/drivers/nfc/st-nci/i2c.c +++ b/drivers/nfc/st-nci/i2c.c @@ -250,13 +250,11 @@ static int st_nci_i2c_probe(struct i2c_client *client, return r; } -static int st_nci_i2c_remove(struct i2c_client *client) +static void st_nci_i2c_remove(struct i2c_client *client) { struct st_nci_i2c_phy *phy = i2c_get_clientdata(client); ndlc_remove(phy->ndlc); - - return 0; } static const struct i2c_device_id st_nci_i2c_id_table[] = { diff --git a/drivers/nfc/st21nfca/i2c.c b/drivers/nfc/st21nfca/i2c.c index 42dc0e5eb161..76b55986bcf8 100644 --- a/drivers/nfc/st21nfca/i2c.c +++ b/drivers/nfc/st21nfca/i2c.c @@ -562,7 +562,7 @@ out_free: return r; } -static int st21nfca_hci_i2c_remove(struct i2c_client *client) +static void st21nfca_hci_i2c_remove(struct i2c_client *client) { struct st21nfca_i2c_phy *phy = i2c_get_clientdata(client); @@ -571,8 +571,6 @@ static int st21nfca_hci_i2c_remove(struct i2c_client *client) if (phy->powered) st21nfca_hci_i2c_disable(phy); kfree_skb(phy->pending_skb); - - return 0; } static const struct i2c_device_id st21nfca_hci_i2c_id_table[] = { diff --git a/drivers/nfc/virtual_ncidev.c b/drivers/nfc/virtual_ncidev.c index f577449e4935..85c06dbb2c44 100644 --- a/drivers/nfc/virtual_ncidev.c +++ b/drivers/nfc/virtual_ncidev.c @@ -54,16 +54,19 @@ static int virtual_nci_send(struct nci_dev *ndev, struct sk_buff *skb) mutex_lock(&nci_mutex); if (state != virtual_ncidev_enabled) { mutex_unlock(&nci_mutex); + kfree_skb(skb); return 0; } if (send_buff) { mutex_unlock(&nci_mutex); + kfree_skb(skb); return -1; } send_buff = skb_copy(skb, GFP_KERNEL); mutex_unlock(&nci_mutex); wake_up_interruptible(&wq); + consume_skb(skb); return 0; } |