mirror of
https://github.com/torvalds/linux.git
synced 2026-06-03 20:14:06 +02:00
drm/xe/pcode: Initialize data0 for pcode read routine
There are two registers filled in when reading data from pcode besides the mailbox itself. Currently, we allow a NULL value for the second of these two (data1) and assume the first is defined. However, many of the routines that are calling this function assume that pcode will ignore the value being passed in and so leave that first value (data0) defined but uninitialized. To be safe, make sure this value is always initialized to something (0 generally) in the event pcode behavior changes and starts using this value. v2: Fix sob/author Signed-off-by: Stuart Summers <stuart.summers@intel.com> Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com> Link: https://lore.kernel.org/r/20250819201054.393220-1-stuart.summers@intel.com Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
This commit is contained in:
parent
bc2b206268
commit
2515d2b9ab
|
|
@ -76,7 +76,7 @@ lb_fan_control_version_show(struct device *dev, struct device_attribute *attr, c
|
|||
{
|
||||
struct xe_device *xe = pdev_to_xe_device(to_pci_dev(dev));
|
||||
struct xe_tile *root = xe_device_get_root_tile(xe);
|
||||
u32 cap, ver_low = FAN_TABLE, ver_high = FAN_TABLE;
|
||||
u32 cap = 0, ver_low = FAN_TABLE, ver_high = FAN_TABLE;
|
||||
u16 major = 0, minor = 0, hotfix = 0, build = 0;
|
||||
int ret;
|
||||
|
||||
|
|
@ -115,7 +115,7 @@ lb_voltage_regulator_version_show(struct device *dev, struct device_attribute *a
|
|||
{
|
||||
struct xe_device *xe = pdev_to_xe_device(to_pci_dev(dev));
|
||||
struct xe_tile *root = xe_device_get_root_tile(xe);
|
||||
u32 cap, ver_low = VR_CONFIG, ver_high = VR_CONFIG;
|
||||
u32 cap = 0, ver_low = VR_CONFIG, ver_high = VR_CONFIG;
|
||||
u16 major = 0, minor = 0, hotfix = 0, build = 0;
|
||||
int ret;
|
||||
|
||||
|
|
@ -153,7 +153,7 @@ static int late_bind_create_files(struct device *dev)
|
|||
{
|
||||
struct xe_device *xe = pdev_to_xe_device(to_pci_dev(dev));
|
||||
struct xe_tile *root = xe_device_get_root_tile(xe);
|
||||
u32 cap;
|
||||
u32 cap = 0;
|
||||
int ret;
|
||||
|
||||
xe_pm_runtime_get(xe);
|
||||
|
|
@ -186,7 +186,7 @@ static void late_bind_remove_files(struct device *dev)
|
|||
{
|
||||
struct xe_device *xe = pdev_to_xe_device(to_pci_dev(dev));
|
||||
struct xe_tile *root = xe_device_get_root_tile(xe);
|
||||
u32 cap;
|
||||
u32 cap = 0;
|
||||
int ret;
|
||||
|
||||
xe_pm_runtime_get(xe);
|
||||
|
|
|
|||
|
|
@ -179,7 +179,7 @@ static int xe_hwmon_pcode_rmw_power_limit(const struct xe_hwmon *hwmon, u32 attr
|
|||
u32 clr, u32 set)
|
||||
{
|
||||
struct xe_tile *root_tile = xe_device_get_root_tile(hwmon->xe);
|
||||
u32 val0, val1;
|
||||
u32 val0 = 0, val1 = 0;
|
||||
int ret = 0;
|
||||
|
||||
ret = xe_pcode_read(root_tile, PCODE_MBOX(PCODE_POWER_SETUP,
|
||||
|
|
@ -734,7 +734,7 @@ static int xe_hwmon_power_curr_crit_read(struct xe_hwmon *hwmon, int channel,
|
|||
long *value, u32 scale_factor)
|
||||
{
|
||||
int ret;
|
||||
u32 uval;
|
||||
u32 uval = 0;
|
||||
|
||||
mutex_lock(&hwmon->hwmon_lock);
|
||||
|
||||
|
|
@ -918,7 +918,7 @@ xe_hwmon_power_write(struct xe_hwmon *hwmon, u32 attr, int channel, long val)
|
|||
static umode_t
|
||||
xe_hwmon_curr_is_visible(const struct xe_hwmon *hwmon, u32 attr, int channel)
|
||||
{
|
||||
u32 uval;
|
||||
u32 uval = 0;
|
||||
|
||||
/* hwmon sysfs attribute of current available only for package */
|
||||
if (channel != CHANNEL_PKG)
|
||||
|
|
@ -1020,7 +1020,7 @@ xe_hwmon_energy_read(struct xe_hwmon *hwmon, u32 attr, int channel, long *val)
|
|||
static umode_t
|
||||
xe_hwmon_fan_is_visible(struct xe_hwmon *hwmon, u32 attr, int channel)
|
||||
{
|
||||
u32 uval;
|
||||
u32 uval = 0;
|
||||
|
||||
if (!hwmon->xe->info.has_fan_control)
|
||||
return 0;
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ static ssize_t max_freq_show(struct device *dev, struct device_attribute *attr,
|
|||
char *buf)
|
||||
{
|
||||
struct xe_tile *tile = dev_to_tile(dev);
|
||||
u32 val, mbox;
|
||||
u32 val = 0, mbox;
|
||||
int err;
|
||||
|
||||
mbox = REG_FIELD_PREP(PCODE_MB_COMMAND, PCODE_FREQUENCY_CONFIG)
|
||||
|
|
@ -56,7 +56,7 @@ static ssize_t min_freq_show(struct device *dev, struct device_attribute *attr,
|
|||
char *buf)
|
||||
{
|
||||
struct xe_tile *tile = dev_to_tile(dev);
|
||||
u32 val, mbox;
|
||||
u32 val = 0, mbox;
|
||||
int err;
|
||||
|
||||
mbox = REG_FIELD_PREP(PCODE_MB_COMMAND, PCODE_FREQUENCY_CONFIG)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user