Reduce lpm current of avdd regulator for ITE tech touch controller
to save power dissipation in lpm state.
Change-Id: I4b0c532096f1555561ad33e937cb947e85f987cd
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
Format specifier %p can leak kernel addresses while not valuing the
kptr_restrict system settings. When kptr_restrict is set to (1), kernel
pointers printed using the %pK format specifier will be replaced with 0's.
So that %pK will not leak kernel pointers to unprivileged users.
So change the format specifier from %p to %pK.
Debugging Note : &pK prints only Zeros as address. if you need actual
address information, pls echo 0 to kptr_restrict.
$ echo 0 > /proc/sys/kernel/kptr_restrict
Change-Id: I0baf2be2d5a476e2e4267f20b99d0ddf5492469e
Signed-off-by: Mallikarjuna Reddy Amireddy <mamire@codeaurora.org>
ITE tech touch controller needs a delay to come to an active
state after regulators are enabled and do any i2c transactions.
So this change adds a delay for the same.
Change-Id: Ifd7c936d8f5d364b78c64aeebd1517d49a5b8936
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
ITE tech touch driver puts the controller to IDLE state in suspend
function through an i2c write into controller register space. But
due to multiple triggers of fb blank events, the suspend
function is called repeatatively without resume, and the driver
causes i2c nacks in suspend function while again putting the
controller is IDLE state. This keeps the QUP5 clock ON and XO shutdown
doesn't happen.
This change prevents the touch driver to execute the i2c write, to
put the controller in IDLE state, by repeatative fb blank events,
and causes XO shutdown to happen within time limits.
Change-Id: Ie3ee6b861c10ae901dea54f252f6a799d688f02a
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
ITE tech touch driver dynamically detects the controller attached
to the device in its probe. And if the driver fails to identify
the controller, it exits the probe with the error code. But in the
probe error path, it doesn't retain the error code, replace it
with zero and registers the device instead of failing.
This change corrects the probe error path of ITE tech touch driver
and makes sure it returns the error code if it fails.
Change-Id: I8f193ee10076b6cf058b0a6940db54f71f70b758
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
Add low reset gpio and delay reset support for ITE tech
driver.
ITE tech controller support low reset gpio configuration. This
property is parsed from the DT, and reset gpio is set to low.
Reset delay value is also parsed from DT which is required by the
ITE tech controller.
Change-Id: I314677747e8bbbcb273cd898376bbe03197c8c25
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
Do not put the ITE tech touchscreen driver in infinite
loop while probing.
Sometimes, when there is multiple touchscreen support on the
same snapdragon device, then the dynamic detection is used
to confirm which touchscreen is connected to the device.
So, this change will not make the CPUs to get hogged with
infinite loop of ITE tech driver.
Now it can easily get out of probe with error path releasing
the resources properly.
Change-Id: Ib9905017fc18999e7ab7c9cb8bc1af398f5f9791
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
Codec is in digital core power collapse when there is no
audio usecase but low power audio usecases needs codec to
be out of power collapse. Changes bring codec out of
digital core power collapse for low power audio usecases
without enabling master clock.
CRs-fixed: 1022917
Change-Id: I762fc1dc6b6527608e73ac5144215ee141570aac
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
Signed-off-by: Vidyakumar Athota <vathota@codeaurora.org>
Add support for CPE(Codec Processing Engine) second voice
wakeup session using ECPP(Echo cancellation Ping-Pong) hardware
path. This allows to enable two concurrent CPE sessions, one
on MAD(Mic Always-on Detection) and the other on ECPP.
CRs-fixed: 1022917
Change-Id: I7a14a2d0b5455d427f90e02506b996fc615c848a
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
Signed-off-by: Vidyakumar Athota <vathota@codeaurora.org>
Sizeof(uint32) returns 4 as the value. As a result, the string
copied will be limited to 4 characters.
Update the size to the correct value and add "0x" to the front
of the string.
CRs-Fixed: 1047798
Change-Id: If889cd278fea7e13f941635f72047dcb9141ec2e
Signed-off-by: Runmin Wang <runminw@codeaurora.org>
WCD audio codecs contain SPI slave hardware module to provide access
to codec memory and SPI register space. Change adds driver for this
slave hardware. This driver uses regmap for SPI internal register
accesses and plugs in to standard SPI framework as child device to
master controller driver.
CRs-Fixed: 1049012
Change-Id: I0640ac1ed60a2ec3633636760593211ecd2f9c2d
Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
WCD audio codecs have DSP embedded to perform signal processing on
audio data. The codec driver has control over the DSP clock, power etc,
whereas the DSP memory can be accessed through an different bus slave
interface. In such cases, it is required to make sure the hardware
expected sequences are met for the DSP to function properly. The
wcd-dsp manager driver registers as master to component framework
and provides the ability to sequence the operations between the child
drivers. Upon registration of all children, the wcd-dsp manager driver
parses the wcd dsp image, downloads the image and boots up the DSP.
It invokes the component children to perform the tasks in sequence.
CRs-Fixed: 1049012
Change-Id: I059e1b111c607e49a7cc9a7940cf458e701c73d3
Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
wcd_dsp_utils adds utilities that will be used by the
wcd dsp manager driver. Add helper functions to parse
WDSP image and provide list of segments to be loaded
to memory.
CRs-Fixed: 1049012
Change-Id: I2b1464c2a035a039440e6d3e5122ad3f90da4d1e
Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
Currently only read-only registers are marked as volatile. It is
possible that some registers could be read-write and still have
subset of the bits that are updated by the hardware. Add change
to mark such CPE (codec processing engine) register as volatile.
CRs-Fixed: 1049012
Change-Id: I1cedf646d0df1ab5968df4830502649de305c9d1
Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
Driver allocates notify request in function bind() callback
but frees it in function disable() callback. Upon composition
switch adb daemon gets restarted causing function bind/unbind
to happen twice. This results into allocating notify request
memory twice and only freeing it once either upon disconnect
or next composition switch. Fix the issue freeing memory in
function unbind callback.
Change-Id: I7716cff99b824b55e48aea57b9da91c16a8ecac1
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
Inter EE commands and IRQ are not supported currently
and AP does not have access to those.
CRs-Fixed: 1048160
Change-Id: I033044db83e8af6fb0976d711ea12c2f99291f91
Acked-by: Ady Abraham <adya@qti.qualcomm.com>
Signed-off-by: Skylar Chang <chiaweic@codeaurora.org>
layer_list is a pointer allocated based on the number of input_layers.
While freeing scale and pp related parameters for each layer, wrong
pointer is used instead of layer_list. Fix the typo to use the
correct pointer.
CRs-Fixed: 1007818
Change-Id: I7ab0fe42075ab5b4dfa5c73667f94fb8f0b5cc32
Signed-off-by: Shalini Krishnamoorthi <shakri@codeaurora.org>