Commit graph

1,234,844 commits

Author SHA1 Message Date
Rik van Riel
94b3f0b5af smp,csd: Throw an error if a CSD lock is stuck for too long
The CSD lock seems to get stuck in 2 "modes". When it gets stuck
temporarily, it usually gets released in a few seconds, and sometimes
up to one or two minutes.

If the CSD lock stays stuck for more than several minutes, it never
seems to get unstuck, and gradually more and more things in the system
end up also getting stuck.

In the latter case, we should just give up, so the system can dump out
a little more information about what went wrong, and, with panic_on_oops
and a kdump kernel loaded, dump a whole bunch more information about what
might have gone wrong.  In addition, there is an smp.panic_on_ipistall
kernel boot parameter that by default retains the old behavior, but when
set enables the panic after the CSD lock has been stuck for more than
the specified number of milliseconds, as in 300,000 for five minutes.

[ paulmck: Apply Imran Khan feedback. ]
[ paulmck: Apply Leonardo Bras feedback. ]

Link: https://lore.kernel.org/lkml/bc7cc8b0-f587-4451-8bcd-0daae627bcc7@paulmck-laptop/
Signed-off-by: Rik van Riel <riel@surriel.com>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Reviewed-by: Imran Khan <imran.f.khan@oracle.com>
Reviewed-by: Leonardo Bras <leobras@redhat.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Valentin Schneider <vschneid@redhat.com>
Cc: Juergen Gross <jgross@suse.com>
Cc: Jonathan Corbet <corbet@lwn.net>
Cc: Randy Dunlap <rdunlap@infradead.org>
2023-10-16 16:06:37 -07:00
Stefan Roesch
b0540208a5 mm/ksm: document pages_skipped sysfs knob
This adds documentation for the new metric pages_skipped.

Link: https://lkml.kernel.org/r/20230926040939.516161-5-shr@devkernel.io
Signed-off-by: Stefan Roesch <shr@devkernel.io>
Reviewed-by: David Hildenbrand <david@redhat.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Rik van Riel <riel@surriel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2023-10-16 15:44:39 -07:00
Stefan Roesch
75d7dd4138 mm/ksm: document smart scan mode
This adds documentation for the smart scan mode of KSM.

[akpm@linux-foundation.org: fix typo]
[akpm@linux-foundation.org: document that smart_scan defaults to on]
Link: https://lkml.kernel.org/r/20230926040939.516161-4-shr@devkernel.io
Signed-off-by: Stefan Roesch <shr@devkernel.io>
Reviewed-by: David Hildenbrand <david@redhat.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Rik van Riel <riel@surriel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2023-10-16 15:44:39 -07:00
Stefan Roesch
e5a6899126 mm/ksm: add pages_skipped metric
This change adds the "pages skipped" metric.  To be able to evaluate how
successful smart page scanning is, the pages skipped metric can be
compared to the pages scanned metric.

The pages skipped metric is a cumulative counter.  The counter is stored
under /sys/kernel/mm/ksm/pages_skipped.

Link: https://lkml.kernel.org/r/20230926040939.516161-3-shr@devkernel.io
Signed-off-by: Stefan Roesch <shr@devkernel.io>
Reviewed-by: David Hildenbrand <david@redhat.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Rik van Riel <riel@surriel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2023-10-16 15:44:39 -07:00
Stefan Roesch
5e924ff54d mm/ksm: add "smart" page scanning mode
Patch series "Smart scanning mode for KSM", v3.

This patch series adds "smart scanning" for KSM.

What is smart scanning?
=======================
KSM evaluates all the candidate pages for each scan. It does not use historic
information from previous scans. This has the effect that candidate pages that
couldn't be used for KSM de-duplication continue to be evaluated for each scan.

The idea of "smart scanning" is to keep historic information. With the historic
information we can temporarily skip the candidate page for one or several scans.

Details:
========
"Smart scanning" is to keep two small counters to store if the page has been
used for KSM. One counter stores how often we already tried to use the page for
KSM and the other counter stores how often we skip a page.

How often we skip the candidate page depends how often a page failed KSM
de-duplication. The code skips a maximum of 8 times. During testing this has
shown to be a good compromise for different workloads.

New sysfs knob:
===============
Smart scanning is not enabled by default. With /sys/kernel/mm/ksm/smart_scan
smart scanning can be enabled.

Monitoring:
===========
To monitor how effective smart scanning is a new sysfs knob has been introduced.
/sys/kernel/mm/pages_skipped report how many pages have been skipped by smart
scanning.

Results:
========
- Various workloads have shown a 20% - 25% reduction in page scans
  For the instagram workload for instance, the number of pages scanned has been
  reduced from over 20M pages per scan to less than 15M pages.
- Less pages scans also resulted in an overall higher de-duplication rate as
  some shorter lived pages could be de-duplicated additionally
- Less pages scanned allows to reduce the pages_to_scan parameter
  and this resulted in  a 25% reduction in terms of CPU.
- The improvements have been observed for workloads that enable KSM with
  madvise as well as prctl


This patch (of 4):

This change adds a "smart" page scanning mode for KSM.  So far all the
candidate pages are continuously scanned to find candidates for
de-duplication.  There are a considerably number of pages that cannot be
de-duplicated.  This is costly in terms of CPU.  By using smart scanning
considerable CPU savings can be achieved.

This change takes the history of scanning pages into account and skips the
page scanning of certain pages for a while if de-deduplication for this
page has not been successful in the past.

To do this it introduces two new fields in the ksm_rmap_item structure:
age and remaining_skips.  age, is the KSM age and remaining_skips
determines how often scanning of this page is skipped.  The age field is
incremented each time the page is scanned and the page cannot be de-
duplicated.  age updated is capped at U8_MAX.

How often a page is skipped is dependent how often de-duplication has been
tried so far and the number of skips is currently limited to 8.  This
value has shown to be effective with different workloads.

The feature is currently disable by default and can be enabled with the
new smart_scan knob.

The feature has shown to be very effective: upt to 25% of the page scans
can be eliminated; the pages_to_scan rate can be reduced by 40 - 50% and a
similar de-duplication rate can be maintained.

[akpm@linux-foundation.org: make ksm_smart_scan default true, for testing]
Link: https://lkml.kernel.org/r/20230926040939.516161-1-shr@devkernel.io
Link: https://lkml.kernel.org/r/20230926040939.516161-2-shr@devkernel.io
Signed-off-by: Stefan Roesch <shr@devkernel.io>
Reviewed-by: David Hildenbrand <david@redhat.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Rik van Riel <riel@surriel.com>
Cc: Stefan Roesch <shr@devkernel.io>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2023-10-16 15:44:39 -07:00
Huang Ying
6bc2cfdf82 dax, kmem: calculate abstract distance with general interface
Previously, a fixed abstract distance MEMTIER_DEFAULT_DAX_ADISTANCE is
used for slow memory type in kmem driver.  This limits the usage of kmem
driver, for example, it cannot be used for HBM (high bandwidth memory).

So, we use the general abstract distance calculation mechanism in kmem
drivers to get more accurate abstract distance on systems with proper
support.  The original MEMTIER_DEFAULT_DAX_ADISTANCE is used as fallback
only.

Now, multiple memory types may be managed by kmem.  These memory types are
put into the "kmem_memory_types" list and protected by
kmem_memory_type_lock.

Link: https://lkml.kernel.org/r/20230926060628.265989-5-ying.huang@intel.com
Signed-off-by: "Huang, Ying" <ying.huang@intel.com>
Tested-by: Bharata B Rao <bharata@amd.com>
Reviewed-by: Dave Jiang <dave.jiang@intel.com>
Reviewed-by: Alistair Popple <apopple@nvidia.com>
Cc: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
Cc: Wei Xu <weixugc@google.com>
Cc: Dan Williams <dan.j.williams@intel.com>
Cc: Dave Hansen <dave.hansen@intel.com>
Cc: Davidlohr Bueso <dave@stgolabs.net>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Cc: Michal Hocko <mhocko@kernel.org>
Cc: Yang Shi <shy828301@gmail.com>
Cc: Rafael J Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2023-10-16 15:44:39 -07:00
Huang Ying
3718c02dbd acpi, hmat: calculate abstract distance with HMAT
A memory tiering abstract distance calculation algorithm based on ACPI
HMAT is implemented.  The basic idea is as follows.

The performance attributes of system default DRAM nodes are recorded as
the base line.  Whose abstract distance is MEMTIER_ADISTANCE_DRAM.  Then,
the ratio of the abstract distance of a memory node (target) to
MEMTIER_ADISTANCE_DRAM is scaled based on the ratio of the performance
attributes of the node to that of the default DRAM nodes.

The functions to record the read/write latency/bandwidth of the default
DRAM nodes and calculate abstract distance according to read/write
latency/bandwidth ratio will be used by CXL CDAT (Coherent Device
Attribute Table) and other memory device drivers.  So, they are put in
memory-tiers.c.

Link: https://lkml.kernel.org/r/20230926060628.265989-4-ying.huang@intel.com
Signed-off-by: "Huang, Ying" <ying.huang@intel.com>
Tested-by: Bharata B Rao <bharata@amd.com>
Reviewed-by: Dave Jiang <dave.jiang@intel.com>
Reviewed-by: Alistair Popple <apopple@nvidia.com>
Cc: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
Cc: Wei Xu <weixugc@google.com>
Cc: Dan Williams <dan.j.williams@intel.com>
Cc: Dave Hansen <dave.hansen@intel.com>
Cc: Davidlohr Bueso <dave@stgolabs.net>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Cc: Michal Hocko <mhocko@kernel.org>
Cc: Yang Shi <shy828301@gmail.com>
Cc: Rafael J Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2023-10-16 15:44:39 -07:00
Huang Ying
d0376aac59 acpi, hmat: refactor hmat_register_target_initiators()
Previously, in hmat_register_target_initiators(), the performance
attributes are calculated and the corresponding sysfs links and files are
created too.  Which is called during memory onlining.

But now, to calculate the abstract distance of a memory target before
memory onlining, we need to calculate the performance attributes for a
memory target without creating sysfs links and files.

To do that, hmat_register_target_initiators() is refactored to make it
possible to calculate performance attributes separately.

Link: https://lkml.kernel.org/r/20230926060628.265989-3-ying.huang@intel.com
Signed-off-by: "Huang, Ying" <ying.huang@intel.com>
Reviewed-by: Alistair Popple <apopple@nvidia.com>
Tested-by: Alistair Popple <apopple@nvidia.com>
Tested-by: Bharata B Rao <bharata@amd.com>
Reviewed-by: Dave Jiang <dave.jiang@intel.com>
Cc: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
Cc: Wei Xu <weixugc@google.com>
Cc: Dan Williams <dan.j.williams@intel.com>
Cc: Dave Hansen <dave.hansen@intel.com>
Cc: Davidlohr Bueso <dave@stgolabs.net>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Cc: Michal Hocko <mhocko@kernel.org>
Cc: Yang Shi <shy828301@gmail.com>
Cc: Rafael J Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2023-10-16 15:44:39 -07:00
Huang Ying
07a8bdd412 memory tiering: add abstract distance calculation algorithms management
Patch series "memory tiering: calculate abstract distance based on ACPI
HMAT", v4.

We have the explicit memory tiers framework to manage systems with
multiple types of memory, e.g., DRAM in DIMM slots and CXL memory devices.
Where, same kind of memory devices will be grouped into memory types,
then put into memory tiers.  To describe the performance of a memory type,
abstract distance is defined.  Which is in direct proportion to the memory
latency and inversely proportional to the memory bandwidth.  To keep the
code as simple as possible, fixed abstract distance is used in dax/kmem to
describe slow memory such as Optane DCPMM.

To support more memory types, in this series, we added the abstract
distance calculation algorithm management mechanism, provided a algorithm
implementation based on ACPI HMAT, and used the general abstract distance
calculation interface in dax/kmem driver.  So, dax/kmem can support HBM
(high bandwidth memory) in addition to the original Optane DCPMM.


This patch (of 4):

The abstract distance may be calculated by various drivers, such as ACPI
HMAT, CXL CDAT, etc.  While it may be used by various code which hot-add
memory node, such as dax/kmem etc.  To decouple the algorithm users and
the providers, the abstract distance calculation algorithms management
mechanism is implemented in this patch.  It provides interface for the
providers to register the implementation, and interface for the users.

Multiple algorithm implementations can cooperate via calculating abstract
distance for different memory nodes.  The preference of algorithm
implementations can be specified via priority (notifier_block.priority).

Link: https://lkml.kernel.org/r/20230926060628.265989-1-ying.huang@intel.com
Link: https://lkml.kernel.org/r/20230926060628.265989-2-ying.huang@intel.com
Signed-off-by: "Huang, Ying" <ying.huang@intel.com>
Tested-by: Bharata B Rao <bharata@amd.com>
Reviewed-by: Alistair Popple <apopple@nvidia.com>
Reviewed-by: Dave Jiang <dave.jiang@intel.com>
Cc: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
Cc: Wei Xu <weixugc@google.com>
Cc: Dan Williams <dan.j.williams@intel.com>
Cc: Dave Hansen <dave.hansen@intel.com>
Cc: Davidlohr Bueso <dave@stgolabs.net>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Cc: Michal Hocko <mhocko@kernel.org>
Cc: Yang Shi <shy828301@gmail.com>
Cc: Rafael J Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2023-10-16 15:44:38 -07:00
Sidhartha Kumar
a48bf7b475 mm/hugetlb: replace page_ref_freeze() with folio_ref_freeze() in hugetlb_folio_init_vmemmap()
No functional difference, folio_ref_freeze() is currently a wrapper for
page_ref_freeze().

