aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorWaldemar Rymarkiewicz <waldemar.rymarkiewicz@tieto.com>2013-04-03 02:02:11 -0400
committerSamuel Ortiz <sameo@linux.intel.com>2013-04-11 10:29:06 -0400
commitf87bc9fb62780970ff437e9d556b143cbe9f6528 (patch)
tree1eb22ef41ae3ba2d9ff83d7d74c4852358b67220 /drivers
parentd5590bba37f3c7d496195648532d5313abb43891 (diff)
NFC: pn533: Move wq_in_error to cmd context
Rename 'wq_in_error' field to more relevant 'status' and move it to cmd context struct. Signed-off-by: Waldemar Rymarkiewicz <waldemar.rymarkiewicz@tieto.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/nfc/pn533.c24
1 files changed, 12 insertions, 12 deletions
diff --git a/drivers/nfc/pn533.c b/drivers/nfc/pn533.c
index 326cefbfb14f..edee0d55d8f4 100644
--- a/drivers/nfc/pn533.c
+++ b/drivers/nfc/pn533.c
@@ -331,7 +331,6 @@ struct pn533 {
331 struct list_head cmd_queue; 331 struct list_head cmd_queue;
332 struct pn533_cmd *cmd; 332 struct pn533_cmd *cmd;
333 u8 cmd_pending; 333 u8 cmd_pending;
334 int wq_in_error;
335 struct mutex cmd_lock; /* protects cmd queue */ 334 struct mutex cmd_lock; /* protects cmd queue */
336 335
337 void *cmd_complete_mi_arg; 336 void *cmd_complete_mi_arg;
@@ -357,6 +356,7 @@ struct pn533 {
357struct pn533_cmd { 356struct pn533_cmd {
358 struct list_head queue; 357 struct list_head queue;
359 u8 code; 358 u8 code;
359 int status;
360 struct sk_buff *req; 360 struct sk_buff *req;
361 struct sk_buff *resp; 361 struct sk_buff *resp;
362 int resp_len; 362 int resp_len;
@@ -506,8 +506,11 @@ static bool pn533_rx_frame_is_cmd_response(struct pn533 *dev, void *frame)
506static void pn533_recv_response(struct urb *urb) 506static void pn533_recv_response(struct urb *urb)
507{ 507{
508 struct pn533 *dev = urb->context; 508 struct pn533 *dev = urb->context;
509 struct pn533_cmd *cmd = dev->cmd;
509 u8 *in_frame; 510 u8 *in_frame;
510 511
512 cmd->status = urb->status;
513
511 switch (urb->status) { 514 switch (urb->status) {
512 case 0: 515 case 0:
513 break; /* success */ 516 break; /* success */
@@ -516,13 +519,11 @@ static void pn533_recv_response(struct urb *urb)
516 nfc_dev_dbg(&dev->interface->dev, 519 nfc_dev_dbg(&dev->interface->dev,
517 "The urb has been canceled (status %d)", 520 "The urb has been canceled (status %d)",
518 urb->status); 521 urb->status);
519 dev->wq_in_error = urb->status;
520 goto sched_wq; 522 goto sched_wq;
521 case -ESHUTDOWN: 523 case -ESHUTDOWN:
522 default: 524 default:
523 nfc_dev_err(&dev->interface->dev, 525 nfc_dev_err(&dev->interface->dev,
524 "Urb failure (status %d)", urb->status); 526 "Urb failure (status %d)", urb->status);
525 dev->wq_in_error = urb->status;
526 goto sched_wq; 527 goto sched_wq;
527 } 528 }
528 529
@@ -534,19 +535,17 @@ static void pn533_recv_response(struct urb *urb)
534 535
535 if (!dev->ops->rx_is_frame_valid(in_frame)) { 536 if (!dev->ops->rx_is_frame_valid(in_frame)) {
536 nfc_dev_err(&dev->interface->dev, "Received an invalid frame"); 537 nfc_dev_err(&dev->interface->dev, "Received an invalid frame");
537 dev->wq_in_error = -EIO; 538 cmd->status = -EIO;
538 goto sched_wq; 539 goto sched_wq;
539 } 540 }
540 541
541 if (!pn533_rx_frame_is_cmd_response(dev, in_frame)) { 542 if (!pn533_rx_frame_is_cmd_response(dev, in_frame)) {
542 nfc_dev_err(&dev->interface->dev, 543 nfc_dev_err(&dev->interface->dev,
543 "It it not the response to the last command"); 544 "It it not the response to the last command");
544 dev->wq_in_error = -EIO; 545 cmd->status = -EIO;
545 goto sched_wq; 546 goto sched_wq;
546 } 547 }
547 548
548 dev->wq_in_error = 0;
549
550sched_wq: 549sched_wq:
551 queue_work(dev->wq, &dev->cmd_complete_work); 550 queue_work(dev->wq, &dev->cmd_complete_work);
552} 551}
@@ -561,9 +560,12 @@ static int pn533_submit_urb_for_response(struct pn533 *dev, gfp_t flags)
561static void pn533_recv_ack(struct urb *urb) 560static void pn533_recv_ack(struct urb *urb)
562{ 561{
563 struct pn533 *dev = urb->context; 562 struct pn533 *dev = urb->context;
563 struct pn533_cmd *cmd = dev->cmd;
564 struct pn533_std_frame *in_frame; 564 struct pn533_std_frame *in_frame;
565 int rc; 565 int rc;
566 566
567 cmd->status = urb->status;
568
567 switch (urb->status) { 569 switch (urb->status) {
568 case 0: 570 case 0:
569 break; /* success */ 571 break; /* success */
@@ -572,13 +574,11 @@ static void pn533_recv_ack(struct urb *urb)
572 nfc_dev_dbg(&dev->interface->dev, 574 nfc_dev_dbg(&dev->interface->dev,
573 "The urb has been stopped (status %d)", 575 "The urb has been stopped (status %d)",
574 urb->status); 576 urb->status);
575 dev->wq_in_error = urb->status;
576 goto sched_wq; 577 goto sched_wq;
577 case -ESHUTDOWN: 578 case -ESHUTDOWN:
578 default: 579 default:
579 nfc_dev_err(&dev->interface->dev, 580 nfc_dev_err(&dev->interface->dev,
580 "Urb failure (status %d)", urb->status); 581 "Urb failure (status %d)", urb->status);
581 dev->wq_in_error = urb->status;
582 goto sched_wq; 582 goto sched_wq;
583 } 583 }
584 584
@@ -586,7 +586,7 @@ static void pn533_recv_ack(struct urb *urb)
586 586
587 if (!pn533_std_rx_frame_is_ack(in_frame)) { 587 if (!pn533_std_rx_frame_is_ack(in_frame)) {
588 nfc_dev_err(&dev->interface->dev, "Received an invalid ack"); 588 nfc_dev_err(&dev->interface->dev, "Received an invalid ack");
589 dev->wq_in_error = -EIO; 589 cmd->status = -EIO;
590 goto sched_wq; 590 goto sched_wq;
591 } 591 }
592 592
@@ -594,7 +594,7 @@ static void pn533_recv_ack(struct urb *urb)
594 if (rc) { 594 if (rc) {
595 nfc_dev_err(&dev->interface->dev, 595 nfc_dev_err(&dev->interface->dev,
596 "usb_submit_urb failed with result %d", rc); 596 "usb_submit_urb failed with result %d", rc);
597 dev->wq_in_error = rc; 597 cmd->status = rc;
598 goto sched_wq; 598 goto sched_wq;
599 } 599 }
600 600
@@ -676,7 +676,7 @@ static void pn533_build_cmd_frame(struct pn533 *dev, u8 cmd_code,
676static int pn533_send_async_complete(struct pn533 *dev) 676static int pn533_send_async_complete(struct pn533 *dev)
677{ 677{
678 struct pn533_cmd *cmd = dev->cmd; 678 struct pn533_cmd *cmd = dev->cmd;
679 int status = dev->wq_in_error; 679 int status = cmd->status;
680 680
681 struct sk_buff *req = cmd->req; 681 struct sk_buff *req = cmd->req;
682 struct sk_buff *resp = cmd->resp; 682 struct sk_buff *resp = cmd->resp;