From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755061AbcFGNBA (ORCPT ); Tue, 7 Jun 2016 09:01:00 -0400 Received: from foss.arm.com ([217.140.101.70]:44178 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753412AbcFGNA7 (ORCPT ); Tue, 7 Jun 2016 09:00:59 -0400 Subject: Re: [PATCH 1/3] firmware: arm_scpi: add support for device power state management To: "Jon Medhurst (Tixy)" References: <1465228439-13457-1-git-send-email-sudeep.holla@arm.com> <1465228439-13457-2-git-send-email-sudeep.holla@arm.com> <1465304305.2833.13.camel@linaro.org> Cc: Sudeep Holla , linux-kernel@vger.kernel.org, Mathieu Poirier , Suzuki K Poulose , linux-arm-kernel@lists.infradead.org From: Sudeep Holla Organization: ARM Message-ID: <5756C587.7090105@arm.com> Date: Tue, 7 Jun 2016 14:00:55 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.8.0 MIME-Version: 1.0 In-Reply-To: <1465304305.2833.13.camel@linaro.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 07/06/16 13:58, Jon Medhurst (Tixy) wrote: > On Mon, 2016-06-06 at 16:53 +0100, Sudeep Holla wrote: >> SCPI protocol supports device power state management. This deals with >> power states of various peripheral devices in the system other than the >> core compute subsystem. >> >> This patch adds support for the power state management of those >> peripheral devices. >> >> Cc: linux-arm-kernel@lists.infradead.org >> Signed-off-by: Sudeep Holla >> --- >> drivers/firmware/arm_scpi.c | 29 +++++++++++++++++++++++++++++ >> include/linux/scpi_protocol.h | 2 ++ >> 2 files changed, 31 insertions(+) >> >> diff --git a/drivers/firmware/arm_scpi.c b/drivers/firmware/arm_scpi.c >> index 51c6db0774cc..ca6afd2217a8 100644 >> --- a/drivers/firmware/arm_scpi.c >> +++ b/drivers/firmware/arm_scpi.c >> @@ -231,6 +231,11 @@ struct sensor_value { >> __le32 hi_val; >> } __packed; >> >> +struct dev_pstate_set { >> + u16 dev_id; >> + u8 pstate; >> +} __packed; >> + >> static struct scpi_drvinfo *scpi_info; >> >> static int scpi_linux_errmap[SCPI_ERR_MAX] = { >> @@ -537,6 +542,28 @@ static int scpi_sensor_get_value(u16 sensor, u64 *val) >> return ret; >> } >> >> +static int scpi_device_get_power_state(u16 dev_id) >> +{ >> + int ret; >> + u8 pstate; >> + >> + ret = scpi_send_message(SCPI_CMD_GET_DEVICE_PWR_STATE, &dev_id, >> + sizeof(dev_id), &pstate, sizeof(pstate)); > > Don't you need to run translate dev_id to little-endian before sending > it? You remembered to do that next function... > Good catch, that's the reason I added the get_power_state call in scpi_genpd code to cover testing but still I failed. Thanks for catching this. -- Regards, Sudeep