summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn W. Linville <linville@tuxdriver.com>2013-02-11 15:30:47 -0500
committerJohn W. Linville <linville@tuxdriver.com>2013-02-11 15:32:21 -0500
commit5d8eac3ad982ee32e3dee56626ba3d1fc577fcbc (patch)
tree354c294c7eea0af66cd72036deff5f8c6ec6d53b
parent8708aac79e4572ba673d7a21e94ddca9f3abb7fc (diff)
parentcd48d8ba149484c4723a2b75159deeb83f3d2273 (diff)
Merge tag 'nfc-next-3.9-3' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/nfc-next
Samuel Ortiz <sameo@linux.intel.com> says: "This 3rd NFC pull request for 3.9 contains a fix for the microread MEI physical layer support, as the MEI bus API changed. From the MEI code, we now pass the MEI id back to the driver probe routine, and we also pass a name and a MEI id table through the mei_bus_driver structure. A few renames as well like e.g. mei_bus_driver to mei_driver or mei_bus_client to mei_device in order to be closer to the driver model practices." Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--drivers/nfc/microread/mei.c43
1 files changed, 24 insertions, 19 deletions
diff --git a/drivers/nfc/microread/mei.c b/drivers/nfc/microread/mei.c
index c078e56d7d1..eef38cfd812 100644
--- a/drivers/nfc/microread/mei.c
+++ b/drivers/nfc/microread/mei.c
@@ -48,7 +48,7 @@ struct mei_nfc_hdr {
#define MEI_NFC_MAX_READ (MEI_NFC_HEADER_SIZE + MEI_NFC_MAX_HCI_PAYLOAD)
struct microread_mei_phy {
- struct mei_bus_client *client;
+ struct mei_device *mei_device;
struct nfc_hci_dev *hdev;
int powered;
@@ -105,14 +105,14 @@ static int microread_mei_write(void *phy_id, struct sk_buff *skb)
MEI_DUMP_SKB_OUT("mei frame sent", skb);
- r = mei_bus_send(phy->client, skb->data, skb->len);
+ r = mei_send(phy->device, skb->data, skb->len);
if (r > 0)
r = 0;
return r;
}
-static void microread_event_cb(struct mei_bus_client *client, u32 events,
+static void microread_event_cb(struct mei_device *device, u32 events,
void *context)
{
struct microread_mei_phy *phy = context;
@@ -120,7 +120,7 @@ static void microread_event_cb(struct mei_bus_client *client, u32 events,
if (phy->hard_fault != 0)
return;
- if (events & BIT(MEI_BUS_EVENT_RX)) {
+ if (events & BIT(MEI_EVENT_RX)) {
struct sk_buff *skb;
int reply_size;
@@ -128,7 +128,7 @@ static void microread_event_cb(struct mei_bus_client *client, u32 events,
if (!skb)
return;
- reply_size = mei_bus_recv(client, skb->data, MEI_NFC_MAX_READ);
+ reply_size = mei_recv(device, skb->data, MEI_NFC_MAX_READ);
if (reply_size < MEI_NFC_HEADER_SIZE) {
kfree(skb);
return;
@@ -149,7 +149,8 @@ static struct nfc_phy_ops mei_phy_ops = {
.disable = microread_mei_disable,
};
-static int microread_mei_probe(struct mei_bus_client *client)
+static int microread_mei_probe(struct mei_device *device,
+ const struct mei_id *id)
{
struct microread_mei_phy *phy;
int r;
@@ -162,10 +163,10 @@ static int microread_mei_probe(struct mei_bus_client *client)
return -ENOMEM;
}
- phy->client = client;
- mei_bus_set_clientdata(client, phy);
+ phy->device = device;
+ mei_set_clientdata(device, phy);
- r = mei_bus_register_event_cb(client, microread_event_cb, phy);
+ r = mei_register_event_cb(device, microread_event_cb, phy);
if (r) {
pr_err(MICROREAD_DRIVER_NAME ": event cb registration failed\n");
goto err_out;
@@ -185,9 +186,9 @@ err_out:
return r;
}
-static int microread_mei_remove(struct mei_bus_client *client)
+static int microread_mei_remove(struct mei_device *device)
{
- struct microread_mei_phy *phy = mei_bus_get_clientdata(client);
+ struct microread_mei_phy *phy = mei_get_clientdata(device);
pr_info("Removing microread\n");
@@ -201,14 +202,18 @@ static int microread_mei_remove(struct mei_bus_client *client)
return 0;
}
-static struct mei_bus_driver microread_driver = {
- .driver = {
- .name = MICROREAD_DRIVER_NAME,
- },
- .id = {
- .name = MICROREAD_DRIVER_NAME,
- .uuid = MICROREAD_UUID,
- },
+static struct mei_id microread_mei_tbl[] = {
+ { MICROREAD_DRIVER_NAME, MICROREAD_UUID },
+
+ /* required last entry */
+ { }
+};
+
+MODULE_DEVICE_TABLE(mei, microread_mei_tbl);
+
+static struct mei_driver microread_driver = {
+ .id_table = microread_mei_tbl,
+ .name = MICROREAD_DRIVER_NAME,
.probe = microread_mei_probe,
.remove = microread_mei_remove,