Link: https://lkml.kernel.org/r/20230926174433.81241-1-sidhartha.kumar@oracle.com
Signed-off-by: Sidhartha Kumar <sidhartha.kumar@oracle.com>
Reviewed-by: Muchun Song <songmuchun@bytedance.com> 
Cc: Matthew Wilcox (Oracle) <willy@infradead.org>
Cc: Mike Kravetz <mike.kravetz@oracle.com>
Cc: Usama Arif <usama.arif@bytedance.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2023-10-16 15:44:38 -07:00
Sidhartha Kumar
a08c7193e4 mm/filemap: remove hugetlb special casing in filemap.c
Remove special cased hugetlb handling code within the page cache by
changing the granularity of ->index to the base page size rather than the
huge page size.  The motivation of this patch is to reduce complexity
within the filemap code while also increasing performance by removing
branches that are evaluated on every page cache lookup.

To support the change in index, new wrappers for hugetlb page cache
interactions are added.  These wrappers perform the conversion to a linear
index which is now expected by the page cache for huge pages.

========================= PERFORMANCE ======================================

Perf was used to check the performance differences after the patch. 
Overall the performance is similar to mainline with a very small larger
overhead that occurs in __filemap_add_folio() and
hugetlb_add_to_page_cache().  This is because of the larger overhead that
occurs in xa_load() and xa_store() as the xarray is now using more entries
to store hugetlb folios in the page cache.

Timing

aarch64
    2MB Page Size
        6.5-rc3 + this patch:
            [root@sidhakum-ol9-1 hugepages]# time fallocate -l 700GB test.txt
            real    1m49.568s
            user    0m0.000s
            sys     1m49.461s

        6.5-rc3:
            [root]# time fallocate -l 700GB test.txt
            real    1m47.495s
            user    0m0.000s
            sys     1m47.370s
    1GB Page Size
        6.5-rc3 + this patch:
            [root@sidhakum-ol9-1 hugepages1G]# time fallocate -l 700GB test.txt
            real    1m47.024s
            user    0m0.000s
            sys     1m46.921s

        6.5-rc3:
            [root@sidhakum-ol9-1 hugepages1G]# time fallocate -l 700GB test.txt
            real    1m44.551s
            user    0m0.000s
            sys     1m44.438s

x86
    2MB Page Size
        6.5-rc3 + this patch:
            [root@sidhakum-ol9-2 hugepages]# time fallocate -l 100GB test.txt
            real    0m22.383s
            user    0m0.000s
            sys     0m22.255s

        6.5-rc3:
            [opc@sidhakum-ol9-2 hugepages]$ time sudo fallocate -l 100GB /dev/hugepages/test.txt
            real    0m22.735s
            user    0m0.038s
            sys     0m22.567s

    1GB Page Size
        6.5-rc3 + this patch:
            [root@sidhakum-ol9-2 hugepages1GB]# time fallocate -l 100GB test.txt
            real    0m25.786s
            user    0m0.001s
            sys     0m25.589s

        6.5-rc3:
            [root@sidhakum-ol9-2 hugepages1G]# time fallocate -l 100GB test.txt
            real    0m33.454s
            user    0m0.001s
            sys     0m33.193s

aarch64:
    workload - fallocate a 700GB file backed by huge pages

    6.5-rc3 + this patch:
        2MB Page Size:
            --100.00%--__arm64_sys_fallocate
                          ksys_fallocate
                          vfs_fallocate
                          hugetlbfs_fallocate
                          |
                          |--95.04%--__pi_clear_page
                          |
                          |--3.57%--clear_huge_page
                          |          |
                          |          |--2.63%--rcu_all_qs
                          |          |
                          |           --0.91%--__cond_resched
                          |
                           --0.67%--__cond_resched
            0.17%     0.00%             0  fallocate  [kernel.vmlinux]       [k] hugetlb_add_to_page_cache
            0.14%     0.10%            11  fallocate  [kernel.vmlinux]       [k] __filemap_add_folio

    6.5-rc3
        2MB Page Size:
                --100.00%--__arm64_sys_fallocate
                          ksys_fallocate
                          vfs_fallocate
                          hugetlbfs_fallocate
                          |
                          |--94.91%--__pi_clear_page
                          |
                          |--4.11%--clear_huge_page
                          |          |
                          |          |--3.00%--rcu_all_qs
                          |          |
                          |           --1.10%--__cond_resched
                          |
                           --0.59%--__cond_resched
            0.08%     0.01%             1  fallocate  [kernel.kallsyms]  [k] hugetlb_add_to_page_cache
            0.05%     0.03%             3  fallocate  [kernel.kallsyms]  [k] __filemap_add_folio

x86
    workload - fallocate a 100GB file backed by huge pages

    6.5-rc3 + this patch:
        2MB Page Size:
            hugetlbfs_fallocate
            |
            --99.57%--clear_huge_page
                |
                --98.47%--clear_page_erms
                    |
                    --0.53%--asm_sysvec_apic_timer_interrupt

            0.04%     0.04%             1  fallocate  [kernel.kallsyms]     [k] xa_load
            0.04%     0.00%             0  fallocate  [kernel.kallsyms]     [k] hugetlb_add_to_page_cache
            0.04%     0.00%             0  fallocate  [kernel.kallsyms]     [k] __filemap_add_folio
            0.04%     0.00%             0  fallocate  [kernel.kallsyms]     [k] xas_store

    6.5-rc3
        2MB Page Size:
                --99.93%--__x64_sys_fallocate
                          vfs_fallocate
                          hugetlbfs_fallocate
                          |
                           --99.38%--clear_huge_page
                                     |
                                     |--98.40%--clear_page_erms
                                     |
                                      --0.59%--__cond_resched
            0.03%     0.03%             1  fallocate  [kernel.kallsyms]  [k] __filemap_add_folio

========================= TESTING ======================================

This patch passes libhugetlbfs tests and LTP hugetlb tests

********** TEST SUMMARY
*                      2M
*                      32-bit 64-bit
*     Total testcases:   110    113
*             Skipped:     0      0
*                PASS:   107    113
*                FAIL:     0      0
*    Killed by signal:     3      0
*   Bad configuration:     0      0
*       Expected FAIL:     0      0
*     Unexpected PASS:     0      0
*    Test not present:     0      0
* Strange test result:     0      0
**********

    Done executing testcases.
    LTP Version:  20220527-178-g2761a81c4

page migration was also tested using Mike Kravetz's test program.[8]

[dan.carpenter@linaro.org: fix an NULL vs IS_ERR() bug]
  Link: https://lkml.kernel.org/r/1772c296-1417-486f-8eef-171af2192681@moroto.mountain
Link: https://lkml.kernel.org/r/20230926192017.98183-1-sidhartha.kumar@oracle.com
Signed-off-by: Sidhartha Kumar <sidhartha.kumar@oracle.com>
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Reported-and-tested-by: syzbot+c225dea486da4d5592bd@syzkaller.appspotmail.com
Closes: https://syzkaller.appspot.com/bug?extid=c225dea486da4d5592bd
Cc: Matthew Wilcox (Oracle) <willy@infradead.org>
Cc: Mike Kravetz <mike.kravetz@oracle.com>
Cc: Muchun Song <songmuchun@bytedance.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2023-10-16 15:44:38 -07:00
Stefan Roesch
0374af1da0 mm/ksm: test case for prctl fork/exec workflow
This adds a new test case to the ksm functional tests to make sure that
the KSM setting is inherited by the child process when doing a fork/exec.

Link: https://lkml.kernel.org/r/20230922211141.320789-3-shr@devkernel.io
Signed-off-by: Stefan Roesch <shr@devkernel.io>
Reviewed-by: David Hildenbrand <david@redhat.com>
Cc: Carl Klemm <carl@uvos.xyz>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Rik van Riel <riel@surriel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2023-10-16 15:44:38 -07:00
Stefan Roesch
3c6f33b727 mm/ksm: support fork/exec for prctl
Patch series "mm/ksm: add fork-exec support for prctl", v4.

A process can enable KSM with the prctl system call.  When the process is
forked the KSM flag is inherited by the child process.  However if the
process is executing an exec system call directly after the fork, the KSM
setting is cleared.  This patch series addresses this problem.

1) Change the mask in coredump.h for execing a new process
2) Add a new test case in ksm_functional_tests


This patch (of 2):

Today we have two ways to enable KSM:

1) madvise system call
   This allows to enable KSM for a memory region for a long time.

2) prctl system call
   This is a recent addition to enable KSM for the complete process.
   In addition when a process is forked, the KSM setting is inherited.

This change only affects the second case.

One of the use cases for (2) was to support the ability to enable
KSM for cgroups. This allows systemd to enable KSM for the seed
process. By enabling it in the seed process all child processes inherit
the setting.

This works correctly when the process is forked. However it doesn't
support fork/exec workflow.

From the previous cover letter:

....
Use case 3:
With the madvise call sharing opportunities are only enabled for the
current process: it is a workload-local decision. A considerable number
of sharing opportunities may exist across multiple workloads or jobs
(if they are part of the same security domain). Only a higler level
entity like a job scheduler or container can know for certain if its
running one or more instances of a job. That job scheduler however
doesn't have the necessary internal workload knowledge to make targeted
madvise calls.
....

In addition it can also be a bit surprising that fork keeps the KSM
setting and fork/exec does not.

Link: https://lkml.kernel.org/r/20230922211141.320789-1-shr@devkernel.io
Link: https://lkml.kernel.org/r/20230922211141.320789-2-shr@devkernel.io
Signed-off-by: Stefan Roesch <shr@devkernel.io>
Fixes: d7597f59d1 ("mm: add new api to enable ksm per process")
Reviewed-by: David Hildenbrand <david@redhat.com>
Reported-by: Carl Klemm <carl@uvos.xyz>
Tested-by: Carl Klemm <carl@uvos.xyz>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Rik van Riel <riel@surriel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2023-10-16 15:44:38 -07:00
Huan Yang
987ffa5a38 mm/damon/core: remove unnecessary si_meminfo invoke.
si_meminfo() will read and assign more info not just free/ram pages.  For
just DAMOS_WMARK_FREE_MEM_RATE use, only get free and ram pages is ok to
save cpu.

Link: https://lkml.kernel.org/r/20230920015727.4482-1-link@vivo.com
Signed-off-by: Huan Yang <link@vivo.com>
Reviewed-by: SeongJae Park <sj@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2023-10-16 15:44:38 -07:00
Kefeng Wang
8c9ae56dc7 sched/numa, mm: make numa migrate functions to take a folio
The cpupid (or access time) is stored in the head page for THP, so it is
safely to make should_numa_migrate_memory() and numa_hint_fault_latency()
to take a folio.  This is in preparation for large folio numa balancing.

Link: https://lkml.kernel.org/r/20230921074417.24004-7-wangkefeng.wang@huawei.com
Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
Cc: David Hildenbrand <david@redhat.com>
Cc: "Huang, Ying" <ying.huang@intel.com>
Cc: Hugh Dickins <hughd@google.com>
Cc: Matthew Wilcox (Oracle) <willy@infradead.org>
Cc: Mike Kravetz <mike.kravetz@oracle.com>
Cc: Zi Yan <ziy@nvidia.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2023-10-16 15:44:38 -07:00
Kefeng Wang
75c70128a6 mm: mempolicy: make mpol_misplaced() to take a folio
In preparation for large folio numa balancing, make mpol_misplaced() to
take a folio, no functional change intended.

Link: https://lkml.kernel.org/r/20230921074417.24004-6-wangkefeng.wang@huawei.com
Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
Cc: David Hildenbrand <david@redhat.com>
Cc: "Huang, Ying" <ying.huang@intel.com>
Cc: Hugh Dickins <hughd@google.com>
Cc: Matthew Wilcox (Oracle) <willy@infradead.org>
Cc: Mike Kravetz <mike.kravetz@oracle.com>
Cc: Zi Yan <ziy@nvidia.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2023-10-16 15:44:37 -07:00
Kefeng Wang
cda6d93672 mm: memory: make numa_migrate_prep() to take a folio
In preparation for large folio numa balancing, make numa_migrate_prep() to
take a folio, no functional change intended.

Link: https://lkml.kernel.org/r/20230921074417.24004-5-wangkefeng.wang@huawei.com
Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
Cc: David Hildenbrand <david@redhat.com>
Cc: "Huang, Ying" <ying.huang@intel.com>
Cc: Hugh Dickins <hughd@google.com>
Cc: Matthew Wilcox (Oracle) <willy@infradead.org>
Cc: Mike Kravetz <mike.kravetz@oracle.com>
Cc: Zi Yan <ziy@nvidia.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2023-10-16 15:44:37 -07:00
Kefeng Wang
6695cf68b1 mm: memory: use a folio in do_numa_page()
Numa balancing only try to migrate non-compound page in do_numa_page(),
use a folio in it to save several compound_head calls, note we use
folio_estimated_sharers(), it is enough to check the folio sharers since
only normal page is handled, if large folio numa balancing is supported, a
precise folio sharers check would be used, no functional change intended.

