Skip to content
Permalink
Srinivas-Pandr…
Switch branches/tags

Commits on Jan 13, 2022

  1. ACPI / fan: Properly handle fine grain control

    When _FIF object specifies support for fine grain control, then fan speed
    can be set from 0 to 100% with the recommended minimum "step size" via
    _FSL object. Here the control value doesn't need to match any value from
    _FPS object.
    
    Currently we have a simple solution implemented which just pick maximum
    control value from _FPS to display the actual state, but this is not
    optimal when there is a big window between two control values in
    _FPS. Also there is no way to set to any speed which doesn't match
    control values in _FPS. The system firmware can start the fan at speed
    which doesn't match any control value.
    
    To support fine grain control via thermal sysfs:
    - cooling device max state is not _FPS state count but it will be
    100 / _FIF.step_size
    - cooling device current state is 100 / _FIF.step_size
    - cooling device set state will set the control value
    curr_state * _FIF.step_size plus any adjustment for 100%.
    By the spec, when control value do not sum to 100% because of
    _FIF.step_size, OSPM may select an appropriate ending Level increment
    to reach 100%.
    
    Also publish the actual fan rpm in sysfs in the same place where
    _FIF objects are displayed. Knowing fan rpm is helpful to reduce noise
    level and use passive control instead. Also fan performance may not be
    same over time, so the same control value may not be enough to run the
    fan at a speed. So a feedback value of speed is helpful. This sysfs
    attribute is called "fan_speed_rpm".
    
    Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
    spandruvada authored and intel-lab-lkp committed Jan 13, 2022
  2. Merge branch 'pm-core' into linux-next

    * pm-core:
      iio: pressure: bmp280: Use new PM macros
      PM: runtime: Add EXPORT[_GPL]_RUNTIME_DEV_PM_OPS macros
      PM: runtime: Add DEFINE_RUNTIME_DEV_PM_OPS() macro
      PM: core: Add EXPORT[_GPL]_SIMPLE_DEV_PM_OPS macros
      PM: core: Remove static qualifier in DEFINE_SIMPLE_DEV_PM_OPS macro
      PM: core: Remove DEFINE_UNIVERSAL_DEV_PM_OPS() macro
    rafaeljw committed Jan 13, 2022
  3. Merge branches 'acpi-scan' and 'acpi-pcc' into linux-next

    * acpi-scan:
      ACPI: scan: Rename label in acpi_scan_init()
      ACPI: scan: Simplify initialization of power and sleep buttons
      ACPI: scan: Change acpi_scan_init() return value type to void
    
    * acpi-pcc:
      ACPI: PCC: pcc_ctx can be static
    rafaeljw committed Jan 13, 2022

Commits on Jan 12, 2022

  1. iio: pressure: bmp280: Use new PM macros

    Use the new EXPORT_RUNTIME_DEV_PM_OPS() macro. It allows the underlying
    dev_pm_ops struct as well as the suspend/resume callbacks to be detected
    as dead code in the case where CONFIG_PM is disabled, without having to
    wrap everything inside #ifdef CONFIG_PM guards.
    
    Signed-off-by: Paul Cercueil <paul@crapouillou.net>
    Acked-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    pcercuei authored and rafaeljw committed Jan 12, 2022
  2. PM: runtime: Add EXPORT[_GPL]_RUNTIME_DEV_PM_OPS macros

    Similar to EXPORT[_GPL]_SIMPLE_DEV_PM_OPS, but for users with runtime-PM
    suspend/resume callbacks.
    
    Signed-off-by: Paul Cercueil <paul@crapouillou.net>
    Acked-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    pcercuei authored and rafaeljw committed Jan 12, 2022
  3. PM: runtime: Add DEFINE_RUNTIME_DEV_PM_OPS() macro

    A lot of drivers create a dev_pm_ops struct with the system sleep
    suspend/resume callbacks set to pm_runtime_force_suspend() and
    pm_runtime_force_resume().
    
    These drivers can now use the DEFINE_RUNTIME_DEV_PM_OPS() macro, which
    will use pm_runtime_force_{suspend,resume}() as the system sleep
    callbacks, while having the same dead code removal characteristic that
    is already provided by DEFINE_SIMPLE_DEV_PM_OPS().
    
    Signed-off-by: Paul Cercueil <paul@crapouillou.net>
    Acked-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    pcercuei authored and rafaeljw committed Jan 12, 2022
  4. PM: core: Add EXPORT[_GPL]_SIMPLE_DEV_PM_OPS macros

    These macros are defined conditionally, according to CONFIG_PM:
    - if CONFIG_PM is enabled, these macros resolve to
      DEFINE_SIMPLE_DEV_PM_OPS(), and the dev_pm_ops symbol will be
      exported.
    
    - if CONFIG_PM is disabled, these macros will result in a dummy static
      dev_pm_ops to be created with the __maybe_unused flag. The dev_pm_ops
      will then be discarded by the compiler, along with the provided
      callback functions if they are not used anywhere else.
    
    In the second case, the symbol is not exported, which should be
    perfectly fine - users of the symbol should all use the pm_ptr() or
    pm_sleep_ptr() macro, so the dev_pm_ops marked as "extern" in the
    client's code will never be accessed.
    
    Signed-off-by: Paul Cercueil <paul@crapouillou.net>
    Acked-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    pcercuei authored and rafaeljw committed Jan 12, 2022
  5. PM: core: Remove static qualifier in DEFINE_SIMPLE_DEV_PM_OPS macro

    Keep this macro in line with the other ones. This makes it possible to
    use them in the cases where the underlying dev_pm_ops structure is
    exported.
    
    Restore the "static" qualifier in the two drivers where the
    DEFINE_SIMPLE_DEV_PM_OPS macro was used.
    
    Signed-off-by: Paul Cercueil <paul@crapouillou.net>
    Acked-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    pcercuei authored and rafaeljw committed Jan 12, 2022
  6. PM: core: Remove DEFINE_UNIVERSAL_DEV_PM_OPS() macro

    The deprecated UNIVERSAL_DEV_PM_OPS() macro uses the provided callbacks
    for both runtime PM and system sleep, which is very likely to be a
    mistake, as a system sleep can be triggered while a given device is
    already PM-suspended, which would cause the suspend callback to be
    called twice.
    
    The amount of users of UNIVERSAL_DEV_PM_OPS() is also tiny (16
    occurences) compared to the number of places where
    SET_SYSTEM_SLEEP_PM_OPS() is used with pm_runtime_force_suspend() and
    pm_runtime_force_resume(), which makes me think that none of these cases
    are actually valid.
    
    As the new macro DEFINE_UNIVERSAL_DEV_PM_OPS() which was introduced to
    replace UNIVERSAL_DEV_PM_OPS() is currently unused, remove it before
    someone starts to use it in yet another invalid case.
    
    Signed-off-by: Paul Cercueil <paul@crapouillou.net>
    Acked-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    pcercuei authored and rafaeljw committed Jan 12, 2022
  7. ACPI: PCC: pcc_ctx can be static

    drivers/acpi/acpi_pcc.c:34:22: warning: symbol 'pcc_ctx' was not declared. Should it be static?
    
    Reported-by: kernel test robot <lkp@intel.com>
    Signed-off-by: kernel test robot <lkp@intel.com>
    Reviewed-by: Sudeep Holla <sudeep.holla@arm.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    intel-lab-lkp authored and rafaeljw committed Jan 12, 2022
  8. ACPI: scan: Rename label in acpi_scan_init()

    Rename the "out" label in acpi_scan_init() to "unlock", which is
    a better match for its purpose, and fix up its alignment.
    
    No functional impact.
    
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>
    rafaeljw committed Jan 12, 2022
  9. ACPI: scan: Simplify initialization of power and sleep buttons

    It should be perfectly fine to use ACPI if the "fixed" power or sleep
    buttons cannot be initialized.  Moreover, running acpi_bus_scan()
    successfully on ACPI_ROOT_OBJECT generally causes many devices to
    be enumerated and probed, possibly including the entire PCI bus, so
    unregistering acpi_root if the registration of the "fixed" buttons
    fails is rather unhelpful.
    
    For this reason, do not fail acpi_scan_init() when
    acpi_bus_scan_fixed() fails and turn the latter into a void function.
    
    While at it, drop the outdated and misleading comment from
    acpi_bus_scan_fixed().
    
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>
    rafaeljw committed Jan 12, 2022
  10. ACPI: scan: Change acpi_scan_init() return value type to void

    The only caller of acpi_scan_init(), acpi_init(), doesn't check its
    return value, so turn it into a void function.
    
    This avoids complaints from the Smatch static checker that the
    function should return a negative error code when it fails, which
    is not really a problem in this particular case.
    
    No intentional functional impact.
    
    Link: https://lore.kernel.org/linux-acpi/20220106082317.GA9123@kili/
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>
    rafaeljw committed Jan 12, 2022
  11. Merge branches 'acpi-x86', 'acpi-tables' and 'acpi-soc' into linux-next

    * acpi-x86:
      x86/PCI: Ignore E820 reservations for bridge windows on newer systems
    
    * acpi-tables:
      ACPI: SPCR: check if table->serial_port.access_width is too wide
    
    * acpi-soc:
      ACPI: APD: Check for NULL pointer after calling devm_ioremap()
    rafaeljw committed Jan 12, 2022

