]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blobdiff - drivers/nfc/mei_phy.c
Merge branch 'topic/sa11x0' into for-linus
[mirror_ubuntu-bionic-kernel.git] / drivers / nfc / mei_phy.c
index 6f9563a9648852e48929a39b29982a7bbef52c0e..8a04c5e029998504d5c07c1c327746ecf324bf78 100644 (file)
@@ -297,35 +297,34 @@ static int mei_nfc_recv(struct nfc_mei_phy *phy, u8 *buf, size_t length)
 }
 
 
-static void nfc_mei_event_cb(struct mei_cl_device *cldev, u32 events,
-                            void *context)
+static void nfc_mei_rx_cb(struct mei_cl_device *cldev)
 {
-       struct nfc_mei_phy *phy = context;
+       struct nfc_mei_phy *phy = mei_cldev_get_drvdata(cldev);
+       struct sk_buff *skb;
+       int reply_size;
 
-       if (phy->hard_fault != 0)
+       if (!phy)
                return;
 
-       if (events & BIT(MEI_CL_EVENT_RX)) {
-               struct sk_buff *skb;
-               int reply_size;
+       if (phy->hard_fault != 0)
+               return;
 
-               skb = alloc_skb(MEI_NFC_MAX_READ, GFP_KERNEL);
-               if (!skb)
-                       return;
+       skb = alloc_skb(MEI_NFC_MAX_READ, GFP_KERNEL);
+       if (!skb)
+               return;
 
-               reply_size = mei_nfc_recv(phy, skb->data, MEI_NFC_MAX_READ);
-               if (reply_size < MEI_NFC_HEADER_SIZE) {
-                       kfree_skb(skb);
-                       return;
-               }
+       reply_size = mei_nfc_recv(phy, skb->data, MEI_NFC_MAX_READ);
+       if (reply_size < MEI_NFC_HEADER_SIZE) {
+               kfree_skb(skb);
+               return;
+       }
 
-               skb_put(skb, reply_size);
-               skb_pull(skb, MEI_NFC_HEADER_SIZE);
+       skb_put(skb, reply_size);
+       skb_pull(skb, MEI_NFC_HEADER_SIZE);
 
-               MEI_DUMP_SKB_IN("mei frame read", skb);
+       MEI_DUMP_SKB_IN("mei frame read", skb);
 
-               nfc_hci_recv_frame(phy->hdev, skb);
-       }
+       nfc_hci_recv_frame(phy->hdev, skb);
 }
 
 static int nfc_mei_phy_enable(void *phy_id)
@@ -356,8 +355,7 @@ static int nfc_mei_phy_enable(void *phy_id)
                goto err;
        }
 
-       r = mei_cldev_register_event_cb(phy->cldev, BIT(MEI_CL_EVENT_RX),
-                                    nfc_mei_event_cb, phy);
+       r = mei_cldev_register_rx_cb(phy->cldev, nfc_mei_rx_cb);
        if (r) {
                pr_err("Event cb registration failed %d\n", r);
                goto err;