.sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget&/translations/zh_CN/driver-api/devfreqmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget&/translations/zh_TW/driver-api/devfreqmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget&/translations/it_IT/driver-api/devfreqmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget&/translations/ja_JP/driver-api/devfreqmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget&/translations/ko_KR/driver-api/devfreqmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hPortuguese (Brazilian)}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget&/translations/pt_BR/driver-api/devfreqmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget&/translations/sp_SP/driver-api/devfreqmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhcomment)}(h SPDX-License-Identifier: GPL-2.0h]h SPDX-License-Identifier: GPL-2.0}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhh@/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq.rsthKubhsection)}(hhh](htitle)}(hDevice Frequency Scalingh]hDevice Frequency Scaling}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(h Introductionh]h Introduction}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh paragraph)}(huThis framework provides a standard kernel interface for Dynamic Voltage and Frequency Switching on arbitrary devices.h]huThis framework provides a standard kernel interface for Dynamic Voltage and Frequency Switching on arbitrary devices.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hhhhubh)}(hkIt exposes controls for adjusting frequency through sysfs files which are similar to the cpufreq subsystem.h]hkIt exposes controls for adjusting frequency through sysfs files which are similar to the cpufreq subsystem.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hhhhubh)}(hmDevices for which current usage can be measured can have their frequency automatically adjusted by governors.h]hmDevices for which current usage can be measured can have their frequency automatically adjusted by governors.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubeh}(h] introductionah ]h"] introductionah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hAPIh]hAPI}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj"hhhhhKubh)}(hDevice drivers need to initialize a :c:type:`devfreq_profile` and call the :c:func:`devfreq_add_device` function to create a :c:type:`devfreq` instance.h](h$Device drivers need to initialize a }(hj3hhhNhNubh)}(h:c:type:`devfreq_profile`h]hliteral)}(hj=h]hdevfreq_profile}(hjAhhhNhNubah}(h]h ](xrefcc-typeeh"]h$]h&]uh1j?hj;ubah}(h]h ]h"]h$]h&]refdocdriver-api/devfreq refdomainjLreftypetype refexplicitrefwarn reftargetdevfreq_profileuh1hhhhKhj3ubh and call the }(hj3hhhNhNubh)}(h:c:func:`devfreq_add_device`h]j@)}(hjfh]hdevfreq_add_device()}(hjhhhhNhNubah}(h]h ](jKjLc-funceh"]h$]h&]uh1j?hjdubah}(h]h ]h"]h$]h&]refdocjX refdomainjLreftypefunc refexplicitrefwarnj^devfreq_add_deviceuh1hhhhKhj3ubh function to create a }(hj3hhhNhNubh)}(h:c:type:`devfreq`h]j@)}(hjh]hdevfreq}(hjhhhNhNubah}(h]h ](jKjLc-typeeh"]h$]h&]uh1j?hjubah}(h]h ]h"]h$]h&]refdocjX refdomainjLreftypetype refexplicitrefwarnj^devfrequh1hhhhKhj3ubh instance.}(hj3hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj"hhubhindex)}(hhh]h}(h]h ]h"]h$]h&]entries](singledevfreq_dev_status (C struct)c.devfreq_dev_statushNtauh1jhj"hhhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhNubhdesc)}(hhh](hdesc_signature)}(hdevfreq_dev_statush]hdesc_signature_line)}(hstruct devfreq_dev_statush](hdesc_sig_keyword)}(hstructh]hstruct}(hjhhhNhNubah}(h]h ]kah"]h$]h&]uh1jhjhhhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKubhdesc_sig_space)}(h h]h }(hjhhhNhNubah}(h]h ]wah"]h$]h&]uh1jhjhhhjhKubh desc_name)}(hdevfreq_dev_statush]h desc_sig_name)}(hjh]hdevfreq_dev_status}(hjhhhNhNubah}(h]h ]nah"]h$]h&]uh1jhjubah}(h]h ](sig-namedescnameeh"]h$]h&]hhuh1jhjhhhjhKubeh}(h]h ]h"]h$]h&]hhƌ add_permalinkuh1jsphinx_line_type declaratorhjhhhjhKubah}(h]jah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1jhjhKhjhhubh desc_content)}(hhh]h)}(hXData given from devfreq user device to governors. Represents the performance statistics.h]hXData given from devfreq user device to governors. Represents the performance statistics.}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhK-hj*hhubah}(h]h ]h"]h$]h&]uh1j(hjhhhjhKubeh}(h]h ](jLstructeh"]h$]h&]domainjLobjtypejEdesctypejEnoindex noindexentrynocontentsentryuh1jhhhj"hjhNubh container)}(hX**Definition**:: struct devfreq_dev_status { unsigned long total_time; unsigned long busy_time; unsigned long current_frequency; void *private_data; }; **Members** ``total_time`` The total time represented by this instance of devfreq_dev_status ``busy_time`` The time that the device was working among the total_time. ``current_frequency`` The operating frequency. ``private_data`` An entry not specified by the devfreq framework. A device and a specific governor may have their own protocol with private_data. However, because this is governor-specific, a governor using this will be only compatible with devices aware of it.h](h)}(h**Definition**::h](hstrong)}(h**Definition**h]h Definition}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjUubh:}(hjUhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhK1hjQubh literal_block)}(hstruct devfreq_dev_status { unsigned long total_time; unsigned long busy_time; unsigned long current_frequency; void *private_data; };h]hstruct devfreq_dev_status { unsigned long total_time; unsigned long busy_time; unsigned long current_frequency; void *private_data; };}hjvsbah}(h]h ]h"]h$]h&]hhuh1jthZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhK3hjQubh)}(h **Members**h]jZ)}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhK:hjQubhdefinition_list)}(hhh](hdefinition_list_item)}(hQ``total_time`` The total time represented by this instance of devfreq_dev_status h](hterm)}(h``total_time``h]j@)}(hjh]h total_time}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j?hjubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhK2hjubh definition)}(hhh]h)}(hAThe total time represented by this instance of devfreq_dev_statush]hAThe total time represented by this instance of devfreq_dev_status}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhK1hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK2hjubj)}(hI``busy_time`` The time that the device was working among the total_time. h](j)}(h ``busy_time``h]j@)}(hjh]h busy_time}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j?hjubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhK4hjubj)}(hhh]h)}(h:The time that the device was working among the total_time.h]h:The time that the device was working among the total_time.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhK3hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK4hjubj)}(h/``current_frequency`` The operating frequency. h](j)}(h``current_frequency``h]j@)}(hj"h]hcurrent_frequency}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1j?hj ubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhK5hjubj)}(hhh]h)}(hThe operating frequency.h]hThe operating frequency.}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj7hK5hj8ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj7hK5hjubj)}(hX``private_data`` An entry not specified by the devfreq framework. A device and a specific governor may have their own protocol with private_data. However, because this is governor-specific, a governor using this will be only compatible with devices aware of it.h](j)}(h``private_data``h]j@)}(hj[h]h private_data}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1j?hjYubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhK9hjUubj)}(hhh]h)}(hAn entry not specified by the devfreq framework. A device and a specific governor may have their own protocol with private_data. However, because this is governor-specific, a governor using this will be only compatible with devices aware of it.h]hAn entry not specified by the devfreq framework. A device and a specific governor may have their own protocol with private_data. However, because this is governor-specific, a governor using this will be only compatible with devices aware of it.}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhK6hjqubah}(h]h ]h"]h$]h&]uh1jhjUubeh}(h]h ]h"]h$]h&]uh1jhjphK9hjubeh}(h]h ]h"]h$]h&]uh1jhjQubeh}(h]h ] kernelindentah"]h$]h&]uh1jOhj"hhhjhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jdevfreq_dev_profile (C struct)c.devfreq_dev_profilehNtauh1jhj"hhhjhNubj)}(hhh](j)}(hdevfreq_dev_profileh]j)}(hstruct devfreq_dev_profileh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhK@ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhK@ubj)}(hdevfreq_dev_profileh]j)}(hjh]hdevfreq_dev_profile}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjhhhjhK@ubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjhhhjhK@ubah}(h]jah ](j j!eh"]h$]h&]j%j&)j'huh1jhjhK@hjhhubj))}(hhh]h)}(hDevfreq's user device profileh]hDevfreq’s user device profile}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKLhjhhubah}(h]h ]h"]h$]h&]uh1j(hjhhhjhK@ubeh}(h]h ](jLstructeh"]h$]h&]jIjLjJjjKjjLjMjNuh1jhhhj"hjhNubjP)}(hX#**Definition**:: struct devfreq_dev_profile { unsigned long initial_freq; unsigned int polling_ms; enum devfreq_timer timer; int (*target)(struct device *dev, unsigned long *freq, u32 flags); int (*get_dev_status)(struct device *dev, struct devfreq_dev_status *stat); int (*get_cur_freq)(struct device *dev, unsigned long *freq); void (*exit)(struct device *dev); unsigned long *freq_table; unsigned int max_state; bool is_cooling_device; const struct attribute_group **dev_groups; }; **Members** ``initial_freq`` The operating frequency when devfreq_add_device() is called. ``polling_ms`` The polling interval in ms. 0 disables polling. ``timer`` Timer type is either deferrable or delayed timer. ``target`` The device should set its operating frequency at freq or lowest-upper-than-freq value. If freq is higher than any operable frequency, set maximum. Before returning, target function should set freq at the current frequency. The "flags" parameter's possible values are explained above with "DEVFREQ_FLAG_*" macros. ``get_dev_status`` The device should provide the current performance status to devfreq. Governors are recommended not to use this directly. Instead, governors are recommended to use devfreq_update_stats() along with devfreq.last_status. ``get_cur_freq`` The device should provide the current frequency at which it is operating. ``exit`` An optional callback that is called when devfreq is removing the devfreq object due to error or from devfreq_remove_device() call. If the user has registered devfreq->nb at a notifier-head, this is the time to unregister it. ``freq_table`` Optional list of frequencies to support statistics and freq_table must be generated in ascending order. ``max_state`` The size of freq_table. ``is_cooling_device`` A self-explanatory boolean giving the device a cooling effect property. ``dev_groups`` Optional device-specific sysfs attribute groups that to be attached to the devfreq device.h](h)}(h**Definition**::h](jZ)}(h**Definition**h]h Definition}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKPhjubju)}(hXstruct devfreq_dev_profile { unsigned long initial_freq; unsigned int polling_ms; enum devfreq_timer timer; int (*target)(struct device *dev, unsigned long *freq, u32 flags); int (*get_dev_status)(struct device *dev, struct devfreq_dev_status *stat); int (*get_cur_freq)(struct device *dev, unsigned long *freq); void (*exit)(struct device *dev); unsigned long *freq_table; unsigned int max_state; bool is_cooling_device; const struct attribute_group **dev_groups; };h]hXstruct devfreq_dev_profile { unsigned long initial_freq; unsigned int polling_ms; enum devfreq_timer timer; int (*target)(struct device *dev, unsigned long *freq, u32 flags); int (*get_dev_status)(struct device *dev, struct devfreq_dev_status *stat); int (*get_cur_freq)(struct device *dev, unsigned long *freq); void (*exit)(struct device *dev); unsigned long *freq_table; unsigned int max_state; bool is_cooling_device; const struct attribute_group **dev_groups; };}hj4sbah}(h]h ]h"]h$]h&]hhuh1jthZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKRhjubh)}(h **Members**h]jZ)}(hjEh]hMembers}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjCubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhK`hjubj)}(hhh](j)}(hN``initial_freq`` The operating frequency when devfreq_add_device() is called. h](j)}(h``initial_freq``h]j@)}(hjdh]h initial_freq}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1j?hjbubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKOhj^ubj)}(hhh]h)}(hnb at a notifier-head, this is the time to unregister it. h](j)}(h``exit``h]j@)}(hjh]hexit}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j?hjubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKdhjubj)}(hhh]h)}(hAn optional callback that is called when devfreq is removing the devfreq object due to error or from devfreq_remove_device() call. If the user has registered devfreq->nb at a notifier-head, this is the time to unregister it.h]hAn optional callback that is called when devfreq is removing the devfreq object due to error or from devfreq_remove_device() call. If the user has registered devfreq->nb at a notifier-head, this is the time to unregister it.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhK`hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKdhj[ubj)}(hw``freq_table`` Optional list of frequencies to support statistics and freq_table must be generated in ascending order. h](j)}(h``freq_table``h]j@)}(hjh]h freq_table}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j?hjubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKfhjubj)}(hhh]h)}(hgOptional list of frequencies to support statistics and freq_table must be generated in ascending order.h]hgOptional list of frequencies to support statistics and freq_table must be generated in ascending order.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKehjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hKfhj[ubj)}(h&``max_state`` The size of freq_table. h](j)}(h ``max_state``h]j@)}(hj2h]h max_state}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1j?hj0ubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKghj,ubj)}(hhh]h)}(hThe size of freq_table.h]hThe size of freq_table.}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjGhKghjHubah}(h]h ]h"]h$]h&]uh1jhj,ubeh}(h]h ]h"]h$]h&]uh1jhjGhKghj[ubj)}(h^``is_cooling_device`` A self-explanatory boolean giving the device a cooling effect property. h](j)}(h``is_cooling_device``h]j@)}(hjkh]his_cooling_device}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1j?hjiubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKjhjeubj)}(hhh]h)}(hGA self-explanatory boolean giving the device a cooling effect property.h]hGA self-explanatory boolean giving the device a cooling effect property.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKihjubah}(h]h ]h"]h$]h&]uh1jhjeubeh}(h]h ]h"]h$]h&]uh1jhjhKjhj[ubj)}(hi``dev_groups`` Optional device-specific sysfs attribute groups that to be attached to the devfreq device.h](j)}(h``dev_groups``h]j@)}(hjh]h dev_groups}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j?hjubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKkhjubj)}(hhh]h)}(hZOptional device-specific sysfs attribute groups that to be attached to the devfreq device.h]hZOptional device-specific sysfs attribute groups that to be attached to the devfreq device.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKkhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKkhj[ubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jOhj"hhhjhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jdevfreq_stats (C struct)c.devfreq_statshNtauh1jhj"hhhjhNubj)}(hhh](j)}(h devfreq_statsh]j)}(hstruct devfreq_statsh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKrubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhj hKrubj)}(h devfreq_statsh]j)}(hjh]h devfreq_stats}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjhhhj hKrubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjhhhj hKrubah}(h]jah ](j j!eh"]h$]h&]j%j&)j'huh1jhj hKrhjhhubj))}(hhh]h)}(h%Statistics of devfreq device behaviorh]h%Statistics of devfreq device behavior}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKhj=hhubah}(h]h ]h"]h$]h&]uh1j(hjhhhj hKrubeh}(h]h ](jLstructeh"]h$]h&]jIjLjJjXjKjXjLjMjNuh1jhhhj"hjhNubjP)}(hX~**Definition**:: struct devfreq_stats { unsigned int total_trans; unsigned int *trans_table; u64 *time_in_state; u64 last_update; }; **Members** ``total_trans`` Number of devfreq transitions. ``trans_table`` Statistics of devfreq transitions. ``time_in_state`` Statistics of devfreq states. ``last_update`` The last time stats were updated.h](h)}(h**Definition**::h](jZ)}(h**Definition**h]h Definition}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhj`ubh:}(hj`hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKhj\ubju)}(hstruct devfreq_stats { unsigned int total_trans; unsigned int *trans_table; u64 *time_in_state; u64 last_update; };h]hstruct devfreq_stats { unsigned int total_trans; unsigned int *trans_table; u64 *time_in_state; u64 last_update; };}hj}sbah}(h]h ]h"]h$]h&]hhuh1jthZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKhj\ubh)}(h **Members**h]jZ)}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKhj\ubj)}(hhh](j)}(h/``total_trans`` Number of devfreq transitions. h](j)}(h``total_trans``h]j@)}(hjh]h total_trans}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j?hjubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKhjubj)}(hhh]h)}(hNumber of devfreq transitions.h]hNumber of devfreq transitions.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h3``trans_table`` Statistics of devfreq transitions. h](j)}(h``trans_table``h]j@)}(hjh]h trans_table}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j?hjubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKhjubj)}(hhh]h)}(h"Statistics of devfreq transitions.h]h"Statistics of devfreq transitions.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h0``time_in_state`` Statistics of devfreq states. h](j)}(h``time_in_state``h]j@)}(hjh]h time_in_state}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1j?hjubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKhjubj)}(hhh]h)}(hStatistics of devfreq states.h]hStatistics of devfreq states.}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj4hKhj5ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj4hKhjubj)}(h1``last_update`` The last time stats were updated.h](j)}(h``last_update``h]j@)}(hjXh]h last_update}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1j?hjVubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKhjRubj)}(hhh]h)}(h!The last time stats were updated.h]h!The last time stats were updated.}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKhjnubah}(h]h ]h"]h$]h&]uh1jhjRubeh}(h]h ]h"]h$]h&]uh1jhjmhKhjubeh}(h]h ]h"]h$]h&]uh1jhj\ubeh}(h]h ] kernelindentah"]h$]h&]uh1jOhj"hhhjhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jdevfreq (C struct) c.devfreqhNtauh1jhj"hhhjhNubj)}(hhh](j)}(hdevfreqh]j)}(hstruct devfreqh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhKubj)}(hdevfreqh]j)}(hjh]hdevfreq}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjhhhjhKubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjhhhjhKubah}(h]jah ](j j!eh"]h$]h&]j%j&)j'huh1jhjhKhjhhubj))}(hhh]h)}(hDevice devfreq structureh]hDevice devfreq structure}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKhjhhubah}(h]h ]h"]h$]h&]uh1j(hjhhhjhKubeh}(h]h ](jLstructeh"]h$]h&]jIjLjJj jKj jLjMjNuh1jhhhj"hjhNubjP)}(hX **Definition**:: struct devfreq { struct list_head node; struct mutex lock; struct device dev; struct devfreq_dev_profile *profile; const struct devfreq_governor *governor; struct opp_table *opp_table; struct notifier_block nb; struct delayed_work work; unsigned long *freq_table; unsigned int max_state; unsigned long previous_freq; struct devfreq_dev_status last_status; void *data; void *governor_data; struct dev_pm_qos_request user_min_freq_req; struct dev_pm_qos_request user_max_freq_req; unsigned long scaling_min_freq; unsigned long scaling_max_freq; bool stop_polling; unsigned long suspend_freq; unsigned long resume_freq; atomic_t suspend_count; struct devfreq_stats stats; struct srcu_notifier_head transition_notifier_list; struct thermal_cooling_device *cdev; struct notifier_block nb_min; struct notifier_block nb_max; }; **Members** ``node`` list node - contains the devices with devfreq that have been registered. ``lock`` a mutex to protect accessing devfreq. ``dev`` device registered by devfreq class. dev.parent is the device using devfreq. ``profile`` device-specific devfreq profile ``governor`` method how to choose frequency based on the usage. ``opp_table`` Reference to OPP table of dev.parent, if one exists. ``nb`` notifier block used to notify devfreq object that it should reevaluate operable frequencies. Devfreq users may use devfreq.nb to the corresponding register notifier call chain. ``work`` delayed work for load monitoring. ``freq_table`` current frequency table used by the devfreq driver. ``max_state`` count of entry present in the frequency table. ``previous_freq`` previously configured frequency value. ``last_status`` devfreq user device info, performance statistics ``data`` devfreq driver pass to governors, governor should not change it. ``governor_data`` private data for governors, devfreq core doesn't touch it. ``user_min_freq_req`` PM QoS minimum frequency request from user (via sysfs) ``user_max_freq_req`` PM QoS maximum frequency request from user (via sysfs) ``scaling_min_freq`` Limit minimum frequency requested by OPP interface ``scaling_max_freq`` Limit maximum frequency requested by OPP interface ``stop_polling`` devfreq polling status of a device. ``suspend_freq`` frequency of a device set during suspend phase. ``resume_freq`` frequency of a device set in resume phase. ``suspend_count`` suspend requests counter for a device. ``stats`` Statistics of devfreq device behavior ``transition_notifier_list`` list head of DEVFREQ_TRANSITION_NOTIFIER notifier ``cdev`` Cooling device pointer if the devfreq has cooling property ``nb_min`` Notifier block for DEV_PM_QOS_MIN_FREQUENCY ``nb_max`` Notifier block for DEV_PM_QOS_MAX_FREQUENCYh](h)}(h**Definition**::h](jZ)}(h**Definition**h]h Definition}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jYhj ubh:}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKhj ubju)}(hXstruct devfreq { struct list_head node; struct mutex lock; struct device dev; struct devfreq_dev_profile *profile; const struct devfreq_governor *governor; struct opp_table *opp_table; struct notifier_block nb; struct delayed_work work; unsigned long *freq_table; unsigned int max_state; unsigned long previous_freq; struct devfreq_dev_status last_status; void *data; void *governor_data; struct dev_pm_qos_request user_min_freq_req; struct dev_pm_qos_request user_max_freq_req; unsigned long scaling_min_freq; unsigned long scaling_max_freq; bool stop_polling; unsigned long suspend_freq; unsigned long resume_freq; atomic_t suspend_count; struct devfreq_stats stats; struct srcu_notifier_head transition_notifier_list; struct thermal_cooling_device *cdev; struct notifier_block nb_min; struct notifier_block nb_max; };h]hXstruct devfreq { struct list_head node; struct mutex lock; struct device dev; struct devfreq_dev_profile *profile; const struct devfreq_governor *governor; struct opp_table *opp_table; struct notifier_block nb; struct delayed_work work; unsigned long *freq_table; unsigned int max_state; unsigned long previous_freq; struct devfreq_dev_status last_status; void *data; void *governor_data; struct dev_pm_qos_request user_min_freq_req; struct dev_pm_qos_request user_max_freq_req; unsigned long scaling_min_freq; unsigned long scaling_max_freq; bool stop_polling; unsigned long suspend_freq; unsigned long resume_freq; atomic_t suspend_count; struct devfreq_stats stats; struct srcu_notifier_head transition_notifier_list; struct thermal_cooling_device *cdev; struct notifier_block nb_min; struct notifier_block nb_max; };}hj1 sbah}(h]h ]h"]h$]h&]hhuh1jthZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKhj ubh)}(h **Members**h]jZ)}(hjB h]hMembers}(hjD hhhNhNubah}(h]h ]h"]h$]h&]uh1jYhj@ ubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKhj ubj)}(hhh](j)}(hR``node`` list node - contains the devices with devfreq that have been registered. h](j)}(h``node``h]j@)}(hja h]hnode}(hjc hhhNhNubah}(h]h ]h"]h$]h&]uh1j?hj_ ubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKhj[ ubj)}(hhh]h)}(hHlist node - contains the devices with devfreq that have been registered.h]hHlist node - contains the devices with devfreq that have been registered.}(hjz hhhNhNubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKhjw ubah}(h]h ]h"]h$]h&]uh1jhj[ ubeh}(h]h ]h"]h$]h&]uh1jhjv hKhjX ubj)}(h/``lock`` a mutex to protect accessing devfreq. h](j)}(h``lock``h]j@)}(hj h]hlock}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j?hj ubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKhj ubj)}(hhh]h)}(h%a mutex to protect accessing devfreq.h]h%a mutex to protect accessing devfreq.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKhjX ubj)}(hT``dev`` device registered by devfreq class. dev.parent is the device using devfreq. h](j)}(h``dev``h]j@)}(hj h]hdev}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j?hj ubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKhj ubj)}(hhh]h)}(hKdevice registered by devfreq class. dev.parent is the device using devfreq.h]hKdevice registered by devfreq class. dev.parent is the device using devfreq.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKhjX ubj)}(h,``profile`` device-specific devfreq profile h](j)}(h ``profile``h]j@)}(hj h]hprofile}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j?hj ubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKhj ubj)}(hhh]h)}(hdevice-specific devfreq profileh]hdevice-specific devfreq profile}(hj' hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj# hKhj$ ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj# hKhjX ubj)}(h@``governor`` method how to choose frequency based on the usage. h](j)}(h ``governor``h]j@)}(hjG h]hgovernor}(hjI hhhNhNubah}(h]h ]h"]h$]h&]uh1j?hjE ubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKhjA ubj)}(hhh]h)}(h2method how to choose frequency based on the usage.h]h2method how to choose frequency based on the usage.}(hj` hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj\ hKhj] ubah}(h]h ]h"]h$]h&]uh1jhjA ubeh}(h]h ]h"]h$]h&]uh1jhj\ hKhjX ubj)}(hC``opp_table`` Reference to OPP table of dev.parent, if one exists. h](j)}(h ``opp_table``h]j@)}(hj h]h opp_table}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j?hj~ ubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKhjz ubj)}(hhh]h)}(h4Reference to OPP table of dev.parent, if one exists.h]h4Reference to OPP table of dev.parent, if one exists.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhjz ubeh}(h]h ]h"]h$]h&]uh1jhj hKhjX ubj)}(h``nb`` notifier block used to notify devfreq object that it should reevaluate operable frequencies. Devfreq users may use devfreq.nb to the corresponding register notifier call chain. h](j)}(h``nb``h]j@)}(hj h]hnb}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j?hj ubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKhj ubj)}(hhh]h)}(hnotifier block used to notify devfreq object that it should reevaluate operable frequencies. Devfreq users may use devfreq.nb to the corresponding register notifier call chain.h]hnotifier block used to notify devfreq object that it should reevaluate operable frequencies. Devfreq users may use devfreq.nb to the corresponding register notifier call chain.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKhjX ubj)}(h+``work`` delayed work for load monitoring. h](j)}(h``work``h]j@)}(hj h]hwork}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j?hj ubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKhj ubj)}(hhh]h)}(h!delayed work for load monitoring.h]h!delayed work for load monitoring.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKhjX ubj)}(hC``freq_table`` current frequency table used by the devfreq driver. h](j)}(h``freq_table``h]j@)}(hj, h]h freq_table}(hj. hhhNhNubah}(h]h ]h"]h$]h&]uh1j?hj* ubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKhj& ubj)}(hhh]h)}(h3current frequency table used by the devfreq driver.h]h3current frequency table used by the devfreq driver.}(hjE hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjA hKhjB ubah}(h]h ]h"]h$]h&]uh1jhj& ubeh}(h]h ]h"]h$]h&]uh1jhjA hKhjX ubj)}(h=``max_state`` count of entry present in the frequency table. h](j)}(h ``max_state``h]j@)}(hje h]h max_state}(hjg hhhNhNubah}(h]h ]h"]h$]h&]uh1j?hjc ubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKhj_ ubj)}(hhh]h)}(h.count of entry present in the frequency table.h]h.count of entry present in the frequency table.}(hj~ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjz hKhj{ ubah}(h]h ]h"]h$]h&]uh1jhj_ ubeh}(h]h ]h"]h$]h&]uh1jhjz hKhjX ubj)}(h9``previous_freq`` previously configured frequency value. h](j)}(h``previous_freq``h]j@)}(hj h]h previous_freq}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j?hj ubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKhj ubj)}(hhh]h)}(h&previously configured frequency value.h]h&previously configured frequency value.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKhjX ubj)}(hA``last_status`` devfreq user device info, performance statistics h](j)}(h``last_status``h]j@)}(hj h]h last_status}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j?hj ubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKhj ubj)}(hhh]h)}(h0devfreq user device info, performance statisticsh]h0devfreq user device info, performance statistics}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKhjX ubj)}(hJ``data`` devfreq driver pass to governors, governor should not change it. h](j)}(h``data``h]j@)}(hj h]hdata}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j?hj ubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKhj ubj)}(hhh]h)}(h@devfreq driver pass to governors, governor should not change it.h]h@devfreq driver pass to governors, governor should not change it.}(hj) hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj% hKhj& ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj% hKhjX ubj)}(hM``governor_data`` private data for governors, devfreq core doesn't touch it. h](j)}(h``governor_data``h]j@)}(hjI h]h governor_data}(hjK hhhNhNubah}(h]h ]h"]h$]h&]uh1j?hjG ubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKhjC ubj)}(hhh]h)}(h:private data for governors, devfreq core doesn't touch it.h]hh]hget_target_freq}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1j?hj<ubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhM=hj8ubj)}(hhh]h)}(hXjOptional callback, Returns desired operating frequency for the device using passive governor. That is called when passive governor should decide the next frequency by using the new frequency of parent devfreq device using governors except for passive governor. If the devfreq device has the specific method to decide the next frequency, should use this callback.h]hXjOptional callback, Returns desired operating frequency for the device using passive governor. That is called when passive governor should decide the next frequency by using the new frequency of parent devfreq device using governors except for passive governor. If the devfreq device has the specific method to decide the next frequency, should use this callback.}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhM7hjTubah}(h]h ]h"]h$]h&]uh1jhj8ubeh}(h]h ]h"]h$]h&]uh1jhjShM=hjubj)}(h/``parent_type`` the parent type of the device. h](j)}(h``parent_type``h]j@)}(hjxh]h parent_type}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1j?hjvubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhM>hjrubj)}(hhh]h)}(hthe parent type of the device.h]hthe parent type of the device.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM>hjubah}(h]h ]h"]h$]h&]uh1jhjrubeh}(h]h ]h"]h$]h&]uh1jhjhM>hjubj)}(h-``this`` the devfreq instance of own device. h](j)}(h``this``h]j@)}(hjh]hthis}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j?hjubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhM?hjubj)}(hhh]h)}(h#the devfreq instance of own device.h]h#the devfreq instance of own device.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM?hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM?hjubj)}(h_``nb`` the notifier block for DEVFREQ_TRANSITION_NOTIFIER or CPUFREQ_TRANSITION_NOTIFIER list. h](j)}(h``nb``h]j@)}(hjh]hnb}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j?hjubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhMAhjubj)}(hhh]h)}(hWthe notifier block for DEVFREQ_TRANSITION_NOTIFIER or CPUFREQ_TRANSITION_NOTIFIER list.h]hWthe notifier block for DEVFREQ_TRANSITION_NOTIFIER or CPUFREQ_TRANSITION_NOTIFIER list.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhM@hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMAhjubj)}(hH``cpu_data_list`` the list of cpu frequency data for all cpufreq_policy.h](j)}(h``cpu_data_list``h]j@)}(hj$h]h cpu_data_list}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1j?hj"ubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhMAhjubj)}(hhh]h)}(h6the list of cpu frequency data for all cpufreq_policy.h]h6the list of cpu frequency data for all cpufreq_policy.}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhMBhj:ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj9hMAhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jOhj"hhhjhNubh)}(h**Description**h]jZ)}(hjgh]h Description}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjeubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhMEhj"hhubh)}(hThe devfreq_passive_data have to set the devfreq instance of parent device with governors except for the passive governor. But, don't need to initialize the 'this' and 'nb' field because the devfreq core will handle them.h]hThe devfreq_passive_data have to set the devfreq instance of parent device with governors except for the passive governor. But, don’t need to initialize the ‘this’ and ‘nb’ field because the devfreq core will handle them.}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhMBhj"hhubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jdevfreq_event_dev (C struct)c.devfreq_event_devhNtauh1jhj"hhh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhNubj)}(hhh](j)}(hdevfreq_event_devh]j)}(hstruct devfreq_event_devh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhKubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhKubj)}(hdevfreq_event_devh]j)}(hjh]hdevfreq_event_dev}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjhhhjhKubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjhhhjhKubah}(h]jah ](j j!eh"]h$]h&]j%j&)j'huh1jhjhKhjhhubj))}(hhh]h)}(hthe devfreq-event deviceh]hthe devfreq-event device}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhKhjhhubah}(h]h ]h"]h$]h&]uh1j(hjhhhjhKubeh}(h]h ](jLstructeh"]h$]h&]jIjLjJjjKjjLjMjNuh1jhhhj"hjhNubjP)}(hX7**Definition**:: struct devfreq_event_dev { struct list_head node; struct device dev; struct mutex lock; u32 enable_count; const struct devfreq_event_desc *desc; }; **Members** ``node`` Contain the devfreq-event device that have been registered. ``dev`` the device registered by devfreq-event class. dev.parent is the device using devfreq-event. ``lock`` a mutex to protect accessing devfreq-event. ``enable_count`` the number of enable function have been called. ``desc`` the description for devfreq-event device.h](h)}(h**Definition**::h](jZ)}(h**Definition**h]h Definition}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhKhjubju)}(hstruct devfreq_event_dev { struct list_head node; struct device dev; struct mutex lock; u32 enable_count; const struct devfreq_event_desc *desc; };h]hstruct devfreq_event_dev { struct list_head node; struct device dev; struct mutex lock; u32 enable_count; const struct devfreq_event_desc *desc; };}hj%sbah}(h]h ]h"]h$]h&]hhuh1jth`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhKhjubh)}(h **Members**h]jZ)}(hj6h]hMembers}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jYhj4ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhKhjubj)}(hhh](j)}(hE``node`` Contain the devfreq-event device that have been registered. h](j)}(h``node``h]j@)}(hjUh]hnode}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1j?hjSubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhKhjOubj)}(hhh]h)}(h;Contain the devfreq-event device that have been registered.h]h;Contain the devfreq-event device that have been registered.}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjjhKhjkubah}(h]h ]h"]h$]h&]uh1jhjOubeh}(h]h ]h"]h$]h&]uh1jhjjhKhjLubj)}(hd``dev`` the device registered by devfreq-event class. dev.parent is the device using devfreq-event. h](j)}(h``dev``h]j@)}(hjh]hdev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j?hjubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhKhjubj)}(hhh]h)}(h[the device registered by devfreq-event class. dev.parent is the device using devfreq-event.h]h[the device registered by devfreq-event class. dev.parent is the device using devfreq-event.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjLubj)}(h5``lock`` a mutex to protect accessing devfreq-event. h](j)}(h``lock``h]j@)}(hjh]hlock}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j?hjubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhKhjubj)}(hhh]h)}(h+a mutex to protect accessing devfreq-event.h]h+a mutex to protect accessing devfreq-event.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjLubj)}(hA``enable_count`` the number of enable function have been called. h](j)}(h``enable_count``h]j@)}(hjh]h enable_count}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j?hjubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhKhjubj)}(hhh]h)}(h/the number of enable function have been called.h]h/the number of enable function have been called.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjLubj)}(h2``desc`` the description for devfreq-event device.h](j)}(h``desc``h]j@)}(hj:h]hdesc}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1j?hj8ubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhKhj4ubj)}(hhh]h)}(h)the description for devfreq-event device.h]h)the description for devfreq-event device.}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhKhjPubah}(h]h ]h"]h$]h&]uh1jhj4ubeh}(h]h ]h"]h$]h&]uh1jhjOhKhjLubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jOhj"hhhjhNubh)}(h**Description**h]jZ)}(hj}h]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhj{ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhKhj"hhubh)}(h9This structure contains devfreq-event device information.h]h9This structure contains devfreq-event device information.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhKhj"hhubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jdevfreq_event_data (C struct)c.devfreq_event_datahNtauh1jhj"hhhjhNubj)}(hhh](j)}(hdevfreq_event_datah]j)}(hstruct devfreq_event_datah](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhKubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhKubj)}(hdevfreq_event_datah]j)}(hjh]hdevfreq_event_data}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjhhhjhKubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjhhhjhKubah}(h]jah ](j j!eh"]h$]h&]j%j&)j'huh1jhjhKhjhhubj))}(hhh]h)}(hthe devfreq-event datah]hthe devfreq-event data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhK%hjhhubah}(h]h ]h"]h$]h&]uh1j(hjhhhjhKubeh}(h]h ](jLstructeh"]h$]h&]jIjLjJjjKjjLjMjNuh1jhhhj"hjhNubjP)}(hX**Definition**:: struct devfreq_event_data { unsigned long load_count; unsigned long total_count; }; **Members** ``load_count`` load count of devfreq-event device for the given period. ``total_count`` total count of devfreq-event device for the given period. each count may represent a clock cycle, a time unit (ns/us/...), or anything the device driver wants. Generally, utilization is load_count / total_count.h](h)}(h**Definition**::h](jZ)}(h**Definition**h]h Definition}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhK)hjubju)}(h[struct devfreq_event_data { unsigned long load_count; unsigned long total_count; };h]h[struct devfreq_event_data { unsigned long load_count; unsigned long total_count; };}hj:sbah}(h]h ]h"]h$]h&]hhuh1jth`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhK+hjubh)}(h **Members**h]jZ)}(hjKh]hMembers}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjIubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhK0hjubj)}(hhh](j)}(hH``load_count`` load count of devfreq-event device for the given period. h](j)}(h``load_count``h]j@)}(hjjh]h load_count}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1j?hjhubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhK(hjdubj)}(hhh]h)}(h8load count of devfreq-event device for the given period.h]h8load count of devfreq-event device for the given period.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK(hjubah}(h]h ]h"]h$]h&]uh1jhjdubeh}(h]h ]h"]h$]h&]uh1jhjhK(hjaubj)}(h``total_count`` total count of devfreq-event device for the given period. each count may represent a clock cycle, a time unit (ns/us/...), or anything the device driver wants. Generally, utilization is load_count / total_count.h](j)}(h``total_count``h]j@)}(hjh]h total_count}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j?hjubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhK+hjubj)}(hhh]h)}(htotal count of devfreq-event device for the given period. each count may represent a clock cycle, a time unit (ns/us/...), or anything the device driver wants. Generally, utilization is load_count / total_count.h]htotal count of devfreq-event device for the given period. each count may represent a clock cycle, a time unit (ns/us/...), or anything the device driver wants. Generally, utilization is load_count / total_count.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhK)hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK+hjaubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jOhj"hhhjhNubh)}(h**Description**h]jZ)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhK/hj"hhubh)}(hLThis structure contains the data of devfreq-event device for polling period.h]hLThis structure contains the data of devfreq-event device for polling period.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhK,hj"hhubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jdevfreq_event_ops (C struct)c.devfreq_event_opshNtauh1jhj"hhhjhNubj)}(hhh](j)}(hdevfreq_event_opsh]j)}(hstruct devfreq_event_opsh](j)}(hjh]hstruct}(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhK1ubj)}(h h]h }(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhj1hK1ubj)}(hdevfreq_event_opsh]j)}(hjh]hdevfreq_event_ops}(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj hhhj1hK1ubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjhhhj1hK1ubah}(h]jah ](j j!eh"]h$]h&]j%j&)j'huh1jhj1hK1hjhhubj))}(hhh]h)}(h&the operations of devfreq-event deviceh]h&the operations of devfreq-event device}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhK5hjchhubah}(h]h ]h"]h$]h&]uh1j(hjhhhj1hK1ubeh}(h]h ](jLstructeh"]h$]h&]jIjLjJj~jKj~jLjMjNuh1jhhhj"hjhNubjP)}(hX**Definition**:: struct devfreq_event_ops { int (*enable)(struct devfreq_event_dev *edev); int (*disable)(struct devfreq_event_dev *edev); int (*reset)(struct devfreq_event_dev *edev); int (*set_event)(struct devfreq_event_dev *edev); int (*get_event)(struct devfreq_event_dev *edev, struct devfreq_event_data *edata); }; **Members** ``enable`` Enable the devfreq-event device. ``disable`` Disable the devfreq-event device. ``reset`` Reset all setting of the devfreq-event device. ``set_event`` Set the specific event type for the devfreq-event device. ``get_event`` Get the result of the devfreq-event devie with specific event type.h](h)}(h**Definition**::h](jZ)}(h**Definition**h]h Definition}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhK9hjubju)}(hXDstruct devfreq_event_ops { int (*enable)(struct devfreq_event_dev *edev); int (*disable)(struct devfreq_event_dev *edev); int (*reset)(struct devfreq_event_dev *edev); int (*set_event)(struct devfreq_event_dev *edev); int (*get_event)(struct devfreq_event_dev *edev, struct devfreq_event_data *edata); };h]hXDstruct devfreq_event_ops { int (*enable)(struct devfreq_event_dev *edev); int (*disable)(struct devfreq_event_dev *edev); int (*reset)(struct devfreq_event_dev *edev); int (*set_event)(struct devfreq_event_dev *edev); int (*get_event)(struct devfreq_event_dev *edev, struct devfreq_event_data *edata); };}hjsbah}(h]h ]h"]h$]h&]hhuh1jth`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhK;hjubh)}(h **Members**h]jZ)}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhKChjubj)}(hhh](j)}(h,``enable`` Enable the devfreq-event device. h](j)}(h ``enable``h]j@)}(hjh]henable}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j?hjubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhK8hjubj)}(hhh]h)}(h Enable the devfreq-event device.h]h Enable the devfreq-event device.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK8hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK8hjubj)}(h.``disable`` Disable the devfreq-event device. h](j)}(h ``disable``h]j@)}(hj h]hdisable}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j?hj ubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhK9hjubj)}(hhh]h)}(h!Disable the devfreq-event device.h]h!Disable the devfreq-event device.}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj!hK9hj"ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj!hK9hjubj)}(h9``reset`` Reset all setting of the devfreq-event device. h](j)}(h ``reset``h]j@)}(hjEh]hreset}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1j?hjCubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhK:hj?ubj)}(hhh]h)}(h.Reset all setting of the devfreq-event device.h]h.Reset all setting of the devfreq-event device.}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjZhK:hj[ubah}(h]h ]h"]h$]h&]uh1jhj?ubeh}(h]h ]h"]h$]h&]uh1jhjZhK:hjubj)}(hH``set_event`` Set the specific event type for the devfreq-event device. h](j)}(h ``set_event``h]j@)}(hj~h]h set_event}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j?hj|ubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhK;hjxubj)}(hhh]h)}(h9Set the specific event type for the devfreq-event device.h]h9Set the specific event type for the devfreq-event device.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK;hjubah}(h]h ]h"]h$]h&]uh1jhjxubeh}(h]h ]h"]h$]h&]uh1jhjhK;hjubj)}(hQ``get_event`` Get the result of the devfreq-event devie with specific event type.h](j)}(h ``get_event``h]j@)}(hjh]h get_event}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j?hjubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhKlock before calling devfreq_update_target. This function should be only used by both update_devfreq() and devfreq governors.h](h)}(h**Parameters**h]jZ)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jYhj ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj ubj)}(hhh](j)}(h2``struct devfreq *devfreq`` the devfreq instance. h](j)}(h``struct devfreq *devfreq``h]j@)}(hj !h]hstruct devfreq *devfreq}(hj !hhhNhNubah}(h]h ]h"]h$]h&]uh1j?hj !ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj!ubj)}(hhh]h)}(hthe devfreq instance.h]hthe devfreq instance.}(hj$!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj !hMhj!!ubah}(h]h ]h"]h$]h&]uh1jhj!ubeh}(h]h ]h"]h$]h&]uh1jhj !hMhj!ubj)}(h``unsigned long freq`` the new frequency of parent device. This argument is only used for devfreq device using passive governor. h](j)}(h``unsigned long freq``h]j@)}(hjD!h]hunsigned long freq}(hjF!hhhNhNubah}(h]h ]h"]h$]h&]uh1j?hjB!ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj>!ubj)}(hhh]h)}(hithe new frequency of parent device. This argument is only used for devfreq device using passive governor.h]hithe new frequency of parent device. This argument is only used for devfreq device using passive governor.}(hj]!hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhjZ!ubah}(h]h ]h"]h$]h&]uh1jhj>!ubeh}(h]h ]h"]h$]h&]uh1jhjY!hMhj!ubeh}(h]h ]h"]h$]h&]uh1jhj ubh)}(h**Note**h]jZ)}(hj!h]hNote}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jYhj~!ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj ubj)}(hhh]j)}(hLock devfreq->lock before calling devfreq_update_target. This function should be only used by both update_devfreq() and devfreq governors.h](j)}(hFLock devfreq->lock before calling devfreq_update_target. This functionh]hFLock devfreq->lock before calling devfreq_update_target. This function}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj!ubj)}(hhh]h)}(hCshould be only used by both update_devfreq() and devfreq governors.h]hCshould be only used by both update_devfreq() and devfreq governors.}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj!ubah}(h]h ]h"]h$]h&]uh1jhj!ubeh}(h]h ]h"]h$]h&]uh1jhj!hMhj!ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jOhj"hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jupdate_devfreq (C function)c.update_devfreqhNtauh1jhj"hhhNhNubj)}(hhh](j)}(h,int update_devfreq (struct devfreq *devfreq)h]j)}(h+int update_devfreq(struct devfreq *devfreq)h](j)}(hinth]hint}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMubj)}(h h]h }(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!hhhj!hMubj)}(hupdate_devfreqh]j)}(hupdate_devfreqh]hupdate_devfreq}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj "ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj!hhhj!hMubjK)}(h(struct devfreq *devfreq)h]jQ)}(hstruct devfreq *devfreqh](j)}(hjh]hstruct}(hj-"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)"ubj)}(h h]h }(hj:"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)"ubh)}(hhh]j)}(hdevfreqh]hdevfreq}(hjK"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjH"ubah}(h]h ]h"]h$]h&] refdomainjLreftypej reftargetjM"modnameN classnameNjj)}j]j)}jj"sbc.update_devfreqasbuh1hhj)"ubj)}(h h]h }(hjk"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)"ubj)}(hjh]h*}(hjy"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)"ubj)}(hdevfreqh]hdevfreq}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)"ubeh}(h]h ]h"]h$]h&]noemphhhuh1jPhj%"ubah}(h]h ]h"]h$]h&]hhuh1jJhj!hhhj!hMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj!hhhj!hMubah}(h]j!ah ](j j!eh"]h$]h&]j%j&)j'huh1jhj!hMhj!hhubj))}(hhh]h)}(h.Reevaluate the device and configure frequency.h]h.Reevaluate the device and configure frequency.}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj"hhubah}(h]h ]h"]h$]h&]uh1j(hj!hhhj!hMubeh}(h]h ](jLfunctioneh"]h$]h&]jIjLjJj"jKj"jLjMjNuh1jhhhj"hNhNubjP)}(h**Parameters** ``struct devfreq *devfreq`` the devfreq instance. **Note** Lock devfreq->lock before calling update_devfreq This function is exported for governors.h](h)}(h**Parameters**h]jZ)}(hj"h]h Parameters}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jYhj"ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj"ubj)}(hhh]j)}(h2``struct devfreq *devfreq`` the devfreq instance. h](j)}(h``struct devfreq *devfreq``h]j@)}(hj"h]hstruct devfreq *devfreq}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1j?hj"ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj"ubj)}(hhh]h)}(hthe devfreq instance.h]hthe devfreq instance.}(hj #hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj#hMhj#ubah}(h]h ]h"]h$]h&]uh1jhj"ubeh}(h]h ]h"]h$]h&]uh1jhj#hMhj"ubah}(h]h ]h"]h$]h&]uh1jhj"ubh)}(h**Note**h]jZ)}(hj,#h]hNote}(hj.#hhhNhNubah}(h]h ]h"]h$]h&]uh1jYhj*#ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj"ubj)}(hhh]j)}(hYLock devfreq->lock before calling update_devfreq This function is exported for governors.h](j)}(h0Lock devfreq->lock before calling update_devfreqh]h0Lock devfreq->lock before calling update_devfreq}(hjI#hhhNhNubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhjE#ubj)}(hhh]h)}(h(This function is exported for governors.h]h(This function is exported for governors.}(hj[#hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhjX#ubah}(h]h ]h"]h$]h&]uh1jhjE#ubeh}(h]h ]h"]h$]h&]uh1jhjW#hMhjB#ubah}(h]h ]h"]h$]h&]uh1jhj"ubeh}(h]h ] kernelindentah"]h$]h&]uh1jOhj"hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"devfreq_monitor_start (C function)c.devfreq_monitor_starthNtauh1jhj"hhhNhNubj)}(hhh](j)}(h4void devfreq_monitor_start (struct devfreq *devfreq)h]j)}(h3void devfreq_monitor_start(struct devfreq *devfreq)h](j)}(hvoidh]hvoid}(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMubj)}(h h]h }(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#hhhj#hMubj)}(hdevfreq_monitor_starth]j)}(hdevfreq_monitor_starth]hdevfreq_monitor_start}(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj#hhhj#hMubjK)}(h(struct devfreq *devfreq)h]jQ)}(hstruct devfreq *devfreqh](j)}(hjh]hstruct}(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#ubj)}(h h]h }(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#ubh)}(hhh]j)}(hdevfreqh]hdevfreq}(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#ubah}(h]h ]h"]h$]h&] refdomainjLreftypej reftargetj#modnameN classnameNjj)}j]j)}jj#sbc.devfreq_monitor_startasbuh1hhj#ubj)}(h h]h }(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#ubj)}(hjh]h*}(hj%$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#ubj)}(hdevfreqh]hdevfreq}(hj2$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#ubeh}(h]h ]h"]h$]h&]noemphhhuh1jPhj#ubah}(h]h ]h"]h$]h&]hhuh1jJhj#hhhj#hMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj#hhhj#hMubah}(h]j#ah ](j j!eh"]h$]h&]j%j&)j'huh1jhj#hMhj#hhubj))}(hhh]h)}(h)Start load monitoring of devfreq instanceh]h)Start load monitoring of devfreq instance}(hj\$hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhjY$hhubah}(h]h ]h"]h$]h&]uh1j(hj#hhhj#hMubeh}(h]h ](jLfunctioneh"]h$]h&]jIjLjJjt$jKjt$jLjMjNuh1jhhhj"hNhNubjP)}(hX**Parameters** ``struct devfreq *devfreq`` the devfreq instance. **Description** Helper function for starting devfreq device load monitoring. By default, deferrable timer is used for load monitoring. But the users can change this behavior using the "timer" type in devfreq_dev_profile. This function will be called by devfreq governor in response to the DEVFREQ_GOV_START event generated while adding a device to the devfreq framework.h](h)}(h**Parameters**h]jZ)}(hj~$h]h Parameters}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jYhj|$ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhjx$ubj)}(hhh]j)}(h2``struct devfreq *devfreq`` the devfreq instance. h](j)}(h``struct devfreq *devfreq``h]j@)}(hj$h]hstruct devfreq *devfreq}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1j?hj$ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj$ubj)}(hhh]h)}(hthe devfreq instance.h]hthe devfreq instance.}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj$hMhj$ubah}(h]h ]h"]h$]h&]uh1jhj$ubeh}(h]h ]h"]h$]h&]uh1jhj$hMhj$ubah}(h]h ]h"]h$]h&]uh1jhjx$ubh)}(h**Description**h]jZ)}(hj$h]h Description}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jYhj$ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhjx$ubh)}(hXbHelper function for starting devfreq device load monitoring. By default, deferrable timer is used for load monitoring. But the users can change this behavior using the "timer" type in devfreq_dev_profile. This function will be called by devfreq governor in response to the DEVFREQ_GOV_START event generated while adding a device to the devfreq framework.h]hXfHelper function for starting devfreq device load monitoring. By default, deferrable timer is used for load monitoring. But the users can change this behavior using the “timer” type in devfreq_dev_profile. This function will be called by devfreq governor in response to the DEVFREQ_GOV_START event generated while adding a device to the devfreq framework.}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhjx$ubeh}(h]h ] kernelindentah"]h$]h&]uh1jOhj"hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j!devfreq_monitor_stop (C function)c.devfreq_monitor_stophNtauh1jhj"hhhNhNubj)}(hhh](j)}(h3void devfreq_monitor_stop (struct devfreq *devfreq)h]j)}(h2void devfreq_monitor_stop(struct devfreq *devfreq)h](j)}(hvoidh]hvoid}(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMubj)}(h h]h }(hj,%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%hhhj+%hMubj)}(hdevfreq_monitor_stoph]j)}(hdevfreq_monitor_stoph]hdevfreq_monitor_stop}(hj>%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:%ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj%hhhj+%hMubjK)}(h(struct devfreq *devfreq)h]jQ)}(hstruct devfreq *devfreqh](j)}(hjh]hstruct}(hjZ%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjV%ubj)}(h h]h }(hjg%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjV%ubh)}(hhh]j)}(hdevfreqh]hdevfreq}(hjx%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhju%ubah}(h]h ]h"]h$]h&] refdomainjLreftypej reftargetjz%modnameN classnameNjj)}j]j)}jj@%sbc.devfreq_monitor_stopasbuh1hhjV%ubj)}(h h]h }(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjV%ubj)}(hjh]h*}(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjV%ubj)}(hdevfreqh]hdevfreq}(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjV%ubeh}(h]h ]h"]h$]h&]noemphhhuh1jPhjR%ubah}(h]h ]h"]h$]h&]hhuh1jJhj%hhhj+%hMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj%hhhj+%hMubah}(h]j%ah ](j j!eh"]h$]h&]j%j&)j'huh1jhj+%hMhj%hhubj))}(hhh]h)}(h*Stop load monitoring of a devfreq instanceh]h*Stop load monitoring of a devfreq instance}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj%hhubah}(h]h ]h"]h$]h&]uh1j(hj%hhhj+%hMubeh}(h]h ](jLfunctioneh"]h$]h&]jIjLjJj%jKj%jLjMjNuh1jhhhj"hNhNubjP)}(hX**Parameters** ``struct devfreq *devfreq`` the devfreq instance. **Description** Helper function to stop devfreq device load monitoring. Function to be called from governor in response to DEVFREQ_GOV_STOP event when device is removed from devfreq framework.h](h)}(h**Parameters**h]jZ)}(hj%h]h Parameters}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jYhj%ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj%ubj)}(hhh]j)}(h2``struct devfreq *devfreq`` the devfreq instance. h](j)}(h``struct devfreq *devfreq``h]j@)}(hj&h]hstruct devfreq *devfreq}(hj &hhhNhNubah}(h]h ]h"]h$]h&]uh1j?hj&ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj&ubj)}(hhh]h)}(hthe devfreq instance.h]hthe devfreq instance.}(hj7&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj3&hMhj4&ubah}(h]h ]h"]h$]h&]uh1jhj&ubeh}(h]h ]h"]h$]h&]uh1jhj3&hMhj&ubah}(h]h ]h"]h$]h&]uh1jhj%ubh)}(h**Description**h]jZ)}(hjY&h]h Description}(hj[&hhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjW&ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj%ubh)}(hHelper function to stop devfreq device load monitoring. Function to be called from governor in response to DEVFREQ_GOV_STOP event when device is removed from devfreq framework.h]hHelper function to stop devfreq device load monitoring. Function to be called from governor in response to DEVFREQ_GOV_STOP event when device is removed from devfreq framework.}(hjo&hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj%ubeh}(h]h ] kernelindentah"]h$]h&]uh1jOhj"hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j$devfreq_monitor_suspend (C function)c.devfreq_monitor_suspendhNtauh1jhj"hhhNhNubj)}(hhh](j)}(h6void devfreq_monitor_suspend (struct devfreq *devfreq)h]j)}(h5void devfreq_monitor_suspend(struct devfreq *devfreq)h](j)}(hvoidh]hvoid}(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMubj)}(h h]h }(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&hhhj&hMubj)}(hdevfreq_monitor_suspendh]j)}(hdevfreq_monitor_suspendh]hdevfreq_monitor_suspend}(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj&hhhj&hMubjK)}(h(struct devfreq *devfreq)h]jQ)}(hstruct devfreq *devfreqh](j)}(hjh]hstruct}(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&ubj)}(h h]h }(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&ubh)}(hhh]j)}(hdevfreqh]hdevfreq}(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&ubah}(h]h ]h"]h$]h&] refdomainjLreftypej reftargetj&modnameN classnameNjj)}j]j)}jj&sbc.devfreq_monitor_suspendasbuh1hhj&ubj)}(h h]h }(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&ubj)}(hjh]h*}(hj''hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&ubj)}(hdevfreqh]hdevfreq}(hj4'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&ubeh}(h]h ]h"]h$]h&]noemphhhuh1jPhj&ubah}(h]h ]h"]h$]h&]hhuh1jJhj&hhhj&hMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj&hhhj&hMubah}(h]j&ah ](j j!eh"]h$]h&]j%j&)j'huh1jhj&hMhj&hhubj))}(hhh]h)}(h-Suspend load monitoring of a devfreq instanceh]h-Suspend load monitoring of a devfreq instance}(hj^'hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj['hhubah}(h]h ]h"]h$]h&]uh1j(hj&hhhj&hMubeh}(h]h ](jLfunctioneh"]h$]h&]jIjLjJjv'jKjv'jLjMjNuh1jhhhj"hNhNubjP)}(hX**Parameters** ``struct devfreq *devfreq`` the devfreq instance. **Description** Helper function to suspend devfreq device load monitoring. Function to be called from governor in response to DEVFREQ_GOV_SUSPEND event or when polling interval is set to zero. **Note** Though this function is same as devfreq_monitor_stop(), intentionally kept separate to provide hooks for collecting transition statistics.h](h)}(h**Parameters**h]jZ)}(hj'h]h Parameters}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jYhj~'ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhjz'ubj)}(hhh]j)}(h2``struct devfreq *devfreq`` the devfreq instance. h](j)}(h``struct devfreq *devfreq``h]j@)}(hj'h]hstruct devfreq *devfreq}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1j?hj'ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj'ubj)}(hhh]h)}(hthe devfreq instance.h]hthe devfreq instance.}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj'hMhj'ubah}(h]h ]h"]h$]h&]uh1jhj'ubeh}(h]h ]h"]h$]h&]uh1jhj'hMhj'ubah}(h]h ]h"]h$]h&]uh1jhjz'ubh)}(h**Description**h]jZ)}(hj'h]h Description}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jYhj'ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhjz'ubh)}(hHelper function to suspend devfreq device load monitoring. Function to be called from governor in response to DEVFREQ_GOV_SUSPEND event or when polling interval is set to zero.h]hHelper function to suspend devfreq device load monitoring. Function to be called from governor in response to DEVFREQ_GOV_SUSPEND event or when polling interval is set to zero.}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhjz'ubh)}(h**Note**h]jZ)}(hj(h]hNote}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jYhj'ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chM hjz'ubh)}(hThough this function is same as devfreq_monitor_stop(), intentionally kept separate to provide hooks for collecting transition statistics.h]hThough this function is same as devfreq_monitor_stop(), intentionally kept separate to provide hooks for collecting transition statistics.}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chM!hjz'ubeh}(h]h ] kernelindentah"]h$]h&]uh1jOhj"hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j#devfreq_monitor_resume (C function)c.devfreq_monitor_resumehNtauh1jhj"hhhNhNubj)}(hhh](j)}(h5void devfreq_monitor_resume (struct devfreq *devfreq)h]j)}(h4void devfreq_monitor_resume(struct devfreq *devfreq)h](j)}(hvoidh]hvoid}(hjF(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjB(hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chM9ubj)}(h h]h }(hjU(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjB(hhhjT(hM9ubj)}(hdevfreq_monitor_resumeh]j)}(hdevfreq_monitor_resumeh]hdevfreq_monitor_resume}(hjg(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjc(ubah}(h]h ](jjeh"]h$]h&]hhuh1jhjB(hhhjT(hM9ubjK)}(h(struct devfreq *devfreq)h]jQ)}(hstruct devfreq *devfreqh](j)}(hjh]hstruct}(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(ubj)}(h h]h }(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(ubh)}(hhh]j)}(hdevfreqh]hdevfreq}(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(ubah}(h]h ]h"]h$]h&] refdomainjLreftypej reftargetj(modnameN classnameNjj)}j]j)}jji(sbc.devfreq_monitor_resumeasbuh1hhj(ubj)}(h h]h }(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(ubj)}(hjh]h*}(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(ubj)}(hdevfreqh]hdevfreq}(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(ubeh}(h]h ]h"]h$]h&]noemphhhuh1jPhj{(ubah}(h]h ]h"]h$]h&]hhuh1jJhjB(hhhjT(hM9ubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj>(hhhjT(hM9ubah}(h]j9(ah ](j j!eh"]h$]h&]j%j&)j'huh1jhjT(hM9hj;(hhubj))}(hhh]h)}(h,Resume load monitoring of a devfreq instanceh]h,Resume load monitoring of a devfreq instance}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chM9hj)hhubah}(h]h ]h"]h$]h&]uh1j(hj;(hhhjT(hM9ubeh}(h]h ](jLfunctioneh"]h$]h&]jIjLjJj)jKj)jLjMjNuh1jhhhj"hNhNubjP)}(hX**Parameters** ``struct devfreq *devfreq`` the devfreq instance. **Description** Helper function to resume devfreq device load monitoring. Function to be called from governor in response to DEVFREQ_GOV_RESUME event or when polling interval is set to non-zero.h](h)}(h**Parameters**h]jZ)}(hj()h]h Parameters}(hj*)hhhNhNubah}(h]h ]h"]h$]h&]uh1jYhj&)ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chM=hj")ubj)}(hhh]j)}(h2``struct devfreq *devfreq`` the devfreq instance. h](j)}(h``struct devfreq *devfreq``h]j@)}(hjG)h]hstruct devfreq *devfreq}(hjI)hhhNhNubah}(h]h ]h"]h$]h&]uh1j?hjE)ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chM:hjA)ubj)}(hhh]h)}(hthe devfreq instance.h]hthe devfreq instance.}(hj`)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj\)hM:hj])ubah}(h]h ]h"]h$]h&]uh1jhjA)ubeh}(h]h ]h"]h$]h&]uh1jhj\)hM:hj>)ubah}(h]h ]h"]h$]h&]uh1jhj")ubh)}(h**Description**h]jZ)}(hj)h]h Description}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jYhj)ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chM<hj")ubh)}(hHelper function to resume devfreq device load monitoring. Function to be called from governor in response to DEVFREQ_GOV_RESUME event or when polling interval is set to non-zero.h]hHelper function to resume devfreq device load monitoring. Function to be called from governor in response to DEVFREQ_GOV_RESUME event or when polling interval is set to non-zero.}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chM;hj")ubeh}(h]h ] kernelindentah"]h$]h&]uh1jOhj"hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j$devfreq_update_interval (C function)c.devfreq_update_intervalhNtauh1jhj"hhhNhNubj)}(hhh](j)}(hKvoid devfreq_update_interval (struct devfreq *devfreq, unsigned int *delay)h]j)}(hJvoid devfreq_update_interval(struct devfreq *devfreq, unsigned int *delay)h](j)}(hvoidh]hvoid}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chM_ubj)}(h h]h }(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)hhhj)hM_ubj)}(hdevfreq_update_intervalh]j)}(hdevfreq_update_intervalh]hdevfreq_update_interval}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj)hhhj)hM_ubjK)}(h.(struct devfreq *devfreq, unsigned int *delay)h](jQ)}(hstruct devfreq *devfreqh](j)}(hjh]hstruct}(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*ubj)}(h h]h }(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*ubh)}(hhh]j)}(hdevfreqh]hdevfreq}(hj"*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&] refdomainjLreftypej reftargetj$*modnameN classnameNjj)}j]j)}jj)sbc.devfreq_update_intervalasbuh1hhj*ubj)}(h h]h }(hjB*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*ubj)}(hjh]h*}(hjP*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*ubj)}(hdevfreqh]hdevfreq}(hj]*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*ubeh}(h]h ]h"]h$]h&]noemphhhuh1jPhj)ubjQ)}(hunsigned int *delayh](j)}(hunsignedh]hunsigned}(hjv*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjr*ubj)}(h h]h }(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjr*ubj)}(hinth]hint}(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjr*ubj)}(h h]h }(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjr*ubj)}(hjh]h*}(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjr*ubj)}(hdelayh]hdelay}(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjr*ubeh}(h]h ]h"]h$]h&]noemphhhuh1jPhj)ubeh}(h]h ]h"]h$]h&]hhuh1jJhj)hhhj)hM_ubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj)hhhj)hM_ubah}(h]j)ah ](j j!eh"]h$]h&]j%j&)j'huh1jhj)hM_hj)hhubj))}(hhh]h)}(h)Update device devfreq monitoring intervalh]h)Update device devfreq monitoring interval}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chM_hj*hhubah}(h]h ]h"]h$]h&]uh1j(hj)hhhj)hM_ubeh}(h]h ](jLfunctioneh"]h$]h&]jIjLjJj*jKj*jLjMjNuh1jhhhj"hNhNubjP)}(hX#**Parameters** ``struct devfreq *devfreq`` the devfreq instance. ``unsigned int *delay`` new polling interval to be set. **Description** Helper function to set new load monitoring polling interval. Function to be called from governor in response to DEVFREQ_GOV_UPDATE_INTERVAL event.h](h)}(h**Parameters**h]jZ)}(hj+h]h Parameters}(hj +hhhNhNubah}(h]h ]h"]h$]h&]uh1jYhj+ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMchj+ubj)}(hhh](j)}(h2``struct devfreq *devfreq`` the devfreq instance. h](j)}(h``struct devfreq *devfreq``h]j@)}(hj&+h]hstruct devfreq *devfreq}(hj(+hhhNhNubah}(h]h ]h"]h$]h&]uh1j?hj$+ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chM`hj +ubj)}(hhh]h)}(hthe devfreq instance.h]hthe devfreq instance.}(hj?+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj;+hM`hj<+ubah}(h]h ]h"]h$]h&]uh1jhj +ubeh}(h]h ]h"]h$]h&]uh1jhj;+hM`hj+ubj)}(h8``unsigned int *delay`` new polling interval to be set. h](j)}(h``unsigned int *delay``h]j@)}(hj_+h]hunsigned int *delay}(hja+hhhNhNubah}(h]h ]h"]h$]h&]uh1j?hj]+ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMahjY+ubj)}(hhh]h)}(hnew polling interval to be set.h]hnew polling interval to be set.}(hjx+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjt+hMahju+ubah}(h]h ]h"]h$]h&]uh1jhjY+ubeh}(h]h ]h"]h$]h&]uh1jhjt+hMahj+ubeh}(h]h ]h"]h$]h&]uh1jhj+ubh)}(h**Description**h]jZ)}(hj+h]h Description}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jYhj+ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMchj+ubh)}(hHelper function to set new load monitoring polling interval. Function to be called from governor in response to DEVFREQ_GOV_UPDATE_INTERVAL event.h]hHelper function to set new load monitoring polling interval. Function to be called from governor in response to DEVFREQ_GOV_UPDATE_INTERVAL event.}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMbhj+ubeh}(h]h ] kernelindentah"]h$]h&]uh1jOhj"hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jdevfreq_add_device (C function)c.devfreq_add_devicehNtauh1jhj"hhhNhNubj)}(hhh](j)}(hstruct devfreq * devfreq_add_device (struct device *dev, struct devfreq_dev_profile *profile, const char *governor_name, void *data)h]j)}(hstruct devfreq *devfreq_add_device(struct device *dev, struct devfreq_dev_profile *profile, const char *governor_name, void *data)h](j)}(hjh]hstruct}(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMubj)}(h h]h }(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+hhhj+hMubh)}(hhh]j)}(hdevfreqh]hdevfreq}(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+ubah}(h]h ]h"]h$]h&] refdomainjLreftypej reftargetj,modnameN classnameNjj)}j]j)}jdevfreq_add_devicesbc.devfreq_add_deviceasbuh1hhj+hhhj+hMubj)}(h h]h }(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+hhhj+hMubj)}(hjh]h*}(hj-,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+hhhj+hMubj)}(hdevfreq_add_deviceh]j)}(hj,h]hdevfreq_add_device}(hj>,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:,ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj+hhhj+hMubjK)}(h`(struct device *dev, struct devfreq_dev_profile *profile, const char *governor_name, void *data)h](jQ)}(hstruct device *devh](j)}(hjh]hstruct}(hjY,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjU,ubj)}(h h]h }(hjf,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjU,ubh)}(hhh]j)}(hdeviceh]hdevice}(hjw,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjt,ubah}(h]h ]h"]h$]h&] refdomainjLreftypej reftargetjy,modnameN classnameNjj)}j]j,c.devfreq_add_deviceasbuh1hhjU,ubj)}(h h]h }(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjU,ubj)}(hjh]h*}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjU,ubj)}(hdevh]hdev}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjU,ubeh}(h]h ]h"]h$]h&]noemphhhuh1jPhjQ,ubjQ)}(h#struct devfreq_dev_profile *profileh](j)}(hjh]hstruct}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubj)}(h h]h }(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubh)}(hhh]j)}(hdevfreq_dev_profileh]hdevfreq_dev_profile}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&] refdomainjLreftypej reftargetj,modnameN classnameNjj)}j]j,c.devfreq_add_deviceasbuh1hhj,ubj)}(h h]h }(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubj)}(hjh]h*}(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubj)}(hprofileh]hprofile}(hj -hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubeh}(h]h ]h"]h$]h&]noemphhhuh1jPhjQ,ubjQ)}(hconst char *governor_nameh](j)}(hconsth]hconst}(hj9-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5-ubj)}(h h]h }(hjG-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5-ubj)}(hcharh]hchar}(hjU-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5-ubj)}(h h]h }(hjc-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5-ubj)}(hjh]h*}(hjq-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5-ubj)}(h governor_nameh]h governor_name}(hj~-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5-ubeh}(h]h ]h"]h$]h&]noemphhhuh1jPhjQ,ubjQ)}(h void *datah](j)}(hvoidh]hvoid}(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-ubj)}(h h]h }(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-ubj)}(hjh]h*}(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-ubj)}(hdatah]hdata}(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-ubeh}(h]h ]h"]h$]h&]noemphhhuh1jPhjQ,ubeh}(h]h ]h"]h$]h&]hhuh1jJhj+hhhj+hMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj+hhhj+hMubah}(h]j+ah ](j j!eh"]h$]h&]j%j&)j'huh1jhj+hMhj+hhubj))}(hhh]h)}(h!Add devfreq feature to the deviceh]h!Add devfreq feature to the device}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj-hhubah}(h]h ]h"]h$]h&]uh1j(hj+hhhj+hMubeh}(h]h ](jLfunctioneh"]h$]h&]jIjLjJj.jKj.jLjMjNuh1jhhhj"hNhNubjP)}(hX:**Parameters** ``struct device *dev`` the device to add devfreq feature. ``struct devfreq_dev_profile *profile`` device-specific profile to run devfreq. ``const char *governor_name`` name of the policy to choose frequency. ``void *data`` devfreq driver pass to governors, governor should not change it.h](h)}(h**Parameters**h]jZ)}(hj .h]h Parameters}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jYhj .ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj.ubj)}(hhh](j)}(h:``struct device *dev`` the device to add devfreq feature. h](j)}(h``struct device *dev``h]j@)}(hj+.h]hstruct device *dev}(hj-.hhhNhNubah}(h]h ]h"]h$]h&]uh1j?hj).ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj%.ubj)}(hhh]h)}(h"the device to add devfreq feature.h]h"the device to add devfreq feature.}(hjD.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj@.hMhjA.ubah}(h]h ]h"]h$]h&]uh1jhj%.ubeh}(h]h ]h"]h$]h&]uh1jhj@.hMhj".ubj)}(hP``struct devfreq_dev_profile *profile`` device-specific profile to run devfreq. h](j)}(h'``struct devfreq_dev_profile *profile``h]j@)}(hjd.h]h#struct devfreq_dev_profile *profile}(hjf.hhhNhNubah}(h]h ]h"]h$]h&]uh1j?hjb.ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj^.ubj)}(hhh]h)}(h'device-specific profile to run devfreq.h]h'device-specific profile to run devfreq.}(hj}.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjy.hMhjz.ubah}(h]h ]h"]h$]h&]uh1jhj^.ubeh}(h]h ]h"]h$]h&]uh1jhjy.hMhj".ubj)}(hF``const char *governor_name`` name of the policy to choose frequency. h](j)}(h``const char *governor_name``h]j@)}(hj.h]hconst char *governor_name}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1j?hj.ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj.ubj)}(hhh]h)}(h'name of the policy to choose frequency.h]h'name of the policy to choose frequency.}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj.hMhj.ubah}(h]h ]h"]h$]h&]uh1jhj.ubeh}(h]h ]h"]h$]h&]uh1jhj.hMhj".ubj)}(hO``void *data`` devfreq driver pass to governors, governor should not change it.h](j)}(h``void *data``h]j@)}(hj.h]h void *data}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1j?hj.ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj.ubj)}(hhh]h)}(h@devfreq driver pass to governors, governor should not change it.h]h@devfreq driver pass to governors, governor should not change it.}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj.ubah}(h]h ]h"]h$]h&]uh1jhj.ubeh}(h]h ]h"]h$]h&]uh1jhj.hMhj".ubeh}(h]h ]h"]h$]h&]uh1jhj.ubeh}(h]h ] kernelindentah"]h$]h&]uh1jOhj"hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"devfreq_remove_device (C function)c.devfreq_remove_devicehNtauh1jhj"hhhNhNubj)}(hhh](j)}(h3int devfreq_remove_device (struct devfreq *devfreq)h]j)}(h2int devfreq_remove_device(struct devfreq *devfreq)h](j)}(hinth]hint}(hj0/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,/hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMubj)}(h h]h }(hj?/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,/hhhj>/hMubj)}(hdevfreq_remove_deviceh]j)}(hdevfreq_remove_deviceh]hdevfreq_remove_device}(hjQ/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjM/ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj,/hhhj>/hMubjK)}(h(struct devfreq *devfreq)h]jQ)}(hstruct devfreq *devfreqh](j)}(hjh]hstruct}(hjm/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhji/ubj)}(h h]h }(hjz/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhji/ubh)}(hhh]j)}(hdevfreqh]hdevfreq}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubah}(h]h ]h"]h$]h&] refdomainjLreftypej reftargetj/modnameN classnameNjj)}j]j)}jjS/sbc.devfreq_remove_deviceasbuh1hhji/ubj)}(h h]h }(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhji/ubj)}(hjh]h*}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhji/ubj)}(hdevfreqh]hdevfreq}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhji/ubeh}(h]h ]h"]h$]h&]noemphhhuh1jPhje/ubah}(h]h ]h"]h$]h&]hhuh1jJhj,/hhhj>/hMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj(/hhhj>/hMubah}(h]j#/ah ](j j!eh"]h$]h&]j%j&)j'huh1jhj>/hMhj%/hhubj))}(hhh]h)}(h%Remove devfreq feature from a device.h]h%Remove devfreq feature from a device.}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj/hhubah}(h]h ]h"]h$]h&]uh1j(hj%/hhhj>/hMubeh}(h]h ](jLfunctioneh"]h$]h&]jIjLjJj0jKj0jLjMjNuh1jhhhj"hNhNubjP)}(h**Parameters** ``struct devfreq *devfreq`` the devfreq instance to be removed **Description** The opposite of devfreq_add_device().h](h)}(h**Parameters**h]jZ)}(hj0h]h Parameters}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jYhj0ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj 0ubj)}(hhh]j)}(h?``struct devfreq *devfreq`` the devfreq instance to be removed h](j)}(h``struct devfreq *devfreq``h]j@)}(hj10h]hstruct devfreq *devfreq}(hj30hhhNhNubah}(h]h ]h"]h$]h&]uh1j?hj/0ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj+0ubj)}(hhh]h)}(h"the devfreq instance to be removedh]h"the devfreq instance to be removed}(hjJ0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjF0hMhjG0ubah}(h]h ]h"]h$]h&]uh1jhj+0ubeh}(h]h ]h"]h$]h&]uh1jhjF0hMhj(0ubah}(h]h ]h"]h$]h&]uh1jhj 0ubh)}(h**Description**h]jZ)}(hjl0h]h Description}(hjn0hhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjj0ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj 0ubh)}(h%The opposite of devfreq_add_device().h]h%The opposite of devfreq_add_device().}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj 0ubeh}(h]h ] kernelindentah"]h$]h&]uh1jOhj"hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j$devm_devfreq_add_device (C function)c.devm_devfreq_add_devicehNtauh1jhj"hhhNhNubj)}(hhh](j)}(hstruct devfreq * devm_devfreq_add_device (struct device *dev, struct devfreq_dev_profile *profile, const char *governor_name, void *data)h]j)}(hstruct devfreq *devm_devfreq_add_device(struct device *dev, struct devfreq_dev_profile *profile, const char *governor_name, void *data)h](j)}(hjh]hstruct}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMubj)}(h h]h }(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0hhhj0hMubh)}(hhh]j)}(hdevfreqh]hdevfreq}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubah}(h]h ]h"]h$]h&] refdomainjLreftypej reftargetj0modnameN classnameNjj)}j]j)}jdevm_devfreq_add_devicesbc.devm_devfreq_add_deviceasbuh1hhj0hhhj0hMubj)}(h h]h }(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0hhhj0hMubj)}(hjh]h*}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0hhhj0hMubj)}(hdevm_devfreq_add_deviceh]j)}(hj0h]hdevm_devfreq_add_device}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj 1ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj0hhhj0hMubjK)}(h`(struct device *dev, struct devfreq_dev_profile *profile, const char *governor_name, void *data)h](jQ)}(hstruct device *devh](j)}(hjh]hstruct}(hj+1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'1ubj)}(h h]h }(hj81hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'1ubh)}(hhh]j)}(hdeviceh]hdevice}(hjI1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjF1ubah}(h]h ]h"]h$]h&] refdomainjLreftypej reftargetjK1modnameN classnameNjj)}j]j0c.devm_devfreq_add_deviceasbuh1hhj'1ubj)}(h h]h }(hjg1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'1ubj)}(hjh]h*}(hju1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'1ubj)}(hdevh]hdev}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'1ubeh}(h]h ]h"]h$]h&]noemphhhuh1jPhj#1ubjQ)}(h#struct devfreq_dev_profile *profileh](j)}(hjh]hstruct}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1ubj)}(h h]h }(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1ubh)}(hhh]j)}(hdevfreq_dev_profileh]hdevfreq_dev_profile}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1ubah}(h]h ]h"]h$]h&] refdomainjLreftypej reftargetj1modnameN classnameNjj)}j]j0c.devm_devfreq_add_deviceasbuh1hhj1ubj)}(h h]h }(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1ubj)}(hjh]h*}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1ubj)}(hprofileh]hprofile}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1ubeh}(h]h ]h"]h$]h&]noemphhhuh1jPhj#1ubjQ)}(hconst char *governor_nameh](j)}(hj;-h]hconst}(hj 2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2ubj)}(h h]h }(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2ubj)}(hcharh]hchar}(hj&2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2ubj)}(h h]h }(hj42hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2ubj)}(hjh]h*}(hjB2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2ubj)}(h governor_nameh]h governor_name}(hjO2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2ubeh}(h]h ]h"]h$]h&]noemphhhuh1jPhj#1ubjQ)}(h void *datah](j)}(hvoidh]hvoid}(hjh2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjd2ubj)}(h h]h }(hjv2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjd2ubj)}(hjh]h*}(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjd2ubj)}(hdatah]hdata}(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjd2ubeh}(h]h ]h"]h$]h&]noemphhhuh1jPhj#1ubeh}(h]h ]h"]h$]h&]hhuh1jJhj0hhhj0hMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj0hhhj0hMubah}(h]j0ah ](j j!eh"]h$]h&]j%j&)j'huh1jhj0hMhj0hhubj))}(hhh]h)}(h%Resource-managed devfreq_add_device()h]h%Resource-managed devfreq_add_device()}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj2hhubah}(h]h ]h"]h$]h&]uh1j(hj0hhhj0hMubeh}(h]h ](jLfunctioneh"]h$]h&]jIjLjJj2jKj2jLjMjNuh1jhhhj"hNhNubjP)}(hX**Parameters** ``struct device *dev`` the device to add devfreq feature. ``struct devfreq_dev_profile *profile`` device-specific profile to run devfreq. ``const char *governor_name`` name of the policy to choose frequency. ``void *data`` devfreq driver pass to governors, governor should not change it. **Description** This function manages automatically the memory of devfreq device using device resource management and simplify the free operation for memory of devfreq device.h](h)}(h**Parameters**h]jZ)}(hj2h]h Parameters}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jYhj2ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj2ubj)}(hhh](j)}(h:``struct device *dev`` the device to add devfreq feature. h](j)}(h``struct device *dev``h]j@)}(hj2h]hstruct device *dev}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1j?hj2ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj2ubj)}(hhh]h)}(h"the device to add devfreq feature.h]h"the device to add devfreq feature.}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj3hMhj3ubah}(h]h ]h"]h$]h&]uh1jhj2ubeh}(h]h ]h"]h$]h&]uh1jhj3hMhj2ubj)}(hP``struct devfreq_dev_profile *profile`` device-specific profile to run devfreq. h](j)}(h'``struct devfreq_dev_profile *profile``h]j@)}(hj53h]h#struct devfreq_dev_profile *profile}(hj73hhhNhNubah}(h]h ]h"]h$]h&]uh1j?hj33ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj/3ubj)}(hhh]h)}(h'device-specific profile to run devfreq.h]h'device-specific profile to run devfreq.}(hjN3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjJ3hMhjK3ubah}(h]h ]h"]h$]h&]uh1jhj/3ubeh}(h]h ]h"]h$]h&]uh1jhjJ3hMhj2ubj)}(hF``const char *governor_name`` name of the policy to choose frequency. h](j)}(h``const char *governor_name``h]j@)}(hjn3h]hconst char *governor_name}(hjp3hhhNhNubah}(h]h ]h"]h$]h&]uh1j?hjl3ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhjh3ubj)}(hhh]h)}(h'name of the policy to choose frequency.h]h'name of the policy to choose frequency.}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj3hMhj3ubah}(h]h ]h"]h$]h&]uh1jhjh3ubeh}(h]h ]h"]h$]h&]uh1jhj3hMhj2ubj)}(hP``void *data`` devfreq driver pass to governors, governor should not change it. h](j)}(h``void *data``h]j@)}(hj3h]h void *data}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1j?hj3ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj3ubj)}(hhh]h)}(h@devfreq driver pass to governors, governor should not change it.h]h@devfreq driver pass to governors, governor should not change it.}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj3hMhj3ubah}(h]h ]h"]h$]h&]uh1jhj3ubeh}(h]h ]h"]h$]h&]uh1jhj3hMhj2ubeh}(h]h ]h"]h$]h&]uh1jhj2ubh)}(h**Description**h]jZ)}(hj3h]h Description}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jYhj3ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj2ubh)}(hThis function manages automatically the memory of devfreq device using device resource management and simplify the free operation for memory of devfreq device.h]hThis function manages automatically the memory of devfreq device using device resource management and simplify the free operation for memory of devfreq device.}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj2ubeh}(h]h ] kernelindentah"]h$]h&]uh1jOhj"hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j'devm_devfreq_remove_device (C function)c.devm_devfreq_remove_devicehNtauh1jhj"hhhNhNubj)}(hhh](j)}(hMvoid devm_devfreq_remove_device (struct device *dev, struct devfreq *devfreq)h]j)}(hLvoid devm_devfreq_remove_device(struct device *dev, struct devfreq *devfreq)h](j)}(hvoidh]hvoid}(hj'4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#4hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhubj)}(h h]h }(hj64hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#4hhhj54hMhubj)}(hdevm_devfreq_remove_deviceh]j)}(hdevm_devfreq_remove_deviceh]hdevm_devfreq_remove_device}(hjH4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjD4ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj#4hhhj54hMhubjK)}(h-(struct device *dev, struct devfreq *devfreq)h](jQ)}(hstruct device *devh](j)}(hjh]hstruct}(hjd4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`4ubj)}(h h]h }(hjq4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`4ubh)}(hhh]j)}(hdeviceh]hdevice}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&] refdomainjLreftypej reftargetj4modnameN classnameNjj)}j]j)}jjJ4sbc.devm_devfreq_remove_deviceasbuh1hhj`4ubj)}(h h]h }(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`4ubj)}(hjh]h*}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`4ubj)}(hdevh]hdev}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`4ubeh}(h]h ]h"]h$]h&]noemphhhuh1jPhj\4ubjQ)}(hstruct devfreq *devfreqh](j)}(hjh]hstruct}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4ubj)}(h h]h }(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4ubh)}(hhh]j)}(hdevfreqh]hdevfreq}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&] refdomainjLreftypej reftargetj4modnameN classnameNjj)}j]j4c.devm_devfreq_remove_deviceasbuh1hhj4ubj)}(h h]h }(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4ubj)}(hjh]h*}(hj 5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4ubj)}(hdevfreqh]hdevfreq}(hj-5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4ubeh}(h]h ]h"]h$]h&]noemphhhuh1jPhj\4ubeh}(h]h ]h"]h$]h&]hhuh1jJhj#4hhhj54hMhubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj4hhhj54hMhubah}(h]j4ah ](j j!eh"]h$]h&]j%j&)j'huh1jhj54hMhhj4hhubj))}(hhh]h)}(h(Resource-managed devfreq_remove_device()h]h(Resource-managed devfreq_remove_device()}(hjW5hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhhjT5hhubah}(h]h ]h"]h$]h&]uh1j(hj4hhhj54hMhubeh}(h]h ](jLfunctioneh"]h$]h&]jIjLjJjo5jKjo5jLjMjNuh1jhhhj"hNhNubjP)}(h**Parameters** ``struct device *dev`` the device from which to remove devfreq feature. ``struct devfreq *devfreq`` the devfreq instance to be removedh](h)}(h**Parameters**h]jZ)}(hjy5h]h Parameters}(hj{5hhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjw5ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMlhjs5ubj)}(hhh](j)}(hH``struct device *dev`` the device from which to remove devfreq feature. h](j)}(h``struct device *dev``h]j@)}(hj5h]hstruct device *dev}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1j?hj5ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMihj5ubj)}(hhh]h)}(h0the device from which to remove devfreq feature.h]h0the device from which to remove devfreq feature.}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj5hMihj5ubah}(h]h ]h"]h$]h&]uh1jhj5ubeh}(h]h ]h"]h$]h&]uh1jhj5hMihj5ubj)}(h>``struct devfreq *devfreq`` the devfreq instance to be removedh](j)}(h``struct devfreq *devfreq``h]j@)}(hj5h]hstruct devfreq *devfreq}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1j?hj5ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMkhj5ubj)}(hhh]h)}(h"the devfreq instance to be removedh]h"the devfreq instance to be removed}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMjhj5ubah}(h]h ]h"]h$]h&]uh1jhj5ubeh}(h]h ]h"]h$]h&]uh1jhj5hMkhj5ubeh}(h]h ]h"]h$]h&]uh1jhjs5ubeh}(h]h ] kernelindentah"]h$]h&]uh1jOhj"hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j#devfreq_suspend_device (C function)c.devfreq_suspend_devicehNtauh1jhj"hhhNhNubj)}(hhh](j)}(h4int devfreq_suspend_device (struct devfreq *devfreq)h]j)}(h3int devfreq_suspend_device(struct devfreq *devfreq)h](j)}(hinth]hint}(hj+6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'6hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMtubj)}(h h]h }(hj:6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'6hhhj96hMtubj)}(hdevfreq_suspend_deviceh]j)}(hdevfreq_suspend_deviceh]hdevfreq_suspend_device}(hjL6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjH6ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj'6hhhj96hMtubjK)}(h(struct devfreq *devfreq)h]jQ)}(hstruct devfreq *devfreqh](j)}(hjh]hstruct}(hjh6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjd6ubj)}(h h]h }(hju6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjd6ubh)}(hhh]j)}(hdevfreqh]hdevfreq}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubah}(h]h ]h"]h$]h&] refdomainjLreftypej reftargetj6modnameN classnameNjj)}j]j)}jjN6sbc.devfreq_suspend_deviceasbuh1hhjd6ubj)}(h h]h }(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjd6ubj)}(hjh]h*}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjd6ubj)}(hdevfreqh]hdevfreq}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjd6ubeh}(h]h ]h"]h$]h&]noemphhhuh1jPhj`6ubah}(h]h ]h"]h$]h&]hhuh1jJhj'6hhhj96hMtubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj#6hhhj96hMtubah}(h]j6ah ](j j!eh"]h$]h&]j%j&)j'huh1jhj96hMthj 6hhubj))}(hhh]h)}(hSuspend devfreq of a device.h]hSuspend devfreq of a device.}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMthj6hhubah}(h]h ]h"]h$]h&]uh1j(hj 6hhhj96hMtubeh}(h]h ](jLfunctioneh"]h$]h&]jIjLjJj7jKj7jLjMjNuh1jhhhj"hNhNubjP)}(h**Parameters** ``struct devfreq *devfreq`` the devfreq instance to be suspended **Description** This function is intended to be called by the pm callbacks (e.g., runtime_suspend, suspend) of the device driver that holds the devfreq.h](h)}(h**Parameters**h]jZ)}(hj 7h]h Parameters}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jYhj 7ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMxhj7ubj)}(hhh]j)}(hA``struct devfreq *devfreq`` the devfreq instance to be suspended h](j)}(h``struct devfreq *devfreq``h]j@)}(hj,7h]hstruct devfreq *devfreq}(hj.7hhhNhNubah}(h]h ]h"]h$]h&]uh1j?hj*7ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMuhj&7ubj)}(hhh]h)}(h$the devfreq instance to be suspendedh]h$the devfreq instance to be suspended}(hjE7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjA7hMuhjB7ubah}(h]h ]h"]h$]h&]uh1jhj&7ubeh}(h]h ]h"]h$]h&]uh1jhjA7hMuhj#7ubah}(h]h ]h"]h$]h&]uh1jhj7ubh)}(h**Description**h]jZ)}(hjg7h]h Description}(hji7hhhNhNubah}(h]h ]h"]h$]h&]uh1jYhje7ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMwhj7ubh)}(hThis function is intended to be called by the pm callbacks (e.g., runtime_suspend, suspend) of the device driver that holds the devfreq.h]hThis function is intended to be called by the pm callbacks (e.g., runtime_suspend, suspend) of the device driver that holds the devfreq.}(hj}7hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMvhj7ubeh}(h]h ] kernelindentah"]h$]h&]uh1jOhj"hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"devfreq_resume_device (C function)c.devfreq_resume_devicehNtauh1jhj"hhhNhNubj)}(hhh](j)}(h3int devfreq_resume_device (struct devfreq *devfreq)h]j)}(h2int devfreq_resume_device(struct devfreq *devfreq)h](j)}(hinth]hint}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMubj)}(h h]h }(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7hhhj7hMubj)}(hdevfreq_resume_deviceh]j)}(hdevfreq_resume_deviceh]hdevfreq_resume_device}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj7hhhj7hMubjK)}(h(struct devfreq *devfreq)h]jQ)}(hstruct devfreq *devfreqh](j)}(hjh]hstruct}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubj)}(h h]h }(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubh)}(hhh]j)}(hdevfreqh]hdevfreq}(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&] refdomainjLreftypej reftargetj 8modnameN classnameNjj)}j]j)}jj7sbc.devfreq_resume_deviceasbuh1hhj7ubj)}(h h]h }(hj'8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubj)}(hjh]h*}(hj58hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubj)}(hdevfreqh]hdevfreq}(hjB8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubeh}(h]h ]h"]h$]h&]noemphhhuh1jPhj7ubah}(h]h ]h"]h$]h&]hhuh1jJhj7hhhj7hMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj7hhhj7hMubah}(h]j7ah ](j j!eh"]h$]h&]j%j&)j'huh1jhj7hMhj7hhubj))}(hhh]h)}(hResume devfreq of a device.h]hResume devfreq of a device.}(hjl8hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhji8hhubah}(h]h ]h"]h$]h&]uh1j(hj7hhhj7hMubeh}(h]h ](jLfunctioneh"]h$]h&]jIjLjJj8jKj8jLjMjNuh1jhhhj"hNhNubjP)}(h**Parameters** ``struct devfreq *devfreq`` the devfreq instance to be resumed **Description** This function is intended to be called by the pm callbacks (e.g., runtime_resume, resume) of the device driver that holds the devfreq.h](h)}(h**Parameters**h]jZ)}(hj8h]h Parameters}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jYhj8ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj8ubj)}(hhh]j)}(h?``struct devfreq *devfreq`` the devfreq instance to be resumed h](j)}(h``struct devfreq *devfreq``h]j@)}(hj8h]hstruct devfreq *devfreq}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1j?hj8ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj8ubj)}(hhh]h)}(h"the devfreq instance to be resumedh]h"the devfreq instance to be resumed}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj8hMhj8ubah}(h]h ]h"]h$]h&]uh1jhj8ubeh}(h]h ]h"]h$]h&]uh1jhj8hMhj8ubah}(h]h ]h"]h$]h&]uh1jhj8ubh)}(h**Description**h]jZ)}(hj8h]h Description}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jYhj8ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj8ubh)}(hThis function is intended to be called by the pm callbacks (e.g., runtime_resume, resume) of the device driver that holds the devfreq.h]hThis function is intended to be called by the pm callbacks (e.g., runtime_resume, resume) of the device driver that holds the devfreq.}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj8ubeh}(h]h ] kernelindentah"]h$]h&]uh1jOhj"hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j!devfreq_add_governor (C function)c.devfreq_add_governorhNtauh1jhj"hhhNhNubj)}(hhh](j)}(hint devfreq_remove_governor(struct devfreq_governor *governor)h](j)}(hinth]hint}(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMEubj)}(h h]h }(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<hhhj<hMEubj)}(hdevfreq_remove_governorh]j)}(hdevfreq_remove_governorh]hdevfreq_remove_governor}(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj<hhhj<hMEubjK)}(h#(struct devfreq_governor *governor)h]jQ)}(h!struct devfreq_governor *governorh](j)}(hjh]hstruct}(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<ubj)}(h h]h }(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<ubh)}(hhh]j)}(hdevfreq_governorh]hdevfreq_governor}(hj =hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj =ubah}(h]h ]h"]h$]h&] refdomainjLreftypej reftargetj=modnameN classnameNjj)}j]j)}jj<sbc.devfreq_remove_governorasbuh1hhj<ubj)}(h h]h }(hj-=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<ubj)}(hjh]h*}(hj;=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<ubj)}(hgovernorh]hgovernor}(hjH=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<ubeh}(h]h ]h"]h$]h&]noemphhhuh1jPhj<ubah}(h]h ]h"]h$]h&]hhuh1jJhj<hhhj<hMEubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj<hhhj<hMEubah}(h]j<ah ](j j!eh"]h$]h&]j%j&)j'huh1jhj<hMEhj<hhubj))}(hhh]h)}(h%Remove devfreq feature from a device.h]h%Remove devfreq feature from a device.}(hjr=hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMEhjo=hhubah}(h]h ]h"]h$]h&]uh1j(hj<hhhj<hMEubeh}(h]h ](jLfunctioneh"]h$]h&]jIjLjJj=jKj=jLjMjNuh1jhhhj"hNhNubjP)}(hZ**Parameters** ``struct devfreq_governor *governor`` the devfreq governor to be removedh](h)}(h**Parameters**h]jZ)}(hj=h]h Parameters}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jYhj=ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMIhj=ubj)}(hhh]j)}(hH``struct devfreq_governor *governor`` the devfreq governor to be removedh](j)}(h%``struct devfreq_governor *governor``h]j@)}(hj=h]h!struct devfreq_governor *governor}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1j?hj=ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMKhj=ubj)}(hhh]h)}(h"the devfreq governor to be removedh]h"the devfreq governor to be removed}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMFhj=ubah}(h]h ]h"]h$]h&]uh1jhj=ubeh}(h]h ]h"]h$]h&]uh1jhj=hMKhj=ubah}(h]h ]h"]h$]h&]uh1jhj=ubeh}(h]h ] kernelindentah"]h$]h&]uh1jOhj"hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j$devfreq_recommended_opp (C function)c.devfreq_recommended_opphNtauh1jhj"hhhNhNubj)}(hhh](j)}(h`struct dev_pm_opp * devfreq_recommended_opp (struct device *dev, unsigned long *freq, u32 flags)h]j)}(h^struct dev_pm_opp *devfreq_recommended_opp(struct device *dev, unsigned long *freq, u32 flags)h](j)}(hjh]hstruct}(hj >hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj >hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMubj)}(h h]h }(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj >hhhj>hMubh)}(hhh]j)}(h dev_pm_opph]h dev_pm_opp}(hj,>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)>ubah}(h]h ]h"]h$]h&] refdomainjLreftypej reftargetj.>modnameN classnameNjj)}j]j)}jdevfreq_recommended_oppsbc.devfreq_recommended_oppasbuh1hhj >hhhj>hMubj)}(h h]h }(hjM>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj >hhhj>hMubj)}(hjh]h*}(hj[>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj >hhhj>hMubj)}(hdevfreq_recommended_opph]j)}(hjJ>h]hdevfreq_recommended_opp}(hjl>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjh>ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj >hhhj>hMubjK)}(h4(struct device *dev, unsigned long *freq, u32 flags)h](jQ)}(hstruct device *devh](j)}(hjh]hstruct}(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubj)}(h h]h }(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubh)}(hhh]j)}(hdeviceh]hdevice}(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubah}(h]h ]h"]h$]h&] refdomainjLreftypej reftargetj>modnameN classnameNjj)}j]jH>c.devfreq_recommended_oppasbuh1hhj>ubj)}(h h]h }(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubj)}(hjh]h*}(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubj)}(hdevh]hdev}(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubeh}(h]h ]h"]h$]h&]noemphhhuh1jPhj>ubjQ)}(hunsigned long *freqh](j)}(hunsignedh]hunsigned}(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubj)}(h h]h }(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubj)}(hlongh]hlong}(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubj)}(h h]h }(hj!?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubj)}(hjh]h*}(hj/?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubj)}(hfreqh]hfreq}(hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jPhj>ubjQ)}(h u32 flagsh](h)}(hhh]j)}(hu32h]hu32}(hjX?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjU?ubah}(h]h ]h"]h$]h&] refdomainjLreftypej reftargetjZ?modnameN classnameNjj)}j]jH>c.devfreq_recommended_oppasbuh1hhjQ?ubj)}(h h]h }(hjv?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQ?ubj)}(hflagsh]hflags}(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQ?ubeh}(h]h ]h"]h$]h&]noemphhhuh1jPhj>ubeh}(h]h ]h"]h$]h&]hhuh1jJhj >hhhj>hMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj>hhhj>hMubah}(h]j>ah ](j j!eh"]h$]h&]j%j&)j'huh1jhj>hMhj>hhubj))}(hhh]h)}(hNHelper function to get proper OPP for the freq value given to target callback.h]hNHelper function to get proper OPP for the freq value given to target callback.}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj?hhubah}(h]h ]h"]h$]h&]uh1j(hj>hhhj>hMubeh}(h]h ](jLfunctioneh"]h$]h&]jIjLjJj?jKj?jLjMjNuh1jhhhj"hNhNubjP)}(hX1**Parameters** ``struct device *dev`` The devfreq user device. (parent of devfreq) ``unsigned long *freq`` The frequency given to target function ``u32 flags`` Flags handed from devfreq framework. **Description** The callers are required to call dev_pm_opp_put() for the returned OPP after use.h](h)}(h**Parameters**h]jZ)}(hj?h]h Parameters}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jYhj?ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj?ubj)}(hhh](j)}(hD``struct device *dev`` The devfreq user device. (parent of devfreq) h](j)}(h``struct device *dev``h]j@)}(hj?h]hstruct device *dev}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1j?hj?ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj?ubj)}(hhh]h)}(h,The devfreq user device. (parent of devfreq)h]h,The devfreq user device. (parent of devfreq)}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj@hMhj@ubah}(h]h ]h"]h$]h&]uh1jhj?ubeh}(h]h ]h"]h$]h&]uh1jhj@hMhj?ubj)}(h?``unsigned long *freq`` The frequency given to target function h](j)}(h``unsigned long *freq``h]j@)}(hj(@h]hunsigned long *freq}(hj*@hhhNhNubah}(h]h ]h"]h$]h&]uh1j?hj&@ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj"@ubj)}(hhh]h)}(h&The frequency given to target functionh]h&The frequency given to target function}(hjA@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj=@hMhj>@ubah}(h]h ]h"]h$]h&]uh1jhj"@ubeh}(h]h ]h"]h$]h&]uh1jhj=@hMhj?ubj)}(h3``u32 flags`` Flags handed from devfreq framework. h](j)}(h ``u32 flags``h]j@)}(hja@h]h u32 flags}(hjc@hhhNhNubah}(h]h ]h"]h$]h&]uh1j?hj_@ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj[@ubj)}(hhh]h)}(h$Flags handed from devfreq framework.h]h$Flags handed from devfreq framework.}(hjz@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjv@hMhjw@ubah}(h]h ]h"]h$]h&]uh1jhj[@ubeh}(h]h ]h"]h$]h&]uh1jhjv@hMhj?ubeh}(h]h ]h"]h$]h&]uh1jhj?ubh)}(h**Description**h]jZ)}(hj@h]h Description}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jYhj@ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj?ubh)}(hQThe callers are required to call dev_pm_opp_put() for the returned OPP after use.h]hQThe callers are required to call dev_pm_opp_put() for the returned OPP after use.}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj?ubeh}(h]h ] kernelindentah"]h$]h&]uh1jOhj"hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j*devfreq_register_opp_notifier (C function)c.devfreq_register_opp_notifierhNtauh1jhj"hhhNhNubj)}(hhh](j)}(hOint devfreq_register_opp_notifier (struct device *dev, struct devfreq *devfreq)h]j)}(hNint devfreq_register_opp_notifier(struct device *dev, struct devfreq *devfreq)h](j)}(hinth]hint}(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chM7ubj)}(h h]h }(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@hhhj@hM7ubj)}(hdevfreq_register_opp_notifierh]j)}(hdevfreq_register_opp_notifierh]hdevfreq_register_opp_notifier}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj@hhhj@hM7ubjK)}(h-(struct device *dev, struct devfreq *devfreq)h](jQ)}(hstruct device *devh](j)}(hjh]hstruct}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAubj)}(h h]h }(hj+AhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAubh)}(hhh]j)}(hdeviceh]hdevice}(hjAmodnameN classnameNjj)}j]j)}jjAsbc.devfreq_register_opp_notifierasbuh1hhjAubj)}(h h]h }(hj\AhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAubj)}(hjh]h*}(hjjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAubj)}(hdevh]hdev}(hjwAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAubeh}(h]h ]h"]h$]h&]noemphhhuh1jPhjAubjQ)}(hstruct devfreq *devfreqh](j)}(hjh]hstruct}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAubj)}(h h]h }(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAubh)}(hhh]j)}(hdevfreqh]hdevfreq}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAubah}(h]h ]h"]h$]h&] refdomainjLreftypej reftargetjAmodnameN classnameNjj)}j]jXAc.devfreq_register_opp_notifierasbuh1hhjAubj)}(h h]h }(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAubj)}(hjh]h*}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAubj)}(hdevfreqh]hdevfreq}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAubeh}(h]h ]h"]h$]h&]noemphhhuh1jPhjAubeh}(h]h ]h"]h$]h&]hhuh1jJhj@hhhj@hM7ubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj@hhhj@hM7ubah}(h]j@ah ](j j!eh"]h$]h&]j%j&)j'huh1jhj@hM7hj@hhubj))}(hhh]h)}(hWHelper function to get devfreq notified for any changes in the OPP availability changesh]hWHelper function to get devfreq notified for any changes in the OPP availability changes}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chM7hjBhhubah}(h]h ]h"]h$]h&]uh1j(hj@hhhj@hM7ubeh}(h]h ](jLfunctioneh"]h$]h&]jIjLjJj)BjKj)BjLjMjNuh1jhhhj"hNhNubjP)}(h**Parameters** ``struct device *dev`` The devfreq user device. (parent of devfreq) ``struct devfreq *devfreq`` The devfreq object.h](h)}(h**Parameters**h]jZ)}(hj3Bh]h Parameters}(hj5BhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhj1Bubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chM;hj-Bubj)}(hhh](j)}(hD``struct device *dev`` The devfreq user device. (parent of devfreq) h](j)}(h``struct device *dev``h]j@)}(hjRBh]hstruct device *dev}(hjTBhhhNhNubah}(h]h ]h"]h$]h&]uh1j?hjPBubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chM:hjLBubj)}(hhh]h)}(h,The devfreq user device. (parent of devfreq)h]h,The devfreq user device. (parent of devfreq)}(hjkBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjgBhM:hjhBubah}(h]h ]h"]h$]h&]uh1jhjLBubeh}(h]h ]h"]h$]h&]uh1jhjgBhM:hjIBubj)}(h/``struct devfreq *devfreq`` The devfreq object.h](j)}(h``struct devfreq *devfreq``h]j@)}(hjBh]hstruct devfreq *devfreq}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1j?hjBubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chM<hjBubj)}(hhh]h)}(hThe devfreq object.h]hThe devfreq object.}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chM;hjBubah}(h]h ]h"]h$]h&]uh1jhjBubeh}(h]h ]h"]h$]h&]uh1jhjBhM<hjIBubeh}(h]h ]h"]h$]h&]uh1jhj-Bubeh}(h]h ] kernelindentah"]h$]h&]uh1jOhj"hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j,devfreq_unregister_opp_notifier (C function)!c.devfreq_unregister_opp_notifierhNtauh1jhj"hhhNhNubj)}(hhh](j)}(hQint devfreq_unregister_opp_notifier (struct device *dev, struct devfreq *devfreq)h]j)}(hPint devfreq_unregister_opp_notifier(struct device *dev, struct devfreq *devfreq)h](j)}(hinth]hint}(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBhhh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMDubj)}(h h]h }(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBhhhjBhMDubj)}(hdevfreq_unregister_opp_notifierh]j)}(hdevfreq_unregister_opp_notifierh]hdevfreq_unregister_opp_notifier}(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjCubah}(h]h ](jjeh"]h$]h&]hhuh1jhjBhhhjBhMDubjK)}(h-(struct device *dev, struct devfreq *devfreq)h](jQ)}(hstruct device *devh](j)}(hjh]hstruct}(hj"ChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjCubj)}(h h]h }(hj/ChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjCubh)}(hhh]j)}(hdeviceh]hdevice}(hj@ChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=Cubah}(h]h ]h"]h$]h&] refdomainjLreftypej reftargetjBCmodnameN classnameNjj)}j]j)}jjCsb!c.devfreq_unregister_opp_notifierasbuh1hhjCubj)}(h h]h }(hj`ChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjCubj)}(hjh]h*}(hjnChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjCubj)}(hdevh]hdev}(hj{ChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjCubeh}(h]h ]h"]h$]h&]noemphhhuh1jPhjCubjQ)}(hstruct devfreq *devfreqh](j)}(hjh]hstruct}(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjCubj)}(h h]h }(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjCubh)}(hhh]j)}(hdevfreqh]hdevfreq}(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjCubah}(h]h ]h"]h$]h&] refdomainjLreftypej reftargetjCmodnameN classnameNjj)}j]j\C!c.devfreq_unregister_opp_notifierasbuh1hhjCubj)}(h h]h }(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjCubj)}(hjh]h*}(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjCubj)}(hdevfreqh]hdevfreq}(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjCubeh}(h]h ]h"]h$]h&]noemphhhuh1jPhjCubeh}(h]h ]h"]h$]h&]hhuh1jJhjBhhhjBhMDubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjBhhhjBhMDubah}(h]jBah ](j j!eh"]h$]h&]j%j&)j'huh1jhjBhMDhjBhhubj))}(hhh]h)}(hiHelper function to stop getting devfreq notified for any changes in the OPP availability changes anymore.h]hiHelper function to stop getting devfreq notified for any changes in the OPP availability changes anymore.}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMDhjDhhubah}(h]h ]h"]h$]h&]uh1j(hjBhhhjBhMDubeh}(h]h ](jLfunctioneh"]h$]h&]jIjLjJj-DjKj-DjLjMjNuh1jhhhj"hNhNubjP)}(h**Parameters** ``struct device *dev`` The devfreq user device. (parent of devfreq) ``struct devfreq *devfreq`` The devfreq object. **Description** At exit() callback of devfreq_dev_profile, this must be included if devfreq_recommended_opp is used.h](h)}(h**Parameters**h]jZ)}(hj7Dh]h Parameters}(hj9DhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhj5Dubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMHhj1Dubj)}(hhh](j)}(hD``struct device *dev`` The devfreq user device. (parent of devfreq) h](j)}(h``struct device *dev``h]j@)}(hjVDh]hstruct device *dev}(hjXDhhhNhNubah}(h]h ]h"]h$]h&]uh1j?hjTDubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMGhjPDubj)}(hhh]h)}(h,The devfreq user device. (parent of devfreq)h]h,The devfreq user device. (parent of devfreq)}(hjoDhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjkDhMGhjlDubah}(h]h ]h"]h$]h&]uh1jhjPDubeh}(h]h ]h"]h$]h&]uh1jhjkDhMGhjMDubj)}(h0``struct devfreq *devfreq`` The devfreq object. h](j)}(h``struct devfreq *devfreq``h]j@)}(hjDh]hstruct devfreq *devfreq}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1j?hjDubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMHhjDubj)}(hhh]h)}(hThe devfreq object.h]hThe devfreq object.}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjDhMHhjDubah}(h]h ]h"]h$]h&]uh1jhjDubeh}(h]h ]h"]h$]h&]uh1jhjDhMHhjMDubeh}(h]h ]h"]h$]h&]uh1jhj1Dubh)}(h**Description**h]jZ)}(hjDh]h Description}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjDubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMJhj1Dubh)}(hdAt exit() callback of devfreq_dev_profile, this must be included if devfreq_recommended_opp is used.h]hdAt exit() callback of devfreq_dev_profile, this must be included if devfreq_recommended_opp is used.}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMIhj1Dubeh}(h]h ] kernelindentah"]h$]h&]uh1jOhj"hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j/devm_devfreq_register_opp_notifier (C function)$c.devm_devfreq_register_opp_notifierhNtauh1jhj"hhhNhNubj)}(hhh](j)}(hTint devm_devfreq_register_opp_notifier (struct device *dev, struct devfreq *devfreq)h]j)}(hSint devm_devfreq_register_opp_notifier(struct device *dev, struct devfreq *devfreq)h](j)}(hinth]hint}(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj Ehhh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMYubj)}(h h]h }(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj EhhhjEhMYubj)}(h"devm_devfreq_register_opp_notifierh]j)}(h"devm_devfreq_register_opp_notifierh]h"devm_devfreq_register_opp_notifier}(hj0EhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,Eubah}(h]h ](jjeh"]h$]h&]hhuh1jhj EhhhjEhMYubjK)}(h-(struct device *dev, struct devfreq *devfreq)h](jQ)}(hstruct device *devh](j)}(hjh]hstruct}(hjLEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjHEubj)}(h h]h }(hjYEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjHEubh)}(hhh]j)}(hdeviceh]hdevice}(hjjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjgEubah}(h]h ]h"]h$]h&] refdomainjLreftypej reftargetjlEmodnameN classnameNjj)}j]j)}jj2Esb$c.devm_devfreq_register_opp_notifierasbuh1hhjHEubj)}(h h]h }(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjHEubj)}(hjh]h*}(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjHEubj)}(hdevh]hdev}(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjHEubeh}(h]h ]h"]h$]h&]noemphhhuh1jPhjDEubjQ)}(hstruct devfreq *devfreqh](j)}(hjh]hstruct}(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubj)}(h h]h }(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubh)}(hhh]j)}(hdevfreqh]hdevfreq}(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubah}(h]h ]h"]h$]h&] refdomainjLreftypej reftargetjEmodnameN classnameNjj)}j]jE$c.devm_devfreq_register_opp_notifierasbuh1hhjEubj)}(h h]h }(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubj)}(hjh]h*}(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubj)}(hdevfreqh]hdevfreq}(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubeh}(h]h ]h"]h$]h&]noemphhhuh1jPhjDEubeh}(h]h ]h"]h$]h&]hhuh1jJhj EhhhjEhMYubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjEhhhjEhMYubah}(h]jEah ](j j!eh"]h$]h&]j%j&)j'huh1jhjEhMYhjEhhubj))}(hhh]h)}(h0Resource-managed devfreq_register_opp_notifier()h]h0Resource-managed devfreq_register_opp_notifier()}(hj?FhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMYhj``struct notifier_block *nb`` The notifier block to register. h](j)}(h``struct notifier_block *nb``h]j@)}(hjKh]hstruct notifier_block *nb}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1j?hjKubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj Kubj)}(hhh]h)}(hThe notifier block to register.h]hThe notifier block to register.}(hj+KhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj'KhMhj(Kubah}(h]h ]h"]h$]h&]uh1jhj Kubeh}(h]h ]h"]h$]h&]uh1jhj'KhMhjJubj)}(h2``unsigned int list`` DEVFREQ_TRANSITION_NOTIFIER.h](j)}(h``unsigned int list``h]j@)}(hjKKh]hunsigned int list}(hjMKhhhNhNubah}(h]h ]h"]h$]h&]uh1j?hjIKubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhjEKubj)}(hhh]h)}(hDEVFREQ_TRANSITION_NOTIFIER.h]hDEVFREQ_TRANSITION_NOTIFIER.}(hjdKhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhjaKubah}(h]h ]h"]h$]h&]uh1jhjEKubeh}(h]h ]h"]h$]h&]uh1jhj`KhMhjJubeh}(h]h ]h"]h$]h&]uh1jhjJubeh}(h]h ] kernelindentah"]h$]h&]uh1jOhj"hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j+devm_devfreq_register_notifier (C function) c.devm_devfreq_register_notifierhNtauh1jhj"hhhNhNubj)}(hhh](j)}(h~int devm_devfreq_register_notifier (struct device *dev, struct devfreq *devfreq, struct notifier_block *nb, unsigned int list)h]j)}(h}int devm_devfreq_register_notifier(struct device *dev, struct devfreq *devfreq, struct notifier_block *nb, unsigned int list)h](j)}(hinth]hint}(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKhhh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMubj)}(h h]h }(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKhhhjKhMubj)}(hdevm_devfreq_register_notifierh]j)}(hdevm_devfreq_register_notifierh]hdevm_devfreq_register_notifier}(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubah}(h]h ](jjeh"]h$]h&]hhuh1jhjKhhhjKhMubjK)}(h[(struct device *dev, struct devfreq *devfreq, struct notifier_block *nb, unsigned int list)h](jQ)}(hstruct device *devh](j)}(hjh]hstruct}(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubj)}(h h]h }(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubh)}(hhh]j)}(hdeviceh]hdevice}(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubah}(h]h ]h"]h$]h&] refdomainjLreftypej reftargetjLmodnameN classnameNjj)}j]j)}jjKsb c.devm_devfreq_register_notifierasbuh1hhjKubj)}(h h]h }(hj LhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubj)}(hjh]h*}(hj.LhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubj)}(hdevh]hdev}(hj;LhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubeh}(h]h ]h"]h$]h&]noemphhhuh1jPhjKubjQ)}(hstruct devfreq *devfreqh](j)}(hjh]hstruct}(hjTLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPLubj)}(h h]h }(hjaLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPLubh)}(hhh]j)}(hdevfreqh]hdevfreq}(hjrLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjoLubah}(h]h ]h"]h$]h&] refdomainjLreftypej reftargetjtLmodnameN classnameNjj)}j]jL c.devm_devfreq_register_notifierasbuh1hhjPLubj)}(h h]h }(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPLubj)}(hjh]h*}(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPLubj)}(hdevfreqh]hdevfreq}(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPLubeh}(h]h ]h"]h$]h&]noemphhhuh1jPhjKubjQ)}(hstruct notifier_block *nbh](j)}(hjh]hstruct}(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubj)}(h h]h }(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubh)}(hhh]j)}(hnotifier_blockh]hnotifier_block}(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&] refdomainjLreftypej reftargetjLmodnameN classnameNjj)}j]jL c.devm_devfreq_register_notifierasbuh1hhjLubj)}(h h]h }(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubj)}(hjh]h*}(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubj)}(hnbh]hnb}(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubeh}(h]h ]h"]h$]h&]noemphhhuh1jPhjKubjQ)}(hunsigned int listh](j)}(hunsignedh]hunsigned}(hj4MhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0Mubj)}(h h]h }(hjBMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0Mubj)}(hinth]hint}(hjPMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0Mubj)}(h h]h }(hj^MhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0Mubj)}(hlisth]hlist}(hjlMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0Mubeh}(h]h ]h"]h$]h&]noemphhhuh1jPhjKubeh}(h]h ]h"]h$]h&]hhuh1jJhjKhhhjKhMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjKhhhjKhMubah}(h]jKah ](j j!eh"]h$]h&]j%j&)j'huh1jhjKhMhjKhhubj))}(hhh]h}(h]h ]h"]h$]h&]uh1j(hjKhhhjKhMubeh}(h]h ](jLfunctioneh"]h$]h&]jIjLjJjMjKjMjLjMjNuh1jhhhj"hNhNubjP)}(hXL**Parameters** ``struct device *dev`` The devfreq user device. (parent of devfreq) ``struct devfreq *devfreq`` The devfreq object. ``struct notifier_block *nb`` The notifier block to be unregistered. ``unsigned int list`` DEVFREQ_TRANSITION_NOTIFIER. **Description** - Resource-managed devfreq_register_notifier()h](h)}(h**Parameters**h]jZ)}(hjMh]h Parameters}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjMubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhjMubj)}(hhh](j)}(hD``struct device *dev`` The devfreq user device. (parent of devfreq) h](j)}(h``struct device *dev``h]j@)}(hjMh]hstruct device *dev}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1j?hjMubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhjMubj)}(hhh]h)}(h,The devfreq user device. (parent of devfreq)h]h,The devfreq user device. (parent of devfreq)}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjMhMhjMubah}(h]h ]h"]h$]h&]uh1jhjMubeh}(h]h ]h"]h$]h&]uh1jhjMhMhjMubj)}(h0``struct devfreq *devfreq`` The devfreq object. h](j)}(h``struct devfreq *devfreq``h]j@)}(hjNh]hstruct devfreq *devfreq}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1j?hjMubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhjMubj)}(hhh]h)}(hThe devfreq object.h]hThe devfreq object.}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjNhMhjNubah}(h]h ]h"]h$]h&]uh1jhjMubeh}(h]h ]h"]h$]h&]uh1jhjNhMhjMubj)}(hE``struct notifier_block *nb`` The notifier block to be unregistered. h](j)}(h``struct notifier_block *nb``h]j@)}(hj:Nh]hstruct notifier_block *nb}(hjint devfreq_event_enable_edev (struct devfreq_event_dev *edev)h]j)}(h=int devfreq_event_enable_edev(struct devfreq_event_dev *edev)h](j)}(hinth]hint}(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}Rhhhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chKubj)}(h h]h }(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}RhhhjRhKubj)}(hdevfreq_event_enable_edevh]j)}(hdevfreq_event_enable_edevh]hdevfreq_event_enable_edev}(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjRubah}(h]h ](jjeh"]h$]h&]hhuh1jhj}RhhhjRhKubjK)}(h (struct devfreq_event_dev *edev)h]jQ)}(hstruct devfreq_event_dev *edevh](j)}(hjh]hstruct}(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjRubj)}(h h]h }(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjRubh)}(hhh]j)}(hdevfreq_event_devh]hdevfreq_event_dev}(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjRubah}(h]h ]h"]h$]h&] refdomainjLreftypej reftargetjRmodnameN classnameNjj)}j]j)}jjRsbc.devfreq_event_enable_edevasbuh1hhjRubj)}(h h]h }(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjRubj)}(hjh]h*}(hj ShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjRubj)}(hedevh]hedev}(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjRubeh}(h]h ]h"]h$]h&]noemphhhuh1jPhjRubah}(h]h ]h"]h$]h&]hhuh1jJhj}RhhhjRhKubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjyRhhhjRhKubah}(h]jtRah ](j j!eh"]h$]h&]j%j&)j'huh1jhjRhKhjvRhhubj))}(hhh]h)}(hPEnable the devfreq-event dev and increase the enable_count of devfreq-event dev.h]hPEnable the devfreq-event dev and increase the enable_count of devfreq-event dev.}(hjAShhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chKhj>Shhubah}(h]h ]h"]h$]h&]uh1j(hjvRhhhjRhKubeh}(h]h ](jLfunctioneh"]h$]h&]jIjLjJjYSjKjYSjLjMjNuh1jhhhj"hNhNubjP)}(hX**Parameters** ``struct devfreq_event_dev *edev`` the devfreq-event device **Description** Note that this function increase the enable_count and enable the devfreq-event device. The devfreq-event device should be enabled before using it by devfreq device.h](h)}(h**Parameters**h]jZ)}(hjcSh]h Parameters}(hjeShhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjaSubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chK!hj]Subj)}(hhh]j)}(h<``struct devfreq_event_dev *edev`` the devfreq-event device h](j)}(h"``struct devfreq_event_dev *edev``h]j@)}(hjSh]hstruct devfreq_event_dev *edev}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1j?hjSubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chKhj|Subj)}(hhh]h)}(hthe devfreq-event deviceh]hthe devfreq-event device}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1hhjShKhjSubah}(h]h ]h"]h$]h&]uh1jhj|Subeh}(h]h ]h"]h$]h&]uh1jhjShKhjySubah}(h]h ]h"]h$]h&]uh1jhj]Subh)}(h**Description**h]jZ)}(hjSh]h Description}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjSubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chK!hj]Subh)}(hNote that this function increase the enable_count and enable the devfreq-event device. The devfreq-event device should be enabled before using it by devfreq device.h]hNote that this function increase the enable_count and enable the devfreq-event device. The devfreq-event device should be enabled before using it by devfreq device.}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chK hj]Subeh}(h]h ] kernelindentah"]h$]h&]uh1jOhj"hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j'devfreq_event_disable_edev (C function)c.devfreq_event_disable_edevhNtauh1jhj"hhhNhNubj)}(hhh](j)}(h?int devfreq_event_disable_edev (struct devfreq_event_dev *edev)h]j)}(h>int devfreq_event_disable_edev(struct devfreq_event_dev *edev)h](j)}(hinth]hint}(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjShhhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chKhjTubj)}(hhh]h)}(hthe devfreq-event deviceh]hthe devfreq-event device}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjUhK>hjUubah}(h]h ]h"]h$]h&]uh1jhjTubeh}(h]h ]h"]h$]h&]uh1jhjUhK>hjTubah}(h]h ]h"]h$]h&]uh1jhjTubh)}(h**Description**h]jZ)}(hj>Uh]h Description}(hj@UhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjbool devfreq_event_is_enabled (struct devfreq_event_dev *edev)h]j)}(h=bool devfreq_event_is_enabled(struct devfreq_event_dev *edev)h](j)}(hboolh]hbool}(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUhhhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chKbubj)}(h h]h }(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUhhhjUhKbubj)}(hdevfreq_event_is_enabledh]j)}(hdevfreq_event_is_enabledh]hdevfreq_event_is_enabled}(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubah}(h]h ](jjeh"]h$]h&]hhuh1jhjUhhhjUhKbubjK)}(h (struct devfreq_event_dev *edev)h]jQ)}(hstruct devfreq_event_dev *edevh](j)}(hjh]hstruct}(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubj)}(h h]h }(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubh)}(hhh]j)}(hdevfreq_event_devh]hdevfreq_event_dev}(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubah}(h]h ]h"]h$]h&] refdomainjLreftypej reftargetjUmodnameN classnameNjj)}j]j)}jjUsbc.devfreq_event_is_enabledasbuh1hhjUubj)}(h h]h }(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubj)}(hjh]h*}(hj VhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubj)}(hedevh]hedev}(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubeh}(h]h ]h"]h$]h&]noemphhhuh1jPhjUubah}(h]h ]h"]h$]h&]hhuh1jJhjUhhhjUhKbubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj{UhhhjUhKbubah}(h]jvUah ](j j!eh"]h$]h&]j%j&)j'huh1jhjUhKbhjxUhhubj))}(hhh]h)}(h2Check whether devfreq-event dev is enabled or not.h]h2Check whether devfreq-event dev is enabled or not.}(hjCVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chKbhj@Vhhubah}(h]h ]h"]h$]h&]uh1j(hjxUhhhjUhKbubeh}(h]h ](jLfunctioneh"]h$]h&]jIjLjJj[VjKj[VjLjMjNuh1jhhhj"hNhNubjP)}(hX**Parameters** ``struct devfreq_event_dev *edev`` the devfreq-event device **Description** Note that this function check whether devfreq-event dev is enabled or not. If return true, the devfreq-event dev is enabeld. If return false, the devfreq-event dev is disabled.h](h)}(h**Parameters**h]jZ)}(hjeVh]h Parameters}(hjgVhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjcVubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chKfhj_Vubj)}(hhh]j)}(h<``struct devfreq_event_dev *edev`` the devfreq-event device h](j)}(h"``struct devfreq_event_dev *edev``h]j@)}(hjVh]hstruct devfreq_event_dev *edev}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1j?hjVubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chKdhj~Vubj)}(hhh]h)}(hthe devfreq-event deviceh]hthe devfreq-event device}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjVhKdhjVubah}(h]h ]h"]h$]h&]uh1jhj~Vubeh}(h]h ]h"]h$]h&]uh1jhjVhKdhj{Vubah}(h]h ]h"]h$]h&]uh1jhj_Vubh)}(h**Description**h]jZ)}(hjVh]h Description}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjVubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chKfhj_Vubh)}(hNote that this function check whether devfreq-event dev is enabled or not. If return true, the devfreq-event dev is enabeld. If return false, the devfreq-event dev is disabled.h]hNote that this function check whether devfreq-event dev is enabled or not. If return true, the devfreq-event dev is enabeld. If return false, the devfreq-event dev is disabled.}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chKehj_Vubeh}(h]h ] kernelindentah"]h$]h&]uh1jOhj"hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j$devfreq_event_set_event (C function)c.devfreq_event_set_eventhNtauh1jhj"hhhNhNubj)}(hhh](j)}(hXubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chKhjWubh)}(hNote that this function set the event to the devfreq-event device to start for getting the event data which could be various event type.h]hNote that this function set the event to the devfreq-event device to start for getting the event data which could be various event type.}(hjVXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chKhjWubeh}(h]h ] kernelindentah"]h$]h&]uh1jOhj"hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j$devfreq_event_get_event (C function)c.devfreq_event_get_eventhNtauh1jhj"hhhNhNubj)}(hhh](j)}(h^int devfreq_event_get_event (struct devfreq_event_dev *edev, struct devfreq_event_data *edata)h]j)}(h]int devfreq_event_get_event(struct devfreq_event_dev *edev, struct devfreq_event_data *edata)h](j)}(hinth]hint}(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXhhhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chKubj)}(h h]h }(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXhhhjXhKubj)}(hdevfreq_event_get_eventh]j)}(hdevfreq_event_get_eventh]hdevfreq_event_get_event}(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXubah}(h]h ](jjeh"]h$]h&]hhuh1jhjXhhhjXhKubjK)}(hB(struct devfreq_event_dev *edev, struct devfreq_event_data *edata)h](jQ)}(hstruct devfreq_event_dev *edevh](j)}(hjh]hstruct}(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXubj)}(h h]h }(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXubh)}(hhh]j)}(hdevfreq_event_devh]hdevfreq_event_dev}(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXubah}(h]h ]h"]h$]h&] refdomainjLreftypej reftargetjXmodnameN classnameNjj)}j]j)}jjXsbc.devfreq_event_get_eventasbuh1hhjXubj)}(h h]h }(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXubj)}(hjh]h*}(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXubj)}(hedevh]hedev}(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXubeh}(h]h ]h"]h$]h&]noemphhhuh1jPhjXubjQ)}(h struct devfreq_event_data *edatah](j)}(hjh]hstruct}(hj4YhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0Yubj)}(h h]h }(hjAYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0Yubh)}(hhh]j)}(hdevfreq_event_datah]hdevfreq_event_data}(hjRYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOYubah}(h]h ]h"]h$]h&] refdomainjLreftypej reftargetjTYmodnameN classnameNjj)}j]jXc.devfreq_event_get_eventasbuh1hhj0Yubj)}(h h]h }(hjpYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0Yubj)}(hjh]h*}(hj~YhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0Yubj)}(hedatah]hedata}(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0Yubeh}(h]h ]h"]h$]h&]noemphhhuh1jPhjXubeh}(h]h ]h"]h$]h&]hhuh1jJhjXhhhjXhKubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj}XhhhjXhKubah}(h]jxXah ](j j!eh"]h$]h&]j%j&)j'huh1jhjXhKhjzXhhubj))}(hhh]h)}(h.Get {load|total}_count from devfreq-event dev.h]h.Get {load|total}_count from devfreq-event dev.}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chKhjYhhubah}(h]h ]h"]h$]h&]uh1j(hjzXhhhjXhKubeh}(h]h ](jLfunctioneh"]h$]h&]jIjLjJjYjKjYjLjMjNuh1jhhhj"hNhNubjP)}(hXC**Parameters** ``struct devfreq_event_dev *edev`` the devfreq-event device ``struct devfreq_event_data *edata`` the calculated data of devfreq-event device **Description** Note that this function get the calculated event data from devfreq-event dev after stoping the progress of whole sequence of devfreq-event dev.h](h)}(h**Parameters**h]jZ)}(hjYh]h Parameters}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjYubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chKhjYubj)}(hhh](j)}(h<``struct devfreq_event_dev *edev`` the devfreq-event device h](j)}(h"``struct devfreq_event_dev *edev``h]j@)}(hjYh]hstruct devfreq_event_dev *edev}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1j?hjYubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chKhjYubj)}(hhh]h)}(hthe devfreq-event deviceh]hthe devfreq-event device}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ZhKhj Zubah}(h]h ]h"]h$]h&]uh1jhjYubeh}(h]h ]h"]h$]h&]uh1jhj ZhKhjYubj)}(hQ``struct devfreq_event_data *edata`` the calculated data of devfreq-event device h](j)}(h$``struct devfreq_event_data *edata``h]j@)}(hj/Zh]h struct devfreq_event_data *edata}(hj1ZhhhNhNubah}(h]h ]h"]h$]h&]uh1j?hj-Zubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chKhj)Zubj)}(hhh]h)}(h+the calculated data of devfreq-event deviceh]h+the calculated data of devfreq-event device}(hjHZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjDZhKhjEZubah}(h]h ]h"]h$]h&]uh1jhj)Zubeh}(h]h ]h"]h$]h&]uh1jhjDZhKhjYubeh}(h]h ]h"]h$]h&]uh1jhjYubh)}(h**Description**h]jZ)}(hjjZh]h Description}(hjlZhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjhZubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chKhjYubh)}(hNote that this function get the calculated event data from devfreq-event dev after stoping the progress of whole sequence of devfreq-event dev.h]hNote that this function get the calculated event data from devfreq-event dev after stoping the progress of whole sequence of devfreq-event dev.}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chKhjYubeh}(h]h ] kernelindentah"]h$]h&]uh1jOhj"hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j&devfreq_event_reset_event (C function)c.devfreq_event_reset_eventhNtauh1jhj"hhhNhNubj)}(hhh](j)}(h>int devfreq_event_reset_event (struct devfreq_event_dev *edev)h]j)}(h=int devfreq_event_reset_event(struct devfreq_event_dev *edev)h](j)}(hinth]hint}(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZhhhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chKubj)}(h h]h }(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZhhhjZhKubj)}(hdevfreq_event_reset_eventh]j)}(hdevfreq_event_reset_eventh]hdevfreq_event_reset_event}(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZubah}(h]h ](jjeh"]h$]h&]hhuh1jhjZhhhjZhKubjK)}(h (struct devfreq_event_dev *edev)h]jQ)}(hstruct devfreq_event_dev *edevh](j)}(hjh]hstruct}(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZubj)}(h h]h }(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZubh)}(hhh]j)}(hdevfreq_event_devh]hdevfreq_event_dev}(hj [hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ubah}(h]h ]h"]h$]h&] refdomainjLreftypej reftargetj [modnameN classnameNjj)}j]j)}jjZsbc.devfreq_event_reset_eventasbuh1hhjZubj)}(h h]h }(hj*[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZubj)}(hjh]h*}(hj8[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZubj)}(hedevh]hedev}(hjE[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZubeh}(h]h ]h"]h$]h&]noemphhhuh1jPhjZubah}(h]h ]h"]h$]h&]hhuh1jJhjZhhhjZhKubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjZhhhjZhKubah}(h]jZah ](j j!eh"]h$]h&]j%j&)j'huh1jhjZhKhjZhhubj))}(hhh]h)}(h)Reset all opeations of devfreq-event dev.h]h)Reset all opeations of devfreq-event dev.}(hjo[hhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chKhjl[hhubah}(h]h ]h"]h$]h&]uh1j(hjZhhhjZhKubeh}(h]h ](jLfunctioneh"]h$]h&]jIjLjJj[jKj[jLjMjNuh1jhhhj"hNhNubjP)}(h**Parameters** ``struct devfreq_event_dev *edev`` the devfreq-event device **Description** Note that this function stop all operations of devfreq-event dev and reset the current event data to make the devfreq-event device into initial state.h](h)}(h**Parameters**h]jZ)}(hj[h]h Parameters}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jYhj[ubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chKhj[ubj)}(hhh]j)}(h<``struct devfreq_event_dev *edev`` the devfreq-event device h](j)}(h"``struct devfreq_event_dev *edev``h]j@)}(hj[h]hstruct devfreq_event_dev *edev}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1j?hj[ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chKhj[ubj)}(hhh]h)}(hthe devfreq-event deviceh]hthe devfreq-event device}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj[hKhj[ubah}(h]h ]h"]h$]h&]uh1jhj[ubeh}(h]h ]h"]h$]h&]uh1jhj[hKhj[ubah}(h]h ]h"]h$]h&]uh1jhj[ubh)}(h**Description**h]jZ)}(hj[h]h Description}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jYhj[ubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chKhj[ubh)}(hNote that this function stop all operations of devfreq-event dev and reset the current event data to make the devfreq-event device into initial state.h]hNote that this function stop all operations of devfreq-event dev and reset the current event data to make the devfreq-event device into initial state.}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chKhj[ubeh}(h]h ] kernelindentah"]h$]h&]uh1jOhj"hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j.devfreq_event_get_edev_by_phandle (C function)#c.devfreq_event_get_edev_by_phandlehNtauh1jhj"hhhNhNubj)}(hhh](j)}(hvstruct devfreq_event_dev * devfreq_event_get_edev_by_phandle (struct device *dev, const char *phandle_name, int index)h]j)}(htstruct devfreq_event_dev *devfreq_event_get_edev_by_phandle(struct device *dev, const char *phandle_name, int index)h](j)}(hjh]hstruct}(hj0\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,\hhhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chKubj)}(h h]h }(hj>\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,\hhhj=\hKubh)}(hhh]j)}(hdevfreq_event_devh]hdevfreq_event_dev}(hjO\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjL\ubah}(h]h ]h"]h$]h&] refdomainjLreftypej reftargetjQ\modnameN classnameNjj)}j]j)}j!devfreq_event_get_edev_by_phandlesb#c.devfreq_event_get_edev_by_phandleasbuh1hhj,\hhhj=\hKubj)}(h h]h }(hjp\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,\hhhj=\hKubj)}(hjh]h*}(hj~\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,\hhhj=\hKubj)}(h!devfreq_event_get_edev_by_phandleh]j)}(hjm\h]h!devfreq_event_get_edev_by_phandle}(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj,\hhhj=\hKubjK)}(h9(struct device *dev, const char *phandle_name, int index)h](jQ)}(hstruct device *devh](j)}(hjh]hstruct}(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\ubj)}(h h]h }(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\ubh)}(hhh]j)}(hdeviceh]hdevice}(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\ubah}(h]h ]h"]h$]h&] refdomainjLreftypej reftargetj\modnameN classnameNjj)}j]jk\#c.devfreq_event_get_edev_by_phandleasbuh1hhj\ubj)}(h h]h }(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\ubj)}(hjh]h*}(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\ubj)}(hdevh]hdev}(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\ubeh}(h]h ]h"]h$]h&]noemphhhuh1jPhj\ubjQ)}(hconst char *phandle_nameh](j)}(hj;-h]hconst}(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]ubj)}(h h]h }(hj']hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]ubj)}(hcharh]hchar}(hj5]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]ubj)}(h h]h }(hjC]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]ubj)}(hjh]h*}(hjQ]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]ubj)}(h phandle_nameh]h phandle_name}(hj^]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]ubeh}(h]h ]h"]h$]h&]noemphhhuh1jPhj\ubjQ)}(h int indexh](j)}(hinth]hint}(hjw]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjs]ubj)}(h h]h }(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjs]ubj)}(hindexh]hindex}(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjs]ubeh}(h]h ]h"]h$]h&]noemphhhuh1jPhj\ubeh}(h]h ]h"]h$]h&]hhuh1jJhj,\hhhj=\hKubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj(\hhhj=\hKubah}(h]j#\ah ](j j!eh"]h$]h&]j%j&)j'huh1jhj=\hKhj%\hhubj))}(hhh]h)}(h*Get the devfreq-event dev from devicetree.h]h*Get the devfreq-event dev from devicetree.}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chKhj]hhubah}(h]h ]h"]h$]h&]uh1j(hj%\hhhj=\hKubeh}(h]h ](jLfunctioneh"]h$]h&]jIjLjJj]jKj]jLjMjNuh1jhhhj"hNhNubjP)}(hX$**Parameters** ``struct device *dev`` the pointer to the given device ``const char *phandle_name`` name of property holding a phandle value ``int index`` the index into list of devfreq-event device **Description** Note that this function return the pointer of devfreq-event device.h](h)}(h**Parameters**h]jZ)}(hj]h]h Parameters}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jYhj]ubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chKhj]ubj)}(hhh](j)}(h7``struct device *dev`` the pointer to the given device h](j)}(h``struct device *dev``h]j@)}(hj]h]hstruct device *dev}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1j?hj]ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chKhj]ubj)}(hhh]h)}(hthe pointer to the given deviceh]hthe pointer to the given device}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj^hKhj^ubah}(h]h ]h"]h$]h&]uh1jhj]ubeh}(h]h ]h"]h$]h&]uh1jhj^hKhj]ubj)}(hF``const char *phandle_name`` name of property holding a phandle value h](j)}(h``const char *phandle_name``h]j@)}(hj7^h]hconst char *phandle_name}(hj9^hhhNhNubah}(h]h ]h"]h$]h&]uh1j?hj5^ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chKhj1^ubj)}(hhh]h)}(h(name of property holding a phandle valueh]h(name of property holding a phandle value}(hjP^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjL^hKhjM^ubah}(h]h ]h"]h$]h&]uh1jhj1^ubeh}(h]h ]h"]h$]h&]uh1jhjL^hKhj]ubj)}(h:``int index`` the index into list of devfreq-event device h](j)}(h ``int index``h]j@)}(hjp^h]h int index}(hjr^hhhNhNubah}(h]h ]h"]h$]h&]uh1j?hjn^ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chKhjj^ubj)}(hhh]h)}(h+the index into list of devfreq-event deviceh]h+the index into list of devfreq-event device}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj^hKhj^ubah}(h]h ]h"]h$]h&]uh1jhjj^ubeh}(h]h ]h"]h$]h&]uh1jhj^hKhj]ubeh}(h]h ]h"]h$]h&]uh1jhj]ubh)}(h**Description**h]jZ)}(hj^h]h Description}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jYhj^ubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chKhj]ubh)}(hCNote that this function return the pointer of devfreq-event device.h]hCNote that this function return the pointer of devfreq-event device.}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chKhj]ubeh}(h]h ] kernelindentah"]h$]h&]uh1jOhj"hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j)devfreq_event_get_edev_count (C function)c.devfreq_event_get_edev_counthNtauh1jhj"hhhNhNubj)}(hhh](j)}(hOint devfreq_event_get_edev_count (struct device *dev, const char *phandle_name)h]j)}(hNint devfreq_event_get_edev_count(struct device *dev, const char *phandle_name)h](j)}(hinth]hint}(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^hhhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chMubj)}(h h]h }(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^hhhj^hMubj)}(hdevfreq_event_get_edev_counth]j)}(hdevfreq_event_get_edev_counth]hdevfreq_event_get_edev_count}(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj _ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj^hhhj^hMubjK)}(h.(struct device *dev, const char *phandle_name)h](jQ)}(hstruct device *devh](j)}(hjh]hstruct}(hj-_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)_ubj)}(h h]h }(hj:_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)_ubh)}(hhh]j)}(hdeviceh]hdevice}(hjK_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjH_ubah}(h]h ]h"]h$]h&] refdomainjLreftypej reftargetjM_modnameN classnameNjj)}j]j)}jj_sbc.devfreq_event_get_edev_countasbuh1hhj)_ubj)}(h h]h }(hjk_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)_ubj)}(hjh]h*}(hjy_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)_ubj)}(hdevh]hdev}(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)_ubeh}(h]h ]h"]h$]h&]noemphhhuh1jPhj%_ubjQ)}(hconst char *phandle_nameh](j)}(hj;-h]hconst}(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_ubj)}(h h]h }(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_ubj)}(hcharh]hchar}(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_ubj)}(h h]h }(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_ubj)}(hjh]h*}(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_ubj)}(h phandle_nameh]h phandle_name}(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_ubeh}(h]h ]h"]h$]h&]noemphhhuh1jPhj%_ubeh}(h]h ]h"]h$]h&]hhuh1jJhj^hhhj^hMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj^hhhj^hMubah}(h]j^ah ](j j!eh"]h$]h&]j%j&)j'huh1jhj^hMhj^hhubj))}(hhh]h)}(h"Get the count of devfreq-event devh]h"Get the count of devfreq-event dev}(hj `hhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chMhj `hhubah}(h]h ]h"]h$]h&]uh1j(hj^hhhj^hMubeh}(h]h ](jLfunctioneh"]h$]h&]jIjLjJj%`jKj%`jLjMjNuh1jhhhj"hNhNubjP)}(h**Parameters** ``struct device *dev`` the pointer to the given device ``const char *phandle_name`` name of property holding a phandle value **Description** Note that this function return the count of devfreq-event devices.h](h)}(h**Parameters**h]jZ)}(hj/`h]h Parameters}(hj1`hhhNhNubah}(h]h ]h"]h$]h&]uh1jYhj-`ubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chMhj)`ubj)}(hhh](j)}(h7``struct device *dev`` the pointer to the given device h](j)}(h``struct device *dev``h]j@)}(hjN`h]hstruct device *dev}(hjP`hhhNhNubah}(h]h ]h"]h$]h&]uh1j?hjL`ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chMhjH`ubj)}(hhh]h)}(hthe pointer to the given deviceh]hthe pointer to the given device}(hjg`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjc`hMhjd`ubah}(h]h ]h"]h$]h&]uh1jhjH`ubeh}(h]h ]h"]h$]h&]uh1jhjc`hMhjE`ubj)}(hF``const char *phandle_name`` name of property holding a phandle value h](j)}(h``const char *phandle_name``h]j@)}(hj`h]hconst char *phandle_name}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1j?hj`ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chMhj`ubj)}(hhh]h)}(h(name of property holding a phandle valueh]h(name of property holding a phandle value}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj`hMhj`ubah}(h]h ]h"]h$]h&]uh1jhj`ubeh}(h]h ]h"]h$]h&]uh1jhj`hMhjE`ubeh}(h]h ]h"]h$]h&]uh1jhj)`ubh)}(h**Description**h]jZ)}(hj`h]h Description}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jYhj`ubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chMhj)`ubh)}(hBNote that this function return the count of devfreq-event devices.h]hBNote that this function return the count of devfreq-event devices.}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chMhj)`ubeh}(h]h ] kernelindentah"]h$]h&]uh1jOhj"hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j#devfreq_event_add_edev (C function)c.devfreq_event_add_edevhNtauh1jhj"hhhNhNubj)}(hhh](j)}(hgstruct devfreq_event_dev * devfreq_event_add_edev (struct device *dev, struct devfreq_event_desc *desc)h]j)}(hestruct devfreq_event_dev *devfreq_event_add_edev(struct device *dev, struct devfreq_event_desc *desc)h](j)}(hjh]hstruct}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjahhhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chM$ubj)}(h h]h }(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjahhhjahM$ubh)}(hhh]j)}(hdevfreq_event_devh]hdevfreq_event_dev}(hj&ahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#aubah}(h]h ]h"]h$]h&] refdomainjLreftypej reftargetj(amodnameN classnameNjj)}j]j)}jdevfreq_event_add_edevsbc.devfreq_event_add_edevasbuh1hhjahhhjahM$ubj)}(h h]h }(hjGahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjahhhjahM$ubj)}(hjh]h*}(hjUahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjahhhjahM$ubj)}(hdevfreq_event_add_edevh]j)}(hjDah]hdevfreq_event_add_edev}(hjfahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbaubah}(h]h ](jjeh"]h$]h&]hhuh1jhjahhhjahM$ubjK)}(h5(struct device *dev, struct devfreq_event_desc *desc)h](jQ)}(hstruct device *devh](j)}(hjh]hstruct}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}aubj)}(h h]h }(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}aubh)}(hhh]j)}(hdeviceh]hdevice}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjaubah}(h]h ]h"]h$]h&] refdomainjLreftypej reftargetjamodnameN classnameNjj)}j]jBac.devfreq_event_add_edevasbuh1hhj}aubj)}(h h]h }(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}aubj)}(hjh]h*}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}aubj)}(hdevh]hdev}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}aubeh}(h]h ]h"]h$]h&]noemphhhuh1jPhjyaubjQ)}(hstruct devfreq_event_desc *desch](j)}(hjh]hstruct}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjaubj)}(h h]h }(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjaubh)}(hhh]j)}(hdevfreq_event_desch]hdevfreq_event_desc}(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj bubah}(h]h ]h"]h$]h&] refdomainjLreftypej reftargetjbmodnameN classnameNjj)}j]jBac.devfreq_event_add_edevasbuh1hhjaubj)}(h h]h }(hj-bhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjaubj)}(hjh]h*}(hj;bhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjaubj)}(hdesch]hdesc}(hjHbhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjaubeh}(h]h ]h"]h$]h&]noemphhhuh1jPhjyaubeh}(h]h ]h"]h$]h&]hhuh1jJhjahhhjahM$ubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj`hhhjahM$ubah}(h]j`ah ](j j!eh"]h$]h&]j%j&)j'huh1jhjahM$hj`hhubj))}(hhh]h)}(hAdd new devfreq-event device.h]hAdd new devfreq-event device.}(hjrbhhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chM$hjobhhubah}(h]h ]h"]h$]h&]uh1j(hj`hhhjahM$ubeh}(h]h ](jLfunctioneh"]h$]h&]jIjLjJjbjKjbjLjMjNuh1jhhhj"hNhNubjP)}(hX**Parameters** ``struct device *dev`` the device owning the devfreq-event device being created ``struct devfreq_event_desc *desc`` the devfreq-event device's descriptor which include essential data for devfreq-event device. **Description** Note that this function add new devfreq-event device to devfreq-event class list and register the device of the devfreq-event device.h](h)}(h**Parameters**h]jZ)}(hjbh]h Parameters}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjbubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chM(hjbubj)}(hhh](j)}(hP``struct device *dev`` the device owning the devfreq-event device being created h](j)}(h``struct device *dev``h]j@)}(hjbh]hstruct device *dev}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1j?hjbubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chM%hjbubj)}(hhh]h)}(h8the device owning the devfreq-event device being createdh]h8the device owning the devfreq-event device being created}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjbhM%hjbubah}(h]h ]h"]h$]h&]uh1jhjbubeh}(h]h ]h"]h$]h&]uh1jhjbhM%hjbubj)}(h``struct devfreq_event_desc *desc`` the devfreq-event device's descriptor which include essential data for devfreq-event device. h](j)}(h#``struct devfreq_event_desc *desc``h]j@)}(hjbh]hstruct devfreq_event_desc *desc}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1j?hjbubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chM'hjbubj)}(hhh]h)}(h\the devfreq-event device's descriptor which include essential data for devfreq-event device.h]h^the devfreq-event device’s descriptor which include essential data for devfreq-event device.}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chM&hjcubah}(h]h ]h"]h$]h&]uh1jhjbubeh}(h]h ]h"]h$]h&]uh1jhjchM'hjbubeh}(h]h ]h"]h$]h&]uh1jhjbubh)}(h**Description**h]jZ)}(hj(ch]h Description}(hj*chhhNhNubah}(h]h ]h"]h$]h&]uh1jYhj&cubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chM)hjbubh)}(hNote that this function add new devfreq-event device to devfreq-event class list and register the device of the devfreq-event device.h]hNote that this function add new devfreq-event device to devfreq-event class list and register the device of the devfreq-event device.}(hj>chhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chM(hjbubeh}(h]h ] kernelindentah"]h$]h&]uh1jOhj"hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j&devfreq_event_remove_edev (C function)c.devfreq_event_remove_edevhNtauh1jhj"hhhNhNubj)}(hhh](j)}(h>int devfreq_event_remove_edev (struct devfreq_event_dev *edev)h]j)}(h=int devfreq_event_remove_edev(struct devfreq_event_dev *edev)h](j)}(hinth]hint}(hjmchhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjichhhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chMZubj)}(h h]h }(hj|chhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjichhhj{chMZubj)}(hdevfreq_event_remove_edevh]j)}(hdevfreq_event_remove_edevh]hdevfreq_event_remove_edev}(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjcubah}(h]h ](jjeh"]h$]h&]hhuh1jhjichhhj{chMZubjK)}(h (struct devfreq_event_dev *edev)h]jQ)}(hstruct devfreq_event_dev *edevh](j)}(hjh]hstruct}(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjcubj)}(h h]h }(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjcubh)}(hhh]j)}(hdevfreq_event_devh]hdevfreq_event_dev}(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjcubah}(h]h ]h"]h$]h&] refdomainjLreftypej reftargetjcmodnameN classnameNjj)}j]j)}jjcsbc.devfreq_event_remove_edevasbuh1hhjcubj)}(h h]h }(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjcubj)}(hjh]h*}(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjcubj)}(hedevh]hedev}(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjcubeh}(h]h ]h"]h$]h&]noemphhhuh1jPhjcubah}(h]h ]h"]h$]h&]hhuh1jJhjichhhj{chMZubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjechhhj{chMZubah}(h]j`cah ](j j!eh"]h$]h&]j%j&)j'huh1jhj{chMZhjbchhubj))}(hhh]h)}(h+Remove the devfreq-event device registered.h]h+Remove the devfreq-event device registered.}(hj-dhhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chMZhj*dhhubah}(h]h ]h"]h$]h&]uh1j(hjbchhhj{chMZubeh}(h]h ](jLfunctioneh"]h$]h&]jIjLjJjEdjKjEdjLjMjNuh1jhhhj"hNhNubjP)}(h**Parameters** ``struct devfreq_event_dev *edev`` the devfreq-event device **Description** Note that this function removes the registered devfreq-event device.h](h)}(h**Parameters**h]jZ)}(hjOdh]h Parameters}(hjQdhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjMdubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chM^hjIdubj)}(hhh]j)}(h<``struct devfreq_event_dev *edev`` the devfreq-event device h](j)}(h"``struct devfreq_event_dev *edev``h]j@)}(hjndh]hstruct devfreq_event_dev *edev}(hjpdhhhNhNubah}(h]h ]h"]h$]h&]uh1j?hjldubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chM[hjhdubj)}(hhh]h)}(hthe devfreq-event deviceh]hthe devfreq-event device}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjdhM[hjdubah}(h]h ]h"]h$]h&]uh1jhjhdubeh}(h]h ]h"]h$]h&]uh1jhjdhM[hjedubah}(h]h ]h"]h$]h&]uh1jhjIdubh)}(h**Description**h]jZ)}(hjdh]h Description}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjdubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chM]hjIdubh)}(hDNote that this function removes the registered devfreq-event device.h]hDNote that this function removes the registered devfreq-event device.}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chM\hjIdubeh}(h]h ] kernelindentah"]h$]h&]uh1jOhj"hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j(devm_devfreq_event_add_edev (C function)c.devm_devfreq_event_add_edevhNtauh1jhj"hhhNhNubj)}(hhh](j)}(hlstruct devfreq_event_dev * devm_devfreq_event_add_edev (struct device *dev, struct devfreq_event_desc *desc)h]j)}(hjstruct devfreq_event_dev *devm_devfreq_event_add_edev(struct device *dev, struct devfreq_event_desc *desc)h](j)}(hjh]hstruct}(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjdhhhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chMubj)}(h h]h }(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjdhhhjdhMubh)}(hhh]j)}(hdevfreq_event_devh]hdevfreq_event_dev}(hj ehhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj eubah}(h]h ]h"]h$]h&] refdomainjLreftypej reftargetjemodnameN classnameNjj)}j]j)}jdevm_devfreq_event_add_edevsbc.devm_devfreq_event_add_edevasbuh1hhjdhhhjdhMubj)}(h h]h }(hj.ehhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjdhhhjdhMubj)}(hjh]h*}(hj(j)j)j+j+j#/j(/j0j0j4j4j6j#6j7j7j 9j%9j{:j:j<j<j>j>j@j@jBjBjEjEjGj Gj IjIjKjKj OjOjtRjyRjSjSjvUj{UjVjVjxXj}XjZjZj#\j(\j^j^j`j`j`cjecjdjdjGgjLgu footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages]transform_messages] transformerN include_log] decorationNhhub.