From 8b6690ccbd9cf5f81aa2dc1a2095e75af172f819 Mon Sep 17 00:00:00 2001 From: Carl-Daniel Hailfinger Date: Sun, 13 Mar 2016 16:24:09 +0000 Subject: 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 Acked-by: Stefan Tauner --- pony_spi.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) 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); -- cgit v1.1