From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756713AbbJAIYy (ORCPT ); Thu, 1 Oct 2015 04:24:54 -0400 Received: from mailout3.samsung.com ([203.254.224.33]:50939 "EHLO mailout3.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753073AbbJAIYt (ORCPT ); Thu, 1 Oct 2015 04:24:49 -0400 X-AuditID: cbfee690-f794e6d0000014de-a9-560cedcf7f15 From: Alim Akhtar To: linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org Cc: JBottomley@odin.com, vinholikatti@gmail.com, amit.daniel@samsung.com, essuuj@gmail.com, devicetree@vger.kernel.org Subject: [PATCH v3 10/13] scsi: ufs: return value of pwr_change_notify Date: Thu, 01 Oct 2015 13:39:27 +0530 Message-id: <1443686970-28104-11-git-send-email-alim.akhtar@samsung.com> X-Mailer: git-send-email 1.7.10.4 In-reply-to: <1443686970-28104-1-git-send-email-alim.akhtar@samsung.com> References: <1443686970-28104-1-git-send-email-alim.akhtar@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrELMWRmVeSWpSXmKPExsWyRsSkVvf8W54wg/9neC0aroZYzD9yjtVi +YUlTBb/199msbi8aw6bRff1HWwWOxZWObB77Jx1l93j8I8fzB59W1YxenzeJBfAEsVlk5Ka k1mWWqRvl8CVsfjMIeaCh3wV7/f1MjcwdvF0MXJySAiYSLS3tLJA2GISF+6tZ+ti5OIQEljB KNG3ahd7FyMHWNGLm0UgNUICsxglpi5ggaj5ySjRe2QNO0iCTUBb4u70LUwgtoiAjcT5mw/A bGaBColbZyaALRAWcJOYsayBDcRmEVCVeHp7EyOIzSvgIfH3zEomiCMUJbqfTWAD2csJFP+2 KBRir7vEh7vLGUH2SghMZpfYPOcjE8QcAYlvkw+xQNwpK7HpADPEGEmJgytusExgFF7AyLCK UTS1ILmgOCm9yESvODG3uDQvXS85P3cTIzCoT/97NmEH470D1ocYBTgYlXh4JdJ5woRYE8uK K3MPMZoCbZjILCWanA+MnbySeENjMyMLUxNTYyNzSzMlcd7XUj+DhQTSE0tSs1NTC1KL4otK c1KLDzEycXBKNTAmT1E+7yf0eFVJTu/xjefy0t5tDo7qK5M6kbh3/cFl88u/scjp3KlTP9xl Is+x6vX/h9fuH9/sWb8oV/bpTZ98/wqT3Ok961zVOUIYPjbFPSvlbf0w/3jAYvGVkzJPBcVO 9ps60eGIEpeq7L5/QWF8DVZf131hf+93oPHD+1Unj0fxbtQNs9BSYinOSDTUYi4qTgQAa0kw M2UCAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprPIsWRmVeSWpSXmKPExsVy+t9jQd3zb3nCDI60sFk0XA2xmH/kHKvF 8gtLmCz+r7/NYnF51xw2i+7rO9gsdiyscmD32DnrLrvH4R8/mD36tqxi9Pi8SS6AJaqB0SYj NTEltUghNS85PyUzL91WyTs43jne1MzAUNfQ0sJcSSEvMTfVVsnFJ0DXLTMH6AAlhbLEnFKg UEBicbGSvh2mCaEhbroWMI0Rur4hQXA9RgZoIGENY8biM4eYCx7yVbzf18vcwNjF08XIwSEh YCLx4mZRFyMnkCkmceHeejYQW0hgFqPE1AUsXYxcQPZPRoneI2vYQRJsAtoSd6dvYQKxRQRs JM7ffABmMwtUSNw6M4EFxBYWcJOYsawBbBCLgKrE09ubGEFsXgEPib9nVjJBLFOU6H42gQ3k Bk6g+LdFoRB73SU+3F3OOIGRdwEjwypGidSC5ILipPRco7zUcr3ixNzi0rx0veT83E2M4Mh5 Jr2D8fAu90OMAhyMSjy8B1J4woRYE8uKK3MPMUpwMCuJ8MoA406INyWxsiq1KD++qDQntfgQ oynQXROZpUST84FRnVcSb2hsYm5qbGppYmFiZqkkznvjEEOYkEB6YklqdmpqQWoRTB8TB6dU A+NWkUcSHqf82v9NLqhS9gjb6f3+24TAD794f77IPVYXeVO2bd2Efe/ZWfdO4pi9OFXGPG+p 6q95V9iTBOdd75KTFK7f8XWvD/PjtFOrp5ju7DwwT1h0Sr3Qpr3RVdP+nuWcc3XBkVd1cZ+e bMhcwCefWLHouDT70ad1l9ffr8w3N2i8ccXo4SdxJZbijERDLeai4kQAJVLlhrICAAA= DLP-Filter: Pass X-MTR: 20000000000000000@CPGS X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Seungwon Jeon Behavior of the "power mode change" contains vendor specific operation known as pwr_change_notify. This change adds return for pwr_change_notify to find success or failure. Signed-off-by: Seungwon Jeon Signed-off-by: Alim Akhtar --- drivers/scsi/ufs/ufshcd.c | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c index 66f2fb8..682abbe 100644 --- a/drivers/scsi/ufs/ufshcd.c +++ b/drivers/scsi/ufs/ufshcd.c @@ -2580,14 +2580,18 @@ static int ufshcd_change_power_mode(struct ufs_hba *hba, dev_err(hba->dev, "%s: power mode change failed %d\n", __func__, ret); } else { - if (hba->vops && hba->vops->pwr_change_notify) - hba->vops->pwr_change_notify(hba, - POST_CHANGE, NULL, pwr_mode); + if (hba->vops && hba->vops->pwr_change_notify) { + ret = hba->vops->pwr_change_notify(hba, + POST_CHANGE, NULL, pwr_mode); + if (ret) + goto out; + } memcpy(&hba->pwr_info, pwr_mode, sizeof(struct ufs_pa_layer_attr)); } +out: return ret; } @@ -2602,14 +2606,18 @@ int ufshcd_config_pwr_mode(struct ufs_hba *hba, struct ufs_pa_layer_attr final_params = { 0 }; int ret; - if (hba->vops && hba->vops->pwr_change_notify) - hba->vops->pwr_change_notify(hba, - PRE_CHANGE, desired_pwr_mode, &final_params); - else + if (hba->vops && hba->vops->pwr_change_notify) { + ret = hba->vops->pwr_change_notify(hba, + PRE_CHANGE, desired_pwr_mode, &final_params); + if (ret) + goto out; + } else { memcpy(&final_params, desired_pwr_mode, sizeof(final_params)); + } ret = ufshcd_change_power_mode(hba, &final_params); +out: return ret; } EXPORT_SYMBOL_GPL(ufshcd_config_pwr_mode); -- 1.7.10.4