1. 30 Sep, 2022 5 commits
    • Serge Semin's avatar
      clk: baikal-t1: Move reset-controls code into a dedicated module · 70fa8954
      Serge Semin authored
      Before adding the directly controlled resets support it's reasonable to
      move the existing resets control functionality into a dedicated object for
      the sake of the CCU dividers clock driver simplification. After the new
      functionality was added clk-ccu-div.c would have got to a mixture of the
      weakly dependent clocks and resets methods. Splitting the methods up into
      the two objects will make the code easier to read and maintain. It shall
      also improve the code scalability (though hopefully we won't need this
      part that much in the future).
      
      The reset control functionality is now implemented in the framework of a
      single unit since splitting it up doesn't make much sense due to
      relatively simple reset operations. The ccu-rst.c has been designed to be
      looking like ccu-div.c or ccu-pll.c with two globally available methods
      for the sake of the code unification and better code readability.
      
      This commit doesn't provide any change in the CCU reset implementation
      semantics. As before the driver will support the trigger-like CCU resets
      only, which are responsible for the AXI-bus, APB-bus and SATA-ref blocks
      reset. The assert/de-assert-capable reset controls support will be added
      in the next commit.
      
      Note the CCU Clock dividers and resets functionality split up was possible
      due to not having any side-effects (at least we didn't found ones) of the
      regmap-based concurrent access of the common CCU dividers/reset CSRs.
      Signed-off-by: default avatarSerge Semin <Sergey.Semin@baikalelectronics.ru>
      Reviewed-by: default avatarPhilipp Zabel <p.zabel@pengutronix.de>
      Link: https://lore.kernel.org/r/20220929225402.9696-6-Sergey.Semin@baikalelectronics.ruSigned-off-by: default avatarStephen Boyd <sboyd@kernel.org>
      70fa8954
    • Serge Semin's avatar
      clk: baikal-t1: Add SATA internal ref clock buffer · 081a9b7c
      Serge Semin authored
      It turns out the internal SATA reference clock signal will stay
      unavailable for the SATA interface consumer until the buffer on it's way
      is ungated. So aside with having the actual clock divider enabled we need
      to ungate a buffer placed on the signal way to the SATA controller (most
      likely some rudiment from the initial SoC release). Seeing the switch flag
      is placed in the same register as the SATA-ref clock divider at a
      non-standard ffset, let's implement it as a separate clock controller with
      the set-rate propagation to the parental clock divider wrapper. As such
      we'll be able to disable/enable and still change the original clock source
      rate.
      
      Fixes: 353afa3a ("clk: Add Baikal-T1 CCU Dividers driver")
      Signed-off-by: default avatarSerge Semin <Sergey.Semin@baikalelectronics.ru>
      Link: https://lore.kernel.org/r/20220929225402.9696-5-Sergey.Semin@baikalelectronics.ruSigned-off-by: default avatarStephen Boyd <sboyd@kernel.org>
      081a9b7c
    • Serge Semin's avatar
      clk: baikal-t1: Add shared xGMAC ref/ptp clocks internal parent · e2eef312
      Serge Semin authored
      Baikal-T1 CCU reference manual says that both xGMAC reference and xGMAC
      PTP clocks are generated by two different wrappers with the same constant
      divider thus each producing a 156.25 MHz signal. But for some reason both
      of these clock sources are gated by a single switch-flag in the CCU
      registers space - CCU_SYS_XGMAC_BASE.BIT(0). In order to make the clocks
      handled independently we need to define a shared parental gate so the base
      clock signal would be switched off only if both of the child-clocks are
      disabled.
      
      Note the ID is intentionally set to -2 since we are going to add a one
      more internal clock identifier in the next commit.
      
      Fixes: 353afa3a ("clk: Add Baikal-T1 CCU Dividers driver")
      Signed-off-by: default avatarSerge Semin <Sergey.Semin@baikalelectronics.ru>
      Link: https://lore.kernel.org/r/20220929225402.9696-4-Sergey.Semin@baikalelectronics.ruSigned-off-by: default avatarStephen Boyd <sboyd@kernel.org>
      e2eef312
    • Serge Semin's avatar
      clk: baikal-t1: Fix invalid xGMAC PTP clock divider · 3c742088
      Serge Semin authored
      Most likely due to copy-paste mistake the divider has been set to 10 while
      according to the SoC reference manual it's supposed to be 8 thus having
      PTP clock frequency of 156.25 MHz.
      
      Fixes: 353afa3a ("clk: Add Baikal-T1 CCU Dividers driver")
      Signed-off-by: default avatarSerge Semin <Sergey.Semin@baikalelectronics.ru>
      Link: https://lore.kernel.org/r/20220929225402.9696-3-Sergey.Semin@baikalelectronics.ruSigned-off-by: default avatarStephen Boyd <sboyd@kernel.org>
      3c742088
    • Serge Semin's avatar
      clk: vc5: Fix 5P49V6901 outputs disabling when enabling FOD · c388cc80
      Serge Semin authored
      We have discovered random glitches during the system boot up procedure.
      The problem investigation led us to the weird outcomes: when none of the
      Renesas 5P49V6901 ports are explicitly enabled by the kernel driver, the
      glitches disappeared. It was a mystery since the SoC external clock
      domains were fed with different 5P49V6901 outputs. The driver code didn't
      seem like bogus either. We almost despaired to find out a root cause when
      the solution has been found for a more modern revision of the chip. It
      turned out the 5P49V6901 clock generator stopped its output for a short
      period of time during the VC5_OUT_DIV_CONTROL register writing. The same
      problem was found for the 5P49V6965 revision of the chip and was
      successfully fixed in commit fc336ae6 ("clk: vc5: fix output disabling
      when enabling a FOD") by enabling the "bypass_sync" flag hidden inside
      "Unused Factory Reserved Register". Even though the 5P49V6901 registers
      description and programming guide doesn't provide any intel regarding that
      flag, setting it up anyway in the officially unused register completely
      eliminated the denoted glitches. Thus let's activate the functionality
      submitted in commit fc336ae6 ("clk: vc5: fix output disabling when
      enabling a FOD") for the Renesas 5P49V6901 chip too in order to remove the
      ports implicit inter-dependency.
      
      Fixes: dbf6b16f ("clk: vc5: Add support for IDT VersaClock 5P49V6901")
      Signed-off-by: default avatarSerge Semin <Sergey.Semin@baikalelectronics.ru>
      Reviewed-by: default avatarLuca Ceresoli <luca@lucaceresoli.net>
      Link: https://lore.kernel.org/r/20220929225402.9696-2-Sergey.Semin@baikalelectronics.ruSigned-off-by: default avatarStephen Boyd <sboyd@kernel.org>
      c388cc80
  2. 14 Aug, 2022 10 commits
    • Linus Torvalds's avatar
      Linux 6.0-rc1 · 568035b0
      Linus Torvalds authored
      568035b0
    • Yury Norov's avatar
      radix-tree: replace gfp.h inclusion with gfp_types.h · 9f162193
      Yury Norov authored
      Radix tree header includes gfp.h for __GFP_BITS_SHIFT only. Now we
      have gfp_types.h for this.
      
      Fixes powerpc allmodconfig build:
      
         In file included from include/linux/nodemask.h:97,
                          from include/linux/mmzone.h:17,
                          from include/linux/gfp.h:7,
                          from include/linux/radix-tree.h:12,
                          from include/linux/idr.h:15,
                          from include/linux/kernfs.h:12,
                          from include/linux/sysfs.h:16,
                          from include/linux/kobject.h:20,
                          from include/linux/pci.h:35,
                          from arch/powerpc/kernel/prom_init.c:24:
         include/linux/random.h: In function 'add_latent_entropy':
      >> include/linux/random.h:25:46: error: 'latent_entropy' undeclared (first use in this function); did you mean 'add_latent_entropy'?
            25 |         add_device_randomness((const void *)&latent_entropy, sizeof(latent_entropy));
               |                                              ^~~~~~~~~~~~~~
               |                                              add_latent_entropy
         include/linux/random.h:25:46: note: each undeclared identifier is reported only once for each function it appears in
      Reported-by: default avatarkernel test robot <lkp@intel.com>
      CC: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
      CC: Andrew Morton <akpm@linux-foundation.org>
      CC: Jason A. Donenfeld <Jason@zx2c4.com>
      Signed-off-by: default avatarYury Norov <yury.norov@gmail.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      9f162193
    • Linus Torvalds's avatar
      Merge tag 'pull-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 74cbb480
      Linus Torvalds authored
      Pull vfs lseek fix from Al Viro:
       "Fix proc_reg_llseek() breakage. Always had been possible if somebody
        left NULL ->proc_lseek, became a practical issue now"
      
      * tag 'pull-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        take care to handle NULL ->proc_lseek()
      74cbb480
    • Al Viro's avatar
      take care to handle NULL ->proc_lseek() · 3f61631d
      Al Viro authored
      Easily done now, just by clearing FMODE_LSEEK in ->f_mode
      during proc_reg_open() for such entries.
      
      Fixes: 868941b1 "fs: remove no_llseek"
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      3f61631d
    • Linus Torvalds's avatar
      Merge tag 'for-linus-6.0-rc1b-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip · 5d6a0f4d
      Linus Torvalds authored
      Pull more xen updates from Juergen Gross:
      
       - fix the handling of the "persistent grants" feature negotiation
         between Xen blkfront and Xen blkback drivers
      
       - a cleanup of xen.config and adding xen.config to Xen section in
         MAINTAINERS
      
       - support HVMOP_set_evtchn_upcall_vector, which is more compliant to
         "normal" interrupt handling than the global callback used up to now
      
       - further small cleanups
      
      * tag 'for-linus-6.0-rc1b-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
        MAINTAINERS: add xen config fragments to XEN HYPERVISOR sections
        xen: remove XEN_SCRUB_PAGES in xen.config
        xen/pciback: Fix comment typo
        xen/xenbus: fix return type in xenbus_file_read()
        xen-blkfront: Apply 'feature_persistent' parameter when connect
        xen-blkback: Apply 'feature_persistent' parameter when connect
        xen-blkback: fix persistent grants negotiation
        x86/xen: Add support for HVMOP_set_evtchn_upcall_vector
      5d6a0f4d
    • Linus Torvalds's avatar
      Merge tag 'perf-tools-fixes-for-v6.0-2022-08-13' of... · 96f86ff0
      Linus Torvalds authored
      Merge tag 'perf-tools-fixes-for-v6.0-2022-08-13' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux
      
      Pull more perf tool updates from Arnaldo Carvalho de Melo:
      
       - 'perf c2c' now supports ARM64, adjust its output to cope with
         differences with what is in x86_64. Now go find false sharing on
         ARM64 (at least Neoverse) as well!
      
       - Refactor the JSON processing, making the output more compact and thus
         reducing the size of the resulting perf binary
      
       - Improvements for 'perf offcpu' profiling, including tracking child
         processes
      
       - Update Intel JSON metrics and events files for broadwellde,
         broadwellx, cascadelakex, haswellx, icelakex, ivytown, jaketown,
         knightslanding, sapphirerapids, skylakex and snowridgex
      
       - Add 'perf stat' JSON output and a 'perf test' entry for it
      
       - Ignore memfd and anonymous mmap events if jitdump present
      
       - Refactor 'perf test' shell tests allowing subdirs
      
       - Fix an error handling path in 'parse_perf_probe_command()'
      
       - Fixes for the guest Intel PT tracing patchkit in the 1st batch of
         this merge window
      
       - Print debuginfod queries if -v option is used, to explain delays in
         processing when debuginfo servers are enabled to fetch DSOs with
         richer symbol tables
      
       - Improve error message for 'perf record -p not_existing_pid'
      
       - Fix openssl and libbpf feature detection
      
       - Add PMU pai_crypto event description for IBM z16 on 'perf list'
      
       - Fix typos and duplicated words on comments in various places
      
      * tag 'perf-tools-fixes-for-v6.0-2022-08-13' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux: (81 commits)
        perf test: Refactor shell tests allowing subdirs
        perf vendor events: Update events for snowridgex
        perf vendor events: Update events and metrics for skylakex
        perf vendor events: Update metrics for sapphirerapids
        perf vendor events: Update events for knightslanding
        perf vendor events: Update metrics for jaketown
        perf vendor events: Update metrics for ivytown
        perf vendor events: Update events and metrics for icelakex
        perf vendor events: Update events and metrics for haswellx
        perf vendor events: Update events and metrics for cascadelakex
        perf vendor events: Update events and metrics for broadwellx
        perf vendor events: Update metrics for broadwellde
        perf jevents: Fold strings optimization
        perf jevents: Compress the pmu_events_table
        perf metrics: Copy entire pmu_event in find metric
        perf pmu-events: Hide the pmu_events
        perf pmu-events: Don't assume pmu_event is an array
        perf pmu-events: Move test events/metrics to JSON
        perf test: Use full metric resolution
        perf pmu-events: Hide pmu_events_map
        ...
      96f86ff0
    • Linus Torvalds's avatar
      Merge tag 'powerpc-6.0-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · d785610f
      Linus Torvalds authored
      Pull powerpc fixes from Michael Ellerman:
      
       - Ensure we never emit lwarx with EH=1 on 32-bit, because some 32-bit
         CPUs trap on it rather than ignoring it as they should.
      
       - Fix ftrace when building with clang, which was broken by some
         refactoring.
      
       - A couple of other minor fixes.
      
      Thanks to Christophe Leroy, Naveen N.  Rao, Nick Desaulniers, Ondrej
      Mosnacek, Pali Rohár, Russell Currey, and Segher Boessenkool.
      
      * tag 'powerpc-6.0-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        powerpc/kexec: Fix build failure from uninitialised variable
        powerpc/ppc-opcode: Fix PPC_RAW_TW()
        powerpc64/ftrace: Fix ftrace for clang builds
        powerpc: Make eh value more explicit when using lwarx
        powerpc: Don't hide eh field of lwarx behind a macro
        powerpc: Fix eh field when calling lwarx on PPC32
      d785610f
    • Linus Torvalds's avatar
      Merge tag 'pull-work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · aea23e7c
      Linus Torvalds authored
      Pull /proc/mounts fix from Al Viro:
       "Fix for /proc/mounts escaping - escape the '#' character too"
      
      * tag 'pull-work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        vfs: escape hash as well
      aea23e7c
    • Linus Torvalds's avatar
      Merge tag '5.20-rc-smb3-client-fixes-part2' of git://git.samba.org/sfrench/cifs-2.6 · 332019e2
      Linus Torvalds authored
      Pull more cifs updates from Steve French:
      
       - two fixes for stable, one for a lock length miscalculation, and
         another fixes a lease break timeout bug
      
       - improvement to handle leases, allows the close timeout to be
         configured more safely
      
       - five restructuring/cleanup patches
      
      * tag '5.20-rc-smb3-client-fixes-part2' of git://git.samba.org/sfrench/cifs-2.6:
        cifs: Do not access tcon->cfids->cfid directly from is_path_accessible
        cifs: Add constructor/destructors for tcon->cfid
        SMB3: fix lease break timeout when multiple deferred close handles for the same file.
        smb3: allow deferred close timeout to be configurable
        cifs: Do not use tcon->cfid directly, use the cfid we get from open_cached_dir
        cifs: Move cached-dir functions into a separate file
        cifs: Remove {cifs,nfs}_fscache_release_page()
        cifs: fix lock length calculation
      332019e2
    • David Howells's avatar
      afs: Enable multipage folio support · 8549a263
      David Howells authored
      Enable multipage folio support for the afs filesystem.
      
      Support has already been implemented in netfslib, fscache and cachefiles
      and in most of afs, but I've waited for Matthew Wilcox's latest folio
      changes.
      
      Note that it does require a change to afs_write_begin() to return the
      correct subpage.  This is a "temporary" change as we're working on
      getting rid of the need for ->write_begin() and ->write_end()
      completely, at least as far as network filesystems are concerned - but
      it doesn't prevent afs from making use of the capability.
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Acked-by: default avatarMatthew Wilcox (Oracle) <willy@infradead.org>
      Tested-by: kafs-testing@auristor.com
      Cc: Marc Dionne <marc.dionne@auristor.com>
      Cc: linux-afs@lists.infradead.org
      Link: https://lore.kernel.org/lkml/2274528.1645833226@warthog.procyon.org.uk/Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      8549a263
  3. 13 Aug, 2022 25 commits