From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 407F6C7EE43 for ; Thu, 8 Jun 2023 20:15:47 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 54E2D6B0072; Thu, 8 Jun 2023 16:15:46 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 4FCB36B0074; Thu, 8 Jun 2023 16:15:46 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 39CF68E0001; Thu, 8 Jun 2023 16:15:46 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 24E956B0072 for ; Thu, 8 Jun 2023 16:15:46 -0400 (EDT) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id E4C448038A for ; Thu, 8 Jun 2023 20:15:45 +0000 (UTC) X-FDA: 80880686250.20.5B92765 Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by imf05.hostedemail.com (Postfix) with ESMTP id 49754100010 for ; Thu, 8 Jun 2023 20:15:42 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=d6+sryJp; spf=pass (imf05.hostedemail.com: domain of lkp@intel.com designates 192.55.52.88 as permitted sender) smtp.mailfrom=lkp@intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1686255343; a=rsa-sha256; cv=none; b=cumwEFPyGzjGb2bAu8VhUdOwLzExVYoVDNzX/CmtYP1EFQahHSU290FBt6mIcAh6bMgMPP kZ8Jpe5eqi4+EMWapJMpIGdU3vlcAnMeN9KwO61zS0b/q+YzVU4qw6qv3jkKzsm7WEaHAQ P3VBOC/M9yHHU463MAk+P2YB4ZCw6qs= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=d6+sryJp; spf=pass (imf05.hostedemail.com: domain of lkp@intel.com designates 192.55.52.88 as permitted sender) smtp.mailfrom=lkp@intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1686255343; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding:in-reply-to: references:dkim-signature; bh=seXG8ClYBq1KPqLcdcjxmq/nM8WXjHjbTEYSRQfu20o=; b=3btEk1CBIbxxcVpQibmFIbEWDKGITsulkPAHgDqBLZwgYaMjLFPEi1L0jNejGSMEt9ERxm 5+ycNwtXebJIW7JCc1MxgSW8aEydVE2Hz5G2cA+2q9PgbZsthrVYdbaQPCgyW7bMWzNpBu +tn8DrAUwKn560HL3rX8fEvkO+C3+NU= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1686255342; x=1717791342; h=date:from:to:cc:subject:message-id:mime-version; bh=Phl7fDmkus2PeS9ivNtDJ8RW9/vb2OrkmuL0yboDYVo=; b=d6+sryJp2oKThZAJF5dBuyAgdk9BcsRrganLf/bfNqrFS1GGvpbuRII/ c7dotwbk3Z/TYprTkPuJbVaafAZY6L4LBgRWhbO/uBwNV/dR44JI9jIKj X75KhWoxzpitKiyAKN+ohXKX2R4pAs3leYoLG5AixEj8zHDVeHIStswV+ nYr8J8PAkxMJFEdFQz7nTC8pluMQPiYuQxf29nunkXaa6B+Zd3lcRMGDw 0rx5D2OEj3UE3XokRFg7hbmlc0uD9cdkWHAPlQXXJC3Pq701DxqRdO3R/ bb93eU71U8/9YXx5wc0kcibnM8MxatiKG7o50rdude1wgr8KnHayt5CwH Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10735"; a="385773174" X-IronPort-AV: E=Sophos;i="6.00,227,1681196400"; d="scan'208";a="385773174" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Jun 2023 13:15:40 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10735"; a="687489082" X-IronPort-AV: E=Sophos;i="6.00,227,1681196400"; d="scan'208";a="687489082" Received: from lkp-server01.sh.intel.com (HELO 15ab08e44a81) ([10.239.97.150]) by orsmga006.jf.intel.com with ESMTP; 08 Jun 2023 13:15:38 -0700 Received: from kbuild by 15ab08e44a81 with local (Exim 4.96) (envelope-from ) id 1q7M2j-0008EC-08; Thu, 08 Jun 2023 20:15:37 +0000 Date: Fri, 9 Jun 2023 04:14:51 +0800 From: kernel test robot To: Kees Cook Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev, linux-kernel@vger.kernel.org, Marco Elver , Andrew Morton , Linux Memory Management List Subject: drivers/gpu/drm/radeon/ci_dpm.c:5637:5: warning: stack frame size (2080) exceeds limit (2048) in 'ci_dpm_init' Message-ID: <202306090414.9ZouARLE-lkp@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 49754100010 X-Stat-Signature: mtb6f4x6a4u8nasnrxhded67qtrjron8 X-Rspam-User: X-HE-Tag: 1686255342-506932 X-HE-Meta: U2FsdGVkX19xpqaXPPgK0UChRYdZGgkYuUH3LubGHrsTJvsS6ZZJNqYPkD2essVmVk30US3y2wkDfweUfFgdIatKAcCQrcwUb304z9KK1kGhsywcO+UFeAwSzSQfZ1xpryXZpGYrBFjYtQN4QeVl8jnmssKc3OznvhrsJMIJ13ec1W/SpZncllnSkx5RyV796eXrZcmlg5nEFi9wyJJ0RO7Mk2pIK7Hm1mwbSnnAUGgy200yo6IfhgCY7Ff0/7c3d8j7ggx4yc5H+HE5qbsvs5+imo/+qbMu//fXh2Z23DQqgOGDqmQN15Fl0QFFS+BOx2wAZiNzZO6avb0kFh/odSpj+FohdlANukUQDQ46AOQTb2K6/9RMZpqburIIu+nZgQXm3ubrM3X0Mm3gwU1xaDQcFlluDvA9Lpc3gkn4AUDzjMlWM9KXTM59WxLabtuHvP467Aiqdq4ibkgPIgeYmM9j02vPDyoI1hfcZHrIYaqwQiWaYJrx9xkrK3sQbd7gm8VomxQeD54oZ6XgKw7dD1SPei2YAFkvFHJJqXegEMLErq67hBDlnbxWUEIkJQMykedyidec8eWIMCTTy94VXglfJsekbxLuOmXgUy0S4r7Ihr/mV1mxPj4lStBwttFLOGU+gDV7wpiC5ZK/N0bB2UAVGdD+SCLE1jzLt1vqiA9l/Vy7aoJ/YPrWwqeX6b/9tfokQojPRIwZooWERep68hgbX8bGo8nJMhI/rguYahF+MomPFFj5b2ES+Cp/d6YXNenXZcH0iaBN347dwBDM5xeSxZsw3CAQB2Uhx04wV77aNtNHRx/kSbMdr/GGG4LGOy0VArqx2na3erEr4OyeJifQrQmiI1SVBvbxS9ME/vQ97qYtsPLG96nDa3owlBeqwmOkwY0otQrN7r3Zq/d1GIc6fK4ZQ7bi+J29LOdw5K3qv1kVtS7B2hGpyIGJKynr1rB2M5Id1pqpP1nYfD5 LtnHgD/8 IQBUH1evYWaxRaGlVjMKEMcc0Zg3Dwxk5GVn/WREuA5nk+N6PPLbdpZRPNeaew1iMEBNvnhCwFcfEgjVn/iSSOsG0BSeVS4dXVq1fs1TMQ8YqSna2IxcWcApKmJHMM8W8AaSs+rzq6L3X4hL0v5pmI/b5J03LJ0o+1bKl37ZJv6k200ISAz8P93KFyotVK62FGg/tSBcsjEilYuvnpBUvl8lo7RCTDsom/rCYocqj9RG8gIuHIF3xpnP7SE3TH1wXk4NGD0CBvxr2ytDwG8IeUz5dcAvjzU4wo/aU5wRD1o8UliioyLnDV+sT2uK/EI5un/+tSYeAA0umesbB2Fg8aEDj/4bs3yFBCMEkB0X59ijC/LYq+I9pjPmLpW2Z3B0yKiU9E3uPkbmIRaH7HX3YeNSp1aLGX+CkEPVmRFd4EwTaTXM= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: Hi Kees, First bad commit (maybe != root cause): tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 25041a4c02c7cf774d8b6ed60586fd64f1cdaa81 commit: 69d0db01e210e07fe915e5da91b54a867cda040f ubsan: remove CONFIG_UBSAN_OBJECT_SIZE date: 1 year, 5 months ago config: riscv-randconfig-r012-20230608 (https://download.01.org/0day-ci/archive/20230609/202306090414.9ZouARLE-lkp@intel.com/config) compiler: clang version 14.0.6 (https://github.com/llvm/llvm-project.git f28c006a5895fc0e329fe15fead81e37457cb1d1) reproduce (this is a W=1 build): mkdir -p ~/bin wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # install riscv cross compiling tool for clang build # apt-get install binutils-riscv64-linux-gnu # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=69d0db01e210e07fe915e5da91b54a867cda040f git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git git fetch --no-tags linus master git checkout 69d0db01e210e07fe915e5da91b54a867cda040f # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang ~/bin/make.cross W=1 O=build_dir ARCH=riscv olddefconfig COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang ~/bin/make.cross W=1 O=build_dir ARCH=riscv SHELL=/bin/bash drivers/gpu/drm/ drivers/hid/ drivers/media/tuners/ lib/ If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot | Closes: https://lore.kernel.org/oe-kbuild-all/202306090414.9ZouARLE-lkp@intel.com/ All warnings (new ones prefixed by >>): >> drivers/gpu/drm/radeon/ci_dpm.c:5637:5: warning: stack frame size (2080) exceeds limit (2048) in 'ci_dpm_init' [-Wframe-larger-than] int ci_dpm_init(struct radeon_device *rdev) ^ 1 warning generated. -- >> drivers/gpu/drm/radeon/si_dpm.c:6880:5: warning: stack frame size (2160) exceeds limit (2048) in 'si_dpm_init' [-Wframe-larger-than] int si_dpm_init(struct radeon_device *rdev) ^ 1 warning generated. vim +/ci_dpm_init +5637 drivers/gpu/drm/radeon/ci_dpm.c cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5636 cc8dbbb4f62aa53 Alex Deucher 2013-08-14 @5637 int ci_dpm_init(struct radeon_device *rdev) cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5638 { cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5639 int index = GetIndexIntoMasterTable(DATA, ASIC_InternalSS_Info); 34fc0b58d91f7ee Alex Deucher 2014-11-07 5640 SMU7_Discrete_DpmTable *dpm_table; 34fc0b58d91f7ee Alex Deucher 2014-11-07 5641 struct radeon_gpio_rec gpio; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5642 u16 data_offset, size; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5643 u8 frev, crev; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5644 struct ci_power_info *pi; 089888c46841cef Alex Deucher 2019-01-15 5645 enum pci_bus_speed speed_cap = PCI_SPEED_UNKNOWN; 5f152a572c10cae Alex Deucher 2018-06-25 5646 struct pci_dev *root = rdev->pdev->bus->self; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5647 int ret; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5648 cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5649 pi = kzalloc(sizeof(struct ci_power_info), GFP_KERNEL); cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5650 if (pi == NULL) cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5651 return -ENOMEM; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5652 rdev->pm.dpm.priv = pi; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5653 089888c46841cef Alex Deucher 2019-01-15 5654 if (!pci_is_root_bus(rdev->pdev->bus)) 5f152a572c10cae Alex Deucher 2018-06-25 5655 speed_cap = pcie_get_speed_cap(root); 5f152a572c10cae Alex Deucher 2018-06-25 5656 if (speed_cap == PCI_SPEED_UNKNOWN) { cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5657 pi->sys_pcie_mask = 0; 5f152a572c10cae Alex Deucher 2018-06-25 5658 } else { 5f152a572c10cae Alex Deucher 2018-06-25 5659 if (speed_cap == PCIE_SPEED_8_0GT) 5f152a572c10cae Alex Deucher 2018-06-25 5660 pi->sys_pcie_mask = RADEON_PCIE_SPEED_25 | 5f152a572c10cae Alex Deucher 2018-06-25 5661 RADEON_PCIE_SPEED_50 | 5f152a572c10cae Alex Deucher 2018-06-25 5662 RADEON_PCIE_SPEED_80; 5f152a572c10cae Alex Deucher 2018-06-25 5663 else if (speed_cap == PCIE_SPEED_5_0GT) 5f152a572c10cae Alex Deucher 2018-06-25 5664 pi->sys_pcie_mask = RADEON_PCIE_SPEED_25 | 5f152a572c10cae Alex Deucher 2018-06-25 5665 RADEON_PCIE_SPEED_50; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5666 else 5f152a572c10cae Alex Deucher 2018-06-25 5667 pi->sys_pcie_mask = RADEON_PCIE_SPEED_25; 5f152a572c10cae Alex Deucher 2018-06-25 5668 } cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5669 pi->force_pcie_gen = RADEON_PCIE_GEN_INVALID; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5670 cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5671 pi->pcie_gen_performance.max = RADEON_PCIE_GEN1; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5672 pi->pcie_gen_performance.min = RADEON_PCIE_GEN3; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5673 pi->pcie_gen_powersaving.max = RADEON_PCIE_GEN1; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5674 pi->pcie_gen_powersaving.min = RADEON_PCIE_GEN3; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5675 cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5676 pi->pcie_lane_performance.max = 0; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5677 pi->pcie_lane_performance.min = 16; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5678 pi->pcie_lane_powersaving.max = 0; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5679 pi->pcie_lane_powersaving.min = 16; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5680 cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5681 ret = ci_get_vbios_boot_values(rdev, &pi->vbios_boot_state); cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5682 if (ret) { cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5683 ci_dpm_fini(rdev); cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5684 return ret; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5685 } 82f79cc54b6a67c Alex Deucher 2013-08-21 5686 82f79cc54b6a67c Alex Deucher 2013-08-21 5687 ret = r600_get_platform_caps(rdev); 82f79cc54b6a67c Alex Deucher 2013-08-21 5688 if (ret) { 82f79cc54b6a67c Alex Deucher 2013-08-21 5689 ci_dpm_fini(rdev); 82f79cc54b6a67c Alex Deucher 2013-08-21 5690 return ret; 82f79cc54b6a67c Alex Deucher 2013-08-21 5691 } 8cd366823e0045b Alex Deucher 2013-08-23 5692 8cd366823e0045b Alex Deucher 2013-08-23 5693 ret = r600_parse_extended_power_table(rdev); cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5694 if (ret) { cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5695 ci_dpm_fini(rdev); cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5696 return ret; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5697 } 8cd366823e0045b Alex Deucher 2013-08-23 5698 8cd366823e0045b Alex Deucher 2013-08-23 5699 ret = ci_parse_power_table(rdev); cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5700 if (ret) { cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5701 ci_dpm_fini(rdev); cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5702 return ret; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5703 } cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5704 cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5705 pi->dll_default_on = false; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5706 pi->sram_end = SMC_RAM_END; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5707 cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5708 pi->activity_target[0] = CISLAND_TARGETACTIVITY_DFLT; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5709 pi->activity_target[1] = CISLAND_TARGETACTIVITY_DFLT; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5710 pi->activity_target[2] = CISLAND_TARGETACTIVITY_DFLT; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5711 pi->activity_target[3] = CISLAND_TARGETACTIVITY_DFLT; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5712 pi->activity_target[4] = CISLAND_TARGETACTIVITY_DFLT; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5713 pi->activity_target[5] = CISLAND_TARGETACTIVITY_DFLT; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5714 pi->activity_target[6] = CISLAND_TARGETACTIVITY_DFLT; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5715 pi->activity_target[7] = CISLAND_TARGETACTIVITY_DFLT; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5716 cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5717 pi->mclk_activity_target = CISLAND_MCLK_TARGETACTIVITY_DFLT; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5718 cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5719 pi->sclk_dpm_key_disabled = 0; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5720 pi->mclk_dpm_key_disabled = 0; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5721 pi->pcie_dpm_key_disabled = 0; 0e4ed1c1908e48e Alex Deucher 2014-09-15 5722 pi->thermal_sclk_dpm_enabled = 0; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5723 7e1858f9aff7d60 Alex Deucher 2014-04-11 5724 /* mclk dpm is unstable on some R7 260X cards with the old mc ucode */ 7e1858f9aff7d60 Alex Deucher 2014-04-11 5725 if ((rdev->pdev->device == 0x6658) && 7e1858f9aff7d60 Alex Deucher 2014-04-11 5726 (rdev->mc_fw->size == (BONAIRE_MC_UCODE_SIZE * 4))) { 57700ad1f2f21d5 Alex Deucher 2014-04-10 5727 pi->mclk_dpm_key_disabled = 1; 7e1858f9aff7d60 Alex Deucher 2014-04-11 5728 } 57700ad1f2f21d5 Alex Deucher 2014-04-10 5729 cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5730 pi->caps_sclk_ds = true; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5731 cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5732 pi->mclk_strobe_mode_threshold = 40000; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5733 pi->mclk_stutter_mode_threshold = 40000; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5734 pi->mclk_edc_enable_threshold = 40000; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5735 pi->mclk_edc_wr_enable_threshold = 40000; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5736 cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5737 ci_initialize_powertune_defaults(rdev); cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5738 cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5739 pi->caps_fps = false; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5740 cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5741 pi->caps_sclk_throttle_low_notification = false; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5742 9597fe1e6aa4a16 Alex Deucher 2013-08-23 5743 pi->caps_uvd_dpm = true; ee35b0024a9d85f Alex Deucher 2013-08-23 5744 pi->caps_vce_dpm = true; 9597fe1e6aa4a16 Alex Deucher 2013-08-23 5745 cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5746 ci_get_leakage_voltages(rdev); cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5747 ci_patch_dependency_tables_with_leakage(rdev); cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5748 ci_set_private_data_variables_based_on_pptable(rdev); cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5749 cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5750 rdev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries = 6396bb221514d28 Kees Cook 2018-06-12 5751 kcalloc(4, 6396bb221514d28 Kees Cook 2018-06-12 5752 sizeof(struct radeon_clock_voltage_dependency_entry), 6396bb221514d28 Kees Cook 2018-06-12 5753 GFP_KERNEL); cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5754 if (!rdev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries) { cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5755 ci_dpm_fini(rdev); cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5756 return -ENOMEM; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5757 } cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5758 rdev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.count = 4; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5759 rdev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries[0].clk = 0; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5760 rdev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries[0].v = 0; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5761 rdev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries[1].clk = 36000; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5762 rdev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries[1].v = 720; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5763 rdev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries[2].clk = 54000; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5764 rdev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries[2].v = 810; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5765 rdev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries[3].clk = 72000; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5766 rdev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries[3].v = 900; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5767 cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5768 rdev->pm.dpm.dyn_state.mclk_sclk_ratio = 4; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5769 rdev->pm.dpm.dyn_state.sclk_mclk_delta = 15000; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5770 rdev->pm.dpm.dyn_state.vddc_vddci_delta = 200; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5771 cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5772 rdev->pm.dpm.dyn_state.valid_sclk_values.count = 0; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5773 rdev->pm.dpm.dyn_state.valid_sclk_values.values = NULL; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5774 rdev->pm.dpm.dyn_state.valid_mclk_values.count = 0; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5775 rdev->pm.dpm.dyn_state.valid_mclk_values.values = NULL; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5776 2d40038d3f99a48 Alex Deucher 2013-08-09 5777 if (rdev->family == CHIP_HAWAII) { 2d40038d3f99a48 Alex Deucher 2013-08-09 5778 pi->thermal_temp_setting.temperature_low = 94500; 2d40038d3f99a48 Alex Deucher 2013-08-09 5779 pi->thermal_temp_setting.temperature_high = 95000; 2d40038d3f99a48 Alex Deucher 2013-08-09 5780 pi->thermal_temp_setting.temperature_shutdown = 104000; 2d40038d3f99a48 Alex Deucher 2013-08-09 5781 } else { cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5782 pi->thermal_temp_setting.temperature_low = 99500; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5783 pi->thermal_temp_setting.temperature_high = 100000; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5784 pi->thermal_temp_setting.temperature_shutdown = 104000; 2d40038d3f99a48 Alex Deucher 2013-08-09 5785 } cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5786 cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5787 pi->uvd_enabled = false; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5788 34fc0b58d91f7ee Alex Deucher 2014-11-07 5789 dpm_table = &pi->smc_state_table; 34fc0b58d91f7ee Alex Deucher 2014-11-07 5790 34fc0b58d91f7ee Alex Deucher 2014-11-07 5791 gpio = radeon_atombios_lookup_gpio(rdev, VDDC_VRHOT_GPIO_PINID); 34fc0b58d91f7ee Alex Deucher 2014-11-07 5792 if (gpio.valid) { 34fc0b58d91f7ee Alex Deucher 2014-11-07 5793 dpm_table->VRHotGpio = gpio.shift; 34fc0b58d91f7ee Alex Deucher 2014-11-07 5794 rdev->pm.dpm.platform_caps |= ATOM_PP_PLATFORM_CAP_REGULATOR_HOT; 34fc0b58d91f7ee Alex Deucher 2014-11-07 5795 } else { 34fc0b58d91f7ee Alex Deucher 2014-11-07 5796 dpm_table->VRHotGpio = CISLANDS_UNUSED_GPIO_PIN; 34fc0b58d91f7ee Alex Deucher 2014-11-07 5797 rdev->pm.dpm.platform_caps &= ~ATOM_PP_PLATFORM_CAP_REGULATOR_HOT; 34fc0b58d91f7ee Alex Deucher 2014-11-07 5798 } 34fc0b58d91f7ee Alex Deucher 2014-11-07 5799 34fc0b58d91f7ee Alex Deucher 2014-11-07 5800 gpio = radeon_atombios_lookup_gpio(rdev, PP_AC_DC_SWITCH_GPIO_PINID); 34fc0b58d91f7ee Alex Deucher 2014-11-07 5801 if (gpio.valid) { 34fc0b58d91f7ee Alex Deucher 2014-11-07 5802 dpm_table->AcDcGpio = gpio.shift; 34fc0b58d91f7ee Alex Deucher 2014-11-07 5803 rdev->pm.dpm.platform_caps |= ATOM_PP_PLATFORM_CAP_HARDWAREDC; 34fc0b58d91f7ee Alex Deucher 2014-11-07 5804 } else { 34fc0b58d91f7ee Alex Deucher 2014-11-07 5805 dpm_table->AcDcGpio = CISLANDS_UNUSED_GPIO_PIN; 34fc0b58d91f7ee Alex Deucher 2014-11-07 5806 rdev->pm.dpm.platform_caps &= ~ATOM_PP_PLATFORM_CAP_HARDWAREDC; 34fc0b58d91f7ee Alex Deucher 2014-11-07 5807 } 34fc0b58d91f7ee Alex Deucher 2014-11-07 5808 34fc0b58d91f7ee Alex Deucher 2014-11-07 5809 gpio = radeon_atombios_lookup_gpio(rdev, VDDC_PCC_GPIO_PINID); 34fc0b58d91f7ee Alex Deucher 2014-11-07 5810 if (gpio.valid) { 34fc0b58d91f7ee Alex Deucher 2014-11-07 5811 u32 tmp = RREG32_SMC(CNB_PWRMGT_CNTL); 34fc0b58d91f7ee Alex Deucher 2014-11-07 5812 34fc0b58d91f7ee Alex Deucher 2014-11-07 5813 switch (gpio.shift) { 34fc0b58d91f7ee Alex Deucher 2014-11-07 5814 case 0: 34fc0b58d91f7ee Alex Deucher 2014-11-07 5815 tmp &= ~GNB_SLOW_MODE_MASK; 34fc0b58d91f7ee Alex Deucher 2014-11-07 5816 tmp |= GNB_SLOW_MODE(1); 34fc0b58d91f7ee Alex Deucher 2014-11-07 5817 break; 34fc0b58d91f7ee Alex Deucher 2014-11-07 5818 case 1: 34fc0b58d91f7ee Alex Deucher 2014-11-07 5819 tmp &= ~GNB_SLOW_MODE_MASK; 34fc0b58d91f7ee Alex Deucher 2014-11-07 5820 tmp |= GNB_SLOW_MODE(2); 34fc0b58d91f7ee Alex Deucher 2014-11-07 5821 break; 34fc0b58d91f7ee Alex Deucher 2014-11-07 5822 case 2: 34fc0b58d91f7ee Alex Deucher 2014-11-07 5823 tmp |= GNB_SLOW; 34fc0b58d91f7ee Alex Deucher 2014-11-07 5824 break; 34fc0b58d91f7ee Alex Deucher 2014-11-07 5825 case 3: 34fc0b58d91f7ee Alex Deucher 2014-11-07 5826 tmp |= FORCE_NB_PS1; 34fc0b58d91f7ee Alex Deucher 2014-11-07 5827 break; 34fc0b58d91f7ee Alex Deucher 2014-11-07 5828 case 4: 34fc0b58d91f7ee Alex Deucher 2014-11-07 5829 tmp |= DPM_ENABLED; 34fc0b58d91f7ee Alex Deucher 2014-11-07 5830 break; 34fc0b58d91f7ee Alex Deucher 2014-11-07 5831 default: bda5e3e97ffe80c Alex Deucher 2015-07-16 5832 DRM_DEBUG("Invalid PCC GPIO: %u!\n", gpio.shift); 34fc0b58d91f7ee Alex Deucher 2014-11-07 5833 break; 34fc0b58d91f7ee Alex Deucher 2014-11-07 5834 } 34fc0b58d91f7ee Alex Deucher 2014-11-07 5835 WREG32_SMC(CNB_PWRMGT_CNTL, tmp); 34fc0b58d91f7ee Alex Deucher 2014-11-07 5836 } 34fc0b58d91f7ee Alex Deucher 2014-11-07 5837 cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5838 pi->voltage_control = CISLANDS_VOLTAGE_CONTROL_NONE; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5839 pi->vddci_control = CISLANDS_VOLTAGE_CONTROL_NONE; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5840 pi->mvdd_control = CISLANDS_VOLTAGE_CONTROL_NONE; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5841 if (radeon_atom_is_voltage_gpio(rdev, VOLTAGE_TYPE_VDDC, VOLTAGE_OBJ_GPIO_LUT)) cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5842 pi->voltage_control = CISLANDS_VOLTAGE_CONTROL_BY_GPIO; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5843 else if (radeon_atom_is_voltage_gpio(rdev, VOLTAGE_TYPE_VDDC, VOLTAGE_OBJ_SVID2)) cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5844 pi->voltage_control = CISLANDS_VOLTAGE_CONTROL_BY_SVID2; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5845 cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5846 if (rdev->pm.dpm.platform_caps & ATOM_PP_PLATFORM_CAP_VDDCI_CONTROL) { cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5847 if (radeon_atom_is_voltage_gpio(rdev, VOLTAGE_TYPE_VDDCI, VOLTAGE_OBJ_GPIO_LUT)) cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5848 pi->vddci_control = CISLANDS_VOLTAGE_CONTROL_BY_GPIO; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5849 else if (radeon_atom_is_voltage_gpio(rdev, VOLTAGE_TYPE_VDDCI, VOLTAGE_OBJ_SVID2)) cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5850 pi->vddci_control = CISLANDS_VOLTAGE_CONTROL_BY_SVID2; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5851 else cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5852 rdev->pm.dpm.platform_caps &= ~ATOM_PP_PLATFORM_CAP_VDDCI_CONTROL; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5853 } cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5854 cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5855 if (rdev->pm.dpm.platform_caps & ATOM_PP_PLATFORM_CAP_MVDDCONTROL) { cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5856 if (radeon_atom_is_voltage_gpio(rdev, VOLTAGE_TYPE_MVDDC, VOLTAGE_OBJ_GPIO_LUT)) cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5857 pi->mvdd_control = CISLANDS_VOLTAGE_CONTROL_BY_GPIO; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5858 else if (radeon_atom_is_voltage_gpio(rdev, VOLTAGE_TYPE_MVDDC, VOLTAGE_OBJ_SVID2)) cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5859 pi->mvdd_control = CISLANDS_VOLTAGE_CONTROL_BY_SVID2; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5860 else cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5861 rdev->pm.dpm.platform_caps &= ~ATOM_PP_PLATFORM_CAP_MVDDCONTROL; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5862 } cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5863 cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5864 pi->vddc_phase_shed_control = true; cc8dbbb4f62aa53 Alex Deucher 2013-08-14 5865 :::::: The code at line 5637 was first introduced by commit :::::: cc8dbbb4f62aa53e604e7c61dedc03ee4e8dfed4 drm/radeon: add dpm support for CI dGPUs (v2) :::::: TO: Alex Deucher :::::: CC: Alex Deucher -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki