Skip to content

Commit f9deb46

Browse files
ausyskingregkh
authored andcommitted
mei: gsc: demote unexpected reset print
Discrete graphic card can go to D3cold. On the exit from D3cold the link reset is performed. Driver did not expect such link reset and print warning. Print debug message for unexpected reset in discrete graphic case and remove infrastructure to print warning is some cases. Signed-off-by: Alexander Usyskin <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]> Link: https://lore.kernel.org/r/[email protected]
1 parent ecdddd2 commit f9deb46

File tree

3 files changed

+3
-62
lines changed

3 files changed

+3
-62
lines changed

drivers/misc/mei/hw-me.c

Lines changed: 3 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -493,43 +493,6 @@ static int mei_me_hw_ready_wait(struct mei_device *dev)
493493
return 0;
494494
}
495495

496-
/**
497-
* mei_me_check_fw_reset - check for the firmware reset error and exception conditions
498-
*
499-
* @dev: mei device
500-
*/
501-
static void mei_me_check_fw_reset(struct mei_device *dev)
502-
{
503-
struct mei_fw_status fw_status;
504-
char fw_sts_str[MEI_FW_STATUS_STR_SZ] = {0};
505-
int ret;
506-
u32 fw_pm_event = 0;
507-
508-
if (!dev->saved_fw_status_flag)
509-
goto end;
510-
511-
if (dev->gsc_reset_to_pxp == MEI_DEV_RESET_TO_PXP_PERFORMED) {
512-
ret = mei_fw_status(dev, &fw_status);
513-
if (!ret) {
514-
fw_pm_event = fw_status.status[1] & PCI_CFG_HFS_2_PM_EVENT_MASK;
515-
if (fw_pm_event != PCI_CFG_HFS_2_PM_CMOFF_TO_CMX_ERROR &&
516-
fw_pm_event != PCI_CFG_HFS_2_PM_CM_RESET_ERROR)
517-
goto end;
518-
} else {
519-
dev_err(&dev->dev, "failed to read firmware status: %d\n", ret);
520-
}
521-
}
522-
523-
mei_fw_status2str(&dev->saved_fw_status, fw_sts_str, sizeof(fw_sts_str));
524-
dev_warn(&dev->dev, "unexpected reset: fw_pm_event = 0x%x, dev_state = %u fw status = %s\n",
525-
fw_pm_event, dev->saved_dev_state, fw_sts_str);
526-
527-
end:
528-
if (dev->gsc_reset_to_pxp == MEI_DEV_RESET_TO_PXP_PERFORMED)
529-
dev->gsc_reset_to_pxp = MEI_DEV_RESET_TO_PXP_DONE;
530-
dev->saved_fw_status_flag = false;
531-
}
532-
533496
/**
534497
* mei_me_hw_start - hw start routine
535498
*
@@ -540,8 +503,9 @@ static int mei_me_hw_start(struct mei_device *dev)
540503
{
541504
int ret = mei_me_hw_ready_wait(dev);
542505

543-
if (kind_is_gsc(dev) || kind_is_gscfi(dev))
544-
mei_me_check_fw_reset(dev);
506+
if ((kind_is_gsc(dev) || kind_is_gscfi(dev)) &&
507+
dev->gsc_reset_to_pxp == MEI_DEV_RESET_TO_PXP_PERFORMED)
508+
dev->gsc_reset_to_pxp = MEI_DEV_RESET_TO_PXP_DONE;
545509
if (ret)
546510
return ret;
547511
dev_dbg(&dev->dev, "hw is ready\n");

drivers/misc/mei/init.c

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -89,22 +89,6 @@ void mei_cancel_work(struct mei_device *dev)
8989
}
9090
EXPORT_SYMBOL_GPL(mei_cancel_work);
9191

92-
static void mei_save_fw_status(struct mei_device *dev)
93-
{
94-
struct mei_fw_status fw_status;
95-
int ret;
96-
97-
ret = mei_fw_status(dev, &fw_status);
98-
if (ret) {
99-
dev_err(&dev->dev, "failed to read firmware status: %d\n", ret);
100-
return;
101-
}
102-
103-
dev->saved_dev_state = dev->dev_state;
104-
dev->saved_fw_status_flag = true;
105-
memcpy(&dev->saved_fw_status, &fw_status, sizeof(fw_status));
106-
}
107-
10892
/**
10993
* mei_reset - resets host and fw.
11094
*
@@ -128,7 +112,6 @@ int mei_reset(struct mei_device *dev)
128112
if (kind_is_gsc(dev) || kind_is_gscfi(dev)) {
129113
dev_dbg(&dev->dev, "unexpected reset: dev_state = %s fw status = %s\n",
130114
mei_dev_state_str(state), fw_sts_str);
131-
mei_save_fw_status(dev);
132115
} else {
133116
dev_warn(&dev->dev, "unexpected reset: dev_state = %s fw status = %s\n",
134117
mei_dev_state_str(state), fw_sts_str);

drivers/misc/mei/mei_dev.h

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -551,9 +551,6 @@ struct mei_dev_timeouts {
551551
*
552552
* @dbgfs_dir : debugfs mei root directory
553553
*
554-
* @saved_fw_status : saved firmware status
555-
* @saved_dev_state : saved device state
556-
* @saved_fw_status_flag : flag indicating that firmware status was saved
557554
* @gsc_reset_to_pxp : state of reset to the PXP mode
558555
*
559556
* @ops: : hw specific operations
@@ -654,9 +651,6 @@ struct mei_device {
654651
struct dentry *dbgfs_dir;
655652
#endif /* CONFIG_DEBUG_FS */
656653

657-
struct mei_fw_status saved_fw_status;
658-
enum mei_dev_state saved_dev_state;
659-
bool saved_fw_status_flag;
660654
enum mei_dev_reset_to_pxp gsc_reset_to_pxp;
661655

662656
const struct mei_hw_ops *ops;

0 commit comments

Comments
 (0)