diff mbox series

[v10,3/5] mei: gsc: setup char driver alive in spite of firmware handshake failure

Message ID 20220308163654.942820-4-alexander.usyskin@intel.com (mailing list archive)
State New, archived
Headers show
Series Add driver for GSC controller | expand

Commit Message

Alexander Usyskin March 8, 2022, 4:36 p.m. UTC
Setup char device in spite of firmware handshake failure.
In order to provide host access to the firmware status registers and other
information required for the manufacturing process.

Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com>
Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
---
 drivers/misc/mei/gsc-me.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

Comments

Daniele Ceraolo Spurio March 10, 2022, 12:28 a.m. UTC | #1
On 3/8/2022 8:36 AM, Alexander Usyskin wrote:
> Setup char device in spite of firmware handshake failure.
> In order to provide host access to the firmware status registers and other
> information required for the manufacturing process.

IMO this patch should be moved to after the patch that adds the logic to 
fetch the FW version, as that is interesting info for sysfs. Not a blocker.

>
> Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com>
> Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>

Reviewed-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>

Daniele

> ---
>   drivers/misc/mei/gsc-me.c | 11 ++++++-----
>   1 file changed, 6 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/misc/mei/gsc-me.c b/drivers/misc/mei/gsc-me.c
> index 0afae70e0609..cf427f6fdec9 100644
> --- a/drivers/misc/mei/gsc-me.c
> +++ b/drivers/misc/mei/gsc-me.c
> @@ -79,11 +79,12 @@ static int mei_gsc_probe(struct auxiliary_device *aux_dev,
>   	pm_runtime_set_active(device);
>   	pm_runtime_enable(device);
>   
> -	if (mei_start(dev)) {
> -		dev_err(device, "init hw failure.\n");
> -		ret = -ENODEV;
> -		goto err;
> -	}
> +	/* Continue to char device setup in spite of firmware handshake failure.
> +	 * In order to provide access to the firmware status registers to the user
> +	 * space via sysfs.
> +	 */
> +	if (mei_start(dev))
> +		dev_warn(device, "init hw failure.\n");
>   
>   	pm_runtime_set_autosuspend_delay(device, MEI_GSC_RPM_TIMEOUT);
>   	pm_runtime_use_autosuspend(device);
Alexander Usyskin March 13, 2022, 12:12 p.m. UTC | #2
> -----Original Message-----
> From: Ceraolo Spurio, Daniele <daniele.ceraolospurio@intel.com>
> Sent: Thursday, March 10, 2022 02:28
> To: Usyskin, Alexander <alexander.usyskin@intel.com>; Greg Kroah-
> Hartman <gregkh@linuxfoundation.org>; Jani Nikula
> <jani.nikula@linux.intel.com>; Joonas Lahtinen
> <joonas.lahtinen@linux.intel.com>; Vivi, Rodrigo <rodrigo.vivi@intel.com>;
> David Airlie <airlied@linux.ie>; Daniel Vetter <daniel@ffwll.ch>; Tvrtko
> Ursulin <tvrtko.ursulin@linux.intel.com>
> Cc: linux-kernel@vger.kernel.org; Winkler, Tomas
> <tomas.winkler@intel.com>; Lubart, Vitaly <vitaly.lubart@intel.com>; intel-
> gfx@lists.freedesktop.org
> Subject: Re: [Intel-gfx] [PATCH v10 3/5] mei: gsc: setup char driver alive in
> spite of firmware handshake failure
> 
> 
> 
> On 3/8/2022 8:36 AM, Alexander Usyskin wrote:
> > Setup char device in spite of firmware handshake failure.
> > In order to provide host access to the firmware status registers and other
> > information required for the manufacturing process.
> 
> IMO this patch should be moved to after the patch that adds the logic to
> fetch the FW version, as that is interesting info for sysfs. Not a blocker.
> 

Actually, the FW version is filled only if there is an established channel with FW.
Firmware status registers are the crucial information for debug, and it filled
in previous patches.
diff mbox series

Patch

diff --git a/drivers/misc/mei/gsc-me.c b/drivers/misc/mei/gsc-me.c
index 0afae70e0609..cf427f6fdec9 100644
--- a/drivers/misc/mei/gsc-me.c
+++ b/drivers/misc/mei/gsc-me.c
@@ -79,11 +79,12 @@  static int mei_gsc_probe(struct auxiliary_device *aux_dev,
 	pm_runtime_set_active(device);
 	pm_runtime_enable(device);
 
-	if (mei_start(dev)) {
-		dev_err(device, "init hw failure.\n");
-		ret = -ENODEV;
-		goto err;
-	}
+	/* Continue to char device setup in spite of firmware handshake failure.
+	 * In order to provide access to the firmware status registers to the user
+	 * space via sysfs.
+	 */
+	if (mei_start(dev))
+		dev_warn(device, "init hw failure.\n");
 
 	pm_runtime_set_autosuspend_delay(device, MEI_GSC_RPM_TIMEOUT);
 	pm_runtime_use_autosuspend(device);