Skip to content
  1. Nov 09, 2022
  2. Nov 08, 2022
  3. Nov 07, 2022
  4. Nov 04, 2022
  5. Oct 27, 2022
  6. Oct 26, 2022
  7. Oct 25, 2022
  8. Oct 20, 2022
  9. Oct 17, 2022
    • Christophe Leroy's avatar
      arm64: Remove CONFIG_ARCH_NR_GPIO · f5a681d2
      Christophe Leroy authored
      
      
      CONFIG_ARCH_NR_GPIO is not used anymore, remove it.
      
      Signed-off-by: default avatarChristophe Leroy <christophe.leroy@csgroup.eu>
      Reviewed-by: default avatarAndy Shevchenko <andy.shevchenko@gmail.com>
      Signed-off-by: default avatarBartosz Golaszewski <bartosz.golaszewski@linaro.org>
      f5a681d2
    • Christophe Leroy's avatar
      arm: Remove CONFIG_ARCH_NR_GPIO · 8937944f
      Christophe Leroy authored
      
      
      CONFIG_ARCH_NR_GPIO is not used anymore, remove it.
      
      Signed-off-by: default avatarChristophe Leroy <christophe.leroy@csgroup.eu>
      Reviewed-by: default avatarAndy Shevchenko <andy.shevchenko@gmail.com>
      Signed-off-by: default avatarBartosz Golaszewski <bartosz.golaszewski@linaro.org>
      8937944f
    • Christophe Leroy's avatar
      x86: Remove CONFIG_ARCH_NR_GPIO · f71806d8
      Christophe Leroy authored
      
      
      CONFIG_ARCH_NR_GPIO is not used anymore, remove it.
      
      Signed-off-by: default avatarChristophe Leroy <christophe.leroy@csgroup.eu>
      Reviewed-by: default avatarAndy Shevchenko <andy.shevchenko@gmail.com>
      Acked-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Signed-off-by: default avatarBartosz Golaszewski <bartosz.golaszewski@linaro.org>
      f71806d8
    • Christophe Leroy's avatar
      Documentation: gpio: Remove text about ARCH_NR_GPIOS · f2b470f0
      Christophe Leroy authored
      
      
      ARCH_NR_GPIOS have been removed, clean up the documentation.
      
      After this patch, the only place when ARCH_NR_GPIOS remains is in
      translations/zh_CN/gpio.txt and translations/zh_TW/gpio.txt.
      I don't have the skills to update that, anyway those two files are
      already out of sync as they are still mentionning ARCH_REQUIRE_GPIOLIB
      which was removed by commit 65053e1a ("gpio: delete
      ARCH_[WANTS_OPTIONAL|REQUIRE]_GPIOLIB")
      
      Signed-off-by: default avatarChristophe Leroy <christophe.leroy@csgroup.eu>
      Reviewed-by: default avatarAndy Shevchenko <andy.shevchenko@gmail.com>
      Signed-off-by: default avatarBartosz Golaszewski <bartosz.golaszewski@linaro.org>
      f2b470f0
    • Christophe Leroy's avatar
      gpiolib: Get rid of ARCH_NR_GPIOS · 7b61212f
      Christophe Leroy authored
      
      
      Since commit 14e85c0e ("gpio: remove gpio_descs global array")
      there is no limitation on the number of GPIOs that can be allocated
      in the system since the allocation is fully dynamic.
      
      ARCH_NR_GPIOS is today only used in order to provide downwards
      gpiobase allocation from that value, while static allocation is
      performed upwards from 0. However that has the disadvantage of
      limiting the number of GPIOs that can be registered in the system.
      
      To overcome this limitation without requiring each and every
      platform to provide its 'best-guess' maximum number, rework the
      allocation to allocate upwards, allowing approx 2 millions of
      GPIOs.
      
      In order to still allow static allocation for legacy drivers, define
      GPIO_DYNAMIC_BASE with the value 512 as the start for dynamic
      allocation. The 512 value is chosen because it is the end of
      the current default range so all current static allocations are
      expected to be below that value. Of course that's just a rough
      estimate based on the default value, but assuming static
      allocations come first, even if there are more static allocations
      it should fit under the 512 value.
      
      In the future, it is expected that all static allocations go away
      and then dynamic allocation will be patched to start at 0.
      
      Signed-off-by: default avatarChristophe Leroy <christophe.leroy@csgroup.eu>
      Reviewed-by: default avatarAndy Shevchenko <andy.shevchenko@gmail.com>
      Signed-off-by: default avatarBartosz Golaszewski <bartosz.golaszewski@linaro.org>
      7b61212f
    • Christophe Leroy's avatar
      gpiolib: Warn on drivers still using static gpiobase allocation · 502df79b
      Christophe Leroy authored
      
      
      In the preparation of getting completely rid of static gpiobase
      allocation in the future, emit a warning in drivers still doing so.
      
      Signed-off-by: default avatarChristophe Leroy <christophe.leroy@csgroup.eu>
      Reviewed-by: default avatarAndy Shevchenko <andy.shevchenko@gmail.com>
      Signed-off-by: default avatarBartosz Golaszewski <bartosz.golaszewski@linaro.org>
      502df79b
    • Christophe Leroy's avatar
      gpio: davinci: Stop using ARCH_NR_GPIOS · 95e827a1
      Christophe Leroy authored
      
      
      Since commit 14e85c0e ("gpio: remove gpio_descs global array")
      there is no global limitation anymore on the number of GPIOs in
      the system so don't clamp the number of GPIOs with ARCH_NR_GPIOS.
      
      Signed-off-by: default avatarChristophe Leroy <christophe.leroy@csgroup.eu>
      Reviewed-by: default avatarAndy Shevchenko <andy.shevchenko@gmail.com>
      Signed-off-by: default avatarBartosz Golaszewski <bartosz.golaszewski@linaro.org>
      95e827a1
    • Christophe Leroy's avatar
      gpio: aggregator: Stop using ARCH_NR_GPIOS · 95b39792
      Christophe Leroy authored
      
      
      ARCH_NR_GPIOS is used locally in aggr_parse() as the maximum number
      of GPIOs to be aggregated together by the driver since
      commit ec75039d ("gpio: aggregator: Use bitmap_parselist() for
      parsing GPIO offsets").
      
      Don't rely on the total possible number of GPIOs in the system but
      define a local arbitrary macro for that, set to 512 which should be
      large enough as it is also the default value for ARCH_NR_GPIOS.
      
      Signed-off-by: default avatarChristophe Leroy <christophe.leroy@csgroup.eu>
      Reviewed-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
      Reviewed-by: default avatarAndy Shevchenko <andy.shevchenko@gmail.com>
      Signed-off-by: default avatarBartosz Golaszewski <bartosz.golaszewski@linaro.org>
      95b39792
    • Davide Ciminaghi's avatar
      gpio: Remove sta2x11 GPIO driver · 317627a4
      Davide Ciminaghi authored
      
      
      The Connext chip has 4 gpio cells looking very similar to those of the
      Nomadik, whose gpio/pinctrl driver (already featuring devicetree support)
      will be used instead of the sta2x11 specific one.
      
      Signed-off-by: default avatarDavide Ciminaghi <ciminaghi@gnudd.com>
      Acked-by: default avatarGiancarlo Asnaghi <giancarlo.asnaghi@st.com>
      Acked-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: default avatarChristophe Leroy <christophe.leroy@csgroup.eu>
      Signed-off-by: default avatarBartosz Golaszewski <bartosz.golaszewski@linaro.org>
      317627a4
    • Stephen Kitt's avatar
      drivers/gpio: use simple i2c probe · bf08ce13
      Stephen Kitt authored
      
      
      All these drivers have an i2c probe function which doesn't use the
      "struct i2c_device_id *id" parameter, so they can trivially be
      converted to the "probe_new" style of probe with a single argument.
      
      This is part of an ongoing transition to single-argument i2c probe
      functions. Old-style probe functions involve a call to i2c_match_id:
      in drivers/i2c/i2c-core-base.c,
      
               /*
                * When there are no more users of probe(),
                * rename probe_new to probe.
                */
               if (driver->probe_new)
                       status = driver->probe_new(client);
               else if (driver->probe)
                       status = driver->probe(client,
                                              i2c_match_id(driver->id_table, client));
               else
                       status = -EINVAL;
      
      Drivers which don't need the second parameter can be declared using
      probe_new instead, avoiding the call to i2c_match_id. Drivers which do
      can still be converted to probe_new-style, calling i2c_match_id
      themselves (as is done currently for of_match_id).
      
      This change was done using the following Coccinelle script, and fixed
      up for whitespace changes:
      
      @ rule1 @
      identifier fn;
      identifier client, id;
      @@
      
      - static int fn(struct i2c_client *client, const struct i2c_device_id *id)
      + static int fn(struct i2c_client *client)
      {
      ...when != id
      }
      
      @ rule2 depends on rule1 @
      identifier rule1.fn;
      identifier driver;
      @@
      
      struct i2c_driver driver = {
      -       .probe
      +       .probe_new
                      =
      (
                         fn
      |
      -                  &fn
      +                  fn
      )
                      ,
      };
      
      Signed-off-by: default avatarStephen Kitt <steve@sk2.org>
      Signed-off-by: default avatarBartosz Golaszewski <bartosz.golaszewski@linaro.org>
      bf08ce13
    • Linus Torvalds's avatar
      Linux 6.1-rc1 · 9abf2313
      Linus Torvalds authored
      9abf2313
    • Linus Torvalds's avatar
      Merge tag 'random-6.1-rc1-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/crng/random · f1947d7c
      Linus Torvalds authored
      Pull more random number generator updates from Jason Donenfeld:
       "This time with some large scale treewide cleanups.
      
        The intent of this pull is to clean up the way callers fetch random
        integers. The current rules for doing this right are:
      
         - If you want a secure or an insecure random u64, use get_random_u64()
      
         - If you want a secure or an insecure random u32, use get_random_u32()
      
           The old function prandom_u32() has been deprecated for a while
           now and is just a wrapper around get_random_u32(). Same for
           get_random_int().
      
         - If you want a secure or an insecure random u16, use get_random_u16()
      
         - If you want a secure or an insecure random u8, use get_random_u8()
      
         - If you want secure or insecure random bytes, use get_random_bytes().
      
           The old function prandom_bytes() has been deprecated for a while
           now and has long been a wrapper around get_random_bytes()
      
         - If you want a non-uniform random u32, u16, or u8 bounded by a
           certain open interval maximum, use prandom_u32_max()
      
           I say "non-uniform", because it doesn't do any rejection sampling
           or divisions. Hence, it stays within the prandom_*() namespace, not
           the get_random_*() namespace.
      
           I'm currently investigating a "uniform" function for 6.2. We'll see
           what comes of that.
      
        By applying these rules uniformly, we get several benefits:
      
         - By using prandom_u32_max() with an upper-bound that the compiler
           can prove at compile-time is ≤65536 or ≤256, internally
           get_random_u16() or get_random_u8() is used, which wastes fewer
           batched random bytes, and hence has higher throughput.
      
         - By using prandom_u32_max() instead of %, when the upper-bound is
           not a constant, division is still avoided, because
           prandom_u32_max() uses a faster multiplication-based trick instead.
      
         - By using get_random_u16() or get_random_u8() in cases where the
           return value is intended to indeed be a u16 or a u8, we waste fewer
           batched random bytes, and hence have higher throughput.
      
        This series was originally done by hand while I was on an airplane
        without Internet. Later, Kees and I worked on retroactively figuring
        out what could be done with Coccinelle and what had to be done
        manually, and then we split things up based on that.
      
        So while this touches a lot of files, the actual amount of code that's
        hand fiddled is comfortably small"
      
      * tag 'random-6.1-rc1-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/crng/random:
        prandom: remove unused functions
        treewide: use get_random_bytes() when possible
        treewide: use get_random_u32() when possible
        treewide: use get_random_{u8,u16}() when possible, part 2
        treewide: use get_random_{u8,u16}() when possible, part 1
        treewide: use prandom_u32_max() when possible, part 2
        treewide: use prandom_u32_max() when possible, part 1
      f1947d7c
    • Linus Torvalds's avatar
      Merge tag 'perf-tools-for-v6.1-2-2022-10-16' of... · 8636df94
      Linus Torvalds authored
      Merge tag 'perf-tools-for-v6.1-2-2022-10-16' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux
      
      Pull more perf tools updates from Arnaldo Carvalho de Melo:
      
       - Use BPF CO-RE (Compile Once, Run Everywhere) to support old kernels
         when using bperf (perf BPF based counters) with cgroups.
      
       - Support HiSilicon PCIe Performance Monitoring Unit (PMU), that
         monitors bandwidth, latency, bus utilization and buffer occupancy.
      
         Documented in Documentation/admin-guide/perf/hisi-pcie-pmu.rst.
      
       - User space tasks can migrate between CPUs, so when tracing selected
         CPUs, system-wide sideband is still needed, fix it in the setup of
         Intel PT on hybrid systems.
      
       - Fix metricgroups title message in 'perf list', it should state that
         the metrics groups are to be used with the '-M' option, not '-e'.
      
       - Sync the msr-index.h copy with the kernel sources, adding support for
         using "AMD64_TSC_RATIO" in filter expressions in 'perf trace' as well
         as decoding it when printing the MSR tracepoint arguments.
      
       - Fix program header size and alignment when generating a JIT ELF in
         'perf inject'.
      
       - Add multiple new Intel PT 'perf test' entries, including a jitdump
         one.
      
       - Fix the 'perf test' entries for 'perf stat' CSV and JSON output when
         running on PowerPC due to an invalid topology number in that arch.
      
       - Fix the 'perf test' for arm_coresight failures on the ARM Juno
         system.
      
       - Fix the 'perf test' attr entry for PERF_FORMAT_LOST, adding this
         option to the or expression expected in the intercepted
         perf_event_open() syscall.
      
       - Add missing condition flags ('hs', 'lo', 'vc', 'vs') for arm64 in the
         'perf annotate' asm parser.
      
       - Fix 'perf mem record -C' option processing, it was being chopped up
         when preparing the underlying 'perf record -e mem-events' and thus
         being ignored, requiring using '-- -C CPUs' as a workaround.
      
       - Improvements and tidy ups for 'perf test' shell infra.
      
       - Fix Intel PT information printing segfault in uClibc, where a NULL
         format was being passed to fprintf.
      
      * tag 'perf-tools-for-v6.1-2-2022-10-16' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux: (23 commits)
        tools arch x86: Sync the msr-index.h copy with the kernel sources
        perf auxtrace arm64: Add support for parsing HiSilicon PCIe Trace packet
        perf auxtrace arm64: Add support for HiSilicon PCIe Tune and Trace device driver
        perf auxtrace arm: Refactor event list iteration in auxtrace_record__init()
        perf tests stat+json_output: Include sanity check for topology
        perf tests stat+csv_output: Include sanity check for topology
        perf intel-pt: Fix system_wide dummy event for hybrid
        perf intel-pt: Fix segfault in intel_pt_print_info() with uClibc
        perf test: Fix attr tests for PERF_FORMAT_LOST
        perf test: test_intel_pt.sh: Add 9 tests
        perf inject: Fix GEN_ELF_TEXT_OFFSET for jit
        perf test: test_intel_pt.sh: Add jitdump test
        perf test: test_intel_pt.sh: Tidy some alignment
        perf test: test_intel_pt.sh: Print a message when skipping kernel tracing
        perf test: test_intel_pt.sh: Tidy some perf record options
        perf test: test_intel_pt.sh: Fix return checking again
        perf: Skip and warn on unknown format 'configN' attrs
        perf list: Fix metricgroups title message
        perf mem: Fix -C option behavior for perf mem record
        perf annotate: Add missing condition flags for arm64
        ...
      8636df94