summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-05-12pcie: drivers: Fix invalid logbuffer pointer useandroid-u-beta-3_r0.3android-u-beta-3_r0.2android-gs-raviole-5.10-u-beta3android-gs-bluejay-5.10-u-beta3Mahesh Kallelil
If logbuffer_register fails with ERR_PTR, then a call to logbuffer_log will cause a kernel panic unless we set the return log struct to NULL. Bug: 281687359 Change-Id: Ib9e73b94a6d8d92e81aa35581f9b3a072d545a85 Signed-off-by: Mahesh Kallelil <kallelil@google.com>
2023-05-12soc/google/cpif: Fix invalid logbuffer pointer useMahesh Kallelil
If logbuffer_register fails with ERR_PTR, then a call to logbuffer_log will cause a kernel panic unless we set the return log struct to NULL. Bug: 281687359 Change-Id: I9e0c40f420cfef308d9a39c9e788bbcb3c2b58cc Signed-off-by: Mahesh Kallelil <kallelil@google.com>
2023-05-12Merge "Merge android13-5.10-2023-03 into android13-gs-pixel-5.10-udc" into ↵Pindar Yang
android13-gs-pixel-5.10-udc
2023-05-10drivers: soc: perf_metrics: Add storm irq counterZiyi Cui
The purpose of this counter is to monitor irqs happen in high freqency Bug: 279486693 Test: build and boot Change-Id: I4bca16fea37830881d39aa86c512f6835090ecb8 Signed-off-by: Ziyi Cui <ziyic@google.com>
2023-05-10vh: sched: Add tunable to set utilization groupRick Yiu
Add a tunable for each vendor group to set which utilization group it is in. Also a tunable for task prio that will be automatically considered as background util. Bug: 201260585 Change-Id: I0d32fe6f8de58311bee5fccaee17fa6731f2fdef Signed-off-by: Rick Yiu <rickyiu@google.com>
2023-05-10pixel_em: Fix for case where default profile is overridden in DTVincent Palomares
In this case, the new max capacity is not reflected in cpu scales until the next time it is applied. This creates an inconsistency if the updated profile has a different max capacity. Bug: 280694696 Change-Id: Ia83b7d446175dca750b1198a13f2ed24633c8a52 Signed-off-by: Vincent Palomares <paillon@google.com>
2023-05-10Merge android13-5.10-2023-03 into android13-gs-pixel-5.10-udcPindar Yang
Merge SHA: f1c7d33357257 UPSTREAM: hid: bigben_probe(): validate report count Bug: 281607159 Bug: 268589017 (ACK) Bug: 270117845 (ACK) Bug: 276227797 (ACK) Bug: 279882628 (ACK) Bug: 280618560 (ACK) Bug: 280751063 (ACK) Change-Id: I8e1019288f83f24cc3953cbdc4457bb7bf3408c8 Signed-off-by: Pindar Yang <pindaryang@google.com>
2023-05-09Merge "Merge android13-gs-pixel-5.10-tm-qpr3 into ↵Pindar Yang
android13-gs-pixel-5.10-udc" into android13-gs-pixel-5.10-udc
2023-05-09ANDROID: trusty: irq.ko removedJi Soo Shin
Bug: 276729665 Change-Id: I1d1046d81a97f1ffbe8c78b933eee2b21cdd7582 Signed-off-by: Ji Soo Shin <jisshin@google.com>
2023-05-09ANDROID: trusty: Make trusty-irq part of trusty-core module.Arve Hjønnevåg
The core trusty driver needs to make an std-call at init time. This might need interrupts, so merge these two modules, so loading the trusty module will never block waiting for the trusty-irq module to be loaded. Bug: 276729665 Change-Id: Iad3817b806ec18aeac1ea284a472466a4bc136db Signed-off-by: Arve Hjønnevåg <arve@android.com> (cherry picked from commit 599ad660291e9e6b440d7b25af31d48125b25e88)
2023-05-09ANDROID: Delay sharing sched memory with TrustyBrandon Anderson
Sharing memory with Trusty before interrupts are registered will fail. This change allocates the structure in the Linux driver as before and now initializes to default priorities in case Trusty is unabled to use (failure to register share or unsupported by Trusty). With this change, sharing the memory structure with Trusty is delayed until after interrupts are enabled by the call to of_platform_populate() This also separates unregister from free to keep the structure available until threads finish and are no longer accessing. Bug: 276729665 Change-Id: If0c9518251cd7bbf21ef83d5510fb3dd9b345bb2 Signed-off-by: Brandon Anderson <brandonand@google.com> (cherry picked from commit 33d66d02a4ef29c55225d36c8bff431508c83fe9)
2023-05-08soc/google: DSS: fix dss_log itemsHajun Sung
- DSS logging cannot support in kernel fix anymore. So, fix below log items with vendor hook trace method. : TASK, WORK, IRQ, HRTIMER BUG: 263076912 Signed-off-by: Hajun Sung <hajun.sung@samsung.com> Change-Id: I7a959f12b29ee163288ca6fc051752bdd5b625d5
2023-05-08google/debug: fix printf for uint64_tWill McVicker
Need to use %lld instead of %ld for uint64_t variables in a printf when using -Werror,-Wformat. Bug: 278827197 Change-Id: I360d6a1775a97fd9ad33e9e50671c2d1a0b3954a Signed-off-by: Will McVicker <willmcvicker@google.com>
2023-05-08Merge android13-gs-pixel-5.10-tm-qpr3 into android13-gs-pixel-5.10-udcPindar Yang
Bug: 255246572 Change-Id: I7796967a75bb8681598580e8e2adf763a019463b Signed-off-by: Pindar Yang <pindaryang@google.com>
2023-05-05vh: sched: Add a knob for boost adpf prioRick Yiu
Add a knob to enable/disable prio boost for adpf tasks. However, this knob should be set before adpf is active. Bug: 245675204 Change-Id: I4d38220bc6f51bd96228cb835ebecedcbec07a76 Signed-off-by: Rick Yiu <rickyiu@google.com>
2023-05-05vh: sched: Fix race with rt_mutexRick Yiu
Task could change sched class during prio change, so use task_rq_lock earlier to protect it. Bug: 280475729 Change-Id: I7063018573eb5acb5bf939cdb1006a57df0ec647 Signed-off-by: Rick Yiu <rickyiu@google.com>
2023-05-04google/debug: modify delta time vairable typeJone Chou
make sure all of delta time is possitive in code flow and change total timeout time in panic message to be second level. Bug: 278827197 Signed-off-by: Jone Chou <jonechou@google.com> Change-Id: Ie695db76c29c58273fc148f985562f367d7c2047
2023-05-04UPSTREAM: hid: bigben_probe(): validate report countPietro Borrello
[ Upstream commit b94335f899542a0da5fafc38af8edcaf90195843 ] bigben_probe() does not validate that the output report has the needed report values in the first field. A malicious device registering a report with one field and a single value causes an head OOB write in bigben_worker() when accessing report_field->value[1] to report_field->value[7]. Use hid_validate_values() which takes care of all the needed checks. Bug: 268589017 Fixes: 256a90ed9e46 ("HID: hid-bigbenff: driver for BigBen Interactive PS3OFMINIPAD gamepad") Bug: 280751063 Signed-off-by: Pietro Borrello <borrello@diag.uniroma1.it> Link: https://lore.kernel.org/r/20230211-bigben-oob-v1-1-d2849688594c@diag.uniroma1.it Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com> Signed-off-by: Sasha Levin <sashal@kernel.org> Signed-off-by: Lee Jones <joneslee@google.com> Signed-off-by: Wilson Sung <wilsonsung@google.com> Change-Id: I575c5d4c8a63a2065752a45c47b23cf725cc57ae
2023-05-04UPSTREAM: HID: check empty report_list in bigben_probe()Pietro Borrello
[ Upstream commit c7bf714f875531f227f2ef1fdcc8f4d44e7c7d9d ] Add a check for empty report_list in bigben_probe(). The missing check causes a type confusion when issuing a list_entry() on an empty report_list. The problem is caused by the assumption that the device must have valid report_list. While this will be true for all normal HID devices, a suitably malicious device can violate the assumption. Fixes: 256a90ed9e46 ("HID: hid-bigbenff: driver for BigBen Interactive PS3OFMINIPAD gamepad") Bug: 280751063 Signed-off-by: Pietro Borrello <borrello@diag.uniroma1.it> Signed-off-by: Jiri Kosina <jkosina@suse.cz> Signed-off-by: Sasha Levin <sashal@kernel.org> Signed-off-by: Wilson Sung <wilsonsung@google.com> Change-Id: Iadea6288226d5eeb050ea7741a16b3ac7e8ffaee
2023-05-04UPSTREAM: HID: bigben: use spinlock to safely schedule workersPietro Borrello
[ Upstream commit 76ca8da989c7d97a7f76c75d475fe95a584439d7 ] Use spinlocks to deal with workers introducing a wrapper bigben_schedule_work(), and several spinlock checks. Otherwise, bigben_set_led() may schedule bigben->worker after the structure has been freed, causing a use-after-free. Bug: 268589017 Bug: 280751063 Fixes: 4eb1b01de5b9 ("HID: hid-bigbenff: fix race condition for scheduled work during removal") Signed-off-by: Pietro Borrello <borrello@diag.uniroma1.it> Link: https://lore.kernel.org/r/20230125-hid-unregister-leds-v4-3-7860c5763c38@diag.uniroma1.it Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com> Signed-off-by: Sasha Levin <sashal@kernel.org> Signed-off-by: Lee Jones <joneslee@google.com> Signed-off-by: Wilson Sung <wilsonsung@google.com> Change-Id: Ia3f47b68264f6c492597b0b0603f6822dc624f2b
2023-05-04UPSTREAM: HID: bigben_worker() remove unneeded check on report_fieldPietro Borrello
[ Upstream commit 27d2a2fd844ec7da70d19fabb482304fd1e0595b ] bigben_worker() checks report_field to be non-NULL. The check has been added in commit 918aa1ef104d ("HID: bigbenff: prevent null pointer dereference") to prevent a NULL pointer crash. However, the true root cause was a missing check for output reports, patched in commit c7bf714f8755 ("HID: check empty report_list in bigben_probe()"), where the type-confused report list_entry was overlapping with a NULL pointer, which was then causing the crash. Bug: 268589017 Bug: 280751063 Fixes: 918aa1ef104d ("HID: bigbenff: prevent null pointer dereference") Signed-off-by: Pietro Borrello <borrello@diag.uniroma1.it> Link: https://lore.kernel.org/r/20230125-hid-unregister-leds-v4-2-7860c5763c38@diag.uniroma1.it Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com> Signed-off-by: Sasha Levin <sashal@kernel.org> Signed-off-by: Lee Jones <joneslee@google.com> Signed-off-by: Wilson Sung <wilsonsung@google.com> Change-Id: Ide36490e2e4482f6cf9af931bef052f172419e31
2023-05-04UPSTREAM: HID: bigben: use spinlock to protect concurrent accessesPietro Borrello
[ Upstream commit 9fefb6201c4f8dd9f58c581b2a66e5cde2895ea2 ] bigben driver has a worker that may access data concurrently. Proct the accesses using a spinlock. Bug: 268589017 Bug: 280751063 Fixes: 256a90ed9e46 ("HID: hid-bigbenff: driver for BigBen Interactive PS3OFMINIPAD gamepad") Signed-off-by: Pietro Borrello <borrello@diag.uniroma1.it> Link: https://lore.kernel.org/r/20230125-hid-unregister-leds-v4-1-7860c5763c38@diag.uniroma1.it Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com> Signed-off-by: Sasha Levin <sashal@kernel.org> Signed-off-by: Lee Jones <joneslee@google.com> Signed-off-by: Wilson Sung <wilsonsung@google.com> Change-Id: I8b7a34cba4c79c26f3d1912c97a83820d88bd5a4
2023-05-04ANDROID: incremental fs: Evict inodes before freeing mount dataPaul Lawrence
Since evicting inodes triggers writes to the backing file, which uses the mi_owner field from the mount_info struct, make sure inodes are evicted before we free the mount_info data Test: incfs_test Bug: 270117845 Bug: 268589017 Bug: 280751063 Change-Id: I673b2e0e04b5adc3998caf6f22443598a30338af Signed-off-by: Paul Lawrence <paullawrence@google.com> Signed-off-by: Wilson Sung <wilsonsung@google.com> (cherry picked from commit 7899985277527b29c47929a6d6a89c5c89b406ad)
2023-05-03tcpci_max77759: Mitigate weak charger false positivesBadhri Jagan Sridharan
AICL callbacks get triggered for both CHGIN and WCIN inputs. This change makes sure that incompatibility is only reported for the CHGIN input by checking for VBUS_PRESENT and SINKING_VBUS. Also, AICL gets triggered for very brief windows even for chargers that can do more than 10W. To filter these out, report weak charger only when AICL loop is active for atleast 10seconds + the power drawn is limited to 2.5W + the power source is reporting default power. Power drawn is sampled twice once during the begining and another time during the end of the 10 second window. Bug: 279317876 Bug: 279251052 Bug: 278018111 Test: Macbook C-to-C cable; Wireless charging input Change-Id: I4502eb3fc2e5aa346d3e1d86fa701da0b7264c63 Signed-off-by: Badhri Jagan Sridharan <badhri@google.com> (cherry picked from commit e8719a179f62f45faeef281277a2f334b6c7345e)
2023-05-03Revert "dts: gs201: gpu: Set system-coherency to ACE_LITE"Yunju Lee
This reverts commit f1ac8951e41913ccf9ed7437a9d0e15e7fd7b759. Reason for revert: UDC stability issue (b/263894024#comment7) Bug: 263894024 Change-Id: Icb812dbed4225f9ced8aa1a7d098d930a65e0fa2 Signed-off-by: Yunju Lee <yunjulee@google.com>
2023-05-03FROMGIT: usb: gadget: udc: core: Prevent redundant calls to pullupBadhri Jagan Sridharan
usb_gadget_connect calls gadget->ops->pullup without checking whether gadget->connected was previously set. Make this symmetric to usb_gadget_disconnect by returning early if gadget->connected is already set. Bug: 276227797 Bug: 280618560 Fixes: 5a1da544e572 ("usb: gadget: core: do not try to disconnect gadget if it is not connected") Cc: stable@vger.kernel.org Change-Id: I60b23114c0df7b282bcb1ce638683960305992c5 Signed-off-by: Badhri Jagan Sridharan <badhri@google.com> Link: https://lore.kernel.org/r/20230407030741.3163220-2-badhri@google.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commit a3afbf5cc887fc3401f012fe629810998ed61859 https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git/ usb-next) (cherry picked from commit d2b52cbb55ccbb6c62fe4b4fc57f83c9bb5c4e55)
2023-05-03BACKPORT: FROMGIT: usb: gadget: udc: core: Invoke usb_gadget_connect only ↵Badhri Jagan Sridharan
when started usb_udc_connect_control does not check to see if the udc has already been started. This causes gadget->ops->pullup to be called through usb_gadget_connect when invoked from usb_udc_vbus_handler even before usb_gadget_udc_start is called. Guard this by checking for udc->started in usb_udc_connect_control before invoking usb_gadget_connect. Guarding udc->vbus, udc->started, gadget->connect, gadget->deactivate related functions with connect_lock. usb_gadget_connect_locked, usb_gadget_disconnect_locked, usb_udc_connect_control_locked, usb_gadget_udc_start_locked, usb_gadget_udc_stop_locked are called with this lock held as they can be simulataneously invoked from different code paths. Adding an additional check to make sure udc is started(udc->started) before pullup callback is invoked. Bug: 276227797 Bug: 280618560 Fixes: 628ef0d273a6 ("usb: udc: add usb_udc_vbus_handler") Cc: stable@vger.kernel.org Change-Id: Iee7ac5fdf880be5565b9f178708240d619141237 Signed-off-by: Badhri Jagan Sridharan <badhri@google.com> Link: https://lore.kernel.org/r/20230407030741.3163220-1-badhri@google.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commit 0db213ea8eed5534a5169e807f28103cbc9d23df https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git/ usb-next) (cherry picked from commit af9ff24a2317f5e4ab02559f54107926289c5a20)
2023-05-03arm64/configs: gs101/gs201: enable PIXEL_SUSPEND_DIAGJone Chou
Enable SUSPEND_DIAG Bug: 278827197 Signed-off-by: Jone Chou <jonechou@google.com> Change-Id: Ie8c19233e43b98d90553209598fb1974523e37d2
2023-05-03google/debug: gs101/gs201: Introduce pixel suspend diagJone Chou
Depends on DEBUG_SNAPSHOT drivers. Bug: 278827197 Signed-off-by: Jone Chou <jonechou@google.com> Change-Id: Ibc43e499ddecf8a01d56659f6d32049f213e3e35
2023-05-03arm64/dts: gs101/gs201: Add Pixel Suspend DiagJone Chou
Also added pixel_suspend_diag_reserved carveout memory. Bug: 278827197 Signed-off-by: Jone Chou <jonechou@google.com> Change-Id: I5eb32cbd4363ff4ce8b31bc162ee97002816420a
2023-05-03google/debug: Pixel Suspend Diag driverJone Chou
Extracted suspend_diag part from debug-snapshot-log driver. Bug: 278827197 Signed-off-by: Jone Chou <jonechou@google.com> Change-Id: I74ed08ecb1591c46ee338141a605500f0f43c3d4
2023-05-02vh: sched: reset uclamp when duplicating structChungkai Mei
Since child's vendor struct has been initialized during duplication, so use parent's uclamp_fork_reset to reset uclamp instead Bug: 280032474 Change-Id: I87e12a9f0d0dff1b0a6f6bc2301bac4033bd8b83 Signed-off-by: Chungkai Mei <chungkai@google.com>
2023-05-02dma: pl330: fix deadlock in SPI transferWendly Li
The s3c64xx spi driver locks the spinlock until dma_prepare() is done. If there are pending DMA tasks, dma driver will call s3c64xx_spi_dmacb() inside dma_prepare(). Then s3c64xx_spi_dmacb() would lock the same spinlock again to cause the deadlock. So I try to call s3c64xx_spi_dmacb() in another thread to avoid deadlock. Bug: 276896780 Test: check SPI works properly Change-Id: Id78c65be4c1740ff56dafe9f478e0039e4aaa2ae Signed-off-by: Wendly Li <wendlyli@google.com>
2023-05-02vh: sched: Implement tapered dvfs_headroomQais Yousef
The linear one is very aggressive at the top frequencies. 25% headroom means that we saturate the cluster very quickly. Given how expensive the new clusters are at the top frequencies, it'd be smarter to taper the headroom as we approach the max capacity of the cluster. Implement that by simply taking the headroom of the different between curret util and capacity of the CPU. The lower frequencies will get a big headroom, but as we approach max capacity, we'll get almost no headroom. This behavior is control via procfs knob. Only CFS + RT utilization use the tapered version. irq is usually small and this can lead to potentially undesired boost almost when there are no irqs running. DL shouldn't need any headroom in general. So keeping it using the default non tapered version as well. Bug: 261705301 Signed-off-by: Qais Yousef <qyousef@google.com> Change-Id: I05bbe9a44a0fee48f3f7f11dadc691f039f1acda
2023-05-01vh: sched: Refine per-group tunables for uclamp on niceRick Yiu
1. clamp uclamp on nice values with other uclamp values 2. assure the correct order of prio for each levels 3. change the default prio values Bug: 254737034 Change-Id: I637da2cc9cdc722643f6dad179b1fe155b3ea293 Signed-off-by: Rick Yiu <rickyiu@google.com>
2023-04-28vh: sched: Fix lockdep warningQais Yousef
register_trace_...() functions can end up holding a mutex. But when doing stop_machine() to make sure we initialize our ini_vendor_struct_data() correctly, we register the handler there too, but this causes LOCKDEP to rightfully complain about sleeping in atomic context. Do the registration before calling stop_machine(), but make the handler wait until we have done the intiailization stop before it can do anything to avoid any potential race. Bug: 280072719 Signed-off-by: Qais Yousef <qyousef@google.com> Change-Id: I2e13b4fa51c64328b6c4fad905740a7e44de47a9
2023-04-28vh: sched: Fix iowait boost updatesQais Yousef
Commit 44070558c0071 ("vh: sched: Block cpufreq updates until uclamp filters are applied") accidently broke iowait boost as it forgot to pass on the flag when we temporarily block cpufreq updates. Which meant when we go back and resume, the iowait update isn't applied causing some regression on workloads that are sensitive to this parameter. Rectify it by passing the iowait boost flag so that we can remember to apply the boost when we resume the cpufreq updates. Bug: 279805535 Signed-off-by: Qais Yousef <qyousef@google.com> Change-Id: Id1949cb88e636cf2e916fe0be5866c99c84dfead
2023-04-28BACKPORT: usb: dwc3: gadget: Ignore End Transfer delay on teardownThinh Nguyen
If we delay sending End Transfer for Setup TRB to be prepared, we need to check if the End Transfer was in preparation for a driver teardown/soft-disconnect. In those cases, just send the End Transfer command without delay. In the case of soft-disconnect, there's a very small chance the command may not go through immediately. But should it happen, the Setup TRB will be prepared during the polling of the controller halted state, allowing the command to go through then. In the case of disabling endpoint due to reconfiguration (e.g. set_interface(alt-setting) or usb reset), then it's driven by the host. Typically the host wouldn't immediately cancel the control request and send another control transfer to trigger the End Transfer command timeout. Bug: 276227797 Fixes: 4db0fbb60136 ("usb: dwc3: gadget: Don't delay End Transfer on delayed_status") Cc: stable@vger.kernel.org Signed-off-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com> Link: https://lore.kernel.org/r/f1617a323e190b9cc408fb8b65456e32b5814113.1670546756.git.Thinh.Nguyen@synopsys.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commit c4e3ef568539) Bug: 279882628 Change-Id: If49c07d3822e8d637f7dca337c895b0fd1a156f2 Signed-off-by: Ray Chi <raychi@google.com> (cherry picked from 2f2c6f2cf0602ca2b82c70c49aa4e3dab0ab8e11)
2023-04-28BACKPORT: usb: dwc3: gadget: Only End Transfer for ep0 data phaseThinh Nguyen
The driver shouldn't be able to issue End Transfer to the control endpoint at anytime. Typically we should only do so in error cases such as invalid/unexpected direction of Data Phase as described in the control transfer flow of the programming guide. It _may_ end started data phase during controller deinitialization from soft disconnect or driver removal. However, that should not happen because the driver should be maintained in EP0_SETUP_PHASE during driver tear-down. On soft-connect, the controller should be reset from a soft-reset and there should be no issue starting the control endpoint. Bug: 276227797 Signed-off-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com> Link: https://lore.kernel.org/r/3c6643678863a26702e4115e9e19d7d94a30d49c.1650593829.git.Thinh.Nguyen@synopsys.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commit ace17b6ee4f9) Bug: 279882628 Change-Id: If26394e9e7be543169b3f390b7ec89795775ca03 Signed-off-by: Ray Chi <raychi@google.com> (cherry picked from f3d296bfc1c49c1b5bc690a346d7b880dd286adf)
2023-04-28BACKPORT: usb: dwc3: gadget: Don't delay End Transfer on delayed_statusThinh Nguyen
The gadget driver may wait on the request completion when it sets the USB_GADGET_DELAYED_STATUS. Make sure that the End Transfer command can go through if the dwc->delayed_status is set so that the request can complete. When the delayed_status is set, the Setup packet is already processed, and the next phase should be either Data or Status. It's unlikely that the host would cancel the control transfer and send a new Setup packet during End Transfer command. But if that's the case, we can try again when ep0state returns to EP0_SETUP_PHASE. Bug: 276227797 Fixes: e1ee843488d5 ("usb: dwc3: gadget: Force sending delayed status during soft disconnect") Cc: stable@vger.kernel.org Signed-off-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com> Link: https://lore.kernel.org/r/3f9f59e5d74efcbaee444cf4b30ef639cc7b124e.1666146954.git.Thinh.Nguyen@synopsys.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commit 4db0fbb60136) Bug: 279882628 Change-Id: Iff7cba3b942f1f6f51814ab8ef7d5c94132d47bf Signed-off-by: Ray Chi <raychi@google.com> (cherry picked from ebf7be52971d2b864e1ca4644381fc95870cc191)
2023-04-28BACKPORT: usb: dwc3: gadget: Do not clear ep delayed stop flag during ep disableWesley Cheng
DWC3_EP_DELAYED_STOP is utilized to defer issuing the end transfer command until the subsequent SETUP stage, in order to avoid end transfer timeouts. During cable disconnect scenarios, __dwc3_gadget_ep_disable() is responsible for ensuring endpoints have no active transfers pending. Since dwc3_remove_request() can now exit early if the EP delayed stop is set, avoid clearing all DEP flags, otherwise the transition back into the SETUP stage won't issue an endxfer command. Bug: 276227797 Fixes: 2b2da6574e77 ("usb: dwc3: Avoid unmapping USB requests if endxfer is not complete") Reviewed-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com> Signed-off-by: Wesley Cheng <quic_wcheng@quicinc.com> Link: https://lore.kernel.org/r/20220919231213.21364-1-quic_wcheng@quicinc.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commit 76bff31c7fba) Bug: 279882628 Change-Id: I4453c4ddfe7ad15e9c5b1ba2be09d20cac72b0bf Signed-off-by: Ray Chi <raychi@google.com> (cherry picked from c0b28ac8b3976be4277de828aefc914ce2741f95)
2023-04-28BACKPORT: usb: dwc3: Avoid unmapping USB requests if endxfer is not completeWesley Cheng
If DWC3_EP_DELAYED_STOP is set during stop active transfers, then do not continue attempting to unmap request buffers during dwc3_remove_requests(). This can lead to SMMU faults, as the controller has not stopped the processing of the TRB. Defer this sequence to the EP0 out start, which ensures that there are no pending SETUP transactions before issuing the endxfer. Bug: 276227797 Reviewed-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com> Signed-off-by: Wesley Cheng <quic_wcheng@quicinc.com> Link: https://lore.kernel.org/r/20220901193625.8727-2-quic_wcheng@quicinc.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commit 2b2da6574e77) Bug: 279882628 Change-Id: Ia5a92c41136ce8fbdb2666527cb1b73e2941e3e1 Signed-off-by: Ray Chi <raychi@google.com> (cherry picked from 1c7619e6803be6fb436d94b6f46c728da431b21f)
2023-04-28BACKPORT: usb: dwc3: gadget: Delay issuing End TransferThinh Nguyen
If the controller hasn't DMA'ed the Setup data from its fifo, it won't process the End Transfer command. Polling for the command completion may block the driver from servicing the Setup phase and cause a timeout. Previously we only check and delay issuing End Transfer in the case of endpoint dequeue. Let's do that for all End Transfer scenarios. Bug: 276227797 Signed-off-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com> Link: https://lore.kernel.org/r/2fcf3b5d90068d549589a57a27a79f76c6769b04.1650593829.git.Thinh.Nguyen@synopsys.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commit f66eef8fb898) Bug: 279882628 Change-Id: I94eaeae243f6c1a5f3da362ce4965fca59b6cf6e Signed-off-by: Ray Chi <raychi@google.com> (cherry picked from b81867fc00a4f5889cd4193095e202cc45afd15c)
2023-04-28BACKPORT: usb: dwc3: gadget: Wait for ep0 xfers to complete during dequeueThinh Nguyen
If a Setup packet is received but yet to DMA out, the controller will not process the End Transfer command of any endpoint. Polling of its DEPCMD.CmdAct may block setting up TRB for Setup packet, causing a command timeout. This may occur if the driver doesn’t service the completion interrupt of the control status stage yet due to system latency, then it won’t prepare TRB and start the transfer for the next Setup Stage. To the host side, the control transfer had completed, and the host can send a new Setup packet at this point. In the meanwhile, if the driver receives an async call to dequeue a request (triggering End Transfer) to any endpoint, then the driver will service that End transfer first, blocking the control status stage completion handler. Since no TRB is available for the Setup stage, the Setup packet can’t be DMA’ed out and the End Transfer gets hung. The driver must not block setting up of the Setup stage. So track and only issue the End Transfer command only when there’s Setup TRB prepared so that the controller can DMA out the Setup packet. Delay the End transfer command if there's no Setup TRB available. This is applicable to all DWC_usb3x IPs. Bug: 276227797 Co-developed-by: Wesley Cheng <quic_wcheng@quicinc.com> Signed-off-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com> Signed-off-by: Wesley Cheng <quic_wcheng@quicinc.com> Link: https://lore.kernel.org/r/20220309205402.4467-1-quic_wcheng@quicinc.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commit e4cf6580ac74) Bug: 279882628 Change-Id: I785d0989a482720bbf544d121f9ea3980b7cfe5e Signed-off-by: Ray Chi <raychi@google.com> (cherry picked from b3f4451b82e791ea02ec8d8668319fda3c17ce59)
2023-04-28BACKPORT: usb: dwc3: gadget: move cmd_endtransfer to extra functionMichael Grzeschik
This patch adds the extra function __dwc3_stop_active_transfer to consolidate the same codepath. Bug: 276227797 Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de> Link: https://lore.kernel.org/r/20220306211251.2281335-3-m.grzeschik@pengutronix.de Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commit e192cc7b5239) Bug: 279882628 Change-Id: I200a354ae39afb6d58a92f98fef183a51e3810bb Signed-off-by: Ray Chi <raychi@google.com> (cherry picked from commit 7ded591761443d03ff8eca814da3f085dee7e9c4)
2023-04-27soc/google/cpif: Create logbuffer for cpif driverMahesh Kallelil
We are creating a dedicated logbuffer for the cpif driver so that we can add any necessary debug logs for issue triaging without spamming the kernel ring buffer. The new logbuffer will be at /dev/logbuffer_cpif. Test: Tested device bootup and new logbuffer Bug: 278500379 Change-Id: Ie8eed2bb82ab98b1d33030497f08386a585998e0 Signed-off-by: Mahesh Kallelil <kallelil@google.com>
2023-04-28arm64/dts: AACR enabled by defaultJenny Ho
Bug: 268505211 Change-Id: I98c9dc5208a62201b4726a956075f4364c0d12f5 Signed-off-by: Jenny Ho <hsiufangho@google.com>
2023-04-27vh: sched: Add a new knob to control dvfs headroomQais Yousef
Migration margins and dvfs headroom don't have 1:1 mapping. Decouple them so that we can set them individually. Bug: 261705301 Signed-off-by: Qais Yousef <qyousef@google.com> Change-Id: Icdf0605b56f0c03c50cb44fe350ac0ec98b50529
2023-04-27vh: sched: Fix sched_util_est_{se, cfs} trace eventQais Yousef
We must clear a flag before reading the enqueued field. Bug: 279487443 Signed-off-by: Qais Yousef <qyousef@google.com> Change-Id: I8f9a3bc9ad94c363872128e75d3f38520c67c3e8
2023-04-27media: mfc: remove correction of profile or levelAyoungSim
If the profile or level recommended for resolution is not set driver has corrected for image quality. This feature changes the settings of the user and causes CTS failure, so remove it. Bug: 277178868 Test: atest android.mediav2.cts.EncoderProfileLevelTest Signed-off-by: AyoungSim <a.sim@samsung.com> Change-Id: Iadd8b1f9df66ea5cf6e706e5ebf9cd8cc298a7a6 Signed-off-by: wenchangliu <wenchangliu@google.com>