[drm-xe:drm-xe-next 4/10] drivers/gpu/drm/xe/xe_pm.c:72:20: sparse: sparse: symbol 'xe_pm_runtime_lockdep_map' was not declared. Should it be static?

kernel test robot lkp at intel.com
Fri Apr 19 06:09:05 UTC 2024


tree:   https://gitlab.freedesktop.org/drm/xe/kernel.git drm-xe-next
head:   5bc9de065b8bb9b8dd8799ecb4592d0403b54281
commit: 8ae84a27441f0267138b8a7f37eca6af481e8bc2 [4/10] drm/xe: Move lockdep protection from mem_access to xe_pm_runtime
config: s390-randconfig-r111-20240419 (https://download.01.org/0day-ci/archive/20240419/202404191329.EZzOTzwK-lkp@intel.com/config)
compiler: s390-linux-gcc (GCC) 13.2.0
reproduce: (https://download.01.org/0day-ci/archive/20240419/202404191329.EZzOTzwK-lkp@intel.com/reproduce)

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 <lkp at intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202404191329.EZzOTzwK-lkp@intel.com/

sparse warnings: (new ones prefixed by >>)
>> drivers/gpu/drm/xe/xe_pm.c:72:20: sparse: sparse: symbol 'xe_pm_runtime_lockdep_map' was not declared. Should it be static?

vim +/xe_pm_runtime_lockdep_map +72 drivers/gpu/drm/xe/xe_pm.c

    24	
    25	/**
    26	 * DOC: Xe Power Management
    27	 *
    28	 * Xe PM implements the main routines for both system level suspend states and
    29	 * for the opportunistic runtime suspend states.
    30	 *
    31	 * System Level Suspend (S-States) - In general this is OS initiated suspend
    32	 * driven by ACPI for achieving S0ix (a.k.a. S2idle, freeze), S3 (suspend to ram),
    33	 * S4 (disk). The main functions here are `xe_pm_suspend` and `xe_pm_resume`. They
    34	 * are the main point for the suspend to and resume from these states.
    35	 *
    36	 * PCI Device Suspend (D-States) - This is the opportunistic PCIe device low power
    37	 * state D3, controlled by the PCI subsystem and ACPI with the help from the
    38	 * runtime_pm infrastructure.
    39	 * PCI D3 is special and can mean D3hot, where Vcc power is on for keeping memory
    40	 * alive and quicker low latency resume or D3Cold where Vcc power is off for
    41	 * better power savings.
    42	 * The Vcc control of PCI hierarchy can only be controlled at the PCI root port
    43	 * level, while the device driver can be behind multiple bridges/switches and
    44	 * paired with other devices. For this reason, the PCI subsystem cannot perform
    45	 * the transition towards D3Cold. The lowest runtime PM possible from the PCI
    46	 * subsystem is D3hot. Then, if all these paired devices in the same root port
    47	 * are in D3hot, ACPI will assist here and run its own methods (_PR3 and _OFF)
    48	 * to perform the transition from D3hot to D3cold. Xe may disallow this
    49	 * transition by calling pci_d3cold_disable(root_pdev) before going to runtime
    50	 * suspend. It will be based on runtime conditions such as VRAM usage for a
    51	 * quick and low latency resume for instance.
    52	 *
    53	 * Runtime PM - This infrastructure provided by the Linux kernel allows the
    54	 * device drivers to indicate when the can be runtime suspended, so the device
    55	 * could be put at D3 (if supported), or allow deeper package sleep states
    56	 * (PC-states), and/or other low level power states. Xe PM component provides
    57	 * `xe_pm_runtime_suspend` and `xe_pm_runtime_resume` functions that PCI
    58	 * subsystem will call before transition to/from runtime suspend.
    59	 *
    60	 * Also, Xe PM provides get and put functions that Xe driver will use to
    61	 * indicate activity. In order to avoid locking complications with the memory
    62	 * management, whenever possible, these get and put functions needs to be called
    63	 * from the higher/outer levels.
    64	 * The main cases that need to be protected from the outer levels are: IOCTL,
    65	 * sysfs, debugfs, dma-buf sharing, GPU execution.
    66	 *
    67	 * This component is not responsible for GT idleness (RC6) nor GT frequency
    68	 * management (RPS).
    69	 */
    70	
    71	#ifdef CONFIG_LOCKDEP
  > 72	struct lockdep_map xe_pm_runtime_lockdep_map = {
    73		.name = "xe_pm_runtime_lockdep_map"
    74	};
    75	#endif
    76	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki


More information about the Intel-xe mailing list