Skip to content
  1. Feb 01, 2021
  2. Jan 31, 2021
    • Linus Walleij's avatar
      leds: rt8515: Add Richtek RT8515 LED driver · e1c6edcb
      Linus Walleij authored
      
      
      This adds a driver for the Richtek RT8515 dual channel
      torch/flash white LED driver.
      
      This LED driver is found in some mobile phones from
      Samsung such as the GT-S7710 and GT-I8190.
      
      A V4L interface is added.
      
      We do not have a proper datasheet for the RT8515 but
      it turns out that RT9387A has a public datasheet and
      is essentially the same chip. We designed the driver
      in accordance with this datasheet. The day someone
      needs to drive a RT9387A this driver can probably
      easily be augmented to handle that chip too.
      
      Sakari Ailus, Pavel Machek and Andy Shevchenko helped
      significantly in getting this driver right.
      
      Cc: Sakari Ailus <sakari.ailus@iki.fi>
      Cc: newbytee@protonmail.com
      Cc: Stephan Gerhold <stephan@gerhold.net>
      Cc: linux-media@vger.kernel.org
      Cc: phone-devel@vger.kernel.org
      Reviewed-by: default avatarSakari Ailus <sakari.ailus@linux.intel.com>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: default avatarPavel Machek <pavel@ucw.cz>
      e1c6edcb
    • Linus Walleij's avatar
      dt-bindings: leds: Add DT binding for Richtek RT8515 · c8283eb7
      Linus Walleij authored
      
      
      Add a YAML devicetree binding for the Richtek RT8515
      dual channel flash/torch LED driver.
      
      Cc: Sakari Ailus <sakari.ailus@iki.fi>
      Cc: newbytee@protonmail.com
      Cc: Stephan Gerhold <stephan@gerhold.net>
      Cc: phone-devel@vger.kernel.org
      Cc: linux-media@vger.kernel.org
      Cc: devicetree@vger.kernel.org
      Reviewed-by: default avatarRob Herring <robh@kernel.org>
      Reviewed-by: default avatarSakari Ailus <sakari.ailus@linux.intel.com>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: default avatarPavel Machek <pavel@ucw.cz>
      c8283eb7
    • Andrea Righi's avatar
      leds: trigger: fix potential deadlock with libata · 27af8e2c
      Andrea Righi authored
      We have the following potential deadlock condition:
      
       ========================================================
       WARNING: possible irq lock inversion dependency detected
       5.10.0-rc2+ #25 Not tainted
       --------------------------------------------------------
       swapper/3/0 just changed the state of lock:
       ffff8880063bd618 (&host->lock){-...}-{2:2}, at: ata_bmdma_interrupt+0x27/0x200
       but this lock took another, HARDIRQ-READ-unsafe lock in the past:
        (&trig->leddev_list_lock){.+.?}-{2:2}
      
       and interrupts could create inverse lock ordering between them.
      
       other info that might help us debug this:
        Possible interrupt unsafe locking scenario:
      
              CPU0                    CPU1
              ----                    ----
         lock(&trig->leddev_list_lock);
                                      local_irq_disable();
                                      lock(&host->lock);
                                      lock(&trig->leddev_list_lock);
         <Interrupt>
           lock(&host->lock);
      
        *** DEADLOCK ***
      
       no locks held by swapper/3/0.
      
       the shortest dependencies between 2nd lock and 1st lock:
        -> (&trig->leddev_list_lock){.+.?}-{2:2} ops: 46 {
           HARDIRQ-ON-R at:
                             lock_acquire+0x15f/0x420
                             _raw_read_lock+0x42/0x90
                             led_trigger_event+0x2b/0x70
                             rfkill_global_led_trigger_worker+0x94/0xb0
                             process_one_work+0x240/0x560
                             worker_thread+0x58/0x3d0
                             kthread+0x151/0x170
                             ret_from_fork+0x1f/0x30
           IN-SOFTIRQ-R at:
                             lock_acquire+0x15f/0x420
                             _raw_read_lock+0x42/0x90
                             led_trigger_event+0x2b/0x70
                             kbd_bh+0x9e/0xc0
                             tasklet_action_common.constprop.0+0xe9/0x100
                             tasklet_action+0x22/0x30
                             __do_softirq+0xcc/0x46d
                             run_ksoftirqd+0x3f/0x70
                             smpboot_thread_fn+0x116/0x1f0
                             kthread+0x151/0x170
                             ret_from_fork+0x1f/0x30
           SOFTIRQ-ON-R at:
                             lock_acquire+0x15f/0x420
                             _raw_read_lock+0x42/0x90
                             led_trigger_event+0x2b/0x70
                             rfkill_global_led_trigger_worker+0x94/0xb0
                             process_one_work+0x240/0x560
                             worker_thread+0x58/0x3d0
                             kthread+0x151/0x170
                             ret_from_fork+0x1f/0x30
           INITIAL READ USE at:
                                 lock_acquire+0x15f/0x420
                                 _raw_read_lock+0x42/0x90
                                 led_trigger_event+0x2b/0x70
                                 rfkill_global_led_trigger_worker+0x94/0xb0
                                 process_one_work+0x240/0x560
                                 worker_thread+0x58/0x3d0
                                 kthread+0x151/0x170
                                 ret_from_fork+0x1f/0x30
         }
         ... key      at: [<ffffffff83da4c00>] __key.0+0x0/0x10
         ... acquired at:
          _raw_read_lock+0x42/0x90
          led_trigger_blink_oneshot+0x3b/0x90
          ledtrig_disk_activity+0x3c/0xa0
          ata_qc_complete+0x26/0x450
          ata_do_link_abort+0xa3/0xe0
          ata_port_freeze+0x2e/0x40
          ata_hsm_qc_complete+0x94/0xa0
          ata_sff_hsm_move+0x177/0x7a0
          ata_sff_pio_task+0xc7/0x1b0
          process_one_work+0x240/0x560
          worker_thread+0x58/0x3d0
          kthread+0x151/0x170
          ret_from_fork+0x1f/0x30
      
       -> (&host->lock){-...}-{2:2} ops: 69 {
          IN-HARDIRQ-W at:
                           lock_acquire+0x15f/0x420
                           _raw_spin_lock_irqsave+0x52/0xa0
                           ata_bmdma_interrupt+0x27/0x200
                           __handle_irq_event_percpu+0xd5/0x2b0
                           handle_irq_event+0x57/0xb0
                           handle_edge_irq+0x8c/0x230
                           asm_call_irq_on_stack+0xf/0x20
                           common_interrupt+0x100/0x1c0
                           asm_common_interrupt+0x1e/0x40
                           native_safe_halt+0xe/0x10
                           arch_cpu_idle+0x15/0x20
                           default_idle_call+0x59/0x1c0
                           do_idle+0x22c/0x2c0
                           cpu_startup_entry+0x20/0x30
                           start_secondary+0x11d/0x150
                           secondary_startup_64_no_verify+0xa6/0xab
          INITIAL USE at:
                          lock_acquire+0x15f/0x420
                          _raw_spin_lock_irqsave+0x52/0xa0
                          ata_dev_init+0x54/0xe0
                          ata_link_init+0x8b/0xd0
                          ata_port_alloc+0x1f1/0x210
                          ata_host_alloc+0xf1/0x130
                          ata_host_alloc_pinfo+0x14/0xb0
                          ata_pci_sff_prepare_host+0x41/0xa0
                          ata_pci_bmdma_prepare_host+0x14/0x30
                          piix_init_one+0x21f/0x600
                          local_pci_probe+0x48/0x80
                          pci_device_probe+0x105/0x1c0
                          really_probe+0x221/0x490
                          driver_probe_device+0xe9/0x160
                          device_driver_attach+0xb2/0xc0
                          __driver_attach+0x91/0x150
                          bus_for_each_dev+0x81/0xc0
                          driver_attach+0x1e/0x20
                          bus_add_driver+0x138/0x1f0
                          driver_register+0x91/0xf0
                          __pci_register_driver+0x73/0x80
                          piix_init+0x1e/0x2e
                          do_one_initcall+0x5f/0x2d0
                          kernel_init_freeable+0x26f/0x2cf
                          kernel_init+0xe/0x113
                          ret_from_fork+0x1f/0x30
        }
        ... key      at: [<ffffffff83d9fdc0>] __key.6+0x0/0x10
        ... acquired at:
          __lock_acquire+0x9da/0x2370
          lock_acquire+0x15f/0x420
          _raw_spin_lock_irqsave+0x52/0xa0
          ata_bmdma_interrupt+0x27/0x200
          __handle_irq_event_percpu+0xd5/0x2b0
          handle_irq_event+0x57/0xb0
          handle_edge_irq+0x8c/0x230
          asm_call_irq_on_stack+0xf/0x20
          common_interrupt+0x100/0x1c0
          asm_common_interrupt+0x1e/0x40
          native_safe_halt+0xe/0x10
          arch_cpu_idle+0x15/0x20
          default_idle_call+0x59/0x1c0
          do_idle+0x22c/0x2c0
          cpu_startup_entry+0x20/0x30
          start_secondary+0x11d/0x150
          secondary_startup_64_no_verify+0xa6/0xab
      
      This lockdep splat is reported after:
      commit e9181886 ("locking: More accurate annotations for read_lock()")
      
      To clarify:
       - read-locks are recursive only in interrupt context (when
         in_interrupt() returns true)
       - after acquiring host->lock in CPU1, another cpu (i.e. CPU2) may call
         write_lock(&trig->leddev_list_lock) that would be blocked by CPU0
         that holds trig->leddev_list_lock in read-mode
       - when CPU1 (ata_ac_complete()) tries to read-lock
         trig->leddev_list_lock, it would be blocked by the write-lock waiter
         on CPU2 (because we are not in interrupt context, so the read-lock is
         not recursive)
       - at this point if an interrupt happens on CPU0 and
         ata_bmdma_interrupt() is executed it will try to acquire host->lock,
         that is held by CPU1, that is currently blocked by CPU2, so:
      
         * CPU0 blocked by CPU1
         * CPU1 blocked by CPU2
         * CPU2 blocked by CPU0
      
           *** DEADLOCK ***
      
      The deadlock scenario is better represented by the following schema
      (thanks to Boqun Feng <boqun.feng@gmail.com> for the schema and the
      detailed explanation of the deadlock condition):
      
       CPU 0:                          CPU 1:                        CPU 2:
       -----                           -----                         -----
       led_trigger_event():
         read_lock(&trig->leddev_list_lock);
       				<workqueue>
       				ata_hsm_qc_complete():
       				  spin_lock_irqsave(&host->lock);
       								write_lock(&trig->leddev_list_lock);
       				  ata_port_freeze():
       				    ata_do_link_abort():
       				      ata_qc_complete():
       					ledtrig_disk_activity():
       					  led_trigger_blink_oneshot():
       					    read_lock(&trig->leddev_list_lock);
       					    // ^ not in in_interrupt() context, so could get blocked by CPU 2
       <interrupt>
         ata_bmdma_interrupt():
           spin_lock_irqsave(&host->lock);
      
      Fix by using read_lock_irqsave/irqrestore() in led_trigger_event(), so
      that no interrupt can happen in between, preventing the deadlock
      condition.
      
      Apply the same change to led_trigger_blink_setup() as well, since the
      same deadlock scenario can also happen in power_supply_update_bat_leds()
      -> led_trigger_blink() -> led_trigger_blink_setup() (workqueue context),
      and potentially prevent other similar usages.
      
      Link: https://lore.kernel.org/lkml/20201101092614.GB3989@xps-13-7390/
      Fixes: eb25cb99
      
       ("leds: convert IDE trigger to common disk trigger")
      Signed-off-by: default avatarAndrea Righi <andrea.righi@canonical.com>
      Signed-off-by: default avatarPavel Machek <pavel@ucw.cz>
      27af8e2c
    • Zheng Yongjun's avatar
      leds: leds-ariel: convert comma to semicolon · 47854d2d
      Zheng Yongjun authored
      
      
      Replace a comma between expression statements by a semicolon.
      
      Signed-off-by: default avatarZheng Yongjun <zhengyongjun3@huawei.com>
      Reviewed-by: default avatarAlexander Dahl <ada@thorsis.com>
      Signed-off-by: default avatarPavel Machek <pavel@ucw.cz>
      47854d2d
    • Zheng Yongjun's avatar
      leds: leds-lm3533: convert comma to semicolon · 4e04b118
      Zheng Yongjun authored
      
      
      Replace a comma between expression statements by a semicolon.
      
      Signed-off-by: default avatarZheng Yongjun <zhengyongjun3@huawei.com>
      Signed-off-by: default avatarPavel Machek <pavel@ucw.cz>
      4e04b118
    • Linus Torvalds's avatar
      Merge tag '5.11-rc5-smb3' of git://git.samba.org/sfrench/cifs-2.6 · 6642d600
      Linus Torvalds authored
      Pull cifs fixes from Steve French:
       "Four cifs patches found in additional testing of the conversion to the
        new mount API: three small option processing ones, and one fixing domain
        based DFS referrals"
      
      * tag '5.11-rc5-smb3' of git://git.samba.org/sfrench/cifs-2.6:
        cifs: fix dfs domain referrals
        cifs: returning mount parm processing errors correctly
        cifs: fix mounts to subdirectories of target
        cifs: ignore auto and noauto options if given
      6642d600
    • Linus Torvalds's avatar
      Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · ad8b3c1e
      Linus Torvalds authored
      Pull SCSI fixes from James Bottomley:
       "Two minor fixes in drivers. Both changing strings (one in a comment,
        one in a module help text) with no code impact"
      
      * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        scsi: qla2xxx: Fix description for parameter ql2xenforce_iocb_limit
        scsi: target: iscsi: Fix typo in comment
      ad8b3c1e
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://github.com/openrisc/linux · 03e319e5
      Linus Torvalds authored
      Pull OpenRISC fix from Stafford Horne:
       "Fix config dependencies for Litex SOC driver causing issues on um"
      
      * tag 'for-linus' of git://github.com/openrisc/linux:
        soc: litex: Properly depend on HAS_IOMEM
      03e319e5
    • Linus Torvalds's avatar
      Merge tag 'devicetree-fixes-for-5.11-2' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux · 8c947645
      Linus Torvalds authored
      Pull devicetree fixes from Rob Herring:
      
       - Cleanups on properties with standard unit suffixes
      
       - Fix overwriting dma_range_map if there's no 'dma-ranges' property
      
       - Fix a bug when creating a /chosen node from ARM ATAGs
      
       - Add missing properties for TI j721e USB binding
      
       - Several doc reference updates due to DT schema conversions
      
      * tag 'devicetree-fixes-for-5.11-2' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux:
        dt-bindings: Cleanup standard unit properties
        of/device: Update dma_range_map only when dev has valid dma-ranges
        ARM: zImage: atags_to_fdt: Fix node names on added root nodes
        dt-bindings: usb: j721e: add ranges and dma-coherent props
        dt-bindings:iio:adc: update adc.yaml reference
        dt-bindings: memory: mediatek: update mediatek,smi-larb.yaml references
        dt-bindings: display: mediatek: update mediatek,dpi.yaml reference
        ASoC: audio-graph-card: update audio-graph-card.yaml reference
      8c947645
    • Linus Torvalds's avatar
      Merge tag 's390-5.11-4' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · 3bf25531
      Linus Torvalds authored
      Pull s390 fixes from Vasily Gorbik:
      
       - Fix max number of VCPUs reported via ultravisor information sysfs
         interface.
      
       - Fix memory leaks during vfio-ap resources clean up on KVM pointer
         invalidation notification.
      
       - Fix potential specification exception by avoiding unnecessary
         interrupts disable after queue reset in vfio-ap.
      
      * tag 's390-5.11-4' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
        s390: uv: Fix sysfs max number of VCPUs reporting
        s390/vfio-ap: No need to disable IRQ after queue reset
        s390/vfio-ap: clean up vfio_ap resources when KVM pointer invalidated
      3bf25531
    • Linus Torvalds's avatar
      Merge tag 'riscv-for-linus-5.11-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux · e37c0fba
      Linus Torvalds authored
      Pull RISC-V fix from Palmer Dabbelt:
       "A fix to avoid initializing max_mapnr to be too large, which may
        manifest on NUMA systems"
      
      * tag 'riscv-for-linus-5.11-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux:
        riscv: Fixup pfn_valid error with wrong max_mapnr
      e37c0fba
  3. Jan 30, 2021
    • Rob Herring's avatar
      dt-bindings: Cleanup standard unit properties · 32ada6b0
      Rob Herring authored
      
      
      Properties with standard unit suffixes already have a type and don't need
      type definitions. They also default to a single entry, so 'maxItems: 1'
      can be dropped.
      
      adi,ad5758 is an oddball which defined an enum of arrays. While a valid
      schema, it is simpler as a whole to only define scalar constraints.
      
      Cc: Jean Delvare <jdelvare@suse.com>
      Cc: Lars-Peter Clausen <lars@metafoo.de>
      Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
      Cc: Ulf Hansson <ulf.hansson@linaro.org>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Jakub Kicinski <kuba@kernel.org>
      Cc: Serge Semin <fancer.lancer@gmail.com>
      Cc: linux-hwmon@vger.kernel.org
      Cc: linux-i2c@vger.kernel.org
      Cc: linux-iio@vger.kernel.org
      Cc: linux-arm-kernel@lists.infradead.org
      Cc: linux-input@vger.kernel.org
      Cc: linux-mmc@vger.kernel.org
      Cc: netdev@vger.kernel.org
      Cc: linux-pm@vger.kernel.org
      Cc: linux-rtc@vger.kernel.org
      Cc: linux-serial@vger.kernel.org
      Cc: alsa-devel@alsa-project.org
      Cc: linux-watchdog@vger.kernel.org
      Signed-off-by: default avatarRob Herring <robh@kernel.org>
      Acked-by: default avatarGuenter Roeck <linux@roeck-us.net>
      Acked-by: default avatarMark Brown <broonie@kernel.org>
      Acked-by: Wolfram Sang <wsa@kernel.org> # for I2C
      Acked-by: default avatarAlexandre Belloni <alexandre.belloni@bootlin.com>
      Acked-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Acked-by: Sebastian Reichel <sre@kernel.org> # for power-supply
      Acked-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> #for-iio
      Acked-by: default avatarAlexandre TORGUE <alexandre.torgue@foss.st.com>
      Link: https://lore.kernel.org/r/20210128194515.743252-1-robh@kernel.org
      32ada6b0
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 0e9bcda5
      Linus Torvalds authored
      Pull arm64 fixes from Catalin Marinas:
      
       - Fix the virt_addr_valid() returning true for < PAGE_OFFSET addresses.
      
       - Do not blindly trust the DMA masks from ACPI/IORT.
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        ACPI/IORT: Do not blindly trust DMA masks from firmware
        arm64: Fix kernel address detection of __is_lm_address()
      0e9bcda5
    • Linus Torvalds's avatar
      Merge tag 'for-5.11-rc5-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux · c05d51c7
      Linus Torvalds authored
      Pull btrfs fixes from David Sterba:
       "A few more fixes for a late rc:
      
         - fix lockdep complaint on 32bit arches and also remove an unsafe
           memory use due to device vs filesystem lifetime
      
         - two fixes for free space tree:
      
            * race during log replay and cache rebuild, now more likely to
              happen due to changes in this dev cycle
      
            * possible free space tree corruption with online conversion
              during initial tree population"
      
      * tag 'for-5.11-rc5-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux:
        btrfs: fix log replay failure due to race with space cache rebuild
        btrfs: fix lockdep warning due to seqcount_mutex on 32bit arch
        btrfs: fix possible free space tree corruption with online conversion
      c05d51c7
    • Linus Torvalds's avatar
      Merge tag 'block-5.11-2021-01-29' of git://git.kernel.dk/linux-block · 2ba1c4d1
      Linus Torvalds authored
      Pull block fixes from Jens Axboe:
       "All over the place fixes for this release:
      
         - blk-cgroup iteration teardown resched fix (Baolin)
      
         - NVMe pull request from Christoph:
              - add another Write Zeroes quirk (Chaitanya Kulkarni)
              - handle a no path available corner case (Daniel Wagner)
              - use the proper RCU aware list_add helper (Chao Leng)
      
         - bcache regression fix (Coly)
      
         - bdev->bd_size_lock IRQ fix. This will be fixed in drivers for 5.12,
           but for now, we'll make it IRQ safe (Damien)
      
         - null_blk zoned init fix (Damien)
      
         - add_partition() error handling fix (Dinghao)
      
         - s390 dasd kobject fix (Jan)
      
         - nbd fix for freezing queue while adding connections (Josef)
      
         - tag queueing regression fix (Ming)
      
         - revert of a patch that inadvertently meant that we regressed write
           performance on raid (Maxim)"
      
      * tag 'block-5.11-2021-01-29' of git://git.kernel.dk/linux-block:
        null_blk: cleanup zoned mode initialization
        nvme-core: use list_add_tail_rcu instead of list_add_tail for nvme_init_ns_head
        nvme-multipath: Early exit if no path is available
        nvme-pci: add the DISABLE_WRITE_ZEROES quirk for a SPCC device
        bcache: only check feature sets when sb->version >= BCACHE_SB_VERSION_CDEV_WITH_FEATURES
        block: fix bd_size_lock use
        blk-cgroup: Use cond_resched() when destroy blkgs
        Revert "block: simplify set_init_blocksize" to regain lost performance
        nbd: freeze the queue while we're adding connections
        s390/dasd: Fix inconsistent kobject removal
        block: Fix an error handling in add_partition
        blk-mq: test QUEUE_FLAG_HCTX_ACTIVE for sbitmap_shared in hctx_may_queue
      2ba1c4d1
    • Linus Torvalds's avatar
      Merge tag 'io_uring-5.11-2021-01-29' of git://git.kernel.dk/linux-block · c0ec4ffc
      Linus Torvalds authored
      Pull io_uring fixes from Jens Axboe:
       "We got the cancelation story sorted now, so for all intents and
        purposes, this should be it for 5.11 outside of any potential little
        fixes that may come in. This contains:
      
         - task_work task state fixes (Hao, Pavel)
      
         - Cancelation fixes (me, Pavel)
      
         - Fix for an inflight req patch in this release (Pavel)
      
         - Fix for a lock deadlock issue (Pavel)"
      
      * tag 'io_uring-5.11-2021-01-29' of git://git.kernel.dk/linux-block:
        io_uring: reinforce cancel on flush during exit
        io_uring: fix sqo ownership false positive warning
        io_uring: fix list corruption for splice file_get
        io_uring: fix flush cqring overflow list while TASK_INTERRUPTIBLE
        io_uring: fix wqe->lock/completion_lock deadlock
        io_uring: fix cancellation taking mutex while TASK_UNINTERRUPTIBLE
        io_uring: fix __io_uring_files_cancel() with TASK_UNINTERRUPTIBLE
        io_uring: only call io_cqring_ev_posted() if events were posted
        io_uring: if we see flush on exit, cancel related tasks
      c0ec4ffc
    • David Gow's avatar
      soc: litex: Properly depend on HAS_IOMEM · 1bea2a93
      David Gow authored
      The LiteX SOC controller driver makes use of IOMEM functions like
      devm_platform_ioremap_resource(), which are only available if
      CONFIG_HAS_IOMEM is defined.
      
      This causes the driver to be enable under make ARCH=um allyesconfig,
      even though it won't build.
      
      By adding a dependency on HAS_IOMEM, the driver will not be enabled on
      architectures which don't support it.
      
      Fixes: 22447a99
      
       ("drivers/soc/litex: add LiteX SoC Controller driver")
      Signed-off-by: default avatarDavid Gow <davidgow@google.com>
      [shorne@gmail.com: Fix typo in commit message pointed out in review]
      Signed-off-by: default avatarStafford Horne <shorne@gmail.com>
      1bea2a93
    • Linus Torvalds's avatar
      Merge tag 'iommu-fixes-v5.11-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu · 8ef24c20
      Linus Torvalds authored
      Pull iommu fixes from Joerg Roedel:
      
       - AMD IOMMU fix to make sure features are detected before they are
         queried.
      
       - Intel IOMMU address alignment check fix for an IOLTB flushing
         command.
      
       - Performance fix for Intel IOMMU to make sure the code does not do
         full IOTLB flushes all the time. Those flushes are very expensive
         on emulated IOMMUs.
      
      * tag 'iommu-fixes-v5.11-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu:
        iommu/vt-d: Do not use flush-queue when caching-mode is on
        iommu/vt-d: Correctly check addr alignment in qi_flush_dev_iotlb_pasid()
        iommu/amd: Use IVHD EFR for early initialization of IOMMU features
      8ef24c20