This change defines upto 3 instances of external mdm9x45 modems in
device-tree which would need to be controlled by esoc (external esoc)
driver. The device-tree nodes allows the configuration of the external
modems (like the GPIO pins used to communicate status of modem) to be
specified.
Change-Id: I7e609f7549a02cd3322db76b00dc30137ed68953
Signed-off-by: Arun KS <arunks@codeaurora.org>
In certain scenarios, modem shutdown requests are handled in
userspace. Enhance request engine of esoc driver to send
shutdown requests to userspace.
Also, during a shutdown, avoid setting status to 0, if line is
not a power source. There can be multiple mdms monitoring status
line. This can otherwise be misinterpreted as an unexpected reset
by other mdms.
Change-Id: I9c20a86e76f892cc61dbfb814202b26e5cce3e96
Signed-off-by: Arun KS <arunks@codeaurora.org>
Signed-off-by: Srivatsa Vaddagiri <vatsa@codeaurora.org>
During an unexpected reset or error fatal, update the
crash status to SSR. This is important for the drivers
listening at SSR related kernel notifier calls, where
crash status is also passed as a data payload.
Change-Id: Ide0634d0139a84b5988fa87e709877f3028029ef
Signed-off-by: Arun KS <arunks@codeaurora.org>
SSR failures are considered fatal and results in system panic.
In certain scenarios system can continue to work even with a
failed subsystem.
Add an option in subsystem descriptor to relax on ssr failures.
Change-Id: I86dcaa615d6443937077880d9a91070d9c22ea1f
Signed-off-by: Arun KS <arunks@codeaurora.org>
[satyap@codeaurora.org: trivial merge conflict resolution]
Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
Add REAL_TYPE power_supply property to record the real time charger
type.
Change-Id: I5fb2e3e3e782bcac0f8dd6071a830bcf370ebbd4
Signed-off-by: Fenglin Wu <fenglinw@codeaurora.org>
Currently the code simply enforces Qnovo's current and voltage bypassing
other voters. This is not desired. Make Qnovo vote via the FCC and FV
votables. The only other vote it should skip is the votes coming from
battery profile.
Change-Id: I5c794ea209a8ea2a61d834e2f619d7ccfd02fed9
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
Fix the cleanup path of probe failure to make sure
all the resources get released in proper order.
Change-Id: Ie482c9856569ea708a8fa186049ab778a8e5be12
Signed-off-by: Ashay Jaiswal <ashayj@codeaurora.org>
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
The code flow between battery.c and smblib.c could end up with
stale references in smblib. This is when if pl_init fails for
some reason after creating the votables, while smblib obtains
references to them, those references become invalid.
Fix this by calling pl_init early in smb2 driver's probe such that if
it fails smb2 driver exits early.
Also change the name of pl_(de)init() functions to more appropriate
name - qcom_batt_(de)init().
Change-Id: I58f79d26e6cc8524e792a23185ff6fc8cfdffa75
Signed-off-by: Harry Yang <harryy@codeaurora.org>
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
Added a new iommu test device which is dma-coherent. This
test device will be used for validating buffer coherency.
Change-Id: Iea1c57fd2cd5d71de2f26932d21cae8102fb918e
Signed-off-by: Sudarshan Rajagopalan <sudaraja@codeaurora.org>
Before asserting PERST, PCIe bus driver should switch GPIO to
sleep state. This will prevent host from missing any events after
the link is off.
Change-Id: Ie57d339da02dde6cbb3c41d2be52ee0602227193
Signed-off-by: Tony Truong <truong@codeaurora.org>
smb1355 doesn't have any facility to suspend input. One has to
disable charging using the chg_en command bit.
So, when parallel charging needs to be disabled, configure
the charger to ignore the chg_en input pin and instead use the
command register. The command register is always programmed to
disable charging.
When parallel charging needs to be enabled, configure it to
follow the chg_en input pin.
This will work for both smb1355 and smb1381 parallel chargers.
Change-Id: I50294f40927641c2e0a7c7e4e7d263592086d3a9
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
Currently when we are in hard reset, the driver requests to remove
the float of D+/D- when VBUS drops and once VBUS is back, it requests
to float D+/D- again. This behaviour ends up stomping over D+/D- lines
leading to noncompliance with PD spec.
Fix it by ensuring we only run the CC2 workaround while VBUS dips
in hard reset.
Change-Id: I2bb9364b890b3a227dd3ea3e0a34a415b600e21a
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
Currently main power supply reports the value of the input current limit
set on the usb path. This is incorrect, it should report its own
share. When parallel is disabled, it will end up reporting a value
close to current limit, rounded by 25mA steps.
Note that it should report INT_MAX when there is no limit set on
the ICL - the case for hvdcp chargers.
CRs-Fixed: 2037898
Change-Id: I9859f3d759644a08c6f762e929c471a41b1cdf8f
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
Stopping a PROD channel might result in a timeout because the
channel is not empty, or IPA is busy. Whether or not to retry
a stop operation is determined by channel owner.
This change removes the common retry logic of retrying to stop
a PROD channel and adds a retry only for the scenario it is
actually needed.
Change-Id: I7ac1e81f7f99de2b0c3162aa5aaea2102a450838
CRs-Fixed: 2037955
Acked-by: Ady Abraham <adya@qti.qualcomm.com>
Signed-off-by: Skylar Chang <chiaweic@codeaurora.org>
Disable default enablement of slub debug on sdm660
debug defconfig to prevent skb allocation failure
due to increase in order of allocation.
Change-Id: If63822a5abf3b297a34b95e5e5f973556631bd68
Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org>
'commit 6a61b529b4 ("ANDROID: uid_sys_stats: rename
uid_cputime.c to uid_sys_stats.c")' renamed CONFIG_UID_CPUTIME
to CONFIG_UID_SYS_STATS and enabled the new config on relevant
defconfigs except sdm660. Enable it and sync the config to
remove the reference to CONFIG_UID_CPUTIME. Task IO accounting
is enabled as CONFIG_UID_SYS_STATS depends on it.
Change-Id: Ib7163cf090c4fe86030469a257c49be1f6558984
Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org>
When erase DCMD commands fail, a completion notification may get raised
by host controller for the task in addition to error interrupt. This
can result in the done function of mmc request getting called twice
and release the clock twice and mess up the clock request counter. The
done function should be called only once for DCMD commands except flush
commands.
Change-Id: Ie3a96e48ca98872cf686049eb5caa060f143f9cb
Signed-off-by: Vijay Viswanath <vviswana@codeaurora.org>
If any discard requests fails, the mmc driver should not cause kernel
panic. The error handling and informing block layer about error will be
done by completion context.
Change-Id: I0c88ad851ad12c392a557bcb94d3b21dfc62d1f8
Signed-off-by: Vijay Viswanath <vviswana@codeaurora.org>
This change adds two macros, one to indicate backport support for the
new connect done event which takes connection response parameters as a
structure instead of function arguments and the other macro is to
indicate backport support for FILS shared key authentication offload to
driver.
Change-Id: I6fb562741bb2abacbe1c7c7ffbf4b2afb25e555b
CRs-Fixed: 2028536
Signed-off-by: Vidyullatha Kanchanapally <vidyullatha@codeaurora.org>
Enhance nl80211 and cfg80211 connect request and response APIs to
support FILS shared key authentication offload. The new nl80211
attributes can be used to provide additional information to the driver
to establish a FILS connection. Also enhance the set/del PMKSA to allow
support for adding and deleting PMKSA based on FILS cache identifier.
Add a new feature flag that drivers can use to advertize support for
FILS shared key authentication and association in station mode when
using their own SME.
Change-Id: I75d47301b767e691d6240fd6c20c28b9bfaaa571
Signed-off-by: Vidyullatha Kanchanapally <vkanchan@qti.qualcomm.com>
Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Git-commit: a3caf7440dedd2399f90f27ff11ac390bf03e6c4
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git
CRs-Fixed: 2028536
[vidyullatha@codeaurora.org: backport to kernel 4.4 - This commit includes
the changes from following commits in include/uapi/linux/nl80211.h to
compile for msm-4.4 -
4a4b8169501b18c3450ac735a7e277b24886a651 :
cfg80211: Accept multiple RSSI thresholds for CQM]
Signed-off-by: Vidyullatha Kanchanapally <vidyullatha@codeaurora.org>
The spec writes cipher/AKM suites as something like 00-0F-AC:9,
but the part after the colon isn't hex, it's decimal, so that
we've already had a few mistakes (in other code, or unmerged
patches) to e.g. write 0x000FAC10 instead of 0x000FAC0A.
Use a macro to avoid that problem.
Reviewed-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Git-commit: 228c8c6b1f4376788e9d5ab00d50b10228eb40d3
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
CRs-Fixed: 2028536
Change-Id: I1507de1ee316182d429186ff33a932675013ba7d
Signed-off-by: Vidyullatha Kanchanapally <vidyullatha@codeaurora.org>
Currently the connect event from driver takes all the connection
response parameters as arguments. With support for new features these
response parameters can grow. Use a structure to pass these parameters
rather than passing them as function arguments.
Signed-off-by: Vidyullatha Kanchanapally <vkanchan@qti.qualcomm.com>
Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
[add to documentation]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Git-commit: 5349a0f7bfbdd7d81b8418c707dcd1439c714647
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git
CRs-Fixed: 2028536
Change-Id: I340a96d052647f79248ef8aa2e0af2b6ba979b2d
Signed-off-by: Vidyullatha Kanchanapally <vidyullatha@codeaurora.org>
Some of the external SoC are flash based and can boot independently.
Extend esoc driver to support such auto boot esocs.
This patch also adds support for primary esoc. Primary esoc are
esoc that control secondary esoc such as modems. Primary esoc have
control over reset/poweroff of secondary esoc. Secondary esoc don't
have control over reset/poweroff of primary esoc. In general modems
are considered as secondary esoc while apps processor is considered
as primary esoc.
Change-Id: Id02417fcd122ac108cf75d3381ee7955f0f8f783
Signed-off-by: Arun KS <arunks@codeaurora.org>
Signed-off-by: Srivatsa Vaddagiri <vatsa@codeaurora.org>
Auto_boot esoc devices can boot and crash before
esoc driver comes up. But there is no way for the
user space code to know that it has crashed by looking
at status line alone. Hence, create a new ioctl entry
to export status of err_fatal line to user space.
Change-Id: Ie7d6115c749d4c63f06aefca29ba457d38eccc7f
Signed-off-by: Arun KS <arunks@codeaurora.org>
SSR driver expects subsystem descriptor device type to be
struct platform_device, whereas esoc driver is passing a
struct device instead. This results in a NULL pointer crash
during platform_get_irq in subsystem_restart.c. Fix esoc
driver to pass platform_device.
Change-Id: I93d02623cb7ac14ea3171c3792a4c52c73a74dea
Signed-off-by: Arun KS <arunks@codeaurora.org>
Signed-off-by: Srivatsa Vaddagiri <vatsa@codeaurora.org>