From 470a119a0848ad214a9e00a8f5387f4e603269a7 Mon Sep 17 00:00:00 2001 From: Hoegeun Kwon Date: Tue, 8 Feb 2022 14:52:09 +0900 Subject: [PATCH 01/16] ARM: dts: bcm2711-rpi-4-b: Add vc4-kms-dsi-7inch overlay Add vc4-kms-dsi-7inch overlay as built-in DT. Change-Id: I15ec96afbababd31185c287ecdf6ab52463dcec6 Signed-off-by: Hoegeun Kwon --- arch/arm/boot/dts/bcm270x.dtsi | 17 ------ arch/arm/boot/dts/bcm2711-rpi-4-b.dts | 108 ++++++++++++++++++++++++++++++---- 2 files changed, 96 insertions(+), 29 deletions(-) diff --git a/arch/arm/boot/dts/bcm270x.dtsi b/arch/arm/boot/dts/bcm270x.dtsi index d9d4281..e57ce5e0 100644 --- a/arch/arm/boot/dts/bcm270x.dtsi +++ b/arch/arm/boot/dts/bcm270x.dtsi @@ -162,17 +162,6 @@ #address-cells = <1>; #size-cells = <0>; status = "disabled"; - - lcd@45 { - compatible = "raspberrypi,7inch-touchscreen-panel"; - reg = <0x45>; - - port { - panel_dsi_port: endpoint { - remote-endpoint = <&dsi_out_port>; - }; - }; - }; }; }; @@ -297,10 +286,4 @@ &dsi1 { power-domains = <&power RPI_POWER_DOMAIN_DSI1>; - - port { - dsi_out_port: endpoint { - remote-endpoint = <&panel_dsi_port>; - }; - }; }; diff --git a/arch/arm/boot/dts/bcm2711-rpi-4-b.dts b/arch/arm/boot/dts/bcm2711-rpi-4-b.dts index 95860b6..b314360 100644 --- a/arch/arm/boot/dts/bcm2711-rpi-4-b.dts +++ b/arch/arm/boot/dts/bcm2711-rpi-4-b.dts @@ -28,18 +28,6 @@ blconfig = &blconfig; }; - rpi_backlight: rpi_backlight { - compatible = "raspberrypi,rpi-backlight"; - firmware = <&firmware>; - status = "okay"; - }; - - rpi_ft5406: rpi_ft5406 { - compatible = "rpi,rpi-ft5406"; - firmware = <&firmware>; - status = "okay"; - }; - gpio-keys { compatible = "gpio-keys"; @@ -115,6 +103,26 @@ enable-active-high; gpio = <&expgpio 6 GPIO_ACTIVE_HIGH>; }; + + panel_disp1: panel_disp1@0 { + compatible = "raspberrypi,7inch-dsi", "simple-panel"; + backlight = <®_display>; + power-supply = <®_display>; + + port { + panel_in: endpoint { + remote-endpoint = <&bridge_out>; + }; + }; + }; + + reg_bridge: reg_bridge@0 { + compatible = "regulator-fixed"; + regulator-name = "bridge_reg"; + gpio = <®_display 0 0>; + vin-supply = <®_display>; + enable-active-high; + }; }; &ddc0 { @@ -642,6 +650,7 @@ &i2c0if { clock-frequency = <100000>; + status = "okay"; }; &i2c1 { @@ -828,6 +837,73 @@ cam0_reg: &cam_dummy_reg { status = "okay"; }; +&i2c0mux { + status = "okay"; +}; + +&dsi1 { + interrupts = ; + compatible = "brcm,bcm2711-dsi1"; + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + port { + dsi_out: endpoint { + remote-endpoint = <&bridge_in>; + }; + }; + bridge@0 { + reg = <0>; + compatible = "toshiba,tc358762"; + vddc-supply = <®_bridge>; + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + bridge_in: endpoint { + remote-endpoint = <&dsi_out>; + }; + }; + + port@1 { + reg = <1>; + bridge_out: endpoint { + remote-endpoint = <&panel_in>; + }; + }; + }; + }; +}; + +&i2c_csi_dsi { + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + + ft5406: ts@38 { + touchscreen-inverted-x; + touchscreen-inverted-y; + + compatible = "edt,edt-ft5506"; + reg = <0x38>; + + touchscreen-size-x = < 800 >; + touchscreen-size-y = < 480 >; + + vcc-supply = <®_display>; + reset-gpio = <®_display 1 1>; + }; + + reg_display: reg_display@45 { + compatible = "raspberrypi,7inch-touchscreen-panel-regulator"; + reg = <0x45>; + gpio-controller; + #gpio-cells = <2>; + }; +}; + / { __overrides__ { act_led_gpio = <&act_led>,"gpios:4"; @@ -844,5 +920,13 @@ cam0_reg: &cam_dummy_reg { sd_poll_once = <&emmc2>, "non-removable?"; spi_dma4 = <&spi0>, "dmas:0=", <&dma40>, <&spi0>, "dmas:8=", <&dma40>; + + sizex = <&ft5406>,"touchscreen-size-x:0"; + sizey = <&ft5406>,"touchscreen-size-y:0"; + invx = <0>, "-10"; + invy = <0>, "-11"; + swapxy = <&ft5406>,"touchscreen-swapped-x-y?"; + + disable_touch = <0>, "-10-11-12"; }; }; -- 2.7.4 From 66c22279c7dcd742ca97e99b8abfd03200238888 Mon Sep 17 00:00:00 2001 From: Hoegeun Kwon Date: Tue, 8 Feb 2022 14:52:13 +0900 Subject: [PATCH 02/16] drm/vc4: Fix to wait for attach call and return as bind success If the panel is not connected, the attach function is not called and a bridge node is not created. In Tizen, dsi_bind operates as drm vc4 when dsi_bind is normally terminated. After waiting 5 attach calls, dsi_bind returns to success. Change-Id: I89b29752d63f5152415df3327cb47790d1b03979 Signed-off-by: Hoegeun Kwon --- drivers/gpu/drm/vc4/vc4_dsi.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/gpu/drm/vc4/vc4_dsi.c b/drivers/gpu/drm/vc4/vc4_dsi.c index 8c6c5ce..27bd6c6 100644 --- a/drivers/gpu/drm/vc4/vc4_dsi.c +++ b/drivers/gpu/drm/vc4/vc4_dsi.c @@ -1558,6 +1558,7 @@ static int vc4_dsi_bind(struct device *dev, struct device *master, void *data) struct drm_panel *panel; const struct of_device_id *match; dma_cap_mask_t dma_mask; + static int attach_cnt = 5; int ret; match = of_match_device(vc4_dsi_dt_match, dev); @@ -1680,6 +1681,8 @@ static int vc4_dsi_bind(struct device *dev, struct device *master, void *data) if (ret == -ENODEV) return 0; + if (!--attach_cnt) + ret = 0; goto err_free_dma; } -- 2.7.4 From 7d79d54e3358b3644090429537003b1fa8f7d247 Mon Sep 17 00:00:00 2001 From: Hoegeun Kwon Date: Tue, 8 Feb 2022 14:52:16 +0900 Subject: [PATCH 03/16] rpi4: boot: config: Add ignore_lcd flag for 7inch touchscreen Add flag for 7inch touchscreen operation. Change-Id: Ie750ae0e00daf8448515ba0c4c4596168114882a Signed-off-by: Hoegeun Kwon --- rpi4/boot/config.txt | 3 +++ rpi4/boot/config_64bit.txt | 3 +++ 2 files changed, 6 insertions(+) diff --git a/rpi4/boot/config.txt b/rpi4/boot/config.txt index ce0b17d..e96bb6a 100644 --- a/rpi4/boot/config.txt +++ b/rpi4/boot/config.txt @@ -53,6 +53,9 @@ hdmi_force_hotplug=1 # Additional overlays and parameters are documented /boot/overlays/README [pi4] +max_framebuffers=2 +ignore_lcd=1 + # Disable ID_SC and ID_SD pins to use UART2 force_eeprom_read=0 diff --git a/rpi4/boot/config_64bit.txt b/rpi4/boot/config_64bit.txt index 15655e5..383b70e2 100644 --- a/rpi4/boot/config_64bit.txt +++ b/rpi4/boot/config_64bit.txt @@ -53,6 +53,9 @@ hdmi_force_hotplug=1 # Additional overlays and parameters are documented /boot/overlays/README [pi4] +max_framebuffers=2 +ignore_lcd=1 + # Disable ID_SC and ID_SD pins to use UART2 force_eeprom_read=0 -- 2.7.4 From 1e0733c7d9f231d98e3af2fc5e2475e5ddc93e8b Mon Sep 17 00:00:00 2001 From: Hoegeun Kwon Date: Tue, 8 Feb 2022 14:52:19 +0900 Subject: [PATCH 04/16] arm64: tizen_bcm2711_defconfig: Enable defconfig for touchscreen Required defconfig for 7inch touchscreen operation. Change-Id: I19a35976e0e7782a79275f56c14ebdba82099ec3 Signed-off-by: Hoegeun Kwon --- arch/arm64/configs/tizen_bcm2711_defconfig | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/arch/arm64/configs/tizen_bcm2711_defconfig b/arch/arm64/configs/tizen_bcm2711_defconfig index 663fe31..fcabfd6 100644 --- a/arch/arm64/configs/tizen_bcm2711_defconfig +++ b/arch/arm64/configs/tizen_bcm2711_defconfig @@ -257,6 +257,7 @@ CONFIG_KEYBOARD_GPIO=y # CONFIG_INPUT_MOUSE is not set CONFIG_INPUT_JOYSTICK=y CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_TOUCHSCREEN_EDT_FT5X06=y CONFIG_INPUT_MISC=y CONFIG_INPUT_UINPUT=y CONFIG_BRCM_CHAR_DRIVERS=y @@ -281,6 +282,8 @@ CONFIG_TTY_PRINTK=y CONFIG_HW_RANDOM=y CONFIG_RAW_DRIVER=y CONFIG_I2C_CHARDEV=y +CONFIG_I2C_MUX=y +CONFIG_I2C_MUX_PINCTRL=y CONFIG_I2C_BCM2708=m CONFIG_I2C_BCM2835=y CONFIG_I2C_GPIO=y @@ -306,6 +309,7 @@ CONFIG_MFD_WL1273_CORE=m CONFIG_REGULATOR=y CONFIG_REGULATOR_FIXED_VOLTAGE=y CONFIG_REGULATOR_GPIO=y +CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY=y CONFIG_RC_CORE=y CONFIG_RC_DECODERS=y CONFIG_IR_NEC_DECODER=y @@ -324,10 +328,14 @@ CONFIG_USB_GSPCA_ZC3XX=m # CONFIG_RADIO_ADAPTERS is not set CONFIG_V4L_PLATFORM_DRIVERS=y CONFIG_DRM=y -CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN=y +CONFIG_DRM_PANEL_SIMPLE=y +CONFIG_DRM_DISPLAY_CONNECTOR=y +CONFIG_DRM_SIMPLE_BRIDGE=y +CONFIG_DRM_TOSHIBA_TC358762=y CONFIG_DRM_V3D=y CONFIG_DRM_VC4=y CONFIG_DRM_VC4_HDMI_CEC=y +CONFIG_FB_SIMPLE=y CONFIG_BACKLIGHT_CLASS_DEVICE=y CONFIG_BACKLIGHT_RPI=y CONFIG_FRAMEBUFFER_CONSOLE=y -- 2.7.4 From 9253e0f9c2a812f54dbe28bd9fd7522cb09f6140 Mon Sep 17 00:00:00 2001 From: Hoegeun Kwon Date: Tue, 8 Feb 2022 14:52:25 +0900 Subject: [PATCH 05/16] ARM: tizen_bcm2711_defconfig: Enable defconfig for touchscreen Required defconfig for 7inch touchscreen operation. Change-Id: I428d3569ec09e20a8cc44df2b41c00446710059a Signed-off-by: Hoegeun Kwon --- arch/arm/configs/tizen_bcm2711_defconfig | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/arch/arm/configs/tizen_bcm2711_defconfig b/arch/arm/configs/tizen_bcm2711_defconfig index 588f90f..31ba6a8 100644 --- a/arch/arm/configs/tizen_bcm2711_defconfig +++ b/arch/arm/configs/tizen_bcm2711_defconfig @@ -259,6 +259,7 @@ CONFIG_KEYBOARD_GPIO=y # CONFIG_INPUT_MOUSE is not set CONFIG_INPUT_JOYSTICK=y CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_TOUCHSCREEN_EDT_FT5X06=y CONFIG_INPUT_MISC=y CONFIG_INPUT_UINPUT=y CONFIG_BRCM_CHAR_DRIVERS=y @@ -283,6 +284,8 @@ CONFIG_TTY_PRINTK=y CONFIG_HW_RANDOM=y CONFIG_RAW_DRIVER=y CONFIG_I2C_CHARDEV=y +CONFIG_I2C_MUX=y +CONFIG_I2C_MUX_PINCTRL=y CONFIG_I2C_BCM2708=m CONFIG_I2C_BCM2835=y CONFIG_I2C_GPIO=y @@ -310,6 +313,7 @@ CONFIG_MFD_WL1273_CORE=m CONFIG_REGULATOR=y CONFIG_REGULATOR_FIXED_VOLTAGE=y CONFIG_REGULATOR_GPIO=y +CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY=y CONFIG_RC_CORE=y CONFIG_RC_DECODERS=y CONFIG_IR_NEC_DECODER=y @@ -328,10 +332,14 @@ CONFIG_USB_GSPCA_ZC3XX=m # CONFIG_RADIO_ADAPTERS is not set CONFIG_V4L_PLATFORM_DRIVERS=y CONFIG_DRM=y -CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN=y +CONFIG_DRM_PANEL_SIMPLE=y +CONFIG_DRM_DISPLAY_CONNECTOR=y +CONFIG_DRM_SIMPLE_BRIDGE=y +CONFIG_DRM_TOSHIBA_TC358762=y CONFIG_DRM_V3D=y CONFIG_DRM_VC4=y CONFIG_DRM_VC4_HDMI_CEC=y +CONFIG_FB_SIMPLE=y CONFIG_BACKLIGHT_CLASS_DEVICE=y CONFIG_BACKLIGHT_RPI=y CONFIG_FRAMEBUFFER_CONSOLE=y -- 2.7.4 From d39987b460c30e406178e9510e265021752df2f5 Mon Sep 17 00:00:00 2001 From: Marek Szyprowski Date: Mon, 7 Feb 2022 08:32:16 +0100 Subject: [PATCH 06/16] mm: thp: Fix condition check for THP creation The 'hend' is already THP-aligned, so the proper check should be exclusive. This fixes forcing 64kB THP pages for the last 2MB of each process memory area. Signed-off-by: Marek Szyprowski Change-Id: I0b2187f1e045bc61207122f0162fdb145214ddad --- mm/khugepaged.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mm/khugepaged.c b/mm/khugepaged.c index 297cee0..e76b568 100644 --- a/mm/khugepaged.c +++ b/mm/khugepaged.c @@ -2729,7 +2729,7 @@ static unsigned int khugepaged_scan_vma(struct mm_struct *mm, BUG(); while (khugepaged_scan.address < hend) { - if (khugepaged_scan.address + hpage_size >= hend) { + if (khugepaged_scan.address + hpage_size > hend) { if (khugepaged_scan.address + HPAGE_CONT_PTE_SIZE < hend) { hpage_size = HPAGE_CONT_PTE_SIZE; hpage_nr = HPAGE_CONT_PTE_NR; -- 2.7.4 From d7fe4191b4dd1e6f2108727831864c7989235aec Mon Sep 17 00:00:00 2001 From: Marek Szyprowski Date: Tue, 30 Nov 2021 13:41:31 +0100 Subject: [PATCH 07/16] mm: thp: Avoid mapping a 64kB THP when anonymous COW-ed pages exist For the given read-only file there might exist copy-on-write anonymous pages (e.g. when application has modified something in its .data section). Presence of such pages causes that the retract_page_tables() function in mm/khugepaged.c skips retracting their PTE entries, even if the original (unmodified) file pages have been replaced by the khugepaged with 64kB THP. Those COW-ed pages remain mapped with 4kB entries. When read-fault happens on the adjacent page, kernel checks if it can be mapped with 64kB entry. Without a check for non-NULL vma->anon_vma the 4kB entries for the COW-ed pages will be replaced by the 64kB entries for the unmodiffied pages of the original file. This issue has not been observed for 2MB THPs, because PMD-fault (related to 2MB THP size) doesn't happen if there are any pages still mapped with 4kB TLB entries. This fixes the random crashes when CONFIG_THP_CONSERVATIVE mode is enabled. Signed-off-by: Marek Szyprowski Change-Id: Ic1d87b887f589894732e1c1066123aa88f4f582d --- arch/arm64/include/asm/huge_mm.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/arch/arm64/include/asm/huge_mm.h b/arch/arm64/include/asm/huge_mm.h index cc44800..c2fbc6856 100644 --- a/arch/arm64/include/asm/huge_mm.h +++ b/arch/arm64/include/asm/huge_mm.h @@ -45,6 +45,13 @@ static inline bool transhuge_adv_vma_suitable(struct vm_area_struct *vma, if (((vma->vm_start >> PAGE_SHIFT) & HPAGE_CONT_PTE_CACHE_INDEX_MASK) != (vma->vm_pgoff & HPAGE_CONT_PTE_CACHE_INDEX_MASK)) return false; + + /* + * Do not create THPs if anonymous COW-ed 4k pages exist, see + * comment in mm/khugepaged.c:retract_page_tables() function. + */ + if (vma->anon_vma) + return false; } if (haddr < vma->vm_start || haddr + HPAGE_CONT_PTE_SIZE >= vma->vm_end) -- 2.7.4 From 9a65983eeb1440def5b344462b2b4108b5f143a8 Mon Sep 17 00:00:00 2001 From: Marek Szyprowski Date: Tue, 8 Feb 2022 08:16:00 +0100 Subject: [PATCH 08/16] mm: thp: Revert "mm, thp: preventing hugepage creation for read-write file pages" Once the issue with modified read-only files has been fixed by the commit "mm: thp: avoid mapping a 64kB THP when anonymous COW-ed pages exist", this workaround is no longer needed. This reverts commit bca41ebfc598858807071491cdb85f61773d8a77. Signed-off-by: Marek Szyprowski Change-Id: I3df73b53fffe6dc49bbc844852aff68e4157582b --- arch/arm64/mm/finegrained_thp.c | 2 +- mm/khugepaged.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm64/mm/finegrained_thp.c b/arch/arm64/mm/finegrained_thp.c index 570747c..5ebb4ac 100644 --- a/arch/arm64/mm/finegrained_thp.c +++ b/arch/arm64/mm/finegrained_thp.c @@ -17,7 +17,7 @@ bool arm64_hugepage_vma_file_check(struct vm_area_struct *vma, { /* Read-only file mappings need to be aligned for THP to work. */ if (IS_ENABLED(CONFIG_READ_ONLY_THP_FOR_FS) && vma->vm_file && - (vm_flags & VM_DENYWRITE) && !(vm_flags & VM_WRITE)) { + (vm_flags & VM_DENYWRITE)) { return IS_ALIGNED((vma->vm_start >> PAGE_SHIFT) - vma->vm_pgoff, nr_pages); } diff --git a/mm/khugepaged.c b/mm/khugepaged.c index e76b568..f88ad1b 100644 --- a/mm/khugepaged.c +++ b/mm/khugepaged.c @@ -513,7 +513,7 @@ static bool hugepage_vma_check(struct vm_area_struct *vma, return true; /* Only regular file is valid */ else if (IS_ENABLED(CONFIG_READ_ONLY_THP_FOR_FS) && vma->vm_file && - (vm_flags & VM_DENYWRITE) && !(vm_flags & VM_WRITE)) { + (vm_flags & VM_DENYWRITE)) { struct inode *inode = vma->vm_file->f_inode; return S_ISREG(inode->i_mode); -- 2.7.4 From 5d48a5dcfa4d5dc468b8c4213f27ab3826aa1b2b Mon Sep 17 00:00:00 2001 From: Jaechul Lee Date: Tue, 31 Jan 2017 08:58:22 +0900 Subject: [PATCH 09/16] packaging: Added '.gbs.conf' for partial build Added gbs configuration file for enhanced building. it makes gbs build faster than before. https://source.tizen.org/documentation/reference/git-build-system/maintenance-models-supported-gbs Change-Id: I79d57aa5eb49d0fbfa9a3744ec2acb032a274e5e Signed-off-by: Jaechul Lee Signed-off-by: Joonyoung Shim --- .gbs.conf | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 .gbs.conf diff --git a/.gbs.conf b/.gbs.conf new file mode 100644 index 0000000..f744dba --- /dev/null +++ b/.gbs.conf @@ -0,0 +1,4 @@ +[general] +upstream_branch = upstream +upstream_tag = v${upstreamversion} +squash_patches_until = HEAD~10 -- 2.7.4 From bebd4f59dff203e69386f832abbde4cb7f7fc1d8 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=C5=81ukasz=20Stelmach?= Date: Mon, 21 Dec 2020 12:40:27 +0100 Subject: [PATCH 10/16] kdbus: Revert "fs: unexport poll_schedule_timeout" MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit This reverts commit 8f546ae1fc5ce8396827d4868c7eee1f1cc6947a. Change-Id: I5429471eeb092c55a50e37c0b642d50d69daebc7 Signed-off-by: Łukasz Stelmach --- fs/select.c | 3 ++- include/linux/poll.h | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/fs/select.c b/fs/select.c index 5edffee..8b99c4d 100644 --- a/fs/select.c +++ b/fs/select.c @@ -233,7 +233,7 @@ static void __pollwait(struct file *filp, wait_queue_head_t *wait_address, add_wait_queue(wait_address, &entry->wait); } -static int poll_schedule_timeout(struct poll_wqueues *pwq, int state, +int poll_schedule_timeout(struct poll_wqueues *pwq, int state, ktime_t *expires, unsigned long slack) { int rc = -EINTR; @@ -258,6 +258,7 @@ static int poll_schedule_timeout(struct poll_wqueues *pwq, int state, return rc; } +EXPORT_SYMBOL(poll_schedule_timeout); /** * poll_select_set_timeout - helper function to setup the timeout value diff --git a/include/linux/poll.h b/include/linux/poll.h index 1cdc32b..02ff7ee 100644 --- a/include/linux/poll.h +++ b/include/linux/poll.h @@ -112,6 +112,8 @@ struct poll_wqueues { extern void poll_initwait(struct poll_wqueues *pwq); extern void poll_freewait(struct poll_wqueues *pwq); +extern int poll_schedule_timeout(struct poll_wqueues *pwq, int state, + ktime_t *expires, unsigned long slack); extern u64 select_estimate_accuracy(struct timespec64 *tv); #define MAX_INT64_SECONDS (((s64)(~((u64)0)>>1)/HZ)-1) -- 2.7.4 From 062d2f5e426649c53f2028711991057017d645fa Mon Sep 17 00:00:00 2001 From: Mateusz Majewski Date: Thu, 25 Nov 2021 14:32:07 +0100 Subject: [PATCH 11/16] kdbus: export needed symbols for out-of-tree support We have been asked to move kdbus out-of-tree. It uses a couple unexported symbols, so we need to (grudgingly) export them. Change-Id: Ide04c46bbc71f8fffbdefca68959e1048af1c905 Signed-off-by: Mateusz Majewski --- fs/namespace.c | 3 +++ mm/memfd.c | 1 + 2 files changed, 4 insertions(+) diff --git a/fs/namespace.c b/fs/namespace.c index 046b08413..ee120e4 100644 --- a/fs/namespace.c +++ b/fs/namespace.c @@ -1892,6 +1892,7 @@ struct vfsmount *collect_mounts(const struct path *path) return ERR_CAST(tree); return &tree->mnt; } +EXPORT_SYMBOL_GPL(collect_mounts); static void free_mnt_ns(struct mnt_namespace *); static struct mnt_namespace *alloc_mnt_ns(struct user_namespace *, bool); @@ -1922,6 +1923,7 @@ void drop_collected_mounts(struct vfsmount *mnt) unlock_mount_hash(); namespace_unlock(); } +EXPORT_SYMBOL_GPL(drop_collected_mounts); static bool has_locked_children(struct mount *mnt, struct dentry *dentry) { @@ -1992,6 +1994,7 @@ int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg, } return 0; } +EXPORT_SYMBOL_GPL(iterate_mounts); static void lock_mnt_tree(struct mount *mnt) { diff --git a/mm/memfd.c b/mm/memfd.c index 2647c89..b665a1a 100644 --- a/mm/memfd.c +++ b/mm/memfd.c @@ -240,6 +240,7 @@ long memfd_fcntl(struct file *file, unsigned int cmd, unsigned long arg) return error; } +EXPORT_SYMBOL_GPL(memfd_fcntl); #define MFD_NAME_PREFIX "memfd:" #define MFD_NAME_PREFIX_LEN (sizeof(MFD_NAME_PREFIX) - 1) -- 2.7.4 From 5d79c163177419f0be2b0c9d6c644df39038f4c0 Mon Sep 17 00:00:00 2001 From: Adrian Szyndela Date: Fri, 9 Sep 2016 13:35:49 +0200 Subject: [PATCH 12/16] kdbus: Add magic value MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit [partially picked from commit 216823ac83c0ab89348e2ed6f66179f53626586e] except of all the kdbus driver, add magic value of it only. Original authors of the files are those from commit 216823ac83c0ab8934. Cherry-picked from 4.14 commit 970070c4f68f113284f86cf7b6fbd23d6b35b511. Change-Id: Id60af5faf794fc4ae7122976621076f1021f6c38 Signed-off-by: Adrian Szyndela Signed-off-by: Hyotaek Shim Signed-off-by: Łukasz Stelmach Signed-off-by: Seung-Woo Kim --- include/uapi/linux/magic.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/uapi/linux/magic.h b/include/uapi/linux/magic.h index f3956fc..04b8b17 100644 --- a/include/uapi/linux/magic.h +++ b/include/uapi/linux/magic.h @@ -98,4 +98,6 @@ #define Z3FOLD_MAGIC 0x33 #define PPC_CMM_MAGIC 0xc7571590 +#define KDBUS_SUPER_MAGIC 0x44427573 + #endif /* __LINUX_MAGIC_H__ */ -- 2.7.4 From add4aaad701fa1df51dab0ccf70d669d16d16b38 Mon Sep 17 00:00:00 2001 From: Dongwoo Lee Date: Thu, 10 Feb 2022 19:33:23 +0900 Subject: [PATCH 13/16] Revert "cgroup: Disable cgroup "memory" by default" This reverts commit 2b13c54592135b6fab269517ed687fa9f80bf8e5. The feature is used for saving memory which is consumed by memcg-related structure (32bytes per 4K page), but now it is no longer merged on the latest raspberry pi kernel. So instead of enabling memory cgroup by adding command to cmdline.txt while preserving this feature, in order to enable memory cgroup by default, this reverts commit '2b13c5459213 ("cgroup: Disable cgroup "memory" by default")' Change-Id: I1830129125fb44b36bfe64f97fddf329ea795c3c Signed-off-by: Dongwoo Lee Signed-off-by: Seung-Woo Kim --- kernel/cgroup/cgroup.c | 38 -------------------------------------- 1 file changed, 38 deletions(-) diff --git a/kernel/cgroup/cgroup.c b/kernel/cgroup/cgroup.c index 68e14f3..a86857e 100644 --- a/kernel/cgroup/cgroup.c +++ b/kernel/cgroup/cgroup.c @@ -5690,9 +5690,6 @@ int __init cgroup_init_early(void) return 0; } -static u16 cgroup_enable_mask __initdata; -static int __init cgroup_disable(char *str); - /** * cgroup_init - cgroup initialization * @@ -5731,12 +5728,6 @@ int __init cgroup_init(void) mutex_unlock(&cgroup_mutex); - /* - * Apply an implicit disable, knowing that an explicit enable will - * prevent if from doing anything. - */ - cgroup_disable("memory"); - for_each_subsys(ss, ssid) { if (ss->early_init) { struct cgroup_subsys_state *css = @@ -6274,10 +6265,6 @@ static int __init cgroup_disable(char *str) strcmp(token, ss->legacy_name)) continue; - /* An explicit cgroup_enable overrides a disable */ - if (cgroup_enable_mask & (1 << i)) - continue; - static_branch_disable(cgroup_subsys_enabled_key[i]); pr_info("Disabling %s control group subsystem\n", ss->name); @@ -6287,31 +6274,6 @@ static int __init cgroup_disable(char *str) } __setup("cgroup_disable=", cgroup_disable); -static int __init cgroup_enable(char *str) -{ - struct cgroup_subsys *ss; - char *token; - int i; - - while ((token = strsep(&str, ",")) != NULL) { - if (!*token) - continue; - - for_each_subsys(ss, i) { - if (strcmp(token, ss->name) && - strcmp(token, ss->legacy_name)) - continue; - - cgroup_enable_mask |= 1 << i; - static_branch_enable(cgroup_subsys_enabled_key[i]); - pr_info("Enabling %s control group subsystem\n", - ss->name); - } - } - return 1; -} -__setup("cgroup_enable=", cgroup_enable); - void __init __weak enable_debug_cgroup(void) { } static int __init enable_cgroup_debug(char *str) -- 2.7.4 From e360570cc44fa10c86f4b6a9dd32ae7a3253078b Mon Sep 17 00:00:00 2001 From: Seung-Woo Kim Date: Wed, 16 Feb 2022 16:57:00 +0900 Subject: [PATCH 14/16] WORKAROUND: Revert "staging: bcm2835-codec: Format changed should trigger drain" This reverts commit b7e6b495eff31298ba4665f71b2414cc9a8f99c2. When setting last buffer done on format changed event, bcm2835-codec does not work for decoding because it recognizes there is no queued buffer even it is not well fit for v4l2 codec spec. Maybe it is because v4l2 codec gst plugin v4l2 usage is not up to date in tizen. Until properly fixing it, revert it to support video h/w decoding on rpi4 in tizen. Change-Id: Id7d77ee57e58d42eab5a080d63eb8eb1518e6f7a Signed-off-by: Seung-Woo Kim --- drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c b/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c index 472d97d..d917188 100644 --- a/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c +++ b/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c @@ -1007,7 +1007,6 @@ static void handle_fmt_changed(struct bcm2835_codec_ctx *ctx, (struct mmal_msg_event_format_changed *)mmal_buf->buffer; struct mmal_parameter_video_interlace_type interlace; int interlace_size = sizeof(interlace); - struct vb2_queue *vq; int ret; v4l2_dbg(1, debug, &ctx->dev->v4l2_dev, "%s: Format changed: buff size min %u, rec %u, buff num min %u, rec %u\n", @@ -1077,10 +1076,6 @@ static void handle_fmt_changed(struct bcm2835_codec_ctx *ctx, q_data->field = V4L2_FIELD_NONE; } - vq = v4l2_m2m_get_vq(ctx->fh.m2m_ctx, V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE); - if (vq->streaming) - vq->last_buffer_dequeued = true; - queue_res_chg_event(ctx); } -- 2.7.4 From d6802fbbb5fe6c85387a4cd16aec7ccc9de711b6 Mon Sep 17 00:00:00 2001 From: Dongwoo Lee Date: Wed, 2 Mar 2022 18:13:13 +0900 Subject: [PATCH 15/16] ARM: dts: bcm2711-rpi-4-b: Set dwc2 mode as peripheral If dwc2 mode is set to otg, forcing dwc2 mode as peripheral is proceeded in the early boot time, but since tizen configures the gadget with configfs after system is prepared. It causes enumeration problem. To prevent it, default mode will be fixed as peripheral. Actully, since type-c usb port is only used as power-source and peripheral port, it is more precise setting though. Change-Id: I78bc6c683c4d095283219b1ab3066fbe7d0c6e53 Signed-off-by: Dongwoo Lee --- arch/arm/boot/dts/bcm2711-rpi-4-b.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/bcm2711-rpi-4-b.dts b/arch/arm/boot/dts/bcm2711-rpi-4-b.dts index b314360..53bb3b7 100644 --- a/arch/arm/boot/dts/bcm2711-rpi-4-b.dts +++ b/arch/arm/boot/dts/bcm2711-rpi-4-b.dts @@ -754,7 +754,7 @@ cam0_reg: &cam_dummy_reg { &usb { compatible = "brcm,bcm2835-usb"; - dr_mode = "otg"; + dr_mode = "peripheral"; g-np-tx-fifo-size = <32>; g-rx-fifo-size = <558>; g-tx-fifo-size = <512 512 512 512 512 256 256>; -- 2.7.4 From f47ebbd1d43b6274bbecffeef06bdd15eb9676aa Mon Sep 17 00:00:00 2001 From: Tianchen Ding Date: Tue, 18 Jan 2022 18:05:18 +0800 Subject: [PATCH 16/16] cpuset: Fix the bug that subpart_cpus updated wrongly in update_cpumask() commit c80d401c52a2d1baf2a5afeb06f0ffe678e56d23 upstream. subparts_cpus should be limited as a subset of cpus_allowed, but it is updated wrongly by using cpumask_andnot(). Use cpumask_and() instead to fix it. Change-Id: Ic7a654e9f101a27115a767535e5534a9f4ab4010 Fixes: ee8dde0cd2ce ("cpuset: Add new v2 cpuset.sched.partition flag") Signed-off-by: Tianchen Ding Reviewed-by: Waiman Long Signed-off-by: Tejun Heo Signed-off-by: Greg Kroah-Hartman --- kernel/cgroup/cpuset.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/kernel/cgroup/cpuset.c b/kernel/cgroup/cpuset.c index 1999fce..7c7758a 100644 --- a/kernel/cgroup/cpuset.c +++ b/kernel/cgroup/cpuset.c @@ -1566,8 +1566,7 @@ static int update_cpumask(struct cpuset *cs, struct cpuset *trialcs, * Make sure that subparts_cpus is a subset of cpus_allowed. */ if (cs->nr_subparts_cpus) { - cpumask_andnot(cs->subparts_cpus, cs->subparts_cpus, - cs->cpus_allowed); + cpumask_and(cs->subparts_cpus, cs->subparts_cpus, cs->cpus_allowed); cs->nr_subparts_cpus = cpumask_weight(cs->subparts_cpus); } spin_unlock_irq(&callback_lock); -- 2.7.4