It possible that EP gets PCI probe and tries to access EP config
space before driver could finish setting up PCIe device table.
Due to this race before driver could populate the config base
address in table, operation config call back from framework
tries to de-reference config base address which is NULL. Fix
this issue by dynamically configuring iATU with config space
address range mapping to the BDF for which config space is
requested for. This prevents access to pcie device table which
is used for static mapping for multiple device config space to
its BDF.
Change-Id: Ie6a83355087912369e46f028d8ffe5e4b5a5fba5
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
AER handler is directly using raw read and write APIs to access
endpoint config space. Instead, use PCI framework provided APIs
as well as the register macros to stream line all config space
reads and writes to go through PCI read and write operation.
Also, use PCI framework APIs to find the pci device using BDF
this removes the dependency on local pci device table.
Change-Id: I5b0fa2dc6eb383d9db2dc42f026a2b6cb85b3d71
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
AER handling requires finding the source pci device on
the bus which causes the AER. Source pci device is found
using bus, device and function number. Finding pci device
requires sleeping context because bus is walked by holding
semaphore. Hence move AER handling to threaded irq context.
Change-Id: Ia51b91560326be2a85e17ce98315ea39d25641e2
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
For link training Data link layer, active bit is checked
in link status register of the root complex. Hence create
a new function msm_pcie_dll_link_active() to check the link
status. Use same function in msm_pcie_confirm_linkup() as well.
In order to check endpoint access use pci_device_is_present()
provided by framework. This allows all ep config space access
to go through operation config callback from framework.
Also, remove reading of root complex vendor id and device id
which is redundant now.
Change-Id: I46fdb566ed20759d38d991ceeb23703759c04ecd
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
Currently advanced error reporting is enabled by pci msm
controller driver using custom API. Since AER root port
service driver provides exported API
pci_enable_pcie_error_reporting() use this API to enable
support for AER and get rid of custom API. Framework API
needs to be wrapped under QGKI kernel config to prevent
GKI ABI breakage.
Change-Id: I3856fdc958a6234fe5e0a888733ce9f57fa5a48e
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
For invalid ioctl inputs from user, kgsl already returns -ENOIOCTLCMD error
code. Avoid flooding kernel log with such errors.
Change-Id: Iaf9c8eb0c51b221738482e2b4b02289913a2878e
Signed-off-by: Kamal Agrawal <kamaagra@codeaurora.org>
Added check to return fastrpc ioctl call when process exit sequence is
in progress.
Change-Id: I83915cb3fb75cc69d245a56800dcf42b492e01ea
Acked-by: Nishant Chaubey <chaubey@qti.qualcomm.com>
Signed-off-by: Jeya R <jeyr@codeaurora.org>
Add support in the driver to manage power without enabling pm runtime.
UART driver gives control to user space client to vote for clock on/off
by exposing ioctls. These vote clock on/off APIs depend on PM runtime
framework for power related operations.
This change relaxes driver from depending on userspace ioctls to invoke
runtime resume/suspend for basic uart functionality which will now be
done by system suspend/resume. This will block PM framework API's and
use system suspend/resume API for UART on/off.
Change-Id: Idf0632c0e2d40907f7a226cd7e3e814d1c1f6751
Signed-off-by: Ashish Kori <akori@codeaurora.org>
Add driver to send and receive events from Slate
co-processor. The driver uses Glink channel to communicate
with Slate.
Change-Id: I2b7cf9a47e8947f79c7e9cd8b1311ff8c04bf848
Signed-off-by: Ajit Kumar <kajit@codeaurora.org>
Enable this driver to allow using standard APIs
to enable and disable AER support in endpoint
driver. In order to enable this driver
CONFIG_PCI_QTI needs to be enabled to prevent
GKI ABI breakage for GKI enabled configuration.
Change-Id: Icec7e6b10a7449d7dcf011afd73e1c573c16c8c5
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
Enable CONFIG_INCREMENTAL_FS in LA guest to support APK
updates.
Change-Id: I0c202ba7d28b7393dcb47544728f8c042137ea28
Signed-off-by: Venkata Rao Kakani <vkakani@codeaurora.org>
Enable CONFIG_INCREMENTAL_FS in LA to support APK
updates.
Change-Id: I3dda81703af139c3554993c725189215c28f386c
Signed-off-by: Venkata Rao Kakani <vkakani@codeaurora.org>
Enable CONFIG_INCREMENTAL_FS in LA to support APK
updates.
Change-Id: Idf3c93412d5a87c9df7ac5e88ccdc0bae114621f
Signed-off-by: Venkata Rao Kakani <vkakani@codeaurora.org>
Use cyclic id allocator to avoid immediate reassignment of
same port id.
Assigning incremental port id gives more clarity over ports
assignment and makes it easy to debug problem in certain scenario.
Change-Id: Ib432ff641f4c81ba33ff0176cb67f1cdf4b3b1f9
Signed-off-by: Deepak Kumar Singh <deesin@codeaurora.org>