diff mbox

[RESEND] ACPI: CPPC: Support PCC with interrupt flag

Message ID 1473875698-12402-1-git-send-email-hotran@apm.com (mailing list archive)
State Accepted, archived
Delegated to: Rafael Wysocki
Headers show

Commit Message

hotran Sept. 14, 2016, 5:54 p.m. UTC
For PCC mailbox with interrupt flag, CPPC should call mbox_chan_txdone()
function to notify the mailbox framework about TX completion.

Signed-off-by: Hoan Tran <hotran@apm.com>
Reviewed-by: Prashanth Prakash <pprakash@codeaurora.org>
---
 drivers/acpi/cppc_acpi.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

Comments

Rafael J. Wysocki Sept. 26, 2016, 12:56 p.m. UTC | #1
On Wednesday, September 14, 2016 10:54:58 AM Hoan Tran wrote:
> For PCC mailbox with interrupt flag, CPPC should call mbox_chan_txdone()
> function to notify the mailbox framework about TX completion.
> 
> Signed-off-by: Hoan Tran <hotran@apm.com>
> Reviewed-by: Prashanth Prakash <pprakash@codeaurora.org>
> ---
>  drivers/acpi/cppc_acpi.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/acpi/cppc_acpi.c b/drivers/acpi/cppc_acpi.c
> index 3d1ae6d..d0d0504 100644
> --- a/drivers/acpi/cppc_acpi.c
> +++ b/drivers/acpi/cppc_acpi.c
> @@ -311,7 +311,10 @@ static int send_pcc_cmd(u16 cmd)
>  	if (pcc_data.pcc_mrtt)
>  		last_cmd_cmpl_time = ktime_get();
>  
> -	mbox_client_txdone(pcc_data.pcc_channel, ret);
> +	if (pcc_data.pcc_channel->mbox->txdone_irq)
> +		mbox_chan_txdone(pcc_data.pcc_channel, ret);
> +	else
> +		mbox_client_txdone(pcc_data.pcc_channel, ret);
>  
>  end:
>  	if (cmd == CMD_WRITE) {
> 

Applied.

Thanks,
Rafael

--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/acpi/cppc_acpi.c b/drivers/acpi/cppc_acpi.c
index 3d1ae6d..d0d0504 100644
--- a/drivers/acpi/cppc_acpi.c
+++ b/drivers/acpi/cppc_acpi.c
@@ -311,7 +311,10 @@  static int send_pcc_cmd(u16 cmd)
 	if (pcc_data.pcc_mrtt)
 		last_cmd_cmpl_time = ktime_get();
 
-	mbox_client_txdone(pcc_data.pcc_channel, ret);
+	if (pcc_data.pcc_channel->mbox->txdone_irq)
+		mbox_chan_txdone(pcc_data.pcc_channel, ret);
+	else
+		mbox_client_txdone(pcc_data.pcc_channel, ret);
 
 end:
 	if (cmd == CMD_WRITE) {