firmware: arm_scmi: Cleanup the core driver removal callback
authorCristian Marussi <cristian.marussi@arm.com>
Fri, 28 Oct 2022 14:08:26 +0000 (15:08 +0100)
committerSudeep Holla <sudeep.holla@arm.com>
Tue, 1 Nov 2022 11:30:13 +0000 (11:30 +0000)
commit3f4071cbd2063b917486d1047a4da47718215fee
treed7a15cd643cc4d068ac0a91313d3b0c9126de184
parent9abf2313adc1ca1b6180c508c25f22f9395cc780
firmware: arm_scmi: Cleanup the core driver removal callback

Platform drivers .remove callbacks are not supposed to fail and report
errors. Such errors are indeed ignored by the core platform drivers
and the driver unbind process is anyway completed.

The SCMI core platform driver as it is now, instead, bails out reporting
an error in case of an explicit unbind request.

Fix the removal path by adding proper device links between the core SCMI
device and the SCMI protocol devices so that a full SCMI stack unbind is
triggered when the core driver is removed. The remove process does not
bail out anymore on the anomalous conditions triggered by an explicit
unbind but the user is still warned.

Reported-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Cristian Marussi <cristian.marussi@arm.com>
Link: https://lore.kernel.org/r/20221028140833.280091-1-cristian.marussi@arm.com
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
drivers/firmware/arm_scmi/bus.c
drivers/firmware/arm_scmi/common.h
drivers/firmware/arm_scmi/driver.c