Link: https://lkml.kernel.org/r/20230921074417.24004-4-wangkefeng.wang@huawei.com
Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
Cc: David Hildenbrand <david@redhat.com>
Cc: "Huang, Ying" <ying.huang@intel.com>
Cc: Hugh Dickins <hughd@google.com>
Cc: Matthew Wilcox (Oracle) <willy@infradead.org>
Cc: Mike Kravetz <mike.kravetz@oracle.com>
Cc: Zi Yan <ziy@nvidia.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2023-10-16 15:44:37 -07:00
Kefeng Wang
667ffc31aa mm: huge_memory: use a folio in do_huge_pmd_numa_page()
Use a folio in do_huge_pmd_numa_page(), reduce three page_folio() calls to
one, no functional change intended.

Link: https://lkml.kernel.org/r/20230921074417.24004-3-wangkefeng.wang@huawei.com
Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
Cc: David Hildenbrand <david@redhat.com>
Cc: "Huang, Ying" <ying.huang@intel.com>
Cc: Hugh Dickins <hughd@google.com>
Cc: Matthew Wilcox (Oracle) <willy@infradead.org>
Cc: Mike Kravetz <mike.kravetz@oracle.com>
Cc: Zi Yan <ziy@nvidia.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2023-10-16 15:44:37 -07:00
Kefeng Wang
6561045345 mm: memory: add vm_normal_folio_pmd()
Patch series "mm: convert numa balancing functions to use a folio", v2.

do_numa_pages() only handles non-compound pages, and only PMD-mapped THPs
are handled in do_huge_pmd_numa_page().  But a large, PTE-mapped folio
will be supported so let's convert more numa balancing functions to
use/take a folio in preparation for that, no functional change intended
for now.


This patch (of 6):

The new vm_normal_folio_pmd() wrapper is similar to vm_normal_folio(),
which allow them to completely replace the struct page variables with
struct folio variables.

Link: https://lkml.kernel.org/r/20230921074417.24004-1-wangkefeng.wang@huawei.com
Link: https://lkml.kernel.org/r/20230921074417.24004-2-wangkefeng.wang@huawei.com
Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
Cc: David Hildenbrand <david@redhat.com>
Cc: "Huang, Ying" <ying.huang@intel.com>
Cc: Hugh Dickins <hughd@google.com>
Cc: Matthew Wilcox (Oracle) <willy@infradead.org>
Cc: Mike Kravetz <mike.kravetz@oracle.com>
Cc: Zi Yan <ziy@nvidia.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2023-10-16 15:44:37 -07:00
Haiyang Zhang
562b1fdf06 tcp: Set pingpong threshold via sysctl
TCP pingpong threshold is 1 by default. But some applications, like SQL DB
may prefer a higher pingpong threshold to activate delayed acks in quick
ack mode for better performance.

The pingpong threshold and related code were changed to 3 in the year
2019 in:
  commit 4a41f453be ("tcp: change pingpong threshold to 3")
And reverted to 1 in the year 2022 in:
  commit 4d8f24eeed ("Revert "tcp: change pingpong threshold to 3"")

There is no single value that fits all applications.
Add net.ipv4.tcp_pingpong_thresh sysctl tunable, so it can be tuned for
optimal performance based on the application needs.

Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Acked-by: Neal Cardwell <ncardwell@google.com>
Reviewed-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Link: https://lore.kernel.org/r/1697056244-21888-1-git-send-email-haiyangz@microsoft.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-10-16 14:55:32 -07:00
Sergey Shtylyov
e8e4a470b6 fbdev: core: syscopyarea: fix sloppy typing
In sys_copyarea(), the local variable bits_per_line is needlessly typed as
*unsigned long* -- which is a 32-bit type on the 32-bit arches and a 64-bit
type on the 64-bit arches; that variable's value is derived from the __u32
typed fb_fix_screeninfo::line_length field (multiplied by 8u) and a 32-bit
*unsigned int* type should still be enough to store the # of bits per line.

Found by Linux Verification Center (linuxtesting.org) with the Svace static
analysis tool.

Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>
Signed-off-by: Helge Deller <deller@gmx.de>
2023-10-16 23:22:53 +02:00
Sergey Shtylyov
7f33df94cf fbdev: core: cfbcopyarea: fix sloppy typing
In cfb_copyarea(), the local variable bits_per_line is needlessly typed as
*unsigned long* -- which is a 32-bit type on the 32-bit arches and a 64-bit
type on the 64-bit arches; that variable's value is derived from the __u32
typed fb_fix_screeninfo::line_length field (multiplied by 8u) and a 32-bit
*unsigned int* type should still be enough to store the # of bits per line.

Found by Linux Verification Center (linuxtesting.org) with the Svace static
analysis tool.

Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>
Signed-off-by: Helge Deller <deller@gmx.de>
2023-10-16 23:22:53 +02:00
Jorge Maidana
1022e7e2f4 fbdev: uvesafb: Call cn_del_callback() at the end of uvesafb_exit()
Delete the v86d netlink only after all the VBE tasks have been
completed.

Fixes initial state restore on module unload:
uvesafb: VBE state restore call failed (eax=0x4f04, err=-19)

Signed-off-by: Jorge Maidana <jorgem.linux@gmail.com>
Signed-off-by: Helge Deller <deller@gmx.de>
2023-10-16 23:19:34 +02:00
Jorge Maidana
0c37bffaae fbdev: uvesafb: Remove uvesafb_exec() prototype from include/video/uvesafb.h
uvesafb_exec() is a static function defined and called only in
drivers/video/fbdev/uvesafb.c, remove the prototype from
include/video/uvesafb.h.

Fixes the warning:
./include/video/uvesafb.h:112:12: warning: 'uvesafb_exec' declared 'static' but never defined [-Wunused-function]
when including '<video/uvesafb.h>' in an external program.

Signed-off-by: Jorge Maidana <jorgem.linux@gmail.com>
Signed-off-by: Helge Deller <deller@gmx.de>
2023-10-16 23:19:34 +02:00
Arnd Bergmann
e4078ebbdd RISC-V Devicetrees for v6.6-final
A single fix for the Starfive VisionFive 2 platform so that chip select
 for SPI matches the vendor documentation.
 
 Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYIAB0WIQRh246EGq/8RLhDjO14tDGHoIJi0gUCZSvaJQAKCRB4tDGHoIJi
 0sg6AQDQXrn1qqG+Gnq3uRl9on9KXf8xX16vcZrkzu+V8Qo2SgD/XnT8gJ5W3NwG
 y1XqbQ4HXIkhU1ETcanjL2zNL59IGgA=
 =IneL
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmUtp6IACgkQYKtH/8kJ
 UicBmQ//eaXzVEB1LVP7Wt+jsUy5BLSlWm+Y/pDlSUyv7XJVILNUh20vmBmx/72a
 j70PCO7MegYUpH9jfg64QV8h4e0fdp6N+wPPMA0sUSdjl1J04Ad8+xIVbnCCytvF
 N1+aVnWpaX4h+UF739hi7A0J5TAd2CEKSicQ5B3eAeWjHxfOdwE4eu08PstL7WZD
 yCI7UDRb2vYs5+l0gNk0PjJ6ngR8tivlgtOlaW1fkvT1L7s4ij7XWVXFMN6JjlPD
 A1dJeuaeOUXWUR4ow71IXMBWxzflQ4hZL++yqeHtRxxw09BUDTtV4gNhJgnGgq7I
 EN5SZ8cLKASYc2+Z6DUU2m2niYz4Au2YdspzJMnDbuVTQSo9/Dwrbn36XgWygafD
 EmOKP75d70tWvNtZ/BoyCrGets81+6SYSubxEvHEm32RPKqSS2UQVy2h92s0mXfj
 24V2klZs3PG2+k4Kt3gMOSliF03SbcI+lWglOrCAVb98mc43kQt02oNw/0icyane
 BPoyfQFrIXC5HT0E+iWXIP3fSLp1edLzxN/VqidPneBXGlLHxdspPrZP3zKFvQ6m
 3Ncx2r/h8C4Spltf8eqvsGc5fkizYlIAq9hPUnXOIIwOaBgHwRfgIL5uq6LxD6wt
 SRRy+VyNJjtAHNyZJXSUZ8KQsMKVdvO/IOw9cGtiy/AiP0/a5EU=
 =QdXG
 -----END PGP SIGNATURE-----

Merge tag 'riscv-dt-for-v6.6-final' of https://git.kernel.org/pub/scm/linux/kernel/git/conor/linux into arm/fixes

RISC-V Devicetrees for v6.6-final

A single fix for the Starfive VisionFive 2 platform so that chip select
for SPI matches the vendor documentation.

Signed-off-by: Conor Dooley <conor.dooley@microchip.com>

* tag 'riscv-dt-for-v6.6-final' of https://git.kernel.org/pub/scm/linux/kernel/git/conor/linux:
  riscv: dts: starfive: visionfive 2: correct spi's ss pin

Link: https://lore.kernel.org/r/20231015-outmatch-tragedy-228f91d396b5@spud
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2023-10-16 23:14:10 +02:00
Arnd Bergmann
e638d3710f fbdev: sa1100fb: mark sa1100fb_init() static
This is a global function that is only referenced as an initcall. This causes
a warning:

drivers/video/fbdev/sa1100fb.c:1218:12: error: no previous prototype for 'sa1100fb_init' [-Werror=missing-prototypes]

Make it static instead.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Helge Deller <deller@gmx.de>
2023-10-16 23:04:27 +02:00
Dan Carpenter
dc608db793 fbdev: omapfb: fix some error codes
Return negative -ENXIO instead of positive ENXIO.

Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Signed-off-by: Helge Deller <deller@gmx.de>
2023-10-16 23:04:26 +02:00
Arnd Bergmann
09427e1975 RISC-V SoC drivers for v6.7
Minor changes here only. There's the treewide remove callback work from
 Uwe, some of my own gradual conversion of SOC_ Kconfig options and a
 selection of the ARM AMBA protocol required for the crypto driver on
 StarFive JH7110 SoCs. The latter was supposed to be in v6.6, but I
 forgot to send a PR.
 
 Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYIAB0WIQRh246EGq/8RLhDjO14tDGHoIJi0gUCZS1TXAAKCRB4tDGHoIJi
 0itYAP9/F6ao6N728C9VEEcZ2Y+KAW2iiDWTEkJC6Ng/JWqOagD/X1Etz5m8s/eJ
 ZFhf7GQnszYcgP+KT7XtLcIjKI+EKQ4=
 =gwZH
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmUtpN4ACgkQYKtH/8kJ
 UidMgBAA3cgZgdUQaMnLC/rrx0B2DcO3NguMJXFT4XElNbYNKf4AG2jTPVTc7WtJ
 DEERy0hPH0xXPd/VDaCoz+eUcZDFjJKDcrd2DlNmISyVDOtBWsezdKrGz6v2xiCt
 nkn6Uii/QfG4joAw6vJIOYhtaT1EBbiHb176LOcaEY8psQnhWqL16ocwBrjc49GR
 2pkjC1jcqsQGtqEE1A2R7+hbrSHRdLI3JDYWztee2zrCXEgSVl/l3TqYdGqtUF/N
 A246nC6CuJdRBgtmVbBgxKswn3vv1FWoQRsLobBIhOAwf2jxEcaecO0h3LmFYx2G
 571VRMCtbvtUbrFKsxvroX43r+Jj3jygVd6rElHY5emn4FaGE4UiUNqziZGDBgq8
 iwtYLabPHdCakfXi8/cXlb+r+Box+TiXRSTT2Y4AZibmbIghMAv0ub2MuVr5b2r9
 1Til1y+gGZhqIoMD+Vb+LnECJhdAI27hz2oegtMvm4rkC6WhZcFrThWsWBE9Rx8y
 He+BxjRHNvWtKrv+8OhLW78LgnJ6EsIg6He5adjk43Q42OHZ6duBo5x28tjvFD4U
 Ul+0vsfPcapj8TSKZewAiznUTN3fkxR9WUIVOsJM6bTJqdNujDnd9kp7lSCP32ga
 t67kmP/ntm+99t47Dzo3yNrU7BPm/tbpf2WLI179uGlxuL6zcq8=
 =WaOH
 -----END PGP SIGNATURE-----

Merge tag 'riscv-soc-for-v6.7' of https://git.kernel.org/pub/scm/linux/kernel/git/conor/linux into soc/drivers

RISC-V SoC drivers for v6.7

Minor changes here only. There's the treewide remove callback work from
Uwe, some of my own gradual conversion of SOC_ Kconfig options and a
selection of the ARM AMBA protocol required for the crypto driver on
StarFive JH7110 SoCs. The latter was supposed to be in v6.6, but I
forgot to send a PR.

Signed-off-by: Conor Dooley <conor.dooley@microchip.com>

* tag 'riscv-soc-for-v6.7' of https://git.kernel.org/pub/scm/linux/kernel/git/conor/linux:
  soc/microchip: mpfs-sys-controller: Convert to platform remove callback returning void
  soc: sifive: replace SOC_FOO with ARCH_FOO
  riscv: Kconfig: Add select ARM_AMBA to SOC_STARFIVE

