Age | Commit message (Collapse) | Author |
|
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>
|
|
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>
|
|
android13-gs-pixel-5.10-udc
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
android13-gs-pixel-5.10-udc" into android13-gs-pixel-5.10-udc
|
|
Bug: 276729665
Change-Id: I1d1046d81a97f1ffbe8c78b933eee2b21cdd7582
Signed-off-by: Ji Soo Shin <jisshin@google.com>
|
|
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)
|
|
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)
|
|
- 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
|
|
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>
|
|
Bug: 255246572
Change-Id: I7796967a75bb8681598580e8e2adf763a019463b
Signed-off-by: Pindar Yang <pindaryang@google.com>
|
|
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>
|
|
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>
|
|
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
|
|
[ 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
|
|
[ 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
|
|
[ 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
|
|
[ 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
|
|
[ 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
|
|
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)
|
|
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)
|
|
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>
|
|
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)
|
|
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)
|
|
Enable SUSPEND_DIAG
Bug: 278827197
Signed-off-by: Jone Chou <jonechou@google.com>
Change-Id: Ie8c19233e43b98d90553209598fb1974523e37d2
|
|
Depends on DEBUG_SNAPSHOT drivers.
Bug: 278827197
Signed-off-by: Jone Chou <jonechou@google.com>
Change-Id: Ibc43e499ddecf8a01d56659f6d32049f213e3e35
|
|
Also added pixel_suspend_diag_reserved carveout memory.
Bug: 278827197
Signed-off-by: Jone Chou <jonechou@google.com>
Change-Id: I5eb32cbd4363ff4ce8b31bc162ee97002816420a
|
|
Extracted suspend_diag part from debug-snapshot-log driver.
Bug: 278827197
Signed-off-by: Jone Chou <jonechou@google.com>
Change-Id: I74ed08ecb1591c46ee338141a605500f0f43c3d4
|
|
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>
|
|
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>
|
|
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
|
|
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>
|
|
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
|
|
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
|
|
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)
|
|
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)
|
|
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)
|
|
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)
|
|
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)
|
|
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)
|
|
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)
|
|
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)
|
|
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>
|
|
Bug: 268505211
Change-Id: I98c9dc5208a62201b4726a956075f4364c0d12f5
Signed-off-by: Jenny Ho <hsiufangho@google.com>
|
|
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
|
|
We must clear a flag before reading the enqueued field.
Bug: 279487443
Signed-off-by: Qais Yousef <qyousef@google.com>
Change-Id: I8f9a3bc9ad94c363872128e75d3f38520c67c3e8
|
|
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>
|