]> git.kernelconcepts.de Git - karo-tx-linux.git/log
karo-tx-linux.git
8 years agoAdd capture support to msm8x16-wcd codec
Srinivas Kandagatla [Fri, 5 Feb 2016 08:08:20 +0000 (08:08 +0000)]
Add capture support to msm8x16-wcd codec

This patch adds msm8x16-wcd codec support which has been tested for
Audio In using Headset Mic/Secondary Mic/Primary Mic and Audio out via
Speaker/Headset.

Below are mixer setups for capture and playbacks.

amixer cset numid=18,iface=MIXER,name='RX1 MIX1 INP1' 'RX1'
amixer cset numid=21,iface=MIXER,name='RX2 MIX1 INP1' 'RX2'
amixer cset numid=5,iface=MIXER,name='RX1 Digital Volume' 100
amixer cset numid=6,iface=MIXER,name='RX2 Digital Volume' 100
amixer cset numid=30,iface=MIXER,name='RDAC2 MUX' 'RX2'

amixer cset numid=23,iface=MIXER,name='RX3 MIX1 INP1' 'RX1'
amixer cset numid=17,iface=MIXER,name='SPK DAC Switch' 1

amixer cset numid=28,iface=MIXER,name='DEC1 MUX' 'ADC2'
amixer cset numid=3,iface=MIXER,name='ADC2 Volume' 70
amixer cset numid=27,iface=MIXER,name='ADC2 MUX' 'INP2'
arecord -D plughw:0,2 -r 16000 -f S16_LE /tmp/f-16000.wav

amixer cset numid=28,iface=MIXER,name='DEC1 MUX' 'ADC2'
amixer cset numid=3,iface=MIXER,name='ADC2 Volume' 70
amixer cset numid=27,iface=MIXER,name='ADC2 MUX' 'INP3'

amixer cset numid=27,iface=MIXER,name='DEC1 MUX' 'DMIC1'

TODO:
headset jack/Mic detection
headset Buttons

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
8 years agoMerge branch 'tracking-qcomlt-config-fragments' into integration-linux-qcomlt
Srinivas Kandagatla [Thu, 14 Jan 2016 16:06:34 +0000 (16:06 +0000)]
Merge branch 'tracking-qcomlt-config-fragments' into integration-linux-qcomlt

* tracking-qcomlt-config-fragments:
  kernel: configs: Enable input misc device drivers
  kernel: configs: update distro config from release branch
  kernel: configs: improve distro.config, mostly for systemd
  kernel: configs: update distro.config
  kernel: configs: move linaro distro.conf as proper %.config fragment
  linaro: add defconfig fragment with basic linaro config

8 years agoMerge branch 'tracking-qcomlt-wcnss' into integration-linux-qcomlt
Srinivas Kandagatla [Thu, 14 Jan 2016 16:06:34 +0000 (16:06 +0000)]
Merge branch 'tracking-qcomlt-wcnss' into integration-linux-qcomlt

* tracking-qcomlt-wcnss: (21 commits)
  wcn36xx: avoid alloc mem with GFP_KERNEL in smd callback.
  wcn36xx: eliminate the warning for unsupported SMD_EVENT
  wcn36xx: Update the smd client driver to use new smd channel match method.
  Bluetooth: btqcomsmd: Qualcomm WCNSS HCI driver
  Bluetooth: Add HCI device identifier for Qualcomm SMD
  Migrate the wifi driver from old smd driver to new smd driver.
  Update the initialization sequence to enable DB410c.
  Set the dma mask for platform device which is not created from DT.
  Got workable wireless driver.
  wcn36xx: add later fw capabilities
  net wireless wcn36xx adapt wcnss platform to select module by DT
  net wireless wcn36xx add wcnss platform code
  wcn3620: use new response format for wcn3620 remove_bsskey
  wcn3620: use new response format for wcn3620 trigger_ba
  wcn36xx: handle new hal response format
  wcn36xx: remove powersaving for wcn3620
  wcn36xx: swallow two wcn3620 IND messages
  wcn36xx: introduce WCN36XX_HAL_AVOID_FREQ_RANGE_IND
  wcn36xx: use 3680 dxe regs for 3620
  wcn36xx: get chip type from platform ops
  ...

8 years agoMerge branch 'tracking-qcomlt-scm' into integration-linux-qcomlt
Srinivas Kandagatla [Thu, 14 Jan 2016 16:06:33 +0000 (16:06 +0000)]
Merge branch 'tracking-qcomlt-scm' into integration-linux-qcomlt

* tracking-qcomlt-scm:
  firmware: scm: add proc restart support
  firmware: qcom: scm: Fixup arm64 asm
  firmware: qcom: scm: add video (vidc) scm calls
  firmware: qcom: scm: Support IOMMU scm calls
  firmware: qcom: scm: Support PIL SCMs
  firmware: qcom: scm: Split out 32-bit specific SCM code
  firmware: qcom: scm: Fix NULL coherent device
  firmware: qcom: scm: Add 64 bit PAS APIs
  firmware: qcom: scm: Peripheral Authentication Service
  firmware: qcom: scm: Add boot APIs
  firmware: qcom: scm: Generalize shared error map
  firmware: qcom: scm: Add support for ARM64 SoCs

8 years agoMerge branch 'tracking-qcomlt-power-regulator' into integration-linux-qcomlt
Srinivas Kandagatla [Thu, 14 Jan 2016 16:06:33 +0000 (16:06 +0000)]
Merge branch 'tracking-qcomlt-power-regulator' into integration-linux-qcomlt

* tracking-qcomlt-power-regulator:
  cpufreq-dt: Add missing rcu_read_lock() for find_device_opp()
  cpufreq-dt: Add L2 frequency scaling support
  pwer:avs: cpr: fix with new reg_sequence structures
  power: avs: cpr: Fix Duplicate OPPs warning
  power: avs: Register CPR with cpufreq-dt
  power: avs: cpr: Use raw mem access for qfprom
  power: avs: Add support for CPR (Core Power Reduction)
  cpufreq-dt: Handle OPP voltage adjust events
  OPP: Allow notifiers to call dev_pm_opp_get_{voltage, freq} RCU-free
  PM / OPP: Support adjusting OPP voltages at runtime

8 years agoMerge branch 'tracking-qcomlt-mainline-rpm-smd-pil' into integration-linux-qcomlt
Srinivas Kandagatla [Thu, 14 Jan 2016 16:06:32 +0000 (16:06 +0000)]
Merge branch 'tracking-qcomlt-mainline-rpm-smd-pil' into integration-linux-qcomlt

* tracking-qcomlt-mainline-rpm-smd-pil: (65 commits)
  Move to new qcom_smem_get() api
  Fix: Make it buildable on v4.3
  soc: qcom: Stub IPCRTR client driver
  soc: qcom: rpm_log: Add rpm log driver
  soc: qcom: Add msm_bus driver
  remoteproc: tz: Allow no scm clocks support
  WIP: remoteproc: HACK to get it working on  DB410c
  WIP: remoteproc: q6: add support to scm restart
  WIP: remoteproc: q6: add support to memory-region
  WIP:remoteproc:q6pil: add segment_is_loadable and segment_is_relocatable macros
  WIP: remoteproc: q6: remove some commented out code
  soc: qcom: smd: Support opening additional channels
  soc: qcom: smd: Support multiple channels per sdev
  soc: qcom: smd: Refactor channel open and close handling
  soc: qcom: smd: Split discovery and state change work
  soc: qcom: smd: Introduce callback setter
  soc: smd: Migrate the wifi driver from old smd driver to new smd driver.
  qcom-smd-rpm: Add MSM8916 support
  gpio:smp2p:qcom: kill set_irq_flags and use genirq
  remoteproc: tz_pil: skip waiting ready irq if it not provided
  ...