Link: https://lore.kernel.org/r/20231016-predator-affiliate-e8affd3a7be9@spud
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2023-10-16 23:02:22 +02:00
Arnd Bergmann
15c46d85f0 Amlogic drivers changes for v6.7:
- correct meson_sm_* API retval handling
 - Use device_get_match_data() in meson SM
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEPVPGJshWBf4d9CyLd9zb2sjISdEFAmUs83IACgkQd9zb2sjI
 SdFGzw//VNykb/lkcMbPSG9FB0q5rUHfZqiqn9OEdd8rk2ygUzHSbjxSl91rJYJl
 LnmtoB1I0ojJbkwYxPDsvpJrd5TaDS2nRhzxtk4PfZVn6SbHA1gEXlYAi1sgOpa7
 G0wJ2jNT+jocS5868UyZCiOojxhD3TKsSCtPk7qvb9ywRBq4lKW5Ci6HIJHxcwL+
 AzhozwO8vio93oSRd72GXlH48HpL4MR7GWyYl483rGEQIM5LvhNP0CWUMoRmPRqr
 WtwiXsH7uth8l5mCxSb5HTdFTLFcFh301UgXovFDg+qudK8Kk8fspX+KQJt/Rpo1
 vyEI/Hc2PeEFUz2pHPOGVdeo8cPjN0Kph2jeT/s8B9UYSUFxPoRfESea68g6/gHt
 TQuuu+Nfy0FVJAVOwq24aAzxQ3bETCmEvVcGQhNfXINTMpEZZmr75jeq7j5PJVuY
 +b7KEqY9PzJIThGimZknbbrjEpeSvF+5w+/Ao7KhSh1ezuGgHQ5Pxt3T2SVwsKq7
 zlzXTupfqNu6Jcd7gpFQARWv2qOXTZha71eG+sAjXtmz3TglSZc8S2bJg9CD0VSI
 O0nBggXNKoAmCLZFcX2Dvvvj47WBqX2AP530dQUT0ZjO8Wh9Duf9cSAdgOI98/TD
 IIaW9QXpTYeD9I9zmMsQ2zKZpHpMMvM9DUZ87ocmYgC/AcpguLs=
 =EiNc
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmUtpKwACgkQYKtH/8kJ
 UieslhAAvIqH0Tx7Lsu2XPP41UbYB3Wxa0uFSGGYihrkA8/ZrmZ7a+xzGvL131fu
 +Y/KA+g6uHVct3kPTvq6wry8gJI48JMGlVzAGalH+66PuPr7FYv+ZQVs2GVcBuB7
 c5Lv0Nbu/7LVMuTf/sKcoSRwx8w4nKpL7UGZVb46uGM4z41abdzzcb3+K95vUZ4M
 HaCiFbrBtEIZl1YXSsOWat7K5gvyVQQ9TFamD6HEmq2MRXRubvAueX0w/Z/fydaR
 0l1vIfTadRf4YIDLuBkXieKAsYwQ2ShAiC2/oRgBc7+Rg9BDoh3MFW8TTu36nGFM
 Ufe845X1JrUl6r2J0hYAU4qb7nwpNQmXZuUeyBNPYXw+Ovsy8fWWqZ9MB8XCdkag
 yGweDUcp/KAMHafVLWEI18Jjy5oYHoLsG5geQeyerIhbTpx834RC8mpVYe5kAiXA
 D99dYa2dIzpgo5OShx/Q62vW7OK8/RLXs71V2+WrmyvWjlQMFWYIKAE1Tt9pRc5K
 hIVKAzioMQM9kh3J0t6MZhtvqe9A9in4P3knS+91MH6TiQcwqj5IoyVtHNt5g+Ed
 EjuZa9rK1sqwjUT4uJfmiHrW9AY4RrSB9Bz1mr8NmSbv53cUqcDcBf55RMVS48Fi
 i6v7IKWBloPl27ixHZRi2xbWBOzvWUqopiTYRE2g1W2bw/j3XUs=
 =C6PQ
 -----END PGP SIGNATURE-----

Merge tag 'amlogic-drivers-for-v6.7' of https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux into soc/drivers

Amlogic drivers changes for v6.7:
- correct meson_sm_* API retval handling
- Use device_get_match_data() in meson SM

* tag 'amlogic-drivers-for-v6.7' of https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux:
  firmware: meson: Use device_get_match_data()
  drivers: meson: sm: correct meson_sm_* API retval handling

Link: https://lore.kernel.org/r/00ef6ab3-59c1-484a-9d70-50f16e4cc584@linaro.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2023-10-16 23:01:32 +02:00
Arnd Bergmann
e855cbf28b Memory controller drivers for v6.7
1. Atmel: Use __counted_by annotation.
 2. Tegra: Add Tegra234 clients for RCE and VI.
 3. Cleanup:
  - Use device_get_match_data() to simplify the code,
  - Make "additionalProperties: true" explicit in Devicetree bindings.
 -----BEGIN PGP SIGNATURE-----
 
 iQJEBAABCgAuFiEE3dJiKD0RGyM7briowTdm5oaLg9cFAmUs6LEQHGtyemtAa2Vy
 bmVsLm9yZwAKCRDBN2bmhouD14Q6D/4zrc/524csRStCAgtJGA9XwX6iyD6+EKFv
 51gIxZb378futNyDVfSHb4xcvVgqR91718buFG8+pFBKq4oshSlm/+KK+YyJwmGX
 4OBB4slpCJFc8LU2XrBHgdNga5iygJtEukvycDRf6eOZ2vj8Dd+1QQYhcyfaT77j
 4dt43qNFObxuQAuRXiyRy9Z4rH15TrboMlysJyva5gQ5ZaTSnzGG/ZjfITx0Lvc7
 xZRhFBPhsy+zIKv9AhxUH3ijU9HCcYXub9AWBM97Zvvy7IAESQT5YkK16PS2GdOs
 rr8LxXDWtEsBMYB6a9pmVHSvO1292e9tQvNY1/Y6i7Wi3wYRqyVivXd9XB0oeBcF
 UzIOz4cUGx6nWCRgINlIUOoHTQRDmPlp3Y916p7N+QDsEUOx6R3p6SsahOvZvoeQ
 pmwnb24DdIXUytQEFEG6w/YtRdFfOcS8cfeVXrs8sneFXR1UvFyeAYPzC784JLAM
 tzRqsUWmBtrxzSOXH+uDSQ8Iz5dBQt7ZHWj2njCyhywOK6viurhj1h3+R4mR8G87
 XoOhgMvN0SnwrpdC9PbKKaZN8IQUTi306x6unbs58mvtvbMOoDsPMznMxd48r9fD
 E6gwMU8fNG/l+x+j92Yb14S5HSIFDQDeuGHLn0I8kaC+VMXSZNYN02iBx0K6IStY
 gOI6S6hrCw==
 =+zNo
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmUtpH4ACgkQYKtH/8kJ
 Uie1uhAAghdFpIBgmjXIKbGsTTlhtTU4nlxajp/h2Ubvq2GXk4+l3Sbdi82uqFpp
 0PihYPsLKBEADeZI2LuK2KlniQ8/mjjpAEJW+jwvY9FCTDRB9HCR2qGjFKU3rnRm
 EkqLtc4uYfdWFvkVsVpcgNNCt0CjRKaa7no1mWJcLY6NR7bM3Duw4U3mOV9Spocs
 Z1pGUH040E0mVZ1PjTFNtxceEtv59AXAwtki7b0wPol1PQxy18ZrTqOmKUW9+sK+
 O+zIgA0jQH88wYQmREDGxugpE4rWY4hrr7QOxMTXOQ9RxnEFVByq3pBeayS4K1+r
 +yvN5DewbONBo2a6r0zDRXIQuYFKNbwXpJThT3g86tSkrY0FOl913+D4WtqHyVnB
 9yWS6yLSDxqc8BE7bH4w2VMyq9pbAznfobpubh3i9kkV+JTbX4c5zHN7JRr+yLuR
 aGdA8yX4LFz8GMecBkQcVnRyDqYXjeZCZaScKh7nRtf+iDeMunaz5Pcwt7DiC3sH
 Jhxk49vHVkheoogZgN75SXEfkp6xAVO0y8jJDow+sEJ7fII0E60NHNXJUxnHIgxY
 JGo8lqhcF7FatWLdvib6qppV0HCD7Po8AmGHvBYtlEvp1XLZ/Nk/+l5HJpQYnG3r
 GNUTHgE2WpfqBv9QajvInCR8b/Oa7+BjVhOSvbZzrX2BjJAGmT4=
 =uqQ0
 -----END PGP SIGNATURE-----

Merge tag 'memory-controller-drv-6.7' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux-mem-ctrl into soc/drivers

Memory controller drivers for v6.7

1. Atmel: Use __counted_by annotation.
2. Tegra: Add Tegra234 clients for RCE and VI.
3. Cleanup:
 - Use device_get_match_data() to simplify the code,
 - Make "additionalProperties: true" explicit in Devicetree bindings.

* tag 'memory-controller-drv-6.7' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux-mem-ctrl:
  memory: Use device_get_match_data()
  memory: tegra: Add Tegra234 clients for RCE and VI
  dt-bindings: memory-controllers: Make "additionalProperties: true" explicit
  memory: atmel-ebi: Annotate struct atmel_ebi_dev with __counted_by

Link: https://lore.kernel.org/r/20231016074013.28286-1-krzysztof.kozlowski@linaro.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2023-10-16 23:00:46 +02:00
Arnd Bergmann
1780d27c7a ASPEED soc updates for 6.7
* Move all drivers to .remove_new callback
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYIAB0WIQRz6FSYRMHvZ436fLaBQBa54y6+yAUCZSyLvQAKCRCBQBa54y6+
 yL//AQDDTVJcId8nt8gUWwL+yjGrokPt/+1SsqyCHGTy3SI6rwD5ARNtUlvkM+77
 ig820/TBubDkDhGpYPXobP4Su73DOgY=
 =e+lV
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmUtpGEACgkQYKtH/8kJ
 UifTMQ//UkeWmRkxgbacP1dAw6UgiDbkcJweRKOnb/IiXVzepqKFdmiQ3zjFBMyO
 c9yH3jBNI5XcLZRYqrmaOs8zPiQpAd/o5bT98mp6CTjBxuq+UaRSCvFeUITOd9ek
 c4JO4oPDHYMnc5xGgqeZfvqFrijSSacLw96UQtqJgr4gz7aEdoySdGpTDTwCKThk
 knFMKbBTP4tL012Hy3v8szS1DiOylDFjzzjTFKSAM3HQCNS0ZGOE+cKbKowIyw8k
 GBWQVFK+Ky4L60RNa13YLn9V5Bzc6qo2vqGRBygdTAEa+X/BPPh3LGx5uer6X+NT
 7wo2bn4sV0LjjB6KVmKRJgrqY54KntXKr3ylkUW6I3D4NPgL2wcsK5HQlp2pk5+y
 ar5Sev8YR9MQqe1MRBYJzXpLIct+RUBhACAWxm1EbwLHbni96m0U7+Uqf8D9ZUlu
 yI+4nN1ueXmjC9hU4ZoFbWAYMVWDjPziFtYjr8CJAS5+IPcdp46JEswP7x6Qzyf4
 qfU5qou+K/vSb9BdeqQLPUMZfOg1o9fCmiVU4ZsIDAlO6iEOKll5POyEyQ17XeHh
 yHR19Ods9H81rPcVY/2UZorYYIaOF+GIJtORSnTwogKJrUBiqiE3f0Ck4QJtkOdn
 nowVrstvu3cr1hrbZXSRbn9bxseuWZKMlRa3NpndYYRLXsdbN9Y=
 =34BT
 -----END PGP SIGNATURE-----

Merge tag 'aspeed-6.7-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/joel/bmc into soc/drivers

ASPEED soc updates for 6.7

 * Move all drivers to .remove_new callback

* tag 'aspeed-6.7-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/joel/bmc:
  soc/aspeed: Convert to platform remove callback returning void

