Skip to content

Commit

Permalink
platform/x86/amd/pmf: Add helper routine to update SPS thermals
Browse files Browse the repository at this point in the history
Add helper routine to update the static slider information
and remove the duplicate code occurrences after this change.

Signed-off-by: Shyam Sundar S K <Shyam-sundar.S-k@amd.com>
Reviewed-by: Mario Limonciello <mario.limonciello@amd.com>
Link: https://lore.kernel.org/r/20230125095936.3292883-2-Shyam-sundar.S-k@amd.com
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
  • Loading branch information
Shyam Sundar S K authored and Hans de Goede committed Jan 30, 2023
1 parent 1bc5d81 commit c5258d3
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 18 deletions.
7 changes: 1 addition & 6 deletions drivers/platform/x86/amd/pmf/auto-mode.c
Original file line number Diff line number Diff line change
Expand Up @@ -275,13 +275,8 @@ int amd_pmf_reset_amt(struct amd_pmf_dev *dev)
*/

if (is_apmf_func_supported(dev, APMF_FUNC_STATIC_SLIDER_GRANULAR)) {
int mode = amd_pmf_get_pprof_modes(dev);

if (mode < 0)
return mode;

dev_dbg(dev->dev, "resetting AMT thermals\n");
amd_pmf_update_slider(dev, SLIDER_OP_SET, mode, NULL);
amd_pmf_set_sps_power_limits(dev);
}
return 0;
}
Expand Down
8 changes: 2 additions & 6 deletions drivers/platform/x86/amd/pmf/cnqf.c
Original file line number Diff line number Diff line change
Expand Up @@ -307,13 +307,9 @@ static ssize_t cnqf_enable_store(struct device *dev,
const char *buf, size_t count)
{
struct amd_pmf_dev *pdev = dev_get_drvdata(dev);
int mode, result, src;
int result, src;
bool input;

mode = amd_pmf_get_pprof_modes(pdev);
if (mode < 0)
return mode;

result = kstrtobool(buf, &input);
if (result)
return result;
Expand All @@ -325,7 +321,7 @@ static ssize_t cnqf_enable_store(struct device *dev,
amd_pmf_set_cnqf(pdev, src, config_store.current_mode, NULL);
} else {
if (is_apmf_func_supported(pdev, APMF_FUNC_STATIC_SLIDER_GRANULAR))
amd_pmf_update_slider(pdev, SLIDER_OP_SET, mode, NULL);
amd_pmf_set_sps_power_limits(pdev);
}

dev_dbg(pdev->dev, "Received CnQF %s\n", input ? "on" : "off");
Expand Down
1 change: 1 addition & 0 deletions drivers/platform/x86/amd/pmf/pmf.h
Original file line number Diff line number Diff line change
Expand Up @@ -394,6 +394,7 @@ int apmf_get_static_slider_granular(struct amd_pmf_dev *pdev,


int apmf_update_fan_idx(struct amd_pmf_dev *pdev, bool manual, u32 idx);
int amd_pmf_set_sps_power_limits(struct amd_pmf_dev *pmf);

/* Auto Mode Layer */
int apmf_get_auto_mode_def(struct amd_pmf_dev *pdev, struct apmf_auto_mode *data);
Expand Down
20 changes: 14 additions & 6 deletions drivers/platform/x86/amd/pmf/sps.c
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,19 @@ void amd_pmf_update_slider(struct amd_pmf_dev *dev, bool op, int idx,
}
}

int amd_pmf_set_sps_power_limits(struct amd_pmf_dev *pmf)
{
int mode;

mode = amd_pmf_get_pprof_modes(pmf);
if (mode < 0)
return mode;

amd_pmf_update_slider(pmf, SLIDER_OP_SET, mode, NULL);

return 0;
}

static int amd_pmf_profile_get(struct platform_profile_handler *pprof,
enum platform_profile_option *profile)
{
Expand Down Expand Up @@ -105,15 +118,10 @@ static int amd_pmf_profile_set(struct platform_profile_handler *pprof,
enum platform_profile_option profile)
{
struct amd_pmf_dev *pmf = container_of(pprof, struct amd_pmf_dev, pprof);
int mode;

pmf->current_profile = profile;
mode = amd_pmf_get_pprof_modes(pmf);
if (mode < 0)
return mode;

amd_pmf_update_slider(pmf, SLIDER_OP_SET, mode, NULL);
return 0;
return amd_pmf_set_sps_power_limits(pmf);
}

int amd_pmf_init_sps(struct amd_pmf_dev *dev)
Expand Down

0 comments on commit c5258d3

Please sign in to comment.