8 years agoMerge branch 'tracking-qcomlt-card-detect' into integration-linux-qcomlt
Srinivas Kandagatla [Thu, 14 Jan 2016 16:06:32 +0000 (16:06 +0000)]
Merge branch 'tracking-qcomlt-card-detect' into integration-linux-qcomlt

* tracking-qcomlt-card-detect:
  mmc: sdhci-msm: Add SDHCI_QUIRK_NO_CARD_NO_RESET
  mmc: sdhci: let GPIO based card detection have higher precedence

8 years agoMerge branch 'tracking-qcomlt-dsi' into integration-linux-qcomlt
Srinivas Kandagatla [Thu, 14 Jan 2016 16:06:31 +0000 (16:06 +0000)]
Merge branch 'tracking-qcomlt-dsi' into integration-linux-qcomlt

* tracking-qcomlt-dsi:
  drm/msm/mdp5: Update bus scaling support
  drm/msm/dsi: Update the "vdd" voltage range
  drm/msm: remove pm_runtime_put() calls
  mdp4: Add iommu detach_dev in error path
  HACK: drm/msm/mdp5: Make sure mdp5 clocks aren't disbaled when we need them
  drm/msm/dsi: Don't call hpd helper unconditionally
  drm/msm/dsi: Remove incorrect warning on host attach
  drm/msm/dsi: Add a delay when performing software reset
  drm/msm/dsi: Parse lane swap information from DT

8 years agoMerge branch 'tracking-qcomlt-audio' into integration-linux-qcomlt
Srinivas Kandagatla [Thu, 14 Jan 2016 16:06:31 +0000 (16:06 +0000)]
Merge branch 'tracking-qcomlt-audio' into integration-linux-qcomlt

* tracking-qcomlt-audio:
  ASoC: qcom: use correct device pointer in dma allocation
  WIP: drm: msm: add proper hdmi codec driver.
  sound: qcom: add dsp support to apq8064
  sound: codec: Add support to msm8x16_wcd codec.
  ALSA: pcm: add IEC958 channel status helper for hw_params
  ASoC: hdmi-codec: Add hdmi-codec for external HDMI-encoders

8 years agoMerge branch 'tracking-qcomlt-i2c' into integration-linux-qcomlt
Srinivas Kandagatla [Thu, 14 Jan 2016 16:06:30 +0000 (16:06 +0000)]
Merge branch 'tracking-qcomlt-i2c' into integration-linux-qcomlt

* tracking-qcomlt-i2c:
  i2c: qup: Remove verbose messages.
  i2c: qup: Add bam dma capabilities
  i2c: qup: Transfer each i2c_msg in i2c_msgs without a stop bit
  i2c: qup: Add V2 tags support
  qup: i2c: factor out common code for reuse
  i2c: qup: Change qup_wait_writeready function to use for all timeouts

8 years agoMerge branch 'tracking-qcomlt-usb' into integration-linux-qcomlt
Srinivas Kandagatla [Thu, 14 Jan 2016 16:06:30 +0000 (16:06 +0000)]
Merge branch 'tracking-qcomlt-usb' into integration-linux-qcomlt

* tracking-qcomlt-usb:
  drivers: usb: Add bus scaling suppport
  usb: host: ehci-msm: Use posted data writes on AHB
  usb: chipidea: msm: Use posted data writes on AHB
  usb: phy: msm: Ensure that workers are initialized before use
  usb: phy: msm: Disable driver runtime PM
  usb: phy: msm: HACK: Make Vddc configuration optional
  usb: phy: msm: fix error handling in probe.

8 years agoMerge branch 'tracking-qcomlt-coresight' into integration-linux-qcomlt
Srinivas Kandagatla [Thu, 14 Jan 2016 16:06:29 +0000 (16:06 +0000)]
Merge branch 'tracking-qcomlt-coresight' into integration-linux-qcomlt

* tracking-qcomlt-coresight:
  coresight-etm3x: Add Qualcomm PTM v1.1 peripheral ID
  amba: Defer device peripheral ID read

8 years agoMerge branch 'tracking-qcomlt-tsens' into integration-linux-qcomlt
Srinivas Kandagatla [Thu, 14 Jan 2016 16:06:29 +0000 (16:06 +0000)]
Merge branch 'tracking-qcomlt-tsens' into integration-linux-qcomlt

* tracking-qcomlt-tsens:
  thermal: qcom: tsens-8960: Add support for 8960 family of SoCs
  thermal: qcom: tsens-8974: Add support for 8974 family of SoCs
  thermal: qcom: tsens-8916: Add support for 8916 family of SoCs
  thermal: qcom: tsens: Add a skeletal TSENS drivers

8 years agoMerge branch 'tracking-qcomlt-clk' into integration-linux-qcomlt
Srinivas Kandagatla [Thu, 14 Jan 2016 16:06:28 +0000 (16:06 +0000)]
Merge branch 'tracking-qcomlt-clk' into integration-linux-qcomlt

* tracking-qcomlt-clk: (27 commits)
  clk:gcc-msm8916: add missing mss_q6_bimc_axi clock
  soc: qcom: Add support for SAW2 regulators
  clk: qcom: Add A53 clock driver
  clk: qcom: Add support for regmap mux-div clocks
  clk: qcom: Add support for apq8084 RPM-SMD clocks
  clk: qcom: msm8974: Remove gfx3d clock from MMCC
  clk: qcom: Add support for msm8974 RPM-SMD clocks
  clk: qcom: Add support for RPM Clocks
  clk: qcom: Add support for SMD-RPM Clocks
  cpufreq: Add module to register cpufreq on Krait CPUs
  clk: qcom: Add Krait clock controller driver
  clk: qcom: Add KPSS ACC/GCC driver
  clk: qcom: Add support for Krait clocks
  clk: qcom: Add IPQ806X's HFPLLs
  clk: qcom: Add MSM8960/APQ8064's HFPLLs
  clk: qcom: Add HFPLL driver
  clk: qcom: Add support for High-Frequency PLLs (HFPLLs)
  clk: Add safe switch hook
  clk: mux: Split out register accessors for reuse
  clk: Avoid sending high rates to downstream clocks during set_rate
  ...

8 years agoMerge branch 'tracking-qcomlt-adv7511' into integration-linux-qcomlt
Srinivas Kandagatla [Thu, 14 Jan 2016 16:06:27 +0000 (16:06 +0000)]
Merge branch 'tracking-qcomlt-adv7511' into integration-linux-qcomlt

