summaryrefslogtreecommitdiff
path: root/drivers/devfreq (follow)
Commit message (Collapse)AuthorAge
* Merge branch 'android-4.4-p' of ↵Michael Bestas2020-10-23
|\ | | | | | | | | | | | | | | | | | | | | | | | | https://android.googlesource.com/kernel/common into lineage-17.1-caf-msm8998 This brings LA.UM.8.4.r1-06000-8x98.0 up to date with https://android.googlesource.com/kernel/common/ android-4.4-p at commit: 7a9986e91f909 UPSTREAM: binder: fix UAF when releasing todo list Conflicts: fs/eventpoll.c Change-Id: I77260d03cb539d7e7eefcea360aee2d59bb9e0cb
| * PM / devfreq: tegra30: Fix integer overflow on CPU's freq max outDmitry Osipenko2020-10-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | [ Upstream commit 53b4b2aeee26f42cde5ff2a16dd0d8590c51a55a ] There is another kHz-conversion bug in the code, resulting in integer overflow. Although, this time the resulting value is 4294966296 and it's close to ULONG_MAX, which is okay in this case. Reviewed-by: Chanwoo Choi <cw00.choi@samsung.com> Tested-by: Peter Geis <pgwipeout@gmail.com> Signed-off-by: Dmitry Osipenko <digetx@gmail.com> Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
* | Merge branch 'android-4.4-p' of ↵Michael Bestas2020-03-08
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://android.googlesource.com/kernel/common into lineage-17.1-caf-msm8998 This brings LA.UM.8.4.r1-05200-8x98.0 up to date with https://android.googlesource.com/kernel/common/ android-4.4-p at commit: 4db1ebdd40ec0 FROMLIST: HID: nintendo: add nintendo switch controller driver Conflicts: arch/arm64/boot/Makefile arch/arm64/kernel/psci.c arch/x86/configs/x86_64_cuttlefish_defconfig drivers/md/dm.c drivers/of/Kconfig drivers/thermal/thermal_core.c fs/proc/meminfo.c kernel/locking/spinlock_debug.c kernel/time/hrtimer.c net/wireless/util.c Change-Id: I5b5163497b7c6ab8487ffbb2d036e4cda01ed670
| * PM / devfreq: Don't fail devfreq_dev_release if not in listLeonard Crestez2020-01-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [ Upstream commit 42a6b25e67df6ee6675e8d1eaf18065bd73328ba ] Right now devfreq_dev_release will print a warning and abort the rest of the cleanup if the devfreq instance is not part of the global devfreq_list. But this is a valid scenario, for example it can happen if the governor can't be found or on any other init error that happens after device_register. Initialize devfreq->node to an empty list head in devfreq_add_device so that list_del becomes a safe noop inside devfreq_dev_release and we can continue the rest of the cleanup. Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com> Reviewed-by: Matthias Kaehlcke <mka@chromium.org> Reviewed-by: Chanwoo Choi <cw00.choi@samsung.com> Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
* | devfreq: Don't force compilation of userspace governorSultanxda2019-12-23
| | | | | | | | | | Change-Id: I540ed4fe4bef8f059e577c59a839b27ddee78345 Signed-off-by: Sultanxda <sultanxda@gmail.com>
* | PM / devfreq: bw_hwmon: Add missing mutex unlockMichael Bestas2019-12-23
| | | | | | | | | | | | | | Fixes 28aab0311cfcd9b279f41f2f4da0085a660d5ed5 "PM/devfreq: bw_hwmon: add mutex lock in polling interval case" Change-Id: I84ccefedbc9d9c0d25806799451346b6a46bae90
* | PM / devfreq: memlat: Don't ignore extremely latency sensitive workloadsSaravana Kannan2019-12-23
| | | | | | | | | | | | | | | | | | | | | | The ratio value that's compared against ratio_ceil tunable can be 0 for workloads that are extremely latency sensitive. So, we can't ignore cores that have a ratio of 0 (which was done to ignore idle cores). So, stop ignoring cores with a ratio of 0 and instead check for instruction or frequency being 0 to identify idle cores. Change-Id: I8c6c14f374f016e6612c3b834589d065bad8f488 Signed-off-by: Saravana Kannan <skannan@codeaurora.org>
* | PM / devfreq: bw_hwmon: use unsigned parameter for bytes_to_mbpsMaria Yu2019-12-23
| | | | | | | | | | | | | | | | | | | | | | In bytes_to_mbps function, the parameter is all unsigned, so change the decleration of the function to include unsigned long long to avoid compilation errors in 32 bit environment. Also changed the return value as unsigned long to avoid any data loss possible in 64 bit environment. Change-Id: Ib3906bb4bc16086ae343764c5a718f6f005428c5 Signed-off-by: Maria Yu <aiquny@codeaurora.org>
* | adreno_tz: Correct acc_relative_busy calculationHarshitha Sai Neelati2019-10-23
| | | | | | | | | | | | | | | | | | | | | | Current acc_relative_busy calculation is causing integer overflow in 32 bit system. "stats->busy_time * stats->current_frequency" results in a value which is beyond the 32 bit range. Typecasting the value to u64 to avoid overflow. Change-Id: Id97da02bef608787ceb7c9751bbfc203af56deb1 Signed-off-by: Harshitha Sai Neelati <hsaine@codeaurora.org>
* | PM / devfreq: gpubw_mon: Add null check for governor private dataArchana Sriram2019-09-22
| | | | | | | | | | | | | | | | | | During SUSPEND event, check the pointer for governor private data is not NULL before updating bus parameters to zero. Change-Id: I1a37173e8ae7ad4bcd5f8497c5956302e647c862 Signed-off-by: Archana Sriram <apsrir@codeaurora.org>
* | Merge android-4.4.163 (0ca3fca) into msm-4.4Srinivasarao P2018-11-15
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * refs/heads/tmp-0ca3fca Linux 4.4.163 x86/time: Correct the attribute on jiffies' definition l2tp: hold tunnel socket when handling control frames in l2tp_ip and l2tp_ip6 cpuidle: Do not access cpuidle_devices when !CONFIG_CPU_IDLE x86/percpu: Fix this_cpu_read() sched/fair: Fix throttle_list starvation with low CFS quota Input: elan_i2c - add ACPI ID for Lenovo IdeaPad 330-15IGM USB: fix the usbfs flag sanitization for control transfers usb: gadget: storage: Fix Spectre v1 vulnerability cdc-acm: correct counting of UART states in serial state notification IB/ucm: Fix Spectre v1 vulnerability RDMA/ucma: Fix Spectre v1 vulnerability ptp: fix Spectre v1 vulnerability cachefiles: fix the race between cachefiles_bury_object() and rmdir(2) ahci: don't ignore result code of ahci_reset_controller() crypto: shash - Fix a sleep-in-atomic bug in shash_setkey_unaligned mremap: properly flush TLB before releasing the page rtnetlink: Disallow FDB configuration for non-Ethernet device vhost: Fix Spectre V1 vulnerability net: drop skb on failure in ip_check_defrag() sctp: fix race on sctp_id2asoc r8169: fix NAPI handling under high load net: stmmac: Fix stmmac_mdio_reset() when building stmmac as modules net: socket: fix a missing-check bug net: sched: gred: pass the right attribute to gred_change_table_def() net/ipv6: Fix index counter for unicast addresses in in6_dump_addrs ipv6/ndisc: Preserve IPv6 control buffer if protocol error handlers are called ipv6: mcast: fix a use-after-free in inet6_mc_check net: bridge: remove ipv6 zero address check in mcast queries bridge: do not add port to router list when receives query with source 0.0.0.0 perf tools: Disable parallelism for 'make clean' mtd: spi-nor: Add support for is25wp series chips fs/fat/fatent.c: add cond_resched() to fat_count_free_clusters() ARM: dts: imx53-qsb: disable 1.2GHz OPP MIPS: DEC: Fix an int-handler.S CPU_DADDI_WORKAROUNDS regression igb: Remove superfluous reset to PHY and page 0 selection MIPS: microMIPS: Fix decoding of swsp16 instruction scsi: aacraid: Fix typo in blink status bonding: avoid defaulting hard_header_len to ETH_HLEN on slave removal PM / devfreq: tegra: fix error return code in tegra_devfreq_probe() ASoC: spear: fix error return code in spdif_in_probe() spi: xlp: fix error return code in xlp_spi_probe() spi/bcm63xx: fix error return code in bcm63xx_spi_probe() MIPS: Handle non word sized instructions when examining frame spi/bcm63xx-hspi: fix error return code in bcm63xx_hsspi_probe() usb: dwc3: omap: fix error return code in dwc3_omap_probe() usb: ehci-omap: fix error return code in ehci_hcd_omap_probe() usb: imx21-hcd: fix error return code in imx21_probe() gpio: msic: fix error return code in platform_msic_gpio_probe() sparc64: Fix exception handling in UltraSPARC-III memcpy. gpu: host1x: fix error return code in host1x_probe() sparc64 mm: Fix more TSB sizing issues video: fbdev: pxa3xx_gcu: fix error return code in pxa3xx_gcu_probe() tty: serial: sprd: fix error return code in sprd_probe() l2tp: hold socket before dropping lock in l2tp_ip{, 6}_recv() brcmfmac: Fix glom_skb leak in brcmf_sdiod_recv_chain gro: Allow tunnel stacking in the case of FOU/GUE vti6: flush x-netns xfrm cache when vti interface is removed ALSA: timer: Fix zero-division by continue of uninitialized instance ixgbe: Correct X550EM_x revision check ixgbe: fix RSS limit for X550 net/mlx5e: Correctly handle RSS indirection table when changing number of channels net/mlx5e: Fix LRO modify ixgbevf: Fix handling of NAPI budget when multiple queues are enabled per vector fuse: Dont call set_page_dirty_lock() for ITER_BVEC pages for async_dio drm/nouveau/fbcon: fix oops without fbdev emulation bpf: generally move prog destruction to RCU deferral usb-storage: fix bogus hardware error messages for ATA pass-thru devices sch_red: update backlog as well sparc/pci: Refactor dev_archdata initialization into pci_init_dev_archdata scsi: Add STARGET_CREATED_REMOVE state to scsi_target_state xfrm: Clear sk_dst_cache when applying per-socket policy. arm64: Fix potential race with hardware DBM in ptep_set_access_flags() CIFS: handle guest access errors to Windows shares ASoC: wm8940: Enable cache usage to fix crashes on resume ASoC: ak4613: Enable cache usage to fix crashes on resume MIPS: Fix FCSR Cause bit handling for correct SIGFPE issue usbvision: revert commit 588afcc1 perf/core: Don't leak event in the syscall error path aacraid: Start adapter after updating number of MSIX vectors x86/PCI: Mark Broadwell-EP Home Agent 1 as having non-compliant BARs tpm: fix: return rc when devm_add_action() fails thermal: allow u8500-thermal driver to be a module thermal: allow spear-thermal driver to be a module btrfs: don't create or leak aliased root while cleaning up orphans sched/cgroup: Fix cgroup entity load tracking tear-down um: Avoid longjmp/setjmp symbol clashes with libpthread.a ipv6: orphan skbs in reassembly unit net/mlx4_en: Resolve dividing by zero in 32-bit system af_iucv: Move sockaddr length checks to before accessing sa_family in bind and connect handlers radix-tree: fix radix_tree_iter_retry() for tagged iterators. x86/mm/pat: Prevent hang during boot when mapping pages ARM: dts: apq8064: add ahci ports-implemented mask tracing: Skip more functions when doing stack tracing of events ser_gigaset: use container_of() instead of detour net: drop write-only stack variable ipv6: suppress sparse warnings in IP6_ECN_set_ce() KEYS: put keyring if install_session_keyring_to_cred() fails net: cxgb3_main: fix a missing-check bug perf/ring_buffer: Prevent concurent ring buffer access smsc95xx: Check for Wake-on-LAN modes smsc75xx: Check for Wake-on-LAN modes r8152: Check for supported Wake-on-LAN Modes sr9800: Check for supported Wake-on-LAN modes lan78xx: Check for supported Wake-on-LAN modes ax88179_178a: Check for supported Wake-on-LAN modes asix: Check for supported Wake-on-LAN modes pxa168fb: prepare the clock Bluetooth: SMP: fix crash in unpairing mac80211_hwsim: do not omit multicast announce of first added radio xfrm: validate template mode ARM: 8799/1: mm: fix pci_ioremap_io() offset check cfg80211: reg: Init wiphy_idx in regulatory_hint_core() mac80211: Always report TX status xfrm6: call kfree_skb when skb is toobig xfrm: Validate address prefix lengths in the xfrm selector. BACKPORT: xfrm: Allow Output Mark to be Updated Using UPDSA ANDROID: sdcardfs: Add option to drop unused dentries f2fs: guarantee journalled quota data by checkpoint f2fs: cleanup dirty pages if recover failed f2fs: fix data corruption issue with hardware encryption f2fs: fix to recover inode->i_flags of inode block during POR f2fs: spread f2fs_set_inode_flags() f2fs: fix to spread clear_cold_data() Revert "f2fs: fix to clear PG_checked flag in set_page_dirty()" f2fs: account read IOs and use IO counts for is_idle f2fs: fix to account IO correctly for cgroup writeback f2fs: fix to account IO correctly f2fs: remove request_list check in is_idle() f2fs: allow to mount, if quota is failed f2fs: update REQ_TIME in f2fs_cross_rename() f2fs: do not update REQ_TIME in case of error conditions f2fs: remove unneeded disable_nat_bits() f2fs: remove unused sbi->trigger_ssr_threshold f2fs: shrink sbi->sb_lock coverage in set_file_temperature() f2fs: fix to recover cold bit of inode block during POR f2fs: submit cached bio to avoid endless PageWriteback f2fs: checkpoint disabling f2fs: clear PageError on the read path f2fs: allow out-place-update for direct IO in LFS mode f2fs: refactor ->page_mkwrite() flow Revert: "f2fs: check last page index in cached bio to decide submission" f2fs: support superblock checksum f2fs: add to account skip count of background GC f2fs: add to account meta IO f2fs: keep lazytime on remount f2fs: fix missing up_read f2fs: return correct errno in f2fs_gc f2fs: avoid f2fs_bug_on if f2fs_get_meta_page_nofail got EIO f2fs: mark inode dirty explicitly in recover_inode() f2fs: fix to recover inode's crtime during POR f2fs: fix to recover inode's i_gc_failures during POR f2fs: fix to recover inode's i_flags during POR f2fs: fix to recover inode's project id during POR f2fs: update i_size after DIO completion f2fs: report ENOENT correctly in f2fs_rename f2fs: fix remount problem of option io_bits f2fs: fix to recover inode's uid/gid during POR f2fs: avoid infinite loop in f2fs_alloc_nid f2fs: add new idle interval timing for discard and gc paths f2fs: split IO error injection according to RW f2fs: add SPDX license identifiers f2fs: surround fault_injection related option parsing using CONFIG_F2FS_FAULT_INJECTION f2fs: avoid sleeping under spin_lock f2fs: plug readahead IO in readdir() f2fs: fix to do sanity check with current segment number f2fs: fix memory leak of percpu counter in fill_super() f2fs: fix memory leak of write_io in fill_super() f2fs: cache NULL when both default_acl and acl are NULL f2fs: fix to flush all dirty inodes recovered in readonly fs f2fs: report error if quota off error during umount f2fs: submit bio after shutdown f2fs: avoid wrong decrypted data from disk Revert "f2fs: use printk_ratelimited for f2fs_msg" f2fs: fix unnecessary periodic wakeup of discard thread when dev is busy f2fs: fix to avoid NULL pointer dereference on se->discard_map f2fs: add additional sanity check in f2fs_acl_from_disk() Revert "BACKPORT, FROMLIST: fscrypt: add Speck128/256 support" Build fix for 076c36fce1ea0. Revert "BACKPORT, FROMGIT: crypto: speck - add support for the Speck block cipher" Revert "FROMGIT: crypto: speck - export common helpers" Revert "BACKPORT, FROMGIT: crypto: arm/speck - add NEON-accelerated implementation of Speck-XTS" Revert "BACKPORT, FROMGIT: crypto: speck - add test vectors for Speck128-XTS" Revert "BACKPORT, FROMGIT: crypto: speck - add test vectors for Speck64-XTS" Revert "BACKPORT, FROMLIST: crypto: arm64/speck - add NEON-accelerated implementation of Speck-XTS" Revert "fscrypt: add Speck128/256 support" UPSTREAM: loop: Add LOOP_SET_BLOCK_SIZE in compat ioctl BACKPORT: block/loop: set hw_sectors UPSTREAM: loop: add ioctl for changing logical block size Conflicts: fs/ext4/crypto.c fs/ext4/ext4.h Change-Id: I8cb2f70b27906879f8e8fdd90e67f438e39701b8 Signed-off-by: Srinivasarao P <spathi@codeaurora.org>
| * PM / devfreq: tegra: fix error return code in tegra_devfreq_probe()Gustavo A. R. Silva2018-11-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [ Upstream commit 9e578b37505018622dfafc40eed7cd78ff2af221 ] platform_get_irq() returns an error code, but the tegra-devfreq driver ignores it and always returns -ENODEV. This is not correct, and prevents -EPROBE_DEFER from being propagated properly. Notice that platform_get_irq() no longer returns 0 on error: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e330b9a6bb35dc7097a4f02cb1ae7b6f96df92af Print and propagate the return value of platform_get_irq on failure. Reviewed-by: Chanwoo Choi <cw00.choi@samsung.com> Signed-off-by: Gustavo A. R. Silva <garsilva@embeddedor.com> Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
* | Merge "devfreq: suppress platform driver bind / unbind feature"Linux Build Service Account2018-06-19
|\ \
| * | devfreq: suppress platform driver bind / unbind featureSantosh Mardi2018-06-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For arm-memlat and bimc-hwmon platform driver does not support the manual bind / unbind feature through sysfs, when the governor is registered and started. Suppress the bind / unbind calls using driver attribute. Change-Id: I8287012e1e6931d80953382f3d625223315cec85 Signed-off-by: Santosh Mardi <gsantosh@codeaurora.org>
* | | Merge android-4.4.117 (4ec3656) into msm-4.4Srinivasarao P2018-03-01
|\ \ \ | |/ / |/| / | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * refs/heads/tmp-4ec3656 Linux 4.4.117 media: r820t: fix r820t_write_reg for KASAN ARM: dts: s5pv210: add interrupt-parent for ohci ARM: pxa/tosa-bt: add MODULE_LICENSE tag vfs: don't do RCU lookup of empty pathnames x86: fix build warnign with 32-bit PAE dm: correctly handle chained bios in dec_pending() mvpp2: fix multicast address filter ALSA: seq: Fix racy pool initializations ALSA: usb-audio: add implicit fb quirk for Behringer UFX1204 ALSA: hda/realtek: PCI quirk for Fujitsu U7x7 ALSA: usb-audio: Fix UAC2 get_ctl request with a RANGE attribute ALSA: hda - Fix headset mic detection problem for two Dell machines Btrfs: fix unexpected -EEXIST when creating new inode Btrfs: fix crash due to not cleaning up tree log block's dirty bits Btrfs: fix deadlock in run_delalloc_nocow rtlwifi: rtl8821ae: Fix connection lost problem correctly console/dummy: leave .con_font_get set to NULL video: fbdev: atmel_lcdfb: fix display-timings lookup mm: hide a #warning for COMPILE_TEST ext4: correct documentation for grpid mount option ext4: save error to disk in __ext4_grp_locked_error() rtc-opal: Fix handling of firmware error codes, prevent busy loops drm/radeon: adjust tested variable x86/cpu: Change type of x86_cache_size variable to unsigned int KVM/x86: Reduce retpoline performance impact in slot_handle_level_range(), by always inlining iterator helper methods ALSA: seq: Fix regression by incorrect ioctl_mutex usages arm: spear13xx: Fix spics gpio controller's warning arm: spear13xx: Fix dmas cells arm: spear600: Add missing interrupt-parent of rtc ARM: dts: STi: Add gpio polarity for "hdmi,hpd-gpio" property s390: fix handling of -1 in set{,fs}[gu]id16 syscalls PM / devfreq: Propagate error from devfreq_add_device() IB/mlx4: Fix incorrectly releasing steerable UD QPs when have only ETH ports BACKPORT: tee: shm: Potential NULL dereference calling tee_shm_register() BACKPORT: tee: shm: don't put_page on null shm->pages BACKPORT: tee: shm: make function __tee_shm_alloc static BACKPORT: tee: optee: check type of registered shared memory BACKPORT: tee: add start argument to shm_register callback BACKPORT: tee: optee: fix header dependencies BACKPORT: tee: shm: inline tee_shm_get_id() BACKPORT: tee: use reference counting for tee_context BACKPORT: tee: optee: enable dynamic SHM support BACKPORT: tee: optee: add optee-specific shared pool implementation BACKPORT: tee: optee: store OP-TEE capabilities in private data BACKPORT: tee: optee: add registered buffers handling into RPC calls BACKPORT: tee: optee: add registered shared parameters handling BACKPORT: tee: optee: add shared buffer registration functions BACKPORT: tee: optee: add page list manipulation functions BACKPORT: tee: optee: Update protocol definitions BACKPORT: tee: shm: add page accessor functions BACKPORT: tee: shm: add accessors for buffer size and page offset BACKPORT: tee: add register user memory BACKPORT: tee: flexible shared memory pool creation BACKPORT: optee: support asynchronous supplicant requests BACKPORT: tee: add TEE_IOCTL_PARAM_ATTR_META BACKPORT: tee: add tee_param_is_memref() for driver use f2fs: fix build error with multiply defined inode_nohighmem() Change-Id: I6b4b025e4b03fe9433de0bf2ff292a8f24e3c3cb Signed-off-by: Srinivasarao P <spathi@codeaurora.org>
| * PM / devfreq: Propagate error from devfreq_add_device()Bjorn Andersson2018-02-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit d1bf2d30728f310f72296b54f0651ecdb09cbb12 upstream. Propagate the error of devfreq_add_device() in devm_devfreq_add_device() rather than statically returning ENOMEM. This makes it slightly faster to pinpoint the cause of a returned error. Fixes: 8cd84092d35e ("PM / devfreq: Add resource-managed function for devfreq device") Cc: stable@vger.kernel.org Acked-by: Chanwoo Choi <cw00.choi@samsung.com> Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org> Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* | dev_freq: devfreq_spdm: add null terminator to prevent OOB accessDavid Dai2017-09-25
| | | | | | | | | | | | | | | | Add null terminator to end of buffered copied from user to prevent over reading. Change-Id: I80cfcb087ea2c335fd65d8fcdaf372c7d34a533d Signed-off-by: David Dai <daidavid1@codeaurora.org>
* | adreno_tz: Remove unnecessary devfreq NULL check in tz_handler()Hareesh Gundu2017-05-26
| | | | | | | | | | | | | | | | | | Caller of tz_handler() is having the NULL check for devfreq,So we don’t need unnecessary NULL pointer check. CRs-Fixed: 2046922 Change-Id: I42eb70ab19b4a5af193521d77bca86447a1ecdb8 Signed-off-by: Hareesh Gundu <hareeshg@codeaurora.org>
* | PM/devfreq: bw_hwmon: add mutex lock in polling interval caseSantosh Mardi2017-05-12
| | | | | | | | | | | | | | | | | | | | | | Protect polling interval update event in the governor with mutex lock. This will avoid parallel execution of update interval event on different cores, resulting in memory poison overwritten. CRs-Fixed: 2035633 Change-Id: Ib919d9774317bc01e3cf581c169c5d18555f484f Signed-off-by: Santosh Mardi <gsantosh@codeaurora.org>
* | devfreq_spdm: Handle spurious interrupts during bootupDilip Kota2017-03-22
| | | | | | | | | | | | | | | | | | Terminate the interrupts triggered before the intitalisation itself. Change-Id: I7c005134ecbdae38b58e4312f9e294f5b59c2510 Signed-off-by: Dilip Kota <dkota@codeaurora.org> Signed-off-by: Kiran Gunda <kgunda@codeaurora.org>
* | adreno_tz: Correct tz_buf pointer type to correct pointer arithmeticDeepak Kumar2017-01-25
| | | | | | | | | | | | | | | | | | | | | | Current tz_buf pointer type is causing the end address calcultion of tz_buf to go wrong. "end_addr = tz_buf + PAGE_ALIGN(size)" is resulting in an end address way beyond the allocated range because tz_buf is of type unsigned int. This change changes the tz_buf pointer type to u8 to fix this issue. Change-Id: I16db09c565801b56c0c0ee8a8184f6e276512fa3 Signed-off-by: Deepak Kumar <dkumar@codeaurora.org>
* | adreno_tz: Fix divide by zero problem in gpu_load_show()Sudeep Yedalapure2016-11-24
| | | | | | | | | | | | | | | | | | | | If the acc_total value is zero then kernel would crash on div-by-zero. Add better input validation in gpu_load_show() to avoid divide by zero problem. CRs-Fixed: 1092584 Change-Id: I7affbd797bf4b0025f718c757043b36f392dae5b Signed-off-by: Sudeep Yedalapure <sudeepy@codeaurora.org>
* | PM / devfreq: Restart previous governor if new governor fails to startSaravana Kannan2016-11-09
| | | | | | | | | | | | | | | | If the new governor fails to start, switch back to old governor so that the devfreq state is not left in some weird limbo. Change-Id: I7cf1e6ceb63d27ce08b2d17b97a9844d257464ce Signed-off-by: Saravana Kannan <skannan@codeaurora.org>
* | Merge "msm: kgsl: Remove use of uninitialized variable"Linux Build Service Account2016-10-22
|\ \
| * | msm: kgsl: Remove use of uninitialized variableOleg Perelet2016-10-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | During certain code execution paths dev_ab can be assigned not initialized value. CRs-Fixed: 1074208 Change-Id: I330a50f6d171497e5b6d3e44e8ce2b09f2d644e3 Signed-off-by: Oleg Perelet <operelet@codeaurora.org>
* | | PM / devfreq: memlat: add device attribute to show core to device bw mapDavid Keitel2016-10-11
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds the freq_map device attribute to the mem_latency governor in order to display a given device's core frequency to device bandwidth. The output should be printed in the formatted in the same way as the example: Core freq (MHz) Device BW 300 1525 480 3143 900 4173 1017 7759 1296 9887 1555 11863 1804 13763 Change-Id: I6bef33a1239329f0687ee3983c2c02d84e984284 Signed-off-by: David Keitel <dkeitel@codeaurora.org>
* | PM / devfreq: bimc-bwmon: Fix rounding errorRohit Gupta2016-09-21
| | | | | | | | | | | | | | Fix rounding error that occurs when converting from byte to MB. Change-Id: Id507e0ae73c42ad5995af0153c3255ad69fde9df Signed-off-by: Rohit Gupta <rohgup@codeaurora.org>
* | PM / devfreq: bimc-bwmon: Add support for version 4Rohit Gupta2016-09-14
| | | | | | | | | | | | | | | | | | | | | | | | The version 4 of the BIMC BWMON hardware now has provisions for counting bytes transferred at a high sampling rate. Modify the existing driver and governor algorithm to take advantage of that. Change-Id: I5080297aef7e310d5c1a19098c177ddecb729c25 Signed-off-by: Rohit Gupta <rohgup@codeaurora.org> Signed-off-by: David Keitel <dkeitel@codeaurora.org>
* | PM / devfreq: bw_hwmon: Add HW offload support to governorSaravana Kannan2016-09-01
| | | | | | | | | | | | | | | | | | | | Some HW monitors can do a better job of the sampling and the threshold checking than the SW implementation in the governor. Update the governor's API to add support for them. Change-Id: Id4b5593a5ed3290684ba43ebebe2466ba0b730b6 Signed-off-by: Saravana Kannan <skannan@codeaurora.org> Signed-off-by: David Keitel <dkeitel@codeaurora.org>
* | PM / devfreq: memlat: Add a core to memory frequency mapping tableRohit Gupta2016-08-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a core to memory frequency mapping table, which establishes a relationship between the core frequency and its corresponding bandwidth vote. The governor expects a "qcom,core-dev-table" table as part of a given memlat hardware monitor's device tree node. This table is read upon registration of the memlat governor. The table is then used to determine the memory bandwidth vote corresponding to the maximum of the core frequencies. CRs-Fixed: 1054146 Change-Id: I9df118da1433125b02c937bf1799a0944b110fac Signed-off-by: Rohit Gupta <rohgup@codeaurora.org> Signed-off-by: David Keitel <dkeitel@codeaurora.org> Suggested-by: Saravana Kannan <skannan@codeaurora.org>
* | PM / devfreq: memlat: Remove kfree() on probe failsRohit Gupta2016-08-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Memory allocated with devm_kzalloc() is automatically freed if the probe function fails and returns an error code. So there is no need to free cpu_grp explicitly for the failure cases that might come up after it is allocated. Additionally calls to devm_kzalloc() must be accompanied by devm_kfree() if memory deallocation is necessary. For these reasons remove the kfree(cpu_grp) from the probe function. Change-Id: Ic4838fd58d40d283ac301facc64b06813eb3bd7d Signed-off-by: Rohit Gupta <rohgup@codeaurora.org>
* | dev_freq: devfreq_spdm: make cci_clk optional indicatorDavid Dai2016-06-29
| | | | | | | | | | | | | | | | | | | | Enable dev_freq SPDM support in order to increase BIMC vote based on bus rejection rate. Make cci_clk an optional property as it's not always a relevant indicator of cpu performance. CRs-Fixed: 1025515 Change-Id: I713cc396c8d563735981547e0dc18a63f6f15180 Signed-off-by: David Dai <daidavid1@codeaurora.org>
* | PM / devfreq: memlat: Prevent deadlock with hotplug in start_hwmonRohit Gupta2016-06-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When start_hwmon() runs with another thread trying to hotplug a CPU the two threads can enter a deadlock situation as follows: Thread A (start_hwmon()) Thread B (CPU down) get_online_cpus() | atomic_inc(&cpu_hotplug.refcount) CPU down | mutex_lock(&cpu_add_remove_lock) | cpu_hotplug_begin() waits on cpu_hotplug.refcount to reset register_cpu_notifier() | mutex_lock(&cpu_add_remove_lock) With this change the notifers are registered and unregistered per device rather than having a common notifier block for all the memlat devices and unregistration only happens on stop_hwmon. This makes it possible to move the registration outside the hotplug lock without any race between multiple memlat devices. Change-Id: I6ad561fe4967042e45190aea2c9b7fcfe05bafdd Signed-off-by: Rohit Gupta <rohgup@codeaurora.org>
* | PM / devfreq: Change the 'MSM' in devfreq device names to 'QCOM'Rohit Gupta2016-05-20
| | | | | | | | | | | | | | | | Substitute 'MSM' in the devfreq device/config names to 'QCOM' to comply with the current standards. Change-Id: I156ba6e2b5f8e06a28540ca5def5b178c3604512 Signed-off-by: Rohit Gupta <rohgup@codeaurora.org>
* | msm: kgsl: Port GPU bus dcvs to kernel 4.4Oleg Perelet2016-05-18
| | | | | | | | | | | | | | | | Port GPU dcvs from kernel 3.18 to kernel 4.4. CRs-Fixed: 1013343 Change-Id: Ide662b12aa59effa541febcd758426e72b4a1b12 Signed-off-by: Oleg Perelet <operelet@codeaurora.org>
* | PM / devfreq: bw_hwmon: Fix race condition in polling interval updateSaravana Kannan2016-04-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the polling interval is updated, the delayed workqueue is cancelled and requeued with the new polling interval. However, the bw_hwmon IRQ can come at the same time and try to stop and restart the delayed work (in the IRQ thread). This can cause a race where the work might be queued twice or canceled twice and cause a crash. Fix this race condition by suspending and resuming the HW monitor when we are updating the polling interval. This entirely avoids the race because suspending the HW monitor also avoid the possibility of the IRQ coming during the polling interval update. CRs-Fixed: 954082 Change-Id: Ic7baf2a3da4ed8f8a9023617059e22fd81c3ba45 Signed-off-by: Saravana Kannan <skannan@codeaurora.org>
* | adreno_tz: Use context aware dcvs calls, if availableDeepak Kumar2016-03-25
| | | | | | | | | | | | | | | | | | | | Add support to use context aware dcvs, if it is supported by TZ. Context aware dcvs helps in handling sudden workload scenarios. Change-Id: I5e6e6003a5c61eacb4f5af91910994919a5a7684 Signed-off-by: Deepak Kumar <dkumar@codeaurora.org> Signed-off-by: Divya Ponnusamy <pdivya@codeaurora.org>
* | msm: kgsl: Add disable-busy-time-burst to disable ceiling thresholdDivya Ponnusamy2016-03-23
| | | | | | | | | | | | | | | | | | | | Add a devicetree property disable-busy-time-burst to disable ceiling threshold in the governor. The ceiling threshold cause busy time burst that switch power level for large frames based on busy time. Change-Id: I44f8a51e0aa49bb0b2210703f57874fd5f219c18 Signed-off-by: Divya Ponnusamy <pdivya@codeaurora.org>
* | drivers: iommu, leds, input, clk, devfreq: fix warningsRohit Vaswani2016-03-23
| | | | | | | | | | | | | | | | Fix some variable initializations which would otherwise cause forbidden warnings. Signed-off-by: Rohit Vaswani <rvaswani@codeaurora.org> Signed-off-by: David Keitel <dkeitel@codeaurora.org>
* | PM / devfreq: Kconfig: Replace ARCH_MSM with ARCH_QCOMJunjie Wu2016-03-23
| | | | | | | | | | | | | | | | ARCH_MSM has been replaced by ARCH_QCOM. Fix Kconfig for various devfreq governors and devices. Change-Id: Ifa85494785cea7eb03be6c02d5664ee6bb2110c6 Signed-off-by: Junjie Wu <junjiew@codeaurora.org>
* | PM / devfreq: Fix the return value check in memlat governorRohit Gupta2016-03-23
| | | | | | | | | | | | | | | | | | | | The return value of kstrtouint is erroneously checked while setting the tunables for mem_latency governor due to which the tunables cannot be changed from their default values. This change rectifies that behavior. Change-Id: Ief7dda4638ede2c97b26229f1188a1559b238920 Signed-off-by: Rohit Gupta <rohgup@codeaurora.org>
* | PM / devfreq: Fix perf event initialization to avoid memory leaksRohit Gupta2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | Currently stop_hwmon only releases the perf events for each CPU in the memlat device group. This leaves out the perf_event_attrs that are not needed anymore leading to memory leaks. This patch frees perf_event_attrs right after the perf events are created because they are copied into the perf_event structure when it is created for a particular event and hence do not need to exist beyond that point. Change-Id: If0871739ef477dfbcbbfc6ab2a631ce25deaf71c Signed-off-by: Rohit Gupta <rohgup@codeaurora.org>
* | PM / devfreq: Handle offline CPUs while creating eventsRohit Gupta2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If any of the CPUs monitored by a memlat device is offline while trying to register for perf events, the registration fails returning an error code to the governor's start_monitor function which then fails the setting of governor and leaves the system in a bad state. To avoid this scenario, this patch allows for initialization errors while registering for perf events and remembers the failing offline CPUs. Perf event registration is tried for the failing CPUs when they come back online. Once all the CPUs have registered for perf events hotplug notifiers callbacks are unregistered. Change-Id: I36c33d9dc627f60ab9d7db41913661927938e850 Signed-off-by: Rohit Gupta <rohgup@codeaurora.org>
* | devfreq: devfreq_simple_dev: call clk_round_rate in dev_targetHanumath Prasad2016-03-23
| | | | | | | | | | | | | | | | | | | | clk_set_rate is failing for some of the frequencies due to higher precision introduced in clock driver. Hence call the clk_round_rate again in dev_target to make sure we send the correct frequency to clk_set_rate. Change-Id: I3e40690bf794d99debbcecdcaf05aaac3363caa8 Signed-off-by: Hanumath Prasad <hpprasad@codeaurora.org>
* | PM / devfreq: governor_cpufreq: Fix incorrect refcounting of OF nodeSaravana Kannan2016-03-23
| | | | | | | | | | | | | | | | | | | | | | The of_node_put(of_child) call was put in to balance the of_node_get() that's done inside for_each_child_of_node(). But that's not the right thing to do because for_each_child_of_node() already takes care of doing of_node_put(). So, delete the unnecessary of_node_put(of_child) call. We still need the of_node_put(of_par) though. Change-Id: Iff7744839cfcf01d5a472449f74859e9030b7e16 Signed-off-by: Saravana Kannan <skannan@codeaurora.org>
* | PM / devfreq: memlat: Get complete CPU list during the probeRohit Gupta2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently arm-memlat-mon driver uses cpu_coregroup_mask to get the sibling CPUs for the first CPU specified during the probe. However if any of the CPUs in a cluster isn't hotplugged in even once before the probe runs then the call to cpu_coregroup_mask might not give the updated list of all the sibling CPUs for the specified CPU. With this change the initialization of the cpumask for the memlat device is obtained from the list of CPU phandles specified in the dtsi file. Change-Id: Ide97d60d9eecbbe1d33deda72a13951059822896 Signed-off-by: Rohit Gupta <rohgup@codeaurora.org> [junjiew@codeaurora.org: dropped changes in dtsi files.] Signed-off-by: Junjie Wu <junjiew@codeaurora.org>
* | PM / devfreq : Introduce a memory-latency governorRohit Gupta2016-03-23
| | | | | | | | | | | | | | | | | | | | | | Use performance counters to detect the memory latency sensitivity of CPU workloads and vote for higher DDR frequency if required. Change-Id: Ie77a3523bc5713fc0315bd0abc3913f485a96e0e Signed-off-by: Rohit Gupta <rohgup@codeaurora.org> Suggested-by: Saravana Kannan <skannan@codeaurora.org> [junjiew@codeaurora.org: dropped changes in arch/arm64/Kconfig] Signed-off-by: Junjie Wu <junjiew@codeaurora.org>
* | PM / devfreq: bw_hwmon: Expose a throttle adjust tunableRohit Gupta2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | Newer versions of bimc-bwmon counters have the capability to fake higher byte count than what's actually transferred between a bus master and DDR if the bus master is being throttled by QoS hardware logic. Add support to set the throttle adjust field that comes with this newer version of bimc-bwmon. Change-Id: I33376c825fb11ab2e378f828b1d2ae46dd582836 Signed-off-by: Rohit Gupta <rohgup@codeaurora.org> [junjiew@codeaurora.org: dropped changes in dtsi.] Signed-off-by: Junjie Wu <junjiew@codeaurora.org>
* | PM / devfreq: bw_hwmon: Fix handling of max_mbpsSaravana Kannan2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When doing over-voting due to an UP_WAKE event, the governor pre-initialized the max_mbps value for the next decision window. This was done to prevent a dropping the vote below the original measurement in case a DOWN_WAKE event comes before the decision window is complete. This has the undesirable side-effect of keeping the votes high for two decision windows following an UP_WAKE event. Also, DOWN_WAKE event is currently disabled for any decision windows that didn't do over-voting because doing so had significant performance impacts. However, with historic max tracking, pattern detection and hysteresis, and mbps zones awareness that were added later on, the above concerns aren't really valid anymore. So, simply delete the pre-initialization of the max_mbps so that one decision window isn't unnecessarily voting higher than necessary. As part of the change, also fix down_cnt logic to allow it to work for all decision windows if enabled. Change-Id: I600e3783da617ed4efef5b05156016d88c301cea Signed-off-by: Saravana Kannan <skannan@codeaurora.org>
* | PM / devfreq: bw_hwmon: Allow up_scale to be set to zeroRohit Gupta2016-03-23
| | | | | | | | | | | | | | | | | | Currently the lower limit for setting up_scale is 100. Change it to 0 so that over-voting for spikes in measured bandwidth can be disabled by setting up_scale to 0. Change-Id: I1e5e3d51c625163b38074fb1eda26763455ea6c5 Signed-off-by: Rohit Gupta <rohgup@codeaurora.org>