1. 03 Oct, 2014 12 commits
    • Alex Elder's avatar
      greybus: October 1 updates · 63cc932b
      Alex Elder authored
      Update the definitions in "greybus_manifest.h" to reflect the
      changes to the Greybus specification made on October 1.
      
      They are:
          - renaming "device" to be "interface"
          - renumbering greybus descriptor type
          - eliminating the notion of a "function"
          - defining a CPort's protocol in the CPort descriptor
          - having a "class" take on the types previously used for "function"
          - renaming "serial number" to be "unique id" (for now)
          - relying on an interface's maximum cport id to determine how
            much device+cport address space the interface consumes
          - adding a simple class descriptor
          - renaming gb_interface->interface_id to be gb_interface->id
      
      This also reorders some things to match ordering in the document,
      and adds some commentary for the various structures.
      
      Since greybus_function_type is gone, we eliminate the "type" field
      from a function structure.  (Functions are going away, next.)
      Signed-off-by: default avatarAlex Elder <elder@linaro.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      63cc932b
    • Alex Elder's avatar
      greybus: fix connection header declarations · b05890db
      Alex Elder authored
      Changes to the create/destroy connection functions were not properly
      reflected in the header file.  Fix that.  There's also no need to
      include anything other than "greybus.h".
      Signed-off-by: default avatarAlex Elder <elder@linaro.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      b05890db
    • Alex Elder's avatar
      greybus: kill off old manifest code · 459164b1
      Alex Elder authored
      Now that the new manifest code is in place, delete the old stuff
      from "core.c".
      Signed-off-by: default avatarAlex Elder <elder@linaro.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      459164b1
    • Alex Elder's avatar
      greybus: manifest cport descriptor parsing · c095bbcf
      Alex Elder authored
      Add support for parsing one or more cports descriptors in a module
      manifest.  There must be at least one for each interface, but we impose
      no limit on the number of interfaces associated with a module.
      Signed-off-by: default avatarAlex Elder <elder@linaro.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      c095bbcf
    • Alex Elder's avatar
      greybus: manifest interface descriptor parsing · d88bfb5b
      Alex Elder authored
      Add support for parsing one or more interface descriptors in a module
      manifest.  There must be at least one, but we impose no limit on the
      number of interfaces associated with a module.
      Signed-off-by: default avatarAlex Elder <elder@linaro.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      d88bfb5b
    • Alex Elder's avatar
      greybus: start improving manifest parsing · b09c94a1
      Alex Elder authored
      Currently the module manifest parsing code is sort of representative
      only and is not really very useful.
      
      This patch begins doing "real" parsing of the module manifest.
      It scans the module manifest to identify the descriptors it holds.
      It then verifies there's only one module descriptor found, and
      initializes new some fields in the gb_module structure based on what
      it contains (converting what's found to native byte order).
      Note that if anything unexpected is found or other errors occur when
      parsing the manifest, the parse fails.
      
      Because we now save this converted information when it's parsed we
      no longer have a greybus_descriptor_module struct within a struct
      gb_module.  And because we've already converted these values, we can
      do a little less work displaying values in sysfs.  (We also now show
      vendor, product, and version values in the right byte order.)  This
      eliminates the need for greybus_string(), so get rid of it.
      
      It also slightly simplifies the greybus module matching code.
      
      Move some existing parsing code into a new file, "manifest.c".
      Signed-off-by: default avatarAlex Elder <elder@linaro.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      b09c94a1
    • Alex Elder's avatar
      greybus: introduce an operation abstraction · e88afa58
      Alex Elder authored
      This patch defines a new "operation" abstraction.  An operation is a
      request from by one end of a connection to the function (or AP) on
      the other, coupled with a matching response returned to the requestor.
      The request indicates some action to be performed by the target of
      the request (such as "read some data").  Once the action has
      completed the target sends back an operation response message.
      Additional data can be supplied by the sender with its request,
      and/or by the target with its resposne message.
      
      Each request message has a unique id, generated by the sender.
      The sender recognizes the matching response by the presence
      of this id value.  Each end of a connection is responsible
      for creating unique ids for the requests it sends.
      
      An operation also has a type, whose interpretation is dependent on
      the function type on the end of the connection opposite the sender.
      It is up to the creator of an operation to fill in the data (if any)
      to be sent with the request.
      
      Note that not all requests are initiated by the AP.  Incoming data
      on a module function can result in a request message being sent from
      that function to the AP to notify of the data's arrival.  Once the
      AP has processed this, it sends a response to the sender.
      
      Every operation response contains a status byte.  If it's value
      is 0, the operation was successful.  Any other value indicates
      an error.
      
      Add a defintion of U16_MAX to "kernel_ver.h".
      Signed-off-by: default avatarAlex Elder <elder@linaro.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      e88afa58
    • Alex Elder's avatar
      greybus: introduce a connection abstraction · c68adb2f
      Alex Elder authored
      Within a UniPro network a pair of CPorts can be linked to form a
      UniPro Connection.  This patch creates a new abstraction to
      represent an AP CPort that is connected with a CPort used by a
      function within a Greybus module.
      Signed-off-by: default avatarAlex Elder <elder@linaro.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      c68adb2f
    • Alex Elder's avatar
      greybus: define greybus function abstraction · ef0d2ba2
      Alex Elder authored
      Define new source files "function.h" and "function.c" to contain the
      definitions of the Greybus function abstraction.  A Greybus function
      represents an active entity connected to a CPort implemented by a
      Greybus interface.  A Greybus function has a type, which defines the
      protocol to be used to interact with the function.  A Greybus
      interface normally has at least two functions, but potentially many
      more.
      Signed-off-by: default avatarAlex Elder <elder@linaro.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      ef0d2ba2
    • Alex Elder's avatar
      greybus: define greybus interface abstraction · 8c12cde3
      Alex Elder authored
      Define new source files "interface.h" and "interface.c" to contain
      the definitions of the Greybus interface abstraction.  A Greybus
      interface represents a UniPro device present in a UniPro module.
      For Project Ara, each interface block on a module implements a
      UniPro interface.
      Signed-off-by: default avatarAlex Elder <elder@linaro.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      8c12cde3
    • Alex Elder's avatar
      greybus: isolate greybus module code · e1e9dbdd
      Alex Elder authored
      Define new source files "module.h" and "module.c" to separate the
      definitions of the Greybus module abstraction from other code.
      
      Rename "greybus_module" to be "gb_module", for brevity.  Do the same
      for a few other symbols with "greybus_module" in their names.  A few
      (like greybus_module_id) are more visible outside this kernel module
      so we'll keep their names more descriptive.
      
      Add a definition for U8_MAX in "kernel_ver.h" (it appeared in 3.14).
      Signed-off-by: default avatarAlex Elder <elder@linaro.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      e1e9dbdd
    • Alex Elder's avatar
      greybus: descriptor type updates · ecf7d579
      Alex Elder authored
      Some more updates to the definition of a manifest descriptor.
          - We get rid of function descriptors.  The type of function is
            easily specified with the CPort it uses.
          - Add a new interface descriptor type.
          - Clean up the CPort descriptor structure, eliminating fields
            that serve no purpose and adding the function id field
      
      The sysfs stuff will be updated a little later to add entries
      for the Greybus interfaces associated with modules.
      
      Rearrange the order of a few things in "greybus_manifest.h".
      Signed-off-by: default avatarAlex Elder <elder@linaro.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      ecf7d579
  2. 01 Oct, 2014 5 commits
  3. 30 Sep, 2014 14 commits
  4. 24 Sep, 2014 4 commits
  5. 23 Sep, 2014 2 commits
    • Alex Elder's avatar
      greybus: rename struct greybus_device · 778c69c9
      Alex Elder authored
      The greybus_device structure represents an Ara phone module.
      It does *not* (necessarily) represent a UniPro device, nor any
      device (like an i2c adapter) that might reside on an Ara module.
      
      As such, rename struct greybus_device to be struct greybus_module.
      Rename all symbols having that type to be "gmod" rather than "gdev".
      Signed-off-by: default avatarAlex Elder <elder@linaro.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      778c69c9
    • Alex Elder's avatar
      greybus: simple fixes · 69f93abf
      Alex Elder authored
      A few silly little fixes.
          - Clear out some unnecessary #includes in "debugfs.c"
          - Drop some unneeded parentheses in hd_to_es1()
          - Use &hd->hd_priv in hd_to_es1() to emphasize we are working
            with an embedded array, not a pointer
          - Fix a comment in the header for ap_probe()
          - Drop a duplicate #include in "gpio-gb.c"
          - Fix a use-before-set problem in set_serial_info()
      Signed-off-by: default avatarAlex Elder <elder@linaro.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      69f93abf
  6. 22 Sep, 2014 3 commits