arch: Disable priority inheritance on all semaphores used for signaling in all SD card drivers
This commit is contained in:
parent
8b07aa6f7c
commit
bb6bfa633e
@ -52,6 +52,7 @@
|
||||
#include <nuttx/arch.h>
|
||||
#include <nuttx/sdio.h>
|
||||
#include <nuttx/wqueue.h>
|
||||
#include <nuttx/semaphore.h>
|
||||
#include <nuttx/mmcsd.h>
|
||||
|
||||
#include <nuttx/irq.h>
|
||||
@ -2774,8 +2775,18 @@ FAR struct sdio_dev_s *sdhc_initialize(int slotno)
|
||||
DEBUGASSERT(slotno == 0);
|
||||
|
||||
/* Initialize the SDHC slot structure data structure */
|
||||
/* Initialize semaphores */
|
||||
|
||||
sem_init(&priv->waitsem, 0, 0);
|
||||
|
||||
/* The waitsem semaphore is used for signaling and, hence, should not have
|
||||
* priority inheritance enabled.
|
||||
*/
|
||||
|
||||
sem_setprotocol(&priv->waitsem, SEM_PRIO_NONE);
|
||||
|
||||
/* Create a watchdog timer */
|
||||
|
||||
priv->waitwdog = wd_create();
|
||||
DEBUGASSERT(priv->waitwdog);
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
/****************************************************************************
|
||||
* arch/arm/src/lpc17xx/lpc17_sdcard.c
|
||||
*
|
||||
* Copyright (C) 2013-2014 Gregory Nutt. All rights reserved.
|
||||
* Copyright (C) 2013-2014, 2016 Gregory Nutt. All rights reserved.
|
||||
* Author: Gregory Nutt <gnutt@nuttx.org>
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@ -52,6 +52,7 @@
|
||||
#include <nuttx/arch.h>
|
||||
#include <nuttx/sdio.h>
|
||||
#include <nuttx/wqueue.h>
|
||||
#include <nuttx/semaphore.h>
|
||||
#include <nuttx/mmcsd.h>
|
||||
|
||||
#include <nuttx/irq.h>
|
||||
@ -2699,8 +2700,18 @@ FAR struct sdio_dev_s *sdio_initialize(int slotno)
|
||||
putreg32(regval, LPC17_SYSCON_PCONP);
|
||||
|
||||
/* Initialize the SD card slot structure */
|
||||
/* Initialize semaphores */
|
||||
|
||||
sem_init(&priv->waitsem, 0, 0);
|
||||
|
||||
/* The waitsem semaphore is used for signaling and, hence, should not have
|
||||
* priority inheritance enabled.
|
||||
*/
|
||||
|
||||
sem_setprotocol(&priv->waitsem, SEM_PRIO_NONE);
|
||||
|
||||
/* Create a watchdog timer */
|
||||
|
||||
priv->waitwdog = wd_create();
|
||||
DEBUGASSERT(priv->waitwdog);
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
/****************************************************************************
|
||||
* arch/arm/src/sam34/sam_hsmci.c
|
||||
*
|
||||
* Copyright (C) 2010, 2012-2014 Gregory Nutt. All rights reserved.
|
||||
* Copyright (C) 2010, 2012-2014, 2016 Gregory Nutt. All rights reserved.
|
||||
* Author: Gregory Nutt <gnutt@nuttx.org>
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@ -52,6 +52,7 @@
|
||||
#include <nuttx/clock.h>
|
||||
#include <nuttx/sdio.h>
|
||||
#include <nuttx/wqueue.h>
|
||||
#include <nuttx/semaphore.h>
|
||||
#include <nuttx/mmcsd.h>
|
||||
|
||||
#include <nuttx/irq.h>
|
||||
@ -2668,8 +2669,18 @@ FAR struct sdio_dev_s *sdio_initialize(int slotno)
|
||||
mcinfo("slotno: %d\n", slotno);
|
||||
|
||||
/* Initialize the HSMCI slot structure */
|
||||
/* Initialize semaphores */
|
||||
|
||||
sem_init(&priv->waitsem, 0, 0);
|
||||
|
||||
/* The waitsem semaphore is used for signaling and, hence, should not have
|
||||
* priority inheritance enabled.
|
||||
*/
|
||||
|
||||
sem_setprotocol(&priv->waitsem, SEM_PRIO_NONE);
|
||||
|
||||
/* Create a watchdog timer */
|
||||
|
||||
priv->waitwdog = wd_create();
|
||||
DEBUGASSERT(priv->waitwdog);
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
/****************************************************************************
|
||||
* arch/arm/src/sama5/sam_hsmci.c
|
||||
*
|
||||
* Copyright (C) 2013-2014 Gregory Nutt. All rights reserved.
|
||||
* Copyright (C) 2013-2014, 2016 Gregory Nutt. All rights reserved.
|
||||
* Author: Gregory Nutt <gnutt@nuttx.org>
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@ -52,6 +52,7 @@
|
||||
#include <nuttx/wdog.h>
|
||||
#include <nuttx/sdio.h>
|
||||
#include <nuttx/wqueue.h>
|
||||
#include <nuttx/semaphore.h>
|
||||
#include <nuttx/mmcsd.h>
|
||||
|
||||
#include <nuttx/irq.h>
|
||||
@ -3331,8 +3332,18 @@ FAR struct sdio_dev_s *sdio_initialize(int slotno)
|
||||
priv, priv->base, priv->hsmci, dmac, pid);
|
||||
|
||||
/* Initialize the HSMCI slot structure */
|
||||
/* Initialize semaphores */
|
||||
|
||||
sem_init(&priv->waitsem, 0, 0);
|
||||
|
||||
/* The waitsem semaphore is used for signaling and, hence, should not have
|
||||
* priority inheritance enabled.
|
||||
*/
|
||||
|
||||
sem_setprotocol(&priv->waitsem, SEM_PRIO_NONE);
|
||||
|
||||
/* Create a watchdog timer */
|
||||
|
||||
priv->waitwdog = wd_create();
|
||||
DEBUGASSERT(priv->waitwdog);
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
/****************************************************************************
|
||||
* arch/arm/src/samv7/sam_hsmci.c
|
||||
*
|
||||
* Copyright (C) 2015 Gregory Nutt. All rights reserved.
|
||||
* Copyright (C) 2015-2016 Gregory Nutt. All rights reserved.
|
||||
* Author: Gregory Nutt <gnutt@nuttx.org>
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@ -52,6 +52,7 @@
|
||||
#include <nuttx/wdog.h>
|
||||
#include <nuttx/sdio.h>
|
||||
#include <nuttx/wqueue.h>
|
||||
#include <nuttx/semaphore.h>
|
||||
#include <nuttx/mmcsd.h>
|
||||
|
||||
#include <nuttx/irq.h>
|
||||
@ -3352,8 +3353,18 @@ FAR struct sdio_dev_s *sdio_initialize(int slotno)
|
||||
priv, priv->base, priv->hsmci, pid);
|
||||
|
||||
/* Initialize the HSMCI slot structure */
|
||||
/* Initialize semaphores */
|
||||
|
||||
sem_init(&priv->waitsem, 0, 0);
|
||||
|
||||
/* The waitsem semaphore is used for signaling and, hence, should not have
|
||||
* priority inheritance enabled.
|
||||
*/
|
||||
|
||||
sem_setprotocol(&priv->waitsem, SEM_PRIO_NONE);
|
||||
|
||||
/* Create a watchdog timer */
|
||||
|
||||
priv->waitwdog = wd_create();
|
||||
DEBUGASSERT(priv->waitwdog);
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
/****************************************************************************
|
||||
* arch/arm/src/stm32/stm32_sdio.c
|
||||
*
|
||||
* Copyright (C) 2009, 2011-2014 Gregory Nutt. All rights reserved.
|
||||
* Copyright (C) 2009, 2011-2014, 2016 Gregory Nutt. All rights reserved.
|
||||
* Author: Gregory Nutt <gnutt@nuttx.org>
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@ -52,6 +52,7 @@
|
||||
#include <nuttx/clock.h>
|
||||
#include <nuttx/sdio.h>
|
||||
#include <nuttx/wqueue.h>
|
||||
#include <nuttx/semaphore.h>
|
||||
#include <nuttx/mmcsd.h>
|
||||
|
||||
#include <nuttx/irq.h>
|
||||
@ -2853,8 +2854,18 @@ FAR struct sdio_dev_s *sdio_initialize(int slotno)
|
||||
struct stm32_dev_s *priv = &g_sdiodev;
|
||||
|
||||
/* Initialize the SDIO slot structure */
|
||||
/* Initialize semaphores */
|
||||
|
||||
sem_init(&priv->waitsem, 0, 0);
|
||||
|
||||
/* The waitsem semaphore is used for signaling and, hence, should not have
|
||||
* priority inheritance enabled.
|
||||
*/
|
||||
|
||||
sem_setprotocol(&priv->waitsem, SEM_PRIO_NONE);
|
||||
|
||||
/* Create a watchdog timer */
|
||||
|
||||
priv->waitwdog = wd_create();
|
||||
DEBUGASSERT(priv->waitwdog);
|
||||
|
||||
|
@ -53,6 +53,7 @@
|
||||
#include <nuttx/clock.h>
|
||||
#include <nuttx/sdio.h>
|
||||
#include <nuttx/wqueue.h>
|
||||
#include <nuttx/semaphore.h>
|
||||
#include <nuttx/mmcsd.h>
|
||||
|
||||
#include <nuttx/irq.h>
|
||||
@ -3214,8 +3215,18 @@ FAR struct sdio_dev_s *sdio_initialize(int slotno)
|
||||
}
|
||||
|
||||
/* Initialize the SDIO slot structure */
|
||||
/* Initialize semaphores */
|
||||
|
||||
sem_init(&priv->waitsem, 0, 0);
|
||||
|
||||
/* The waitsem semaphore is used for signaling and, hence, should not have
|
||||
* priority inheritance enabled.
|
||||
*/
|
||||
|
||||
sem_setprotocol(&priv->waitsem, SEM_PRIO_NONE);
|
||||
|
||||
/* Create a watchdog timer */
|
||||
|
||||
priv->waitwdog = wd_create();
|
||||
DEBUGASSERT(priv->waitwdog);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user