Link: https://lore.kernel.org/r/CACPK8XcTx9bd7DkguFOZ4qCxk8MJWm-yeNMLGDCnO+wv7dwa1g@mail.gmail.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2023-10-16 23:00:17 +02:00
Arnd Bergmann
78aee16af9 memory: tegra: Changes for v6.7-rc1
Contains a fix for a long timeout that can make it seems like the system
 is hanging during early resume.
 -----BEGIN PGP SIGNATURE-----
 
 iQJHBAABCAAxFiEEiOrDCAFJzPfAjcif3SOs138+s6EFAmUpXnwTHHRyZWRpbmdA
 bnZpZGlhLmNvbQAKCRDdI6zXfz6zoa8fEACtQWU6lgzmYUztpbmCJqlMm2fRjwRz
 pJx2Gh98afBOYqDR/IlYiV/vSPKpusqBkqCqF1/B2JbV0PWrJEu9jY/cjU4L5DUF
 +AmIXVHRfifj9b5D5jkgW/RtN8BdvViulWRANDcy17uaQptoEFE8N0HzZswMyMw+
 it7k4p8tir8SbZiI9Wj72zYqxPz0ZgIBv9naS2EXGWrgEWgU1VgiZTVQ3UpWEkUp
 MMg9N1t7l5E0pVl4zpBKhORiKcC4vlTh+Eidjfr2hv4P/Luq8NgTJ17MeaVqLy3J
 gJI6MZNmTi9NgnPvK/g2ogiTz2Do+JA/tAe+KgzOt8LoItO6o5HkSAv/Qq6yzh0/
 22ZN1bhQHFbUEXT4zO7vZwgPYXTmuUqg+GEX+6pj7K7O6xIhzR9sEmV26ENJTEd8
 otu3obXoC1MYQJtPeHMPAA+4PxxR+AuAdn3jEoq3iSIHOtOOXP99vhPyAagky1iV
 MaH+44tm/aPbZFSluywf7Pe3r/Jc9ggnyojYXoQ+533Sr+S2DRbDtB6Ja/Y7WZm0
 xrnWQRstKs8spSx47WSGod+1O50kb+6BqAaY3Oluqc5wE0EmVxHpv5vCdoG1/QM4
 VHR17Q+6R9s1YzTm+QHWXSy0TkF7OGUA5veC1qXhwW/x8NZHT3My7dUpZI2DGHgm
 9GIvwj3kfksslw==
 =4K0t
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmUtpCkACgkQYKtH/8kJ
 UidV/A/7BDRIIMscjuCgoC1z2LX5Qqhq7CT9Xb4e/rw780DdXW/3VZvD4lCLPvDm
 ca77wYxndnboElonW6nCGkMlk2U5Zpdiwy38S6FPuByORCTcscPx9lkJQaybplUl
 OGirQzsQx9VNPEMNGrVtEuoOM5aJMkO1+EOlmDMJGt6kpEcNWgelw0oglUKKA0iP
 UhE97dZWAfUSvhqwoQsAV4KH/gBE8IsO83+qVNDCPZgcBq1U+ffsoGM1AoOIC/zl
 AjUGXuT5jYMle6C97NiBxFhbnF44Stnek9WrtIbS18RfMKnxV7+O6SPBxI4UNpLr
 r6ipmzAMHYy94zX8UY2ZUQBUr2rJ3JKye05wBMJbItqdDhuUsrbyrZCKILNFopyy
 FKAhHdd9fTPENhtrKQ9UYUdWUWwMpVkp2Eoc7qKkh/yaPS2fCixSB0E3+EJrBNnU
 DVdmgUXqpIMykbP3fp+Qfb4pJ1VH1OweV39bE5COlPvlzYYe5GLQuJXSC2rZvLVx
 dyuu26D2W32q7WS8YgdXJk3Sp+RZC1iCh0w98O69CbuLSZasKSO6oQqn7f3UVtEx
 AutQlZOl3pQ0/u+vkf4OORel/+vp7AezReL/+nY9PWwki1WoKMhiiBJdsQNSsMZE
 Eesk/wgxnWr29EsGX5MOaL1cyXlsfmL+k0yRZUWsVAMKvEnlCt8=
 =MSkr
 -----END PGP SIGNATURE-----

Merge tag 'tegra-for-6.7-memory' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into soc/drivers

memory: tegra: Changes for v6.7-rc1

Contains a fix for a long timeout that can make it seems like the system
is hanging during early resume.

* tag 'tegra-for-6.7-memory' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
  memory: tegra: Set BPMP msg flags to reset IPC channels

Link: https://lore.kernel.org/r/20231013153723.1729109-4-thierry.reding@gmail.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2023-10-16 22:59:21 +02:00
Chris Morgan
1e9ac3e8a6 arm64: dts: rockchip: add support for Powkiddy RGB30
The Powkiddy RGB30 is a portable game device based on the Rockchip
RK3566 SoC. It has GPIO buttons on the face and sides for input, stereo
speakers, a 720x720 4 inch DSI display, a USB-C host port and a USB-C
peripheral port, dual SD card slots, WiFi, Bluetooth, and 1GB of RAM.

Working/Tested:
- SDMMC
- UART (for debugging)
- Buttons
- Charging/battery/PMIC
- Speaker/Headphones
- USB
- WiFi
- Bluetooth
- Display (at 59.04hz)

Signed-off-by: Chris Morgan <macromorgan@hotmail.com>
Link: https://lore.kernel.org/r/20231013183918.225666-6-macroalpha82@gmail.com
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2023-10-16 22:58:45 +02:00
Chris Morgan
64d0de4f65 dt-bindings: arm64: rockchip: add Powkiddy RGB30
The Powkiddy RGB30 is a portable handheld console from Powkiddy which
uses the Rockchip RK3566 SoC.

Signed-off-by: Chris Morgan <macromorgan@hotmail.com>
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://lore.kernel.org/r/20231013183918.225666-5-macroalpha82@gmail.com
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2023-10-16 22:58:45 +02:00
Arnd Bergmann
9e6e423a36 firmware: tegra: Changes for v6.7-rc1
Contains a typofix and a new mechanism to help fix an issue that can
 seemingly hang the system during early resume.
 -----BEGIN PGP SIGNATURE-----
 
 iQJHBAABCAAxFiEEiOrDCAFJzPfAjcif3SOs138+s6EFAmUpXfwTHHRyZWRpbmdA
 bnZpZGlhLmNvbQAKCRDdI6zXfz6zoWNFD/9+VDQK/PYAwD1DIdClul7lLftD/To3
 5zCi5tt7BD8HVhOci4IF89j0qOG09SNUg9rIOY6zg/9L3XopuWMZIHMPsJK0T9PR
 j7VgvD181OC/o6W3GZiTYgNXndkz7G+vf9cSJrc5V1sypa74dkqS2Wkjrdq03u8j
 AybYdga2BwJXPyCFuV74ORsRPy1BQjK/uPlh+vNwY9FF2hZ9WWATG1D8dF1guOXa
 W8z7aubvmAUHhWKY54dSYHkH3mgW1+B8AdK2KIm/ijw2Mfol/iA67mb7qvKjL2RU
 h+y2IMoQGvYOiDKUdjSKe//Ve8elhAOCJ+VriZENCOTTs6EJl5otXC/6lzPpnX9A
 Z3Sz41su+riIPfLvXTryxbCDOFWvMqp6z7ANBMFXawzqMOPct0ZwD1F9EnLzuuSC
 KpyzPSnjo5afUk3u/pJaShKtPUhVbZ1yzrhbC+bMQpb1iKm/88439eQvARtC0f9Z
 tS7fOeJEOQ+AoNGFzn4clHskfqsF+OluWV2uH+zGGiejtcRU5Q3t0+7ILNjrPeFg
 j4OeKvR+8npk3VP+ItOry6ACZA7S5ieUXN7msWCGIbPRq7TJQCdsov78NLJy5MkF
 pjWPDQ3f8dD0DW0WPBYUbdgrwCREjNHf60dZlfJWvTtKX73XLrxcXvAz57vcIB2v
 VybNWRmtcXBI8w==
 =IXob
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmUto+0ACgkQYKtH/8kJ
 UicJ7RAAs97iG93u8Mmx3nS9u5VB1KKm+Z7BiDkEMrULIRcZ3PqlCydBCa7klAWG
 x0gsE4KR5t9q2Iwy0TPponGCw3OD0WiiERz8BGDyJLw/y4Th1ZWDClq2OIbDT4Dr
 NiExqGWNvpE7myrYjY4NHBoqsnMvyMvzNWRDcI4hL51YLHM1CZbqYrK+NROo1Zg2
 o+hzi+Qwx0fKUGUgfcqwJkwn3FabbOBelnOxSkd97dznf49fCdQwJcSKRndtE6RM
 LrosR6aNAwios/0PYXzhcIwjfJyLeW/FoY5AfGbFR91xwukmZPhGhhHY5XPHYJAq
 lUlVl1IYDTH+vVAcq7GlltIvXBbzUPuAnh1iWffDv5OLA4ghjNiToI8N3lP1AmrL
 dkAy67VkIMKBYBxqxgujYI/2TRmzlGa9IEL5nTKs7pFcDGfEoUHPS9FZO8G+NH4w
 L+kNGAD8GEwytaXSVPVx9Cmoy8u859USpWGs9198GXlZwrFrjSJ20IB30qrDIEyK
 uAp9Yzkeh/FgkOPwepRK99XIkgQOcnqQldP/Q+8ItLldugWIgowQEZCcBRMxJa/8
 q61s+w5LcXHJB2lux6TaztLXfhnetoNmUUrbJjj0gOnxOn43rrDhGnv6yFHwFFec
 L4o48PWAva/dOqCmIK4Vuvy3FSsgUyHkY4BXz4IE2LFSApBGYeY=
 =r80j
 -----END PGP SIGNATURE-----

Merge tag 'tegra-for-6.7-firmware' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into soc/drivers

firmware: tegra: Changes for v6.7-rc1

Contains a typofix and a new mechanism to help fix an issue that can
seemingly hang the system during early resume.

* tag 'tegra-for-6.7-firmware' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
  firmware: tegra: Add suspend hook and reset BPMP IPC early on resume
  firmware: tegra: Fix a typo

Link: https://lore.kernel.org/r/20231013153723.1729109-2-thierry.reding@gmail.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2023-10-16 22:58:21 +02:00
Arnd Bergmann
024d4292e4 soc/tegra: Changes for v6.7-rc1
This contains a few minor cleanups for PMC and CBB.
 -----BEGIN PGP SIGNATURE-----
 
 iQJHBAABCAAxFiEEiOrDCAFJzPfAjcif3SOs138+s6EFAmUpXboTHHRyZWRpbmdA
 bnZpZGlhLmNvbQAKCRDdI6zXfz6zodjZD/9e95B23hid+95CCg1fKhPNo0q056rS
 7qKuPQvNmb1ySR9T0bhwe7PghISD4DFB2KHu5Yp2CFtjP+IkSQuouByp7yaOyL+y
 2P+CuXp0IM6JpfnidvEzjzuVchOu+pN0xVzPcsmjjaWWz495N4v8b2Q0K/RcMu8p
 tQchqjarsgiHr6iuK61gf3EzGrxIuFjI2DomC6PmJJKwdqrAU9nwB6ReaZrtHpiM
 rnxrHVCd2MxlMu9VqiHFyCd3H6gwCQSNZm+04Rzikgm8g22YgPTfTBfDPyxtE7o0
 yZwrNreJunMiMfNQwVbKJnDdcVjvO9xBIzjPrKYx6SOjhTCnIROJsOqFtjhv1873
 nIFzP7iyiwClahHL2yReVPs2XDfVLsfxZjQ2GGuMOsAdsfIENCfVspk03FYRUAgj
 izaGx3iZKZrH+Ds0Kka3+rdM5lfXV1qARYvOyAfqSoP3r0G83uJItM/qVxC/rGSP
 KldNTKDgP1Txj9hx5Yd0opgb7mwaXMPDZA2hP5Tt+aRNJNOU7rXsjiR4uvZdhIru
 8ab0cHOblNpe8cmB8dFjJzpawE/2AzhjQMvixm2OpG8IQyDgXBDW0h85Ud4E4KNF
 c+7Iqo08FYR1l/3WQn5h+2QFX3yJ9KQPM8DiZ4FA+dUMif5reJ61cTW4Zaw8o8eS
 QW9166iQ8r5R8g==
 =08ua
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmUto7IACgkQYKtH/8kJ
 Uie2hg//XypJM5m6EuNNn9LhClz9NEVxN4QwG1vm1uFbAVbmirFO0Qnn88p9oqcE
 mA5DWjTQUu9ORK0a/n7x9MZ4pabtsM4Uq7OQAJnFQclaeyMwOba/C3001Bil6v+E
 rzV+N1oHxNIa3Rr+rgyIfvjZ8ZCT+g10net51Da227ZSf+1e0c3LiJpirVCh9+Xh
 pPOWyg8u0rJoVeT4ArnfL6yf7GG7yr6ssDtI+QF43iigr5K7dj2g6WMs/R/wLawk
 5FagRlIca4xQtRbIFYDLt0jToh7oSOipLNJRRHNrJeihdntVwrNMDe+uFpq1tRw4
 0BoYajiI8k5B9eHHii6X9luJpkqTtHkDNUpw69nXeyxuBueVhA712ONZLPxQGEO+
 itXfS32z4x41I+XIR4ctQQuW3PHU8ZDAArfJLR1L0WUFhXYafJlaztu+fX/sEq/9
 glZK8EXjLjy822uLZBdRrpsdFH0WbWCVdWsXl1XhFKUhMz0TqGJOz5i5sSS48Qje
 QTGxgmN0eM2S/iM+/hFnPgARR6lgblnPL7BUjVEcoj9FTa23kwZ9BNBJZ9MggyT6
 h03/7taIwTpZrAL3QVVqSkkVGcRU2K6JmrWp7488tDv22cpy+5IgPtkEWf1kURCq
 65TQMe3PeNabIrC6Mv54/rzWggV6UDYcQU5B8vIWcOs1yEMRtII=
 =SwSY
 -----END PGP SIGNATURE-----

Merge tag 'tegra-for-6.7-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into soc/drivers

soc/tegra: Changes for v6.7-rc1

This contains a few minor cleanups for PMC and CBB.

* tag 'tegra-for-6.7-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
  soc/tegra: pmc: Drop the ->opp_to_performance_state() callback
  soc/tegra: cbb: tegra194-cbb: Convert to platform remove callback returning void

