During audio subsystem restart, the audio driver will unregister
its notifier on shutdown and re-register when subsystem is up again.
If a regular USB device, and not a Type-C analog audio device, is
currently connected, we should not re-write the register settings
over I2C to the FSA4480 IC as that will make the D+/D- pins to
be momentarily switched off an on, which causes the USB controller
to detect a momentary disconnect and re-connect of the attached
peripheral.
Fix this by first reading the switch control and enable registers,
and if being updated with the same values, don't re-write them to
avoid unnecessarily resetting D+/D- or SBU1/2.
Change-Id: I9d4e092e9782ca64caf0982958b3e5d05744aa92
Signed-off-by: Jack Pham <jackp@codeaurora.org>
Setting opmode to invalid values would lead to a
paging fault failure when there is an access to the
power_operation_mode.
Prevent this by checking the validity of the value
that the opmode is being set.
Change-Id: I9863df1e84a947fb04e29d214c1dec61ccc5ee72
Signed-off-by: Sriharsha Allenki <sallenki@codeaurora.org>
Enable support for CONFIG_X86_X2APIC, if available. This speeds up
operation in a hypervisor, as APIC is handled via MSRs.
Bug: 171287650
Change-Id: Ie3cf57d07b8dde08ec609dfb031cfb0029218501
Signed-off-by: Abdulla Kamar <abdulla@google.com>
This ensures that two concurrent writers through iptables-restore
cannot overwrite each other. Fixes the following-
<6> Unable to handle kernel paging request at
virtual address 006b6b6b6b6b6bc5
<6> [006b6b6b6b6b6bc5] address between user
and kernel address ranges
<2> pc : ipt_do_table+0x3b8/0x660
<2> lr : ipt_do_table+0x31c/0x660
<2> Call trace:
<2> ipt_do_table+0x3b8/0x660
<2> iptable_mangle_hook+0x58/0xf8
<2> nf_hook_slow+0x48/0xd8
<2> __ip_local_out+0xf4/0x138
<2> __ip_queue_xmit+0x348/0x3a0
<2> ip_queue_xmit+0x10/0x18
<2> __tcp_transmit_skb+0x734/0xaa8
<2> __tcp_retransmit_skb+0x5b8/0x930
<2> tcp_send_loss_probe+0x19c/0x300
<2> tcp_write_timer_handler+0x14c/0x238
<2> tcp_write_timer+0x74/0xa0
<2> call_timer_fn+0xc0/0x1c0
<2> run_timer_softirq+0x2f8/0xa30
<2> __do_softirq+0x1dc/0x384
This enforces the cleanup of the old entries under the xt_table lock.
CRs-fixed: 2612021
Change-Id: If721ceb7891e58847eae5c1ad9c5e9aea4c569e3
Signed-off-by: Subash Abhinov Kasiviswanathan <subashab@codeaurora.org>
Legacy targets don't use HFI dispatch queues so there is no need to "fix"
their dispatch queue ID.
Change-Id: I8444c41c18721198bee8501b8d0ef19ea2b0192e
Signed-off-by: Carter Cooper <ccooper@codeaurora.org>
Ensure we don't send garbage as the message data.
Change-Id: I35786a1a6d8c86a555198ae07d688048f5b6bc6c
Signed-off-by: Carter Cooper <ccooper@codeaurora.org>
commit 262e6ae7081d ("modules: inherit TAINT_PROPRIETARY_MODULE")
changes the size of 'struct module' a bit by adding a single boolean
value to the middle. Move things around a bit and take up a space to
preserve the abi so that nothing changes with the abi before that commit
was merged.
This might be able to be dropped at the next Android KABI "Break", if
one happens.
Bug: 171277690
Fixes: 262e6ae7081d ("modules: inherit TAINT_PROPRIETARY_MODULE")
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Ie31a6fcea384ad665248c87f7abfde4d214da70a
If a TAINT_PROPRIETARY_MODULE exports symbol, inherit the taint flag
for all modules importing these symbols, and don't allow loading
symbols from TAINT_PROPRIETARY_MODULE modules if the module previously
imported gplonly symbols. Add a anti-circumvention devices so people
don't accidentally get themselves into trouble this way.
Comment from Greg:
"Ah, the proven-to-be-illegal "GPL Condom" defense :)"
Bug: 171277690
[jeyu: pr_info -> pr_err and pr_warn as per discussion]
Link: http://lore.kernel.org/r/20200730162957.GA22469@lst.de
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jessica Yu <jeyu@kernel.org>
(cherry picked from commit 262e6ae7081df304fc625cf368d5c2cbba2bb991)
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Id7c1af6bb8523bc39bda1efc661929d9ea0ccb20
Currently next wakeup is stored per lpm_cpu domain which
have only last cpu's next wakeup. This overrides early
wakeups of previous cpus in the same domain.
Fix this by using per cpu next hrtimer.
Change-Id: Ic99e82cbb2a1b4eb6fa578b40045fab2bb22a557
Signed-off-by: Raghavendra Kakarla <rkakarla@codeaurora.org>
Report the GPLONLY status through a new argument.
Bug: 157965270
Bug: 171277690
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jessica Yu <jeyu@kernel.org>
(cherry picked from commit ef1dac6021cc8ec5de02ce31722bf26ac4ed5523)
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I93285e06e380509b11356256da4d3d5a8738e252
Use the same spelling variant as the rest of the file.
Bug: 157965270
Bug: 171277690
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jessica Yu <jeyu@kernel.org>
(cherry picked from commit cd8732cdcc37d7077c4fa2c966b748c0662b607e)
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I0ad6d1dcbe39053566bb922b9a71359f753df85c
When the device exits suspend/deep sleep in host mode with
peripherals connected, the peripherals and root hub failed to
resume because the xhci stack has not resumed yet, leading to
the re-enumeration of the connected peripherals.
Fix this by resuming the glue driver, core and xhci plat driver
un-conditionally as part of suspend/deep sleep exit.
Change-Id: Ie1cbe174aec04ddde5779ad4fabdf075cffa955d
Signed-off-by: Sriharsha Allenki <sallenki@codeaurora.org>
On systems with Hypervisor support, writes to SMR registers
are trapped by Hypervisor where the value is vetted and gets
written to the SMR register only if valid. If such SMR writes
fails, the SID value doesn't get populated to the stream mapping
table, and any device transaction would lead to USF which would
crash the system. Hence, to avoid any USF fault, fail the device
attach sequence.
Change-Id: I1435c7aa8290d7c2916cc86cc30cfa1cefae3910
Signed-off-by: Sudarshan Rajagopalan <sudaraja@codeaurora.org>
Signed-off-by: Prakash Gupta <guptap@codeaurora.org>
each_symbol_section is only used inside of module.c.
Bug: 157965270
Bug: 171277690
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jessica Yu <jeyu@kernel.org>
(cherry picked from commit a54e04914c211b5678602a46b3ede5d82ec1327d)
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I5debe30f150847281874d9b2c47952f9036d37d2
To use block crypto based inline encryption mechanism
storage device driver should create a keyslot manager
and register it with device request queue. To achieve this
pass request queue pointer during host controller initialization
where request queue can be updated with keyslot manager.
Change-Id: I71f0005a1ad8867b6210e92878b8c112d436688e
Signed-off-by: Sarthak Garg <sartgarg@codeaurora.org>
Add compatible string in mailbox driver to match scuba and monaco
apcs_glb device node.
Change-Id: I5d07413485c73df769a7922e82eb4729321acb7b
Signed-off-by: Vivek Golani <vgolani@codeaurora.org>
If unload app was failed due to EBUSY, qseecom will not free
app list entry, but just restore app ref_cnt and return EBUSY
to client.
Change-Id: If7b20b52690a34ba9cf1b3c3e96f84583d221dec
Signed-off-by: Zhen Kong <zkong@codeaurora.org>
Currently USB remote wakeup functionality is not fully supported.
Hence set remote_wakeup_allowed to false instead of setting true.
This helps to disconnect USB IPA GSI channel instead of suspending
on getting suspend interrupt when USB is enumerated into high speed.
It prevents getting any unwanted remote wakeup from IPA which is
racing against USB LPM functionality causing unclock USB controller
register access while handling remote wakeup.
Change-Id: I1691e3989b9d008ea541a51dd51aafca116fe0ff
Signed-off-by: Mayank Rana <mrana@codeaurora.org>
* refs/heads/tmp-8540985:
ANDROID: trace: sched: add sched blocked tracepoint which dumps out context of sleep.
ANDROID: ABI: update allowed list for QCOM
ANDROID: Update KMI_GENERATION after KMI change
ANDROID: GKI: update the .xml file with the October 15 ABI breakages
ANDROID: GKI: fs.h: add Android ABI padding to struct file
ANDROID: vendor_hooks: Add a vendor data to file struct
ANDROID: vendor_hooks: Extend the vendor data array in task_struct
ANDROID: GKI: add fields required to enable CONFIG_TRANSPARENT_HUGEPAGE
ANDROID: Drop abi_gki_aarch64_workarounds
UPSTREAM: ehci-hcd: Move include to keep CRC stable
ANDROID: GKI: update xiaomi symbol list
ANDROID: GKI: update Vivo symbol list
ANDROID: sysrq: add vendor hook for sysrq crash information
ANDROID: ABI: update allowed list for galaxy
ANDROID: GKI: update Vivo symbol list
ANDROID: adding __nocfi to cpuidle_enter_state
ANDROID: ABI: update allowed list for galaxy
ANDROID: workqueue: add vendor hook for wq lockup information
Change-Id: I29b7a5396075c41257cba3d4595356df755490f1
Signed-off-by: Blagovest Kolenichev <bkolenichev@codeaurora.org>
Update to store power_interval_timeout in msec instead of jiffies,
to make it consistent across the board irrespective of the HZ value.
Change-Id: I157da71210268b5b436670452a4bd4ac6abbdcc7
Signed-off-by: Rohan Sethi <rohsethi@codeaurora.org>
Few alpha PLLs would require to be able to slew in the same VCO mode, which
means the PLL would be able to update the new frequency L value without
turning it off. But to be support this feature the PLL needs to calibrated
at the mid of the VCO range and then enabled.
Add support for dynamic update in which the frequency can be changed
without turning off the PLL. and also Update list_register operation
to read the pll offset defined in PLL register map to avoid mismatch
alpha PLL.
Change-Id: Idbb374be8710cdcd80ab3c4ed57f89f00ed15d23
Signed-off-by: Taniya Das <tdas@codeaurora.org>
Currently glue driver tries to issue an end transfer for control
endpoints in case of usb disconnect or composition switch through
dwc3_ep0_end_control_data only if ep number is 1. Just before
issuing end transfer it checks the direction and based on that it
either issues end transfer for ep0 out or ep0 in through
dwc3_ep0_end_control_data. If remove requests will be called for
ep0 out endpoint then it doesn't issue an end transfer as resource
index will be zero for ep0out endpoint and end transfer will also
not be issued through dwc3_ep0_end_control_data as ep number is 0,
but glue driver unmaps and gives back all the requests. This
sometimes may lead to smmu fault as the requests were unmapped
before issuing an end transfer.
Fix this by issuing an end transfer from remove requests for
control endpoints if ep number is 0. In this scenario it can be
ensured that we issue end transfer for control endpoints before
unmapping and giving back the requests.
Change-Id: I6022c0b4e7cd62bfb7087313e39ff0ea3c9cc253
Signed-off-by: Rohith Kollalsi <rkollals@codeaurora.org>
If receive callback fails, returning error can cause interrupt
handler to exit. if old interrupts have been missed glink may
not read new packets from rx fifo.
Print error message if callback fails but do not return any error
to interrupt handler so that it can continue reading pending data in
rx fifo even if old interrupts were missed and no new interrupt is
coming from remote host.
Change-Id: I1adec1e2ba7337008ecc2d71bf5f96c331a22695
Signed-off-by: Deepak Kumar Singh <deesin@codeaurora.org>
For A6XX targets skip dumping of SP_INST_TAG and SP_INST_DATA to fix
race in responding crashdumper status register through host path, when
crashdumper is busy reading SP data.
Change-Id: I8eb5647cefdba23571acc21f682782cfbf944eb1
Signed-off-by: Pankaj Gupta <gpankaj@codeaurora.org>
Code static analyzer reports 'pivot' variable is uninitialized.
Let's fix this by initializing it with NULL and add necessary
checks.
Change-Id: I2aa521002ea55fa1e44b3ce17262a9093dd130a0
Signed-off-by: Mukesh Ojha <mojha@codeaurora.org>
Increase max host count to 14, inorder to accommodate newly
added sybsystem wpss with smem host id 13.
Change-Id: I48c7e576d3478bdc4645c44aa435900f3eaaa2c4
Signed-off-by: Deepak Kumar Singh <deesin@codeaurora.org>