The neuron channels may init and probe before the secondary vm is
loaded and the resources queried from resource manager. This results
in either a blocking call or EAGAIN returned when sending a doorbell.
Move the msgq_init call from the probe to the channel sync thread. This
will ensure the init thread can continue if the doorbell send api needs
to block or busywait loop.
Change-Id: I0f5562968d59a3dc0a361aca9e4e60ffebcb70be
Signed-off-by: Chris Lew <clew@codeaurora.org>
Currently, doorbell registration fails if a client driver attempts to
probe before the doorbell probe since data structures are not
initialized. Add an initialized flag which registration functions can
check if data structures are initialized.
Doorbell RX registration also fails if done before cap table is
populated since RX IRQ is not yet known and RX registration attempts to
register IRQ handler. IRQ registration should happen when populating the
doorbell capabilities regardless of whether a client has registered.
Change-Id: I448b291a5885683bee48b2eb34b51faba69a03bf
Signed-off-by: Elliot Berman <eberman@codeaurora.org>
Currently, the cap-ids for doorbells are initialized to 0. However, 0 is
a valid value for cap-id. Instead, initialize cap-ids to HH_CAPID_INVAL
in the doorbell driver.
Change-Id: Ia1588ed372f0657444e1ab39eab9e6c1e6d3d156
Signed-off-by: Elliot Berman <eberman@codeaurora.org>
RM-VM(Resource Manager) send various vm status notifications(INIT/READY/
RUNNING etc) back to primary VM while PIL loader is loading the VM
images. Listern to these notifications and make a call to get the
hypervisor resources to configure doorbell and message queues.
Change-Id: Ia378a1df82ef960e2c11bf715100e38de82b670c
Signed-off-by: Murali Nalajala <mnalajal@codeaurora.org>
VMs need to make GET_HYP_RESOURCE call to get resource information (dbl,
msgqs) associated between VMs. If the caller VM want to get resources
associated with another VM, caller VM has to supply the VMID of the
end point. Add support to get hypervisor resources.
Change-Id: Id5f16796ba2a84917c9a072cfeb36d24010e34da
Signed-off-by: Murali Nalajala <mnalajal@codeaurora.org>
Haven hypervisor provides RM dt entries in a slightly different format
than has been used. Namely: the compatible string, capids are now
described by "reg" property, VMID/owner vmid is in a sibling DT node,
and names of some properties are changed. Thus, update RM driver to
parse accordingly. Common message queue dt parsing was moved into the
msgq driver helper function "hh_msgq_probe".
Change-Id: If3fe026bb6055267705a19d8ed7fd90ef0934270
Signed-off-by: Elliot Berman <eberman@codeaurora.org>
This change enables spcom driver configuration as DLKM for GKI.
Change-Id: Ica83f7b5cec28ab227250e72c3ae09e6bef1a906
Signed-off-by: Konstantin Dorfman <kdorfman@codeaurora.org>
On SSR, FW writes hang data in the carved out region from
existing DDR memory, the platform driver copies the hang
event data from the fixed offset to local buffer and sends
the buffer and length to host driver via CNSS_HANG_EVENT
event.
Change-Id: I5928821770086547b4fe17c30a967ea059b39394
Signed-off-by: Mohammed Siddiq <msiddiq@codeaurora.org>
When switch mode with etr being enabled more than one time, it needs
to reset all the etr settings for previous mode instead of return busy.
Change-Id: I243a6d910bb3dd8ac9ca30dadbd1c6ab3cefd00f
Signed-off-by: Mao Jinlong <jinlmao@codeaurora.org>
There is no need to proceed link down recovery if link has been recovered
by retries during power on sequence.
Change-Id: I876f2e239b519d4230b5c115cdc05ff7650f5cd1
Signed-off-by: Yue Ma <yuem@codeaurora.org>
With the valid SMMU IOVA range WLAN firmware is able to detect invalid
host DDR access before SMMU fault happens.
Change-Id: I3a3aac4e1da7bb7747bfe3b352df33fc87221860
Signed-off-by: Yue Ma <yuem@codeaurora.org>
EUD extcon device doesn't provide speed and cc_state information.
Hence skip querying speed and cc_state with it.
Change-Id: Ibe9e327fa412c8fd1fac0b1db3ba3be5d210f33c
Signed-off-by: Mayank Rana <mrana@codeaurora.org>
Agera PLL print registers are required to get the PLL values
from the debugfs, thus add support for the same.
Change-Id: I4b708958e1125ce7e8eab945a3c15113739230d4
Signed-off-by: Taniya Das <tdas@codeaurora.org>
Agera PLL is required to be supported from HLOS clock controller, thus
add support for agera pll ops.
Change-Id: I77b2a741667accf9bd0eecfcd0dabfaf7596345f
Signed-off-by: Taniya Das <tdas@codeaurora.org>
The Legacy FSM Mode is required to be set when the Fabia PLL needs to be
used in non-FSM mode, thus add support for same.
Change-Id: I23d491cb33391dce1eb21d9ced298001da9ef907
Signed-off-by: Taniya Das <tdas@codeaurora.org>
Burst size must be printed in perf builds as it is a major
characteristic of the system.
Change-Id: I7e6013751333bb487e2d9422726e41b1050aca43
Signed-off-by: Gidon Studinski <gidons@codeaurora.org>
Signed-off-by: Alexei Avshalom Lazar <ailizaro@codeaurora.org>
Update snapshot register list to add CP_APRIV_CNTL and CP_SMMU_STREAM_ID
registers. This is needed to capture complete CP state required for
debugging.
Change-Id: Icb8c35481de12dde43aab666f0ecad2240dcaa35
Signed-off-by: Deepak Kumar <dkumar@codeaurora.org>
MHI reset is triggered as part of EP shutdown. Shutdown
is blocked until MHI RESET bit is cleared in MHI CTRL reg.
There is a possibility of PCIe link going down during this
time. Since MHI RESET bit never gets cleared after 2 sec
wait_event_timeout reads the MHI CTRL reg and this results
into a memory abort. Fix this issue by using a boolean flag
as condition in wait_event_timeout. This flag is set when
MHI reset is triggered and cleared when reset is done.
Change-Id: I5b1831518255a38cde5b60406b5b9e9386b5477e
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>