This patch fixes the following OTG related bugs:
1. The current code does not wait for the ongoing HNP polling work to
finish upon the device disconnection which results in a crash when
accessing the udev structure in hnp polling routine.
2. bcdOTG field is added to OTG descriptor in 2.0 revision. Check OTG
descriptor size before validating bcdOTG field. A legacy device sends
2 bytes lesser than the size of OTG descriptor specified in 2.0 spec.
3. The host is required to execute a GetStatus() with a frequency of
THOST_REQ_POLL in order to determine the state of the Host request flag.
The limits of THOST_REQ_POLL are 1 - 2 sec. Use the average value 1.5 sec
for HNP polling to pass compliance tests.
Change-Id: Ie6a6a8e915d10c1347946f979c919d04d64823b4
Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
Signed-off-by: Vijayavardhan Vennapusa <vvreddy@codeaurora.org>
If gadget is OTG capable, respond to a GetDescriptor(OTG) request
with its OTG descriptor. This patch adds a utility to function
to find and fill the requested descriptor.
Change-Id: I5b3624b1145d46179b0c4737e82a47c68604cab4
Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
Signed-off-by: Vijayavardhan Vennapusa <vvreddy@codeaurora.org>
One frame can have multiple slices or NAL units in the
encoded bitstream output. Core can give slices information
to the driver, if slice info metadata enabled, which inturn
will be sent to the client as extradata in output buffer.
This change will enable the core with slice information
extradata feature.
Change-Id: I52935a641dc7b4921da602b0132f0b81463b5cc8
Signed-off-by: Maheshwar Ajja <majja@codeaurora.org>
Add an API to enable/disable interrupts from the chip.
This API uses func0 SDIO_CCCR_IENx register to enable/disable
interrupts from the chip.
Change-Id: I2da8d569511aeff0409744a90e7daf4704fff91d
Signed-off-by: Pavan kumar <pavan@codeaurora.org>
If a firmware upgrade fails, on subsequent boot retry a firmware
upgrade based on the bootloader id. This can be initiated through
the userspace program by writing into the update_fw sysfs entry.
Change-Id: I1d428c52f2cbfff8fe572a2bc6f0cd124111b810
Signed-off-by: Anirudh Ghayal <aghayal@codeaurora.org>
Low resolution UI is observed on HDTV connected with HDMI.
FIR (QSEED) algorithm needs to be used instead of pixel
repetition to improve the performance in case the BYPASS
composition is not used.
CRs-fixed: 332123
Change-Id: Ib4c2b107b4ae1300458cccc7e8066d31aee50a0d
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
Clients need to be able to do cache operations
on ION buffers in the kernel. Add API to
flush, invalidate, or invalidate and flush the
cache of an ION buffer.
Change-Id: I2b676dbe32372b3c17e4aaf39f51878b105a699c
Signed-off-by: Olav Haugan <ohaugan@codeaurora.org>
This allows firmware upgrade only when a firmware name is provided.
The platform data (config data) of the latest firmware will point
to a NULL string which prevents auto firmware upgrade at boot
(if enabled by the userspace).
Change-Id: Ifef57a9dab9306cf4f1fe7a6c7e52c5e92a25d4a
Signed-off-by: Anirudh Ghayal <aghayal@codeaurora.org>
Return the reset status of the GPU unit when
IOCTL_KGSL_DEVICE_GETPROPERTY is called with
type KGSL_PROP_GPU_RESET_STAT
Change-Id: I4bb17be959eadba3ba491d94c6fd4f5824442e92
Signed-off-by: Shubhraprakash Das<sadas@codeaurora.org>
* changes:
power: pm8921-bms: add api to simultaneously read vbatt and ibatt
power: pm8921-bms: calibrate xoadc more often
power: pm8921-bms: add protection against divide by zero
power: pm8921-charger: fix 10mv error on vdd_max
power: pm8921-charger: fix reverse boosting
The compensation algorithms need simultaneous readings of the battery
voltage (vbatt) and the current flowing through it (ibatt).
One needs to put the BMS in override mode to get simultaneous vbatt
and ibatt readings.
Note that since one would need to sleep for 20 milliseconds after the
BMS is put in override mode the spin_lock is changed to mutex in the bms
driver.
Change-Id: I1bfdc1f4e84d5d3c2cd6502dd66afdfba650cc0d
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
Improve the values of the battery voltage read from xoadc by periodically
calibrating the xoadc.
The xoadc needs to be calibrated every time a charger is plugged in
or plugged out. This is because the reference voltage shifts a bit
when a charger is plugged in.
Provide an api to calibrate xoadc. This api will be used by the charger
driver.
CRs-Fixed: 334825
Change-Id: I09735f6e5c5d4ab8be379fe001fff81c25c95397
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
PM8921 LPG banks can be configured to connect to DTESTx.
These DTEST lines can be used to observe LPG output.
Provide a feature that allows to enable DTEST modes for
a given LPG channel.
CRs-fixed: 337902
Change-Id: If881eb089aea2a66f7324af8ac906405eef4f81a
Signed-off-by: Jay Chokshi <jchokshi@codeaurora.org>
Add support for 5 RX and 4 TX Slimbus channel support.
Headphone/Earphone/4 DMIX/2 AMIC and IIR1 support
Change-Id: I1b7ad5e5fd9d87aab80d6533503371e63df8cc0a
Signed-off-by: Asish Bhattacharya <asishb@codeaurora.org>
The current core assumes TABLA as the only codec driver registering.
To support single binary for multiple targets its essential that
we remove this restriction and move to a generic framework
to support multiple codec. This can be done by moving all codec
specific code to dedicated codec driver and use core driver to probe
the codec based on slimbus device id and do generic setup for the
codec. This also helps to have same boards with different flavours
of codec variants.
The WCD9XXX family of codecs share the initial codec register
mapping which holds the Slimbus device id to identify the
codec existing on the target.Core driver now registers the
codec device based on this check.
Change-Id: I4c43d5f04c20696f4f5138411460681ec7879d34
Signed-off-by: Asish Bhattacharya <asishb@codeaurora.org>
To ensure proper battery id dectection on LiQUID and MTP
use machine_is_msm8960/8064_mtp/cdp to determine which
calibration data to use for battery. If platform is
unknown fall back on regular battery id detection.
Change-Id: I2f5629572d1e5fcac0a2feb114947b91a96f3bf0
Signed-off-by: David Keitel <dkeitel@codeaurora.org>
Add the calibration data and battery ID information for the
Desay 5200 mAh battery which is used in LiQUID platform
devices.
Change-Id: I19ff1251ee3e71fa71d4fa0c83143d4b7667a80c
Signed-off-by: David Keitel <dkeitel@codeaurora.org>
This patch adds support for EHCI compliant USB Host Controller
for Liquid on 8064.
This driver supports Host only mode and is different from ehci-msm
which relies on OTG driver for putting hardware in low pwer mode
and PHY initialization as well.
Change-Id: I84b63b2577311900a0b434f53df547bad62f6316
Signed-off-by: Manu Gautam <mgautam@codeaurora.org>
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
This driver is based of the TZCOM (planned to be deprecated soon).
It shares the same design as TZCOM with some re-organization and
new features added. QSEEcom (Qualcomm Secure Execution environment
Communicator) is named accordingly to be consistent with the
nomenclature used in the secure domain. The following additional
features (on top of current TZCOM) driver are implemented:
(1) Add support for multi-image loading.
The image that was loaded in TZCOM was hard-coded to "tzapps".
During a open() tzapps was loaded using pil driver call pil_get().
This severly limted the number of images that could be loaded to
one single application: named "tzapps". qseecom driver provides a
way to load any image on request. Client simply send the image
data in a specific format and this data is sent over to QSEE
(Qualcomm Secure Execution enviroment) to load accordingly.
(2) Add support for multi-client.
TZcom driver did not have provisions to support multiple clients
to interface with the single tzapp image loaded on the secure
domain. The changes added in qseecom driver allows for multiple
client to interface with a single image laoded and running in
secure domain.
(3) Add support for performance tweaking in QSEE
Added capability to send requests to QSEE to set specific clocks
for optimal crypto performance. This essentially will increase
the crypto performance on the secure domain. The crypto
functionality is used extensively by the current existing qseecom
client(s).
(4) Retain legacy support for QSEOS version 1.3.
In order for the existing applications to work with old QSEE image,
qseecom also supports the old mechanism (loading tzapp image via
pil). This was a requirement for existing products that are not
yet using the latest secure code.
Change-Id: I7cf2d62c612cb4d17b33579e66bee44c9844dfda
Signed-off-by: Mona Hossain <mhossain@codeaurora.org>
There exists one definition for ion_map_iommu
function when ION is enabled and one definition when
ION is disabled. The argument list for the definition used
when ION is disabled is missing the buffer_size argument causing
compilation error for targets that call this function without
ION enabled.
Add buffer_size argument to ion_map_iommu function
for targets that does not have ION enabled.
Change-Id: Ie184e4a6dbec2bc3dff75ab3b25985fd64e2baac
Signed-off-by: Olav Haugan <ohaugan@codeaurora.org>
Once client defines a group of channels, it should be only allowed to
be controlled as a group and not individually to avoid synchronization
issues between grouped channels.
Change-Id: Ib318497b2666eb5134a1cb220e5df6569c9fcc2e
Signed-off-by: Sagar Dharia <sdharia@codeaurora.org>
As the title says, this patch adds empty implementations for the address
translation functions so that they can be used when CONFIG_OF is disabled.
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Cc: Rob Herring <rob.herring@calxeda.com>
Signed-off-by: Sathish Ambley <sambley@codeaurora.org>
APQ8064 has two AXI ports attached to the GPU with an IOMMU on both.
The VBIF can be programmed to use a round-robin arbitration to access
the ports equally, so we need to program both IOMMUs with the same
pagetable to make sure that the GPU can get where it needs to go.
All this involves a board file infrastructure change that affects 8960
too, but no functional changes are happening for that platform.
Change-Id: Ic0dedbad5198ed9c453711e58a3f1220ef5d5b4e
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
ION is replacement for PMEM which is less complex with better
reference counting. Hence ION which is a superset of PMEM is
used to allocate memory in the audio decoder drivers.
Change-Id: I088e532a34e266bbfc3ac0a01e12acc3418c7ca6
Signed-off-by: Chaithanya Krishna Bacharaju <chaithan@codeaurora.org>
* changes:
msm: 8064: Add support for isa1200 haptic chip
mfd: pm8xxx-misc: Add function to write aux clock register
msm: 8064: Add GSBI1 support for I2C QUP devices
This call configures the XO to the MP3 clocks. These
clocks route over PMIC gpios and are used as an independent
clock source for MP3, haptics.
Change-Id: Ib95f277eae8bcb9a7e9da12fc5fe2baec4e72493
Signed-off-by: Amy Maloche <amaloche@codeaurora.org>
Video hardware has the following requirements for
ION heaps:
1. MM heap must be at a higher address than FW heap.
2. MFC heap must at a higher address than FW
3. MM heap must be adjacent to FW heap.
(There cannot be another heap between FW and MM heap)
4. MM and MFC heap cannot be more than 256MB away
from the base address of the FW heap.
MM heap is configured as a reusable heap (FMEM heap) and FMEM
is carved out at a much higher address than the other heaps breaking
the above requirements. To support the above requirements the
MFC heap together with the FW heap must be carved out at the same
location as MM heap.
Change-Id: Ie0acb4b267d4307190ea3cd9ff23c710ffa1a538
Signed-off-by: Olav Haugan <ohaugan@codeaurora.org>
Video requires the IOMMU heap to be at a lower
priority so that video can try to allocate from
its MM carveout heap first and then if video needs
more memory and the MM heap is exhausted it will
automatically fall back on IOMMU heap.
Change the priority of the IOMMU heap so video
can fall back on IOMMU heap.
Change-Id: Id1fc19e2c3af18ced028132d1a1bdb6a3935380f
Signed-off-by: Olav Haugan <ohaugan@codeaurora.org>