Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

build(deps): bump certifi from 2023.7.22 to 2024.7.4 in /drivers/gpu/drm/ci/xfails #9

Open
wants to merge 37 commits into
base: master
Choose a base branch
from

Commits on Jul 5, 2024

  1. kthread: Unify kernel_thread() and user_mode_thread()

    Commit 343f4c4 ("kthread: Don't allocate kthread_struct for init
    and umh") introduces a new function user_mode_thread() for init and umh.
    
    init and umh are different from typical kernel threads since the don't
    need a "kthread" struct and they will finally become user processes by
    calling kernel_execve(), but on the other hand, they are also different
    from typical user mode threads (they have no "mm" structs at creation
    time, which is traditionally used to distinguish a user thread and a
    kernel thread).
    
    So I think it is reasonable to treat init and umh as "special kernel
    threads". Then let's unify the kernel_thread() and user_mode_thread()
    to kernel_thread() again, and add a new 'user' parameter for init and
    umh.
    
    This also makes code simpler.
    
    Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
    chenhuacai committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    f4f991f View commit details
    Browse the repository at this point in the history
  2. genirq/msi, platform-msi: Adjust return value of msi_domain_prepare_i…

    …rqs()
    
    Adjust the return value semanteme of msi_domain_prepare_irqs(), which
    allows us to modify the input nvec by overriding the msi_domain_ops::
    msi_prepare(). This is necessary for the later patch.
    
    Before:
    0 on success, others on error.
    
    After:
    = 0: Success;
    > 0: The modified nvec;
    < 0: Error code.
    
    Callers are also updated.
    
    Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
    chenhuacai committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    4a6241f View commit details
    Browse the repository at this point in the history
  3. irqchip/loongson-pch-msi: Add machanism to limit msi allocation

    Loongson machines can have as many as 256 logical cpus, but the maximum
    of msi vectors in one irqchip is also 256 (practically that is less than
    256, because pch-pic consumes some of them). Even on a 64-core machine,
    256 irqs can be easily exhausted if there are several NICs (NICs usually
    allocate msi irqs depending on the number of online cpus). So we want to
    limit the msi allocation.
    
    In this patch we add a machanism to limit msi allocation:
    1, Modify input "nvec" by overriding the msi_domain_ops::msi_prepare();
    2, The default limit is 256, which is compatible with the old behavior;
    3, Add a cmdline parameter "loongson_msi_limit=xxx" to control the limit.
    
    Signed-off-by: Juxin Gao <gaojuxin@loongson.cn>
    Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
    chenhuacai committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    b9e2fc5 View commit details
    Browse the repository at this point in the history
  4. irqchip/loongson-eiointc: Improve IRQ affinity setting

    On multiple bridge platform, a MSIX vector is often affinitive with only
    one cpu, and the count of MSIX is determined as the count of cpus in the
    system. Unfortunately, the cpu group related to a brigde is only allowed
    to handle interrupts from devices behind the bridge, which breaks the
    normal affinity setting for multiple MSIX vectors, and causing following
    affinity setting:
    
    IRQ: 4, 5, 6, 7, 8, 9, 10, 11, 12, 13
    CPU: 0, 1, 2, 3, 4, 0,  0,  0,  0,  0
    
    To balance the affinity, we improve the setting to assign cpu for IRQ as
    following:
    
    IRQ: 4, 5, 6, 7, 8, 9, 10, 11, 12, 13
    CPU: 0, 1, 2, 3, 4, 0,  1,  2,  3,  4
    
    Signed-off-by: Jianmin Lv <lvjianmin@loongson.cn>
    Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
    chenhuacai committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    8813c05 View commit details
    Browse the repository at this point in the history
  5. PCI: use local_pci_probe when best selected cpu is offline

    When the best selected CPU is offline, work_on_cpu() will stuck forever.
    This can be happen if a node is online while all its CPUs are offline
    (we can use "maxcpus=1" without "nr_cpus=1" to reproduce it), Therefore,
    in this case, we should call local_pci_probe() instead of work_on_cpu().
    
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
    Signed-off-by: Hongchen Zhang <zhanghongchen@loongson.cn>
    Hongchen Zhang authored and chenhuacai committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    0edd380 View commit details
    Browse the repository at this point in the history
  6. PCI: loongson: Add LS7A MSI enablement quirk

    LS7A chipset can be used as a downstream bridge which connected to a
    high-level host bridge. In this case DEV_LS7A_PCIE_PORT5 is used as the
    upward port. We should always enable MSI caps of this port, otherwise
    downstream devices cannot use MSI.
    
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
    chenhuacai committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    8eea664 View commit details
    Browse the repository at this point in the history
  7. PCI: PM: Fix PCIe MRRS restoring for Loongson

    Don't limit MRRS during resume, so that saved value can be restored,
    otherwise the MRRS will become the minimum value after resume.
    
    Cc: <stable@vger.kernel.org>
    Fixes: 8b3517f ("PCI: loongson: Prevent LS7A MRRS increases")
    Signed-off-by: Jianmin Lv <lvjianmin@loongson.cn>
    Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
    chenhuacai committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    e728b17 View commit details
    Browse the repository at this point in the history
  8. LoongArch: Define __ARCH_WANT_NEW_STAT in unistd.h

    Chromium sandbox apparently wants to deny statx [1] so it could properly
    inspect arguments after the sandboxed process later falls back to fstat.
    Because there's currently not a "fd-only" version of statx, so that the
    sandbox has no way to ensure the path argument is empty without being
    able to peek into the sandboxed process's memory. For architectures able
    to do newfstatat though, glibc falls back to newfstatat after getting
    -ENOSYS for statx, then the respective SIGSYS handler [2] takes care of
    inspecting the path argument, transforming allowed newfstatat's into
    fstat instead which is allowed and has the same type of return value.
    
    But, as LoongArch is the first architecture to not have fstat nor
    newfstatat, the LoongArch glibc does not attempt falling back at all
    when it gets -ENOSYS for statx -- and you see the problem there!
    
    Actually, back when the LoongArch port was under review, people were
    aware of the same problem with sandboxing clone3 [3], so clone was
    eventually kept. Unfortunately it seemed at that time no one had noticed
    statx, so besides restoring fstat/newfstatat to LoongArch uapi (and
    postponing the problem further), it seems inevitable that we would need
    to tackle seccomp deep argument inspection.
    
    However, this is obviously a decision that shouldn't be taken lightly,
    so we just restore fstat/newfstatat by defining __ARCH_WANT_NEW_STAT
    in unistd.h. This is the simplest solution for now, and so we hope the
    community will tackle the long-standing problem of seccomp deep argument
    inspection in the future [4][5].
    
    More infomation please reading this thread [6].
    
    [1] https://chromium-review.googlesource.com/c/chromium/src/+/2823150
    [2] https://chromium.googlesource.com/chromium/src/sandbox/+/c085b51940bd/linux/seccomp-bpf-helpers/sigsys_handlers.cc#355
    [3] https://lore.kernel.org/linux-arch/20220511211231.GG7074@brightrain.aerifal.cx/
    [4] https://lwn.net/Articles/799557/
    [5] https://lpc.events/event/4/contributions/560/attachments/397/640/deep-arg-inspection.pdf
    [6] https://lore.kernel.org/loongarch/20240226-granit-seilschaft-eccc2433014d@brauner/T/#t
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
    chenhuacai committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    d47a7f4 View commit details
    Browse the repository at this point in the history
  9. LoongArch: Always enumerate MADT and setup logical-physical CPU mapping

    Some drivers want to use cpu_logical_map(), early_cpu_to_node() and some
    other CPU mapping APIs, even if we use "nr_cpus=1" to hard limit the CPU
    number. This is strongly required for the multi-bridges machines.
    
    Currently, we stop parsing the MADT if the nr_cpus limit is reached, but
    to achieve the above goal we should always enumerate the MADT table and
    setup logical-physical CPU mapping whether there is a nr_cpus limit.
    
    Rework the MADT enumeration:
    
    1. Define a flag "cpu_enumerated" to distinguish the first enumeration
       (cpu_enumerated=0) and the physical hotplug case (cpu_enumerated=1)
       for set_processor_mask().
    
    2. If cpu_enumerated=0, stop parsing only when NR_CPUS limit is reached,
       so we can setup logical-physical CPU mapping; if cpu_enumerated=1,
       stop parsing when nr_cpu_ids limit is reached, so we can avoid some
       runtime bugs. Once logical-physical CPU mapping is setup, we will let
       cpu_enumerated=1.
    
    3. Use find_first_zero_bit() instead of cpumask_next_zero() to find the
       next zero bit (free logical CPU id) in the cpu_present_mask, because
       cpumask_next_zero() will stop at nr_cpu_ids.
    
    4. Only touch cpu_possible_mask if cpu_enumerated=0, this is in order to
       avoid some potential crashes, because cpu_possible_mask is marked as
       __ro_after_init.
    
    5. In prefill_possible_map(), clear cpu_present_mask bits greater than
       nr_cpu_ids, in order to avoid a CPU be "present" but not "possible".
    
    Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
    chenhuacai committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    21c4e51 View commit details
    Browse the repository at this point in the history
  10. LoongArch: Add irq_work support via self IPIs

    Add irq_work support for LoongArch via self IPIs. This make it possible
    to run works in hardware interrupt context, which is a prerequisite for
    NOHZ_FULL.
    
    Implement:
     - arch_irq_work_raise()
     - arch_irq_work_has_interrupt()
    
    Reviewed-by: Guo Ren <guoren@kernel.org>
    Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
    chenhuacai committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    aa72cd5 View commit details
    Browse the repository at this point in the history
  11. LoongArch: Add ARCH_HAS_PTE_DEVMAP support

    In order for things like get_user_pages() to work on ZONE_DEVICE memory,
    we need a software PTE bit to identify device-backed PFNs.  Hook this up
    along with the relevant helpers to join in with ARCH_HAS_PTE_DEVMAP.
    
    Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
    chenhuacai committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    64d52b6 View commit details
    Browse the repository at this point in the history
  12. LoongArch: Add ARCH_HAS_DEBUG_VM_PGTABLE support

    Add ARCH_HAS_DEBUG_VM_PGTABLE selection in Kconfig, in order to make
    corresponding vm debug features usable on LoongArch. Also update the
    corresponding arch-support.txt document.
    
    Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
    chenhuacai committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    2dda8e3 View commit details
    Browse the repository at this point in the history
  13. LoongArch: Add writecombine support for DMW-based ioremap()

    Currently, only TLB-based ioremap() support writecombine, so add the
    counterpart for DMW-based ioremap() with help of DMW2. The base address
    (WRITECOMBINE_BASE) is configured as 0xa000000000000000.
    
    DMW3 is unused by kernel now, however firmware may leave garbage in them
    and interfere kernel's address mapping. So clear it as necessary.
    
    BTW, centralize the DMW configuration to macro SETUP_DMWINS.
    
    Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
    Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
    chenhuacai committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    91da566 View commit details
    Browse the repository at this point in the history
  14. LoongArch: Add ACPI standard hardware register based S3 support

    Most LoongArch 64 machines are using custom "SADR" ACPI extension to
    perform ACPI S3 sleep. However the standard ACPI way to perform sleep
    is to write a value to ACPI PM1/SLEEP_CTL register, and this is never
    supported properly in kernel.
    
    Add standard S3 sleep by providing a default DoSuspend function which
    calls ACPI's acpi_enter_sleep_state() routine when SADR is not provided
    by the firmware.
    
    Also fix suspend assembly code so that ra is set properly before go
    into sleep routine. (Previously linked address of jirl was set to a0,
    some firmware do require return address in a0 but it's already set with
    la.pcrel before).
    
    Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
    Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
    FlyGoat authored and chenhuacai committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    9f39176 View commit details
    Browse the repository at this point in the history
  15. LoongArch: Automatically disable KASLR for hibernation

    Hibernation assumes the memory layout after resume be the same as that
    before sleep, so it expects the kernel is loaded at the same position.
    To achieve this goal we automatically disable KASLR if user explicitly
    requests hibernation via the "resume=" command line. Since "nohibernate"
    and "noresume" have higher priorities than "resume=", we only disable
    KASLR if there is no "nohibernate" and "noresume".
    
    Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
    chenhuacai committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    efd2b4b View commit details
    Browse the repository at this point in the history
  16. LoongArch: Use correct API to map cmdline in relocate_kernel()

    fw_arg1 is in memory space rather than I/O space, so we should use
    early_memremap_ro() instead of early_ioremap() to map the cmdline.
    Moreover, we should unmap it after using.
    
    Suggested-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
    Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
    chenhuacai committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    1c20c1c View commit details
    Browse the repository at this point in the history
  17. LoongArch: Use rustc option -Zdirect-access-external-data

    -Zdirect-access-external-data is a new Rust compiler option added in
    Rust 1.78, which we use to optimize the access of external data in the
    Linux kernel's Rust code. This patch modifies the Rust code in vmlinux
    to directly access externa data, using PC-REL instead of GOT. However,
    Rust code whithin modules is constrained by the PC-REL addressing range
    and is explicitly set to use an indirect method.
    
    Signed-off-by: WANG Rui <wangrui@loongson.cn>
    Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
    heiher authored and chenhuacai committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    e6c8586 View commit details
    Browse the repository at this point in the history
  18. LoongArch: Make the users of larch_insn_gen_break() constant

    LoongArch defines UPROBE_SWBP_INSN as a function call and this breaks
    arch_uprobe_trampoline() which uses it to initialize a static variable.
    
    Add the new "__builtin_constant_p" helper, __emit_break(), and redefine
    the current users of larch_insn_gen_break() to use it.
    
    Fixes: ff474a7 ("uprobe: Add uretprobe syscall to speed up return probe")
    Reported-by: Nathan Chancellor <nathan@kernel.org>
    Closes: https://lore.kernel.org/all/20240614174822.GA1185149@thelio-3990X/
    Suggested-by: Andrii Nakryiko <andrii@kernel.org>
    Tested-by: Tiezhu Yang <yangtiezhu@loongson.cn>
    Signed-off-by: Oleg Nesterov <oleg@redhat.com>
    Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
    oleg-nesterov authored and chenhuacai committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    d497c00 View commit details
    Browse the repository at this point in the history
  19. LoongArch: Add CPUFreq driver support

    Signed-off-by: Binbin Zhou <zhoubinbin@loongson.cn>
    Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
    chenhuacai committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    6dd31be View commit details
    Browse the repository at this point in the history
  20. LoongArch: Add CPU HWMon platform driver

    This add CPU HWMon (temperature sensor) platform driver for Loongson-3.
    
    Tested-by: Xi Ruoyao <xry111@xry111.site>
    Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
    chenhuacai committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    c792e5f View commit details
    Browse the repository at this point in the history
  21. SH: cpuinfo: Fix a warning for CONFIG_CPUMASK_OFFSTACK

    When CONFIG_CPUMASK_OFFSTACK and CONFIG_DEBUG_PER_CPU_MAPS is selected,
    cpu_max_bits_warn() generates a runtime warning similar as below while
    we show /proc/cpuinfo. Fix this by using nr_cpu_ids (the runtime limit)
    instead of NR_CPUS to iterate CPUs.
    
    [    3.052463] ------------[ cut here ]------------
    [    3.059679] WARNING: CPU: 3 PID: 1 at include/linux/cpumask.h:108 show_cpuinfo+0x5e8/0x5f0
    [    3.070072] Modules linked in: efivarfs autofs4
    [    3.076257] CPU: 0 PID: 1 Comm: systemd Not tainted 5.19-rc5+ #1052
    [    3.099465] Stack : 9000000100157b08 9000000000f18530 9000000000cf846c 9000000100154000
    [    3.109127]         9000000100157a50 0000000000000000 9000000100157a58 9000000000ef7430
    [    3.118774]         90000001001578e8 0000000000000040 0000000000000020 ffffffffffffffff
    [    3.128412]         0000000000aaaaaa 1ab25f00eec96a37 900000010021de80 900000000101c890
    [    3.138056]         0000000000000000 0000000000000000 0000000000000000 0000000000aaaaaa
    [    3.147711]         ffff8000339dc220 0000000000000001 0000000006ab4000 0000000000000000
    [    3.157364]         900000000101c998 0000000000000004 9000000000ef7430 0000000000000000
    [    3.167012]         0000000000000009 000000000000006c 0000000000000000 0000000000000000
    [    3.176641]         9000000000d3de08 9000000001639390 90000000002086d8 00007ffff0080286
    [    3.186260]         00000000000000b0 0000000000000004 0000000000000000 0000000000071c1c
    [    3.195868]         ...
    [    3.199917] Call Trace:
    [    3.203941] [<90000000002086d8>] show_stack+0x38/0x14c
    [    3.210666] [<9000000000cf846c>] dump_stack_lvl+0x60/0x88
    [    3.217625] [<900000000023d268>] __warn+0xd0/0x100
    [    3.223958] [<9000000000cf3c90>] warn_slowpath_fmt+0x7c/0xcc
    [    3.231150] [<9000000000210220>] show_cpuinfo+0x5e8/0x5f0
    [    3.238080] [<90000000004f578c>] seq_read_iter+0x354/0x4b4
    [    3.245098] [<90000000004c2e90>] new_sync_read+0x17c/0x1c4
    [    3.252114] [<90000000004c5174>] vfs_read+0x138/0x1d0
    [    3.258694] [<90000000004c55f8>] ksys_read+0x70/0x100
    [    3.265265] [<9000000000cfde9c>] do_syscall+0x7c/0x94
    [    3.271820] [<9000000000202fe4>] handle_syscall+0xc4/0x160
    [    3.281824] ---[ end trace 8b484262b4b8c24c ]---
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
    chenhuacai committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    4a8f7ba View commit details
    Browse the repository at this point in the history
  22. fs/ntfs3: Update log->page_{mask,bits} if log->page_size changed

    If an NTFS file system is mounted to another system with different
    PAGE_SIZE from the original system, log->page_size will change in
    log_replay(), but log->page_{mask,bits} don't change correspondingly.
    This will cause a panic because "u32 bytes = log->page_size - page_off"
    will get a negative value in the later read_log_page().
    
    Cc: stable@vger.kernel.org
    Fixes: b46acd6 ("fs/ntfs3: Add NTFS journal")
    Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
    chenhuacai committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    638ce56 View commit details
    Browse the repository at this point in the history
  23. fs/ntfs3: Rename the label end_reply to end_replay

    The label end_reply is obviously a typo. It should be "replay" in this
    context. So rename end_reply to end_replay.
    
    Cc: stable@vger.kernel.org
    Fixes: b46acd6 ("fs/ntfs3: Add NTFS journal")
    Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
    chenhuacai committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    1b3f33b View commit details
    Browse the repository at this point in the history
  24. LoongArch: Add HIGHMEM and FDT support for future

    Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
    chenhuacai committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    aedd3c4 View commit details
    Browse the repository at this point in the history
  25. LoongArch: Add debug machanism support

    Debug machanism include: gdb, ftrace, kprobe, uprobe and jump_label
    
    Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
    chenhuacai committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    2bcca16 View commit details
    Browse the repository at this point in the history
  26. LoongArch: Add LS7A IOMMU support

    Add driver support for the IOMMU in LS7A. If you need to enable it,
    please add the loongson_iommu=on kernel parameter.
    
    Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
    chenhuacai committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    5b97b3b View commit details
    Browse the repository at this point in the history
  27. USB: Fix OHCI/XHCI wakeup problems

    Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
    chenhuacai committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    18e8d2b View commit details
    Browse the repository at this point in the history
  28. drivers/firmware: Move sysfb_init() from device_initcall to fs_initcall

    Consider a configuration like this:
    1, efifb (or simpledrm) is built-in;
    2, a native display driver (such as radeon) is also built-in.
    
    As Javier said, this is not a common configuration (the native display
    driver is usually built as a module), but it can happen and cause some
    trouble.
    
    In this case, since efifb, radeon and sysfb are all in device_initcall()
    level, the order in practise is like this:
    
    efifb registered at first, but no "efi-framebuffer" device yet. radeon
    registered later, and /dev/fb0 created. sysfb_init() comes at last, it
    registers "efi-framebuffer" and then causes an error message "efifb: a
    framebuffer is already registered". Make sysfb_init() to be subsys_
    initcall_sync() can avoid this. And Javier Martinez Canillas is trying
    to make a more general solution in commit 873eb3b ("fbdev: Disable
    sysfb device registration when removing conflicting FBs").
    
    However, this patch still makes sense because it can make the screen
    display as early as possible (We cannot move to subsys_initcall, since
    sysfb_init() should be executed after PCI enumeration).
    
    This is a better version of commit 60aebc9 ("drivers/firmware:
    Move sysfb_init() from device_initcall to subsys_initcall_sync") since
    the previous commit leads to blank displays on some systems. The reason
    is that vgaarb initialization is also a subsys_initcall_sync function so
    sysfb_disable() is sometimes missed. So here we move sysfb_init() to an
    fs_initcall function which is ensured after vgaarb initialization.
    
    Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
    chenhuacai committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    d3bd36d View commit details
    Browse the repository at this point in the history
  29. drm/Makefile: Move tiny drivers before native drivers

    After commit 60aebc9 ("drivers/firmware: Move sysfb_init() from
    device_initcall to subsys_initcall_sync") some Lenovo laptops get a blank
    screen until the display manager starts.
    
    This regression occurs with such a Kconfig combination:
    CONFIG_SYSFB=y
    CONFIG_SYSFB_SIMPLEFB=y
    CONFIG_DRM_SIMPLEDRM=y
    CONFIG_DRM_I915=y      # Or other native drivers such as radeon, amdgpu
    
    If replace CONFIG_DRM_SIMPLEDRM with CONFIG_FB_SIMPLE (they use the same
    device), there is no blank screen. The root cause is the initialization
    order, and this order depends on the Makefile.
    
    FB_SIMPLE is before native DRM drivers (e.g. i915, radeon, amdgpu, and
    so on), but DRM_SIMPLEDRM is after them. Thus, if we use FB_SIMPLE, I915
    will takeover FB_SIMPLE, then no problem; and if we use DRM_SIMPLEDRM,
    DRM_SIMPLEDRM will try to takeover I915, but fails to work.
    
    So we can move the "tiny" directory before native DRM drivers to solve
    this problem.
    
    Fixes: 60aebc9 ("drivers/firmware: Move sysfb_init() from device_initcall to subsys_initcall_sync")
    Closes: https://lore.kernel.org/dri-devel/ZUnNi3q3yB3zZfTl@P70.localdomain/T/#t
    Reported-by: Jaak Ristioja <jaak@ristioja.ee>
    Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
    chenhuacai committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    5176131 View commit details
    Browse the repository at this point in the history
  30. drm/radeon: Workaround radeon driver bug for Loongson

    Radeon driver can not handle the interrupt is faster than DMA data, so
    irq handler must update an old ih.rptr value in IH_RB_RPTR register to
    enable interrupt again when interrupt is faster than DMA data.
    
    Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
    Signed-off-by: Zhijie Zhang <zhangzhijie@loongson.cn>
    chenhuacai committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    bd87626 View commit details
    Browse the repository at this point in the history
  31. drm/radeon: Call mmiowb() at the end of radeon_ring_commit()

    Commit fb24ea5 ("drivers: Remove explicit invocations of
    mmiowb()") remove all mmiowb() in drivers, but it says:
    
    "NOTE: mmiowb() has only ever guaranteed ordering in conjunction with
    spin_unlock(). However, pairing each mmiowb() removal in this patch with
    the corresponding call to spin_unlock() is not at all trivial, so there
    is a small chance that this change may regress any drivers incorrectly
    relying on mmiowb() to order MMIO writes between CPUs using lock-free
    synchronisation."
    
    The mmio in radeon_ring_commit() is protected by a mutex rather than a
    spinlock, but in the mutex fastpath it behaves similar to spinlock and
    need a mmiowb() to make sure the wptr is up-to-date for hardware.
    
    Without this, we get such an error when run 'glxgears' on weak ordering
    architectures such as LoongArch:
    
    radeon 0000:04:00.0: ring 0 stalled for more than 10324msec
    radeon 0000:04:00.0: ring 3 stalled for more than 10240msec
    radeon 0000:04:00.0: GPU lockup (current fence id 0x000000000001f412 last fence id 0x000000000001f414 on ring 3)
    radeon 0000:04:00.0: GPU lockup (current fence id 0x000000000000f940 last fence id 0x000000000000f941 on ring 0)
    radeon 0000:04:00.0: scheduling IB failed (-35).
    [drm:radeon_gem_va_ioctl [radeon]] *ERROR* Couldn't update BO_VA (-35)
    radeon 0000:04:00.0: scheduling IB failed (-35).
    [drm:radeon_gem_va_ioctl [radeon]] *ERROR* Couldn't update BO_VA (-35)
    radeon 0000:04:00.0: scheduling IB failed (-35).
    [drm:radeon_gem_va_ioctl [radeon]] *ERROR* Couldn't update BO_VA (-35)
    radeon 0000:04:00.0: scheduling IB failed (-35).
    [drm:radeon_gem_va_ioctl [radeon]] *ERROR* Couldn't update BO_VA (-35)
    radeon 0000:04:00.0: scheduling IB failed (-35).
    [drm:radeon_gem_va_ioctl [radeon]] *ERROR* Couldn't update BO_VA (-35)
    radeon 0000:04:00.0: scheduling IB failed (-35).
    [drm:radeon_gem_va_ioctl [radeon]] *ERROR* Couldn't update BO_VA (-35)
    radeon 0000:04:00.0: scheduling IB failed (-35).
    [drm:radeon_gem_va_ioctl [radeon]] *ERROR* Couldn't update BO_VA (-35)
    
    Signed-off-by: Tianyang Zhang <zhangtianyang@loongson.cn>
    Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
    chenhuacai committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    69ac9b1 View commit details
    Browse the repository at this point in the history
  32. stmmac: Expose module parameters

    Expose module parameters so that we can use them in specific device
    configurations. Add the 'stmmac_' prefix for them to avoid conflicts.
    
    Meanwhile, there was a 'buf_sz' local variable in stmmac_rx() with the
    same name as the global variable, and now we can distinguish them.
    
    Signed-off-by: Feiyang Chen <chenfeiyang@loongson.cn>
    Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
    FreeFlyingSheep authored and chenhuacai committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    2494356 View commit details
    Browse the repository at this point in the history
  33. stmmac: pci: Add LS7A support for dwmac-loongson

    Current dwmac-loongson only support LS2K in the "probed with PCI and
    configured with DT" manner. We add LS7A support on which the devices
    are fully PCI (non-DT).
    
    Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
    Signed-off-by: Feiyang Chen <chenfeiyang@loongson.cn>
    FreeFlyingSheep authored and chenhuacai committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    d687d0c View commit details
    Browse the repository at this point in the history
  34. tty: Add univt framework support

    Signed-off-by: Haiyong Sun <sunhy@lemote.com>
    Signed-off-by: Huacai Chen <chenhc@lemote.com>
    chenhuacai committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    0e9fd5a View commit details
    Browse the repository at this point in the history
  35. tty: Add Chinese fonts support in console

    Signed-off-by: Haiyong Sun <sunhy@lemote.com>
    Signed-off-by: Huacai Chen <chenhc@lemote.com>
    chenhuacai committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    b91b3bc View commit details
    Browse the repository at this point in the history
  36. LoongArch: Add Loongson Binary Translation syscall support

    Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
    chenhuacai committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    653a389 View commit details
    Browse the repository at this point in the history

Commits on Jul 6, 2024

  1. build(deps): bump certifi in /drivers/gpu/drm/ci/xfails

    Bumps [certifi](https://github.com/certifi/python-certifi) from 2023.7.22 to 2024.7.4.
    - [Commits](certifi/python-certifi@2023.07.22...2024.07.04)
    
    ---
    updated-dependencies:
    - dependency-name: certifi
      dependency-type: direct:production
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>
    dependabot[bot] authored Jul 6, 2024
    Configuration menu
    Copy the full SHA
    9fe1793 View commit details
    Browse the repository at this point in the history