summaryrefslogtreecommitdiffstats
path: root/pony_spi.c
diff options
context:
space:
mode:
authorCarl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>2016-03-13 16:24:09 +0000
committerCarl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>2016-03-13 16:24:09 +0000
commit8b6690ccbd9cf5f81aa2dc1a2095e75af172f819 (patch)
tree11f6e63c95d08816d185fb578345525dde3ffd5c /pony_spi.c
parent0be072cbe4d05b1e69d1c02291f3a2a544beb2af (diff)
downloadast2050-flashrom-8b6690ccbd9cf5f81aa2dc1a2095e75af172f819.zip
ast2050-flashrom-8b6690ccbd9cf5f81aa2dc1a2095e75af172f819.tar.gz
Shutdown serial port in pony_spi
Implement serial port shutdown both for regular termination and error conditions in pony_spi. Corresponding to flashrom svn r1952. Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net> Acked-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
Diffstat (limited to 'pony_spi.c')
-rw-r--r--pony_spi.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/pony_spi.c b/pony_spi.c
index 8a0f340..f8faeb3 100644
--- a/pony_spi.c
+++ b/pony_spi.c
@@ -103,6 +103,18 @@ static const struct bitbang_spi_master bitbang_spi_master_pony = {
.half_period = 0,
};
+static int pony_spi_shutdown(void *data)
+{
+ /* Shut down serial port communication */
+ int ret = serialport_shutdown(NULL);
+ if (ret)
+ msg_pdbg("Pony SPI shutdown failed.\n");
+ else
+ msg_pdbg("Pony SPI shutdown completed.\n");
+
+ return ret;
+}
+
int pony_spi_init(void)
{
int i, data_out;
@@ -120,6 +132,11 @@ int pony_spi_init(void)
free(arg);
return 1;
}
+ if (register_shutdown(pony_spi_shutdown, NULL) != 0) {
+ free(arg);
+ serialport_shutdown(NULL);
+ return 1;
+ }
have_device++;
}
free(arg);
OpenPOWER on IntegriCloud