14 Dec, 2020

33 commits

  • This patch provids netlink method to configure the TSN protocols hardwares.
    TSN guaranteed packet transport with bounded low latency, low packet delay
    variation, and low packet loss by hardware and software methods.

    The three basic components of TSN are:

    1. Time synchronization: This was implement by 8021AS which base on the
    IEEE1588 precision Time Protocol. This is configured by the other way
    in kernel.
    8021AS not included in this patch.

    2. Scheduling and traffic shaping and per-stream filter policing:
    This patch support Qbv/Qci/Qbu/8021CB/Qav etc.

    3. Selection of communication paths:
    This patch not support the pure software only TSN protocols(like Qcc)
    but hardware related configuration.

    TSN Protocols supports by this patch: Qbv/Qci/Qbu/Credit-base Shaper(Qav).
    This patch verified on NXP ls1028ardb board.

    Signed-off-by: Po Liu

    Po Liu
     
  • * origin/arch/qoriq: (6 commits)
    soc: fsl: qbman: Ensure device cleanup is run for kexec
    drivers/soc/fsl: add EPU FSM configuration for deep sleep
    fsl_pmc: update device bindings
    powerpc/pm: Fix suspend=n in menuconfig for e500mc platforms.
    powerpc/pm: add sleep and deep sleep on QorIQ SoCs
    ...

    Dong Aisheng
     
  • * origin/arch/core: (14 commits)
    MLK-16912 PL310: unlock ways during initialization
    LF-2438 arm64: kernel: smp: Add workaround for i.MX8MQ ERR11171
    LF-363 arm64: kernel: TKT340553 Errata workaround update for i.MX8QM
    MLK-16005-2 arm64: tlb: add the SW workaround for i.MX8QM TKT340553
    MLK-21599-1 arm64: Kconfig: Make FORCE_MAX_ZONEORDER configurable
    ...

    Dong Aisheng
     
  • * origin/core: (6 commits)
    LF-2702 scripts: gcc-plugins: make GCC_PLUGINS not default to y
    ENGR00279980 ubi: attach: do not return -EINVAL if the mtd->numeraseregions is 1
    of: of_reserved_mem: Ensure cma reserved region not cross the low/high memory
    mm: Re-export ioremap_page_range
    drivers/base: add sysfs entries for suppliers and consumers
    ...

    Dong Aisheng
     
  • Make sure that the QBMan device cleanup routines are executed
    when the device was previously initialized. This is needed for
    kexec since the device will keep it's state from the previous
    kernel that was executing.

    Signed-off-by: Roy Pledge

    Roy Pledge
     
  • In the last stage of deep sleep, software will trigger a Finite
    State Machine (FSM) to control the hardware procedure, such a
    board isolation, killing PLLs, removing power, and so on.

    When the system is waked up by an interrupt, the FSM controls
    the hardware to complete the early resume procedure.

    This patch configure the EPU FSM preparing for deep sleep.

    Signed-off-by: Hongbo Zhang
    Signed-off-by: Chenhui Zhao
    Signed-off-by: Ran Wang

    Ran Wang
     
  • Signed-off-by: Li Yang
    Signed-off-by: Zhao Chenhui
    Signed-off-by: Ran Wang

    Li Yang
     
  • Also, unselect FSL_PMC which is for older platfroms instead.

    Signed-off-by: Ran Wang

    Ran Wang
     
  • In sleep mode, the clocks of CPU core and unused IP blocks are turned
    off (IP blocks allowed to wake up system will running).

    Some QorIQ SoCs like MPC8536, P1022 and T104x, have deep sleep PM mode
    in addtion to the sleep PM mode. While in deep sleep mode,
    additionally, the power supply is removed from CPU core and most IP
    blocks. Only the blocks needed to wake up the chip out of deep sleep
    are ON.

    This feature supports 32-bit and 36-bit address space.

    The sleep mode is equal to the Standby state in Linux. The deep sleep
    mode is equal to the Suspend-to-RAM state of Linux Power Management.
    Command to enter sleep mode.
    echo standby > /sys/power/state
    Command to enter deep sleep mode.
    echo mem > /sys/power/state

    Signed-off-by: Dave Liu
    Signed-off-by: Li Yang
    Signed-off-by: Jin Qing
    Signed-off-by: Jerry Huang
    Signed-off-by: Ramneek Mehresh
    Signed-off-by: Zhao Chenhui
    Signed-off-by: Wang Dongsheng
    Signed-off-by: Tang Yuantian
    Signed-off-by: Xie Xiaobo
    Signed-off-by: Zhao Qiang
    Signed-off-by: Shengzhou Liu
    Signed-off-by: Ran Wang

    Ran Wang
     
  • FPGA on LX2160AQDS/LX2160ARDB connected on I2C bus, so add qixis driver
    which is basically an i2c client driver to control FPGA.

    Signed-off-by: Pankaj Bansal

    Pankaj Bansal
     
  • This change affects all i.MX 6 with PL310 L2 Cache controller.
    When Linux runs in Non-secure World the PL310 has already
    been initialized by the ARM secure World running OP-TEE os.
    However, in order to have a proper Linux Initialization all the
    L2 cache ways have been locked by the secure world.

    This patch unlock all the ways during pl310 initialization.

    Signed-off-by: Cedric Neveux
    Signed-off-by: Arulpandiyan Vadivel
    (cherry picked from commit 5133fbe9aaafd24add7d92b1aa2d3474b7a13723)

    Cedric Neveux
     
  • Since commit 5cebfd2d47c214 "arm64: Kill __smp_cross_call and co",
    the workaround for ERR11171 for i.MX8MQ needs a different approach.
    In order to do go to EL3 to power up/down the cores, right after
    the ipi was raised, we call imx_gpcv2_raise_softirq which is
    only built if the CONFIG_IMX_GPCV2 is enabled. Then, in
    imx_gpcv2_raise_softirq depending on the existance of the ERR11171
    on any platform, we call into EL3 or skip everything and get out.

    Signed-off-by: Abel Vesa

    Abel Vesa
     
  • As per latest i.MX8QM SOC Errata, TKT340553 workaround needs to be
    updated to unconditionally downgrade TLB operations and instruction
    cache maintenance.

    [ Leo: move TKT340553_SW_WORKAROUND from soc driver to arch ]
    Signed-off-by: Nitin Garg
    Signed-off-by: Anson Huang
    Acked-by: Peng Fan

    Nitin Garg
     
  • on i.MX8QM 1.0/1.1,TLB maintenance through DVM messages over ARADDR channel,
    some bits (see the following) will be corrupted:

    ASID[15:12] VA[48:45] VA[44:41] VA[39:36]

    This issue will result in the TLB aintenance across the clusters not working
    as expected due to some VA and ASID bits get corrupted

    The SW workaround is: use the vmalle1is if VA larger than 36bits or
    ASID[15:12] is not zero, otherwise, we use original TLB maintenance path.

    Note: To simplify the code, we did not check VA[40] bit specifically

    [ Leo: split arch change from drivers/soc change ]
    Signed-off-by: Jason Liu
    Reviewed-by: Anson Huang

    Jason Liu
     
  • Older imx releases increased this based on SOC_IMX8 but that symbol is
    gone and the expectation is that SOC-selection symbols like "ARCH_MXC"
    will almost always be defined and shouldn't be used to make incompatible
    config decisions.

    Make the value of FORCE_MAX_ZONEORDER configurable so this can be
    adjusted in a .config file.

    Signed-off-by: Leonard Crestez
    Reviewed-by: Li Yang
    Signed-off-by: Dong Aisheng

    Leonard Crestez
     
  • Signed-off-by: Madalin Bucur

    Madalin Bucur
     
  • Signed-off-by: Haiying Wang
    Reviewed-by: Roy Pledge
    Reviewed-by: Stuart Yoder

    Haiying Wang
     
  • Signed-off-by: Haiying Wang

    Haiying Wang
     
  • Signed-off-by: Haiying Wang
    Reviewed-by: Roy Pledge
    Reviewed-by: Stuart Yoder

    Haiying Wang
     
  • Signed-off-by: Jianhua Xie

    Jianhua Xie
     
  • Signed-off-by: Pan Jiafei
    Signed-off-by: Roy Pledge

    Pan Jiafei
     
  • Signed-off-by: Horia Geantă

    Horia Geantă
     
  • Need to be separated when submitting upstream.

    Signed-off-by: Li Yang

    Li Yang
     
  • Various e500 core have different cache architecture, so they
    need different cache flush operations. Therefore, add a callback
    function cpu_flush_caches to the struct cpu_spec. The cache flush
    operation for the specific kind of e500 is selected at init time.
    The callback function will flush all caches in the current cpu.

    Signed-off-by: Chenhui Zhao
    Reviewed-by: Yang Li
    Reviewed-by: Jose Rivera
    Signed-off-by: Ran Wang

    Ran Wang
     
  • Currently CONFIG_GCC_PLUGINS is auto enabled by detecting host
    build environment as follows:
    "depends on $(success,$(srctree)/scripts/gcc-plugin.sh $(CC))"

    This potentially cause an inconsistency issue of images built
    from two machines e.g. kernel modules built by ourselves
    maybe unable to load with a prebuilt kernel image and vice versa.
    (Affected by STACKPROTECTOR_PER_TASK which is also default y and
    depends on GCC_PLUGINS)

    In order to address this image inconsistency issue, we make the
    GCC_PLUGINS option not default to y and reply on users to select it
    from defconfig file once their host environment can meet the requirement
    and want this option enabled.

    This issue happened with GCC 10.2 toolchain and have gcc-10-plugin-dev
    package installed on host after migrated to Yocto 3.2.

    Acked-by: Jason Liu
    Signed-off-by: Dong Aisheng

    Dong Aisheng
     
  • If the master mtd does not have any slave mtd partitions,
    and its numeraseregions is one(only has one erease block), and
    we attach the master mtd with : ubiattach -m 0 -d 0

    We will meet the error:
    -------------------------------------------------------
    root@freescale ~$ ubiattach /dev/ubi_ctrl -m 0 -d 0
    UBI: attaching mtd0 to ubi0
    UBI error: io_init: multiple regions, not implemented
    ubiattach: error!: cannot attach mtd0
    error 22 (Invalid argument)
    -------------------------------------------------------

    In fact, if there is only one "erase block", we should not
    prevent the attach.

    This patch fixes it.

    Signed-off-by: Huang Shijie
    (cherry picked from commit 361cdc47fc4c4db31c5485560cdabd94f409bd81)
    (cherry picked from commit ebee7d74914fad3cf7223af84496811c9d2488a1)

    Signed-off-by: Vipul Kumar

    Signed-off-by: Han Xu

    Huang Shijie
     
  • Need ensure the cma reserved region not cross the low/high memory boundary
    when using the dynamic allocation methond through device-tree, otherwise,
    kernel will fail to boot up when cma reserved region cross how/high mem.

    Signed-off-by: Jason Liu
    Cc: Laura Abbott
    Cc: Frank Rowand
    Cc: Rob Herring
    Cc: stable@vger.kernel.org
    Signed-off-by: Arulpandiyan Vadivel

    Jason Liu
     
  • We need this in Jailhouse to map at specific virtual addresses, at
    least for the moment.

    Signed-off-by: Jan Kiszka
    (cherry picked from commit 94bb285491a9a9e15c82c0761505b1073d6b7a47)

    Jan Kiszka
     
  • Instead of scraping dmesg for messages such as 'Linked as a consumer to'
    or 'Dropping the link to' export two new sysfs entries in the device
    folder that list the consumer and supplier devices.

    Signed-off-by: Ioana Ciornei

    Ioana Ciornei
     
  • Adding back skb_recycle() as it's used by the DPAA Ethernet driver.
    This was removed from the upstream kernel because it was lacking users.

    Signed-off-by: Madalin Bucur

    Madalin Bucur
     
  • Linus Torvalds
     
  • Pull x86 fixes from Thomas Gleixner:
    "A set of x86 and membarrier fixes:

    - Correct a few problems in the x86 and the generic membarrier
    implementation. Small corrections for assumptions about visibility
    which have turned out not to be true.

    - Make the PAT bits for memory encryption correct vs 4K and 2M/1G
    page table entries as they are at a different location.

    - Fix a concurrency issue in the the local bandwidth readout of
    resource control leading to incorrect values

    - Fix the ordering of allocating a vector for an interrupt. The order
    missed to respect the provided cpumask when the first attempt of
    allocating node local in the mask fails. It then tries the node
    instead of trying the full provided mask first. This leads to
    erroneous error messages and breaking the (user) supplied affinity
    request. Reorder it.

    - Make the INT3 padding detection in optprobe work correctly"

    * tag 'x86-urgent-2020-12-13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/kprobes: Fix optprobe to detect INT3 padding correctly
    x86/apic/vector: Fix ordering in vector assignment
    x86/resctrl: Fix incorrect local bandwidth when mba_sc is enabled
    x86/mm/mem_encrypt: Fix definition of PMD_FLAGS_DEC_WP
    membarrier: Execute SYNC_CORE on the calling thread
    membarrier: Explicitly sync remote cores when SYNC_CORE is requested
    membarrier: Add an actual barrier before rseq_preempt()
    x86/membarrier: Get rid of a dubious optimization

    Linus Torvalds
     
  • Pull block fixes from Jens Axboe:
    "This should be it for 5.10.

    Mike and Song looked into the warning case, and thankfully it appears
    the fix was pretty trivial - we can just change the md device chunk
    type to unsigned int to get rid of it. They cannot currently be < 0,
    and nobody is checking for that either.

    We're reverting the discard changes as the corruption reports came in
    very late, and there's just no time to attempt to deal with it at this
    point. Reverting the changes in question is the right call for 5.10"

    * tag 'block-5.10-2020-12-12' of git://git.kernel.dk/linux-block:
    md: change mddev 'chunk_sectors' from int to unsigned
    Revert "md: add md_submit_discard_bio() for submitting discard bio"
    Revert "md/raid10: extend r10bio devs to raid disks"
    Revert "md/raid10: pull codes that wait for blocked dev into one function"
    Revert "md/raid10: improve raid10 discard request"
    Revert "md/raid10: improve discard request for far layout"
    Revert "dm raid: remove unnecessary discard limits for raid10"

    Linus Torvalds
     