Link: https://lore.kernel.org/r/20231013153723.1729109-1-thierry.reding@gmail.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2023-10-16 22:57:22 +02:00
Arnd Bergmann
d3cd3b5501 Arm FF-A updates for v6.7
The main addition is the initial support for the notifications and
 memory transaction descriptor changes added in FF-A v1.1 specification.
 
 The notification mechanism enables a requester/sender endpoint to notify
 a service provider/receiver endpoint about an event with non-blocking
 semantics. A notification is akin to the doorbell between two endpoints
 in a communication protocol that is based upon the doorbell/mailbox
 mechanism.
 
 The framework is responsible for the delivery of the notification from
 the ender to the receiver without blocking the sender. The receiver
 endpoint relies on the OS scheduler for allocation of CPU cycles to
 handle a notification.
 
 OS is referred as the receiver’s scheduler in the context of notifications.
 The framework is responsible for informing the receiver’s scheduler that
 the receiver must be run since it has a pending notification.
 
 The series also includes support for the new format of memory transaction
 descriptors introduced in v1.1 specification.
 
 Apart from the main additions, it includes minor fixes to re-enable FF-A
 drivers usage of 32bit mode of messaging and kernel warning due to the
 missing assignment of IDR allocation ID to the FFA device. It also adds
 emitting 'modalias' to the base attribute of FF-A devices.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEunHlEgbzHrJD3ZPhAEG6vDF+4pgFAmUlJuUACgkQAEG6vDF+
 4pinPRAAzLFtehLNhpC2BsEbvdJo/bSeGl1OAricml3gyU45W7AamAPuplA9E871
 GxXMYbH5+mnqz5cHaYBb8KGm5dRENrtKgrwMITg3jOlqdz9HWy2MLgbSmvqbXNsU
 5O8iZDvFOTCMLSEI6gWnaiKRpAzDSFu0/FH86xv+9+pbjmjL3iDjFlbxbGLFYk+L
 gqHLdx4iW6aD6geC2n8oDO6UWCNLaHpXaJSAE6pfh/7pkuKMWYjVwivKxrMA9Saw
 WjoyBdjUgir9w6qJauR94MGMnbPTd378MzBrEWMo04I2ubLCVwiPVDEEu7jZGrBV
 2n5DD8/0fSak9KEEozRKnj9umhmvHN9Of72qBLNZ0K4zmq8Fs00woXIlnUNH0dcZ
 qZN/ZEDXpD51OsgMH+ojojaqFEcFynEQIQjibiv1Ju16F+1PIABCyODgb58fIa71
 WvRUXVttkml6boY7KqGIDRiSRfEIZfoWqKucFpEbRwCXLLqc2VJ4UYUiYB1B3fD1
 g3ZuQXhurwfLG7SwrKK4KWFLHTSNj4IuixeqsAM+PYyTE5iquP3xpqYgbb99n9VT
 SWCyQdw0e+DyAhzmx0ZZZtCO2f54JQY852jHSkQFQsRNcK+h2exYxjIE7NfgfIGG
 H1NvJjumunOZEOZr+Wwz74wDJDMoLvMJTGr4ovIkNn/xb+4lcHU=
 =bHXY
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmUto10ACgkQYKtH/8kJ
 UidIlw//e0ZkLIffq0d9svTie4NHxxb8AEu8sqnxr1HcinpCfa2Cwi6utt+y5XXc
 Ti7T7Jj/BKnwTfNXw6REvKplBhMGMQFkKcrX7lSnDpPhzCj8Ls0j78ac52KfmVpi
 HmzRchsdKtKBYKZOBA+gnBABu38O9QvuteDKJXx8vzowztYJpHc/UmE5qYHwVWDT
 kKqNzFo34zvLS/ephZZFV113ji3foQiOFCWtx408nfcUvW/g8H3xRp6njPlmP0Ue
 PhFbR3qsEV/nLTafypACsxSappuHngtInXZA2cpA6LKc0oS426rTvY6i167amOq4
 ktcqmVdD6mbNEApTsB5O32TK+AI2rPvCh6OCS0x0M6+yWhZVGjZXZgzr1Ma3uphz
 dD3HcXYEaMHJQVAu8npVo5x3UEApOts+SX7QY4IlekzCzr1guhnWKnmxTS8jYx2Z
 HzwJatmvb+ENzbZHX2R1Y53keue/oq0AkYva0gNVK6F7ELjowDmV0l02qm5G0aBC
 3Pa1KEYpb34qagwknzFjGubBrJcPX/sdzt1KWUoCLDbveb+HCaPKlGipOs3PjMLy
 s/IeGH7LED3XbfxDpsRuzkwgtKzuvmdaWfgccx56rPjMlh763fvS16DB2PUiJ4FP
 qv7fu98hvVG2Z2eFVHib3FT6isw4NVmsXRzc6uW54nVKj2pQmRY=
 =QaJo
 -----END PGP SIGNATURE-----

Merge tag 'ffa-updates-6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux into soc/drivers

Arm FF-A updates for v6.7

The main addition is the initial support for the notifications and
memory transaction descriptor changes added in FF-A v1.1 specification.

The notification mechanism enables a requester/sender endpoint to notify
a service provider/receiver endpoint about an event with non-blocking
semantics. A notification is akin to the doorbell between two endpoints
in a communication protocol that is based upon the doorbell/mailbox
mechanism.

The framework is responsible for the delivery of the notification from
the ender to the receiver without blocking the sender. The receiver
endpoint relies on the OS scheduler for allocation of CPU cycles to
handle a notification.

OS is referred as the receiver’s scheduler in the context of notifications.
The framework is responsible for informing the receiver’s scheduler that
the receiver must be run since it has a pending notification.

The series also includes support for the new format of memory transaction
descriptors introduced in v1.1 specification.

Apart from the main additions, it includes minor fixes to re-enable FF-A
drivers usage of 32bit mode of messaging and kernel warning due to the
missing assignment of IDR allocation ID to the FFA device. It also adds
emitting 'modalias' to the base attribute of FF-A devices.

* tag 'ffa-updates-6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux:
  firmware: arm_ffa: Upgrade the driver version to v1.1
  firmware: arm_ffa: Update memory descriptor to support v1.1 format
  firmware: arm_ffa: Switch to using ffa_mem_desc_offset() accessor
  KVM: arm64: FFA: Remove access of endpoint memory access descriptor array
  firmware: arm_ffa: Simplify the computation of transmit and fragment length
  firmware: arm_ffa: Add notification handling mechanism
  firmware: arm_ffa: Add interface to send a notification to a given partition
  firmware: arm_ffa: Add interfaces to request notification callbacks
  firmware: arm_ffa: Add schedule receiver callback mechanism
  firmware: arm_ffa: Initial support for scheduler receiver interrupt
  firmware: arm_ffa: Implement the NOTIFICATION_INFO_GET interface
  firmware: arm_ffa: Implement the FFA_NOTIFICATION_GET interface
  firmware: arm_ffa: Implement the FFA_NOTIFICATION_SET interface
  firmware: arm_ffa: Implement the FFA_RUN interface
  firmware: arm_ffa: Implement the notification bind and unbind interface
  firmware: arm_ffa: Implement notification bitmap create and destroy interfaces
  firmware: arm_ffa: Update the FF-A command list with v1.1 additions
  firmware: arm_ffa: Emit modalias for FF-A devices
  firmware: arm_ffa: Allow the FF-A drivers to use 32bit mode of messaging
  firmware: arm_ffa: Assign the missing IDR allocation ID to the FFA device

Link: https://lore.kernel.org/r/20231010124354.1620064-1-sudeep.holla@arm.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2023-10-16 22:55:57 +02:00
Arnd Bergmann
d1debb7b32 Arm SCMI updates for v6.7
Main additions this time include:
 
 1. SCMI v3.2 clock configuration support:
    This helps to retrieve the enabled state of a clock as well as allow
    to set OEM specific clock configurations.
 
 2. Support for generic performance scaling(DVFS):
    The current SCMI DVFS support is limited to the CPUs in the kernel.
    This extension enables it to used for all kind of devices and not
    only for the CPUs. It updates the SCMI cpufreq to utilize the power
    domain bindings. It also adds a more generic SCMI performance domain
    based on the genpd framework that as be used for all the non-CPU
    devices.
 
 3. Extend the generic performance scaling(DVFS) support for firmware
    driver OPPs:
    Consumer drivers for devices that are attached to the SCMI performance
    domain can't make use of the current OPP library to scale performance
    as the OPPs are firmware driven and often obtained from the firmware
    rather than the device tree. These changes extend the generic OPP
    and genpd PM domain frameworks to identify and utilise these firmware
    driven OPPs.
 
 4. SCMI v3.2 clock parent support:
    This enables the support for discovering and changing parent clocks
    and extending the SCMI clk driver to use the same.
 
 5. Qualcom SMC/HVC transport support:
    The Qualcomm virtual platforms require capability id in the hypervisor
    call to identify which doorbell to assert when supporting multiple
    SMC/HVC based SCMI transport channels. Extra parameter is added to
    support the same and the same is obtained at the fixed address in the
    shared memory which is initialised by the firmware.
 
 6. Move the existing SCMI power domain driver under drivers/pmdomain
 
 Apart from the above main changes, it also include couple of minor fixes
 and cosmetic reworks.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEunHlEgbzHrJD3ZPhAEG6vDF+4pgFAmUlJnAACgkQAEG6vDF+
 4phxrw/+KLuLGg0QXTps4trI1E9cTAivpnEe6sWM27TZ792k6TecqWbRSJyvkrtg
 MB9R9bIQobgGrQ2iFH+DQ+MOxjHI5qraoPV7rxcN+TzDlRsRJ6U51buFXyZpLvrp
 BtcHgKVZ+Xhi9jCxykMJ18XfJv6Fm6D7/B0PCsBC0nOC2BQdq0mxZamEiiBKFiSK
 6jtPXVBPracguush3rYVVio70O0ReIxMacIUAy3Oi5bH01DOx9lg2781KBBtrWKg
 4RdnQS3uwUIpGn7cBn+Mmj/kh2QzKguRkdhuaFImgBI49+DVWsgQ05IstF1TA1SG
 BlUWZOBr/CvcDH7xAc5FVJaIqbNvKQq4dss91AiXqmz2dzOCwJ+F1JafwUY9jLmI
 fS6SfyDaSLMpx8SPDGVWippgpHWY/3dqtBxoqOvILTiYDz7ZXPWUeavn6dtr9gTU
 nDWZNN6bj9EpTzVjSzMeCIiAjyjd2SGDyL9iuhUqA8pw4fidTJvbSpcAUOdkN7F5
 coNZUlzv8pYB8mlBmCO4kETlTesQdt5ZjdTzCE529BuErGAwBqq/XZ/x9mhXfzwS
 ojBwbgcejjnSFRC5XoW+LnZpruL5m1e+fe7aUfAcCSM/MqYOLQgKryT8mJOJnV0/
 5H/WwBYeX+OxlLa0+znGzPChk4OgukARAA+oJ401e7gNHZg7DVw=
 =IbXh
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmUtovkACgkQYKtH/8kJ
 UierUQ/9GT2ZV3lmuumsRudWVT0Uhe8ktCQElzaA7H6rHFYLMogYkVeEa97HhmN6
 sFIQ8BdsPyLl8IIjLN/uGNcz3JjbjQjnZoiIjHrwquWKDLe1KsKZeb6SGwcWn4nG
 c/e+CPVg7bLoUQnPJrAXQ9ksZ+1EsieuujVC0iYVWYKrauXYSNq3/H5QhVJlYDEs
 c6MYoOrFrz9kP4Ecqo5oYCmd5l2bANYIHP6cOk2rTvJgO6dsT9QmEw2djmVadGHj
 cQZd+kt0Y8Iezn+cX4kwq8WYl0YOk9+OLsjtIozxhRcglTxMmpBSCdFxAV2LRjiS
 12tp2HJMNQgx5c187CCckoeoIpkjSvTJhzRHBxnzb/wzonaGm42ERCu93vSyp6G0
 xccI/rEvjiJmlrBa8up30v+zFEe7II8u2TarnkxWVQ157Ww8bdWKZPq7pKsKrxm0
 tYnDhMJxosxEh6xSjurBZTJoJTnPZQKE+IUAClpCUzszf1hWHeJUbo2CsfuJw7RH
 3jUtM9nfSJCT6GFyM8wxwH/RP2Rt3U9olrW4zoZz7jkxHcLuOgJGQyFYgLHKrmsP
 ez3zFEiGAYysoJuSy7so0KEzjLkVhqO+XFdBtctOkRJ+tajx6i1ute9oQvOqs/TJ
 /CIuBl3+XECcNGm3InEI0aCillFAw69LKYupcUlNrcKJ9f0zFec=
 =u9+1
 -----END PGP SIGNATURE-----

Merge tag 'scmi-updates-6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux into soc/drivers

Arm SCMI updates for v6.7

Main additions this time include:

1. SCMI v3.2 clock configuration support:
   This helps to retrieve the enabled state of a clock as well as allow
   to set OEM specific clock configurations.

2. Support for generic performance scaling(DVFS):
   The current SCMI DVFS support is limited to the CPUs in the kernel.
   This extension enables it to used for all kind of devices and not
   only for the CPUs. It updates the SCMI cpufreq to utilize the power
   domain bindings. It also adds a more generic SCMI performance domain
   based on the genpd framework that as be used for all the non-CPU
   devices.

3. Extend the generic performance scaling(DVFS) support for firmware
   driver OPPs:
   Consumer drivers for devices that are attached to the SCMI performance
   domain can't make use of the current OPP library to scale performance
   as the OPPs are firmware driven and often obtained from the firmware
   rather than the device tree. These changes extend the generic OPP
   and genpd PM domain frameworks to identify and utilise these firmware
   driven OPPs.

