[PATCH] max3100 driver

Christian Pellegrin
2008-10-10T12:09:17Z

Hi,

This patch fixes a problem about PM in my code that I found when testing
patches that went in -mm. The full patch against the Linus tree can be
found at http://www.evolware.org/chri/paciugo/

---
diff --git a/drivers/serial/max3100.c b/drivers/serial/max3100.c
index 7a269a6..462d6a4 100644
--- a/drivers/serial/max3100.c
+++ b/drivers/serial/max3100.c
@@ -566,6 +566,7 @@ static void max3100_shutdown(struct uart_port *port)
if (s->workqueue) {
flush_workqueue(s->workqueue);
destroy_workqueue(s->workqueue);
+ s->workqueue = NULL;
}
if (s->irq)
free_irq(s->irq, s);
@@ -614,6 +615,7 @@ static int max3100_startup(struct uart_port *port)
dev_warn(&s->spi->dev, "cannot allocate irq %d\n", s->irq);
s->irq = 0;
destroy_workqueue(s->workqueue);
+ s->workqueue = NULL;
return -EBUSY;
}

@@ -884,7 +886,8 @@ static int max3100_resume(struct spi_device *spi)
enable_irq(s->irq);

s->conf_commit = 1;
- max3100_dowork(s);
+ if (s->workqueue)
+ max3100_dowork(s);

return 0;
}