2021-01-05 09:14:03 -06:00
|
|
|
From e5e77ad2223f662e1615266d8ef39a8db7e65a70 Mon Sep 17 00:00:00 2001
|
|
|
|
From: =?UTF-8?q?Felix=20H=C3=A4dicke?= <felixhaedicke@web.de>
|
|
|
|
Date: Thu, 19 Nov 2020 09:22:32 +0100
|
|
|
|
Subject: HID: quirks: Add Apple Magic Trackpad 2 to hid_have_special_driver
|
|
|
|
list
|
|
|
|
MIME-Version: 1.0
|
|
|
|
Content-Type: text/plain; charset=UTF-8
|
|
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
|
|
|
|
The Apple Magic Trackpad 2 is handled by the magicmouse driver. And
|
|
|
|
there were severe stability issues when both drivers (hid-generic and
|
|
|
|
hid-magicmouse) were loaded for this device.
|
|
|
|
|
|
|
|
Fixes: https://bugzilla.kernel.org/show_bug.cgi?id=210241
|
|
|
|
|
|
|
|
Signed-off-by: Felix Hädicke <felixhaedicke@web.de>
|
|
|
|
---
|
|
|
|
drivers/hid/hid-quirks.c | 2 ++
|
|
|
|
1 file changed, 2 insertions(+)
|
|
|
|
|
|
|
|
diff --git a/drivers/hid/hid-quirks.c b/drivers/hid/hid-quirks.c
|
|
|
|
index bf7ecab5d9e5..142e9dae2837 100644
|
|
|
|
--- a/drivers/hid/hid-quirks.c
|
|
|
|
+++ b/drivers/hid/hid-quirks.c
|
|
|
|
@@ -478,6 +478,8 @@ static const struct hid_device_id hid_have_special_driver[] = {
|
|
|
|
#if IS_ENABLED(CONFIG_HID_MAGICMOUSE)
|
|
|
|
{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGICMOUSE) },
|
|
|
|
{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGICTRACKPAD) },
|
|
|
|
+ { HID_BLUETOOTH_DEVICE(BT_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGICTRACKPAD2) },
|
|
|
|
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGICTRACKPAD2) },
|
|
|
|
#endif
|
|
|
|
#if IS_ENABLED(CONFIG_HID_MAYFLASH)
|
|
|
|
{ HID_USB_DEVICE(USB_VENDOR_ID_DRAGONRISE, USB_DEVICE_ID_DRAGONRISE_PS3) },
|
|
|
|
--
|
|
|
|
cgit v1.2.3-1-gf6bb5
|
|
|
|
|
|
|
|
From 0128c7314a4d856461caacfdd528a7bffa03d41e Mon Sep 17 00:00:00 2001
|
|
|
|
From: Josef Bacik <josef@toxicpanda.com>
|
|
|
|
Date: Wed, 23 Dec 2020 14:41:00 -0500
|
|
|
|
Subject: btrfs: Fix 500-2000% performance regression w/ 5.10
|
|
|
|
|
|
|
|
Josef's tentative fix from
|
|
|
|
https://lore.kernel.org/linux-btrfs/0382080a1836a12c2d625f8a5bf899828eba204b.1608752315.git.josef@toxicpanda.com/
|
|
|
|
|
|
|
|
With the conflict fix mentioned in the reply.
|
|
|
|
|
|
|
|
For https://bugs.archlinux.org/task/69077
|
|
|
|
---
|
|
|
|
fs/btrfs/space-info.c | 25 ++++++++++++++++++++++++-
|
|
|
|
1 file changed, 24 insertions(+), 1 deletion(-)
|
|
|
|
|
|
|
|
diff --git a/fs/btrfs/space-info.c b/fs/btrfs/space-info.c
|
|
|
|
index 64099565ab8f..8a1ce11b6ed8 100644
|
|
|
|
--- a/fs/btrfs/space-info.c
|
|
|
|
+++ b/fs/btrfs/space-info.c
|
|
|
|
@@ -480,6 +480,28 @@ static inline u64 calc_reclaim_items_nr(struct btrfs_fs_info *fs_info,
|
|
|
|
|
|
|
|
#define EXTENT_SIZE_PER_ITEM SZ_256K
|
|
|
|
|
|
|
|
+static void btrfs_writeback_inodes_sb_nr(struct btrfs_fs_info *fs_info,
|
|
|
|
+ unsigned long nr_pages, u64 nr_items)
|
|
|
|
+{
|
|
|
|
+ struct super_block *sb = fs_info->sb;
|
|
|
|
+
|
|
|
|
+ if (down_read_trylock(&sb->s_umount)) {
|
|
|
|
+ writeback_inodes_sb_nr(sb, nr_pages, WB_REASON_FS_FREE_SPACE);
|
|
|
|
+ up_read(&sb->s_umount);
|
|
|
|
+ } else {
|
|
|
|
+ /*
|
|
|
|
+ * We needn't worry the filesystem going from r/w to r/o though
|
|
|
|
+ * we don't acquire ->s_umount mutex, because the filesystem
|
|
|
|
+ * should guarantee the delalloc inodes list be empty after
|
|
|
|
+ * the filesystem is readonly(all dirty pages are written to
|
|
|
|
+ * the disk).
|
|
|
|
+ */
|
|
|
|
+ btrfs_start_delalloc_roots(fs_info, nr_items);
|
|
|
|
+ if (!current->journal_info)
|
|
|
|
+ btrfs_wait_ordered_roots(fs_info, nr_items, 0, (u64)-1);
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
/*
|
|
|
|
* shrink metadata reservation for delalloc
|
|
|
|
*/
|
|
|
|
@@ -532,7 +554,8 @@ static void shrink_delalloc(struct btrfs_fs_info *fs_info,
|
|
|
|
|
|
|
|
loops = 0;
|
|
|
|
while ((delalloc_bytes || dio_bytes) && loops < 3) {
|
|
|
|
- btrfs_start_delalloc_roots(fs_info, items);
|
|
|
|
+ unsigned long nr_pages = min(delalloc_bytes, to_reclaim) >> PAGE_SHIFT;
|
|
|
|
+ btrfs_writeback_inodes_sb_nr(fs_info, nr_pages, items);
|
|
|
|
|
|
|
|
loops++;
|
|
|
|
if (wait_ordered && !trans) {
|
|
|
|
--
|
|
|
|
cgit v1.2.3-1-gf6bb5
|
|
|
|
|
|
|
|
From 61e5f6548784e507eb0662a71976a673436e6e3a Mon Sep 17 00:00:00 2001
|
|
|
|
From: Eric Dumazet <edumazet@google.com>
|
|
|
|
Date: Mon, 21 Dec 2020 20:14:02 +0100
|
|
|
|
Subject: iwlwifi: Fix regression from UDP segmentation support
|
|
|
|
|
|
|
|
Eric's tentative fix from
|
|
|
|
https://lore.kernel.org/linux-wireless/CANn89iJWG2n1s3j7EdpwkQQv-9dOY02V+FGYHAWguO4JiqWuJA@mail.gmail.com/
|
|
|
|
---
|
|
|
|
drivers/net/wireless/intel/iwlwifi/mvm/tx.c | 2 ++
|
|
|
|
1 file changed, 2 insertions(+)
|
|
|
|
|
|
|
|
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/tx.c b/drivers/net/wireless/intel/iwlwifi/mvm/tx.c
|
|
|
|
index fe1c538cd718..c27743a58f81 100644
|
|
|
|
--- a/drivers/net/wireless/intel/iwlwifi/mvm/tx.c
|
|
|
|
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/tx.c
|
|
|
|
@@ -833,6 +833,7 @@ iwl_mvm_tx_tso_segment(struct sk_buff *skb, unsigned int num_subframes,
|
|
|
|
|
|
|
|
next = skb_gso_segment(skb, netdev_flags);
|
|
|
|
skb_shinfo(skb)->gso_size = mss;
|
|
|
|
+ skb_shinfo(skb)->gso_type = ipv4 ? SKB_GSO_TCPV4 : SKB_GSO_TCPV6;
|
|
|
|
if (WARN_ON_ONCE(IS_ERR(next)))
|
|
|
|
return -EINVAL;
|
|
|
|
else if (next)
|
|
|
|
@@ -855,6 +856,7 @@ iwl_mvm_tx_tso_segment(struct sk_buff *skb, unsigned int num_subframes,
|
|
|
|
|
|
|
|
if (tcp_payload_len > mss) {
|
|
|
|
skb_shinfo(tmp)->gso_size = mss;
|
|
|
|
+ skb_shinfo(tmp)->gso_type = ipv4 ? SKB_GSO_TCPV4 : SKB_GSO_TCPV6;
|
|
|
|
} else {
|
|
|
|
if (qos) {
|
|
|
|
u8 *qc;
|
|
|
|
--
|
|
|
|
cgit v1.2.3-1-gf6bb5
|
|
|
|
|
2021-01-08 09:27:57 -06:00
|
|
|
From e437ac931e89629f952ce9f3f9dfe45ac505cd0d Mon Sep 17 00:00:00 2001
|
|
|
|
From: Joshua Ashton <joshua@froggi.es>
|
|
|
|
Date: Tue, 5 Jan 2021 19:46:01 +0000
|
|
|
|
Subject: [PATCH] drm/amdgpu: don't limit gtt size on apus
|
|
|
|
|
|
|
|
Since commit 24562523688b ("Revert "drm/amd/amdgpu: set gtt size
|
|
|
|
according to system memory size only""), the GTT size was limited by
|
|
|
|
3GiB or VRAM size.
|
|
|
|
|
|
|
|
This is problematic on APU systems with a small carveout
|
|
|
|
(notably, those that ship with dGPUs where this is unconfigurable),
|
|
|
|
where the carveout size can be as low as 128MiB.
|
|
|
|
|
|
|
|
This makes it so the GTT size heuristic always uses 3/4ths of
|
|
|
|
the system memory size on APUs (limiting the size by 3GiB/VRAM size
|
|
|
|
only on devices with dedicated video memory).
|
|
|
|
|
|
|
|
Fixes: 24562523688b ("Revert drm/amd/amdgpu: set gtt size according to
|
|
|
|
system memory size only")
|
|
|
|
|
|
|
|
Signed-off-by: Joshua Ashton <joshua@froggi.es>
|
|
|
|
---
|
|
|
|
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 5 +++--
|
|
|
|
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 12 +++++++++---
|
|
|
|
2 files changed, 12 insertions(+), 5 deletions(-)
|
|
|
|
|
|
|
|
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
|
|
|
|
index 72efd579ec5e..a5a41e9272d6 100644
|
|
|
|
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
|
|
|
|
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
|
|
|
|
@@ -192,8 +192,9 @@ module_param_named(gartsize, amdgpu_gart_size, uint, 0600);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* DOC: gttsize (int)
|
|
|
|
- * Restrict the size of GTT domain in MiB for testing. The default is -1 (It's VRAM size if 3GB < VRAM < 3/4 RAM,
|
|
|
|
- * otherwise 3/4 RAM size).
|
|
|
|
+ * Restrict the size of GTT domain in MiB for testing. The default is -1 (On APUs this is 3/4th
|
|
|
|
+ * of the system memory; on dGPUs this is 3GiB or VRAM sized, whichever is bigger,
|
|
|
|
+ * with an upper bound of 3/4th of system memory.
|
|
|
|
*/
|
|
|
|
MODULE_PARM_DESC(gttsize, "Size of the GTT domain in megabytes (-1 = auto)");
|
|
|
|
module_param_named(gttsize, amdgpu_gtt_size, int, 0600);
|
|
|
|
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
|
|
|
|
index 4d8f19ab1014..294f26f4f310 100644
|
|
|
|
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
|
|
|
|
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
|
|
|
|
@@ -1865,9 +1865,15 @@ int amdgpu_ttm_init(struct amdgpu_device *adev)
|
|
|
|
struct sysinfo si;
|
|
|
|
|
|
|
|
si_meminfo(&si);
|
|
|
|
- gtt_size = min(max((AMDGPU_DEFAULT_GTT_SIZE_MB << 20),
|
|
|
|
- adev->gmc.mc_vram_size),
|
|
|
|
- ((uint64_t)si.totalram * si.mem_unit * 3/4));
|
|
|
|
+ gtt_size = (uint64_t)si.totalram * si.mem_unit * 3/4;
|
|
|
|
+ /* If we have dedicated memory, limit our GTT size to
|
|
|
|
+ * 3GiB or VRAM size, whichever is bigger
|
|
|
|
+ */
|
|
|
|
+ if (!(adev->flags & AMD_IS_APU)) {
|
|
|
|
+ gtt_size = min(max(AMDGPU_DEFAULT_GTT_SIZE_MB << 20,
|
|
|
|
+ adev->gmc.mc_vram_size),
|
|
|
|
+ gtt_size);
|
|
|
|
+ }
|
|
|
|
}
|
|
|
|
else
|
|
|
|
gtt_size = (uint64_t)amdgpu_gtt_size << 20;
|
|
|
|
--
|
|
|
|
2.30.0
|