Re: [PATCH] drm/radeon/kms/pm: add support for SetVoltage cmd table (V2)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2010/6/3 Rafał Miłecki <zajec5@xxxxxxxxx>:
> 2010/5/28 Alex Deucher <alexdeucher@xxxxxxxxx>:
>> diff --git a/drivers/gpu/drm/radeon/r600.c b/drivers/gpu/drm/radeon/r600.c
>> index dac2534..d84d7cf 100644
>> --- a/drivers/gpu/drm/radeon/r600.c
>> +++ b/drivers/gpu/drm/radeon/r600.c
>> @@ -475,6 +475,12 @@ void r600_pm_init_profile(struct radeon_device *rdev)
>>
>>  void r600_pm_misc(struct radeon_device *rdev)
>>  {
>> +       int requested_index = rdev->pm.requested_power_state_index;
>> +       struct radeon_power_state *ps = &rdev->pm.power_state[requested_index];
>> +       struct radeon_voltage *voltage = &ps->clock_info[0].voltage;
>> +
>> +       if ((voltage->type == VOLTAGE_SW) && voltage->voltage)
>> +               radeon_atom_set_voltage(rdev, voltage->voltage);
>>
>>  }
>>
>
> In case of my RV620 I can see (using AtomDis):
>    0004:  UCHAR ucVoltageType                                 = 0x01       (1)
> so it looks that my GPU uses VOLTAGE_GPIO (it's 0x01).
>
> You seem to do not use SetVoltage AtomBIOS command for VOLTAGE_GPIO.
> However in case of my BIOS there is SetVoltage command table.
>
> Could you comment on this, please?

The VOLTAGE_GPIO, VOLTAGE_SW, etc. enums in the driver are a little
confusing I guess.  They refer to the interface used to program the
voltage.  We could have called them VOLTAGE_TYPE1, VOLTAGE_TYPE2,
etc., but I wanted to provide a bit more info about the type.

VOLTAGE_GPIO refers to the cases where the power table specifies the
GPIO reg and a mask for voltage control.
VOLTAGE_VDDC refers to the cases where the power table specifies an
index into the VDDC voltage table.
VOLTAGE_SW refers to the cases where the power table specifies the
actual voltage value which SW (software) has to program.

Your system (actually all r6xx+ vbioses) specifies a voltage value, so
they are the VOLTAGE_SW type.  The actual implementation on the board
may be gpio or i2c, etc.; depends on the board.   The SetVoltage
command table uses the VoltageObject data table to look up the the
relevant info based on the voltage value specified.

I hope that clarifies things.

Alex
_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/dri-devel



[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux