1. 24 Aug, 2018 6 commits
    • spiiroin's avatar
      [usb_moded] Refactor entering/leaving usb mode. JB#41748 · 64350689
      spiiroin authored
      Split mode switching to three layers: Tracking cable connection state,
      choosing target mode, and performing required actions to activate
      the chosen mode.
      
      Try to minimize places where layer borders are crossed - which should
      work also as an enabler for moving blocking actions to separate thread
      later on.
      
      Arrange logic in such manner that usb gadget is always configured as
      being able to serve some function - fallback being the dummy mass_storage
      function used for charging.
      
      Deprecate command line options that serve no useful purpose after the
      changes.
      Signed-off-by: spiiroin's avatarSimo Piiroinen <simo.piiroinen@jollamobile.com>
      64350689
    • spiiroin's avatar
      [android] Normalize numerical id-values to lower case hex. JB#41748 · 18efbfcc
      spiiroin authored
      Configfs wants to have numbers in '0xbeef' form while android usb wants to
      have 'beef'. Normalizing the output to expected format allows either form
      to be used in usb-moded configuration files.
      Signed-off-by: spiiroin's avatarSimo Piiroinen <simo.piiroinen@jollamobile.com>
      18efbfcc
    • spiiroin's avatar
      [android] Refactor android usb handling module. JB#41748 · 4f9ffa6d
      spiiroin authored
      Make it logically match what is available in configfs module.
      Signed-off-by: spiiroin's avatarSimo Piiroinen <simo.piiroinen@jollamobile.com>
      4f9ffa6d
    • spiiroin's avatar
      [usb_moded] Drop --android-bootup-function option. JB#41748 · 4f53cf48
      spiiroin authored
      The target is to always have android usb enabled with valid function, so
      this workaround is not relevant anymore.
      Signed-off-by: spiiroin's avatarSimo Piiroinen <simo.piiroinen@jollamobile.com>
      4f53cf48
    • spiiroin's avatar
      [usb_moded] Normalize multiline comments · 7a386e38
      spiiroin authored
      Just to make it easier for editor to handle automatic indentation, make
      all C comment continuation lines start with whitespace followed by '*'.
      Signed-off-by: spiiroin's avatarSimo Piiroinen <simo.piiroinen@jollamobile.com>
      7a386e38
    • spiiroin's avatar
      [usb_moded] Add configfs support. Fixes JB#42083 · 692c2cb3
      spiiroin authored
      Add custom Makefile for faster smoke-test rebuilds without spending time
      in configure, autotools, document generation and/or rolling rpm packages.
      
      Add multiple include protection to all header files.
      
      Move function prototypes away from header files that included in the
      development package.
      
      Mass rename functions to have a prefix giving context for the function.
      For the most part the prefix is derived from the name of the compilation
      module containing the function.
      
      Mass normalize indentation to four spaces in all source files.
      
      Augment author lists on each source file based on git committers.
      
      Remove "inline" attributes from not-really-inlineable functions.
      
      Remove .gitignore.
      
      Remove unused modules-android.c source file.
      
      Define _GNU_SOURCE for whole build rather than in individual files.
      
      Fix resource leaks here and there.
      
      Try to avoid hard-coding android usb paths.
      
      Add configfs backend for usb cadget configuration.
      
      Probe supported backends (configfs, android usb, or kmod) on usb-moded
      startup and make them mutually exclusive with each other.
      
      Allow configfs and android usb control structures some time to show up
      if usb-moded is started during device bootup.
      
      Refactor udev event listener to utilize a state machine. Simplifies
      book keeping and makes pc/charger detection heuristics easier to control.
      
      Refactor mode selection to utilize three interconnected mini state machines.
      Allows separating logically wanted mode from mode programmed to usb and
      mode exposed over D-Bus.
      Signed-off-by: spiiroin's avatarSimo Piiroinen <simo.piiroinen@jollamobile.com>
      692c2cb3
  2. 05 Jun, 2018 3 commits
  3. 29 Mar, 2018 1 commit
  4. 28 Mar, 2018 7 commits
  5. 08 Mar, 2018 2 commits
  6. 01 Dec, 2017 2 commits
    • spiiroin's avatar
      [udev] Do not exit if cable state can't be determined · 22bcd9f4
      spiiroin authored
      If usb-moded exits when it can't deduce cable connect state, it will
      be restarted by systemd. As the usb-moded restarts are not going to
      change how the udev status looks like, this repeats until systemd
      moves the usb-moded service to failed state.
      
      Do not exit and assume no usb-cable is connected. In addition to not
      triggering restart spree, this has the additional benefit that the
      usb-moded dbus interface stays available and signaling not-connected
      state.
      Signed-off-by: spiiroin's avatarSimo Piiroinen <simo.piiroinen@jollamobile.com>
      22bcd9f4
    • spiiroin's avatar
      [udev] Suppress repetitive property warnings. Fixes JB#40394 · 0d5a10b7
      spiiroin authored
      Usb-moded expects to see POWER_SUPPLY_PRESENT and POWER_SUPPLY_TYPE
      properties defined for usb power-supply devices. When this is not
      the case, it emits warnings and applies various fallbacks. Since the
      properties get re-evaluated periodically, this also leads to the
      same warnings being repeated.
      
      Refactor the code so that in default verbosity the property warnings
      are emitted only during what looks like cable connect / disconnect.
      Signed-off-by: spiiroin's avatarSimo Piiroinen <simo.piiroinen@jollamobile.com>
      0d5a10b7
  7. 14 Nov, 2017 1 commit
  8. 17 Aug, 2017 3 commits
    • spiiroin's avatar
      [modesetting] Write dummy value to clear ffs function list. Fixes JB#39402 · e7536ebc
      spiiroin authored
      It seems that kernels in many if not all devices ignore writing of empty
      string to ffs function control file - the function list is left as it were
      and this can cause subtle issues on the next cable connect. On the other
      hand writing a non-existing "function" will clear the function list, but
      causes write error to be reported.
      
      Treat attempts to clear function list as a special case so that non-empty
      string gets written and the resulting write error is ignored under normal
      logging verbosity.
      Signed-off-by: spiiroin's avatarSimo Piiroinen <simo.piiroinen@jollamobile.com>
      e7536ebc
    • spiiroin's avatar
      [debug] Do diagnostic logging for each D-Bus signal broadcast · 3350e0b6
      spiiroin authored
      When debugging order and timing of issues related to several processes
      it is handy to have signals emitted by usb-moded in the journal along
      with the other related logging.
      Signed-off-by: spiiroin's avatarSimo Piiroinen <simo.piiroinen@jollamobile.com>
      3350e0b6
    • spiiroin's avatar
      [debug] Optionally include file/line/function info when logging to stderr · 3420f50a
      spiiroin authored
      When debugging usb-moded it is time consuming to find where the
      various debug messages originate from.
      
      When logging to stderr, prefix the messages with source code
      position info similar as gcc uses for reporting compilation
      issues. This allows browsing usb-moded code with jump to the
      next error functionality available in many text editors.
      
      Since the amount of information passed to logging functions
      is significantly increased, check whether the message would
      be emitted or not before evaluating formatting parameters etc.
      
      Also make variables relating to logging level, type, etc
      available only via accessor functions.
      Signed-off-by: spiiroin's avatarSimo Piiroinen <simo.piiroinen@jollamobile.com>
      3420f50a
  9. 11 Aug, 2017 1 commit
  10. 26 Apr, 2017 8 commits
  11. 24 Mar, 2017 3 commits
  12. 13 Mar, 2017 2 commits
    • spiiroin's avatar
      [doc] Document undocumented structures · 1e3378f6
      spiiroin authored
      Undocumented structures cause warnings during documentation generation.
      
      Add missing doxygen documentation comments for structures.
      Signed-off-by: spiiroin's avatarSimo Piiroinen <simo.piiroinen@jollamobile.com>
      1e3378f6
    • spiiroin's avatar
      [usb-moded] Use MEEGOLOCK features only when enabled. Fixes MER#1765 · 04e3a753
      spiiroin authored
      The is_in_user_state() is used unconditionally, but it is available only
      when --enable-meegodevlock option has been passed to configure. Also,
      the related "usb_moded-dsme.h" is included both unconditionally and from
      withing a #ifdef MEEGOLOCK block - which hides the configuration problem
      until build proceeds to linking phase.
      
      Make the call is_in_user_state() only if MEEGOLOCK is defined.
      
      Remove the extraneous "usb_moded-dsme.h" include to make such errors
      visible already in compilation stage due to missing prototypes.
      
      Also, make sure the "usb_moded-dsme.h" can't be included without
      warnings unless MEEGOLOCK is defined.
      Signed-off-by: spiiroin's avatarSimo Piiroinen <simo.piiroinen@jollamobile.com>
      04e3a753
  13. 14 Feb, 2017 1 commit
    • spiiroin's avatar
      [usb-moded] Use single function to exit charging fallback. Fixes JB#37759 · 8286dbf8
      spiiroin authored
      Whether and when we can switch for example from charging fallback to
      developer mode depends on multiple triggers - the order of which might vary
      from one device/bootup to another. Using custom state evaluation code at
      each possible trigger location easily causes unexpected results like device
      staying in fallback charging mode until the cable is re-attached.
      
      Add a state evaluation function and call it from those triggers that
      potentially allow exit from the charging fallback mode.
      Signed-off-by: spiiroin's avatarSimo Piiroinen <simo.piiroinen@jollamobile.com>
      8286dbf8