4. SCMI v3.2 clock parent support:
   This enables the support for discovering and changing parent clocks
   and extending the SCMI clk driver to use the same.

5. Qualcom SMC/HVC transport support:
   The Qualcomm virtual platforms require capability id in the hypervisor
   call to identify which doorbell to assert when supporting multiple
   SMC/HVC based SCMI transport channels. Extra parameter is added to
   support the same and the same is obtained at the fixed address in the
   shared memory which is initialised by the firmware.

6. Move the existing SCMI power domain driver under drivers/pmdomain

Apart from the above main changes, it also include couple of minor fixes
and cosmetic reworks.

* tag 'scmi-updates-6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux: (37 commits)
  firmware: arm_scmi: Add qcom smc/hvc transport support
  dt-bindings: arm: Add new compatible for smc/hvc transport for SCMI
  firmware: arm_scmi: Convert u32 to unsigned long to align with arm_smccc_1_1_invoke()
  clk: scmi: Add support for clock {set,get}_parent
  firmware: arm_scmi: Add support for clock parents
  clk: scmi: Free scmi_clk allocated when the clocks with invalid info are skipped
  firmware: arm_scpi: Use device_get_match_data()
  firmware: arm_scmi: Add generic OPP support to the SCMI performance domain
  firmware: arm_scmi: Specify the performance level when adding an OPP
  firmware: arm_scmi: Simplify error path in scmi_dvfs_device_opps_add()
  OPP: Extend support for the opp-level beyond required-opps
  OPP: Switch to use dev_pm_domain_set_performance_state()
  OPP: Extend dev_pm_opp_data with a level
  OPP: Add dev_pm_opp_add_dynamic() to allow more flexibility
  PM: domains: Implement the ->set_performance_state() callback for genpd
  PM: domains: Introduce dev_pm_domain_set_performance_state()
  firmware: arm_scmi: Rename scmi_{msg_,}clock_config_{get,set}_{2,21}
  firmware: arm_scmi: Do not use !! on boolean when setting msg->flags
  firmware: arm_scmi: Move power-domain driver to the pmdomain dir
  pmdomain: arm: Add the SCMI performance domain
  ...

Link: https://lore.kernel.org/r/20231010124347.1620040-1-sudeep.holla@arm.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2023-10-16 22:54:17 +02:00
Arnd Bergmann
765e4aa6be Arm Vexpress updates for v6.7
Just a single update to use __counted_by annotation in config bus driver
 in preparation to the upcoming versions of the toolchains(GCC and Clang)
 with __counted_by attribute.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEunHlEgbzHrJD3ZPhAEG6vDF+4pgFAmUf2VQACgkQAEG6vDF+
 4pj89g//Wf4B+AozvSXxo01ggmJBtV9ha3N4Z/PLUVEH97pm63NB8iyf+vrkguhp
 sMHwq6obmPyZ9CfBj0wtaBvsQVSd3Ns/oA5GiWG8jA9b7wSFvExlrZsAVr30f9TA
 b7AZNJjMveRTRSVxTPtxIHA4wKOvvYvwjamXMMAzF6p6o2/DYqEhhRysTz3H4BJ8
 stO2DrL3BXm/yIhFYwe8yNzFdfSmeOgH3H5eXwgt2qHmnBtvotUqgsU2uWklV9RA
 ipwvsL6HPc6tUSxuoPugUSleSBBlzBUOSCZlYZCcWPPhkfpNW+kGbrfBWgYX/zLT
 1xVK0e9Xg9ugKmGzFZZ36vqKWRpOsdWk9eP5Yoc12XUZz6UBy7maLSgXCRIlXe1A
 BI7kZiTCJchDtnmU81G8j06oNMRuryjFLZEaQXKL7kbJ0dpVU4B+1mqDzEwG6XLI
 U3attFRf5Iaz9J8axkwhVDAvEmpcZlPBGeqcTC8v+E+5EZkadqDo4k7gDWClV+u4
 J5BadlKLbvulimyaCzReKx/P2eSLukpeziUb/JazuYE2ul2uD8XqhX551/lvRzfz
 l8DHoCm+1uRsEi6YNDCBtqCJ7V9pxYIB9ZMaj5kkER93+02xtETNkRHrjoEPLUoJ
 eCKfxhMAfFNFgJdz1vLO9OBvLxigIVFI8zWmy496yzwn1EtsOc8=
 =1h5m
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmUtossACgkQYKtH/8kJ
 UieJeg/+OSlH8lYMWb8I8oXm812VNNlEeqYV++xSPIRiyP1wJNrPAhzFTOF1Up73
 mjWTe9RfGhIsDmDWCd97MefMl2hdU8KAK9UgNJzvcKXvPYe7gQUugHHXzJAKD86E
 jvJqWphyUe4zWR7QwgU6/1GrQ6NmKFWkdwcIpbthZivjgdbc3DM1emKH7Eez6YUX
 Ih4/x8/OWkwbFlN1gJ8qxLFMk06KbHcEc7Nai3NliCzEhdhWxzPJY1EtjAOH6Iwn
 4Ih+hFvHUYAApEKxArP+5shBYF91GR3vqjW1VYiDcBgYP17g9gDPu0LN0p7uS2lU
 MUJVRn/nNE2ZC11rhfqKKI0DlKsRCdhohuu6OZ9qBb+Xx4zARtwUOPD+J0w3Fj1h
 iidtdeMWUdHMA77ZHeN5hdeMALG1NRfgG69TikcfsUJV8/ZgdS7cVM+Rd4PZLIKV
 SIPwMRfNnDZuRltJxJ4ccCcEPD1/k2JbMjLzV0Eizm4KSMBMx5yrkEm8K3ATUwo6
 SmP1fKlu2v3f/smLhyCMeM6BolXclnXcx7VRHFkYi5pII1NMA0GRdM4Zprs5sAgj
 mtrhWe4CV8ZMFPF4IdP+O0T/OeRi/Vg4SW1nglnLBc3G5ROmz7yO73K6Kfvb2P+u
 Z8Woge+W2N8joeccAZnecPwf7F5cCRYOOPhtYO3aVkr6pwMlV8Y=
 =qKzd
 -----END PGP SIGNATURE-----

Merge tag 'vexpress-update-6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux into soc/drivers

Arm Vexpress updates for v6.7

Just a single update to use __counted_by annotation in config bus driver
in preparation to the upcoming versions of the toolchains(GCC and Clang)
with __counted_by attribute.

* tag 'vexpress-update-6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux:
  bus: vexpress-config: Annotate struct vexpress_syscfg_func with __counted_by

Link: https://lore.kernel.org/r/20231010124339.1620012-1-sudeep.holla@arm.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2023-10-16 22:53:31 +02:00
Arnd Bergmann
0aefb041c5 MediaTek drivers updates for v6.7
- Added support for Smart Voltage Scaling (SVS) on the MT8188 SoC
 -----BEGIN PGP SIGNATURE-----
 
 iQJLBAABCAA1FiEEUdvKHhzqrUYPB/u8L21+TfbCqH4FAmUj0ykXHG1hdHRoaWFz
 LmJnZ0BnbWFpbC5jb20ACgkQL21+TfbCqH5NTA//fLUq0ISygXiqwzGGU53u1Hsj
 YHWRmiO+Z33O0iP6aw6gIT+ly4I5vltRRSh5A/iU9XuVEfceiQMUQ4ikm/ImsaSW
 XHm6Q/NWGTo6wsWXiB/dFeDy7ry+mEGKdpK0AIOE1M/az7m6ljLbIQCzEwZJY2s8
 /BCyFCHBLyGdLYAMBNIa+d/wzM6FW+UbG8SEHo8zVsYPx7biIkAri413Rl9Y+q68
 38casr1Dim3QkzJe1eN5Rrmca+lRztbJvlW7W0tp3n4fF02A/G/d6YKmmDrMPE1x
 FSvksYXgpXzt4r4KJRmeZhDaOYEv3n6A1KuPeYcs9SfOqMOg5MU3hv308nsDLvVm
 69jZdO0uF/ML2ZvWRoWPn9VN8xAuDA3DteprkQ37PCwKJigyXwmvIxhg+maRl/tn
 gG1TReAo6RPU+PL/YWJAWZgsz+0308ImrZOOeDMGJJ/gL+l12hik7pwag11U6y9z
 nbTxnCoxOS6MVZTLYcawzFhWCdth9xYor1K3Kj7uZ9vqAB6rVnszlsc51w1n+pS6
 SUk3puZAdZHKr1DcoamN82HIC6m55McunVRD8szIDns9NIGxe2oWm7mJNbsSsU19
 Su8TekDwhQv+lOqzxes+rGjLDKagIPx5HuIwkJy93uz9eGDxdZNMj/toJLtB+s9l
 PhJB9Iv5Oyc/eEq96kg=
 =2m0g
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmUtop0ACgkQYKtH/8kJ
 UidWBA/+POF+q/iarLWz1bvXpBQeKbciUKghl0eDS3NdcweKvXALvlqJvSBzZmHj
 g1IGmojoNX/C/NHuQj701l+H4F/rE5fsMvnVqd3UvjAuGCI9qDqYrdzvjE1+IfhL
 vlbf11w+bi+Be5GACfgD8xJKSHqMMIgxjxN0auKq6bVMiAukQVIhpD5XGSVVhRpn
 GjDk8jlMryKYpVUWoc4YGZkGzQQTErgZ+b4nvqCfVwS8FvhejGnkjPQTDlDOwGRO
 Y0lohx3XVi+orY4UVItnEeJg3swegJ2fcOPYeWTxdxyrS1qIgVUYXbYCC8W9eDmW
 3FZIxzoUwWDY5IQJwaL76AVvZHRszb/jJz8N2vIqU2UX0DQqMbRvWcgXe3HySBJ5
 TD56ifeCYzeZFpKqQkuKskln8ElL3/IftTimcshb1BsGzlQp7UztCiKS7SxXGiRu
 UwnFP1K4m4DcXZCpbUEdQc9CL0FNmTbuDtuUBbX6mE8V6mbEfOmuaxZ29dz7ZN5d
 1mYGUch4IG2dZMr0vb/b8dhZjprFaPtl2Ssqc0RbjsflGlnGVRScso1HIR/hJgLG
 39cqapacZCqOg1GKjKQPkPAPpwMxG91JzlFPR3YilTv2dvwkoqEiHclNLzyXU1Cn
 bm9QL/iX7wn/0B+j6LQE2giIJMNa3Bn8J+SiKcrakqSpGGbkv6c=
 =gtUk
 -----END PGP SIGNATURE-----

Merge tag 'v6.6-next-soc' of https://git.kernel.org/pub/scm/linux/kernel/git/matthias.bgg/linux into soc/drivers

MediaTek drivers updates for v6.7

- Added support for Smart Voltage Scaling (SVS) on the MT8188 SoC

* tag 'v6.6-next-soc' of https://git.kernel.org/pub/scm/linux/kernel/git/matthias.bgg/linux:
  soc: mediatek: svs: Add support for voltage bins
  soc: mediatek: svs: Add support for MT8188 SoC
  dt-bindings: soc: mediatek: add mt8188 svs dt-bindings

Link: https://lore.kernel.org/r/d25ccd90-277a-fd05-8605-f7d1d129d4fa@gmail.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2023-10-16 22:52:45 +02:00
Arnd Bergmann
8c15065cdd Renesas driver updates for v6.7
- Identify the new RZ/G3S SoC,
   - Miscellaneous fixes and improvements.
 -----BEGIN PGP SIGNATURE-----
 
 iHQEABYIAB0WIQQ9qaHoIs/1I4cXmEiKwlD9ZEnxcAUCZRaddgAKCRCKwlD9ZEnx
 cOWxAPivleHtCGxs8+tKDNiV3g1RFpaNBvnAc2FIjf4v/akOAQChbpG/OjJcpbai
 dbrpoui3P/WYhr+adOWqgpInXMqNCw==
 =vYub
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmUtomQACgkQYKtH/8kJ
 UieYbw/+N0osLgv9GRo7nUgci+6Te6RthCdrXsDPnay/LQM7rYego8xzGySdXbZ0
 qef4aDAKI4rEPWU2XC1edNfmt11YUbicBVWiKv/3p2784kKwG9UFXBJ/bYZim1mY
 /hRdDul3J1LlbyM9Eauo8VZn7PMfo1buX3q3011dlIFJwBdZBA7fLXFf8q9DF6Qd
 3Yp3+WjPX3B1yxHzGzj34S9ChuimrXDFLqPjjGlyEjnpmbcroYcbboMIUcLC5BfO
 WKSh+G/rjN4zaUiuyImzH/9o0n/A5omtbnqZD+eRGOlmkX9bNP3rAYGOVVFxuJRz
 16Pb8qBPMG6l8JO/kO1rUjxoLCVHTg+eO//STJ3h81Lqd6W1yC+BFvWWWHUuX40Q
 q5m0Vnhwjuv9XbAg6auKvpjz5wUzxPHXz7Hix4CzvGqvpkr5RSFwrfUH2x+U0CN5
 Qgor6PSbrLp1G8y4BDykFAPYbgMm976VQmSkn6yJmKj51MdcJ4ktNZbAof1MpJMt
 LWQ//FXbwajcaUxzfDMW6elaso1yU038KANqjAp6itfNpsccP8xhNYhZ58wY6Srd
 wQtE/8FKyq6i0xGxaDfC8ORYcEXD8mBcda5ItjcQE4VRor2tt+jWSNcTyhjzP55C
 7n+N+iN+z5rLUFgtZLyfOYjue2KrDkNgNJS9p+kwu4IXvTKPd0w=
 =yAwA
 -----END PGP SIGNATURE-----