* tracking-qcomlt-adv7511:
  drm/i2c: adv7511: Init regulators
  drm/i2c: adv7511: fixup the dapm bias level access
  drm/i2c: adv7511: move to use reg_sequence
  HACK: drm/i2c: adv7511: Remove hotplug event handling
  drm/i2c: adv7511: Enable the audio data and clock pads on adv7533
  drm/i2c: adv7511: Add Audio support.
  drm/i2c: adv7511: Move the common data structures to header file
  drm/i2c: adv7511: Change DSI lanes dynamically
  drm/i2c: adv7511: Use internal timing generator
  drm/i2c: adv7511: setup CEC registers during power off-power-on sequence
  drm/i2c: adv7511: Create mipi_dsi_device for ADV7533
  drm/i2c: adv7511: Add drm_bridge/connector for ADV7533
  drm/i2c: adv7511: Refactor encoder slave functions
  drm/i2c: adv7511: Initial support for adv7533
  drm/i2c: adv7511: Fix mutex deadlock when interrupts are disabled
  drm/mipi_dsi: Get DSI host by DT device node
  drm/mipi_dsi: Create dummy DSI devices
  drm/mipi_dsi: check for used channels
  drm/mipi_dsi: refactor device creation

8 years agoMerge branch 'tracking-qcomlt-arm64' into integration-linux-qcomlt
Srinivas Kandagatla [Thu, 14 Jan 2016 16:06:27 +0000 (16:06 +0000)]
Merge branch 'tracking-qcomlt-arm64' into integration-linux-qcomlt

* tracking-qcomlt-arm64:
  arm64: fixup for mm renames
  arm64: dma-mapping: map sg lists into the SMMU as virtually contiguous
  arm64: dma-mapping: fix DMA_ATTR_STRONGLY_ORDERED in __get_dma_pgprot
  arm64: mm: Fix a bug in iommu dma-mapping
  arm64: dma-mapping: add support for IOMMU mapper
  arm64: Add support for DMA_ATTR_STRONGLY_ORDERED
  arm: Add option to skip buffer zeroing
  common: DMA-mapping: Add strongly ordered memory attribute
  arm64: defconfig: add qcom specifics
  arm64: qcom: add cpu operations
  arm64: smp: move the pen to a header file
  arm64: introduce CPU_OF_TABLES for cpu ops selection
  devicetree: bindings: Document qcom,msm-id and qcom,board-id
  arm64: defconfig: qcom: Enable restart driver
  ARM: cpuidle: Add cpuidle support for QCOM cpus

8 years agoMerge branch 'tracking-qcomlt-adm-dma' into integration-linux-qcomlt
Srinivas Kandagatla [Thu, 14 Jan 2016 16:06:26 +0000 (16:06 +0000)]
Merge branch 'tracking-qcomlt-adm-dma' into integration-linux-qcomlt

* tracking-qcomlt-adm-dma:
  dmaengine: adm: Start next DMA even if there is no ongoing transaction
  dmaengine: adm: Don't reset controller during probe
  dmaengine: adm: Use 'soft' flush when stopping DMA
  dmaengine: adm: Fix ADM hardware descriptor creation when flow control is enabled
  dmaengine: Add ADM driver
  dt/bindings: qcom_adm: Fix channel specifiers

8 years agoMerge branch 'tracking-qcomlt-iommu' into integration-linux-qcomlt
Srinivas Kandagatla [Thu, 14 Jan 2016 16:06:26 +0000 (16:06 +0000)]
Merge branch 'tracking-qcomlt-iommu' into integration-linux-qcomlt

* tracking-qcomlt-iommu: (25 commits)
  iommu: qcom: v1: move iommu-sec pgtable allocation
  pci: use new of_dma_configure* apis
  iommu/msm: Fix "scheduling while atomic" bug
  drm/msm: temp: Add a check to be compatible against both iommuv0/v1
  iommu: of: Handle IOMMU lookup failure with deferred probing or error
  iommu: of: Document the of_iommu_configure() function
  drivers: platform: Configure dma operations at probe time
  of: dma: Split of_configure_dma() into mask and ops configuration
  of: dma: Make of_dma_deconfigure() public
  of: dma: Move range size workaround to of_dma_get_range()
  arm: dma-mapping: Don't override dma_ops in arch_setup_dma_ops()
  temp: Add dummy msm_iommu_get_ctx and fix broken build
  iommu/msm: Set cacheability attributes without tex remap
  iommu/msm: Add support for generic master bindings
  iommu/msm: Move the contents from msm_iommu_dev.c to msm_iommu.c
  iommu/msm: Add DT adaptation
  DOWNSTREAM: drm/msm: use downstream iommu
  qcom: iommu: Make use of domain_alloc and domain_free
  arm64: provide dma cache routines with same API as 32 bit
  iommu: msm: Invalidate properly from iommu_unmap
  ...

8 years agoMerge branch 'tracking-qcomlt-apq8016-dt' into integration-linux-qcomlt
Srinivas Kandagatla [Thu, 14 Jan 2016 16:06:25 +0000 (16:06 +0000)]
Merge branch 'tracking-qcomlt-apq8016-dt' into integration-linux-qcomlt

* tracking-qcomlt-apq8016-dt: (72 commits)
  arm64: dts: add spmi prefix to regulators
  arm64: dts: move smem node after the soc node
  arm64: dts: apq8016-sbc: add regulators support
  arm64: dts: qcom: apq8016-sbc: Limit MPP4 high state to 1.8V
  arm64: dts: qcom: apq8016-sbc: Add Volume Down definitions
  arm64: dts: qcom: apq8016-sbc: Add Volume Up key device node
  arm64: dts: Align msm8916 cpu thermal trip point ranges
  arm64: msm8916-mdss.dtsi: Add bus scaling properties for mdp
  arm64: apq8016-sbc.dtsi: Add regulators needed by adv7533
  dts: arm64: qcom: apq8016-sbc: enable vidc and vidc-rproc
  dts: arm64: msm8916: add vidc dt nodes
  arm64: dts: Add rpm_log support
  arm64: dts: usb: Add bus scaling suppport
  arm64: dt: Add msm bus nodes
  WIP:dts: arm64: add q6v5 pil support
  wcn36xx: Update DT to support wcn36xx wifi driver
  arm64: dts: remove the #if 0 around bluetooth
  arm64: dts: Fix the hypervisor and tz memory region size
  dts: qcom: Add CoreSight components for MSM8916
  arm64: dts: qcom: Add msm8916 CoreSight components
  ...

8 years agoMerge branch 'tracking-qcomlt-apq8064-dt' into integration-linux-qcomlt
Srinivas Kandagatla [Thu, 14 Jan 2016 16:06:25 +0000 (16:06 +0000)]
Merge branch 'tracking-qcomlt-apq8064-dt' into integration-linux-qcomlt