13 Dec, 2020

7 commits

  • Pull SCSI fixes from James Bottomley:
    "Five small fixes. Four in drivers:

    - hisi_sas: fix internal queue timeout

    - be2iscsi: revert a prior fix causing problems

    - bnx2i: add missing dependency

    - storvsc: late arriving revert of a problem fix

    and one in the core.

    The core one is a minor change to stop paying attention to the busy
    count when returning out of resources because there's a race window
    where the queue might not restart due to missing returning I/O"

    * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
    Revert "scsi: storvsc: Validate length of incoming packet in storvsc_on_channel_callback()"
    scsi: hisi_sas: Select a suitable queue for internal I/Os
    scsi: core: Fix race between handling STS_RESOURCE and completion
    scsi: be2iscsi: Revert "Fix a theoretical leak in beiscsi_create_eqs()"
    scsi: bnx2i: Requires MMU

    Linus Torvalds
     
  • Pull i2c fix from Wolfram Sang:
    "Bugfix for the AT24 EEPROM driver"

    * 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
    misc: eeprom: at24: fix NVMEM name with custom AT24 device name

    Linus Torvalds
     
  • Pull kvm fixes from Paolo Bonzini:
    "Bugfixes for ARM, x86 and tools"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
    tools/kvm_stat: Exempt time-based counters
    KVM: mmu: Fix SPTE encoding of MMIO generation upper half
    kvm: x86/mmu: Use cpuid to determine max gfn
    kvm: svm: de-allocate svm_cpu_data for all cpus in svm_cpu_uninit()
    selftests: kvm/set_memory_region_test: Fix race in move region test
    KVM: arm64: Add usage of stage 2 fault lookup level in user_mem_abort()
    KVM: arm64: Fix handling of merging tables into a block entry
    KVM: arm64: Fix memory leak on stage2 update of a valid PTE

    Linus Torvalds
     
  • Pull xen fixes from Juergen Gross:
    "A short series fixing a regression introduced in 5.9 for running as
    Xen dom0 on a system with NVMe backed storage"

    * tag 'for-linus-5.10c-rc8-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
    xen: don't use page->lru for ZONE_DEVICE memory
    xen: add helpers for caching grant mapping pages

    Linus Torvalds
     
  • Pull RISC-V fix from Palmer Dabbelt:
    "Just one fix. It's nothing critical, just a randconfig that wasn't
    building. That said, it does seem pretty safe and is technically a
    regression so I'm sending it along for 5.10:

    - define get_cycles64() all the time, as it's used by most
    configurations"

    * tag 'riscv-for-linus-5.10-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux:
    RISC-V: Define get_cycles64() regardless of M-mode

    Linus Torvalds
     
  • Pull io_uring fixes from Jens Axboe:
    "Two fixes in here, fixing issues introduced in this merge window"

    * tag 'io_uring-5.10-2020-12-11' of git://git.kernel.dk/linux-block:
    io_uring: fix file leak on error path of io ctx creation
    io_uring: fix mis-seting personality's creds

    Linus Torvalds
     
  • Pull input fixes from Dmitry Torokhov:

    - a fix for cm109 stomping on its own control URB if it tries to toggle
    buzzer immediately after userspace opens input device (found by
    syzcaller)

    - another fix for Raydium touchscreens that do not like splitting
    command transfers

    - quirks for i8042, soc_button_array, and goodix drivers to make them
    work better with certain hardware.

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
    Input: goodix - add upside-down quirk for Teclast X98 Pro tablet
    Input: cm109 - do not stomp on control URB
    Input: i8042 - add Acer laptops to the i8042 reset list
    Input: cros_ec_keyb - send 'scancodes' in addition to key events
    Input: soc_button_array - add Lenovo Yoga Tablet2 1051L to the dmi_use_low_level_irq list
    Input: raydium_ts_i2c - do not split tx transactions

    Linus Torvalds