Merge tag 'renesas-drivers-for-v6.7-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel into soc/drivers

Renesas driver updates for v6.7

  - Identify the new RZ/G3S SoC,
  - Miscellaneous fixes and improvements.

* tag 'renesas-drivers-for-v6.7-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel:
  soc: renesas: Kconfig: Remove blank line before ARCH_R9A07G043 help text
  soc: renesas: renesas-soc: Remove blank lines
  soc: renesas: Identify RZ/G3S SoC

Link: https://lore.kernel.org/r/cover.1695985423.git.geert+renesas@glider.be
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2023-10-16 22:51:48 +02:00
Arnd Bergmann
4d8220323f Convert drivers/soc to struct platform_driver::remove_new()
This PR contains the patches I sent in the series available at
 https://lore.kernel.org/all/20230925095532.1984344-1-u.kleine-koenig@pengutronix.de
 that were not yet picked up in next as of next-20231013.
 
 It converts all drivers below drivers/soc to let their remove callback
 return void. See commit 5c5a7680e6 ("platform: Provide a remove
 callback that returns no value") for the rationale.
 -----BEGIN PGP SIGNATURE-----
 
 iQEzBAABCgAdFiEEP4GsaTp6HlmJrf7Tj4D7WH0S/k4FAmUrDBAACgkQj4D7WH0S
 /k4SdggAk4dtkMnhFT1gUZjaYJWKibyuIWhCu6EkDTlLlefEWQFFT6NX5Vdz59i6
 /XUurcZx4eVtXq89L4/BI/cTjhrrlMIFlZwtK63a1tniUh3mK6RIanIlIOQMoai+
 P4B4V1RSIlj72njB6tJ8gVO2XU5W8I6hKNvZs7ZXyJp4KgRZqZyniV7os72ExJrm
 H4NNcoiifRS2j1213xfyWyEA40yHj2aywGaXP7gjKm+AU4F6DxDwFJ8YhOvEnsu1
 8Uda4J+Bs7+y46O9yqpLutI9W7mpBvk+2CAgzeIE+beEO221xNhgoTklvmT3DEbb
 FvHcYHiNWzrpgwsNSwG+qXaSuy/vwQ==
 =0IZS
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmUtolQACgkQYKtH/8kJ
 UidseA/+PhpQ6ntmfjygZM2aY/WSbq3qFMTlFH17OFaGSBGcNP7gpFy5RbtpIem5
 Y9jeofVmaA4nTLjkpZcJQdCiDCqw5U1Ew0P7dt+cBtnEwfDQk/OfNwaD8Zbr5i27
 hG8AeY/2AiqINaxt13ZYECnwv5w+tob2ZkrvWVW0ykJdqBLO9U4lBWIFx9YvhnpV
 jO0bUuDeKj34vhFzd2v6w+Py/xfJlTpgXbPgtO8AQ06kmpAk5ayj9ccqGvYXwEYw
 BuO4Xht2L0yE3nQVFNuG27WXjVqAdH1lEX/KTaYFqgyj8zRHbU7dM/qqa4UO7OqY
 9URF8IOPJYjrvoOxskv+IVOCosslxMOMYw8KrKuWx7ZuFh/NwQOjz6oOvzrp3tkl
 Kk5Fkoc0TayzYIPS4dTeVuiZDwUj+44tYIxtHqDjyUGBXH96CpyAuX57NK3nyRNK
 Iv6TsvKH9GexZqjpRK2j89ltVcABTSenTsx3LVl/fWO9UmhohoVvbC1ZbGJmT3Sf
 0v8RIedRWcWGrctMfzu4P/dyOkznc/utlqlL2ZoIB8LSyu5mUXDY8vycb+3Z9O07
 xKTVlEYY6XeW6hJ10f6Meom8+4+XUbcBw+++bFeUJ35kywxQtOFMf9bYBC7YSF5Y
 9f68uZIspUyXOj+q8n5nvZ6FYkj1HDPzBuBHxznaupIcpXcJ5uw=
 =YJuL
 -----END PGP SIGNATURE-----

Merge tag 'platform-remove-void-soc-for-6.7-rc' of https://git.pengutronix.de/git/ukl/linux into soc/drivers

Convert drivers/soc to struct platform_driver::remove_new()

This PR contains the patches I sent in the series available at
https://lore.kernel.org/all/20230925095532.1984344-1-u.kleine-koenig@pengutronix.de
that were not yet picked up in next as of next-20231013.

It converts all drivers below drivers/soc to let their remove callback
return void. See commit 5c5a7680e6 ("platform: Provide a remove
callback that returns no value") for the rationale.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2023-10-16 22:51:31 +02:00
Uwe Kleine-König
55fa358ca8 soc: samsung: exynos-chipid: Convert to platform remove callback returning void
The .remove() callback for a platform driver returns an int which makes
many driver authors wrongly assume it's possible to do error handling by
returning an error code. However the value returned is ignored (apart
from emitting a warning) and this typically results in resource leaks.
To improve here there is a quest to make the remove callback return
void. In the first step of this quest all drivers are converted to
.remove_new() which already returns void. Eventually after all drivers
are converted, .remove_new() will be renamed to .remove().

Trivially convert this driver from always returning zero in the remove
callback to the void returning variant.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Link: https://lore.kernel.org/r/20230925095532.1984344-32-u.kleine-koenig@pengutronix.de
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://lore.kernel.org/r/20231016072911.27148-2-krzysztof.kozlowski@linaro.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2023-10-16 22:49:56 +02:00
Chris Morgan
636a989eb4 drm/panel: st7703: Add Powkiddy RGB30 Panel Support
The Powkiddy RGB30 4 inch panel is a 4 inch 720x720 DSI panel used in
the Powkiddy RGB30 handheld gaming device. Add support for it.

Signed-off-by: Chris Morgan <macromorgan@hotmail.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Link: https://patchwork.freedesktop.org/patch/msgid/20231013183918.225666-4-macroalpha82@gmail.com
2023-10-16 22:23:21 +02:00
Chris Morgan
daee0320a1 dt-bindings: panel: Add Powkiddy RGB30 panel compatible
The Powkiddy RGB30 panel is a 4 inch 720x720 MIPI-DSI LCD panel. It
appears to be based on the ST7703 LCD controller (this is assumed from
the init sequence similarity between this and other displays). Powkiddy
would not share the part number or name for the display from the bill
of materials and there were no obvious external markings, so name the
panel for the device (Powkiddy RGB30).

Signed-off-by: Chris Morgan <macromorgan@hotmail.com>
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Link: https://patchwork.freedesktop.org/patch/msgid/20231013183918.225666-3-macroalpha82@gmail.com
2023-10-16 22:23:21 +02:00
Chris Morgan
00e395c8ed dt-bindings: vendor-prefixes: document Powkiddy
Document Powkiddy (https://powkiddy.com/).

Signed-off-by: Chris Morgan <macromorgan@hotmail.com>
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Link: https://patchwork.freedesktop.org/patch/msgid/20231013183918.225666-2-macroalpha82@gmail.com
2023-10-16 22:23:19 +02:00
Linus Walleij
593bcf6889 intel-pinctrl for v6.7-1
* Merge "Drop runtime PM support for Baytrail and Lynxpoint pinctrl" (Raag)
 * Small improvements here and there in the Intel pin control drivers (Raag)
 * Switch to RAII for locking in the Intel core and Cherry View drivers
 * Enable non-ACPI enumeration in the Intel Denverton driver
 * Use MODULE_DEVICE_TABLE() instead of MODULE_ALIAS() in a couple of drivers
 * Introduce array_size.h and use in in the Intel pin control drivers
 
 The following is an automated git shortlog grouped by driver:
 
 baytrail:
  -  Replace kernel.h by what is actually being used
  -  drop runtime PM support
  -  fix debounce disable case
 
 broxton:
  -  Replace MODULE_ALIAS() with MODULE_DEVICE_TABLE()
 
 cherryview:
  -  reduce scope of PIN_CONFIG_BIAS_HIGH_IMPEDANCE case
  -  Convert to platform remove callback returning void
  -  Simplify code with cleanup helpers
  -  Avoid duplicated I/O
  -  Replace kernel.h by what is actually being used
 
 denverton:
  -  Replace MODULE_ALIAS() with MODULE_DEVICE_TABLE()
  -  Enable platform device in the absence of ACPI enumeration
 
 intel:
  -  fetch community only when we need it
  -  refine intel_config_set_pull() function
  -  Replace kernel.h by what is actually being used
  -  Simplify code with cleanup helpers
 
 lynxpoint:
  -  Replace kernel.h by what is actually being used
  -  drop runtime PM support
 
 merrifield:
  -  Replace kernel.h by what is actually being used
 
 moorefield:
  -  Replace kernel.h by what is actually being used
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEqaflIX74DDDzMJJtb7wzTHR8rCgFAmUtPmkACgkQb7wzTHR8
 rCjQ2Q/+MdyxO1vlv2ZN6xpY25lpzELfRs6S2EHcrnRMoONjH6t1k6yh2Xmnlmte
 byMFggOSDoyZAmqzmQioWo6e8tO9zme17mAhNOnmNpZ4luyPOhgCp0SF61UpOrl/
 r2MBJyhFfCyI/7aXQ8p0+tVX988CgezYWEhfeXP2Xt10o90eK+fbks8bBW5a3gZ5
 Gpx3L3EXkBBIpW4ec1ji4vXNKiKVvePZZWIb612KZ3ttfk7jGqaC3kJXFFGGWO2z
 eKxuuDo5oNbYocS+/jNxSCBBoqKw50r507sqireQ/cV3H22wOK/OmejKJzSPszqB
 tQnvafqx8EaNLajhDW9EG1nzexeYbT6jHaNg/b2y0rSPWNSwi5zXgL2lEaPo+c5N
 Pv9Ys6dp+ftfM/zO8fjKWOYyjo0zqTRAB/yxTwfw+hXUvMQuzbHOaoMnVpmj+7he
 GqRbjyM5thWYFTFIz7Hearq12a9csvJPNKWz4ClPey4/AEkMyR0csvIgkmh8GZu+
 ORPwKmGIqQWC1JkJKMsmLx4j92JPN0xaIf6ILTMwgnzYihhPeCfIFMv1VbXZCaZA
 SfdbwK2f4cGMUS2s16Zf3Dl79jSrJ140igmCvsz8HDBZrz2C6Bey0qnWF4tQEy1Q
 NVGpyYpDTNtLZxelDZfB6bezyYoX7TLlCoTUvcYxbMIF7ax4QYI=
 =o8D/
 -----END PGP SIGNATURE-----

Merge tag 'intel-pinctrl-v6.7-1' of git://git.kernel.org/pub/scm/linux/kernel/git/pinctrl/intel into devel

intel-pinctrl for v6.7-1

* Merge "Drop runtime PM support for Baytrail and Lynxpoint pinctrl" (Raag)
* Small improvements here and there in the Intel pin control drivers (Raag)
* Switch to RAII for locking in the Intel core and Cherry View drivers
* Enable non-ACPI enumeration in the Intel Denverton driver
* Use MODULE_DEVICE_TABLE() instead of MODULE_ALIAS() in a couple of drivers
* Introduce array_size.h and use in in the Intel pin control drivers

The following is an automated git shortlog grouped by driver:

baytrail:
 -  Replace kernel.h by what is actually being used
 -  drop runtime PM support
 -  fix debounce disable case

broxton:
 -  Replace MODULE_ALIAS() with MODULE_DEVICE_TABLE()

cherryview:
 -  reduce scope of PIN_CONFIG_BIAS_HIGH_IMPEDANCE case
 -  Convert to platform remove callback returning void
 -  Simplify code with cleanup helpers
 -  Avoid duplicated I/O
 -  Replace kernel.h by what is actually being used

denverton:
 -  Replace MODULE_ALIAS() with MODULE_DEVICE_TABLE()
 -  Enable platform device in the absence of ACPI enumeration

intel:
 -  fetch community only when we need it
 -  refine intel_config_set_pull() function
 -  Replace kernel.h by what is actually being used
 -  Simplify code with cleanup helpers

lynxpoint:
 -  Replace kernel.h by what is actually being used
 -  drop runtime PM support

merrifield:
 -  Replace kernel.h by what is actually being used

moorefield:
 -  Replace kernel.h by what is actually being used
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2023-10-16 22:00:13 +02:00
Sebastian Reichel
7952cbbda3 arm64: dts: rockchip: add status LED to rock-5b
Describe the Rock 5B status LED in its device tree.

Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
Link: https://lore.kernel.org/r/20231005134037.33231-1-sebastian.reichel@collabora.com
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2023-10-16 21:55:00 +02:00
Sebastian Reichel
afa933c208 arm64: dts: rockchip: add ADC buttons to rk3588-evb1
The Rockchip EVB1 has a couple of buttons connected via an ADC
line. Let's add them to its devicetree.

Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
Link: https://lore.kernel.org/r/20231005134357.37171-1-sebastian.reichel@collabora.com
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2023-10-16 21:54:14 +02:00