get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/1.2/patches/2232908/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 2232908,
    "url": "http://patchwork.ozlabs.org/api/1.2/patches/2232908/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/linux-pci/patch/20260505100523.1922388-14-vladimir.oltean@nxp.com/",
    "project": {
        "id": 28,
        "url": "http://patchwork.ozlabs.org/api/1.2/projects/28/?format=api",
        "name": "Linux PCI development",
        "link_name": "linux-pci",
        "list_id": "linux-pci.vger.kernel.org",
        "list_email": "linux-pci@vger.kernel.org",
        "web_url": null,
        "scm_url": null,
        "webscm_url": null,
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20260505100523.1922388-14-vladimir.oltean@nxp.com>",
    "list_archive_url": null,
    "date": "2026-05-05T10:05:05",
    "name": "[v8,phy-next,13/31] scsi: ufs: qcom: keep separate track of PHY power state",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "efddf18d13a7978831d18da1431080d52b3ff2e1",
    "submitter": {
        "id": 75582,
        "url": "http://patchwork.ozlabs.org/api/1.2/people/75582/?format=api",
        "name": "Vladimir Oltean",
        "email": "vladimir.oltean@nxp.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/linux-pci/patch/20260505100523.1922388-14-vladimir.oltean@nxp.com/mbox/",
    "series": [
        {
            "id": 502805,
            "url": "http://patchwork.ozlabs.org/api/1.2/series/502805/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/linux-pci/list/?series=502805",
            "date": "2026-05-05T10:04:53",
            "name": "Split Generic PHY consumer and provider API",
            "version": 8,
            "mbox": "http://patchwork.ozlabs.org/series/502805/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2232908/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2232908/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "\n <linux-pci+bounces-53725-incoming=patchwork.ozlabs.org@vger.kernel.org>",
        "X-Original-To": [
            "incoming@patchwork.ozlabs.org",
            "linux-pci@vger.kernel.org"
        ],
        "Delivered-To": "patchwork-incoming@legolas.ozlabs.org",
        "Authentication-Results": [
            "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=nxp.com header.i=@nxp.com header.a=rsa-sha256\n header.s=selector1 header.b=cNQxRuTN;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c04:e001:36c::12fc:5321; helo=tor.lore.kernel.org;\n envelope-from=linux-pci+bounces-53725-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)",
            "smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com\n header.b=\"cNQxRuTN\"",
            "smtp.subspace.kernel.org;\n arc=fail smtp.client-ip=52.101.69.64",
            "smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=nxp.com",
            "smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=nxp.com",
            "dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=nxp.com;"
        ],
        "Received": [
            "from tor.lore.kernel.org (tor.lore.kernel.org\n [IPv6:2600:3c04:e001:36c::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g8vqy1xdcz1yJV\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 05 May 2026 20:28:46 +1000 (AEST)",
            "from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby tor.lore.kernel.org (Postfix) with ESMTP id 7F2863132B9B\n\tfor <incoming@patchwork.ozlabs.org>; Tue,  5 May 2026 10:12:50 +0000 (UTC)",
            "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 129BA41B37E;\n\tTue,  5 May 2026 10:06:21 +0000 (UTC)",
            "from AM0PR83CU005.outbound.protection.outlook.com\n (mail-westeuropeazon11010064.outbound.protection.outlook.com [52.101.69.64])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 68659402BB0;\n\tTue,  5 May 2026 10:06:18 +0000 (UTC)",
            "from AM9PR04MB8585.eurprd04.prod.outlook.com (2603:10a6:20b:438::13)\n by DB9PR04MB8363.eurprd04.prod.outlook.com (2603:10a6:10:24b::11) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9846.26; Tue, 5 May\n 2026 10:06:03 +0000",
            "from AM9PR04MB8585.eurprd04.prod.outlook.com\n ([fe80::f010:fca8:7ef:62f4]) by AM9PR04MB8585.eurprd04.prod.outlook.com\n ([fe80::f010:fca8:7ef:62f4%4]) with mapi id 15.20.9870.023; Tue, 5 May 2026\n 10:06:03 +0000"
        ],
        "ARC-Seal": [
            "i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1777975580; cv=fail;\n b=LBcYvyYoaBPHs9aR6INUS4bVSRj5ohjaZ+7K7MLRjx7zQArvJWOzOsFf8/6YisoC1a0K73bcjT+DVQKxIsFdmistyoGAa89Fdx+3kPFpsUI9gD/9jdSKkf1MRbq1judB6TysizarGRHvMUx9a7/GTEKchL7Ic7vJGfCqCLJPKpM=",
            "i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=G98hC7npOLIMH62MxkJDUAMJRszlDgMXd7xLvb3e1p1ObammOhDIlP5IO0dsrgsR2mgRM+vGL3ZKuRsZct+bXCUeey3tcF1afDIxcWDSBF02MXPlFgbSgjNAtWelPWLIzClTpCkmYwRoKdPNUtqUqBqlEiPNPXIIW9A9JNkWUj/RhwBZ4Xqz/k4BNcqSIQFl3vBE3qaUU1gKuoSNeYg4Kt9Dcy1g4Oiokq9M3zXtjzO6E3Dvhbunq2WcYgtnKWNxJl6YZ4N2bfiOVMeAQ9IN15Jq6FV9LvKQYJWTPVFr0pRJK4tve4sodJm/T0cu3XzhngXvAboUIO43va15NcF0lA=="
        ],
        "ARC-Message-Signature": [
            "i=2; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1777975580; c=relaxed/simple;\n\tbh=CfXKLF9lqq7BPaGPcDHYGnIaOnUu3XX+cPlKN4w1UDs=;\n\th=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References:\n\t Content-Type:MIME-Version;\n b=kqUw4VbopznGgQkKkc0u59mrlZIWgyzC3IkpYu1TNIQiUDO3jXvI+KzJInIXTdfy/O31o/LXF9qEPlf07MnDrXHfLTVQ1OY56JWkBjVCT+hoQothiXk3YoZ3NSOq2rBb3vq+jBrIl0seVU95IA/l8OsGoNtoc09AoPszY0ySzq8=",
            "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;\n bh=LfmEKuSDebMAxunONx1yWbnk6UZDGWJuV+B1JzN3k24=;\n b=eGpmAe7tNXUNj+VmivAv2BWz/oYqER3iVI9HG1oMZPrx0tGDDR/GCbSTcHAWw+6yj7eabe/IfkOQmGc8s3rjy6Redn9gXM0WD53ksx9bC777SAqVZD5NjwLdwsUpcP4hsyQ4hY9tSylT6f3GAAaa+MPRn3IRgZ9h1PYHinAlTqVPdUi/oMqsHLypxDPmXJS/IMd0/KcEQONHquV9YPvAF9LU3OEjKiyALf6e8gRPS3ikrwKOp4TQJdKVrDdRxoq+hE6ufGJB+4WgjohxPYlM2BsGHsMg3+jXbJSPhyy9yzwuFricqG4T99pfe60hKGDNXJffzjKLEOHa/ki99kG8LA=="
        ],
        "ARC-Authentication-Results": [
            "i=2; smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=nxp.com;\n spf=pass smtp.mailfrom=nxp.com;\n dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com\n header.b=cNQxRuTN; arc=fail smtp.client-ip=52.101.69.64",
            "i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass\n header.d=nxp.com; arc=none"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=LfmEKuSDebMAxunONx1yWbnk6UZDGWJuV+B1JzN3k24=;\n b=cNQxRuTNSB1LEy6NBckZ1ok4y+QQHgkQbu9mh1IPhHoiGpW46UY2hrJys7s37ZgYbvas00Mg4K/CTvuBHwfVcq3tlo6wNFAuahYU5f8+rI5SmTeZ1sqIK5k24+G1A/1NOz6q1GZgJnLMaZKKs3d39LgvFTXEQ7yBEPZHSelmZYfdC1shoyvu6xQPjl2aiauJoDOl3DN2vz3sT5LZLBLdbMzIlrlxfy39YBYBAP8QEZhBw+5/N2rvmdI0SrG2aHfjiBhtCUKJaD5THkmHdSfmjc5kipZmZxCL9c0U3LkuMsYPrzWF/bGhbfLGYK0Hwyjof4raKDaEC0LN1nSjvZqVsQ==",
        "From": "Vladimir Oltean <vladimir.oltean@nxp.com>",
        "To": "linux-phy@lists.infradead.org",
        "Cc": "Vinod Koul <vkoul@kernel.org>,\n\tNeil Armstrong <neil.armstrong@linaro.org>,\n\tdri-devel@lists.freedesktop.org,\n\tfreedreno@lists.freedesktop.org,\n\tlinux-arm-kernel@lists.infradead.org,\n\tlinux-arm-msm@vger.kernel.org,\n\tlinux-can@vger.kernel.org,\n\tlinux-gpio@vger.kernel.org,\n\tlinux-ide@vger.kernel.org,\n\tlinux-kernel@vger.kernel.org,\n\tlinux-media@vger.kernel.org,\n\tlinux-pci@vger.kernel.org,\n\tlinux-renesas-soc@vger.kernel.org,\n\tlinux-riscv@lists.infradead.org,\n\tlinux-rockchip@lists.infradead.org,\n\tlinux-samsung-soc@vger.kernel.org,\n\tlinux-scsi@vger.kernel.org,\n\tlinux-sunxi@lists.linux.dev,\n\tlinux-tegra@vger.kernel.org,\n\tlinux-usb@vger.kernel.org,\n\tnetdev@vger.kernel.org,\n\tspacemit@lists.linux.dev,\n\tUNGLinuxDriver@microchip.com,\n\tCan Guo <quic_cang@quicinc.com>,\n\t\"James E.J. Bottomley\" <James.Bottomley@HansenPartnership.com>,\n\t\"Martin K. Petersen\" <martin.petersen@oracle.com>,\n\tDmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>,\n\tNitin Rawat <quic_nitirawa@quicinc.com>,\n\tManivannan Sadhasivam <mani@kernel.org>",
        "Subject": "[PATCH v8 phy-next 13/31] scsi: ufs: qcom: keep separate track of PHY\n power state",
        "Date": "Tue,  5 May 2026 13:05:05 +0300",
        "Message-Id": "<20260505100523.1922388-14-vladimir.oltean@nxp.com>",
        "X-Mailer": "git-send-email 2.34.1",
        "In-Reply-To": "<20260505100523.1922388-1-vladimir.oltean@nxp.com>",
        "References": "<20260505100523.1922388-1-vladimir.oltean@nxp.com>",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain",
        "X-ClientProxiedBy": "FRYP281CA0017.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10::27)\n To AM9PR04MB8585.eurprd04.prod.outlook.com (2603:10a6:20b:438::13)",
        "Precedence": "bulk",
        "X-Mailing-List": "linux-pci@vger.kernel.org",
        "List-Id": "<linux-pci.vger.kernel.org>",
        "List-Subscribe": "<mailto:linux-pci+subscribe@vger.kernel.org>",
        "List-Unsubscribe": "<mailto:linux-pci+unsubscribe@vger.kernel.org>",
        "MIME-Version": "1.0",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-TrafficTypeDiagnostic": "AM9PR04MB8585:EE_|DB9PR04MB8363:EE_",
        "X-MS-Office365-Filtering-Correlation-Id": "ed82a3ee-85bc-486b-5dd2-08deaa8dea31",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam": "\n\tBCL:0;ARA:13230040|376014|1800799024|19092799006|7416014|366016|22082099003|18002099003|56012099003;",
        "X-Microsoft-Antispam-Message-Info": "\n\t2ZHidZ2Z9XG1cUXbqmlQK9ajqsxCHl1TDtw5FP0bz1JO9Zif5/lv8mMRG15eqeTY49ycBf8/gOu3aps4JDXGPvvDw2Ji1J6Mr7xrVPatlT2O2Sl4BFGxG49TYFoA43igGaw7Q/oSXTudwWeyP3oTUR8rHdr9UsyGWwvZMRdO6DcwtP1JohNpOd5Eyxtt3kFEXzjbHC2KM5F9BorqJOb7lzVB0OCB5XZoY5oI+kE7EWigMu4ygsHSLIJ6P3ug476hURVhkeBp2C6TFsE05Q3AnLXVNoQEEoTaxihhFmWxTC0LwgAA3nUIMs42I8V0AEGh/ACOqGj9dCaSphO2kDo5meNhFG1IWRjaPbXVuI7k2rK3IN6Bv5waHZfAKYIt4VAazoY9pgMGF6cclacadREjpHCUqCAlMFEZ6LQIrZWp/s+BKaG9zoElPbgnckbvn/H0KJ6lO5r/QFf+DwGXZL/SbfoYbmJlhs4Ms7KMM9byRH8c2Bak1KoVq2CBfgA+kAK5MBlsy1ioHZOqcN9veew2OVn4wdHlAjok1q5nIv8+Ph9xf+QBeEcu8mYSdTBekhsCNbvqENYhOR4uX+I49Spl5Ui5f2hYZhHOXQF4n0WzyarxvtWbuKbP/4fXrY0nPAIL9Zz1SynwZ0feLItB02JM0Q==",
        "X-Forefront-Antispam-Report": "\n\tCIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM9PR04MB8585.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(19092799006)(7416014)(366016)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101;",
        "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1",
        "X-MS-Exchange-AntiSpam-MessageData-0": "\n RTADKoQWT0uoDwOTgZUdxgAVzPb3pml9Qb67ygWFJWHTxcf1hVkLAlgnNM4wpZ9a2yAjO83adLRx13mhC/togpTw8FNWfJbbhevPkTOsvgKEJ9FLeWn2fB8HAQL9z5QQtz5kNucwHzBxfirGSsZYnnW631OXNY19Yvcm/1/vxyzm5UxdfqQS/OPjy2C0AMHDyOnwm5lk4DJyNR59acUY3FmuhXe30HOIhGeGyLtwCZdzby+pyRguK0+vnVmMPHJuCOXEiifxDs8N/4kYtOOsSm611VVQXqyyAypdGB9X1u35wSCYqaao9WFDnzhQJzBvZ0ZkxwJSeuu/6MCnyg7+bSdjslmWs7Re/+zANWOepaF+LCoskwR92LLY5urEyfnS0zrZ0PttNCYVOrSGhmSC5nR5qXgSSCnCZGwb9nejn1AlEzCsTMRmJhHgitgT/d8CF8DJhoazc2JNoWvkfaLYbSyYed7G8QIFJHZO3E2nAaJHS1M3jl2JPWwhHERCcZh/TgPq7ehsOTKCq55ztCw3nBhqVRqb5AaYS3cG3NX8R8R5sFcbxTQLISndhd9RV8hg8WPPSSQhh7S/wG1JITBF2NWOGtcWkGxn2n7kkokZYirSoc5Ztbt0etryoLlDNvNwfRjBR68zQ0XXIQNnqRHd9jhDIbm6PNriVQV8aR4g3cu+ph61Sixmvk7vAHy+U/uuINgqd8yju+OWAkndQ3BspH0lH3TvxjT7ufg/nlRu/NYhZ4bRFW/CV/Vw45yOaWn/SHT6e1XT8HHckxwmNytRYKqsGmySFgtuylo9Fq/csl7/5fbllbhPlWnRDZ2zNXHpWl5K2SZ9sFbERv9bsiL9ayJFiw3bQCrWXDU2F250Nl5nfmiapQ8ai87t9Cwf7aN43cNfaWGw6TtVAmng+uNjSXgcPW7soznEAQQCu4HqLN2E70TzOxj7Qx5FqMaLlILBq0EpSBH1ve8gsZ4pZWX5wxE6t1RWlC+HBR6N2dTrFFLlOpS2T6kTRnvFfrxRLemWJ/2Qy+Uh0F/sFKDw+135dL2lqMqSlXVf3R5zQD93Idi+t/xBM7j+G0KT1LnYBfnUdsr4RDTmfTLlj3WcQGSHilarH47i6d/vTJZNYRYIHwGiFAvMvvvrkfTY4GLsWU4+MD+o35REcGKwPh6NhbHe2+FFQURJm/5vLhh4maxj4zW82YWfpdIjkWy+xM7J7QamxISCgo7o0vupeG6WF70axtWE2a0iHFb8Y6JHMyVY0apYIy+Q6c3Veo7qDwIbafjfRO51CM0VwED5qkPTPvnuB6/TdI0Mp3LPjY/0HMUciSgA5NGuQUNubQLqAZQC5lx/I9ssHeVkd6ik0yuPfWyFBBzhqmZi89fbC64x1fAsxhfxPKW4OLxis6MZu4djr4qsSPmqvt06Oa745gtp2Cf0MOZcYSoxuNfb8Ct1CNrWXQzq5Kg9fuCykaRAywRDRSJcC/YWahFIRxZ6XYjFgka35al68tCX4OZ2bJ1+NAX2gLuQygttT9PvPbhMj1V4F3aOh13qUYE5OEqt1vH3Jk54zEcticxEqCXmDzJVGpBFQQfF5FY+vk2/vbcOnnpG5M3EFtrDNiSUTGH3k3yLU+GyswP4NtZeTTEHY6ou65ASuvYURP+flZuhRwLvD8khJRn28zmx9ACboKHz4uUjT1DObpcWUwQJSndzcUostRsLhWCrDLE4+Rb8N3weFV4bOVSapg1iDfi3AClEd8hNkhYzsQ==",
        "X-OriginatorOrg": "nxp.com",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n ed82a3ee-85bc-486b-5dd2-08deaa8dea31",
        "X-MS-Exchange-CrossTenant-AuthSource": "AM9PR04MB8585.eurprd04.prod.outlook.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Internal",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "05 May 2026 10:06:03.3376\n (UTC)",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted",
        "X-MS-Exchange-CrossTenant-Id": "686ea1d3-bc2b-4c6f-a92c-d99c5c301635",
        "X-MS-Exchange-CrossTenant-MailboxType": "HOSTED",
        "X-MS-Exchange-CrossTenant-UserPrincipalName": "\n 74OiZfYv6Q5G0wNXi3L0k9sfGcWt2YDI3PCFJcXjzIj+HvoRn265eWOU1QWM8moWjPOlIxFo+Ja3xrisvCk1+g==",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "DB9PR04MB8363"
    },
    "content": "The Generic PHY API needs the following call order:\nphy_init() -> phy_power_on() -> phy_power_off() -> phy_exit()\nwith a balanced number of phy_init() <-> phy_exit() and\nphy_power_on() <-> phy_power_off() calls.\n\nThe UFS framework is not exactly great in helping out with obeying these\nrequirements. For example, the Qualcomm UFS HCD driver insists pairing\nthe PHY power to the clock setup operations. But during driver removal,\nwe have:\n\nufshcd_hba_exit()\n-> ufshcd_variant_hba_exit()\n   -> ufs_qcom_exit()\n-> ufshcd_setup_clocks(hba, false)\n\nwhich means that we will underflow the PHY power_count.\n\nAdding a \"bool power_count\" to the driver and checking it before each\ncall helps avoid this issue.\n\nSigned-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>\n---\nCc: Can Guo <quic_cang@quicinc.com>\nCc: \"James E.J. Bottomley\" <James.Bottomley@HansenPartnership.com>\nCc: \"Martin K. Petersen\" <martin.petersen@oracle.com>\nCc: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>\nCc: Nitin Rawat <quic_nitirawa@quicinc.com>\nCc: Manivannan Sadhasivam <mani@kernel.org>\n\nv7->v8: patch is new to fix an issue reported by Sashiko\nhttps://sashiko.dev/#/patchset/20260430110652.558622-1-vladimir.oltean@nxp.com\n---\n drivers/ufs/host/ufs-qcom.c | 53 ++++++++++++++++++++++++++++---------\n drivers/ufs/host/ufs-qcom.h |  1 +\n 2 files changed, 41 insertions(+), 13 deletions(-)",
    "diff": "diff --git a/drivers/ufs/host/ufs-qcom.c b/drivers/ufs/host/ufs-qcom.c\nindex e28edcfd13a1..c547d8643480 100644\n--- a/drivers/ufs/host/ufs-qcom.c\n+++ b/drivers/ufs/host/ufs-qcom.c\n@@ -485,6 +485,42 @@ static u32 ufs_qcom_get_hs_gear(struct ufs_hba *hba)\n \treturn UFS_HS_G3;\n }\n \n+static int ufs_qcom_phy_power_on(struct ufs_qcom_host *host)\n+{\n+\tint ret;\n+\n+\tif (host->phy_powered_on)\n+\t\treturn 0;\n+\n+\tret = phy_power_on(host->generic_phy);\n+\tif (ret) {\n+\t\tdev_err(host->hba->dev, \"Failed to power on PHY: %pe\\n\",\n+\t\t\tERR_PTR(ret));\n+\t\treturn ret;\n+\t}\n+\n+\thost->phy_powered_on = true;\n+\n+\treturn 0;\n+}\n+\n+static void ufs_qcom_phy_power_off(struct ufs_qcom_host *host)\n+{\n+\tint ret;\n+\n+\tif (!host->phy_powered_on)\n+\t\treturn;\n+\n+\tret = phy_power_off(host->generic_phy);\n+\tif (ret) {\n+\t\tdev_warn(host->hba->dev, \"Failed to power off PHY: %pe\\n\",\n+\t\t\t ERR_PTR(ret));\n+\t\treturn;\n+\t}\n+\n+\thost->phy_powered_on = false;\n+}\n+\n static int ufs_qcom_phy_change_mode(struct ufs_hba *hba)\n {\n \tstruct ufs_qcom_host *host = ufshcd_get_variant(hba);\n@@ -1390,7 +1426,6 @@ static int ufs_qcom_setup_clocks(struct ufs_hba *hba, bool on,\n \t\t\t\t enum ufs_notify_change_status status)\n {\n \tstruct ufs_qcom_host *host = ufshcd_get_variant(hba);\n-\tstruct phy *phy;\n \tint err;\n \n \t/*\n@@ -1401,8 +1436,6 @@ static int ufs_qcom_setup_clocks(struct ufs_hba *hba, bool on,\n \tif (!host)\n \t\treturn 0;\n \n-\tphy = host->generic_phy;\n-\n \tswitch (status) {\n \tcase PRE_CHANGE:\n \t\tif (on) {\n@@ -1420,20 +1453,14 @@ static int ufs_qcom_setup_clocks(struct ufs_hba *hba, bool on,\n \t\t\t\tufs_qcom_dev_ref_clk_ctrl(host, false);\n \t\t\t}\n \n-\t\t\terr = phy_power_off(phy);\n-\t\t\tif (err) {\n-\t\t\t\tdev_err(hba->dev, \"phy power off failed, ret=%d\\n\", err);\n-\t\t\t\treturn err;\n-\t\t\t}\n+\t\t\tufs_qcom_phy_power_off(host);\n \t\t}\n \t\tbreak;\n \tcase POST_CHANGE:\n \t\tif (on) {\n-\t\t\terr = phy_power_on(phy);\n-\t\t\tif (err) {\n-\t\t\t\tdev_err(hba->dev, \"phy power on failed, ret = %d\\n\", err);\n+\t\t\terr = ufs_qcom_phy_power_on(host);\n+\t\t\tif (err)\n \t\t\t\treturn err;\n-\t\t\t}\n \n \t\t\t/* enable the device ref clock for HS mode*/\n \t\t\tif (ufshcd_is_hs_mode(&hba->pwr_info))\n@@ -1629,7 +1656,7 @@ static void ufs_qcom_exit(struct ufs_hba *hba)\n \tstruct ufs_qcom_host *host = ufshcd_get_variant(hba);\n \n \tufs_qcom_disable_lane_clks(host);\n-\tphy_power_off(host->generic_phy);\n+\tufs_qcom_phy_power_off(host);\n \tphy_exit(host->generic_phy);\n }\n \ndiff --git a/drivers/ufs/host/ufs-qcom.h b/drivers/ufs/host/ufs-qcom.h\nindex 5d083331a7f4..6eafba3c203b 100644\n--- a/drivers/ufs/host/ufs-qcom.h\n+++ b/drivers/ufs/host/ufs-qcom.h\n@@ -322,6 +322,7 @@ struct ufs_qcom_host {\n \tstruct clk_bulk_data *clks;\n \tu32 num_clks;\n \tbool is_lane_clks_enabled;\n+\tbool phy_powered_on;\n \n \tstruct icc_path *icc_ddr;\n \tstruct icc_path *icc_cpu;\n",
    "prefixes": [
        "v8",
        "phy-next",
        "13/31"
    ]
}