1. 15 6月, 2016 1 次提交
    • L
      ASoC: adau17x1: Add support for specifying the MCLK using the CCF · 5d76de61
      Lars-Peter Clausen 提交于
      The devices from the ADAU17X1 family all have a MCLK clock input which
      supplies the master clock for the device. The master clock is used as the
      input clock for the PLL. Currently the MCLK rate as well as the desired PLL
      output frequency need to be supplied by calling snd_soc_dai_set_pll() form
      a machine driver.
      
      Add support for specifying the MCLK using the common clock framework. In
      addition to that also automatically configure the PLL to a suitable rate
      if the master clock was provided using the CCW. This allows to use the
      CODEC driver without any special configuration requirements from the
      machine driver.
      
      While the PLL output frequency can be configured over a (more or less)
      continuous range the narrowness of the range and the other constraints of
      the clocking tree usually only result in two output frequencies that will
      actually be chosen. One for 44.1kHz based rates and one for 48kHz based
      rates, these are the rates that the automatic PLL configuration will use.
      For the rare case where a non-standard setup is required a machine driver
      can disable the auto-configuration and configure a custom frequency using
      the existing mechanisms.
      
      If the common clock framework is not enabled clk_get() will return NULL and
      the driver will function as before and the clock rate needs to be
      configured manually.
      Signed-off-by: NLars-Peter Clausen <lars@metafoo.de>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      5d76de61
  2. 10 6月, 2016 1 次提交
    • L
      ASoC: adau: Factor out shared PLL configuration code · 0eadaa9c
      Lars-Peter Clausen 提交于
      Multiple devices from the ADAU family share the same PLL structure and
      configuration register layout. Introduce a new helper module that can be
      used to calculated the PLL configuration registers based on a specified
      input frequency and the desired output frequency of the PLL.
      
      The ADAU1761/ADAU1781 and ADAU1373 drivers are updated to make use of this
      new helper module. But future drivers for additional devices from the ADAU
      family are also expected to make use of it.
      
      In anticipation of sharing more infrastructure code between different
      devices from the ADAU family the new module is called adau-utils.
      Signed-off-by: NLars-Peter Clausen <lars@metafoo.de>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      0eadaa9c
  3. 28 5月, 2016 1 次提交
    • A
      remove lots of IS_ERR_VALUE abuses · 287980e4
      Arnd Bergmann 提交于
      Most users of IS_ERR_VALUE() in the kernel are wrong, as they
      pass an 'int' into a function that takes an 'unsigned long'
      argument. This happens to work because the type is sign-extended
      on 64-bit architectures before it gets converted into an
      unsigned type.
      
      However, anything that passes an 'unsigned short' or 'unsigned int'
      argument into IS_ERR_VALUE() is guaranteed to be broken, as are
      8-bit integers and types that are wider than 'unsigned long'.
      
      Andrzej Hajda has already fixed a lot of the worst abusers that
      were causing actual bugs, but it would be nice to prevent any
      users that are not passing 'unsigned long' arguments.
      
      This patch changes all users of IS_ERR_VALUE() that I could find
      on 32-bit ARM randconfig builds and x86 allmodconfig. For the
      moment, this doesn't change the definition of IS_ERR_VALUE()
      because there are probably still architecture specific users
      elsewhere.
      
      Almost all the warnings I got are for files that are better off
      using 'if (err)' or 'if (err < 0)'.
      The only legitimate user I could find that we get a warning for
      is the (32-bit only) freescale fman driver, so I did not remove
      the IS_ERR_VALUE() there but changed the type to 'unsigned long'.
      For 9pfs, I just worked around one user whose calling conventions
      are so obscure that I did not dare change the behavior.
      
      I was using this definition for testing:
      
       #define IS_ERR_VALUE(x) ((unsigned long*)NULL == (typeof (x)*)NULL && \
             unlikely((unsigned long long)(x) >= (unsigned long long)(typeof(x))-MAX_ERRNO))
      
      which ends up making all 16-bit or wider types work correctly with
      the most plausible interpretation of what IS_ERR_VALUE() was supposed
      to return according to its users, but also causes a compile-time
      warning for any users that do not pass an 'unsigned long' argument.
      
      I suggested this approach earlier this year, but back then we ended
      up deciding to just fix the users that are obviously broken. After
      the initial warning that caused me to get involved in the discussion
      (fs/gfs2/dir.c) showed up again in the mainline kernel, Linus
      asked me to send the whole thing again.
      
      [ Updated the 9p parts as per Al Viro  - Linus ]
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Cc: Andrzej Hajda <a.hajda@samsung.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Link: https://lkml.org/lkml/2016/1/7/363
      Link: https://lkml.org/lkml/2016/5/27/486
      Acked-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> # For nvmem part
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      287980e4
  4. 24 5月, 2016 1 次提交
  5. 19 5月, 2016 2 次提交
  6. 17 5月, 2016 1 次提交
  7. 13 5月, 2016 10 次提交
  8. 12 5月, 2016 4 次提交
  9. 11 5月, 2016 19 次提交