/Linux-v5.10/drivers/base/power/ |
D | generic_ops.c | 3 * drivers/base/power/generic_ops.c - Generic PM callbacks for subsystems 7 #include <linux/pm.h> 16 * If PM operations are defined for the @dev's driver and they include 22 const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL; in pm_generic_runtime_suspend() local 25 ret = pm && pm->runtime_suspend ? pm->runtime_suspend(dev) : 0; in pm_generic_runtime_suspend() 35 * If PM operations are defined for the @dev's driver and they include 41 const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL; in pm_generic_runtime_resume() local 44 ret = pm && pm->runtime_resume ? pm->runtime_resume(dev) : 0; in pm_generic_runtime_resume() 63 if (drv && drv->pm && drv->pm->prepare) in pm_generic_prepare() 64 ret = drv->pm->prepare(dev); in pm_generic_prepare() [all …]
|
D | common.c | 83 * dev_pm_domain_attach - Attach a device to its PM domain. 87 * The @dev may only be attached to a single PM domain. By iterating through 88 * the available alternatives we try to find a valid PM domain for the device. 94 * power management through PM domains. 99 * Returns 0 on successfully attached PM domain, or when it is found that the 100 * device doesn't need a PM domain, else a negative error code. 118 * dev_pm_domain_attach_by_id - Associate a device with one of its PM domains. 119 * @dev: The device used to lookup the PM domain. 120 * @index: The index of the PM domain. 122 * As @dev may only be attached to a single PM domain, the backend PM domain [all …]
|
D | main.c | 18 #define pr_fmt(fmt) "PM: " fmt 23 #include <linux/pm.h> 25 #include <linux/pm-trace.h> 89 return "(unknown PM event)"; in pm_verb() 110 * device_pm_lock - Lock the list of active devices used by the PM core. 118 * device_pm_unlock - Unlock the list of active devices used by the PM core. 126 * device_pm_add - Add a device to the PM core's list of active devices. 131 /* Skip PM setup/initialization. */ in device_pm_add() 148 * device_pm_remove - Remove a device from the PM core's list of active devices. 169 * device_pm_move_before - Move device in the PM core's list of active devices. [all …]
|
/Linux-v5.10/drivers/input/touchscreen/ |
D | penmount.c | 50 struct pm { struct 59 void (*parse_packet)(struct pm *); argument 66 static void pm_mtevent(struct pm *pm, struct input_dev *input) in pm_mtevent() argument 70 for (i = 0; i < pm->maxcontacts; ++i) { in pm_mtevent() 73 pm->slots[i].active); in pm_mtevent() 74 if (pm->slots[i].active) { in pm_mtevent() 75 input_event(input, EV_ABS, ABS_MT_POSITION_X, pm->slots[i].x); in pm_mtevent() 76 input_event(input, EV_ABS, ABS_MT_POSITION_Y, pm->slots[i].y); in pm_mtevent() 99 static void pm_parse_9000(struct pm *pm) in pm_parse_9000() argument 101 struct input_dev *dev = pm->dev; in pm_parse_9000() [all …]
|
/Linux-v5.10/drivers/gpu/drm/radeon/ |
D | radeon_pm.c | 63 for (i = 0; i < rdev->pm.num_power_states; i++) { in radeon_pm_get_type_index() 64 if (rdev->pm.power_state[i].type == ps_type) { in radeon_pm_get_type_index() 71 return rdev->pm.default_power_state_index; in radeon_pm_get_type_index() 76 if ((rdev->pm.pm_method == PM_METHOD_DPM) && rdev->pm.dpm_enabled) { in radeon_pm_acpi_event_handler() 77 mutex_lock(&rdev->pm.mutex); in radeon_pm_acpi_event_handler() 79 rdev->pm.dpm.ac_power = true; in radeon_pm_acpi_event_handler() 81 rdev->pm.dpm.ac_power = false; in radeon_pm_acpi_event_handler() 84 radeon_dpm_enable_bapm(rdev, rdev->pm.dpm.ac_power); in radeon_pm_acpi_event_handler() 86 mutex_unlock(&rdev->pm.mutex); in radeon_pm_acpi_event_handler() 87 } else if (rdev->pm.pm_method == PM_METHOD_PROFILE) { in radeon_pm_acpi_event_handler() [all …]
|
D | r600_dpm.c | 147 if (rps == rdev->pm.dpm.current_ps) in r600_dpm_print_ps_status() 149 if (rps == rdev->pm.dpm.requested_ps) in r600_dpm_print_ps_status() 151 if (rps == rdev->pm.dpm.boot_ps) in r600_dpm_print_ps_status() 758 rdev->pm.dpm.thermal.min_temp = low_temp; in r600_set_thermal_temperature_range() 759 rdev->pm.dpm.thermal.max_temp = high_temp; in r600_set_thermal_temperature_range() 792 r600_is_internal_thermal_sensor(rdev->pm.int_thermal_type)) { in r600_dpm_late_enable() 858 rdev->pm.dpm.platform_caps = le32_to_cpu(power_info->pplib.ulPlatformCaps); in r600_get_platform_caps() 859 rdev->pm.dpm.backbias_response_time = le16_to_cpu(power_info->pplib.usBackbiasTime); in r600_get_platform_caps() 860 rdev->pm.dpm.voltage_response_time = le16_to_cpu(power_info->pplib.usVoltageTime); in r600_get_platform_caps() 895 rdev->pm.dpm.fan.t_hyst = fan_info->fan.ucTHyst; in r600_parse_extended_power_table() [all …]
|
D | r600.c | 366 rdev->pm.dynpm_can_upclock = true; in r600_pm_get_dynpm_state() 367 rdev->pm.dynpm_can_downclock = true; in r600_pm_get_dynpm_state() 373 if (rdev->pm.num_power_states > 2) in r600_pm_get_dynpm_state() 376 switch (rdev->pm.dynpm_planned_action) { in r600_pm_get_dynpm_state() 378 rdev->pm.requested_power_state_index = min_power_state_index; in r600_pm_get_dynpm_state() 379 rdev->pm.requested_clock_mode_index = 0; in r600_pm_get_dynpm_state() 380 rdev->pm.dynpm_can_downclock = false; in r600_pm_get_dynpm_state() 383 if (rdev->pm.current_power_state_index == min_power_state_index) { in r600_pm_get_dynpm_state() 384 rdev->pm.requested_power_state_index = rdev->pm.current_power_state_index; in r600_pm_get_dynpm_state() 385 rdev->pm.dynpm_can_downclock = false; in r600_pm_get_dynpm_state() [all …]
|
/Linux-v5.10/net/mptcp/ |
D | pm.c | 21 msk->pm.local = *addr; in mptcp_pm_announce_addr() 22 WRITE_ONCE(msk->pm.add_addr_echo, echo); in mptcp_pm_announce_addr() 23 WRITE_ONCE(msk->pm.add_addr_signal, true); in mptcp_pm_announce_addr() 31 msk->pm.rm_id = local_id; in mptcp_pm_remove_addr() 32 WRITE_ONCE(msk->pm.rm_addr_signal, true); in mptcp_pm_remove_addr() 40 spin_lock_bh(&msk->pm.lock); in mptcp_pm_remove_subflow() 42 spin_unlock_bh(&msk->pm.lock); in mptcp_pm_remove_subflow() 50 struct mptcp_pm_data *pm = &msk->pm; in mptcp_pm_new_connection() local 54 WRITE_ONCE(pm->server_side, server_side); in mptcp_pm_new_connection() 59 struct mptcp_pm_data *pm = &msk->pm; in mptcp_pm_allow_new_subflow() local [all …]
|
D | pm_netlink.c | 184 if (msk->pm.add_addr_signaled == msk->pm.add_addr_signal_max && in check_work_pending() 185 (msk->pm.local_addr_used == msk->pm.local_addr_max || in check_work_pending() 186 msk->pm.subflows == msk->pm.subflows_max)) in check_work_pending() 187 WRITE_ONCE(msk->pm.work_pending, false); in check_work_pending() 196 list_for_each_entry(entry, &msk->pm.anno_list, list) { in lookup_anno_list_by_saddr() 226 spin_lock_bh(&msk->pm.lock); in mptcp_pm_add_timer() 237 spin_unlock_bh(&msk->pm.lock); in mptcp_pm_add_timer() 250 spin_lock_bh(&msk->pm.lock); in mptcp_pm_del_add_timer() 254 spin_unlock_bh(&msk->pm.lock); in mptcp_pm_del_add_timer() 275 list_add(&add_entry->list, &msk->pm.anno_list); in mptcp_pm_alloc_anno_list() [all …]
|
/Linux-v5.10/drivers/gpu/drm/amd/amdkfd/ |
D | kfd_packet_manager.c | 40 static void pm_calc_rlib_size(struct packet_manager *pm, in pm_calc_rlib_size() argument 47 struct kfd_dev *dev = pm->dqm->dev; in pm_calc_rlib_size() 49 process_count = pm->dqm->processes_count; in pm_calc_rlib_size() 50 queue_count = pm->dqm->active_queue_count; in pm_calc_rlib_size() 51 compute_queue_count = pm->dqm->active_cp_queue_count; in pm_calc_rlib_size() 52 gws_queue_count = pm->dqm->gws_queue_count; in pm_calc_rlib_size() 65 compute_queue_count > get_cp_queues_num(pm->dqm) || in pm_calc_rlib_size() 71 map_queue_size = pm->pmf->map_queues_size; in pm_calc_rlib_size() 73 *rlib_size = process_count * pm->pmf->map_process_size + in pm_calc_rlib_size() 81 *rlib_size += pm->pmf->runlist_size; in pm_calc_rlib_size() [all …]
|
/Linux-v5.10/drivers/input/misc/ |
D | powermate.c | 88 struct powermate_device *pm = urb->context; in powermate_irq() local 89 struct device *dev = &pm->intf->dev; in powermate_irq() 110 input_report_key(pm->input, BTN_0, pm->data[0] & 0x01); in powermate_irq() 111 input_report_rel(pm->input, REL_DIAL, pm->data[1]); in powermate_irq() 112 input_sync(pm->input); in powermate_irq() 121 /* Decide if we need to issue a control message and do so. Must be called with pm->lock taken */ 122 static void powermate_sync_state(struct powermate_device *pm) in powermate_sync_state() argument 124 if (pm->requires_update == 0) in powermate_sync_state() 126 if (pm->config->status == -EINPROGRESS) in powermate_sync_state() 129 if (pm->requires_update & UPDATE_PULSE_ASLEEP){ in powermate_sync_state() [all …]
|
/Linux-v5.10/drivers/hid/ |
D | hid-prodikeys.c | 39 struct pcmidi_snd *pm; /* pcmidi device context */ member 44 struct pcmidi_snd *pm; member 105 dbg_hid("pcmidi sysfs read channel=%u\n", pk->pm->midi_channel); in show_channel() 107 return sprintf(buf, "%u (min:%u, max:%u)\n", pk->pm->midi_channel, in show_channel() 122 pk->pm->midi_channel = channel; in store_channel() 142 dbg_hid("pcmidi sysfs read sustain=%u\n", pk->pm->midi_sustain); in show_sustain() 144 return sprintf(buf, "%u (off:%u, max:%u (ms))\n", pk->pm->midi_sustain, in show_sustain() 159 pk->pm->midi_sustain = sustain; in store_sustain() 160 pk->pm->midi_sustain_mode = in store_sustain() 161 (0 == sustain || !pk->pm->midi_mode) ? 0 : 1; in store_sustain() [all …]
|
/Linux-v5.10/drivers/media/platform/s5p-mfc/ |
D | s5p_mfc_pm.c | 17 static struct s5p_mfc_pm *pm; variable 25 pm = &dev->pm; in s5p_mfc_init_pm() 28 pm->num_clocks = dev->variant->num_clocks; in s5p_mfc_init_pm() 29 pm->clk_names = dev->variant->clk_names; in s5p_mfc_init_pm() 30 pm->device = &dev->plat_dev->dev; in s5p_mfc_init_pm() 31 pm->clock_gate = NULL; in s5p_mfc_init_pm() 34 for (i = 0; i < pm->num_clocks; i++) { in s5p_mfc_init_pm() 35 pm->clocks[i] = devm_clk_get(pm->device, pm->clk_names[i]); in s5p_mfc_init_pm() 36 if (IS_ERR(pm->clocks[i])) { in s5p_mfc_init_pm() 38 if (i && PTR_ERR(pm->clocks[i]) == -ENOENT) { in s5p_mfc_init_pm() [all …]
|
/Linux-v5.10/drivers/gpu/drm/amd/pm/ |
D | amdgpu_dpm.c | 114 if (rps == adev->pm.dpm.current_ps) in amdgpu_dpm_print_ps_status() 116 if (rps == adev->pm.dpm.requested_ps) in amdgpu_dpm_print_ps_status() 118 if (rps == adev->pm.dpm.boot_ps) in amdgpu_dpm_print_ps_status() 129 adev->pm.dpm.new_active_crtcs = 0; in amdgpu_dpm_get_active_displays() 130 adev->pm.dpm.new_active_crtc_count = 0; in amdgpu_dpm_get_active_displays() 136 adev->pm.dpm.new_active_crtcs |= (1 << amdgpu_crtc->crtc_id); in amdgpu_dpm_get_active_displays() 137 adev->pm.dpm.new_active_crtc_count++; in amdgpu_dpm_get_active_displays() 269 adev->pm.dpm.platform_caps = le32_to_cpu(power_info->pplib.ulPlatformCaps); in amdgpu_get_platform_caps() 270 adev->pm.dpm.backbias_response_time = le16_to_cpu(power_info->pplib.usBackbiasTime); in amdgpu_get_platform_caps() 271 adev->pm.dpm.voltage_response_time = le16_to_cpu(power_info->pplib.usVoltageTime); in amdgpu_get_platform_caps() [all …]
|
/Linux-v5.10/drivers/scsi/ |
D | scsi_pm.c | 12 #include <linux/blk-pm.h> 23 static int do_scsi_suspend(struct device *dev, const struct dev_pm_ops *pm) in do_scsi_suspend() argument 25 return pm && pm->suspend ? pm->suspend(dev) : 0; in do_scsi_suspend() 28 static int do_scsi_freeze(struct device *dev, const struct dev_pm_ops *pm) in do_scsi_freeze() argument 30 return pm && pm->freeze ? pm->freeze(dev) : 0; in do_scsi_freeze() 33 static int do_scsi_poweroff(struct device *dev, const struct dev_pm_ops *pm) in do_scsi_poweroff() argument 35 return pm && pm->poweroff ? pm->poweroff(dev) : 0; in do_scsi_poweroff() 38 static int do_scsi_resume(struct device *dev, const struct dev_pm_ops *pm) in do_scsi_resume() argument 40 return pm && pm->resume ? pm->resume(dev) : 0; in do_scsi_resume() 43 static int do_scsi_thaw(struct device *dev, const struct dev_pm_ops *pm) in do_scsi_thaw() argument [all …]
|
/Linux-v5.10/tools/power/pm-graph/ |
D | Makefile | 9 install -d $(DESTDIR)$(PREFIX)/lib/pm-graph 10 install sleepgraph.py $(DESTDIR)$(PREFIX)/lib/pm-graph 11 install bootgraph.py $(DESTDIR)$(PREFIX)/lib/pm-graph 12 install -d $(DESTDIR)$(PREFIX)/lib/pm-graph/config 13 install -m 644 config/cgskip.txt $(DESTDIR)$(PREFIX)/lib/pm-graph/config 14 install -m 644 config/freeze-callgraph.cfg $(DESTDIR)$(PREFIX)/lib/pm-graph/config 15 install -m 644 config/freeze.cfg $(DESTDIR)$(PREFIX)/lib/pm-graph/config 16 install -m 644 config/freeze-dev.cfg $(DESTDIR)$(PREFIX)/lib/pm-graph/config 17 install -m 644 config/standby-callgraph.cfg $(DESTDIR)$(PREFIX)/lib/pm-graph/config 18 install -m 644 config/standby.cfg $(DESTDIR)$(PREFIX)/lib/pm-graph/config [all …]
|
/Linux-v5.10/arch/powerpc/include/asm/ |
D | reg_fsl_emb.h | 27 #define PMRN_PMLCA0 0x090 /* PM Local Control A0 */ 28 #define PMRN_PMLCA1 0x091 /* PM Local Control A1 */ 29 #define PMRN_PMLCA2 0x092 /* PM Local Control A2 */ 30 #define PMRN_PMLCA3 0x093 /* PM Local Control A3 */ 31 #define PMRN_PMLCA4 0x094 /* PM Local Control A4 */ 32 #define PMRN_PMLCA5 0x095 /* PM Local Control A5 */ 46 #define PMRN_PMLCB0 0x110 /* PM Local Control B0 */ 47 #define PMRN_PMLCB1 0x111 /* PM Local Control B1 */ 48 #define PMRN_PMLCB2 0x112 /* PM Local Control B2 */ 49 #define PMRN_PMLCB3 0x113 /* PM Local Control B3 */ [all …]
|
/Linux-v5.10/sound/drivers/ |
D | portman2x4.c | 78 static int portman_free(struct portman *pm) in portman_free() argument 80 kfree(pm); in portman_free() 88 struct portman *pm; in portman_create() local 92 pm = kzalloc(sizeof(struct portman), GFP_KERNEL); in portman_create() 93 if (pm == NULL) in portman_create() 97 spin_lock_init(&pm->reg_lock); in portman_create() 98 pm->card = card; in portman_create() 99 pm->pardev = pardev; in portman_create() 101 *rchip = pm; in portman_create() 181 static inline void portman_write_command(struct portman *pm, u8 value) in portman_write_command() argument [all …]
|
/Linux-v5.10/drivers/mfd/ |
D | bcm2835-pm.c | 3 * PM MFD driver for Broadcom BCM2835 5 * This driver binds to the PM block and creates the MFD device for 11 #include <linux/mfd/bcm2835-pm.h> 32 struct bcm2835_pm *pm; in bcm2835_pm_probe() local 35 pm = devm_kzalloc(dev, sizeof(*pm), GFP_KERNEL); in bcm2835_pm_probe() 36 if (!pm) in bcm2835_pm_probe() 38 platform_set_drvdata(pdev, pm); in bcm2835_pm_probe() 40 pm->dev = dev; in bcm2835_pm_probe() 43 pm->base = devm_ioremap_resource(dev, res); in bcm2835_pm_probe() 44 if (IS_ERR(pm->base)) in bcm2835_pm_probe() [all …]
|
/Linux-v5.10/Documentation/power/ |
D | runtime_pm.rst | 14 Support for runtime power management (runtime PM) of I/O devices is provided 15 at the power management core (PM core) level by means of: 18 put their PM-related work items. It is strongly recommended that pm_wq be 19 used for queuing all work items related to runtime PM, because this allows 24 * A number of runtime PM fields in the 'power' member of 'struct device' (which 25 is of the type 'struct dev_pm_info', defined in include/linux/pm.h) that can 26 be used for synchronizing runtime PM operations with one another. 28 * Three device runtime PM callbacks in 'struct dev_pm_ops' (defined in 29 include/linux/pm.h). 32 used for carrying out runtime PM operations in such a way that the [all …]
|
/Linux-v5.10/include/linux/ |
D | pm_runtime.h | 13 #include <linux/pm.h> 17 /* Runtime PM flag argument bits */ 63 * pm_runtime_get_if_in_use - Conditionally bump up runtime PM usage counter. 66 * Increment the runtime PM usage counter of @dev if its runtime PM status is 67 * %RPM_ACTIVE and its runtime PM usage counter is greater than 0. 75 * pm_suspend_ignore_children - Set runtime PM behavior regarding children. 80 * the runtime PM framework going forward if @enable is %true, or they will 89 * pm_runtime_get_noresume - Bump up runtime PM usage counter of a device. 98 * pm_runtime_put_noidle - Drop runtime PM usage counter of a device. 101 * Decrement the runtime PM usage counter of @dev unless it is 0 already. [all …]
|
/Linux-v5.10/drivers/gpu/drm/nouveau/nvkm/engine/pm/ |
D | base.c | 36 nvkm_pm_count_perfdom(struct nvkm_pm *pm) in nvkm_pm_count_perfdom() argument 41 list_for_each_entry(dom, &pm->domains, head) in nvkm_pm_count_perfdom() 62 nvkm_perfdom_find(struct nvkm_pm *pm, int di) in nvkm_perfdom_find() argument 67 list_for_each_entry(dom, &pm->domains, head) { in nvkm_perfdom_find() 75 nvkm_perfsig_find(struct nvkm_pm *pm, u8 di, u8 si, struct nvkm_perfdom **pdom) in nvkm_perfsig_find() argument 80 dom = nvkm_perfdom_find(pm, di); in nvkm_perfsig_find() 104 nvkm_perfsrc_find(struct nvkm_pm *pm, struct nvkm_perfsig *sig, int si) in nvkm_perfsrc_find() argument 119 list_for_each_entry(src, &pm->sources, head) { in nvkm_perfsrc_find() 129 nvkm_perfsrc_enable(struct nvkm_pm *pm, struct nvkm_perfctr *ctr) in nvkm_perfsrc_enable() argument 131 struct nvkm_subdev *subdev = &pm->engine.subdev; in nvkm_perfsrc_enable() [all …]
|
/Linux-v5.10/drivers/pci/ |
D | pci-driver.c | 299 * runtime PM status. During probe, the device is set to in local_pci_probe() 301 * supports runtime PM, it should call pm_runtime_put_noidle(), in local_pci_probe() 302 * or any other runtime PM helper function decrementing the usage in local_pci_probe() 458 /* Undo the runtime PM settings in local_pci_probe() */ in pci_device_remove() 594 "PCI PM: Device state not saved by %pS\n", in pci_legacy_suspend() 633 /* Disable non-bridge devices without PM support */ in pci_pm_default_suspend() 644 * Legacy PM support is used by default, so warn if the new framework is in pci_has_legacy_pm_support() 648 pci_WARN(pci_dev, ret && drv->driver.pm, "device %04x:%04x\n", in pci_has_legacy_pm_support() 659 const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL; in pci_pm_prepare() local 661 if (pm && pm->prepare) { in pci_pm_prepare() [all …]
|
/Linux-v5.10/drivers/media/platform/mtk-vcodec/ |
D | mtk_vcodec_enc_pm.c | 20 struct mtk_vcodec_pm *pm; in mtk_vcodec_init_enc_pm() local 27 pm = &mtkdev->pm; in mtk_vcodec_init_enc_pm() 28 memset(pm, 0, sizeof(struct mtk_vcodec_pm)); in mtk_vcodec_init_enc_pm() 29 pm->mtkdev = mtkdev; in mtk_vcodec_init_enc_pm() 30 pm->dev = &pdev->dev; in mtk_vcodec_init_enc_pm() 32 enc_clk = &pm->venc_clk; in mtk_vcodec_init_enc_pm() 45 pm->larbvenc = &pdev->dev; in mtk_vcodec_init_enc_pm() 60 pm->larbvenclt = &pdev->dev; in mtk_vcodec_init_enc_pm() 62 pm->dev = &pdev->dev; in mtk_vcodec_init_enc_pm() 102 void mtk_vcodec_enc_clock_on(struct mtk_vcodec_pm *pm) in mtk_vcodec_enc_clock_on() argument [all …]
|
D | mtk_vcodec_dec_pm.c | 20 struct mtk_vcodec_pm *pm; in mtk_vcodec_init_dec_pm() local 26 pm = &mtkdev->pm; in mtk_vcodec_init_dec_pm() 27 pm->mtkdev = mtkdev; in mtk_vcodec_init_dec_pm() 28 dec_clk = &pm->vdec_clk; in mtk_vcodec_init_dec_pm() 40 pm->larbvdec = &pdev->dev; in mtk_vcodec_init_dec_pm() 42 pm->dev = &pdev->dev; in mtk_vcodec_init_dec_pm() 81 pm_runtime_disable(dev->pm.dev); in mtk_vcodec_release_dec_pm() 84 void mtk_vcodec_dec_pw_on(struct mtk_vcodec_pm *pm) in mtk_vcodec_dec_pw_on() argument 88 ret = pm_runtime_get_sync(pm->dev); in mtk_vcodec_dec_pw_on() 93 void mtk_vcodec_dec_pw_off(struct mtk_vcodec_pm *pm) in mtk_vcodec_dec_pw_off() argument [all …]
|