1. 05 Nov, 2018 10 commits
    • Viresh Kumar's avatar
      OPP: Remove of_dev_pm_opp_find_required_opp() · 534245cc
      Viresh Kumar authored
      This isn't used anymore, remove it.
      Reviewed-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
      Signed-off-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
      534245cc
    • Viresh Kumar's avatar
      OPP: Rename and relocate of_genpd_opp_to_performance_state() · 4c6a343e
      Viresh Kumar authored
      The OPP core already has the performance state values for each of the
      genpd's OPPs and there is no need to call the genpd callback again to
      get the performance state for the case where the end device doesn't have
      an OPP table and has the "required-opps" property directly in its node.
      
      This commit renames of_genpd_opp_to_performance_state() as
      of_get_required_opp_performance_state() and moves it to the OPP core, as
      it is all about OPP stuff now.
      Reviewed-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
      Signed-off-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
      4c6a343e
    • Viresh Kumar's avatar
      OPP: Configure all required OPPs · ca1b5d77
      Viresh Kumar authored
      Now that all the infrastructure is in place to support multiple required
      OPPs, lets switch over to using it.
      
      A new internal routine _set_required_opps() takes care of updating
      performance state for all the required OPPs. With this the performance
      state updates are supported even when the end device needs to configure
      regulators as well, that wasn't the case earlier.
      
      The pstates were earlier stored in the end device's OPP structures, that
      also changes now as those values are stored in the genpd's OPP
      structures. And so we switch over to using
      pm_genpd_opp_to_performance_state() instead of
      of_genpd_opp_to_performance_state() to get performance state for the
      genpd OPPs.
      
      The routine _generic_set_opp_domain() is not required anymore and is
      removed.
      
      On errors we don't try to recover by reverting to old settings as things
      are really complex now and the calls here should never really fail
      unless there is a bug. There is no point increasing the complexity, for
      code which will never be executed.
      Reviewed-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
      Signed-off-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
      ca1b5d77
    • Viresh Kumar's avatar
      OPP: Add dev_pm_opp_{set|put}_genpd_virt_dev() helper · 4f018bc0
      Viresh Kumar authored
      Multiple generic power domains for a consumer device are supported with
      the help of virtual devices, which are created for each consumer device
      - genpd pair. These are the device structures which are attached to the
      power domain and are required by the OPP core to set the performance
      state of the genpd.
      
      The helpers added by this commit are required to be called once for each
      of these virtual devices. These are required only if multiple domains
      are available for a device, otherwise the actual device structure will
      be used instead by the OPP core.
      
      The new helpers also support the complex cases where the consumer device
      wouldn't always require all the domains. For example, a camera may
      require only one power domain during normal operations but two during
      high resolution operations. The consumer driver can call
      dev_pm_opp_put_genpd_virt_dev(high_resolution_genpd_virt_dev) if it is
      currently operating in the normal mode and doesn't have any performance
      requirements from the genpd which manages high resolution power
      requirements. The consumer driver can later call
      dev_pm_opp_set_genpd_virt_dev(high_resolution_genpd_virt_dev) once it
      switches back to the high resolution mode.
      
      The new helpers differ from other OPP set/put helpers as the new ones
      can be called with OPPs initialized for the table as we may need to call
      them on the fly because of the complex case explained above. For this
      reason it is possible that the genpd virt_dev structure may be used in
      parallel while the new helpers are running and a new mutex is added to
      protect against that. We didn't use the existing opp_table->lock mutex
      as that is widely used in the OPP core and we will need this lock in the
      dev_pm_opp_set_rate() helper while changing OPP and we need to make sure
      there is not much contention while doing that as that's the hotpath.
      Reviewed-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
      Signed-off-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
      4f018bc0
    • Viresh Kumar's avatar
      PM / Domains: Add genpd_opp_to_performance_state() · e38f89d3
      Viresh Kumar authored
      The OPP core currently stores the performance state in the consumer
      device's OPP table, but that is going to change going forward and
      performance state will rather be set directly in the genpd's OPP table.
      
      For that we need to get the performance state for genpd's device
      structure (genpd->dev) instead of the consumer device's structure. Add a
      new helper to do that.
      Reviewed-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
      Signed-off-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
      e38f89d3
    • Viresh Kumar's avatar
      OPP: Populate OPPs from "required-opps" property · da544b61
      Viresh Kumar authored
      An earlier commit populated the OPP tables from the "required-opps"
      property, this commit populates the individual OPPs. This is repeated
      for each OPP in the OPP table and these populated OPPs will be used by
      later commits.
      Reviewed-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
      Signed-off-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
      da544b61
    • Viresh Kumar's avatar
      OPP: Populate required opp tables from "required-opps" property · 5d6d106f
      Viresh Kumar authored
      The current implementation works only for the case where a single
      phandle is present in the "required-opps" property, while DT allows
      multiple phandles to be present there.
      
      This patch adds new infrastructure to parse all the phandles present in
      "required-opps" property and save pointers of the required OPP's OPP
      tables. These will be used by later commits.
      Reviewed-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
      Signed-off-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
      5d6d106f
    • Viresh Kumar's avatar
      OPP: Separate out custom OPP handler specific code · 7e535993
      Viresh Kumar authored
      Create a separate routine to take care of custom set_opp() handler
      specific stuff.
      Reviewed-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
      Signed-off-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
      7e535993
    • Viresh Kumar's avatar
      OPP: Identify and mark genpd OPP tables · 61d8e7c7
      Viresh Kumar authored
      We need to handle genpd OPP tables differently, this is already the case
      at one location and will be extended going forward. Add another field to
      the OPP table to check if the table belongs to a genpd or not.
      Reviewed-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
      Signed-off-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
      61d8e7c7
    • Viresh Kumar's avatar
      PM / Domains: Rename genpd virtual devices as virt_dev · 560928b2
      Viresh Kumar authored
      There are several struct device instances that genpd core handles. The
      most common one is the consumer device structure, which is named
      (correctly) as "dev" within genpd core. The second one is the genpd's
      device structure, referenced as genpd->dev. The third one is the virtual
      device structures created by the genpd core to represent the consumer
      device for multiple power domain case, currently named as genpd_dev. The
      naming of these virtual devices isn't very clear or readable and it
      looks more like the genpd->dev.
      
      Rename the virtual device instances within the genpd core as "virt_dev".
      Reviewed-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
      Signed-off-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
      560928b2
  2. 04 Nov, 2018 9 commits
    • Linus Torvalds's avatar
      Linux 4.20-rc1 · 65102238
      Linus Torvalds authored
      65102238
    • Linus Torvalds's avatar
      Merge tag 'tags/upstream-4.20-rc1' of git://git.infradead.org/linux-ubifs · 42bd06e9
      Linus Torvalds authored
      Pull UBIFS updates from Richard Weinberger:
      
       - Full filesystem authentication feature, UBIFS is now able to have the
         whole filesystem structure authenticated plus user data encrypted and
         authenticated.
      
       - Minor cleanups
      
      * tag 'tags/upstream-4.20-rc1' of git://git.infradead.org/linux-ubifs: (26 commits)
        ubifs: Remove unneeded semicolon
        Documentation: ubifs: Add authentication whitepaper
        ubifs: Enable authentication support
        ubifs: Do not update inode size in-place in authenticated mode
        ubifs: Add hashes and HMACs to default filesystem
        ubifs: authentication: Authenticate super block node
        ubifs: Create hash for default LPT
        ubfis: authentication: Authenticate master node
        ubifs: authentication: Authenticate LPT
        ubifs: Authenticate replayed journal
        ubifs: Add auth nodes to garbage collector journal head
        ubifs: Add authentication nodes to journal
        ubifs: authentication: Add hashes to index nodes
        ubifs: Add hashes to the tree node cache
        ubifs: Create functions to embed a HMAC in a node
        ubifs: Add helper functions for authentication support
        ubifs: Add separate functions to init/crc a node
        ubifs: Format changes for authentication support
        ubifs: Store read superblock node
        ubifs: Drop write_node
        ...
      42bd06e9
    • Linus Torvalds's avatar
      Merge tag 'nfs-for-4.20-2' of git://git.linux-nfs.org/projects/trondmy/linux-nfs · 4710e789
      Linus Torvalds authored
      Pull NFS client bugfixes from Trond Myklebust:
       "Highlights include:
      
        Bugfix:
         - Fix build issues on architectures that don't provide 64-bit cmpxchg
      
        Cleanups:
         - Fix a spelling mistake"
      
      * tag 'nfs-for-4.20-2' of git://git.linux-nfs.org/projects/trondmy/linux-nfs:
        NFS: fix spelling mistake, EACCESS -> EACCES
        SUNRPC: Use atomic(64)_t for seq_send(64)
      4710e789
    • Linus Torvalds's avatar
      Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 35e74524
      Linus Torvalds authored
      Pull more timer updates from Thomas Gleixner:
       "A set of commits for the new C-SKY architecture timers"
      
      * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        dt-bindings: timer: gx6605s SOC timer
        clocksource/drivers/c-sky: Add gx6605s SOC system timer
        dt-bindings: timer: C-SKY Multi-processor timer
        clocksource/drivers/c-sky: Add C-SKY SMP timer
      35e74524
    • Linus Torvalds's avatar
      Merge tag 'ntb-4.20' of git://github.com/jonmason/ntb · 04578e84
      Linus Torvalds authored
      Pull NTB updates from Jon Mason:
       "Fairly minor changes and bug fixes:
      
        NTB IDT thermal changes and hook into hwmon, ntb_netdev clean-up of
        private struct, and a few bug fixes"
      
      * tag 'ntb-4.20' of git://github.com/jonmason/ntb:
        ntb: idt: Alter the driver info comments
        ntb: idt: Discard temperature sensor IRQ handler
        ntb: idt: Add basic hwmon sysfs interface
        ntb: idt: Alter temperature read method
        ntb_netdev: Simplify remove with client device drvdata
        NTB: transport: Try harder to alloc an aligned MW buffer
        ntb: ntb_transport: Mark expected switch fall-throughs
        ntb: idt: Set PCIe bus address to BARLIMITx
        NTB: ntb_hw_idt: replace IS_ERR_OR_NULL with regular NULL checks
        ntb: intel: fix return value for ndev_vec_mask()
        ntb_netdev: fix sleep time mismatch
      04578e84
    • Linus Torvalds's avatar
      Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 71e56028
      Linus Torvalds authored
      Pull scheduler fixes from Ingo Molnar:
       "A memory (under-)allocation fix and a comment fix"
      
      * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        sched/topology: Fix off by one bug
        sched/rt: Update comment in pick_next_task_rt()
      71e56028
    • Linus Torvalds's avatar
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 601a8807
      Linus Torvalds authored
      Pull x86 fixes from Ingo Molnar:
       "A number of fixes and some late updates:
      
         - make in_compat_syscall() behavior on x86-32 similar to other
           platforms, this touches a number of generic files but is not
           intended to impact non-x86 platforms.
      
         - objtool fixes
      
         - PAT preemption fix
      
         - paravirt fixes/cleanups
      
         - cpufeatures updates for new instructions
      
         - earlyprintk quirk
      
         - make microcode version in sysfs world-readable (it is already
           world-readable in procfs)
      
         - minor cleanups and fixes"
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        compat: Cleanup in_compat_syscall() callers
        x86/compat: Adjust in_compat_syscall() to generic code under !COMPAT
        objtool: Support GCC 9 cold subfunction naming scheme
        x86/numa_emulation: Fix uniform-split numa emulation
        x86/paravirt: Remove unused _paravirt_ident_32
        x86/mm/pat: Disable preemption around __flush_tlb_all()
        x86/paravirt: Remove GPL from pv_ops export
        x86/traps: Use format string with panic() call
        x86: Clean up 'sizeof x' => 'sizeof(x)'
        x86/cpufeatures: Enumerate MOVDIR64B instruction
        x86/cpufeatures: Enumerate MOVDIRI instruction
        x86/earlyprintk: Add a force option for pciserial device
        objtool: Support per-function rodata sections
        x86/microcode: Make revision and processor flags world-readable
      601a8807
    • Linus Torvalds's avatar
      Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 01897f3e
      Linus Torvalds authored
      Pull perf updates and fixes from Ingo Molnar:
       "These are almost all tooling updates: 'perf top', 'perf trace' and
        'perf script' fixes and updates, an UAPI header sync with the merge
        window versions, license marker updates, much improved Sparc support
        from David Miller, and a number of fixes"
      
      * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (66 commits)
        perf intel-pt/bts: Calculate cpumode for synthesized samples
        perf intel-pt: Insert callchain context into synthesized callchains
        perf tools: Don't clone maps from parent when synthesizing forks
        perf top: Start display thread earlier
        tools headers uapi: Update linux/if_link.h header copy
        tools headers uapi: Update linux/netlink.h header copy
        tools headers: Sync the various kvm.h header copies
        tools include uapi: Update linux/mmap.h copy
        perf trace beauty: Use the mmap flags table generated from headers
        perf beauty: Wire up the mmap flags table generator to the Makefile
        perf beauty: Add a generator for MAP_ mmap's flag constants
        tools include uapi: Update asound.h copy
        tools arch uapi: Update asm-generic/unistd.h and arm64 unistd.h copies
        tools include uapi: Update linux/fs.h copy
        perf callchain: Honour the ordering of PERF_CONTEXT_{USER,KERNEL,etc}
        perf cs-etm: Correct CPU mode for samples
        perf unwind: Take pgoff into account when reporting elf to libdwfl
        perf top: Do not use overwrite mode by default
        perf top: Allow disabling the overwrite mode
        perf trace: Beautify mount's first pathname arg
        ...
      01897f3e
    • Linus Torvalds's avatar
      Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · e9ebc215
      Linus Torvalds authored
      Pull irq fixes from Ingo Molnar:
       "An irqchip driver fix and a memory (over-)allocation fix"
      
      * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        irqchip/irq-mvebu-sei: Fix a NULL vs IS_ERR() bug in probe function
        irq/matrix: Fix memory overallocation
      e9ebc215
  3. 03 Nov, 2018 21 commits