1. 11 Nov, 2020 6 commits
  2. 10 Nov, 2020 2 commits
  3. 03 Nov, 2020 4 commits
  4. 02 Nov, 2020 1 commit
  5. 27 Oct, 2020 2 commits
    • Douglas Anderson's avatar
      arm64: dts: qcom: Switch sc7180-trogdor to control SPI CS via GPIO · cfbb97fd
      Douglas Anderson authored
      As talked about in the patch ("arm64: dts: qcom: sc7180: Provide
      pinconf for SPI to use GPIO for CS"), on some boards it makes much
      more sense (and is much more efficient) to think of the SPI Chip
      Select as a GPIO.  Trogdor is one such board where the SPI parts don't
      run in GSI mode and we do a lot of SPI traffic.
      Signed-off-by: default avatarDouglas Anderson <dianders@chromium.org>
      Reviewed-by: default avatarStephen Boyd <swboyd@chromium.org>
      Reviewed-by: default avatarAkash Asthana <akashast@codeaurora.org>
      Link: https://lore.kernel.org/r/20200921142655.v3.2.I3c57d8b6d83d5bdad73a413eea1e249a98d11973@changeidSigned-off-by: default avatarBjorn Andersson <bjorn.andersson@linaro.org>
      cfbb97fd
    • Douglas Anderson's avatar
      arm64: dts: qcom: sc7180: Provide pinconf for SPI to use GPIO for CS · 37dd4b77
      Douglas Anderson authored
      When the chip select line is controlled by the QUP, changing CS is a
      time consuming operation.  We have to send a command over to the geni
      and wait for it to Ack us every time we want to change (both making it
      high and low).  To send this command we have to make a choice in
      software when we want to control the chip select, we have to either:
      A) Wait for the Ack via interrupt which slows down all SPI transfers
         (and incurrs extra processing associated with interrupts).
      B) Sit in a loop and poll, waiting for the Ack.
      
      Neither A) nor B) is a great option.
      
      We can avoid all of this by realizing that, at least on some boards,
      there is no advantage of considering this line to be a geni line.
      While it's true that geni _can_ control the line, it's also true that
      the line can be a GPIO and there is no downside of viewing it that
      way.  Setting a GPIO is a simple MMIO operation.
      
      This patch provides definitions so a board can easily select the GPIO
      mode.
      
      NOTE: apparently, it's possible to run the geni in "GSI" mode.  In GSI
      the SPI port is allowed to be controlled by more than one user (like
      firmware and Linux) and also the port can operate sequences of
      operations in one go.  In GSI mode it _would_ be invalid to look at
      the chip select as a GPIO because that would prevent other users from
      using it.  In theory GSI mode would also avoid some overhead by
      allowing us to sequence the chip select better.  However, I'll argue
      GSI is not relevant for all boards (and certainly not any boards
      supported by mainline today).  Why?
      - Apparently to run a SPI chip in GSI mode you need to initialize it
        (in the bootloader) with a different firmware and then it will
        always run in GSI mode.  Since there is no support for GSI mode in
        the current Linux driver, it must be that existing boards don't have
        firmware that's doing that.  Note that the kernel device tree
        describes hardware but also firmware, so it is legitimate to make
        the assumption that we don't have GSI firmware in a given dts file.
      - Some boards with sc7180 have SPI connected to the Chrome OS EC or
        security chip (Cr50).  The protocols for talking to cros_ec and cr50
        are extremely complex.  Both drivers in Linux fully lock the bus
        across several distinct SPI transfers.  While I am not an expert on
        GSI mode it feels highly unlikely to me that we'd ever be able to
        enable GSI mode for these devices.
      
      From a testing perspective, running "flashrom -p ec -r /tmp/foo.bin"
      in a loop after this patch shows almost no reduction in time, but the
      number of interrupts per command goes from 32357 down to 30611 (about
      a 5% reduction).
      Signed-off-by: default avatarDouglas Anderson <dianders@chromium.org>
      Reviewed-by: default avatarStephen Boyd <swboyd@chromium.org>
      Reviewed-by: default avatarAkash Asthana <akashast@codeaurora.org>
      Link: https://lore.kernel.org/r/20200921142655.v3.1.I997a428f58ef9d48b37a27a028360f34e66c00ec@changeidSigned-off-by: default avatarBjorn Andersson <bjorn.andersson@linaro.org>
      37dd4b77
  6. 26 Oct, 2020 5 commits
  7. 25 Oct, 2020 17 commits
  8. 24 Oct, 2020 3 commits
    • Linus Torvalds's avatar
      Merge tag 'block-5.10-2020-10-24' of git://git.kernel.dk/linux-block · d7691390
      Linus Torvalds authored
      Pull block fixes from Jens Axboe:
      
       - NVMe pull request from Christoph
           - rdma error handling fixes (Chao Leng)
           - fc error handling and reconnect fixes (James Smart)
           - fix the qid displace when tracing ioctl command (Keith Busch)
           - don't use BLK_MQ_REQ_NOWAIT for passthru (Chaitanya Kulkarni)
           - fix MTDT for passthru (Logan Gunthorpe)
           - blacklist Write Same on more devices (Kai-Heng Feng)
           - fix an uninitialized work struct (zhenwei pi)"
      
       - lightnvm out-of-bounds fix (Colin)
      
       - SG allocation leak fix (Doug)
      
       - rnbd fixes (Gioh, Guoqing, Jack)
      
       - zone error translation fixes (Keith)
      
       - kerneldoc markup fix (Mauro)
      
       - zram lockdep fix (Peter)
      
       - Kill unused io_context members (Yufen)
      
       - NUMA memory allocation cleanup (Xianting)
      
       - NBD config wakeup fix (Xiubo)
      
      * tag 'block-5.10-2020-10-24' of git://git.kernel.dk/linux-block: (27 commits)
        block: blk-mq: fix a kernel-doc markup
        nvme-fc: shorten reconnect delay if possible for FC
        nvme-fc: wait for queues to freeze before calling update_hr_hw_queues
        nvme-fc: fix error loop in create_hw_io_queues
        nvme-fc: fix io timeout to abort I/O
        null_blk: use zone status for max active/open
        nvmet: don't use BLK_MQ_REQ_NOWAIT for passthru
        nvmet: cleanup nvmet_passthru_map_sg()
        nvmet: limit passthru MTDS by BIO_MAX_PAGES
        nvmet: fix uninitialized work for zero kato
        nvme-pci: disable Write Zeroes on Sandisk Skyhawk
        nvme: use queuedata for nvme_req_qid
        nvme-rdma: fix crash due to incorrect cqe
        nvme-rdma: fix crash when connect rejected
        block: remove unused members for io_context
        blk-mq: remove the calling of local_memory_node()
        zram: Fix __zram_bvec_{read,write}() locking order
        skd_main: remove unused including <linux/version.h>
        sgl_alloc_order: fix memory leak
        lightnvm: fix out-of-bounds write to array devices->info[]
        ...
      d7691390
    • Linus Torvalds's avatar
      Merge tag 'io_uring-5.10-2020-10-24' of git://git.kernel.dk/linux-block · af004187
      Linus Torvalds authored
      Pull io_uring fixes from Jens Axboe:
      
       - fsize was missed in previous unification of work flags
      
       - Few fixes cleaning up the flags unification creds cases (Pavel)
      
       - Fix NUMA affinities for completely unplugged/replugged node for io-wq
      
       - Two fallout fixes from the set_fs changes. One local to io_uring, one
         for the splice entry point that io_uring uses.
      
       - Linked timeout fixes (Pavel)
      
       - Removal of ->flush() ->files work-around that we don't need anymore
         with referenced files (Pavel)
      
       - Various cleanups (Pavel)
      
      * tag 'io_uring-5.10-2020-10-24' of git://git.kernel.dk/linux-block:
        splice: change exported internal do_splice() helper to take kernel offset
        io_uring: make loop_rw_iter() use original user supplied pointers
        io_uring: remove req cancel in ->flush()
        io-wq: re-set NUMA node affinities if CPUs come online
        io_uring: don't reuse linked_timeout
        io_uring: unify fsize with def->work_flags
        io_uring: fix racy REQ_F_LINK_TIMEOUT clearing
        io_uring: do poll's hash_node init in common code
        io_uring: inline io_poll_task_handler()
        io_uring: remove extra ->file check in poll prep
        io_uring: make cached_cq_overflow non atomic_t
        io_uring: inline io_fail_links()
        io_uring: kill ref get/drop in personality init
        io_uring: flags-based creds init in queue
      af004187
    • Linus Torvalds's avatar
      Merge tag 'libata-5.10-2020-10-24' of git://git.kernel.dk/linux-block · cb6b2897
      Linus Torvalds authored
      Pull libata fixes from Jens Axboe:
       "Two minor libata fixes:
      
         - Fix a DMA boundary mask regression for sata_rcar (Geert)
      
         - kerneldoc markup fix (Mauro)"
      
      * tag 'libata-5.10-2020-10-24' of git://git.kernel.dk/linux-block:
        ata: fix some kernel-doc markups
        ata: sata_rcar: Fix DMA boundary mask
      cb6b2897