media: rc: nuvoton-cir: add locking to calls of nvt_enable_wake
Subsystems (2)
PATCH 13/16 media: rc: nuvoton-cir: add locking to calls of nvt_enable_wake
Add locking to nvt_enable_wake calls.
Signed-off-by Heiner Kallweit <[email protected]>
--- drivers/media/rc/nuvoton-cir.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-)
drivers/media/rc/nuvoton-cir.c +12 -6
@@ -1173,16 +1173,16 @@ static int nvt_suspend(struct pnp_dev *pdev, pm_message_t state)nvt_dbg ("%s called" , __func__); -/* zero out misc state tracking */ -spin_lock_irqsave (&nvt->nvt_lock, flags); - nvt->study_state =ST_STUDY_NONE ; - nvt->wake_state =ST_WAKE_NONE ; -spin_unlock_irqrestore (&nvt->nvt_lock, flags); -spin_lock_irqsave (&nvt->tx.lock, flags); nvt->tx.tx_state =ST_TX_NONE ;spin_unlock_irqrestore (&nvt->tx.lock, flags); +spin_lock_irqsave (&nvt->nvt_lock, flags); + +/* zero out misc state tracking */ + nvt->study_state =ST_STUDY_NONE ; + nvt->wake_state =ST_WAKE_NONE ; +/* disable all CIR interrupts */ nvt_cir_reg_write (nvt,0 ,CIR_IREN );
@@ -1192,6 +1192,8 @@ static int nvt_suspend(struct pnp_dev *pdev, pm_message_t state)/* make sure wake is enabled */ nvt_enable_wake (nvt); +spin_unlock_irqrestore (&nvt->nvt_lock, flags); +return 0 ; }
@@ -1210,7 +1212,11 @@ static int nvt_resume(struct pnp_dev *pdev)static void nvt_shutdown (struct pnp_dev *pdev) {struct nvt_dev *nvt =pnp_get_drvdata (pdev); +unsigned long flags; + +spin_lock_irqsave (&nvt->nvt_lock, flags);nvt_enable_wake (nvt); +spin_unlock_irqrestore (&nvt->nvt_lock, flags); }static const struct pnp_device_id nvt_ids[] = {
Signature · 1 line
2.6.4