diff options
author | Sebastian Reichel <sre@kernel.org> | 2016-04-30 17:11:54 +0200 |
---|---|---|
committer | Sebastian Reichel <sre@kernel.org> | 2016-06-28 00:38:47 +0200 |
commit | 2083057aacecbd79ed73670763f07e6e7c1acd66 (patch) | |
tree | 92608f1337e83e95c3ae3c60145e24b253d2b57f /drivers/hsi/controllers/omap_ssi.h | |
parent | cb70e4c1bc96604953f5792f71ba9ba104705154 (diff) | |
download | blackbird-obmc-linux-2083057aacecbd79ed73670763f07e6e7c1acd66.tar.gz blackbird-obmc-linux-2083057aacecbd79ed73670763f07e6e7c1acd66.zip |
HSI: omap_ssi_port: replace wkin_cken with atomic bitmap operations
This simplifies the code and avoids holding a spin_lock when
runtime pm calls are made. Once the irq_safe flag is removed
for omap_ssi's runtime pm, pm_runtime_get/put_sync can sleep,
which is a no-go while holding a spin_lock.
Signed-off-by: Sebastian Reichel <sre@kernel.org>
Tested-by: Pavel Machek <pavel@ucw.cz>
Diffstat (limited to 'drivers/hsi/controllers/omap_ssi.h')
-rw-r--r-- | drivers/hsi/controllers/omap_ssi.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/hsi/controllers/omap_ssi.h b/drivers/hsi/controllers/omap_ssi.h index 88a523902a8f..6cdaad8805f7 100644 --- a/drivers/hsi/controllers/omap_ssi.h +++ b/drivers/hsi/controllers/omap_ssi.h @@ -35,6 +35,8 @@ #define SSI_MAX_GDD_LCH 8 #define SSI_BYTES_TO_FRAMES(x) ((((x) - 1) >> 2) + 1) +#define SSI_WAKE_EN 0 + /** * struct omap_ssm_ctx - OMAP synchronous serial module (TX/RX) context * @mode: Bit transmission mode @@ -75,7 +77,7 @@ struct omap_ssm_ctx { * @wake_irq: IRQ number for incoming wake line (-1 if none) * @wake_gpio: GPIO number for incoming wake line (-1 if none) * @pio_tasklet: Bottom half for PIO transfers and events - * @wkin_cken: Keep track of clock references due to the incoming wake line + * @flags: flags to keep track of states * @wk_refcount: Reference count for output wake line * @sys_mpu_enable: Context for the interrupt enable register for irq 0 * @sst: Context for the synchronous serial transmitter @@ -99,7 +101,7 @@ struct omap_ssi_port { struct gpio_desc *wake_gpio; struct tasklet_struct pio_tasklet; bool wktest:1; /* FIXME: HACK to be removed */ - bool wkin_cken:1; /* Workaround */ + unsigned long flags; unsigned int wk_refcount; /* OMAP SSI port context */ u32 sys_mpu_enable; /* We use only one irq */ |