This snapshot is taken from msm-5.15 commit
cd3cf7328ad866a ("serial: msm_geni_serial:
Add snapshot of serial UART driver").
Change-Id: Ica622ba2ee0fdda2f868fec0f127d524db60b997
Signed-off-by: Guru Das Srinagesh <quic_gurus@quicinc.com>
Signed-off-by: Bruce Levy <quic_blevy@quicinc.com>
Currently, sdam_num is used to read SDAM_INDEX for reading samples
from each SDAM. However, it works well only when 2 SDAMs are used.
If ECM supports more than 2 SDAMs, SDAM_INDEX read for the third
SDAM (and after) would be incorrect. Fix it.
Change-Id: Ibf2219b80a7480a0fda11df974786c1d123ba492
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
Currently ECM_SEND_IRQ and ECM_WRITE_TO_SDAM offsets in first
SDAM is initialized to 0x03 to enable storing samples in two
SDAMs for ECM. With an additional SDAM for ECM, these registers
should be initialized accordingly. Support this by updating those
registers with a value based on number of SDAMs.
Change-Id: Icd262907e4fb71f8696b34f9ebf2463e281a2f66
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
Avg_current is an unsigned 16-bit data and assigning it a negative
value would make it being shown as a very big positive value which
doesn't make sense for ECM current measurement. Instead, assign it
to 0 upon error exceptions and print out corresponding messages.
Change-Id: I438667e40d63e4142860b7de4e7cf7495d3c424e
Signed-off-by: Fenglin Wu <fenglinw@codeaurora.org>
When ECM is enabled, disable ECM if display goes blank, and re-enable
ECM once display restores to unblank. This helps in keeping ECM HW
enabled only when display is active.
Meanwhile, update the logic a little bit on calculating the average
current. When any of the accumulated values is invalid, just ignore
the calculation instead of disabling the ECM.
Change-Id: Ibfe973df4dabd1b1cd48927ce567a094da6382a3
Signed-off-by: Fenglin Wu <fenglinw@codeaurora.org>
Add a wrapper function ecm_nvmem_device_write() which can log
the nvmem writes. This is useful for debugging.
Change-Id: Icc4ee6ff50b46f92e0169660e3400d80f7d4da37
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
Whenever ECM is enabled by the user, some SDAM registers are
initialized for the proper operation. Change the initial value
for ECM_WRITE_TO_SDAM as per the hardware recommendation.
Change-Id: I7a414bb83640178055f3c5a463daa6328aaef69c
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
AMOLED ECM (Embedded Current Measurement) is a method to measure OLED
display power consumption with a time granularity in sub-frame or
multiple frames of image data. ECM can be for a short period or for a
longer period.
Change-Id: I7ea0b7d8d5961ec015c5a79ee2037ff36329f775
Signed-off-by: Shyam Kumar Thella <sthella@codeaurora.org>
'Commit 106a4b85e0
("BACKPORT: FROMLIST: pwm: Add support for different PWM output types")'
cannot be carried forward. To support breath functionality make use of
the following APIs.
- qpnp_lpg_pwm_set_output_type
- qpnp_lpg_pwm_get_output_types_supported
This is needed to switch PWM output type to PWM (fixed) or LPG/PPG
(modulated).
Change-Id: I7e82f5d102b382c2a059e7b11a907c1d0c654b26
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
Currently, an error log is printed every time when parsing a DT
property fails because of probe deferral. Fix it.
Change-Id: I5d7781baa1fdfaf1abaccb3b0bfbee3f14eeea24
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
The QTI Tri-LED driver enables the configuration of the output of LED
channels in the TRI_LED and HR_LED peripherals found in QTI PMICs.
This is a snapshot of the driver taken from msm-4.19 as of commit
cf2cbb63fb60 ("Merge "input: touchscreen: synaptics_tcm: enable touch
driver"") with the following modifications:
- Remove the setting of struct pwm_output_pattern to NULL in
__tri_led_config_pwm()
- Remove LED_KEEP_TRIGGER from qpnp_tri_led_register()
- Add a MODULE_SOFTDEP link to the QTI PWM LPG driver so that modprobe
can enforce the functional dependency on it.
Change-Id: I7ceb2ff1a9ed1fec09651744ec2e7b2ba73f1bae
Signed-off-by: Guru Das Srinagesh <gurus@codeaurora.org>
Add a notification frameowrk to notify all clients
interested in getting various display panel events
like power on, power off, FPS change, etc. Clients
can use these notifications for power saving or
align its operations with display panel power state.
Change-Id: Ic4ed7f3207111824a5da84ed2a5a2e0e50e925f0
Signed-off-by: Shashank Babu Chinta Venkata <sbchin@codeaurora.org>
Add a snapshot of the msm_sysstats driver from msm-5.15 as of commit
9f8fd408d270 ("Merge "msm: adsprpc: Enable fastrpc driver in TVM"").
Change-Id: I5a065acee6f75cb3ec887d675837f8a729dadce2
Signed-off-by: Chris Goldsworthy <quic_cgoldswo@quicinc.com>
This reverts commit dbd0339fd7df91a34c1736a20599d74612e74553.
Will change to SMEM approach, so revert this change.
Change-Id: Ia2a4d5489631ff458d3d5854aa74909c7724bcdc
Signed-off-by: Huang Yiwei <hyiwei@codeaurora.org>
Signed-off-by: Prasad Sodagudi <quic_psodagud@quicinc.com>
With latest community guideliens replace the existing /* fall through */
comments and its variants with the new pseudo-keyword macro fallthrough[1].
In this driver /* fall through */ comments are not there, So add
fallthrough to avoid compilation errors.
[1] - https://www.kernel.org/doc/html/v5.7/process/deprecated.html?highlight=fallthrough#implicit-switch-case-fall-through
Change-Id: I3ba35159f7d2f0a261391ef06f274d85bad47497
Signed-off-by: Prasad Sodagudi <quic_psodagud@quicinc.com>
* refs/heads/tmp-05713a3:
ANDROID: Creating boot.img for x86_64 GKI
Linux 5.18
afs: Fix afs_getattr() to refetch file status if callback break occurred
perf session: Fix Intel LBR callstack entries and nr print message
perf test bpf: Skip test if clang is not present
perf test session topology: Fix test to skip the test in guest environment
perf bench numa: Address compiler error on s390
perf test: Avoid shell test description infinite loop
perf regs x86: Fix arch__intr_reg_mask() for the hybrid platform
perf test: Fix "all PMU test" to skip hv_24x7/hv_gpci tests on powerpc
drivers: i2c: thunderx: Allow driver to work with ACPI defined TWSI controllers
i2c: ismt: Provide a DMA buffer for Interrupt Cause Logging
i2c: mt7621: fix missing clk_disable_unprepare() on error in mtk_i2c_probe()
perf: Fix sys_perf_event_open() race against self
KVM: x86/mmu: fix NULL pointer dereference on guest INVPCID
KVM: x86: hyper-v: fix type of valid_bank_mask
KVM: Free new dirty bitmap if creating a new memslot fails
gpio: mvebu/pwm: Refuse requests with inverted polarity
gpio: gpio-vf610: do not touch other bits when set the target bit
perf stat: Fix and validate CPU map inputs in synthetic PERF_RECORD_STAT events
KVM: eventfd: Fix false positive RCU usage warning
perf build: Fix check for btf__load_from_kernel_by_id() in libbpf
selftests: kvm/x86: Verify the pmu event filter matches the correct event
selftests: kvm/x86: Add the helper function create_pmu_event_filter
kvm: x86/pmu: Fix the compare function used by the pmu event filter
scsi: ufs: core: Fix referencing invalid rsp field
riscv: dts: microchip: fix gpio1 reg property typo
riscv: dts: sifive: fu540-c000: align dma node name with dtschema
mmc: core: Fix busy polling for MMC_SEND_OP_COND again
drm/i915: Use i915_gem_object_ggtt_pin_ww for reloc_iomap
net: bridge: Clear offload_fwd_mark when passing frame up bridge interface.
ptp: ocp: change sysfs attr group handling
selftests: forwarding: fix missing backslash
Input: ili210x - use one common reset implementation
Input: ili210x - fix reset timing
drm/amd: Don't reset dGPUs if the system is going to s2idle
libceph: fix misleading ceph_osdc_cancel_request() comment
libceph: fix potential use-after-free on linger ping and resends
Fix double fget() in vhost_net_set_backend()
vdpa/mlx5: Use consistent RQT size
netfilter: nf_tables: disable expression reduction infra
netfilter: flowtable: move dst_check to packet path
netfilter: flowtable: fix TCP flow teardown
net: ftgmac100: Disable hardware checksum on AST2600
igb: skip phy status check where unavailable
nfc: pn533: Fix buggy cleanup order
mptcp: Do TCP fallback on early DSS checksum failure
mptcp: fix checksum byte order
ARM: 9197/1: spectre-bhb: fix loop8 sequence for Thumb2
ARM: 9196/1: spectre-bhb: enable for Cortex-A15
net: af_key: check encryption module availability consistency
net: af_key: add check for pfkey_broadcast in function pfkey_process
percpu_ref_init(): clean ->percpu_count_ref on failure
net/mlx5: Drain fw_reset when removing device
net/mlx5e: CT: Fix setting flow_source for smfs ct tuples
net/mlx5e: CT: Fix support for GRE tuples
net/mlx5e: Remove HW-GRO from reported features
net/mlx5e: Properly block HW GRO when XDP is enabled
net/mlx5e: Properly block LRO when XDP is enabled
net/mlx5e: Block rx-gro-hw feature in switchdev mode
net/mlx5e: Wrap mlx5e_trap_napi_poll into rcu_read_lock
net/mlx5: DR, Ignore modify TTL on RX if device doesn't support it
net/mlx5: Initialize flow steering during driver probe
net/mlx5: DR, Fix missing flow_source when creating multi-destination FW table
scsi: target: Fix incorrect use of cpumask_t
NFC: nci: fix sleep in atomic context bugs caused by nci_skb_alloc
net/qla3xxx: Fix a test in ql_reset_work()
selinux: fix bad cleanup on error in hashtab_duplicate()
drm/dp/mst: fix a possible memory leak in fetch_monitor_name()
parisc: Fix patch code locking and flushing
parisc: Rewrite cache flush code for PA8800/PA8900
parisc: Disable debug code regarding cache flushes in handle_nadtlb_fault()
clk: at91: generated: consider range when calculating best rate
audit,io_uring,io-wq: call __audit_uring_exit for dummy contexts
io_uring: don't attempt to IOPOLL for MSG_RING requests
ice: Fix interrupt moderation settings getting cleared
ice: fix possible under reporting of ethtool Tx and Rx statistics
ice: fix crash when writing timestamp on RX rings
arm64: mte: Ensure the cleared tags are visible before setting the PTE
arm64: kexec: load from kimage prior to clobbering
arm64: paravirt: Use RCU read locks to guard stolen_time
dma-buf: fix use of DMA_BUF_SET_NAME_{A,B} in userspace
net: vmxnet3: fix possible NULL pointer dereference in vmxnet3_rq_cleanup()
net: vmxnet3: fix possible use-after-free bugs in vmxnet3_rq_alloc_rx_buf()
xfrm: set dst dev to blackhole_netdev instead of loopback_dev in ifdown
net: systemport: Fix an error handling path in bcm_sysport_probe()
net: lan966x: Fix assignment of the MAC address
Revert "clk: sunxi-ng: sun6i-rtc: Add support for H6"
clk: bcm2835: fix bcm2835_clock_choose_div
ptp: ocp: have adjtime handle negative delta_ns correctly
netfilter: nft_flow_offload: fix offload with pppoe + vlan
net: fix dev_fill_forward_path with pppoe + bridge
netfilter: nft_flow_offload: skip dst neigh lookup for ppp devices
netfilter: flowtable: fix excessive hw offload attempts after failure
net/sched: act_pedit: sanitize shift argument before usage
ALSA: usb-audio: Restore Rane SL-1 quirk
ALSA: hda/realtek: fix right sounds and mute/micmute LEDs for HP machine
xfrm: fix "disable_policy" flag use when arriving from different devices
i915/guc/reset: Make __guc_reset_context aware of guilty engines
drm/i915/dmc: Add MMIO range restrictions
KVM: arm64: Don't hypercall before EL2 init
KVM: arm64: vgic-v3: Consistently populate ID_AA64PFR0_EL1.GIC
can: m_can: remove support for custom bit timing, take #2
Revert "can: m_can: pci: use custom bit timings for Elkhart Lake"
net: macb: Increment rx bd head after allocating skb and buffer
selftests: mptcp: add subflow limits test-cases
mptcp: fix subflow accounting on close
pinctrl: sunxi: f1c100s: Fix signal name comment for PA2 SPI pin
pinctrl: sunxi: fix f1c100s uart2 function
block/mq-deadline: Set the fifo_time member also if inserting at head
dma-buf: ensure unique directory name for dmabuf stats
Revert "tcp/dccp: get rid of inet_twsk_purge()"
net: ipa: get rid of a duplicate initialization
net: ipa: record proper RX transaction count
net: ipa: certain dropped packets aren't accounted for
crypto: qcom-rng - fix infinite loop on requests not multiple of WORD_SZ
ALSA: hda/realtek: Add quirk for TongFang devices with pop noise
KVM: x86/mmu: Update number of zapped pages even if page list is stable
io_uring: fix ordering of args in io_uring_queue_async_work
ALSA: hda/realtek: Add quirk for the Framework Laptop
ALSA: wavefront: Proper check of get_user() error
ALSA: hda/realtek: Add quirk for Dell Latitude 7520
ALSA: hda - fix unused Realtek function when PM is not enabled
ALSA: usb-audio: Don't get sample rate for MCT Trigger 5 USB-to-HDMI
pinctrl: mediatek: mt8365: fix IES control pins
pinctrl: ocelot: Fix for lan966x alt mode
MAINTAINERS: omap: remove me as a maintainer
dt-bindings: input: mediatek,mt6779-keypad: update maintainer
ARM: dts: aspeed: Add video engine to g6
ARM: dts: aspeed: romed8hm3: Fix GPIOB0 name
ARM: dts: aspeed: romed8hm3: Add lm25066 sense resistor values
ARM: dts: aspeed-g6: fix SPI1/SPI2 quad pin group
ARM: dts: aspeed-g6: add FWQSPI group in pinctrl dtsi
dt-bindings: pinctrl: aspeed-g6: add FWQSPI function/group
pinctrl: pinctrl-aspeed-g6: add FWQSPI function-group
dt-bindings: pinctrl: aspeed-g6: remove FWQSPID group
pinctrl: pinctrl-aspeed-g6: remove FWQSPID group in pinctrl
ARM: dts: aspeed-g6: remove FWQSPID group in pinctrl dtsi
arm64: dts: qcom: sm8250: don't enable rx/tx macro by default
arm64: dts: rockchip: Add gmac1 and change network settings of bpi-r2-pro
arm64: dts: rockchip: Change io-domains of bpi-r2-pro
Conflicts:
Documentation/devicetree/bindings
Documentation/devicetree/bindings/input/mediatek,mt6779-keypad.yaml
Documentation/devicetree/bindings/pinctrl/aspeed,ast2600-pinctrl.yaml
Upstream-Build:ks_qcom-android-mainline-keystone-qcom-release@8672405 SKQ4.220601.002
Change-Id: Id10170c7c63104e42071470f906a8d22e4c312ef
Signed-off-by: jianzhou <quic_jianzhou@quicinc.com>
This is a snapshot taken of cpuss sleep stats driver from msm-5.10
'commit <38857e954dd5> ("icnss2: Support wlan PON/POFF Sequence via
PMIC")'.
Updates:
- Use strscpy inplace of strlcpy
Change-Id: I8d2e050dd0a690168dc4a79e7d23f770072713c6
Signed-off-by: Maulik Shah <quic_mkshah@quicinc.com>
As per the hardware recommendation, add a ratio of 41/40 (i.e.
numerator 40 and denominator 41 based on how it's used in our
calculations) for the ADC channels that use SMB_TEMP pin because
of the voltage divider circuit with a 1 K and 40 K in parallel.
Change-Id: Id2d23c040fc3b38a826212b10152b6644918c96d
Signed-off-by: Subbaraman Narayanamurthy <quic_subbaram@quicinc.com>
Add the ADC5 GEN3 channels used by SMB139x.
Change-Id: Ibdf37c90397ae10a87f7607ebb1ddc2445d698c7
Signed-off-by: Anjelique Melendez <quic_amelende@quicinc.com>
Update scaling index of ICHG_FB channel used in ADC5 GEN3.
Change-Id: Iaa17e7c7a44288091818d28d6e0286d46f0eea6d
Signed-off-by: Anjelique Melendez <quic_amelende@quicinc.com>
[quic_collinsd@quicinc.com: changed prescale "num" and "den"
to "numerator" and "denominator" respectively]
Signed-off-by: David Collins <quic_collinsd@quicinc.com>
Currently __tm_handler_work() assumes that each element in chan_props[]
represents 1 SDAM register. However, chan_props[] has an element for every
ADC and ADC TM channel. Since every ADC channel shares the same SDAM
register the loop within __tm_handler_work() has incorrect conditions. Fix
this.
While at it, remove __tm_handler_work() which was invoked for every SDAM
as tm_handler_work() goes through all channels.
Change-Id: I5f3444ab831ff2067a1a53f49dea0c5dbbdc8758
Signed-off-by: Anjelique Melendez <quic_amelende@quicinc.com>
Add TEMP_ALARM_LITE channel mapping so that the proper scaling
function can be used with ADC code obtained after the conversion.
Change-Id: I4ad0564ba4e4bd3d8409e3923d4b0ad5f0395503
Signed-off-by: Subbaraman Narayanamurthy <quic_subbaram@quicinc.com>
Add ADC5_GEN3_TEMP_ALARM_LITE channel id that can be read from
PM8550B PMIC. Also, update ADC5_GEN3_ICHG_SMB channel that
was using the same channel id before.
Change-Id: Ic8d69fc651abe73ab11a8086876d2d2dea686542
Signed-off-by: Subbaraman Narayanamurthy <quic_subbaram@quicinc.com>
Currently adc5_gen3_probe() registers thermal zone devices and then
registers interrupt handlers. While registering the thermal zones the
ADC5 GEN3 TM get/set callbacks are called by thermal framework that relies
on interrupt completion. Since interrupts have not been registered the
callbacks will time out. Fix this and add error handling for thermal zone
registration.
Change-Id: I3ad94211f7831c94b0847fda549295ecfebcb90b
Signed-off-by: Anjelique Melendez <quic_amelende@quicinc.com>
Currently, when reading an ADC channel the SID is always configured to 0.
This is causing incorrect readings for ADC and ADC TM channels. Fix this.
Change-Id: If6332c6ec83f04ce4294df27e5bdb784cc5d23be
Signed-off-by: Anjelique Melendez <quic_amelende@quicinc.com>
adc5_prescaling_from_dt() is not needed as that is replaced with
qcom_adc5_prescaling_from_dt() in qcom-vadc-common.c. Since
adc5_prescale_ratios[] is also used from qcom-vadc-common.c and
not needed in qcom-spmi-adc5-gen3.c, remove it.
With the above change, adc5_chans_pmic[] needs to be updated with
the right indices. Update it.
Change-Id: Ibeb8ef6d9436ae448aadc9a99e5d0ef69767ac47
Signed-off-by: Subbaraman Narayanamurthy <quic_subbaram@quicinc.com>
[quic_collinsd@quicinc.com: fixed minor merge conflict]
Signed-off-by: David Collins <quic_collinsd@quicinc.com>
Fix the indentation to keep it uniform and readable.
Change-Id: I73da8941c72857a9f63dca3e8085873413b3a1f2
Signed-off-by: Subbaraman Narayanamurthy <quic_subbaram@quicinc.com>