Commits on Jan 11, 2022

  1. ACPI: SPCR: check if table->serial_port.access_width is too wide

    If table->serial_port.access_width is more than 29, it causes
    undefined behavior when ACPI_ACCESS_BIT_WIDTH shifts it to
    (1 << ((size) + 2)):
    
    [    0.000000] UBSAN: Undefined behaviour in drivers/acpi/spcr.c:114:11
    [    0.000000] shift exponent 102 is too large for 32-bit type 'int'
    
    Use the new ACPI_ACCESS_ defines to test that serial_port.access_width
    is less than 30 and set it to 6 if it is not.
    
    Signed-off-by: Mark Langsdorf <mlangsdo@redhat.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    mlangsdorf authored and rafaeljw committed Jan 11, 2022
  2. ACPI: APD: Check for NULL pointer after calling devm_ioremap()

    Because devres_alloc() may fail, devm_ioremap() may return NULL.
    
    Then, 'clk_data->base' will be assigned to clkdev->data->base in
    platform_device_register_data().
    
    The PTR_ERR_OR_ZERO() check on clk_data does not cover 'base', so
    it is better to add an explicit check against NULL after updating
    it.
    
    Fixes: 3f4ba94 ("ACPI: APD: Add AMD misc clock handler support")
    Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn>
    [ rjw: Changelog rewrite ]
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    JiangJias authored and rafaeljw committed Jan 11, 2022
  3. x86/PCI: Ignore E820 reservations for bridge windows on newer systems

    Some BIOS-es contain a bug where they add addresses which map to system
    RAM in the PCI host bridge window returned by the ACPI _CRS method, see
    commit 4dc2287 ("x86: avoid E820 regions when allocating address
    space").
    
    To work around this bug Linux excludes E820 reserved addresses when
    allocating addresses from the PCI host bridge window since 2010.
    
    Recently (2019) some systems have shown-up with E820 reservations which
    cover the entire _CRS returned PCI bridge memory window, causing all
    attempts to assign memory to PCI BARs which have not been setup by the
    BIOS to fail. For example here are the relevant dmesg bits from a
    Lenovo IdeaPad 3 15IIL 81WE:
    
     [mem 0x000000004bc50000-0x00000000cfffffff] reserved
     pci_bus 0000:00: root bus resource [mem 0x65400000-0xbfffffff window]
    
    The ACPI specifications appear to allow this new behavior:
    
    The relationship between E820 and ACPI _CRS is not really very clear.
    ACPI v6.3, sec 15, table 15-374, says AddressRangeReserved means:
    
      This range of addresses is in use or reserved by the system and is
      not to be included in the allocatable memory pool of the operating
      system's memory manager.
    
    and it may be used when:
    
      The address range is in use by a memory-mapped system device.
    
    Furthermore, sec 15.2 says:
    
      Address ranges defined for baseboard memory-mapped I/O devices, such
      as APICs, are returned as reserved.
    
    A PCI host bridge qualifies as a baseboard memory-mapped I/O device,
    and its apertures are in use and certainly should not be included in
    the general allocatable pool, so the fact that some BIOS-es reports
    the PCI aperture as "reserved" in E820 doesn't seem like a BIOS bug.
    
    So it seems that the excluding of E820 reserved addresses is a mistake.
    
    Ideally Linux would fully stop excluding E820 reserved addresses,
    but then the old systems this was added for will regress.
    Instead keep the old behavior for old systems, while ignoring
    the E820 reservations for any systems from now on.
    
    Old systems are defined here as BIOS year < 2018, this was chosen to make
    sure that E820 reservations will not be used on the currently affected
    systems, while at the same time also taking into account that the systems
    for which the E820 checking was originally added may have received BIOS
    updates for quite a while (esp. CVE related ones), giving them a more
    recent BIOS year then 2010.
    
    BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=206459
    BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1868899
    BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1871793
    BugLink: https://bugs.launchpad.net/bugs/1878279
    BugLink: https://bugs.launchpad.net/bugs/1931715
    BugLink: https://bugs.launchpad.net/bugs/1932069
    BugLink: https://bugs.launchpad.net/bugs/1921649
    Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
    Acked-by: Bjorn Helgaas <bhelgaas@google.com>
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    jwrdegoede authored and rafaeljw committed Jan 11, 2022
  4. Merge branch 'acpi-pfrut' into linux-next

    * acpi-pfrut:
      ACPI: pfr_telemetry: Fix info leak in pfrt_log_ioctl()
      ACPI: pfr_update: Fix return value check in pfru_write()
      ACPI: tools: Introduce utility for firmware updates/telemetry
      ACPI: Introduce Platform Firmware Runtime Telemetry driver
      ACPI: Introduce Platform Firmware Runtime Update device driver
      efi: Introduce EFI_FIRMWARE_MANAGEMENT_CAPSULE_HEADER and corresponding structures
    rafaeljw committed Jan 11, 2022
  5. Merge tag 'devprop-5.17-rc1' of git://git.kernel.org/pub/scm/linux/ke…

    …rnel/git/rafael/linux-pm
    
    Pull device properties framework updates from Rafael Wysocki:
     "These update the handling of software nodes and graph properties, and
      the MAINTAINERS entry for the former.
    
      Specifics:
    
       - Remove device_add_properties() which does not work correctly if
         software nodes holding additional device properties are shared or
         reused (Heikki Krogerus).
    
       - Fix nargs_prop property handling for software nodes (Clément
         Léger).
    
       - Update documentation of ACPI device properties (Sakari Ailus).
    
       - Update the handling of graph properties in the generic framework to
         match the DT case (Sakari Ailus).
    
       - Update software nodes entry in MAINTAINERS (Andy Shevchenko)"
    
    * tag 'devprop-5.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
      software node: Update MAINTAINERS data base
      software node: fix wrong node passed to find nargs_prop
      device property: Drop fwnode_graph_get_remote_node()
      device property: Use fwnode_graph_for_each_endpoint() macro
      device property: Implement fwnode_graph_get_endpoint_count()
      Documentation: ACPI: Update references
      Documentation: ACPI: Fix data node reference documentation
      device property: Fix documentation for FWNODE_GRAPH_DEVICE_DISABLED
      device property: Fix fwnode_graph_devcon_match() fwnode leak
      device property: Remove device_add_properties() API
      driver core: Don't call device_remove_properties() from device_del()
      PCI: Convert to device_create_managed_software_node()
    torvalds committed Jan 11, 2022
  6. Merge tag 'thermal-5.17-rc1' of git://git.kernel.org/pub/scm/linux/ke…

    …rnel/git/rafael/linux-pm
    
    Pull thermal control updates from Rafael Wysocki:
     "These add a new driver for Renesas RZ/G2L TSU, update a few existing
      thermal control drivers and clean up the tmon utility.
    
      Specifics:
    
       - Add new TSU driver and DT bindings for the Renesas RZ/G2L platform
         (Biju Das).
    
       - Fix missing check when calling reset_control_deassert() in the
         rz2gl thermal driver (Biju Das).
    
       - In preparation for FORTIFY_SOURCE performing compile-time and
         run-time field bounds checking for memcpy(), avoid intentionally
         writing across neighboring fields in the int340x thermal control
         driver (Kees Cook).
    
       - Fix RFIM mailbox write commands handling in the int340x thermal
         control driver (Sumeet Pawnikar).
    
       - Fix PM issue occurring in the iMX thermal control driver during
         suspend/resume by implementing PM runtime support in it (Oleksij
         Rempel).
    
       - Add 'const' annotation to thermal_cooling_ops in the Intel
         powerclamp driver (Rikard Falkeborn).
    
       - Fix missing ADC bit set in the iMX8MP thermal driver to enable the
         sensor (Paul Gerber).
    
       - Drop unused local variable definition from tmon (ran jianping)"
    
    * tag 'thermal-5.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
      thermal/drivers/int340x: Fix RFIM mailbox write commands
      thermal/drivers/rz2gl: Add error check for reset_control_deassert()
      thermal/drivers/imx8mm: Enable ADC when enabling monitor
      thermal/drivers: Add TSU driver for RZ/G2L
      dt-bindings: thermal: Document Renesas RZ/G2L TSU
      thermal/drivers/intel_powerclamp: Constify static thermal_cooling_device_ops
      thermal/drivers/imx: Implement runtime PM support
      thermal: tools: tmon: remove unneeded local variable
      thermal: int340x: Use struct_group() for memcpy() region
    torvalds committed Jan 11, 2022
  7. Merge tag 'pm-5.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/…

    …git/rafael/linux-pm
    
    Pull power management updates from Rafael Wysocki:
     "The most signigicant change here is the addition of a new cpufreq
      'P-state' driver for AMD processors as a better replacement for the
      venerable acpi-cpufreq driver.
    
      There are also other cpufreq updates (in the core, intel_pstate, ARM
      drivers), PM core updates (mostly related to adding new macros for
      declaring PM operations which should make the lives of driver
      developers somewhat easier), and a bunch of assorted fixes and
      cleanups.
    
      Summary:
    
       - Add new P-state driver for AMD processors (Huang Rui).
    
       - Fix initialization of min and max frequency QoS requests in the
         cpufreq core (Rafael Wysocki).
    
       - Fix EPP handling on Alder Lake in intel_pstate (Srinivas
         Pandruvada).
    
       - Make intel_pstate update cpuinfo.max_freq when notified of HWP
         capabilities changes and drop a redundant function call from that
         driver (Rafael Wysocki).
    
       - Improve IRQ support in the Qcom cpufreq driver (Ard Biesheuvel,
         Stephen Boyd, Vladimir Zapolskiy).
    
       - Fix double devm_remap() in the Mediatek cpufreq driver (Hector
         Yuan).
    
       - Introduce thermal pressure helpers for cpufreq CPU cooling (Lukasz
         Luba).
    
       - Make cpufreq use default_groups in kobj_type (Greg Kroah-Hartman).
    
       - Make cpuidle use default_groups in kobj_type (Greg Kroah-Hartman).
    
       - Fix two comments in cpuidle code (Jason Wang, Yang Li).
    
       - Allow model-specific normal EPB value to be used in the intel_epb
         sysfs attribute handling code (Srinivas Pandruvada).
    
       - Simplify locking in pm_runtime_put_suppliers() (Rafael Wysocki).
    
       - Add safety net to supplier device release in the runtime PM core
         code (Rafael Wysocki).
    
       - Capture device status before disabling runtime PM for it (Rafael
         Wysocki).
    
       - Add new macros for declaring PM operations to allow drivers to
         avoid guarding them with CONFIG_PM #ifdefs or __maybe_unused and
         update some drivers to use these macros (Paul Cercueil).
    
       - Allow ACPI hardware signature to be honoured during restore from
         hibernation (David Woodhouse).
    
       - Update outdated operating performance points (OPP) documentation
         (Tang Yizhou).
    
       - Reduce log severity for informative message regarding frequency
         transition failures in devfreq (Tzung-Bi Shih).
    
       - Add DRAM frequency controller devfreq driver for Allwinner sunXi
         SoCs (Samuel Holland).
    
       - Add missing COMMON_CLK dependency to sun8i devfreq driver (Arnd
         Bergmann).
    
       - Add support for new layout of Psys PowerLimit Register on SPR to
         the Intel RAPL power capping driver (Zhang Rui).
    
       - Fix typo in a comment in idle_inject.c (Jason Wang).
    
       - Remove unused function definition from the DTPM (Dynamit Thermal
         Power Management) power capping framework (Daniel Lezcano).
    
       - Reduce DTPM trace verbosity (Daniel Lezcano)"
    
    * tag 'pm-5.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (53 commits)
      x86, sched: Fix undefined reference to init_freq_invariance_cppc() build error
      cpufreq: amd-pstate: Fix Kconfig dependencies for AMD P-State
      cpufreq: amd-pstate: Fix struct amd_cpudata kernel-doc comment
      cpuidle: use default_groups in kobj_type
      x86: intel_epb: Allow model specific normal EPB value
      MAINTAINERS: Add AMD P-State driver maintainer entry
      Documentation: amd-pstate: Add AMD P-State driver introduction
      cpufreq: amd-pstate: Add AMD P-State performance attributes
      cpufreq: amd-pstate: Add AMD P-State frequencies attributes
      cpufreq: amd-pstate: Add boost mode support for AMD P-State
      cpufreq: amd-pstate: Add trace for AMD P-State module
      cpufreq: amd-pstate: Introduce the support for the processors with shared memory solution
      cpufreq: amd-pstate: Add fast switch function for AMD P-State
      cpufreq: amd-pstate: Introduce a new AMD P-State driver to support future processors
      ACPI: CPPC: Add CPPC enable register function
      ACPI: CPPC: Check present CPUs for determining _CPC is valid
      ACPI: CPPC: Implement support for SystemIO registers
      x86/msr: Add AMD CPPC MSR definitions
      x86/cpufeatures: Add AMD Collaborative Processor Performance Control feature flag
      cpufreq: use default_groups in kobj_type
      ...
    torvalds committed Jan 11, 2022
  8. Merge tag 'acpi-5.17-rc1' of git://git.kernel.org/pub/scm/linux/kerne…

    …l/git/rafael/linux-pm
    
    Pull ACPI updates from Rafael Wysocki:
     "These are usual ACPICA code updates (although there are more of them
      than in the last few releases), a noticeable EC driver update (which
      mostly consists of cleanups, though), the device enumeration quirks
      handling rework from Hans, some updates eliminating unnecessary CPU
      cache flushing in some places (processor idle and system-wide PM code)
      and a bunch of assorted cleanups and fixes.
    
      Specifics:
    
       - Update ACPICA code in the kernel to the 20211217 upstream release
         including the following changes:
    
          - iASL/Disassembler: Additional support for NHLT table (Bob
            Moore).
          - Change a return_ACPI_STATUS (AE_BAD_PARAMETER) (Bob Moore).
          - Fix a couple of warnings under MSVC (Bob Moore).
          - iASL: Add TDEL table to both compiler/disassembler (Bob Moore).
          - iASL/NHLT table: "Specific Data" field support (Bob Moore).
          - Use original data_table_region pointer for accesses (Jessica
            Clarke).
          - Use original pointer for virtual origin tables (Jessica Clarke).
          - Macros: Remove ACPI_PHYSADDR_TO_PTR (Jessica Clarke).
          - Avoid subobject buffer overflow when validating RSDP signature
            (Jessica Clarke).
          - iASL: Add suppport for AGDI table (Ilkka Koskinen).
          - Hardware: Do not flush CPU cache when entering S4 and S5 (Kirill
            A. Shutemov).
          - Expand the ACPI_ACCESS_ definitions (Mark Langsdorf).
          - Utilities: Avoid deleting the same object twice in a row (Rafael
            Wysocki).
          - Executer: Fix REFCLASS_REFOF case in acpi_ex_opcode_1A_0T_1R()
            (Rafael Wysocki).
          - Fix AEST Processor generic resource substructure data field byte
            length (Shuuichirou Ishii).
          - Fix wrong interpretation of PCC address (Sudeep Holla).
          - Add support for PCC Opregion special context data (Sudeep
            Holla).
    
       - Implement OperationRegion handler for PCC Type 3 subtype (Sudeep
         Holla).
    
       - Introduce acpi_fetch_acpi_dev() as a replacement for
         acpi_bus_get_device() and use it in the ACPI subsystem (Rafael
         Wysocki).
    
       - Avoid using _CID for device enumaration if _HID is missing or
         invalid (Rafael Wysocki).
    
       - Rework quirk handling during ACPI device enumeration and add some
         new quirks for known broken platforms (Hans de Goede).
    
       - Avoid unnecessary or redundant CPU cache flushing during system PM
         transitions (Kirill A. Shutemov).
    
       - Add PM debug messages related to power resources (Rafael Wysocki).
    
       - Fix kernel-doc comment in the PCI host bridge ACPI driver (Yang
         Li).
    
       - Rework flushing of EC work while suspended to idle and clean up the
         handling of events in the ACPI EC driver (Rafael Wysocki).
    
       - Prohibit ec_sys module parameter write_support from being used when
         the system is locked down (Hans de Goede).
    
       - Make the ACPI processor thermal driver use cpufreq_cpu_get() to
         check for presence of cpufreq policy (Manfred Spraul).
    
       - Avoid unnecessary CPU cache flushing in the ACPI processor idle
         driver (Kirill A. Shutemov).
    
       - Replace kernel.h with the necessary inclusions in the ACPI
         processor driver (Andy Shevchenko).
    
       - Use swap() instead of open coding it in the ACPI processor idle
         driver (Guo Zhengkui).
    
       - Fix the handling of defective LPAT in the ACPI xpower PMIC driver
         and clean up some definitions of PMIC data structures (Hans de
         Goede).
    
       - Fix outdated comment in the ACPI DPTF driver (Sumeet Pawnikar).
    
       - Add AEST to the list of known ACPI table signatures (Shuuichirou
         Ishii).
    
       - Make ACPI NUMA code take hotpluggable memblocks into account when
         CONFIG_MEMORY_HOTPLUG is not set (Vitaly Kuznetsov).
    
       - Use default_groups in kobj_type in the ACPI sysfs code (Greg
         Kroah-Hartman).
    
       - Rearrange _CPC structure documentation (Andy Shevchenko).
    
       - Drop an always true check from the ACPI thermal driver (Adam
         Borowski).
    
       - Add new "not charging" quirk for Lenovo ThinkPads to the ACPI
         battery driver (Thomas Weißschuh)"
    
    * tag 'acpi-5.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (64 commits)
      ACPI: PCC: Implement OperationRegion handler for the PCC Type 3 subtype
      ACPI / x86: Skip AC and battery devices on x86 Android tablets with broken DSDTs
      ACPI / x86: Introduce an acpi_quirk_skip_acpi_ac_and_battery() helper
      ACPI: processor: thermal: avoid cpufreq_get_policy()
      serdev: Do not instantiate serdevs on boards with known bogus DSDT entries
      i2c: acpi: Do not instantiate I2C-clients on boards with known bogus DSDT entries
      ACPI / x86: Add acpi_quirk_skip_[i2c_client|serdev]_enumeration() helpers
      ACPI: scan: Create platform device for BCM4752 and LNV4752 ACPI nodes
      PCI/ACPI: Fix acpi_pci_osc_control_set() kernel-doc comment
      ACPI: battery: Add the ThinkPad "Not Charging" quirk
      ACPI: sysfs: use default_groups in kobj_type
      ACPICA: Update version to 20211217
      ACPICA: iASL/NHLT table: "Specific Data" field support
      ACPICA: iASL: Add suppport for AGDI table
      ACPICA: iASL: Add TDEL table to both compiler/disassembler
      ACPICA: Fixed a couple of warnings under MSVC
      ACPICA: Change a return_ACPI_STATUS (AE_BAD_PARAMETER)
      ACPICA: Hardware: Do not flush CPU cache when entering S4 and S5
      ACPICA: Add support for PCC Opregion special context data
      ACPICA: Fix wrong interpretation of PCC address
      ...
    torvalds committed Jan 11, 2022
  9. netfilter: nf_tables: don't use 'data_size' uninitialized

    Commit 2c865a8 ("netfilter: nf_tables: add rule blob layout") never
    initialized the new 'data_size' variable.
    
    I'm not sure how it ever worked, but it might have worked almost by
    accident - gcc seems to occasionally miss these kinds of 'variable used
    uninitialized' situations, but I've seen it do so because it ended up
    zero-initializing them due to some other simplification.
    
    But clang is very unhappy about it all, and correctly reports
    
        net/netfilter/nf_tables_api.c:8278:4: error: variable 'data_size' is uninitialized when used here [-Werror,-Wuninitialized]
                                data_size += sizeof(*prule) + rule->dlen;
                                ^~~~~~~~~
        net/netfilter/nf_tables_api.c:8263:30: note: initialize the variable 'data_size' to silence this warning
                unsigned int size, data_size;
                                            ^
                                             = 0
        1 error generated.
    
    and this fix just initializes 'data_size' to zero before the loop.
    
    Fixes: 2c865a8 ("netfilter: nf_tables: add rule blob layout")
    Cc: Pablo Neira Ayuso <pablo@netfilter.org>
    Cc: Jakub Kicinski <kuba@kernel.org>
    Cc: David Miller <davem@davemloft.net>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    torvalds committed Jan 11, 2022
  10. Merge tag '5.17-net-next' of git://git.kernel.org/pub/scm/linux/kerne…

    …l/git/netdev/net-next
    
    Pull networking updates from Jakub Kicinski:
     "Core
      ----
    
       - Defer freeing TCP skbs to the BH handler, whenever possible, or at
         least perform the freeing outside of the socket lock section to
         decrease cross-CPU allocator work and improve latency.
    
       - Add netdevice refcount tracking to locate sources of netdevice and
         net namespace refcount leaks.
    
       - Make Tx watchdog less intrusive - avoid pausing Tx and restarting
         all queues from a single CPU removing latency spikes.
    
       - Various small optimizations throughout the stack from Eric Dumazet.
    
       - Make netdev->dev_addr[] constant, force modifications to go via
         appropriate helpers to allow us to keep addresses in ordered data
         structures.
    
       - Replace unix_table_lock with per-hash locks, improving performance
         of bind() calls.
    
       - Extend skb drop tracepoint with a drop reason.
    
       - Allow SO_MARK and SO_PRIORITY setsockopt under CAP_NET_RAW.
    
      BPF
      ---
    
       - New helpers:
          - bpf_find_vma(), find and inspect VMAs for profiling use cases
          - bpf_loop(), runtime-bounded loop helper trading some execution
            time for much faster (if at all converging) verification
          - bpf_strncmp(), improve performance, avoid compiler flakiness
          - bpf_get_func_arg(), bpf_get_func_ret(), bpf_get_func_arg_cnt()
            for tracing programs, all inlined by the verifier
    
       - Support BPF relocations (CO-RE) in the kernel loader.
    
       - Further the support for BTF_TYPE_TAG annotations.
    
       - Allow access to local storage in sleepable helpers.
    
       - Convert verifier argument types to a composable form with different
         attributes which can be shared across types (ro, maybe-null).
    
       - Prepare libbpf for upcoming v1.0 release by cleaning up APIs,
         creating new, extensible ones where missing and deprecating those
         to be removed.
    
      Protocols
      ---------
    
       - WiFi (mac80211/cfg80211):
          - notify user space about long "come back in N" AP responses,
            allow it to react to such temporary rejections
          - allow non-standard VHT MCS 10/11 rates
          - use coarse time in airtime fairness code to save CPU cycles
    
       - Bluetooth:
          - rework of HCI command execution serialization to use a common
            queue and work struct, and improve handling errors reported in
            the middle of a batch of commands
          - rework HCI event handling to use skb_pull_data, avoiding packet
            parsing pitfalls
          - support AOSP Bluetooth Quality Report
    
       - SMC:
          - support net namespaces, following the RDMA model
          - improve connection establishment latency by pre-clearing buffers
          - introduce TCP ULP for automatic redirection to SMC
    
       - Multi-Path TCP:
          - support ioctls: SIOCINQ, OUTQ, and OUTQNSD
          - support socket options: IP_TOS, IP_FREEBIND, IP_TRANSPARENT,
            IPV6_FREEBIND, and IPV6_TRANSPARENT, TCP_CORK and TCP_NODELAY
          - support cmsgs: TCP_INQ
          - improvements in the data scheduler (assigning data to subflows)
          - support fastclose option (quick shutdown of the full MPTCP
            connection, similar to TCP RST in regular TCP)
    
       - MCTP (Management Component Transport) over serial, as defined by
         DMTF spec DSP0253 - "MCTP Serial Transport Binding".
    
      Driver API
      ----------
    
       - Support timestamping on bond interfaces in active/passive mode.
    
       - Introduce generic phylink link mode validation for drivers which
         don't have any quirks and where MAC capability bits fully express
         what's supported. Allow PCS layer to participate in the validation.
         Convert a number of drivers.
    
       - Add support to set/get size of buffers on the Rx rings and size of
         the tx copybreak buffer via ethtool.
    
       - Support offloading TC actions as first-class citizens rather than
         only as attributes of filters, improve sharing and device resource
         utilization.
    
       - WiFi (mac80211/cfg80211):
          - support forwarding offload (ndo_fill_forward_path)
          - support for background radar detection hardware
          - SA Query Procedures offload on the AP side
    
      New hardware / drivers
      ----------------------
    
       - tsnep - FPGA based TSN endpoint Ethernet MAC used in PLCs with
         real-time requirements for isochronous communication with protocols
         like OPC UA Pub/Sub.
    
       - Qualcomm BAM-DMUX WWAN - driver for data channels of modems
         integrated into many older Qualcomm SoCs, e.g. MSM8916 or MSM8974
         (qcom_bam_dmux).
    
       - Microchip LAN966x multi-port Gigabit AVB/TSN Ethernet Switch driver
         with support for bridging, VLANs and multicast forwarding
         (lan966x).
    
       - iwlmei driver for co-operating between Intel's WiFi driver and
         Intel's Active Management Technology (AMT) devices.
    
       - mse102x - Vertexcom MSE102x Homeplug GreenPHY chips
    
       - Bluetooth:
          - MediaTek MT7921 SDIO devices
          - Foxconn MT7922A
          - Realtek RTL8852AE
    
      Drivers
      -------
    
       - Significantly improve performance in the datapaths of: lan78xx,
         ax88179_178a, lantiq_xrx200, bnxt.
    
       - Intel Ethernet NICs:
          - igb: support PTP/time PEROUT and EXTTS SDP functions on
            82580/i354/i350 adapters
          - ixgbevf: new PF -> VF mailbox API which avoids the risk of
            mailbox corruption with ESXi
          - iavf: support configuration of VLAN features of finer
            granularity, stacked tags and filtering
          - ice: PTP support for new E822 devices with sub-ns precision
          - ice: support firmware activation without reboot
    
       - Mellanox Ethernet NICs (mlx5):
          - expose control over IRQ coalescing mode (CQE vs EQE) via ethtool
          - support TC forwarding when tunnel encap and decap happen between
            two ports of the same NIC
          - dynamically size and allow disabling various features to save
            resources for running in embedded / SmartNIC scenarios
    
       - Broadcom Ethernet NICs (bnxt):
          - use page frag allocator to improve Rx performance
          - expose control over IRQ coalescing mode (CQE vs EQE) via ethtool
    
       - Other Ethernet NICs:
          - amd-xgbe: add Ryzen 6000 (Yellow Carp) Ethernet support
    
       - Microsoft cloud/virtual NIC (mana):
          - add XDP support (PASS, DROP, TX)
    
       - Mellanox Ethernet switches (mlxsw):
          - initial support for Spectrum-4 ASICs
          - VxLAN with IPv6 underlay
    
       - Marvell Ethernet switches (prestera):
          - support flower flow templates
          - add basic IP forwarding support
    
       - NXP embedded Ethernet switches (ocelot & felix):
          - support Per-Stream Filtering and Policing (PSFP)
          - enable cut-through forwarding between ports by default
          - support FDMA to improve packet Rx/Tx to CPU
    
       - Other embedded switches:
          - hellcreek: improve trapping management (STP and PTP) packets
          - qca8k: support link aggregation and port mirroring
    
       - Qualcomm 802.11ax WiFi (ath11k):
          - qca6390, wcn6855: enable 802.11 power save mode in station mode
          - BSS color change support
          - WCN6855 hw2.1 support
          - 11d scan offload support
          - scan MAC address randomization support
          - full monitor mode, only supported on QCN9074
          - qca6390/wcn6855: report signal and tx bitrate
          - qca6390: rfkill support
          - qca6390/wcn6855: regdb.bin support
    
       - Intel WiFi (iwlwifi):
          - support SAR GEO Offset Mapping (SGOM) and Time-Aware-SAR (TAS)
            in cooperation with the BIOS
          - support for Optimized Connectivity Experience (OCE) scan
          - support firmware API version 68
          - lots of preparatory work for the upcoming Bz device family
    
       - MediaTek WiFi (mt76):
          - Specific Absorption Rate (SAR) support
          - mt7921: 160 MHz channel support
    
       - RealTek WiFi (rtw88):
          - Specific Absorption Rate (SAR) support
          - scan offload
    
       - Other WiFi NICs
          - ath10k: support fetching (pre-)calibration data from nvmem
          - brcmfmac: configure keep-alive packet on suspend
          - wcn36xx: beacon filter support"
    
    * tag '5.17-net-next' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next: (2048 commits)
      tcp: tcp_send_challenge_ack delete useless param `skb`
      net/qla3xxx: Remove useless DMA-32 fallback configuration
      rocker: Remove useless DMA-32 fallback configuration
      hinic: Remove useless DMA-32 fallback configuration
      lan743x: Remove useless DMA-32 fallback configuration
      net: enetc: Remove useless DMA-32 fallback configuration
      cxgb4vf: Remove useless DMA-32 fallback configuration
      cxgb4: Remove useless DMA-32 fallback configuration
      cxgb3: Remove useless DMA-32 fallback configuration
      bnx2x: Remove useless DMA-32 fallback configuration
      et131x: Remove useless DMA-32 fallback configuration
      be2net: Remove useless DMA-32 fallback configuration
      vmxnet3: Remove useless DMA-32 fallback configuration
      bna: Simplify DMA setting
      net: alteon: Simplify DMA setting
      myri10ge: Simplify DMA setting
      qlcnic: Simplify DMA setting
      net: allwinner: Fix print format
      page_pool: remove spinlock in page_pool_refill_alloc_cache()
      amt: fix wrong return type of amt_send_membership_update()
      ...
    torvalds committed Jan 11, 2022
  11. Merge tag 'media/v5.17-1' of git://git.kernel.org/pub/scm/linux/kerne…

    …l/git/mchehab/linux-media
    
    Pull media updates from Mauro Carvalho Chehab:
    
     - New sensor driver: ov5693
    
     - A new driver for STM32 Chrom-ART Accelerator
    
     - Added V4L2 core helper functions for VP9 codec
    
     - Hantro driver has gained support for VP9 codecs
    
     - Added support for Maxim MAX96712 Quad GMSL2 Deserializer
    
     - The staging atomisp driver has gained lots of improvements, fixes and
       cleanups. It now works with userptr
    
     - Lots of random driver improvements as usual
    
    * tag 'media/v5.17-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (397 commits)
      media: ipu3-cio2: Add support for instantiating i2c-clients for VCMs
      media: ipu3-cio2: Call cio2_bridge_init() before anything else
      media: ipu3-cio2: Defer probing until the PMIC is fully setup
      media: hantro: Add support for Allwinner H6
      media: dt-bindings: allwinner: document H6 Hantro G2 binding
      media: hantro: Convert imx8m_vpu_g2_irq to helper
      media: hantro: move postproc enablement for old cores
      media: hantro: vp9: add support for legacy register set
      media: hantro: vp9: use double buffering if needed
      media: hantro: add support for reset lines
      media: hantro: Fix probe func error path
      media: i2c: hi846: use pm_runtime_force_suspend/resume for system suspend
      media: i2c: hi846: check return value of regulator_bulk_disable()
      media: hi556: Support device probe in non-zero ACPI D state
      media: ov5675: Support device probe in non-zero ACPI D state
      media: imx208: Support device probe in non-zero ACPI D state
      media: ov2740: support device probe in non-zero ACPI D state
      media: ov5670: Support device probe in non-zero ACPI D state
      media: ov8856: support device probe in non-zero ACPI D state
      media: ov8865: Disable only enabled regulators on error path
      ...
    torvalds committed Jan 11, 2022
  12. Revert "drm/amd/display: Fix for otg synchronization logic"

    This reverts commit a896f87.
    
    It causes odd flickering on my Radeon RX580 (PCI ID 1002:67df rev e7,
    subsystem ID 1da2:e353).
    
    Bisected right to this commit, and reverting it fixes things.
    
    Link: https://lore.kernel.org/all/CAHk-=wg9hDde_L3bK9tAfdJ4N=TJJ+SjO3ZDONqH5=bVoy_Mzg@mail.gmail.com/
    Cc: Alex Deucher <alexdeucher@gmail.com>
    Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
    Cc: Harry Wentland <harry.wentland@amd.com>
    Cc: Dave Airlie <airlied@gmail.com>
    Cc: Christian Koenig <christian.koenig@amd.com>
    Cc: Jun Lei <Jun.Lei@amd.com>
    Cc: Mustapha Ghaddar <mustapha.ghaddar@amd.com>
    Cc: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
    Cc: meenakshikumar somasundaram <meenakshikumar.somasundaram@amd.com>
    Cc: Daniel Wheeler <daniel.wheeler@amd.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    torvalds committed Jan 11, 2022

