1. 24 Mar, 2021 1 commit
    • JC Kuo's avatar
      clk: tegra: Add PLLE HW power sequencer control · 54443ef6
      JC Kuo authored
      PLLE has a hardware power sequencer logic which is a state machine
      that can power on/off PLLE without any software intervention. The
      sequencer has two inputs, one from XUSB UPHY PLL and the other from
      SATA UPHY PLL. PLLE provides reference clock to XUSB and SATA UPHY
      PLLs. When both of the downstream PLLs are powered-off, PLLE hardware
      power sequencer will automatically power off PLLE for power saving.
      
      XUSB and SATA UPHY PLLs also have their own hardware power sequencer
      logic. XUSB UPHY PLL is shared between XUSB SuperSpeed ports and PCIE
      controllers. The XUSB UPHY PLL hardware power sequencer has inputs
      from XUSB and PCIE. When all of the XUSB SuperSpeed ports and PCIE
      controllers are in low power state, XUSB UPHY PLL hardware power
      sequencer automatically power off PLL and flags idle to PLLE hardware
      power sequencer. Similar applies to SATA UPHY PLL.
      
      PLLE hardware power sequencer has to be enabled after both downstream
      sequencers are enabled.
      
      This commit adds two helper functions:
      1. tegra210_plle_hw_sequence_start() for XUSB PADCTL driver to enable
         PLLE hardware sequencer at proper time.
      
      2. tegra210_plle_hw_sequence_is_enabled() for XUSB PADCTL driver to
         check whether PLLE hardware sequencer has been enabled or not.
      Signed-off-by: default avatarJC Kuo <jckuo@nvidia.com>
      Acked-by: default avatarThierry Reding <treding@nvidia.com>
      Acked-by: default avatarStephen Boyd <sboyd@kernel.org>
      Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
      54443ef6
  2. 06 Mar, 2021 4 commits
  3. 05 Mar, 2021 33 commits
  4. 04 Mar, 2021 2 commits
    • Jens Axboe's avatar
      kernel: provide create_io_thread() helper · cc440e87
      Jens Axboe authored
      Provide a generic helper for setting up an io_uring worker. Returns a
      task_struct so that the caller can do whatever setup is needed, then call
      wake_up_new_task() to kick it into gear.
      
      Add a kernel_clone_args member, io_thread, which tells copy_process() to
      mark the task with PF_IO_WORKER.
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      cc440e87
    • Pavel Begunkov's avatar
      io_uring: reliably cancel linked timeouts · dd59a3d5
      Pavel Begunkov authored
      Linked timeouts are fired asynchronously (i.e. soft-irq), and use
      generic cancellation paths to do its stuff, including poking into io-wq.
      The problem is that it's racy to access tctx->io_wq, as
      io_uring_task_cancel() and others may be happening at this exact moment.
      Mark linked timeouts with REQ_F_INLIFGHT for now, making sure there are
      no timeouts before io-wq destraction.
      Signed-off-by: default avatarPavel Begunkov <asml.silence@gmail.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      dd59a3d5