am7xxx: add a note on the symmetry of read_header() and send_header()
authorAntonio Ospite <ospite@studenti.unina.it>
Wed, 14 Nov 2012 11:08:07 +0000 (12:08 +0100)
committerAntonio Ospite <ospite@studenti.unina.it>
Wed, 14 Nov 2012 11:26:42 +0000 (12:26 +0100)
In read_header we do:
  1. read data
  2. unserialize header
  3. validity check
  4. dump header

In send_header:
  1. dump header
  2. validity check (we skip it, actually)
  3. serialize header
  4. send data

src/am7xxx.c

index 47e04bb..c039147 100644 (file)
@@ -386,8 +386,6 @@ static int read_header(am7xxx_device *dev, struct am7xxx_header *h)
 
        unserialize_header(dev->buffer, h);
 
-       debug_dump_header(dev->ctx, h);
-
        if (h->direction == AM7XXX_DIRECTION_IN) {
                ret = 0;
        } else {
@@ -396,6 +394,8 @@ static int read_header(am7xxx_device *dev, struct am7xxx_header *h)
                ret = -EINVAL;
        }
 
+       debug_dump_header(dev->ctx, h);
+
 out:
        return ret;
 }
@@ -406,7 +406,13 @@ static int send_header(am7xxx_device *dev, struct am7xxx_header *h)
 
        debug_dump_header(dev->ctx, h);
 
+       /* For symmetry with read_header() we should check here for
+        * h->direction == AM7XXX_DIRECTION_OUT but we just ensure that in all
+        * the callers and save some cycles here.
+        */
+
        serialize_header(h, dev->buffer);
+
        ret = send_data(dev, dev->buffer, AM7XXX_HEADER_WIRE_SIZE);
        if (ret < 0)
                error(dev->ctx, "failed to send data\n");