* tracking-qcomlt-apq8064-dt: (37 commits)
  arm: dts: remove duplicate entires
  arm: dts: apq8064: fix clock names according to new rpmcc
  dts: qcom: Add CoreSight components for APQ8064
  ARM: dts: ERAGON: fix uart pinctrl
  arm: dts: qcom: apq8064: Add fixed rate on-board oscillators
  arm: dts: qcom: apq8064: Add RPMCC DT node
  dts: arm: add support to digital audio via dsp
  arm: dts: apq8064: add support to smd apr_audio svc channel
  dts: arm: apq8064: add support to q6 pil via pil-tz
  arm: dts: apq8064: Add thermal zones, tsens and qfprom nodes
  ARM: dts: apq8064: Increase critical temperature to 110C
  ARM: dts: ifc6410: HACK add bt reset gpios to pwrseq
  arm: dts: Added eInfochips ERAGON600 board support
  ARM: dts: apq8064: Add ADM configuration node
  ARM: dts: apq8064: Add a DT node for the L2 data
  ARM: dts: apq8064: Add reference to the L2 clock
  ARM: dts: apq8064: Add voltage ranges of the SAW2 regulators
  ARM: dts: apq8064: Add thermal cooling maps
  ARM: dts: apq8064: Add OPP data for frequencies above 1ghz
  ARM: dts: apq8064: Assign a power supply to each CPU
  ...

8 years agoMerge branch 'tracking-qcomlt-panelpicker' into integration-linux-qcomlt
Srinivas Kandagatla [Thu, 14 Jan 2016 16:06:24 +0000 (16:06 +0000)]
Merge branch 'tracking-qcomlt-panelpicker' into integration-linux-qcomlt

* tracking-qcomlt-panelpicker:
  drm/msm: mdp4 lvds: Check the panel node in detect_panel()
  drm/msm: mdp4 lvds: continue if the panel is not connected
  drm/panel: simple-panel: Add panel picker support.
  drm/edid: export edid_vendor()
  drm/edid: Add support to get edid early

8 years agoMerge branch 'tracking-qcomlt-mainline-pcie' into integration-linux-qcomlt
Srinivas Kandagatla [Thu, 14 Jan 2016 16:06:24 +0000 (16:06 +0000)]
Merge branch 'tracking-qcomlt-mainline-pcie' into integration-linux-qcomlt

* tracking-qcomlt-mainline-pcie:
  PCI: qcom: Add Qualcomm PCIe controller driver
  DT: PCI: qcom: Document PCIe devicetree bindings
  PCI: designware: add memory barrier after enabling region

8 years agoMerge branch 'tracking-qcomlt-venus' into integration-linux-qcomlt
Srinivas Kandagatla [Thu, 14 Jan 2016 16:06:23 +0000 (16:06 +0000)]
Merge branch 'tracking-qcomlt-venus' into integration-linux-qcomlt

* tracking-qcomlt-venus:
  media: vidc: venc/vdec: vb2 structure reorganisation
  media: vidc: debug: fix build warnings
  media: vidc: Qualcomm video encoder/decoder driver
  media: v4l2-controls: add h264 5.2 level and constrained high profile

8 years agomulti_v7_defconfig: add msm iommu kconfig
Srinivas Kandagatla [Thu, 14 Jan 2016 12:50:11 +0000 (12:50 +0000)]
multi_v7_defconfig: add msm iommu kconfig

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
8 years agocpufreq-dt: Add missing rcu_read_lock() for find_device_opp()
Georgi Djakov [Wed, 13 Jan 2016 13:10:25 +0000 (15:10 +0200)]
cpufreq-dt: Add missing rcu_read_lock() for find_device_opp()

The function dev_pm_opp_get_notifier() must be called with held
rcu_read_lock. In order to keep the pointer valid, add rcu_read_lock().

Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
8 years agoarm: dts: remove duplicate entires
Srinivas Kandagatla [Thu, 14 Jan 2016 16:01:37 +0000 (16:01 +0000)]
arm: dts: remove duplicate entires

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
8 years agoASoC: qcom: use correct device pointer in dma allocation
Srinivas Kandagatla [Mon, 11 Jan 2016 14:36:00 +0000 (14:36 +0000)]
ASoC: qcom: use correct device pointer in dma allocation

dev pointer in struct snd_soc_pcm_runtime does not have dma_ops set. In
v4.4 kernel dma_ops would end up pointing to dummy_dma_ops in such cases.
So attempting to use such device in allocating coherent memory on aarch64
would fail.

