Free the skb if packet is not sent to ipa hw
successfully other than TX_BUSY error cases to avoid
memory leak.
Change-Id: I012484aa92e8f25ed0ad4f6709a54f40409ab8d2
CRs-Fixed: 1077525
Signed-off-by: Sunil Paidimarri <hisunil@codeaurora.org>
trace_sched_update_task_ravg relies on NULL pointers to ensure that
it doesn't access them. Make sure that when a task exits, these
pointers are set to NULL. Otherwise any call to update_task_ravg()
between sched_exit() and releasing the task structure will access
bogus pointers. In some cases those memory locations are unmapped
and cause a kernel panic.
Change-Id: I9eebb4fb35aca2c8424bfb29ae9d833650dc5ad4
Signed-off-by: Syed Rameez Mustafa <rameezmustafa@codeaurora.org>
Device suspend fails because of un-interruptible blocking read
function. Use wait_for_completion_interruptible API instead of
wait_for_completion to allow device suspend.
Change-Id: Ia537e776d0b322d56cd6003f95cdded5e695ceeb
Signed-off-by: Vidyakumar Athota <vathota@codeaurora.org>
Enable VDD_GFX CPR aging adjustments for MSMCOBALTv2 parts with
CPR fusing revision greater than or equal to 2. At most 15 mV
can be added onto the open-loop and closed-loop voltage as a
result of an aging measurement at runtime. This maximum 15 mV
adjustment was previously accounted for in the fixed open-loop
and closed-loop voltage adjustments. Therefore, remove 15 mV
from both the open-loop and closed-loop voltage adjustments for
all corners.
Change-Id: I44487bfcb4e21d76948cd836ad2dae18bc3d22f4
CRs-Fixed: 1081084
Signed-off-by: David Collins <collinsd@codeaurora.org>
WCD9335 codec has single master clock supply widget for both
playback and recording paths. Adding separate clock supply
for playback and recording paths will help handle low power
audio recording usecases without affecting playback usecases.
Change is to enable separate clock supply widgets for playback
and recording paths.
CRs-Fixed: 1022917
Change-Id: Ia02a1ffed911498dd6eb5df246e6da68a7802a92
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
Update wcd934x codec register defaults to enable
CPR hardware block for reducing the power consumption
in rock bottom sleep mode.
CRs-Fixed: 1081673
Change-Id: Ib75655d52e5d85d649ebfcb971caf3f5b0b6dc80
Signed-off-by: Phani Kumar Uppalapati <phaniu@codeaurora.org>
Mark CPR bank registers as volatile so that
writes to these registers get updated correctly
in hardware.
CRs-Fixed: 1081673
Change-Id: I92d0511b4e9912dfa346378784d811f6606df205
Signed-off-by: Phani Kumar Uppalapati <phaniu@codeaurora.org>
Currently, nominal capacity is stored back to the actual capacity
only when the actual capacity is non-zero. However, that can be
true when the battery is inserted for the first time. This makes
the actual capacity to be stored only when a capacity learning
cycle completes. Other algorithms like to use actual capacity
before that. Fix it.
Change-Id: I346085ec722f491f96181ef1beb383710b441f4b
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
It is possible that normal CFS latencies in the presence of
very heavy task load causes timer migration to be delayed
in hotplug paths. This may in turn prevent the watchdog kthread
from waking up, resulting in a bark.
Technically the watchdog is supposed to be a last-resort
failure recovery; even in this stressful hotplug scenario
the device is *usable*, just incredibly slow. It is arguable
that the watchdog should not have fired in this case, and
the petting mechanism should handle this scenario.
Move the timer to a deferrable timer base. We are really not
using the "deferrable" aspect of the timer, but the fact that
we (msm) also changed deferrable timers to run on any CPU.
This underlying change will allow the watchdog timer to be
handled on any CPU.
This completely depends on the fact that we don't have to
pet the watchdog when *all* CPUs go idle, which would
make sense from a power perspective anyway.
Change-Id: Ie389e28ff890a805854f921e4cd491a296a32925
Signed-off-by: Vikram Mulukutla <markivx@codeaurora.org>
Add NULL pointer check to ensure that we do copy to user only
when we were able to allocate memory for ETR.
Change-Id: I09b4bc37617811fd4acd86a7e4f5ef91630675df
Signed-off-by: Satyajit Desai <sadesai@codeaurora.org>
Currently, smb2 charger is configured to not end the charging
cycle when battery overvoltage occurs. However, when the battery
overvoltage status is read, it will be displayed through health
property. Improve this by reading the battery voltage and check
whether it is within 40mV headroom above float voltage. If it is
above that threshold then continue with displaying overvoltage
status.
CRs-Fixed: 1079363
Change-Id: I45847f446c91c80a5110d80b59a0ae4b8e2c40e5
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
Compilation errors are seen from qpnp-pdphy.c and policy_engine.c
drivers, when try to compile for 32 bit support. Hence fix those
errors for 32 bit support getting compiled successfully.
Change-Id: I0c496a73feb83c640f9a135f98ec393d1096b205
Signed-off-by: Vijayavardhan Vennapusa <vvreddy@codeaurora.org>
Update Power collapse log messages to VIDC_PROF to be in
sync with other clock related logs. Today these logs are
at VIDC_DBG and VIDC_INFO which also has lot of other logs.
Change-Id: Id69802df24c4eaf4d8e9bc0c438d250090f9a38f
Signed-off-by: Praneeth Paladugu <ppaladug@codeaurora.org>
Change _WARN_printf to pr_err as former prints stack and
register dump in logs which is not necessary.
Change-Id: Ib0323014017818668a4a634e463f751fd5e9d24a
Signed-off-by: Raju P.L.S.S.S.N <rplsssn@codeaurora.org>
Add support for HDCP (High-Bandwidth Digital Content Protect)
version 2.2 for DisplayPort. Define interfaces to interact with
Trust Zone and DisplayPort drivers. Hookup with TZ's kernel
module and send-receive HDCP 2.2 messages to-from sink using
DP's aux channel.
Change-Id: Id77e77ee628667dacc7a714c553b5ce5beafa9bb
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
Parse all the sink/link status fields on HPD IRQ. These
fields contain update sink/link status and are needed in
order to determine whether link re-training will be
required. Furthermore, this action is mandatory as per
CTS compliance specification 1.2a.
CRs-Fixed: 1076516
Change-Id: I8c8fef768fa22c1a52f42596e3707e9b0e2c8e4d
Signed-off-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
Add the display interface device to the framebuffer device to
enable clients that use the sysfs mechanism access to APIs
exposed by the display interface.
CRs-Fixed: 1077559
Change-Id: Ia14939b035a2fb3d964f6f78899dfa2e21b275e8
Signed-off-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
Fix the parsing of the external display platform device by making
use of the framebuffer and display interface platform devices to
find the correct handle.
CRs-Fixed: 1077559
Change-Id: Ifde6d8e042eb651893a1760bdc942a349bf190b7
Signed-off-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
Restrict the combinations of voltage swing levels and
pre-emaphasis levels to within the allowable range as per
DP v1.3 specification. Furthermore, set the bits to indicate
the sink when the maximum voltage or pre-emaphasis level
supported has been reached.
CRs-Fixed: 1076516
Change-Id: Ibd5ccc5e24248780df70b5ac7ec7a82511abf688
Signed-off-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
Add support for link re-training after the main link is already
trained and active. Parse the requested lane count and link
bandwidth from the DPCD when hpd_irq is high, and re-train
the main link once the display, and therefore timing generator,
has been turned off.
CRs-Fixed: 1076516
Change-Id: Ifa1b609c532aa601f30e334e87a768bdda78958d
Signed-off-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>