From e40e5bbef9f112f202aee9f684803aba32dbb3e5 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Mon, 18 Jul 2022 17:38:22 +0200 Subject: [PATCH] 5.15-stable patches added patches: tty-serial-samsung_tty-set-dma-burst_size-to-1.patch usb-dwc3-gadget-fix-event-pending-check.patch usb-serial-ftdi_sio-add-belimo-device-ids.patch usb-typec-add-missing-uevent-when-partner-support-pd.patch --- ...the-headset-mic-on-a-xiaomi-s-laptop.patch | 2 +- ...problem-for-a-hp-machine-with-alc671.patch | 2 +- ...-add-quirk-for-fiero-sc-01-fw-v1.0.0.patch | 2 +- ...-usb-audio-add-quirk-for-fiero-sc-01.patch | 2 +- ...dd-quirks-for-macrosilicon-ms2100-ms.patch | 2 +- ...0-rt711-rt711-sdca-initialize-workqu.patch | 12 ++-- ...1-fix-calibrate-mutex-initialization.patch | 4 +- ...sdw-fix-calibrate-mutex-initializati.patch | 4 +- ...rename-btrfs_bio-to-btrfs_io_context.patch | 62 +++++++++---------- ...tes-on-compressed-and-inline-extents.patch | 2 +- ...sfb-device-registration-when-removin.patch | 2 +- ...les-replace-bug_on-by-element-length.patch | 22 +++---- queue-5.15/series | 4 ++ ...-samsung_tty-set-dma-burst_size-to-1.patch | 45 ++++++++++++++ ...-dwc3-gadget-fix-event-pending-check.patch | 51 +++++++++++++++ ...erial-ftdi_sio-add-belimo-device-ids.patch | 47 ++++++++++++++ ...ssing-uevent-when-partner-support-pd.patch | 37 +++++++++++ 17 files changed, 243 insertions(+), 59 deletions(-) create mode 100644 queue-5.15/tty-serial-samsung_tty-set-dma-burst_size-to-1.patch create mode 100644 queue-5.15/usb-dwc3-gadget-fix-event-pending-check.patch create mode 100644 queue-5.15/usb-serial-ftdi_sio-add-belimo-device-ids.patch create mode 100644 queue-5.15/usb-typec-add-missing-uevent-when-partner-support-pd.patch diff --git a/queue-5.15/alsa-hda-realtek-enable-the-headset-mic-on-a-xiaomi-s-laptop.patch b/queue-5.15/alsa-hda-realtek-enable-the-headset-mic-on-a-xiaomi-s-laptop.patch index 6b3fe8562cd..e3c36869c90 100644 --- a/queue-5.15/alsa-hda-realtek-enable-the-headset-mic-on-a-xiaomi-s-laptop.patch +++ b/queue-5.15/alsa-hda-realtek-enable-the-headset-mic-on-a-xiaomi-s-laptop.patch @@ -21,7 +21,7 @@ Signed-off-by: Greg Kroah-Hartman --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c -@@ -9157,6 +9157,7 @@ static const struct snd_pci_quirk alc269 +@@ -9158,6 +9158,7 @@ static const struct snd_pci_quirk alc269 SND_PCI_QUIRK(0x1d72, 0x1602, "RedmiBook", ALC255_FIXUP_XIAOMI_HEADSET_MIC), SND_PCI_QUIRK(0x1d72, 0x1701, "XiaomiNotebook Pro", ALC298_FIXUP_DELL1_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1d72, 0x1901, "RedmiBook 14", ALC256_FIXUP_ASUS_HEADSET_MIC), diff --git a/queue-5.15/alsa-hda-realtek-fix-headset-mic-problem-for-a-hp-machine-with-alc671.patch b/queue-5.15/alsa-hda-realtek-fix-headset-mic-problem-for-a-hp-machine-with-alc671.patch index 6a55af3b2d0..ff06ceb39e3 100644 --- a/queue-5.15/alsa-hda-realtek-fix-headset-mic-problem-for-a-hp-machine-with-alc671.patch +++ b/queue-5.15/alsa-hda-realtek-fix-headset-mic-problem-for-a-hp-machine-with-alc671.patch @@ -22,7 +22,7 @@ Signed-off-by: Greg Kroah-Hartman --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c -@@ -11002,6 +11002,7 @@ static const struct snd_pci_quirk alc662 +@@ -11003,6 +11003,7 @@ static const struct snd_pci_quirk alc662 SND_PCI_QUIRK(0x103c, 0x1632, "HP RP5800", ALC662_FIXUP_HP_RP5800), SND_PCI_QUIRK(0x103c, 0x8719, "HP", ALC897_FIXUP_HP_HSMIC_VERB), SND_PCI_QUIRK(0x103c, 0x873e, "HP", ALC671_FIXUP_HP_HEADSET_MIC2), diff --git a/queue-5.15/alsa-usb-audio-add-quirk-for-fiero-sc-01-fw-v1.0.0.patch b/queue-5.15/alsa-usb-audio-add-quirk-for-fiero-sc-01-fw-v1.0.0.patch index b5a529ff467..231bbfc94b1 100644 --- a/queue-5.15/alsa-usb-audio-add-quirk-for-fiero-sc-01-fw-v1.0.0.patch +++ b/queue-5.15/alsa-usb-audio-add-quirk-for-fiero-sc-01-fw-v1.0.0.patch @@ -167,7 +167,7 @@ Signed-off-by: Sasha Levin USB_DEVICE(0x2b53, 0x0031), --- a/sound/usb/quirks.c +++ b/sound/usb/quirks.c -@@ -1911,6 +1911,10 @@ static const struct usb_audio_quirk_flag +@@ -1915,6 +1915,10 @@ static const struct usb_audio_quirk_flag QUIRK_FLAG_ALIGN_TRANSFER), DEVICE_FLG(0x1224, 0x2a25, /* Jieli Technology USB PHY 2.0 */ QUIRK_FLAG_GET_SAMPLE_RATE), diff --git a/queue-5.15/alsa-usb-audio-add-quirk-for-fiero-sc-01.patch b/queue-5.15/alsa-usb-audio-add-quirk-for-fiero-sc-01.patch index 8b8bd708856..dcc86435e7c 100644 --- a/queue-5.15/alsa-usb-audio-add-quirk-for-fiero-sc-01.patch +++ b/queue-5.15/alsa-usb-audio-add-quirk-for-fiero-sc-01.patch @@ -124,7 +124,7 @@ Signed-off-by: Sasha Levin #undef USB_AUDIO_DEVICE --- a/sound/usb/quirks.c +++ b/sound/usb/quirks.c -@@ -1911,6 +1911,8 @@ static const struct usb_audio_quirk_flag +@@ -1915,6 +1915,8 @@ static const struct usb_audio_quirk_flag QUIRK_FLAG_ALIGN_TRANSFER), DEVICE_FLG(0x1224, 0x2a25, /* Jieli Technology USB PHY 2.0 */ QUIRK_FLAG_GET_SAMPLE_RATE), diff --git a/queue-5.15/alsa-usb-audio-add-quirks-for-macrosilicon-ms2100-ms.patch b/queue-5.15/alsa-usb-audio-add-quirks-for-macrosilicon-ms2100-ms.patch index 5c8df5d3671..a88d20a373c 100644 --- a/queue-5.15/alsa-usb-audio-add-quirks-for-macrosilicon-ms2100-ms.patch +++ b/queue-5.15/alsa-usb-audio-add-quirks-for-macrosilicon-ms2100-ms.patch @@ -87,7 +87,7 @@ Signed-off-by: Sasha Levin case USB_ID(0x534d, 0x2109): /* MacroSilicon MS2109 */ subs->stream_offset_adj = 2; break; -@@ -1904,6 +1905,8 @@ static const struct usb_audio_quirk_flag +@@ -1908,6 +1909,8 @@ static const struct usb_audio_quirk_flag QUIRK_FLAG_IGNORE_CTL_ERROR), DEVICE_FLG(0x413c, 0xa506, /* Dell AE515 sound bar */ QUIRK_FLAG_GET_SAMPLE_RATE), diff --git a/queue-5.15/asoc-codecs-rt700-rt711-rt711-sdca-initialize-workqu.patch b/queue-5.15/asoc-codecs-rt700-rt711-rt711-sdca-initialize-workqu.patch index 60f3743283e..bd2be4d187c 100644 --- a/queue-5.15/asoc-codecs-rt700-rt711-rt711-sdca-initialize-workqu.patch +++ b/queue-5.15/asoc-codecs-rt700-rt711-rt711-sdca-initialize-workqu.patch @@ -29,7 +29,7 @@ Signed-off-by: Sasha Levin --- a/sound/soc/codecs/rt700.c +++ b/sound/soc/codecs/rt700.c -@@ -1114,6 +1114,11 @@ int rt700_init(struct device *dev, struc +@@ -1124,6 +1124,11 @@ int rt700_init(struct device *dev, struc mutex_init(&rt700->disable_irq_lock); @@ -41,7 +41,7 @@ Signed-off-by: Sasha Levin /* * Mark hw_init to false * HW init will be performed when device reports present -@@ -1208,13 +1213,6 @@ int rt700_io_init(struct device *dev, st +@@ -1218,13 +1223,6 @@ int rt700_io_init(struct device *dev, st /* Finish Initial Settings, set power to D3 */ regmap_write(rt700->regmap, RT700_SET_AUDIO_POWER_STATE, AC_PWRST_D3); @@ -57,7 +57,7 @@ Signed-off-by: Sasha Levin * we set up the jack detection function now --- a/sound/soc/codecs/rt711-sdca.c +++ b/sound/soc/codecs/rt711-sdca.c -@@ -1414,6 +1414,9 @@ int rt711_sdca_init(struct device *dev, +@@ -1417,6 +1417,9 @@ int rt711_sdca_init(struct device *dev, mutex_init(&rt711->calibrate_mutex); mutex_init(&rt711->disable_irq_lock); @@ -67,7 +67,7 @@ Signed-off-by: Sasha Levin /* * Mark hw_init to false * HW init will be performed when device reports present -@@ -1545,13 +1548,6 @@ int rt711_sdca_io_init(struct device *de +@@ -1548,13 +1551,6 @@ int rt711_sdca_io_init(struct device *de rt711_sdca_index_update_bits(rt711, RT711_VENDOR_HDA_CTL, RT711_PUSH_BTN_INT_CTL0, 0x20, 0x00); @@ -83,7 +83,7 @@ Signed-off-by: Sasha Levin if (ret < 0) --- a/sound/soc/codecs/rt711.c +++ b/sound/soc/codecs/rt711.c -@@ -1199,6 +1199,10 @@ int rt711_init(struct device *dev, struc +@@ -1202,6 +1202,10 @@ int rt711_init(struct device *dev, struc mutex_init(&rt711->calibrate_mutex); mutex_init(&rt711->disable_irq_lock); @@ -94,7 +94,7 @@ Signed-off-by: Sasha Levin /* * Mark hw_init to false * HW init will be performed when device reports present -@@ -1306,14 +1310,8 @@ int rt711_io_init(struct device *dev, st +@@ -1309,14 +1313,8 @@ int rt711_io_init(struct device *dev, st if (rt711->first_hw_init) rt711_calibration(rt711); diff --git a/queue-5.15/asoc-rt711-fix-calibrate-mutex-initialization.patch b/queue-5.15/asoc-rt711-fix-calibrate-mutex-initialization.patch index d4659453bbc..25972908741 100644 --- a/queue-5.15/asoc-rt711-fix-calibrate-mutex-initialization.patch +++ b/queue-5.15/asoc-rt711-fix-calibrate-mutex-initialization.patch @@ -35,7 +35,7 @@ Signed-off-by: Sasha Levin --- a/sound/soc/codecs/rt711.c +++ b/sound/soc/codecs/rt711.c -@@ -1196,6 +1196,7 @@ int rt711_init(struct device *dev, struc +@@ -1199,6 +1199,7 @@ int rt711_init(struct device *dev, struc rt711->sdw_regmap = sdw_regmap; rt711->regmap = regmap; @@ -43,7 +43,7 @@ Signed-off-by: Sasha Levin mutex_init(&rt711->disable_irq_lock); /* -@@ -1310,7 +1311,6 @@ int rt711_io_init(struct device *dev, st +@@ -1313,7 +1314,6 @@ int rt711_io_init(struct device *dev, st rt711_jack_detect_handler); INIT_DELAYED_WORK(&rt711->jack_btn_check_work, rt711_btn_check_handler); diff --git a/queue-5.15/asoc-rt711-sdca-sdw-fix-calibrate-mutex-initializati.patch b/queue-5.15/asoc-rt711-sdca-sdw-fix-calibrate-mutex-initializati.patch index 8248d861aaf..094a2ae6218 100644 --- a/queue-5.15/asoc-rt711-sdca-sdw-fix-calibrate-mutex-initializati.patch +++ b/queue-5.15/asoc-rt711-sdca-sdw-fix-calibrate-mutex-initializati.patch @@ -45,7 +45,7 @@ Signed-off-by: Sasha Levin --- a/sound/soc/codecs/rt711-sdca.c +++ b/sound/soc/codecs/rt711-sdca.c -@@ -1411,6 +1411,7 @@ int rt711_sdca_init(struct device *dev, +@@ -1414,6 +1414,7 @@ int rt711_sdca_init(struct device *dev, rt711->regmap = regmap; rt711->mbq_regmap = mbq_regmap; @@ -53,7 +53,7 @@ Signed-off-by: Sasha Levin mutex_init(&rt711->disable_irq_lock); /* -@@ -1549,7 +1550,6 @@ int rt711_sdca_io_init(struct device *de +@@ -1552,7 +1553,6 @@ int rt711_sdca_io_init(struct device *de rt711_sdca_jack_detect_handler); INIT_DELAYED_WORK(&rt711->jack_btn_check_work, rt711_sdca_btn_check_handler); diff --git a/queue-5.15/btrfs-rename-btrfs_bio-to-btrfs_io_context.patch b/queue-5.15/btrfs-rename-btrfs_bio-to-btrfs_io_context.patch index 5f506efb91e..7b223433fe7 100644 --- a/queue-5.15/btrfs-rename-btrfs_bio-to-btrfs_io_context.patch +++ b/queue-5.15/btrfs-rename-btrfs_bio-to-btrfs_io_context.patch @@ -1055,7 +1055,7 @@ Signed-off-by: Sasha Levin ret = btrfs_lookup_csums_range(csum_root, extent_logical, -@@ -4309,20 +4308,20 @@ static void scrub_remap_extent(struct bt +@@ -4311,20 +4310,20 @@ static void scrub_remap_extent(struct bt int *extent_mirror_num) { u64 mapped_length; @@ -1096,7 +1096,7 @@ Signed-off-by: Sasha Levin int mirror_num, int need_raid_map); /* -@@ -5832,7 +5832,7 @@ static int find_live_mirror(struct btrfs +@@ -5868,7 +5868,7 @@ static int find_live_mirror(struct btrfs } /* Bubble-sort the stripe set to put the parity/syndrome stripes last */ @@ -1105,7 +1105,7 @@ Signed-off-by: Sasha Levin { int i; int again = 1; -@@ -5841,52 +5841,53 @@ static void sort_parity_stripes(struct b +@@ -5877,52 +5877,53 @@ static void sort_parity_stripes(struct b again = 0; for (i = 0; i < num_stripes - 1; i++) { /* Swap if parity is on a smaller index */ @@ -1183,7 +1183,7 @@ Signed-off-by: Sasha Levin } /* can REQ_OP_DISCARD be sent with other REQ like REQ_OP_WRITE? */ -@@ -5896,11 +5897,11 @@ void btrfs_put_bbio(struct btrfs_bio *bb +@@ -5932,11 +5933,11 @@ void btrfs_put_bbio(struct btrfs_bio *bb */ static int __btrfs_map_block_for_discard(struct btrfs_fs_info *fs_info, u64 logical, u64 *length_ret, @@ -1197,7 +1197,7 @@ Signed-off-by: Sasha Levin u64 length = *length_ret; u64 offset; u64 stripe_nr; -@@ -5919,8 +5920,8 @@ static int __btrfs_map_block_for_discard +@@ -5955,8 +5956,8 @@ static int __btrfs_map_block_for_discard int ret = 0; int i; @@ -1208,7 +1208,7 @@ Signed-off-by: Sasha Levin em = btrfs_get_chunk_map(fs_info, logical, length); if (IS_ERR(em)) -@@ -5983,26 +5984,25 @@ static int __btrfs_map_block_for_discard +@@ -6019,26 +6020,25 @@ static int __btrfs_map_block_for_discard &stripe_index); } @@ -1241,7 +1241,7 @@ Signed-off-by: Sasha Levin /* * Special for the first stripe and -@@ -6013,19 +6013,17 @@ static int __btrfs_map_block_for_discard +@@ -6049,19 +6049,17 @@ static int __btrfs_map_block_for_discard * off end_off */ if (i < sub_stripes) @@ -1264,7 +1264,7 @@ Signed-off-by: Sasha Levin } stripe_index++; -@@ -6035,9 +6033,9 @@ static int __btrfs_map_block_for_discard +@@ -6071,9 +6069,9 @@ static int __btrfs_map_block_for_discard } } @@ -1277,7 +1277,7 @@ Signed-off-by: Sasha Levin out: free_extent_map(em); return ret; -@@ -6061,7 +6059,7 @@ static int get_extra_mirror_from_replace +@@ -6097,7 +6095,7 @@ static int get_extra_mirror_from_replace u64 srcdev_devid, int *mirror_num, u64 *physical) { @@ -1286,7 +1286,7 @@ Signed-off-by: Sasha Levin int num_stripes; int index_srcdev = 0; int found = 0; -@@ -6070,20 +6068,20 @@ static int get_extra_mirror_from_replace +@@ -6106,20 +6104,20 @@ static int get_extra_mirror_from_replace int ret = 0; ret = __btrfs_map_block(fs_info, BTRFS_MAP_GET_READ_MIRRORS, @@ -1311,7 +1311,7 @@ Signed-off-by: Sasha Levin return -EIO; } -@@ -6093,7 +6091,7 @@ static int get_extra_mirror_from_replace +@@ -6129,7 +6127,7 @@ static int get_extra_mirror_from_replace * pointer to the one of the target drive. */ for (i = 0; i < num_stripes; i++) { @@ -1320,7 +1320,7 @@ Signed-off-by: Sasha Levin continue; /* -@@ -6101,15 +6099,15 @@ static int get_extra_mirror_from_replace +@@ -6137,15 +6135,15 @@ static int get_extra_mirror_from_replace * mirror with the lowest physical address */ if (found && @@ -1339,7 +1339,7 @@ Signed-off-by: Sasha Levin ASSERT(found); if (!found) -@@ -6140,12 +6138,12 @@ static bool is_block_group_to_copy(struc +@@ -6176,12 +6174,12 @@ static bool is_block_group_to_copy(struc } static void handle_ops_on_dev_replace(enum btrfs_map_op op, @@ -1354,7 +1354,7 @@ Signed-off-by: Sasha Levin u64 srcdev_devid = dev_replace->srcdev->devid; int tgtdev_indexes = 0; int num_stripes = *num_stripes_ret; -@@ -6175,17 +6173,17 @@ static void handle_ops_on_dev_replace(en +@@ -6211,17 +6209,17 @@ static void handle_ops_on_dev_replace(en */ index_where_to_add = num_stripes; for (i = 0; i < num_stripes; i++) { @@ -1378,7 +1378,7 @@ Signed-off-by: Sasha Levin index_where_to_add++; max_errors++; tgtdev_indexes++; -@@ -6205,30 +6203,29 @@ static void handle_ops_on_dev_replace(en +@@ -6241,30 +6239,29 @@ static void handle_ops_on_dev_replace(en * full copy of the source drive. */ for (i = 0; i < num_stripes; i++) { @@ -1416,7 +1416,7 @@ Signed-off-by: Sasha Levin tgtdev_indexes++; num_stripes++; -@@ -6237,8 +6234,8 @@ static void handle_ops_on_dev_replace(en +@@ -6273,8 +6270,8 @@ static void handle_ops_on_dev_replace(en *num_stripes_ret = num_stripes; *max_errors_ret = max_errors; @@ -1427,7 +1427,7 @@ Signed-off-by: Sasha Levin } static bool need_full_stripe(enum btrfs_map_op op) -@@ -6341,7 +6338,7 @@ int btrfs_get_io_geometry(struct btrfs_f +@@ -6377,7 +6374,7 @@ int btrfs_get_io_geometry(struct btrfs_f static int __btrfs_map_block(struct btrfs_fs_info *fs_info, enum btrfs_map_op op, u64 logical, u64 *length, @@ -1436,7 +1436,7 @@ Signed-off-by: Sasha Levin int mirror_num, int need_raid_map) { struct extent_map *em; -@@ -6356,7 +6353,7 @@ static int __btrfs_map_block(struct btrf +@@ -6392,7 +6389,7 @@ static int __btrfs_map_block(struct btrf int num_stripes; int max_errors = 0; int tgtdev_indexes = 0; @@ -1445,7 +1445,7 @@ Signed-off-by: Sasha Levin struct btrfs_dev_replace *dev_replace = &fs_info->dev_replace; int dev_replace_is_ongoing = 0; int num_alloc_stripes; -@@ -6365,7 +6362,7 @@ static int __btrfs_map_block(struct btrf +@@ -6401,7 +6398,7 @@ static int __btrfs_map_block(struct btrf u64 raid56_full_stripe_start = (u64)-1; struct btrfs_io_geometry geom; @@ -1454,7 +1454,7 @@ Signed-off-by: Sasha Levin ASSERT(op != BTRFS_MAP_DISCARD); em = btrfs_get_chunk_map(fs_info, logical, *length); -@@ -6509,20 +6506,20 @@ static int __btrfs_map_block(struct btrf +@@ -6545,20 +6542,20 @@ static int __btrfs_map_block(struct btrf tgtdev_indexes = num_stripes; } @@ -1480,7 +1480,7 @@ Signed-off-by: Sasha Levin if (map->type & BTRFS_BLOCK_GROUP_RAID56_MASK && need_raid_map && (need_full_stripe(op) || mirror_num > 1)) { u64 tmp; -@@ -6534,15 +6531,15 @@ static int __btrfs_map_block(struct btrf +@@ -6570,15 +6567,15 @@ static int __btrfs_map_block(struct btrf /* Fill in the logical address of each stripe */ tmp = stripe_nr * data_stripes; for (i = 0; i < data_stripes; i++) @@ -1500,7 +1500,7 @@ Signed-off-by: Sasha Levin } if (need_full_stripe(op)) -@@ -6550,15 +6547,15 @@ static int __btrfs_map_block(struct btrf +@@ -6586,15 +6583,15 @@ static int __btrfs_map_block(struct btrf if (dev_replace_is_ongoing && dev_replace->tgtdev != NULL && need_full_stripe(op)) { @@ -1522,7 +1522,7 @@ Signed-off-by: Sasha Levin /* * this is the case that REQ_READ && dev_replace_is_ongoing && -@@ -6567,9 +6564,9 @@ static int __btrfs_map_block(struct btrf +@@ -6603,9 +6600,9 @@ static int __btrfs_map_block(struct btrf */ if (patch_the_first_stripe_for_dev_replace && num_stripes > 0) { WARN_ON(num_stripes > 1); @@ -1535,7 +1535,7 @@ Signed-off-by: Sasha Levin } out: if (dev_replace_is_ongoing) { -@@ -6583,40 +6580,40 @@ out: +@@ -6619,40 +6616,40 @@ out: int btrfs_map_block(struct btrfs_fs_info *fs_info, enum btrfs_map_op op, u64 logical, u64 *length, @@ -1587,7 +1587,7 @@ Signed-off-by: Sasha Levin if (bio->bi_status == BLK_STS_IOERR || bio->bi_status == BLK_STS_TARGET) { struct btrfs_device *dev = btrfs_io_bio(bio)->device; -@@ -6634,22 +6631,22 @@ static void btrfs_end_bio(struct bio *bi +@@ -6670,22 +6667,22 @@ static void btrfs_end_bio(struct bio *bi } } @@ -1616,7 +1616,7 @@ Signed-off-by: Sasha Levin bio->bi_status = BLK_STS_IOERR; } else { /* -@@ -6659,18 +6656,18 @@ static void btrfs_end_bio(struct bio *bi +@@ -6695,18 +6692,18 @@ static void btrfs_end_bio(struct bio *bi bio->bi_status = BLK_STS_OK; } @@ -1639,7 +1639,7 @@ Signed-off-by: Sasha Levin btrfs_io_bio(bio)->device = dev; bio->bi_end_io = btrfs_end_bio; bio->bi_iter.bi_sector = physical >> 9; -@@ -6700,20 +6697,20 @@ static void submit_stripe_bio(struct btr +@@ -6736,20 +6733,20 @@ static void submit_stripe_bio(struct btr btrfsic_submit_bio(bio); } @@ -1667,7 +1667,7 @@ Signed-off-by: Sasha Levin } } -@@ -6728,35 +6725,35 @@ blk_status_t btrfs_map_bio(struct btrfs_ +@@ -6764,35 +6761,35 @@ blk_status_t btrfs_map_bio(struct btrfs_ int ret; int dev_nr; int total_devs; @@ -1714,7 +1714,7 @@ Signed-off-by: Sasha Levin map_length, mirror_num, 1); } -@@ -6772,12 +6769,12 @@ blk_status_t btrfs_map_bio(struct btrfs_ +@@ -6808,12 +6805,12 @@ blk_status_t btrfs_map_bio(struct btrfs_ } for (dev_nr = 0; dev_nr < total_devs; dev_nr++) { @@ -1729,7 +1729,7 @@ Signed-off-by: Sasha Levin continue; } -@@ -6786,7 +6783,7 @@ blk_status_t btrfs_map_bio(struct btrfs_ +@@ -6822,7 +6819,7 @@ blk_status_t btrfs_map_bio(struct btrfs_ else bio = first_bio; @@ -1809,7 +1809,7 @@ Signed-off-by: Sasha Levin struct btrfs_balance_args; struct btrfs_balance_progress; -@@ -441,14 +457,14 @@ static inline enum btrfs_map_op btrfs_op +@@ -457,14 +473,14 @@ static inline enum btrfs_map_op btrfs_op } } diff --git a/queue-5.15/btrfs-return-eagain-for-nowait-dio-reads-writes-on-compressed-and-inline-extents.patch b/queue-5.15/btrfs-return-eagain-for-nowait-dio-reads-writes-on-compressed-and-inline-extents.patch index 4015de91f1d..8ce291dfa9e 100644 --- a/queue-5.15/btrfs-return-eagain-for-nowait-dio-reads-writes-on-compressed-and-inline-extents.patch +++ b/queue-5.15/btrfs-return-eagain-for-nowait-dio-reads-writes-on-compressed-and-inline-extents.patch @@ -53,7 +53,7 @@ Signed-off-by: Greg Kroah-Hartman --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c -@@ -7956,7 +7956,19 @@ static int btrfs_dio_iomap_begin(struct +@@ -7957,7 +7957,19 @@ static int btrfs_dio_iomap_begin(struct if (test_bit(EXTENT_FLAG_COMPRESSED, &em->flags) || em->block_start == EXTENT_MAP_INLINE) { free_extent_map(em); diff --git a/queue-5.15/fbdev-disable-sysfb-device-registration-when-removin.patch b/queue-5.15/fbdev-disable-sysfb-device-registration-when-removin.patch index 16dc7cb046f..ee81de73187 100644 --- a/queue-5.15/fbdev-disable-sysfb-device-registration-when-removin.patch +++ b/queue-5.15/fbdev-disable-sysfb-device-registration-when-removin.patch @@ -42,7 +42,7 @@ Signed-off-by: Sasha Levin #include #include #include -@@ -1774,6 +1775,17 @@ int remove_conflicting_framebuffers(stru +@@ -1786,6 +1787,17 @@ int remove_conflicting_framebuffers(stru do_free = true; } diff --git a/queue-5.15/netfilter-nf_tables-replace-bug_on-by-element-length.patch b/queue-5.15/netfilter-nf_tables-replace-bug_on-by-element-length.patch index 21d84952139..581fd51369b 100644 --- a/queue-5.15/netfilter-nf_tables-replace-bug_on-by-element-length.patch +++ b/queue-5.15/netfilter-nf_tables-replace-bug_on-by-element-length.patch @@ -23,7 +23,7 @@ Signed-off-by: Sasha Levin --- a/include/net/netfilter/nf_tables.h +++ b/include/net/netfilter/nf_tables.h -@@ -636,18 +636,22 @@ static inline void nft_set_ext_prepare(s +@@ -642,18 +642,22 @@ static inline void nft_set_ext_prepare(s tmpl->len = sizeof(struct nft_set_ext); } @@ -53,7 +53,7 @@ Signed-off-by: Sasha Levin static inline void nft_set_ext_init(struct nft_set_ext *ext, --- a/net/netfilter/nf_tables_api.c +++ b/net/netfilter/nf_tables_api.c -@@ -5729,8 +5729,11 @@ static int nft_add_set_elem(struct nft_c +@@ -5736,8 +5736,11 @@ static int nft_add_set_elem(struct nft_c if (!nla[NFTA_SET_ELEM_KEY] && !(flags & NFT_SET_ELEM_CATCHALL)) return -EINVAL; @@ -67,7 +67,7 @@ Signed-off-by: Sasha Levin if (set->flags & NFT_SET_MAP) { if (nla[NFTA_SET_ELEM_DATA] == NULL && -@@ -5839,7 +5842,9 @@ static int nft_add_set_elem(struct nft_c +@@ -5846,7 +5849,9 @@ static int nft_add_set_elem(struct nft_c if (err < 0) goto err_set_elem_expr; @@ -78,7 +78,7 @@ Signed-off-by: Sasha Levin } if (nla[NFTA_SET_ELEM_KEY_END]) { -@@ -5848,22 +5853,31 @@ static int nft_add_set_elem(struct nft_c +@@ -5855,22 +5860,31 @@ static int nft_add_set_elem(struct nft_c if (err < 0) goto err_parse_key; @@ -117,7 +117,7 @@ Signed-off-by: Sasha Levin } if (nla[NFTA_SET_ELEM_OBJREF] != NULL) { -@@ -5878,7 +5892,9 @@ static int nft_add_set_elem(struct nft_c +@@ -5885,7 +5899,9 @@ static int nft_add_set_elem(struct nft_c err = PTR_ERR(obj); goto err_parse_key_end; } @@ -128,7 +128,7 @@ Signed-off-by: Sasha Levin } if (nla[NFTA_SET_ELEM_DATA] != NULL) { -@@ -5912,7 +5928,9 @@ static int nft_add_set_elem(struct nft_c +@@ -5919,7 +5935,9 @@ static int nft_add_set_elem(struct nft_c NFT_VALIDATE_NEED); } @@ -139,7 +139,7 @@ Signed-off-by: Sasha Levin } /* The full maximum length of userdata can exceed the maximum -@@ -5922,9 +5940,12 @@ static int nft_add_set_elem(struct nft_c +@@ -5929,9 +5947,12 @@ static int nft_add_set_elem(struct nft_c ulen = 0; if (nla[NFTA_SET_ELEM_USERDATA] != NULL) { ulen = nla_len(nla[NFTA_SET_ELEM_USERDATA]); @@ -155,7 +155,7 @@ Signed-off-by: Sasha Levin } err = -ENOMEM; -@@ -6150,8 +6171,11 @@ static int nft_del_setelem(struct nft_ct +@@ -6157,8 +6178,11 @@ static int nft_del_setelem(struct nft_ct nft_set_ext_prepare(&tmpl); @@ -169,7 +169,7 @@ Signed-off-by: Sasha Levin if (nla[NFTA_SET_ELEM_KEY]) { err = nft_setelem_parse_key(ctx, set, &elem.key.val, -@@ -6159,16 +6183,20 @@ static int nft_del_setelem(struct nft_ct +@@ -6166,16 +6190,20 @@ static int nft_del_setelem(struct nft_ct if (err < 0) return err; @@ -193,7 +193,7 @@ Signed-off-by: Sasha Levin } err = -ENOMEM; -@@ -6176,7 +6204,7 @@ static int nft_del_setelem(struct nft_ct +@@ -6183,7 +6211,7 @@ static int nft_del_setelem(struct nft_ct elem.key_end.val.data, NULL, 0, 0, GFP_KERNEL); if (elem.priv == NULL) @@ -202,7 +202,7 @@ Signed-off-by: Sasha Levin ext = nft_set_elem_ext(set, elem.priv); if (flags) -@@ -6200,6 +6228,8 @@ fail_ops: +@@ -6207,6 +6235,8 @@ fail_ops: kfree(trans); fail_trans: kfree(elem.priv); diff --git a/queue-5.15/series b/queue-5.15/series index 1939111ef8b..0c31640f66e 100644 --- a/queue-5.15/series +++ b/queue-5.15/series @@ -155,3 +155,7 @@ alsa-usb-audio-add-quirk-for-fiero-sc-01.patch alsa-usb-audio-add-quirk-for-fiero-sc-01-fw-v1.0.0.patch nvme-pci-phison-e16-has-bogus-namespace-ids.patch signal-handling-don-t-use-bug_on-for-debugging.patch +usb-serial-ftdi_sio-add-belimo-device-ids.patch +usb-typec-add-missing-uevent-when-partner-support-pd.patch +usb-dwc3-gadget-fix-event-pending-check.patch +tty-serial-samsung_tty-set-dma-burst_size-to-1.patch diff --git a/queue-5.15/tty-serial-samsung_tty-set-dma-burst_size-to-1.patch b/queue-5.15/tty-serial-samsung_tty-set-dma-burst_size-to-1.patch new file mode 100644 index 00000000000..e704684aa50 --- /dev/null +++ b/queue-5.15/tty-serial-samsung_tty-set-dma-burst_size-to-1.patch @@ -0,0 +1,45 @@ +From f7e35e4bf1e8dc2c8cbd5e0955dc1bd58558dae0 Mon Sep 17 00:00:00 2001 +From: Chanho Park +Date: Mon, 27 Jun 2022 15:51:13 +0900 +Subject: tty: serial: samsung_tty: set dma burst_size to 1 + +From: Chanho Park + +commit f7e35e4bf1e8dc2c8cbd5e0955dc1bd58558dae0 upstream. + +The src_maxburst and dst_maxburst have been changed to 1 but the settings +of the UCON register aren't changed yet. They should be changed as well +according to the dmaengine slave config. + +Fixes: aa2f80e752c7 ("serial: samsung: fix maxburst parameter for DMA transactions") +Cc: stable +Cc: Marek Szyprowski +Reviewed-by: Krzysztof Kozlowski +Signed-off-by: Chanho Park +Link: https://lore.kernel.org/r/20220627065113.139520-1-chanho61.park@samsung.com +Signed-off-by: Greg Kroah-Hartman +--- + drivers/tty/serial/samsung_tty.c | 5 ++--- + 1 file changed, 2 insertions(+), 3 deletions(-) + +--- a/drivers/tty/serial/samsung_tty.c ++++ b/drivers/tty/serial/samsung_tty.c +@@ -378,8 +378,7 @@ static void enable_tx_dma(struct s3c24xx + /* Enable tx dma mode */ + ucon = rd_regl(port, S3C2410_UCON); + ucon &= ~(S3C64XX_UCON_TXBURST_MASK | S3C64XX_UCON_TXMODE_MASK); +- ucon |= (dma_get_cache_alignment() >= 16) ? +- S3C64XX_UCON_TXBURST_16 : S3C64XX_UCON_TXBURST_1; ++ ucon |= S3C64XX_UCON_TXBURST_1; + ucon |= S3C64XX_UCON_TXMODE_DMA; + wr_regl(port, S3C2410_UCON, ucon); + +@@ -675,7 +674,7 @@ static void enable_rx_dma(struct s3c24xx + S3C64XX_UCON_DMASUS_EN | + S3C64XX_UCON_TIMEOUT_EN | + S3C64XX_UCON_RXMODE_MASK); +- ucon |= S3C64XX_UCON_RXBURST_16 | ++ ucon |= S3C64XX_UCON_RXBURST_1 | + 0xf << S3C64XX_UCON_TIMEOUT_SHIFT | + S3C64XX_UCON_EMPTYINT_EN | + S3C64XX_UCON_TIMEOUT_EN | diff --git a/queue-5.15/usb-dwc3-gadget-fix-event-pending-check.patch b/queue-5.15/usb-dwc3-gadget-fix-event-pending-check.patch new file mode 100644 index 00000000000..730a4d9d27c --- /dev/null +++ b/queue-5.15/usb-dwc3-gadget-fix-event-pending-check.patch @@ -0,0 +1,51 @@ +From 7441b273388b9a59d8387a03ffbbca9d5af6348c Mon Sep 17 00:00:00 2001 +From: Thinh Nguyen +Date: Mon, 27 Jun 2022 18:41:19 -0700 +Subject: usb: dwc3: gadget: Fix event pending check + +From: Thinh Nguyen + +commit 7441b273388b9a59d8387a03ffbbca9d5af6348c upstream. + +The DWC3_EVENT_PENDING flag is used to protect against invalid call to +top-half interrupt handler, which can occur when there's a delay in +software detection of the interrupt line deassertion. + +However, the clearing of this flag was done prior to unmasking the +interrupt line, creating opportunity where the top-half handler can +come. This breaks the serialization and creates a race between the +top-half and bottom-half handler, resulting in losing synchronization +between the controller and the driver when processing events. + +To fix this, make sure the clearing of the DWC3_EVENT_PENDING is done at +the end of the bottom-half handler. + +Fixes: d325a1de49d6 ("usb: dwc3: gadget: Prevent losing events in event cache") +Cc: stable@vger.kernel.org +Signed-off-by: Thinh Nguyen +Link: https://lore.kernel.org/r/8670aaf1cf52e7d1e6df2a827af2d77263b93b75.1656380429.git.Thinh.Nguyen@synopsys.com +Signed-off-by: Greg Kroah-Hartman +--- + drivers/usb/dwc3/gadget.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +--- a/drivers/usb/dwc3/gadget.c ++++ b/drivers/usb/dwc3/gadget.c +@@ -4149,7 +4149,6 @@ static irqreturn_t dwc3_process_event_bu + } + + evt->count = 0; +- evt->flags &= ~DWC3_EVENT_PENDING; + ret = IRQ_HANDLED; + + /* Unmask interrupt */ +@@ -4162,6 +4161,9 @@ static irqreturn_t dwc3_process_event_bu + dwc3_writel(dwc->regs, DWC3_DEV_IMOD(0), dwc->imod_interval); + } + ++ /* Keep the clearing of DWC3_EVENT_PENDING at the end */ ++ evt->flags &= ~DWC3_EVENT_PENDING; ++ + return ret; + } + diff --git a/queue-5.15/usb-serial-ftdi_sio-add-belimo-device-ids.patch b/queue-5.15/usb-serial-ftdi_sio-add-belimo-device-ids.patch new file mode 100644 index 00000000000..ea5f0bd7a8a --- /dev/null +++ b/queue-5.15/usb-serial-ftdi_sio-add-belimo-device-ids.patch @@ -0,0 +1,47 @@ +From 7c239a071d1f04b7137789810807b4108d475c72 Mon Sep 17 00:00:00 2001 +From: Lucien Buchmann +Date: Sat, 25 Jun 2022 02:17:44 +0200 +Subject: USB: serial: ftdi_sio: add Belimo device ids + +From: Lucien Buchmann + +commit 7c239a071d1f04b7137789810807b4108d475c72 upstream. + +Those two product ids are known. + +Signed-off-by: Lucien Buchmann +Cc: stable@vger.kernel.org +Signed-off-by: Johan Hovold +Signed-off-by: Greg Kroah-Hartman +--- + drivers/usb/serial/ftdi_sio.c | 3 +++ + drivers/usb/serial/ftdi_sio_ids.h | 6 ++++++ + 2 files changed, 9 insertions(+) + +--- a/drivers/usb/serial/ftdi_sio.c ++++ b/drivers/usb/serial/ftdi_sio.c +@@ -1023,6 +1023,9 @@ static const struct usb_device_id id_tab + { USB_DEVICE(FTDI_VID, CHETCO_SEASMART_DISPLAY_PID) }, + { USB_DEVICE(FTDI_VID, CHETCO_SEASMART_LITE_PID) }, + { USB_DEVICE(FTDI_VID, CHETCO_SEASMART_ANALOG_PID) }, ++ /* Belimo Automation devices */ ++ { USB_DEVICE(FTDI_VID, BELIMO_ZTH_PID) }, ++ { USB_DEVICE(FTDI_VID, BELIMO_ZIP_PID) }, + /* ICP DAS I-756xU devices */ + { USB_DEVICE(ICPDAS_VID, ICPDAS_I7560U_PID) }, + { USB_DEVICE(ICPDAS_VID, ICPDAS_I7561U_PID) }, +--- a/drivers/usb/serial/ftdi_sio_ids.h ++++ b/drivers/usb/serial/ftdi_sio_ids.h +@@ -1569,6 +1569,12 @@ + #define CHETCO_SEASMART_ANALOG_PID 0xA5AF /* SeaSmart Analog Adapter */ + + /* ++ * Belimo Automation ++ */ ++#define BELIMO_ZTH_PID 0x8050 ++#define BELIMO_ZIP_PID 0xC811 ++ ++/* + * Unjo AB + */ + #define UNJO_VID 0x22B7 diff --git a/queue-5.15/usb-typec-add-missing-uevent-when-partner-support-pd.patch b/queue-5.15/usb-typec-add-missing-uevent-when-partner-support-pd.patch new file mode 100644 index 00000000000..545fd93bbab --- /dev/null +++ b/queue-5.15/usb-typec-add-missing-uevent-when-partner-support-pd.patch @@ -0,0 +1,37 @@ +From 6fb9e1d94789e8ee5a258a23bc588693f743fd6c Mon Sep 17 00:00:00 2001 +From: Linyu Yuan +Date: Fri, 1 Jul 2022 16:08:54 +0800 +Subject: usb: typec: add missing uevent when partner support PD + +From: Linyu Yuan + +commit 6fb9e1d94789e8ee5a258a23bc588693f743fd6c upstream. + +System like Android allow user control power role from UI, it is possible +to implement application base on typec uevent to refresh UI, but found +there is chance that UI show different state from typec attribute file. + +In typec_set_pwr_opmode(), when partner support PD, there is no uevent +send to user space which cause the problem. + +Fix it by sending uevent notification when change power mode to PD. + +Fixes: bdecb33af34f ("usb: typec: API for controlling USB Type-C Multiplexers") +Cc: stable@vger.kernel.org +Signed-off-by: Linyu Yuan +Link: https://lore.kernel.org/r/1656662934-10226-1-git-send-email-quic_linyyuan@quicinc.com +Signed-off-by: Greg Kroah-Hartman +--- + drivers/usb/typec/class.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/drivers/usb/typec/class.c ++++ b/drivers/usb/typec/class.c +@@ -1718,6 +1718,7 @@ void typec_set_pwr_opmode(struct typec_p + partner->usb_pd = 1; + sysfs_notify(&partner_dev->kobj, NULL, + "supports_usb_power_delivery"); ++ kobject_uevent(&partner_dev->kobj, KOBJ_CHANGE); + } + put_device(partner_dev); + } -- 2.47.3