According to commit 1dccb598df549d892b6450c261da54cdd7af44b4 ("arm64:
simplify dma_get_ops") The current behavior of dma_get_ops is to fall
back to the global dma_ops when a device has not set its own dma_ops,
but only for DT based systems.

So, this patch fixes the driver to use correct device pointer while
allocating coherent memory, and also deletes un-necessary dma_mask setup
on soc_runtime->dev.

Without this patch lpass driver would fail with below log:
...
[    6.541542]  ADV7533: lpass_platform_alloc_buffer: Could not allocate DMA buffer
[    6.541914] apq8016-lpass-cpu 7708000.lpass-cpu: ASoC: pcm constructor failed: -12
[    6.548216] qcom-apq8016-sbc 7702000.sound: ASoC: can't create pcm ADV7533 :-12
[    6.555581] qcom-apq8016-sbc 7702000.sound: ASoC: failed to instantiate card -12
[    6.566072] qcom-apq8016-sbc: probe of 7702000.sound failed with error -12
...

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
8 years agoWIP: drm: msm: add proper hdmi codec driver.
Srinivas Kandagatla [Thu, 14 Jan 2016 10:37:16 +0000 (10:37 +0000)]
WIP: drm: msm: add proper hdmi codec driver.

This patch adds proper hdmi-codec driver using hdmi-codec support in
asoc.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
8 years agosound: qcom: add dsp support to apq8064
Srinivas Kandagatla [Mon, 7 Dec 2015 12:01:09 +0000 (12:01 +0000)]
sound: qcom: add dsp support to apq8064

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
8 years agosound: codec: Add support to msm8x16_wcd codec.
Srinivas Kandagatla [Wed, 14 Oct 2015 10:26:46 +0000 (11:26 +0100)]
sound: codec: Add support to msm8x16_wcd codec.

On msm8x16 SOCs the codec integration is split into digital and analog
parts, digitial part is integrated with SOC and the analog part is
integrated as part of pmic chip pm8916.

This driver provides basic playback support with lot of todos:
1> Capture support
2> Cleanup
3> Multi button head set support.
4> Impedenace matching logic.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
8 years agoALSA: pcm: add IEC958 channel status helper for hw_params
Jyri Sarha [Fri, 18 Sep 2015 11:06:39 +0000 (14:06 +0300)]
ALSA: pcm: add IEC958 channel status helper for hw_params

Add IEC958 channel status helper that gets the audio properties from
snd_pcm_hw_params instead of snd_pcm_runtime. This is needed to
produce the channel status bits already in audio stream configuration
phase.

Signed-off-by: Jyri Sarha <jsarha@ti.com>
8 years agoASoC: hdmi-codec: Add hdmi-codec for external HDMI-encoders
Jyri Sarha [Fri, 18 Sep 2015 11:06:40 +0000 (14:06 +0300)]
ASoC: hdmi-codec: Add hdmi-codec for external HDMI-encoders

The hdmi-codec is a platform device driver to be registered from
drivers of external HDMI encoders with I2S and/or spdif interface. The
driver in turn registers an ASoC codec for the HDMI encoder's audio
functionality.

The structures and definitions in the API header are mostly redundant
copies of similar structures in ASoC headers. This is on purpose to
avoid direct dependencies to ASoC structures in video side driver.

Signed-off-by: Jyri Sarha <jsarha@ti.com>
Conflicts:
sound/soc/codecs/Makefile

Conflicts:
sound/soc/codecs/Makefile

8 years agodrivers: usb: Add bus scaling suppport
Rajendra Nayak [Tue, 13 Oct 2015 12:08:52 +0000 (17:38 +0530)]
drivers: usb: Add bus scaling suppport

Add msm bus scaling support and hack to request
max bandwith at probe

Signed-off-by: Rajendra Nayak <rnayak@codeaurora.org>
8 years agousb: host: ehci-msm: Use posted data writes on AHB
Andy Gross [Thu, 5 Nov 2015 21:24:59 +0000 (15:24 -0600)]
usb: host: ehci-msm: Use posted data writes on AHB

This patch sets the AHBMODE to allow for posted data writes.  This
results in higher performance.

Signed-off-by: Andy Gross <agross@codeaurora.org>
8 years agousb: chipidea: msm: Use posted data writes on AHB
Andy Gross [Thu, 5 Nov 2015 21:18:25 +0000 (15:18 -0600)]
usb: chipidea: msm: Use posted data writes on AHB

This patch sets the AHBMODE to allow for posted data writes.  This results in
higher performance.

Signed-off-by: Andy Gross <agross@codeaurora.org>
8 years agousb: phy: msm: Ensure that workers are initialized before use
Ivan T. Ivanov [Wed, 13 May 2015 12:20:12 +0000 (15:20 +0300)]
usb: phy: msm: Ensure that workers are initialized before use

Charger detect and USB state detect workers could be triggered from
USB-HOST and USB cable detect notifiers. Ensure that workers are
initialized before driver register its interest for cable events.

Signed-off-by: Ivan T. Ivanov <ivan.ivanov@linaro.org>
8 years agousb: phy: msm: Disable driver runtime PM
Ivan T. Ivanov [Wed, 13 May 2015 12:11:14 +0000 (15:11 +0300)]
usb: phy: msm: Disable driver runtime PM

Currently runtime PM for this driver is broken. Disable it until
proper fix is developed.

Signed-off-by: Ivan T. Ivanov <ivan.ivanov@linaro.org>
8 years agousb: phy: msm: HACK: Make Vddc configuration optional
Ivan T. Ivanov [Fri, 8 May 2015 09:54:47 +0000 (12:54 +0300)]
usb: phy: msm: HACK: Make Vddc configuration optional

Signed-off-by: Ivan T. Ivanov <ivan.ivanov@linaro.org>
8 years agousb: phy: msm: fix error handling in probe.
Srinivas Kandagatla [Tue, 12 Jan 2016 09:15:28 +0000 (09:15 +0000)]
usb: phy: msm: fix error handling in probe.

This driver registers for extcon events as part of its probe, but
never unregisters them in case of error in the probe path.

There were multiple issues noticed due to this missing error handling.
One of them is random crashes if the regulators are not ready yet by the
time probe is invoked.

Ivan's previous attempt [1] to fix this issue, did not really address
all the failure cases like regualtor failures.

[1] https://lkml.org/lkml/2015/9/7/62

Without this patch the kernel would carsh with log:
...
Unable to handle kernel paging request at virtual address 17d78410
pgd = ffffffc001a5c000
[17d78410] *pgd=00000000b6806003, *pud=00000000b6806003, *pmd=0000000000000000
Internal error: Oops: 96000005 [#1] PREEMPT SMP
Modules linked in:
CPU: 0 PID: 6 Comm: kworker/u8:0 Not tainted 4.4.0+ #48
Hardware name: Qualcomm Technologies, Inc. APQ 8016 SBC (DT)
Workqueue: deferwq deferred_probe_work_func
task: ffffffc03686e900 ti: ffffffc0368b0000 task.ti: ffffffc0368b0000
PC is at raw_notifier_chain_register+0x1c/0x44
LR is at extcon_register_notifier+0x88/0xc8
pc : [<ffffffc0000da43c>] lr : [<ffffffc000606298>] pstate: 80000085
sp : ffffffc0368b3a70
x29: ffffffc0368b3a70 x28: ffffffc03680c310
x27: ffffffc035518000 x26: ffffffc035518000
x25: ffffffc03bfa20e0 x24: ffffffc035580a18
x23: 0000000000000000 x22: ffffffc035518458
x21: ffffffc0355e9a60 x20: ffffffc035518000
x19: 0000000000000000 x18: 0000000000000028
x17: 0000000000000003 x16: ffffffc0018153c8
x15: 0000000000000001 x14: ffffffc03686f0f8
x13: ffffffc03686f0f8 x12: 0000000000000003
x11: 0000000000000001 x10: 0000000000000001
x9 : ffffffc03686f0f8 x8 : 0000e3872014c1a1
x7 : 0000000000000028 x6 : 0000000000000000
x5 : 0000000000000001 x4 : 0000000000000000
x3 : 00000000354fb170 x2 : 0000000017d78400
x1 : ffffffc0355e9a60 x0 : ffffffc0354fb268

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
8 years agoarm: dts: apq8064: fix clock names according to new rpmcc
Srinivas Kandagatla [Thu, 10 Dec 2015 12:00:23 +0000 (12:00 +0000)]
arm: dts: apq8064: fix clock names according to new rpmcc

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
8 years agodts: qcom: Add CoreSight components for APQ8064
Ivan T. Ivanov [Fri, 11 Sep 2015 11:48:23 +0000 (14:48 +0300)]
dts: qcom: Add CoreSight components for APQ8064

Signed-off-by: Ivan T. Ivanov <ivan.ivanov@linaro.org>
8 years agoARM: dts: ERAGON: fix uart pinctrl
Srinivas Kandagatla [Mon, 7 Dec 2015 16:45:15 +0000 (16:45 +0000)]
ARM: dts: ERAGON: fix uart pinctrl

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
8 years agoarm: dts: qcom: apq8064: Add fixed rate on-board oscillators
Georgi Djakov [Mon, 7 Dec 2015 15:24:10 +0000 (15:24 +0000)]
arm: dts: qcom: apq8064: Add fixed rate on-board oscillators

Currently the rates of the xo and sleep clocks are hard-coded in the
GCC driver, but this is a board layout description that actually should
be in the DT. Moving them into DT also allows us to insert the RPM
controlled clocks between the DT and GCC clocks.

8 years agoarm: dts: qcom: apq8064: Add RPMCC DT node
Georgi Djakov [Thu, 3 Dec 2015 14:02:56 +0000 (16:02 +0200)]
arm: dts: qcom: apq8064: Add RPMCC DT node

Add the RPM Clock Controller DT node.

Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
8 years agodts: arm: add support to digital audio via dsp
Srinivas Kandagatla [Thu, 3 Dec 2015 14:56:45 +0000 (14:56 +0000)]
dts: arm: add support to digital audio via dsp

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
8 years agoarm: dts: apq8064: add support to smd apr_audio svc channel
Srinivas Kandagatla [Thu, 3 Dec 2015 10:42:02 +0000 (10:42 +0000)]
arm: dts: apq8064: add support to smd apr_audio svc channel

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
8 years agodts: arm: apq8064: add support to q6 pil via pil-tz
Srinivas Kandagatla [Thu, 3 Dec 2015 10:37:04 +0000 (10:37 +0000)]
dts: arm: apq8064: add support to q6 pil via pil-tz

This patch adds support to q6 firmware loading using the tz-pil driver.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
8 years agoiommu: qcom: v1: move iommu-sec pgtable allocation
Stanimir Varbanov [Tue, 12 Jan 2016 13:07:55 +0000 (15:07 +0200)]
iommu: qcom: v1: move iommu-sec pgtable allocation

move the allocation of iommu-sec page table into msm_iommu_dev
in order to use properly initialised struct device.
The dma_alloc_attrs would fail to allocate memory with the fake
struct device which was the case before this change.

Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org>
8 years agomedia: vidc: venc/vdec: vb2 structure reorganisation
Stanimir Varbanov [Mon, 11 Jan 2016 10:48:28 +0000 (12:48 +0200)]
media: vidc: venc/vdec: vb2 structure reorganisation

Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org>
8 years agomedia: vidc: debug: fix build warnings
Stanimir Varbanov [Tue, 12 Jan 2016 13:27:58 +0000 (15:27 +0200)]
media: vidc: debug: fix build warnings

Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org>
8 years agokernel: configs: Enable input misc device drivers
Ivan T. Ivanov [Fri, 18 Sep 2015 08:50:08 +0000 (11:50 +0300)]
kernel: configs: Enable input misc device drivers

Enable drivers which handle PMIC's input events.

Signed-off-by: Ivan T. Ivanov <ivan.ivanov@linaro.org>
8 years agokernel: configs: update distro config from release branch
Srinivas Kandagatla [Wed, 16 Sep 2015 16:08:51 +0000 (17:08 +0100)]
kernel: configs: update distro config from release branch

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
8 years agokernel: configs: improve distro.config, mostly for systemd
Nicolas Dechesne [Wed, 29 Jul 2015 13:03:15 +0000 (15:03 +0200)]
kernel: configs: improve distro.config, mostly for systemd

* add missing options required/optional for systemd
http://cgit.freedesktop.org/systemd/systemd/tree/README
Some options were enabled by default in arch/arm64/defconfig, but not in
arch/arm/multi_v7_defconfig..

* rework/move the options to separate out systemd configs

Signed-off-by: Nicolas Dechesne <nicolas.dechesne@linaro.org>
8 years agokernel: configs: update distro.config
Nicolas Dechesne [Wed, 29 Jul 2015 12:26:49 +0000 (14:26 +0200)]
kernel: configs: update distro.config

Add recent updates from 15.07 release.

Signed-off-by: Nicolas Dechesne <nicolas.dechesne@linaro.org>
8 years agokernel: configs: move linaro distro.conf as proper %.config fragment
Nicolas Dechesne [Wed, 29 Jul 2015 08:47:06 +0000 (10:47 +0200)]
kernel: configs: move linaro distro.conf as proper %.config fragment

Signed-off-by: Nicolas Dechesne <nicolas.dechesne@linaro.org>
8 years agolinaro: add defconfig fragment with basic linaro config
Nicolas Dechesne [Mon, 6 Jul 2015 08:51:25 +0000 (10:51 +0200)]
linaro: add defconfig fragment with basic linaro config

In order to ease kernel configuration, we are now using kernel config
fragments. In the folder linaro/configs, we will add fragments as needed with
all configurations that are required when using the Linaro kernel releases.

Users are expected to run the following command to properly configure their
kernel tree prior to the build:

./scripts/kconfig/merge_config.sh arch/arm64/configs/defconfig \
                                  linaro/configs/distro.conf \
                                  [-O <build-dir>]

Signed-off-by: Nicolas Dechesne <nicolas.dechesne@linaro.org>
8 years agowcn36xx: avoid alloc mem with GFP_KERNEL in smd callback.
Yin, Fengwei [Wed, 16 Sep 2015 15:37:31 +0000 (23:37 +0800)]
wcn36xx: avoid alloc mem with GFP_KERNEL in smd callback.

which will trigger warning when lockdep debugging is enabled.

Signed-off-by: Yin, Fengwei <fengwei.yin@linaro.org>
8 years agowcn36xx: eliminate the warning for unsupported SMD_EVENT
Yin, Fengwei [Wed, 14 Oct 2015 14:15:25 +0000 (22:15 +0800)]
wcn36xx: eliminate the warning for unsupported SMD_EVENT

  188 and 259.

Signed-off-by: Yin, Fengwei <fengwei.yin@linaro.org>
8 years agowcn36xx: Update the smd client driver to use new smd channel
Yin, Fengwei [Fri, 23 Oct 2015 08:07:42 +0000 (16:07 +0800)]
wcn36xx: Update the smd client driver to use new smd channel
match method.

Signed-off-by: Yin, Fengwei <fengwei.yin@linaro.org>
8 years agoBluetooth: btqcomsmd: Qualcomm WCNSS HCI driver
Bjorn Andersson [Tue, 20 Oct 2015 02:48:21 +0000 (10:48 +0800)]
Bluetooth: btqcomsmd: Qualcomm WCNSS HCI driver

The Qualcomm WCNSS chip provides two SMD channels to the BT core; one
for command and one for event packets. This driver exposes the two
channels as a hci device.

Signed-off-by: Bjorn Andersson <bjorn.andersson@sonymobile.com>
8 years agoBluetooth: Add HCI device identifier for Qualcomm SMD
Bjorn Andersson [Tue, 20 Oct 2015 02:46:25 +0000 (10:46 +0800)]
Bluetooth: Add HCI device identifier for Qualcomm SMD

This patch assigns the next free HCI device identifier to Bluetooth
devices based on the Qualcomm Shared Memory channels.

Signed-off-by: Bjorn Andersson <bjorn.andersson@sonymobile.com>
8 years agoMigrate the wifi driver from old smd driver to new smd driver.
Yin, Fengwei [Tue, 28 Jul 2015 07:21:54 +0000 (15:21 +0800)]
Migrate the wifi driver from old smd driver to new smd driver.

Signed-off-by: Yin, Fengwei <fengwei.yin@linaro.org>
Conflicts:
arch/arm64/boot/dts/qcom/msm8916.dtsi

8 years agoUpdate the initialization sequence to enable DB410c.
Yin, Fengwei [Sun, 13 Sep 2015 14:00:06 +0000 (22:00 +0800)]
Update the initialization sequence to enable DB410c.

The soc on DB410c board is not same as MTP8916. It doesn't support
48M operation frequency.

Signed-off-by: Yin, Fengwei <fengwei.yin@linaro.org>
8 years agoSet the dma mask for platform device which is not created from DT.
Yin, Fengwei [Thu, 23 Apr 2015 05:15:59 +0000 (13:15 +0800)]
Set the dma mask for platform device which is not created from DT.

Signed-off-by: Yin, Fengwei <fengwei.yin@linaro.org>
8 years agoGot workable wireless driver.
Yin, Fengwei [Fri, 17 Apr 2015 03:48:24 +0000 (11:48 +0800)]
Got workable wireless driver.

Signed-off-by: Yin, Fengwei <fengwei.yin@linaro.org>
8 years agowcn36xx: add later fw capabilities
Andy Green [Mon, 19 Jan 2015 04:33:42 +0000 (12:33 +0800)]
wcn36xx: add later fw capabilities

wcn3620 prima firmware exposes more capabilities than known about
in the mainline driver, they're reported as "unknown" at probe.

This adds the extra capabilities so they can at least be reported
correctly.

Signed-off-by: Andy Green <andy.green@linaro.org>
8 years agonet wireless wcn36xx adapt wcnss platform to select module by DT
Andy Green [Sat, 17 Jan 2015 03:20:49 +0000 (11:20 +0800)]
net wireless wcn36xx adapt wcnss platform to select module by DT

Simplify the resource handling and use DT to indicate which chip type
we are dealing with

Signed-off-by: Andy Green <andy.green@linaro.org>
8 years agonet wireless wcn36xx add wcnss platform code
Eugene Krasnikov [Sat, 17 Jan 2015 02:58:30 +0000 (10:58 +0800)]
net wireless wcn36xx add wcnss platform code

AG modified to remove regulator handling not needed on msm8916-qrd

Signed-off-by: Eugene Krasnikov <k.eugene.e@gmail.com>
Signed-off-by: Andy Green <andy.green@linaro.org>
8 years agowcn3620: use new response format for wcn3620 remove_bsskey
Andy Green [Mon, 19 Jan 2015 04:44:30 +0000 (12:44 +0800)]
wcn3620: use new response format for wcn3620 remove_bsskey

On wcn3620, firmware response to remove_bsskey uses the new, larger
"v2" format

Signed-off-by: Andy Green <andy.green@linaro.org>
8 years agowcn3620: use new response format for wcn3620 trigger_ba
Andy Green [Mon, 19 Jan 2015 04:52:37 +0000 (12:52 +0800)]
wcn3620: use new response format for wcn3620 trigger_ba

On wcn3620, firmware response to trigger_ba uses the new, larger
"v2" format

Signed-off-by: Andy Green <andy.green@linaro.org>
8 years agowcn36xx: handle new hal response format
Andy Green [Mon, 12 Jan 2015 15:01:26 +0000 (23:01 +0800)]
wcn36xx: handle new hal response format

wcn3620 has a new message structure for the reply to some hal
commands.  This patch adds the struct and helper routine that
uses it if the chip is wcn3620, or falls back to the old
helper routine.

We don't know what to do with the candidate list he sends back,
but we can at least accept and ignore it nicely instead of dying.

Signed-off-by: Andy Green <andy.green@linaro.org>
8 years agowcn36xx: remove powersaving for wcn3620
Andy Green [Mon, 12 Jan 2015 14:08:45 +0000 (22:08 +0800)]
wcn36xx: remove powersaving for wcn3620

WCN3620 powersaving mode is not stable.  Disable it if we're
on a wcn3620 chip type.

Signed-off-by: Andy Green <andy.green@linaro.org>
8 years agowcn36xx: swallow two wcn3620 IND messages
Andy Green [Sat, 17 Jan 2015 03:11:40 +0000 (11:11 +0800)]
wcn36xx: swallow two wcn3620 IND messages

WCN3620 can asynchronously send two new kinds of indication message,
since we can't handle them just accept them quietly.

v2: used one break for both in the second stanza

Signed-off-by: Andy Green <andy.green@linaro.org>
8 years agowcn36xx: introduce WCN36XX_HAL_AVOID_FREQ_RANGE_IND
Andy Green [Sat, 17 Jan 2015 03:07:02 +0000 (11:07 +0800)]
wcn36xx: introduce WCN36XX_HAL_AVOID_FREQ_RANGE_IND

WCN3620 firmware introduces a new async indication, we need to
add it as a known message type so we can accept it

Signed-off-by: Andy Green <andy.green@linaro.org>
8 years agowcn36xx: use 3680 dxe regs for 3620
Andy Green [Sat, 17 Jan 2015 03:02:00 +0000 (11:02 +0800)]
wcn36xx: use 3680 dxe regs for 3620

Between 3620, 3660 and 3680, only 3660 has a different dxe register

Signed-off-by: Andy Green <andy.green@linaro.org>
8 years agowcn36xx: get chip type from platform ops
Andy Green [Sat, 17 Jan 2015 04:39:15 +0000 (12:39 +0800)]
wcn36xx: get chip type from platform ops

Autodetecting the chip type does not work well.
Stop attempting to do it and require a platform op
that tells us what the chip is.

Signed-off-by: Andy Green <andy.green@linaro.org>
8 years agowcn36xx: add wcn3620 chip type definition
Andy Green [Sat, 17 Jan 2015 03:03:45 +0000 (11:03 +0800)]
wcn36xx: add wcn3620 chip type definition

Convert the list of chip types to an enum, add the default
UNKNOWN type and a type for WCN3620 chip

Signed-off-by: Andy Green <andy.green@linaro.org>
8 years agofirmware: scm: add proc restart support
Srinivas Kandagatla [Tue, 24 Nov 2015 16:55:32 +0000 (16:55 +0000)]
firmware: scm: add proc restart support

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
8 years agofirmware: qcom: scm: Fixup arm64 asm
Andy Gross [Thu, 6 Aug 2015 03:52:44 +0000 (22:52 -0500)]
firmware: qcom: scm: Fixup arm64 asm

This fixes an issue with x6 usage in scm calls.

Signed-off-by: Andy Gross <agross@codeaurora.org>
8 years agofirmware: qcom: scm: add video (vidc) scm calls
Stanimir Varbanov [Tue, 28 Apr 2015 14:20:09 +0000 (17:20 +0300)]
firmware: qcom: scm: add video (vidc) scm calls

Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org>
Conflicts:
drivers/firmware/qcom_scm.c

8 years agofirmware: qcom: scm: Support IOMMU scm calls
Stanimir Varbanov [Tue, 28 Apr 2015 11:05:33 +0000 (14:05 +0300)]
firmware: qcom: scm: Support IOMMU scm calls

Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org>
Conflicts:
drivers/firmware/qcom_scm-64.c
drivers/firmware/qcom_scm.c

8 years agofirmware: qcom: scm: Support PIL SCMs
Stanimir Varbanov [Mon, 27 Apr 2015 12:59:43 +0000 (15:59 +0300)]
firmware: qcom: scm: Support PIL SCMs

Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org>
Conflicts:
drivers/firmware/qcom_scm-32.c
drivers/firmware/qcom_scm.c
drivers/firmware/qcom_scm.h

Conflicts:
drivers/firmware/qcom_scm-32.c
drivers/firmware/qcom_scm-64.c
drivers/firmware/qcom_scm.c

8 years agofirmware: qcom: scm: Split out 32-bit specific SCM code
Kumar Gala [Wed, 11 Mar 2015 21:28:10 +0000 (16:28 -0500)]
firmware: qcom: scm: Split out 32-bit specific SCM code

Split out the 32-bit SCM implementation into its own file to prep for
supporting a 64-bit/ARM64 implementation as well.  We create a simple shim
to ensure both versions conform to the same interface.

Signed-off-by: Kumar Gala <galak@codeaurora.org>
8 years agofirmware: qcom: scm: Fix NULL coherent device
Andy Gross [Fri, 10 Jul 2015 17:35:29 +0000 (12:35 -0500)]
firmware: qcom: scm: Fix NULL coherent device

Signed-off-by: Andy Gross <agross@codeaurora.org>
8 years agofirmware: qcom: scm: Add 64 bit PAS APIs
Andy Gross [Fri, 3 Jul 2015 20:44:05 +0000 (15:44 -0500)]
firmware: qcom: scm: Add 64 bit PAS APIs

Signed-off-by: Andy Gross <agross@codeaurora.org>
8 years agofirmware: qcom: scm: Peripheral Authentication Service
Bjorn Andersson [Tue, 30 Jun 2015 19:46:19 +0000 (12:46 -0700)]
firmware: qcom: scm: Peripheral Authentication Service

This adds the Peripheral Authentication Service (PAS) interface to the
Qualcomm SCM interface. The API is used to authenticate and boot a range
of external processors in various Qualcomm platforms.

Signed-off-by: Bjorn Andersson <bjorn.andersson@sonymobile.com>
8 years agofirmware: qcom: scm: Add boot APIs
Andy Gross [Thu, 2 Jul 2015 22:09:09 +0000 (17:09 -0500)]
firmware: qcom: scm: Add boot APIs

This patch adds the warm/cold boot and cpu shutdown APIs.

Signed-off-by: Andy Gross <agross@codeaurora.org>
8 years agofirmware: qcom: scm: Generalize shared error map
Andy Gross [Thu, 2 Jul 2015 21:56:27 +0000 (16:56 -0500)]
firmware: qcom: scm: Generalize shared error map

This patch moves the qcom_scm_remap_error function to the include file where it
can be used by both the 32 and 64 bit versions of the code.

Signed-off-by: Andy Gross <agross@codeaurora.org>
8 years agofirmware: qcom: scm: Add support for ARM64 SoCs
Kumar Gala [Wed, 8 Apr 2015 19:34:02 +0000 (14:34 -0500)]
firmware: qcom: scm: Add support for ARM64 SoCs

Add an implementation of the SCM interface that works on ARM64/64-bit SoCs

Signed-off-by: Kumar Gala <galak@codeaurora.org>
Signed-off-by: Andy Gross <agross@codeaurora.org>
8 years agocpufreq-dt: Add L2 frequency scaling support
Georgi Djakov [Tue, 8 Sep 2015 08:24:41 +0000 (11:24 +0300)]
cpufreq-dt: Add L2 frequency scaling support

Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
Conflicts:
drivers/cpufreq/cpufreq-dt.c

8 years agopwer:avs: cpr: fix with new reg_sequence structures
Srinivas Kandagatla [Wed, 16 Sep 2015 15:55:12 +0000 (16:55 +0100)]
pwer:avs: cpr: fix with new reg_sequence structures

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
8 years agopower: avs: cpr: Fix Duplicate OPPs warning
Georgi Djakov [Fri, 11 Sep 2015 13:26:31 +0000 (16:26 +0300)]
power: avs: cpr: Fix Duplicate OPPs warning

Change the sequence to get the regulators first
and then add OPPs as regulators can defer probe
in the middle and leave us with only partially
added OPPs.

Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
8 years agopower: avs: Register CPR with cpufreq-dt
Georgi Djakov [Mon, 15 Jun 2015 06:44:42 +0000 (09:44 +0300)]
power: avs: Register CPR with cpufreq-dt

Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
8 years agopower: avs: cpr: Use raw mem access for qfprom
Georgi Djakov [Sun, 14 Jun 2015 19:22:47 +0000 (22:22 +0300)]
power: avs: cpr: Use raw mem access for qfprom

Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
8 years agopower: avs: Add support for CPR (Core Power Reduction)
Stephen Boyd [Tue, 2 Jun 2015 01:47:59 +0000 (18:47 -0700)]
power: avs: Add support for CPR (Core Power Reduction)

RBCPR (RapidBridge Core Power Reduction) is a technology to reduce
core power on a CPU or other device. It reads voltage settings in
efuse from product test process as initial settings and populates OPPs
for the device being "monitored". Each OPP corresponds to a "corner"
that has a range of valid voltages for a particular frequency. While
the device is running at a particular frequency, CPR monitors dynamic
factors such as temperature, etc. and adjusts the voltage for that
frequency accordingly to save power and meet silicon characteristic
requirements.

This driver is based on work by others on codeaurora.org[1].

TODO:
* DT binding documentation

[1] https://www.codeaurora.org/cgit/quic/la/kernel/msm-3.10/tree/drivers/regulator/cpr-regulator.c?h=msm-3.10

Cc: David Collins <collinsd@codeaurora.org>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
8 years agocpufreq-dt: Handle OPP voltage adjust events
Stephen Boyd [Tue, 2 Jun 2015 01:47:58 +0000 (18:47 -0700)]
cpufreq-dt: Handle OPP voltage adjust events

On some SoCs the Adaptive Voltage Scaling (AVS) technique is
employed to optimize the operating voltage of a device. At a
given frequency, the hardware monitors dynamic factors and either
makes a suggestion for how much to adjust a voltage for the
current frequency, or it automatically adjusts the voltage
without software intervention.

In the former case, an AVS driver will call
dev_pm_opp_modify_voltage() and update the voltage for the
particular OPP the CPUs are using. Add an OPP notifier to
cpufreq-dt so that we can adjust the voltage of the CPU when AVS
updates the OPP.

Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
8 years agoOPP: Allow notifiers to call dev_pm_opp_get_{voltage, freq} RCU-free
Stephen Boyd [Tue, 2 Jun 2015 01:47:57 +0000 (18:47 -0700)]
OPP: Allow notifiers to call dev_pm_opp_get_{voltage, freq} RCU-free

We pass the dev_pm_opp structure to OPP notifiers but the users
of the notifier need to surround calls to dev_pm_opp_get_*() with
RCU read locks to avoid lockdep warnings. The notifier is already
called with the dev_opp's srcu lock held, so it should be safe to
assume the devm_pm_opp structure is already protected inside the
notifier. Update the lockdep check for this.

Cc: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
8 years agoPM / OPP: Support adjusting OPP voltages at runtime
Stephen Boyd [Tue, 2 Jun 2015 01:47:56 +0000 (18:47 -0700)]
PM / OPP: Support adjusting OPP voltages at runtime

On some SoCs the Adaptive Voltage Scaling (AVS) technique is
employed to optimize the operating voltage of a device. At a
given frequency, the hardware monitors dynamic factors and either
makes a suggestion for how much to adjust a voltage for the
current frequency, or it automatically adjusts the voltage
without software intervention. Add an API to the OPP library for
the former case, so that AVS type devices can update the voltages
for an OPP when the hardware determines the voltage should
change. The assumption is that drivers like CPUfreq or devfreq
will register for the OPP notifiers and adjust the voltage
according to suggestions that AVS makes.

Cc: Nishanth Menon <nm@ti.com>
Cc: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
8 years agoMove to new qcom_smem_get() api
Srinivas Kandagatla [Fri, 8 Jan 2016 18:04:15 +0000 (18:04 +0000)]
Move to new qcom_smem_get() api

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
8 years agoFix: Make it buildable on v4.3
Srinivas Kandagatla [Tue, 8 Dec 2015 11:38:31 +0000 (11:38 +0000)]
Fix: Make it buildable on v4.3

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>