/linux/drivers/input/touchscreen/ |
H A 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/drivers/gpu/drm/radeon/ |
H A D | radeon_pm.c | 64 for (i = 0; i < rdev->pm.num_power_states; i++) { in radeon_pm_get_type_index() 65 if (rdev->pm.power_state[i].type == ps_type) { in radeon_pm_get_type_index() 72 return rdev->pm.default_power_state_index; in radeon_pm_get_type_index() 77 if ((rdev->pm.pm_method == PM_METHOD_DPM) && rdev->pm.dpm_enabled) { in radeon_pm_acpi_event_handler() 78 mutex_lock(&rdev->pm.mutex); in radeon_pm_acpi_event_handler() 80 rdev->pm.dpm.ac_power = true; in radeon_pm_acpi_event_handler() 82 rdev->pm.dpm.ac_power = false; in radeon_pm_acpi_event_handler() 85 radeon_dpm_enable_bapm(rdev, rdev->pm.dpm.ac_power); in radeon_pm_acpi_event_handler() 87 mutex_unlock(&rdev->pm.mutex); in radeon_pm_acpi_event_handler() 88 } else if (rdev->pm.pm_method == PM_METHOD_PROFILE) { in radeon_pm_acpi_event_handler() [all …]
|
H A D | r600_dpm.c | 145 if (rps == rdev->pm.dpm.current_ps) in r600_dpm_print_ps_status() 147 if (rps == rdev->pm.dpm.requested_ps) in r600_dpm_print_ps_status() 149 if (rps == rdev->pm.dpm.boot_ps) in r600_dpm_print_ps_status() 756 rdev->pm.dpm.thermal.min_temp = low_temp; in r600_set_thermal_temperature_range() 757 rdev->pm.dpm.thermal.max_temp = high_temp; in r600_set_thermal_temperature_range() 790 r600_is_internal_thermal_sensor(rdev->pm.int_thermal_type)) { in r600_dpm_late_enable() 856 rdev->pm.dpm.platform_caps = le32_to_cpu(power_info->pplib.ulPlatformCaps); in r600_get_platform_caps() 857 rdev->pm.dpm.backbias_response_time = le16_to_cpu(power_info->pplib.usBackbiasTime); in r600_get_platform_caps() 858 rdev->pm.dpm.voltage_response_time = le16_to_cpu(power_info->pplib.usVoltageTime); in r600_get_platform_caps() 893 rdev->pm.dpm.fan.t_hyst = fan_info->fan.ucTHyst; in r600_parse_extended_power_table() [all …]
|
H A 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/drivers/input/misc/ |
H A 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/drivers/hid/ |
H A D | hid-prodikeys.c | 37 struct pcmidi_snd *pm; member 94 struct pcmidi_snd *pm = hid_get_drvdata(hdev); in show_channel() local 96 dbg_hid("pcmidi sysfs read channel=%u\n", pm->midi_channel); in show_channel() 98 return sprintf(buf, "%u (min:%u, max:%u)\n", pm->midi_channel, in show_channel() 107 struct pcmidi_snd *pm = hid_get_drvdata(hdev); in store_channel() local 113 pm->midi_channel = channel; in store_channel() 131 struct pcmidi_snd *pm = hid_get_drvdata(hdev); in show_sustain() local 133 dbg_hid("pcmidi sysfs read sustain=%u\n", pm->midi_sustain); in show_sustain() 135 return sprintf(buf, "%u (off:%u, max:%u (ms))\n", pm->midi_sustain, in show_sustain() 144 struct pcmidi_snd *pm = hid_get_drvdata(hdev); in store_sustain() local [all …]
|
/linux/drivers/mfd/ |
H A 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> 29 struct bcm2835_pm *pm) in bcm2835_pm_get_pdata() argument 31 if (of_property_present(pm->dev->of_node, "reg-names")) { in bcm2835_pm_get_pdata() 34 pm->base = devm_platform_ioremap_resource_byname(pdev, "pm"); in bcm2835_pm_get_pdata() 35 if (IS_ERR(pm->base)) in bcm2835_pm_get_pdata() 36 return PTR_ERR(pm->base); in bcm2835_pm_get_pdata() 40 pm->asb = devm_ioremap_resource(&pdev->dev, res); in bcm2835_pm_get_pdata() 41 if (IS_ERR(pm->asb)) in bcm2835_pm_get_pdata() [all …]
|
/linux/drivers/gpu/drm/amd/pm/ |
H A D | amdgpu_dpm.c | 49 mutex_lock(&adev->pm.mutex); in amdgpu_dpm_get_sclk() 52 mutex_unlock(&adev->pm.mutex); in amdgpu_dpm_get_sclk() 65 mutex_lock(&adev->pm.mutex); in amdgpu_dpm_get_mclk() 68 mutex_unlock(&adev->pm.mutex); in amdgpu_dpm_get_mclk() 83 if (atomic_read(&adev->pm.pwr_state[block_type]) == pwr_state && in amdgpu_dpm_set_powergating_by_smu() 90 mutex_lock(&adev->pm.mutex); in amdgpu_dpm_set_powergating_by_smu() 116 atomic_set(&adev->pm.pwr_state[block_type], pwr_state); in amdgpu_dpm_set_powergating_by_smu() 118 mutex_unlock(&adev->pm.mutex); in amdgpu_dpm_set_powergating_by_smu() 128 mutex_lock(&adev->pm.mutex); in amdgpu_dpm_set_gfx_power_up_by_imu() 130 mutex_unlock(&adev->pm.mutex); in amdgpu_dpm_set_gfx_power_up_by_imu() [all …]
|
H A D | Makefile | 26 -I$(FULL_AMD_PATH)/pm/inc/ \ 27 -I$(FULL_AMD_PATH)/pm/swsmu \ 28 -I$(FULL_AMD_PATH)/pm/swsmu/inc \ 29 -I$(FULL_AMD_PATH)/pm/swsmu/inc/pmfw_if \ 30 -I$(FULL_AMD_PATH)/pm/swsmu/smu11 \ 31 -I$(FULL_AMD_PATH)/pm/swsmu/smu12 \ 32 -I$(FULL_AMD_PATH)/pm/swsmu/smu13 \ 33 -I$(FULL_AMD_PATH)/pm/swsmu/smu14 \ 34 -I$(FULL_AMD_PATH)/pm/powerplay/inc \ 35 -I$(FULL_AMD_PATH)/pm/powerplay/smumgr\ [all …]
|
/linux/include/linux/ |
H A D | pm_runtime.h | 13 #include <linux/pm.h> 17 /* Runtime PM flag argument bits */ 26 * Use this for defining a set of PM operations to be used in all situations 27 * (system suspend, hibernation or runtime PM). 30 * macro, which uses the provided callbacks for both runtime PM and system 102 * pm_suspend_ignore_children - Set runtime PM behavior regarding children. 107 * the runtime PM framework going forward if @enable is %true, or they will 116 * pm_runtime_get_noresume - Bump up runtime PM usage counter of a device. 125 * pm_runtime_put_noidle - Drop runtime PM usage counter of a device. 128 * Decrement the runtime PM usage counter of @dev unless it is 0 already. [all …]
|
/linux/drivers/media/platform/samsung/s5p-mfc/ |
H A D | s5p_mfc_pm.c | 19 struct s5p_mfc_pm *pm = &dev->pm; in s5p_mfc_init_pm() local 22 pm->num_clocks = dev->variant->num_clocks; in s5p_mfc_init_pm() 23 pm->clk_names = dev->variant->clk_names; in s5p_mfc_init_pm() 24 pm->device = &dev->plat_dev->dev; in s5p_mfc_init_pm() 25 pm->clock_gate = NULL; in s5p_mfc_init_pm() 28 for (i = 0; i < pm->num_clocks; i++) { in s5p_mfc_init_pm() 29 pm->clocks[i] = devm_clk_get(pm->device, pm->clk_names[i]); in s5p_mfc_init_pm() 30 if (IS_ERR(pm->clocks[i])) { in s5p_mfc_init_pm() 32 if (i && PTR_ERR(pm->clocks[i]) == -ENOENT) { in s5p_mfc_init_pm() 33 pm->clocks[i] = NULL; in s5p_mfc_init_pm() [all …]
|
/linux/net/mptcp/ |
H A D | pm.c | 140 lockdep_assert_held(&msk->pm.lock); in mptcp_lookup_anno_list_by_saddr() 142 list_for_each_entry(entry, &msk->pm.anno_list, list) { in mptcp_lookup_anno_list_by_saddr() 171 spin_lock_bh(&msk->pm.lock); in mptcp_pm_sport_in_anno_list() 172 list_for_each_entry(entry, &msk->pm.anno_list, list) { in mptcp_pm_sport_in_anno_list() 180 spin_unlock_bh(&msk->pm.lock); in mptcp_pm_sport_in_anno_list() 209 spin_unlock_bh(&msk->pm.lock); in mptcp_pm_send_ack() 211 spin_lock_bh(&msk->pm.lock); in mptcp_pm_send_ack() 219 lockdep_assert_held(&msk->pm.lock); in mptcp_pm_addr_send_ack() 299 spin_lock_bh(&msk->pm.lock); in mptcp_pm_add_timer() 312 spin_unlock_bh(&msk->pm.lock); in mptcp_pm_add_timer() [all …]
|
/linux/drivers/scsi/ |
H A D | scsi_pm.c | 11 #include <linux/blk-pm.h> 22 static int do_scsi_suspend(struct device *dev, const struct dev_pm_ops *pm) in do_scsi_suspend() argument 24 return pm && pm->suspend ? pm->suspend(dev) : 0; in do_scsi_suspend() 27 static int do_scsi_freeze(struct device *dev, const struct dev_pm_ops *pm) in do_scsi_freeze() argument 29 return pm && pm->freeze ? pm->freeze(dev) : 0; in do_scsi_freeze() 32 static int do_scsi_poweroff(struct device *dev, const struct dev_pm_ops *pm) in do_scsi_poweroff() argument 34 return pm && pm->poweroff ? pm->poweroff(dev) : 0; in do_scsi_poweroff() 37 static int do_scsi_resume(struct device *dev, const struct dev_pm_ops *pm) in do_scsi_resume() argument 39 return pm && pm->resume ? pm->resume(dev) : 0; in do_scsi_resume() 42 static int do_scsi_thaw(struct device *dev, const struct dev_pm_ops *pm) in do_scsi_thaw() argument [all …]
|
/linux/sound/drivers/ |
H A D | portman2x4.c | 77 static int portman_free(struct portman *pm) in portman_free() argument 79 kfree(pm); in portman_free() 87 struct portman *pm; in portman_create() local 91 pm = kzalloc(sizeof(struct portman), GFP_KERNEL); in portman_create() 92 if (pm == NULL) in portman_create() 96 spin_lock_init(&pm->reg_lock); in portman_create() 97 pm->card = card; in portman_create() 98 pm->pardev = pardev; in portman_create() 100 *rchip = pm; in portman_create() 180 static inline void portman_write_command(struct portman *pm, u8 value) in portman_write_command() argument [all …]
|
/linux/drivers/media/platform/mediatek/vcodec/decoder/ |
H A D | mtk_vcodec_dec_pm.c | 15 int mtk_vcodec_init_dec_clk(struct platform_device *pdev, struct mtk_vcodec_pm *pm) in mtk_vcodec_init_dec_clk() argument 21 dec_clk = &pm->vdec_clk; in mtk_vcodec_init_dec_clk() 22 pm->dev = &pdev->dev; in mtk_vcodec_init_dec_clk() 57 static int mtk_vcodec_dec_pw_on(struct mtk_vcodec_pm *pm) in mtk_vcodec_dec_pw_on() argument 61 ret = pm_runtime_resume_and_get(pm->dev); in mtk_vcodec_dec_pw_on() 63 dev_err(pm->dev, "pm_runtime_resume_and_get fail %d", ret); in mtk_vcodec_dec_pw_on() 68 static void mtk_vcodec_dec_pw_off(struct mtk_vcodec_pm *pm) in mtk_vcodec_dec_pw_off() argument 72 ret = pm_runtime_put(pm->dev); in mtk_vcodec_dec_pw_off() 74 dev_err(pm->dev, "pm_runtime_put fail %d", ret); in mtk_vcodec_dec_pw_off() 77 static void mtk_vcodec_dec_clock_on(struct mtk_vcodec_pm *pm) in mtk_vcodec_dec_clock_on() argument [all …]
|
/linux/arch/powerpc/include/asm/ |
H A D | reg_fsl_emb.h | 44 #define PMRN_PMLCA0 0x090 /* PM Local Control A0 */ 45 #define PMRN_PMLCA1 0x091 /* PM Local Control A1 */ 46 #define PMRN_PMLCA2 0x092 /* PM Local Control A2 */ 47 #define PMRN_PMLCA3 0x093 /* PM Local Control A3 */ 48 #define PMRN_PMLCA4 0x094 /* PM Local Control A4 */ 49 #define PMRN_PMLCA5 0x095 /* PM Local Control A5 */ 63 #define PMRN_PMLCB0 0x110 /* PM Local Control B0 */ 64 #define PMRN_PMLCB1 0x111 /* PM Local Control B1 */ 65 #define PMRN_PMLCB2 0x112 /* PM Local Control B2 */ 66 #define PMRN_PMLCB3 0x113 /* PM Local Control B3 */ [all …]
|
/linux/tools/power/pm-graph/ |
H A D | Makefile | 36 $(INSTALL) -d $(DESTDIR)$(LIBDIR)/pm-graph 37 $(INSTALL) sleepgraph.py $(DESTDIR)$(LIBDIR)/pm-graph 38 $(INSTALL) bootgraph.py $(DESTDIR)$(LIBDIR)/pm-graph 39 $(INSTALL) -d $(DESTDIR)$(LIBDIR)/pm-graph/config 40 $(INSTALL_DATA) config/cgskip.txt $(DESTDIR)$(LIBDIR)/pm-graph/config 41 $(INSTALL_DATA) config/freeze-callgraph.cfg $(DESTDIR)$(LIBDIR)/pm-graph/config 42 $(INSTALL_DATA) config/freeze.cfg $(DESTDIR)$(LIBDIR)/pm-graph/config 43 $(INSTALL_DATA) config/freeze-dev.cfg $(DESTDIR)$(LIBDIR)/pm-graph/config 44 $(INSTALL_DATA) config/standby-callgraph.cfg $(DESTDIR)$(LIBDIR)/pm-graph/config 45 $(INSTALL_DATA) config/standby.cfg $(DESTDIR)$(LIBDIR)/pm-graph/config [all …]
|
/linux/Documentation/power/ |
H A 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 …]
|
H A D | pm_qos_interface.rst | 2 PM Quality Of Service Interface 9 Two different PM QoS frameworks are available: 11 * The per-device PM QoS framework provides the API to manage the 12 per-device latency constraints and PM QoS flags. 14 The latency unit used in the PM QoS framework is the microsecond (usec). 17 1. PM QoS framework 35 Clients of PM QoS need to save the returned handle for future use in other 36 PM QoS API functions. 61 Only processes can register a PM QoS request. To provide for automatic 65 To register the default PM QoS target for the CPU latency QoS, the process must [all …]
|
/linux/drivers/base/power/ |
H A D | common.c | 84 * dev_pm_domain_attach - Attach a device to its PM domain. 88 * The @dev may only be attached to a single PM domain. By iterating through 89 * the available alternatives we try to find a valid PM domain for the device. 95 * power management through PM domains. 100 * Returns 0 on successfully attached PM domain, or when it is found that the 101 * device doesn't need a PM domain, else a negative error code. 122 * dev_pm_domain_attach_by_id - Associate a device with one of its PM domains. 123 * @dev: The device used to lookup the PM domain. 124 * @index: The index of the PM domain. 126 * As @dev may only be attached to a single PM domain, the backend PM domain [all …]
|
H A D | main.c | 18 #define pr_fmt(fmt) "PM: " fmt 24 #include <linux/pm.h> 26 #include <linux/pm-trace.h> 103 return "(unknown PM event)"; in pm_verb() 124 * device_pm_lock - Lock the list of active devices used by the PM core. 132 * device_pm_unlock - Unlock the list of active devices used by the PM core. 140 * device_pm_add - Add a device to the PM core's list of active devices. 145 /* Skip PM setup/initialization. */ in device_pm_add() 162 * device_pm_remove - Remove a device from the PM core's list of active devices. 183 * device_pm_move_before - Move device in the PM core's list of active devices. [all …]
|
/linux/drivers/media/platform/mediatek/vcodec/encoder/ |
H A D | mtk_vcodec_enc_pm.c | 17 struct mtk_vcodec_pm *pm; in mtk_vcodec_init_enc_clk() local 23 pm = &mtkdev->pm; in mtk_vcodec_init_enc_clk() 24 memset(pm, 0, sizeof(struct mtk_vcodec_pm)); in mtk_vcodec_init_enc_clk() 25 pm->dev = &pdev->dev; in mtk_vcodec_init_enc_clk() 26 enc_clk = &pm->venc_clk; in mtk_vcodec_init_enc_clk() 37 dev_err(pm->dev, "[MTK VCODEC] Failed to get venc clock count"); in mtk_vcodec_init_enc_clk() 46 dev_err(pm->dev, "[MTK VCODEC] venc failed to get clk name %d", i); in mtk_vcodec_init_enc_clk() 52 dev_err(pm->dev, "[MTK VCODEC] venc devm_clk_get (%d)%s fail", i, in mtk_vcodec_init_enc_clk() 61 int mtk_vcodec_enc_pw_on(struct mtk_vcodec_pm *pm) in mtk_vcodec_enc_pw_on() argument 65 ret = pm_runtime_resume_and_get(pm->dev); in mtk_vcodec_enc_pw_on() [all …]
|
/linux/drivers/pci/ |
H A D | pci-driver.c | 315 * runtime PM status. During probe, the device is set to in local_pci_probe() 317 * supports runtime PM, it should call pm_runtime_put_noidle(), in local_pci_probe() 318 * or any other runtime PM helper function decrementing the usage in local_pci_probe() 470 * with the code below, so wait until all of the runtime PM in pci_device_remove() 481 /* Undo the runtime PM settings in local_pci_probe() */ in pci_device_remove() 644 "PCI PM: Device state not saved by %pS\n", in pci_legacy_suspend() 683 /* Disable non-bridge devices without PM support */ in pci_pm_default_suspend() 694 * Legacy PM support is used by default, so warn if the new framework is in pci_has_legacy_pm_support() 698 pci_WARN(pci_dev, ret && drv->driver.pm, "device %04x:%04x\n", in pci_has_legacy_pm_support() 709 const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL; in pci_pm_prepare() local [all …]
|
/linux/drivers/pmdomain/xilinx/ |
H A D | zynqmp-pm-domains.c | 3 * ZynqMP Generic PM domain support 29 * @node_id: PM node ID corresponding to device inside PM domain 30 * @requested: The PM node mapped to the PM domain has been requested 65 * zynqmp_gpd_power_on() - Power on PM domain 66 * @domain: Generic PM domain 68 * This function is called before devices inside a PM domain are resumed, to 69 * power on PM domain. 84 "failed to set requirement to 0x%x for PM node id %d: %d\n", in zynqmp_gpd_power_on() 89 dev_dbg(&domain->dev, "set requirement to 0x%x for PM node id %d\n", in zynqmp_gpd_power_on() 96 * zynqmp_gpd_power_off() - Power off PM domain [all …]
|
/linux/net/mac80211/ |
H A D | mesh_ps.c | 62 mps_dbg(sta->sdata, "announcing peer-specific power mode to %pM\n", in mps_qos_null_tx() 126 mps_dbg(sdata, "setting non-peer PM to active for peering\n"); in ieee80211_mps_local_status_update() 129 mps_dbg(sdata, "setting non-peer PM to deep sleep\n"); in ieee80211_mps_local_status_update() 132 mps_dbg(sdata, "setting non-peer PM to user value\n"); in ieee80211_mps_local_status_update() 150 * ieee80211_mps_set_sta_local_pm - set local PM towards a mesh STA 153 * @pm: the power mode to set 157 enum nl80211_mesh_power_mode pm) in ieee80211_mps_set_sta_local_pm() argument 161 if (sta->mesh->local_pm == pm) in ieee80211_mps_set_sta_local_pm() 164 mps_dbg(sdata, "local STA operates in mode %d with %pM\n", in ieee80211_mps_set_sta_local_pm() 165 pm, sta->sta.addr); in ieee80211_mps_set_sta_local_pm() [all …]
|