Commits on Jan 10, 2022

  1. Merge tag 'drm-next-2022-01-07' of git://anongit.freedesktop.org/drm/drm

    Pull drm updates from Dave Airlie:
     "Highlights are support for privacy screens found in new laptops, a
      bunch of nomodeset refactoring, and i915 enables ADL-P systems by
      default, while starting to add RPL-S support.
    
      vmwgfx adds GEM and support for OpenGL 4.3 features in userspace.
    
      Lots of internal refactorings around dma reservations, and lots of
      driver refactoring as well.
    
      Summary:
    
      core:
       - add privacy screen support
       - move nomodeset option into drm subsystem
       - clean up nomodeset handling in drivers
       - make drm_irq.c legacy
       - fix stack_depot name conflicts
       - remove DMA_BUF_SET_NAME ioctl restrictions
       - sysfs: send hotplug event
       - replace several DRM_* logging macros with drm_*
       - move hashtable to legacy code
       - add error return from gem_create_object
       - cma-helper: improve interfaces, drop CONFIG_DRM_KMS_CMA_HELPER
       - kernel.h related include cleanups
       - support XRGB2101010 source buffers
    
      ttm:
       - don't include drm hashtable
       - stop pruning fences after wait
       - documentation updates
    
      dma-buf:
       - add dma_resv selftest
       - add debugfs helpers
       - remove dma_resv_get_excl_unlocked
       - documentation
       - make fences mandatory in dma_resv_add_excl_fence
    
      dp:
       - add link training delay helpers
    
      gem:
       - link shmem/cma helpers into separate modules
       - use dma_resv iteratior
       - import dma-buf namespace into gem helper modules
    
      scheduler:
       - fence grab fix
       - lockdep fixes
    
      bridge:
       - switch to managed MIPI DSI helpers
       - register and attach during probe fixes
       - convert to YAML in several places.
    
      panel:
       - add bunch of new panesl
    
      simpledrm:
       - support FB_DAMAGE_CLIPS
       - support virtual screen sizes
       - add Apple M1 support
    
      amdgpu:
       - enable seamless boot for DCN 3.01
       - runtime PM fixes
       - use drm_kms_helper_connector_hotplug_event
       - get all fences at once
       - use generic drm fb helpers
       - PSR/DPCD/LTTPR/DSC/PM/RAS/OLED/SRIOV fixes
       - add smart trace buffer (STB) for supported GPUs
       - display debugfs entries
       - new SMU debug option
       - Documentation update
    
      amdkfd:
       - IP discovery enumeration refactor
       - interface between driver fixes
       - SVM fixes
       - kfd uapi header to define some sysfs bitfields.
    
      i915:
       - support VESA panel backlights
       - enable ADL-P by default
       - add eDP privacy screen support
       - add Raptor Lake S (RPL-S) support
       - DG2 page table support
       - lots of GuC/HuC fw refactoring
       - refactored i915->gt interfaces
       - CD clock squashing support
       - enable 10-bit gamma support
       - update ADL-P DMC fw to v2.14
       - enable runtime PM autosuspend by default
       - ADL-P DSI support
       - per-lane DP drive settings for ICL+
       - add support for pipe C/D DMC firmware
       - Atomic gamma LUT updates
       - remove CCS FB stride restrictions on ADL-P
       - VRR platform support for display 11
       - add support for display audio codec keepalive
       - lots of display refactoring
       - fix runtime PM handling during PXP suspend
       - improved eviction performance with async TTM moves
       - async VMA unbinding improvements
       - VMA locking refactoring
       - improved error capture robustness
       - use per device iommu checks
       - drop bits stealing from i915_sw_fence function ptr
       - remove dma_resv_prune
       - add IC cache invalidation on DG2
    
      nouveau:
       - crc fixes
       - validate LUTs in atomic check
       - set HDMI AVI RGB quant to full
    
      tegra:
       - buffer objects reworks for dma-buf compat
       - NVDEC driver uAPI support
       - power management improvements
    
      etnaviv:
       - IOMMU enabled system support
       - fix > 4GB command buffer mapping
       - close a DoS vector
       - fix spurious GPU resets
    
      ast:
       - fix i2c initialization
    
      rcar-du:
       - DSI output support
    
      exynos:
       - replace legacy gpio interface
       - implement generic GEM object mmap
    
      msm:
       - dpu plane state cleanup in prep for multirect
       - dpu debugfs cleanups
       - dp support for sc7280
       - a506 support
       - removal of struct_mutex
       - remove old eDP sub-driver
    
      anx7625:
       - support MIPI DSI input
       - support HDMI audio
       - fix reading EDID
    
      lvds:
       - fix bridge DT bindings
    
      megachips:
       - probe both bridges before registering
    
      dw-hdmi:
       - allow interlace on bridge
    
      ps8640:
       - enable runtime PM
       - support aux-bus
    
      tx358768:
       - enable reference clock
       - add pulse mode support
    
      ti-sn65dsi86:
       - use regmap bulk write
       - add PWM support
    
      etnaviv:
       - get all fences at once
    
      gma500:
       - gem object cleanups
    
      kmb:
       - enable fb console
    
      radeon:
       - use dma_resv_wait_timeout
    
      rockchip:
       - add DSP hold timeout
       - suspend/resume fixes
       - PLL clock fixes
       - implement mmap in GEM object functions
       - use generic fbdev emulation
    
      sun4i:
       - use CMA helpers without vmap support
    
      vc4:
       - fix HDMI-CEC hang with display is off
       - power on HDMI controller while disabling
       - support 4K@60Hz modes
       - support 10-bit YUV 4:2:0 output
    
      vmwgfx:
       - fix leak on probe errors
       - fail probing on broken hosts
       - new placement for MOB page tables
       - hide internal BOs from userspace
       - implement GEM support
       - implement GL 4.3 support
    
      virtio:
       - overflow fixes
    
      xen:
       - implement mmap as GEM object function
    
      omapdrm:
       - fix scatterlist export
       - support virtual planes
    
      mediatek:
       - MT8192 support
       - CMDQ refinement"
    
    * tag 'drm-next-2022-01-07' of git://anongit.freedesktop.org/drm/drm: (1241 commits)
      drm/amdgpu: no DC support for headless chips
      drm/amd/display: fix dereference before NULL check
      drm/amdgpu: always reset the asic in suspend (v2)
      drm/amdgpu: put SMU into proper state on runpm suspending for BOCO capable platform
      drm/amd/display: Fix the uninitialized variable in enable_stream_features()
      drm/amdgpu: fix runpm documentation
      amdgpu/pm: Make sysfs pm attributes as read-only for VFs
      drm/amdgpu: save error count in RAS poison handler
      drm/amdgpu: drop redundant semicolon
      drm/amd/display: get and restore link res map
      drm/amd/display: support dynamic HPO DP link encoder allocation
      drm/amd/display: access hpo dp link encoder only through link resource
      drm/amd/display: populate link res in both detection and validation
      drm/amd/display: define link res and make it accessible to all link interfaces
      drm/amd/display: 3.2.167
      drm/amd/display: [FW Promotion] Release 0.0.98
      drm/amd/display: Undo ODM combine
      drm/amd/display: Add reg defs for DCN303
      drm/amd/display: Changed pipe split policy to allow for multi-display pipe split
      drm/amd/display: Set optimize_pwr_state for DCN31
      ...
    torvalds committed Jan 10, 2022
  2. Merge tag 'linux-kselftest-kunit-5.17-rc1' of git://git.kernel.org/pu…

    …b/scm/linux/kernel/git/shuah/linux-kselftest
    
    Pull KUnit updates from Shuah Khan:
     "This consists of several fixes and enhancements. A few highlights:
    
       - Option --kconfig_add option allows easily tweaking kunitconfigs
    
       - make build subcommand can reconfigure if needed
    
       - doesn't error on tests without test plans
    
       - doesn't crash if no parameters are generated
    
       - defaults --jobs to # of cups
    
       - reports test parameter results as (K)TAP subtests"
    
    * tag 'linux-kselftest-kunit-5.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
      kunit: tool: Default --jobs to number of CPUs
      kunit: tool: fix newly introduced typechecker errors
      kunit: tool: make `build` subcommand also reconfigure if needed
      kunit: tool: delete kunit_parser.TestResult type
      kunit: tool: use dataclass instead of collections.namedtuple
      kunit: tool: suggest using decode_stacktrace.sh on kernel crash
      kunit: tool: reconfigure when the used kunitconfig changes
      kunit: tool: revamp message for invalid kunitconfig
      kunit: tool: add --kconfig_add to allow easily tweaking kunitconfigs
      kunit: tool: move Kconfig read_from_file/parse_from_string to package-level
      kunit: tool: print parsed test results fully incrementally
      kunit: Report test parameter results as (K)TAP subtests
      kunit: Don't crash if no parameters are generated
      kunit: tool: Report an error if any test has no subtests
      kunit: tool: Do not error on tests without test plans
      kunit: add run_checks.py script to validate kunit changes
      Documentation: kunit: remove claims that kunit is a mocking framework
      kunit: tool: fix --json output for skipped tests
    torvalds committed Jan 10, 2022
  3. Merge tag 'linux-kselftest-next-5.17-rc1' of git://git.kernel.org/pub…

    …/scm/linux/kernel/git/shuah/linux-kselftest
    
    Pull Kselftest update from Shuah Khan:
     "Fixes to build errors, false negatives, and several code cleanups,
      including the ARRAY_SIZE cleanup that removes 25+ duplicates
      ARRAY_SIZE defines from individual tests"
    
    * tag 'linux-kselftest-next-5.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
      selftests/vm: remove ARRAY_SIZE define from individual tests
      selftests/timens: remove ARRAY_SIZE define from individual tests
      selftests/sparc64: remove ARRAY_SIZE define from adi-test
      selftests/seccomp: remove ARRAY_SIZE define from seccomp_benchmark
      selftests/rseq: remove ARRAY_SIZE define from individual tests
      selftests/net: remove ARRAY_SIZE define from individual tests
      selftests/landlock: remove ARRAY_SIZE define from common.h
      selftests/ir: remove ARRAY_SIZE define from ir_loopback.c
      selftests/core: remove ARRAY_SIZE define from close_range_test.c
      selftests/cgroup: remove ARRAY_SIZE define from cgroup_util.h
      selftests/arm64: remove ARRAY_SIZE define from vec-syscfg.c
      tools: fix ARRAY_SIZE defines in tools and selftests hdrs
      selftests: cgroup: build error multiple outpt files
      selftests/move_mount_set_group remove unneeded conversion to bool
      selftests/mount: remove unneeded conversion to bool
      selftests: harness: avoid false negatives if test has no ASSERTs
      selftests/ftrace: make kprobe profile testcase description unique
      selftests: clone3: clone3: add case CLONE3_ARGS_NO_TEST
      selftests: timers: Remove unneeded semicolon
      kselftests: timers:Remove unneeded semicolon
    torvalds committed Jan 10, 2022
  4. Merge tag 'slab-for-5.17' of git://git.kernel.org/pub/scm/linux/kerne…

    …l/git/vbabka/slab
    
    Pull slab updates from Vlastimil Babka:
    
     - Separate struct slab from struct page - an offshot of the page folio
       work.
    
       Struct page fields used by slab allocators are moved from struct page
       to a new struct slab, that uses the same physical storage. Similar to
       struct folio, it always is a head page. This brings better type
       safety, separation of large kmalloc allocations from true slabs, and
       cleanup of related objcg code.
    
     - A SLAB_MERGE_DEFAULT config optimization.
    
    * tag 'slab-for-5.17' of git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab: (33 commits)
      mm/slob: Remove unnecessary page_mapcount_reset() function call
      bootmem: Use page->index instead of page->freelist
      zsmalloc: Stop using slab fields in struct page
      mm/slub: Define struct slab fields for CONFIG_SLUB_CPU_PARTIAL only when enabled
      mm/slub: Simplify struct slab slabs field definition
      mm/sl*b: Differentiate struct slab fields by sl*b implementations
      mm/kfence: Convert kfence_guarded_alloc() to struct slab
      mm/kasan: Convert to struct folio and struct slab
      mm/slob: Convert SLOB to use struct slab and struct folio
      mm/memcg: Convert slab objcgs from struct page to struct slab
      mm: Convert struct page to struct slab in functions used by other subsystems
      mm/slab: Finish struct page to struct slab conversion
      mm/slab: Convert most struct page to struct slab by spatch
      mm/slab: Convert kmem_getpages() and kmem_freepages() to struct slab
      mm/slub: Finish struct page to struct slab conversion
      mm/slub: Convert most struct page to struct slab by spatch
      mm/slub: Convert pfmemalloc_match() to take a struct slab
      mm/slub: Convert __free_slab() to use struct slab
      mm/slub: Convert alloc_slab_page() to return a struct slab
      mm/slub: Convert print_page_info() to print_slab_info()
      ...
    torvalds committed Jan 10, 2022
  5. Merge branch 'random-5.17-for-linus' of git://git.kernel.org/pub/scm/…

    …linux/kernel/git/crng/random
    
    Pull random number generator updates from Jason Donenfeld:
     "These a bit more numerous than usual for the RNG, due to folks
      resubmitting patches that had been pending prior and generally renewed
      interest.
    
      There are a few categories of patches in here:
    
       1) Dominik Brodowski and I traded a series back and forth for a some
          weeks that fixed numerous issues related to seeds being provided
          at extremely early boot by the firmware, before other parts of the
          kernel or of the RNG have been initialized, both fixing some
          crashes and addressing correctness around early boot randomness.
          One of these is marked for stable.
    
       2) I replaced the RNG's usage of SHA-1 with BLAKE2s in the entropy
          extractor, and made the construction a bit safer and more
          standard. This was sort of a long overdue low hanging fruit, as we
          were supposed to have phased out SHA-1 usage quite some time ago
          (even if all we needed here was non-invertibility). Along the way
          it also made extraction 131% faster. This required a bit of
          Kconfig and symbol plumbing to make things work well with the
          crypto libraries, which is one of the reasons why I'm sending you
          this pull early in the cycle.
    
       3) I got rid of a truly superfluous call to RDRAND in the hot path,
          which resulted in a whopping 370% increase in performance.
    
       4) Sebastian Andrzej Siewior sent some patches regarding PREEMPT_RT,
          the full series of which wasn't ready yet, but the first two
          preparatory cleanups were good on their own. One of them touches
          files in kernel/irq/, which is the other reason why I'm sending
          you this pull early in the cycle.
    
       5) Other assorted correctness fixes from Eric Biggers, Jann Horn,
          Mark Brown, Dominik Brodowski, and myself"
    
    * 'random-5.17-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/crng/random:
      random: don't reset crng_init_cnt on urandom_read()
      random: avoid superfluous call to RDRAND in CRNG extraction
      random: early initialization of ChaCha constants
      random: use IS_ENABLED(CONFIG_NUMA) instead of ifdefs
      random: harmonize "crng init done" messages
      random: mix bootloader randomness into pool
      random: do not throw away excess input to crng_fast_load
      random: do not re-init if crng_reseed completes before primary init
      random: fix crash on multiple early calls to add_bootloader_randomness()
      random: do not sign extend bytes for rotation when mixing
      random: use BLAKE2s instead of SHA1 in extraction
      lib/crypto: blake2s: include as built-in
      random: fix data race on crng init time
      random: fix data race on crng_node_pool
      irq: remove unused flags argument from __handle_irq_event_percpu()
      random: remove unused irq_flags argument from add_interrupt_randomness()
      random: document add_hwgenerator_randomness() with other input functions
      MAINTAINERS: add git tree for random.c
    torvalds committed Jan 10, 2022
  6. Merge tag 'seccomp-v5.17-rc1' of git://git.kernel.org/pub/scm/linux/k…

    …ernel/git/kees/linux
    
    Pull seccomp updates from Kees Cook:
     "The core seccomp code hasn't changed for this cycle, but the selftests
      were improved while helping to debug the recent signal handling
      refactoring work Eric did.
    
      Summary:
    
       - Improve seccomp selftests in support of signal handler refactoring
         (Kees Cook)"
    
    * tag 'seccomp-v5.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
      selftests/seccomp: Report event mismatches more clearly
      selftests/seccomp: Stop USER_NOTIF test if kcmp() fails
    torvalds committed Jan 10, 2022
  7. Merge tag 'pstore-v5.17-rc1' of git://git.kernel.org/pub/scm/linux/ke…

    …rnel/git/kees/linux
    
    Pull pstore update from Kees Cook:
    
     - Add boot param for early ftrace recording in pstore (Uwe
       Kleine-König)
    
    * tag 'pstore-v5.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
      pstore/ftrace: Allow immediate recording
    torvalds committed Jan 10, 2022
  8. Merge tag 'edac_updates_for_v5.17_rc1' of git://git.kernel.org/pub/sc…

    …m/linux/kernel/git/ras/ras
    
    Pull EDAC updates from Borislav Petkov:
    
     - Add support for version 3 of the Synopsys DDR controller to
       synopsys_edac
    
     - Add support for DRR5 and new models 0x10-0x1f and 0x50-0x5f of AMD
       family 0x19 CPUs to amd64_edac
    
     - The usual set of fixes and cleanups
    
    * tag 'edac_updates_for_v5.17_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras:
      EDAC/amd64: Add support for family 19h, models 50h-5fh
      EDAC/sb_edac: Remove redundant initialization of variable rc
      RAS/CEC: Remove a repeated 'an' in a comment
      EDAC/amd64: Add support for AMD Family 19h Models 10h-1Fh and A0h-AFh
      EDAC: Add RDDR5 and LRDDR5 memory types
      EDAC/sifive: Fix non-kernel-doc comment
      dt-bindings: memory: Add entry for version 3.80a
      EDAC/synopsys: Enable the driver on Intel's N5X platform
      EDAC/synopsys: Add support for version 3 of the Synopsys EDAC DDR
      EDAC/synopsys: Use the quirk for version instead of ddr version
    torvalds committed Jan 10, 2022
  9. Merge tag 'ras_core_for_v5.17_rc1' of git://git.kernel.org/pub/scm/li…

    …nux/kernel/git/tip/tip
    
    Pull RAS updates from Borislav Petkov:
     "A relatively big amount of movements in RAS-land this time around:
    
       - First part of a series to move the AMD address translation code
         from arch/x86/ to amd64_edac as that is its only user anyway
    
       - Some MCE error injection improvements to the AMD side
    
       - Reorganization of the #MC handler code and the facilities it calls
         to make it noinstr-safe
    
       - Add support for new AMD MCA bank types and non-uniform banks layout
    
       - The usual set of cleanups and fixes"
    
    * tag 'ras_core_for_v5.17_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (24 commits)
      x86/mce: Reduce number of machine checks taken during recovery
      x86/mce/inject: Avoid out-of-bounds write when setting flags
      x86/MCE/AMD, EDAC/mce_amd: Support non-uniform MCA bank type enumeration
      x86/MCE/AMD, EDAC/mce_amd: Add new SMCA bank types
      x86/mce: Check regs before accessing it
      x86/mce: Mark mce_start() noinstr
      x86/mce: Mark mce_timed_out() noinstr
      x86/mce: Move the tainting outside of the noinstr region
      x86/mce: Mark mce_read_aux() noinstr
      x86/mce: Mark mce_end() noinstr
      x86/mce: Mark mce_panic() noinstr
      x86/mce: Prevent severity computation from being instrumented
      x86/mce: Allow instrumentation during task work queueing
      x86/mce: Remove noinstr annotation from mce_setup()
      x86/mce: Use mce_rdmsrl() in severity checking code
      x86/mce: Remove function-local cpus variables
      x86/mce: Do not use memset to clear the banks bitmaps
      x86/mce/inject: Set the valid bit in MCA_STATUS before error injection
      x86/mce/inject: Check if a bank is populated before injecting
      x86/mce: Get rid of cpu_missing
      ...
    torvalds committed Jan 10, 2022
Older