mirror of
https://github.com/apache/nuttx.git
synced 2026-06-05 07:12:54 +08:00
Cosmetic changes from review of last PR.
This commit is contained in:
@@ -46,9 +46,11 @@
|
|||||||
#include <nuttx/board.h>
|
#include <nuttx/board.h>
|
||||||
#include <nuttx/spi/spi.h>
|
#include <nuttx/spi/spi.h>
|
||||||
#include <nuttx/modem/altmdm.h>
|
#include <nuttx/modem/altmdm.h>
|
||||||
|
|
||||||
#if defined(CONFIG_MODEM_ALTMDM) && defined(CONFIG_CXD56_GPIO_IRQ)
|
#if defined(CONFIG_MODEM_ALTMDM) && defined(CONFIG_CXD56_GPIO_IRQ)
|
||||||
#include <arch/board/board.h>
|
#include <arch/board/board.h>
|
||||||
#include <arch/board/cxd56_altmdm.h>
|
#include <arch/board/cxd56_altmdm.h>
|
||||||
|
|
||||||
#include "cxd56_gpio.h"
|
#include "cxd56_gpio.h"
|
||||||
#include "cxd56_gpioint.h"
|
#include "cxd56_gpioint.h"
|
||||||
#include "cxd56_pinconfig.h"
|
#include "cxd56_pinconfig.h"
|
||||||
@@ -76,11 +78,11 @@
|
|||||||
#if defined(CONFIG_MODEM_ALTMDM) && defined(CONFIG_CXD56_GPIO_IRQ)
|
#if defined(CONFIG_MODEM_ALTMDM) && defined(CONFIG_CXD56_GPIO_IRQ)
|
||||||
|
|
||||||
struct altmdm_pincfg
|
struct altmdm_pincfg
|
||||||
{
|
{
|
||||||
uint32_t pin;
|
uint32_t pin;
|
||||||
bool input_enable;
|
bool input_enable;
|
||||||
bool init_val;
|
bool init_val;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -117,7 +119,7 @@ void board_altmdm_poweron(void)
|
|||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
/* power on altair modem device */
|
/* Power on altair modem device */
|
||||||
|
|
||||||
cxd56_gpio_config(ALTMDM_SHUTDOWN, false);
|
cxd56_gpio_config(ALTMDM_SHUTDOWN, false);
|
||||||
cxd56_gpio_write(ALTMDM_SHUTDOWN, true);
|
cxd56_gpio_write(ALTMDM_SHUTDOWN, true);
|
||||||
@@ -262,6 +264,7 @@ void board_altmdm_gpio_irq(uint32_t pin, uint32_t polarity,
|
|||||||
return;
|
return;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (noise_filter == ALTMDM_GPIOINT_NOISE_FILTER_ENABLE)
|
if (noise_filter == ALTMDM_GPIOINT_NOISE_FILTER_ENABLE)
|
||||||
{
|
{
|
||||||
nf = GPIOINT_NOISE_FILTER_ENABLE;
|
nf = GPIOINT_NOISE_FILTER_ENABLE;
|
||||||
@@ -270,6 +273,7 @@ void board_altmdm_gpio_irq(uint32_t pin, uint32_t polarity,
|
|||||||
{
|
{
|
||||||
nf = GPIOINT_NOISE_FILTER_DISABLE;
|
nf = GPIOINT_NOISE_FILTER_DISABLE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pin < NUM_OF_PINS)
|
if (pin < NUM_OF_PINS)
|
||||||
{
|
{
|
||||||
if (pincfg[pin].input_enable == true)
|
if (pincfg[pin].input_enable == true)
|
||||||
|
|||||||
@@ -81,7 +81,7 @@
|
|||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
#else
|
#else
|
||||||
#error "Select LTE SPI 4 or 5"
|
# error "Select LTE SPI 4 or 5"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
|
|||||||
@@ -40,25 +40,25 @@
|
|||||||
* Included Files
|
* Included Files
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
# include <nuttx/modem/altmdm.h>
|
#include <nuttx/modem/altmdm.h>
|
||||||
|
|
||||||
# include "altmdm_spi.h"
|
#include "altmdm_spi.h"
|
||||||
# include "altmdm_sys.h"
|
#include "altmdm_sys.h"
|
||||||
|
|
||||||
# if defined(CONFIG_MODEM_ALTMDM)
|
#if defined(CONFIG_MODEM_ALTMDM)
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Public Types
|
* Public Types
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
struct altmdm_dev_s
|
struct altmdm_dev_s
|
||||||
{
|
{
|
||||||
FAR char *path; /* Registration path */
|
FAR char *path; /* Registration path */
|
||||||
FAR struct spi_dev_s *spi;
|
FAR struct spi_dev_s *spi;
|
||||||
struct altmdm_spi_dev_s spidev;
|
struct altmdm_spi_dev_s spidev;
|
||||||
struct altmdm_sys_lock_s lock;
|
struct altmdm_sys_lock_s lock;
|
||||||
int poweron;
|
int poweron;
|
||||||
};
|
};
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Public Function Prototypes
|
* Public Function Prototypes
|
||||||
|
|||||||
@@ -550,6 +550,7 @@ static int send_modem_sleep_done(FAR struct altmdm_dev_s *priv, int result)
|
|||||||
{
|
{
|
||||||
ptn = EVENT_MODEM_SLEEP_REQ_DONE_NG;
|
ptn = EVENT_MODEM_SLEEP_REQ_DONE_NG;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = altmdm_sys_setflag(&g_sleep_done_flag, ptn);
|
ret = altmdm_sys_setflag(&g_sleep_done_flag, ptn);
|
||||||
if (ret != 0)
|
if (ret != 0)
|
||||||
{
|
{
|
||||||
@@ -850,6 +851,7 @@ static int exe_callback(uint32_t type, uint32_t cb_event)
|
|||||||
{
|
{
|
||||||
return -EPERM;
|
return -EPERM;
|
||||||
}
|
}
|
||||||
|
|
||||||
lcallback(cb_event);
|
lcallback(cb_event);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@@ -886,6 +888,7 @@ static int wakeup_modem_itself(FAR struct altmdm_dev_s *priv, bool wakeupreq)
|
|||||||
|
|
||||||
send_modem_wakeup_notif(priv);
|
send_modem_wakeup_notif(priv);
|
||||||
}
|
}
|
||||||
|
|
||||||
exe_callback(MODEM_PM_CB_TYPE_NORMAL, MODEM_PM_CB_WAKE);
|
exe_callback(MODEM_PM_CB_TYPE_NORMAL, MODEM_PM_CB_WAKE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -232,6 +232,7 @@ static int start_svtimer(FAR struct altmdm_dev_s *priv)
|
|||||||
{
|
{
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
priv->spidev.sleep_param.sv_timerid = timerid;
|
priv->spidev.sleep_param.sv_timerid = timerid;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@@ -338,6 +339,7 @@ static int wait_xferready(FAR struct altmdm_dev_s *priv)
|
|||||||
spidev->is_xferready = true;
|
spidev->is_xferready = true;
|
||||||
m_info("ready to xfer\n");
|
m_info("ready to xfer\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -398,6 +400,7 @@ static void init_rxbuffer(FAR struct altmdm_dev_s *priv,
|
|||||||
l_buff->buff_size = unit_size;
|
l_buff->buff_size = unit_size;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
*rxbuff = l_buff;
|
*rxbuff = l_buff;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -418,6 +421,7 @@ static void uninit_rxbuffer(FAR struct altmdm_dev_s *priv,
|
|||||||
{
|
{
|
||||||
kmm_free(rxbuff->buff_addr);
|
kmm_free(rxbuff->buff_addr);
|
||||||
}
|
}
|
||||||
|
|
||||||
kmm_free(rxbuff);
|
kmm_free(rxbuff);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -806,6 +810,7 @@ static int do_xferheader(FAR struct altmdm_dev_s *priv,
|
|||||||
spidev->tx_param.actual_size);
|
spidev->tx_param.actual_size);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!is_sleepreq)
|
if (!is_sleepreq)
|
||||||
{
|
{
|
||||||
alloc_rxbuffer(priv, &spidev->rx_param.rxbuff, MAX_PKT_SIZE);
|
alloc_rxbuffer(priv, &spidev->rx_param.rxbuff, MAX_PKT_SIZE);
|
||||||
@@ -815,6 +820,7 @@ static int do_xferheader(FAR struct altmdm_dev_s *priv,
|
|||||||
}
|
}
|
||||||
set_txheader_possibleofrx(priv, possibleofrx);
|
set_txheader_possibleofrx(priv, possibleofrx);
|
||||||
}
|
}
|
||||||
|
|
||||||
show_txheader(priv);
|
show_txheader(priv);
|
||||||
|
|
||||||
/* Wait for Receiver Ready to receive. */
|
/* Wait for Receiver Ready to receive. */
|
||||||
@@ -882,6 +888,7 @@ static int do_receivedata(FAR struct altmdm_dev_s *priv)
|
|||||||
|
|
||||||
ret = do_dmaxfer(priv, (void *)g_tmp_txbuff, rxbuff, dma_xfer_size);
|
ret = do_dmaxfer(priv, (void *)g_tmp_txbuff, rxbuff, dma_xfer_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
{
|
{
|
||||||
m_err("Rcv Data Failed. ret = %d.\n", ret);
|
m_err("Rcv Data Failed. ret = %d.\n", ret);
|
||||||
@@ -919,6 +926,7 @@ static int do_senddata(FAR struct altmdm_dev_s *priv)
|
|||||||
ret = do_dmaxfer(priv, (void *)spidev->tx_param.buff_addr,
|
ret = do_dmaxfer(priv, (void *)spidev->tx_param.buff_addr,
|
||||||
(void *)g_tmp_rxbuff, dma_xfer_size);
|
(void *)g_tmp_rxbuff, dma_xfer_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
{
|
{
|
||||||
m_err("ERR:%04d Snd Data Failed. ret = %d.\n", __LINE__, ret);
|
m_err("ERR:%04d Snd Data Failed. ret = %d.\n", __LINE__, ret);
|
||||||
@@ -971,6 +979,7 @@ static int do_trxdata(FAR struct altmdm_dev_s *priv)
|
|||||||
ret = do_dmaxfer(priv, (void *)spidev->tx_param.buff_addr, rxbuff,
|
ret = do_dmaxfer(priv, (void *)spidev->tx_param.buff_addr, rxbuff,
|
||||||
dma_xfer_size);
|
dma_xfer_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
{
|
{
|
||||||
m_err("ERR:%04d Trx Data Failed. ret = %d.\n", __LINE__, ret);
|
m_err("ERR:%04d Trx Data Failed. ret = %d.\n", __LINE__, ret);
|
||||||
@@ -1010,6 +1019,7 @@ static int do_receivedata_nobuff(FAR struct altmdm_dev_s *priv)
|
|||||||
ret = do_dmaxfer(priv, (void *)g_tmp_txbuff, (void *)g_tmp_rxbuff,
|
ret = do_dmaxfer(priv, (void *)g_tmp_txbuff, (void *)g_tmp_rxbuff,
|
||||||
dma_xfer_size);
|
dma_xfer_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
{
|
{
|
||||||
m_err("ERR:%04d Rcv Data Nobuff Failed. ret = %d.\n", __LINE__, ret);
|
m_err("ERR:%04d Rcv Data Nobuff Failed. ret = %d.\n", __LINE__, ret);
|
||||||
@@ -1064,6 +1074,7 @@ static int do_trxdata_norxbuff(FAR struct altmdm_dev_s *priv)
|
|||||||
ret = do_dmaxfer(priv, (void *)spidev->tx_param.buff_addr,
|
ret = do_dmaxfer(priv, (void *)spidev->tx_param.buff_addr,
|
||||||
(void *)g_tmp_rxbuff, dma_xfer_size);
|
(void *)g_tmp_rxbuff, dma_xfer_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
{
|
{
|
||||||
m_err("ERR:%04d Trx Data Norxbuff Failed. ret = %d.\n", __LINE__, ret);
|
m_err("ERR:%04d Trx Data Norxbuff Failed. ret = %d.\n", __LINE__, ret);
|
||||||
@@ -1105,6 +1116,7 @@ static int do_receivesleepdata(FAR struct altmdm_dev_s *priv, FAR int *resp)
|
|||||||
ret = do_dmaxfer(priv, (void *)g_tmp_txbuff, (void *)g_tmp_rxbuff,
|
ret = do_dmaxfer(priv, (void *)g_tmp_txbuff, (void *)g_tmp_rxbuff,
|
||||||
dma_xfer_size);
|
dma_xfer_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
{
|
{
|
||||||
m_err("ERR:%04d Rcv Sleep Resp Data Failed. ret = %d.\n",
|
m_err("ERR:%04d Rcv Sleep Resp Data Failed. ret = %d.\n",
|
||||||
@@ -1157,6 +1169,7 @@ static int do_receivereset(FAR struct altmdm_dev_s *priv)
|
|||||||
ret = do_dmaxfer(priv, (void *)g_tmp_txbuff, (void *)g_tmp_rxbuff,
|
ret = do_dmaxfer(priv, (void *)g_tmp_txbuff, (void *)g_tmp_rxbuff,
|
||||||
dma_xfer_size);
|
dma_xfer_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
{
|
{
|
||||||
m_err("ERR:%04d Rcv Reset Failed. ret = %d.\n", __LINE__, ret);
|
m_err("ERR:%04d Rcv Reset Failed. ret = %d.\n", __LINE__, ret);
|
||||||
@@ -1174,10 +1187,12 @@ static int do_receivereset(FAR struct altmdm_dev_s *priv)
|
|||||||
altmdm_pm_set_bootstatus(priv,
|
altmdm_pm_set_bootstatus(priv,
|
||||||
MODEM_PM_ERR_RESET_BOOTSTAT_BOOTING);
|
MODEM_PM_ERR_RESET_BOOTSTAT_BOOTING);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case RESET_BOOTSTAT_UPDATING:
|
case RESET_BOOTSTAT_UPDATING:
|
||||||
altmdm_pm_set_bootstatus(priv,
|
altmdm_pm_set_bootstatus(priv,
|
||||||
MODEM_PM_ERR_RESET_BOOTSTAT_UPDATING);
|
MODEM_PM_ERR_RESET_BOOTSTAT_UPDATING);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
m_err
|
m_err
|
||||||
("ERR:%04d Invalid payload of reset packet. %02x,%02x,%02x,%02x\n",
|
("ERR:%04d Invalid payload of reset packet. %02x,%02x,%02x,%02x\n",
|
||||||
@@ -1241,6 +1256,7 @@ static int do_trxreset(FAR struct altmdm_dev_s *priv)
|
|||||||
ret = do_dmaxfer(priv, (void *)spidev->tx_param.buff_addr,
|
ret = do_dmaxfer(priv, (void *)spidev->tx_param.buff_addr,
|
||||||
(void *)g_tmp_rxbuff, dma_xfer_size);
|
(void *)g_tmp_rxbuff, dma_xfer_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
{
|
{
|
||||||
m_err("ERR:%04d Trx Reset Failed. ret = %d.\n", __LINE__, ret);
|
m_err("ERR:%04d Trx Reset Failed. ret = %d.\n", __LINE__, ret);
|
||||||
@@ -1283,6 +1299,7 @@ static int do_xfersleep(FAR struct altmdm_dev_s *priv, uint32_t is_rcvrready)
|
|||||||
ret = resp;
|
ret = resp;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
{
|
{
|
||||||
ret = SLEEP_NG;
|
ret = SLEEP_NG;
|
||||||
@@ -1296,6 +1313,7 @@ static int do_xfersleep(FAR struct altmdm_dev_s *priv, uint32_t is_rcvrready)
|
|||||||
m_info("ready to xfer\n");
|
m_info("ready to xfer\n");
|
||||||
notify_xferready(priv);
|
notify_xferready(priv);
|
||||||
}
|
}
|
||||||
|
|
||||||
altmdm_pm_notify_reset(priv);
|
altmdm_pm_notify_reset(priv);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1328,6 +1346,7 @@ static uint32_t decide_xfermode(FAR struct altmdm_dev_s *priv,
|
|||||||
{
|
{
|
||||||
mode = MODE_TRXHEADERFAILRXREQ;
|
mode = MODE_TRXHEADERFAILRXREQ;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (spidev->rx_param.rxbuff != NULL)
|
if (spidev->rx_param.rxbuff != NULL)
|
||||||
{
|
{
|
||||||
free_rxbuffer(priv, spidev->rx_param.rxbuff);
|
free_rxbuffer(priv, spidev->rx_param.rxbuff);
|
||||||
@@ -1494,6 +1513,7 @@ static void done_xfer(FAR struct altmdm_dev_s *priv, uint32_t xfer_mode,
|
|||||||
{
|
{
|
||||||
spidev->tx_param.result = (ret < 0) ? ret : TRANS_OK;
|
spidev->tx_param.result = (ret < 0) ? ret : TRANS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
altmdm_sys_setflag(&spidev->tx_param.done_flag, EVENT_TX_DONE);
|
altmdm_sys_setflag(&spidev->tx_param.done_flag, EVENT_TX_DONE);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -1507,6 +1527,7 @@ static void done_xfer(FAR struct altmdm_dev_s *priv, uint32_t xfer_mode,
|
|||||||
{
|
{
|
||||||
spidev->tx_param.result = (ret < 0) ? ret : TRANS_OK;
|
spidev->tx_param.result = (ret < 0) ? ret : TRANS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
altmdm_sys_setflag(&spidev->tx_param.done_flag, EVENT_TX_DONE);
|
altmdm_sys_setflag(&spidev->tx_param.done_flag, EVENT_TX_DONE);
|
||||||
|
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
@@ -1531,6 +1552,7 @@ static void done_xfer(FAR struct altmdm_dev_s *priv, uint32_t xfer_mode,
|
|||||||
{
|
{
|
||||||
spidev->tx_param.result = (ret < 0) ? ret : TRANS_OK;
|
spidev->tx_param.result = (ret < 0) ? ret : TRANS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
altmdm_sys_setflag(&spidev->tx_param.done_flag, EVENT_TX_DONE);
|
altmdm_sys_setflag(&spidev->tx_param.done_flag, EVENT_TX_DONE);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -1546,6 +1568,7 @@ static void done_xfer(FAR struct altmdm_dev_s *priv, uint32_t xfer_mode,
|
|||||||
m_info("ready to xfer\n");
|
m_info("ready to xfer\n");
|
||||||
notify_xferready(priv);
|
notify_xferready(priv);
|
||||||
}
|
}
|
||||||
|
|
||||||
altmdm_pm_notify_reset(priv);
|
altmdm_pm_notify_reset(priv);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -1556,6 +1579,7 @@ static void done_xfer(FAR struct altmdm_dev_s *priv, uint32_t xfer_mode,
|
|||||||
m_info("ready to xfer\n");
|
m_info("ready to xfer\n");
|
||||||
notify_xferready(priv);
|
notify_xferready(priv);
|
||||||
}
|
}
|
||||||
|
|
||||||
altmdm_pm_notify_reset(priv);
|
altmdm_pm_notify_reset(priv);
|
||||||
if (spidev->tx_param.is_bufful)
|
if (spidev->tx_param.is_bufful)
|
||||||
{
|
{
|
||||||
@@ -1566,6 +1590,7 @@ static void done_xfer(FAR struct altmdm_dev_s *priv, uint32_t xfer_mode,
|
|||||||
{
|
{
|
||||||
spidev->tx_param.result = (ret < 0) ? ret : TRANS_OK;
|
spidev->tx_param.result = (ret < 0) ? ret : TRANS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
altmdm_sys_setflag(&spidev->tx_param.done_flag, EVENT_TX_DONE);
|
altmdm_sys_setflag(&spidev->tx_param.done_flag, EVENT_TX_DONE);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -1917,6 +1942,7 @@ int altmdm_spi_uninit(FAR struct altmdm_dev_s *priv)
|
|||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
usleep(10);
|
usleep(10);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1933,6 +1959,7 @@ int altmdm_spi_uninit(FAR struct altmdm_dev_s *priv)
|
|||||||
free_rxbuffer(priv, priv->spidev.rx_param.rxbuff);
|
free_rxbuffer(priv, priv->spidev.rx_param.rxbuff);
|
||||||
priv->spidev.rx_param.rxbuff = NULL;
|
priv->spidev.rx_param.rxbuff = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
destroy_rxbufffifo(priv);
|
destroy_rxbufffifo(priv);
|
||||||
|
|
||||||
/* Uninitalize modem power management driver */
|
/* Uninitalize modem power management driver */
|
||||||
@@ -2188,6 +2215,7 @@ int altmdm_spi_sleepmodem(FAR struct altmdm_dev_s *priv)
|
|||||||
{
|
{
|
||||||
spidev->sleep_param.requested = true;
|
spidev->sleep_param.requested = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
altmdm_sys_unlock(&spidev->sleep_param.lock);
|
altmdm_sys_unlock(&spidev->sleep_param.lock);
|
||||||
|
|
||||||
if (sleep_requested)
|
if (sleep_requested)
|
||||||
@@ -2213,6 +2241,7 @@ int altmdm_spi_sleepmodem(FAR struct altmdm_dev_s *priv)
|
|||||||
m_info("%s: sleep result: %d.\n", __func__,
|
m_info("%s: sleep result: %d.\n", __func__,
|
||||||
spidev->sleep_param.result);
|
spidev->sleep_param.result);
|
||||||
}
|
}
|
||||||
|
|
||||||
spidev->sleep_param.requested = false;
|
spidev->sleep_param.requested = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -58,43 +58,43 @@
|
|||||||
/* This structure describes the transfer header. */
|
/* This structure describes the transfer header. */
|
||||||
|
|
||||||
struct altmdm_spi_xferhdr_s
|
struct altmdm_spi_xferhdr_s
|
||||||
{
|
{
|
||||||
uint8_t header[4]; /* Transfer header. */
|
uint8_t header[4]; /* Transfer header. */
|
||||||
};
|
};
|
||||||
|
|
||||||
/* This structure describes the buffer for data receive. */
|
/* This structure describes the buffer for data receive. */
|
||||||
|
|
||||||
struct altmdm_spi_rxbuff_s
|
struct altmdm_spi_rxbuff_s
|
||||||
{
|
{
|
||||||
char *buff_addr; /* Receive buffer address. */
|
FAR char *buff_addr; /* Receive buffer address. */
|
||||||
uint32_t buff_size; /* Size of this buffer. */
|
uint32_t buff_size; /* Size of this buffer. */
|
||||||
uint32_t rx_size; /* Received data size. */
|
uint32_t rx_size; /* Received data size. */
|
||||||
struct altmdm_spi_rxbuff_s *next; /* Link for next buffer. */
|
FAR struct altmdm_spi_rxbuff_s *next; /* Link for next buffer. */
|
||||||
};
|
};
|
||||||
|
|
||||||
/* This structure describes the fifo for received buffer. */
|
/* This structure describes the fifo for received buffer. */
|
||||||
|
|
||||||
struct altmdm_spi_rxbufffifo_s
|
struct altmdm_spi_rxbufffifo_s
|
||||||
{
|
{
|
||||||
struct altmdm_spi_rxbuff_s *head; /* Point to the head of fifo */
|
FAR struct altmdm_spi_rxbuff_s *head; /* Point to the head of fifo */
|
||||||
struct altmdm_spi_rxbuff_s *tail; /* Point to the tail of fifo */
|
FAR struct altmdm_spi_rxbuff_s *tail; /* Point to the tail of fifo */
|
||||||
struct altmdm_sys_csem_s csem; /* It is used for notification when
|
struct altmdm_sys_csem_s csem; /* It is used for notification when
|
||||||
* data is put in fifo.
|
* data is put in fifo.
|
||||||
*/
|
*/
|
||||||
};
|
};
|
||||||
|
|
||||||
/* This structure describes the parameters for receive buffer information. */
|
/* This structure describes the parameters for receive buffer information. */
|
||||||
|
|
||||||
struct altmdm_spi_rxbuffinfo_s
|
struct altmdm_spi_rxbuffinfo_s
|
||||||
{
|
{
|
||||||
struct altmdm_spi_rxbuff_s *free_buff; /* Free receive buffer address. */
|
FAR struct altmdm_spi_rxbuff_s *free_buff; /* Free receive buffer address. */
|
||||||
struct altmdm_spi_rxbufffifo_s fifo; /* Receive buffer fifo. */
|
struct altmdm_spi_rxbufffifo_s fifo; /* Receive buffer fifo. */
|
||||||
};
|
};
|
||||||
|
|
||||||
/* This structure describes the parameters for send data. */
|
/* This structure describes the parameters for send data. */
|
||||||
|
|
||||||
struct altmdm_spi_tx_s
|
struct altmdm_spi_tx_s
|
||||||
{
|
{
|
||||||
struct altmdm_sys_lock_s lock; /* Lock on accessing the following
|
struct altmdm_sys_lock_s lock; /* Lock on accessing the following
|
||||||
* parameters.
|
* parameters.
|
||||||
*/
|
*/
|
||||||
@@ -102,19 +102,19 @@ struct altmdm_spi_tx_s
|
|||||||
* completed.
|
* completed.
|
||||||
*/
|
*/
|
||||||
struct altmdm_spi_xferhdr_s header; /* Tx header. */
|
struct altmdm_spi_xferhdr_s header; /* Tx header. */
|
||||||
char *buff_addr; /* Buffer address for data transmission
|
FAR char *buff_addr; /* Buffer address for data transmission
|
||||||
* speceified by the user.
|
* specified by the user.
|
||||||
*/
|
*/
|
||||||
int32_t actual_size; /* Actual data size. */
|
int32_t actual_size; /* Actual data size. */
|
||||||
int32_t total_size; /* Data size of 4byte alignment. */
|
int32_t total_size; /* Data size of 4byte alignment. */
|
||||||
int32_t result; /* Result of transfer. */
|
int32_t result; /* Result of transfer. */
|
||||||
int32_t is_bufful; /* Indicates the slave is buffer full status. */
|
int32_t is_bufful; /* Indicates the slave is buffer full status. */
|
||||||
};
|
};
|
||||||
|
|
||||||
/* This structure describes the parameters for receive data. */
|
/* This structure describes the parameters for receive data. */
|
||||||
|
|
||||||
struct altmdm_spi_rx_s
|
struct altmdm_spi_rx_s
|
||||||
{
|
{
|
||||||
struct altmdm_sys_lock_s lock; /* Lock on accessing the following
|
struct altmdm_sys_lock_s lock; /* Lock on accessing the following
|
||||||
* parameters.
|
* parameters.
|
||||||
*/
|
*/
|
||||||
@@ -122,14 +122,14 @@ struct altmdm_spi_rx_s
|
|||||||
int8_t status_info; /* Header status information */
|
int8_t status_info; /* Header status information */
|
||||||
int32_t actual_size; /* Actual data size */
|
int32_t actual_size; /* Actual data size */
|
||||||
int32_t total_size; /* Data size of 4byte alignment. */
|
int32_t total_size; /* Data size of 4byte alignment. */
|
||||||
struct altmdm_spi_rxbuff_s *rxbuff; /* Current recieve beffer. */
|
FAR struct altmdm_spi_rxbuff_s *rxbuff; /* Current receive buffer. */
|
||||||
bool rxabort; /* Indicates whether the rx process is aborted. */
|
bool rxabort; /* Indicates whether the rx process is aborted. */
|
||||||
};
|
};
|
||||||
|
|
||||||
/* This structure describes the parameters for sleep modem. */
|
/* This structure describes the parameters for sleep modem. */
|
||||||
|
|
||||||
struct altmdm_spi_sleepmodem_s
|
struct altmdm_spi_sleepmodem_s
|
||||||
{
|
{
|
||||||
struct altmdm_sys_lock_s lock; /* Lock on accessing the following
|
struct altmdm_sys_lock_s lock; /* Lock on accessing the following
|
||||||
* parameters.
|
* parameters.
|
||||||
*/
|
*/
|
||||||
@@ -139,19 +139,19 @@ struct altmdm_spi_sleepmodem_s
|
|||||||
*/
|
*/
|
||||||
int32_t result; /* Result of sleep request. */
|
int32_t result; /* Result of sleep request. */
|
||||||
bool requested; /* Indicates that sleep request has been requested. */
|
bool requested; /* Indicates that sleep request has been requested. */
|
||||||
timer_t sv_timerid; /* Superviser timer. */
|
timer_t sv_timerid; /* Supervisor timer. */
|
||||||
};
|
};
|
||||||
|
|
||||||
/* This structure describes the resource of the ALTMDM spi driver */
|
/* This structure describes the resource of the ALTMDM spi driver */
|
||||||
|
|
||||||
struct altmdm_spi_dev_s
|
struct altmdm_spi_dev_s
|
||||||
{
|
{
|
||||||
/* Common fields */
|
/* Common fields */
|
||||||
|
|
||||||
bool is_not_run; /* Indicates xfer task is not run. */
|
bool is_not_run; /* Indicates xfer task is not run. */
|
||||||
int32_t task_id; /* xfer task ID. */
|
int32_t task_id; /* xfer task ID. */
|
||||||
bool is_xferready; /* Indicates whether the modem is ready to xfer. */
|
bool is_xferready; /* Indicates whether the modem is ready to xfer. */
|
||||||
struct altmdm_sys_flag_s xferready_flag; /* Used for wating ready to
|
struct altmdm_sys_flag_s xferready_flag; /* Used for waiting ready to
|
||||||
* xfer.
|
* xfer.
|
||||||
*/
|
*/
|
||||||
struct altmdm_sys_flag_s xfer_flag; /* Used for event handling of xfer
|
struct altmdm_sys_flag_s xfer_flag; /* Used for event handling of xfer
|
||||||
@@ -161,7 +161,7 @@ struct altmdm_spi_dev_s
|
|||||||
* been completed.
|
* been completed.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Parameter for recieve buffer */
|
/* Parameter for receive buffer */
|
||||||
|
|
||||||
struct altmdm_spi_rxbuffinfo_s rxbuffinfo;
|
struct altmdm_spi_rxbuffinfo_s rxbuffinfo;
|
||||||
|
|
||||||
@@ -169,14 +169,14 @@ struct altmdm_spi_dev_s
|
|||||||
|
|
||||||
struct altmdm_spi_tx_s tx_param;
|
struct altmdm_spi_tx_s tx_param;
|
||||||
|
|
||||||
/* Parameter for recieve data */
|
/* Parameter for receive data */
|
||||||
|
|
||||||
struct altmdm_spi_rx_s rx_param;
|
struct altmdm_spi_rx_s rx_param;
|
||||||
|
|
||||||
/* Parameters for sleep modem */
|
/* Parameters for sleep modem */
|
||||||
|
|
||||||
struct altmdm_spi_sleepmodem_s sleep_param;
|
struct altmdm_spi_sleepmodem_s sleep_param;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
#endif /* __DRIVERS_MODEM_ALTMDM_ALTMDM_SPI_H */
|
#endif /* __DRIVERS_MODEM_ALTMDM_ALTMDM_SPI_H */
|
||||||
|
|||||||
@@ -51,7 +51,7 @@
|
|||||||
* Pre-processor Definitions
|
* Pre-processor Definitions
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
# define MY_TIMER_SIGNAL SIGUSR1
|
#define MY_TIMER_SIGNAL SIGUSR1
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Public Functions
|
* Public Functions
|
||||||
@@ -68,9 +68,9 @@
|
|||||||
int altmdm_sys_initlock(FAR struct altmdm_sys_lock_s *handle)
|
int altmdm_sys_initlock(FAR struct altmdm_sys_lock_s *handle)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
# ifdef CONFIG_MODEM_ALTMDM_DEBUG
|
#ifdef CONFIG_MODEM_ALTMDM_DEBUG
|
||||||
int l_errno;
|
int l_errno;
|
||||||
# endif
|
#endif
|
||||||
|
|
||||||
/* Check argument. */
|
/* Check argument. */
|
||||||
|
|
||||||
@@ -81,13 +81,13 @@ int altmdm_sys_initlock(FAR struct altmdm_sys_lock_s *handle)
|
|||||||
|
|
||||||
ret = sem_init(&handle->sem, 0, 1);
|
ret = sem_init(&handle->sem, 0, 1);
|
||||||
|
|
||||||
# ifdef CONFIG_MODEM_ALTMDM_DEBUG
|
#ifdef CONFIG_MODEM_ALTMDM_DEBUG
|
||||||
if (ret == ERROR)
|
if (ret == ERROR)
|
||||||
{
|
{
|
||||||
l_errno = errno;
|
l_errno = errno;
|
||||||
m_err("sem_init() failed:%d\n", l_errno);
|
m_err("sem_init() failed:%d\n", l_errno);
|
||||||
}
|
}
|
||||||
# endif
|
#endif
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@@ -103,9 +103,9 @@ int altmdm_sys_initlock(FAR struct altmdm_sys_lock_s *handle)
|
|||||||
int altmdm_sys_deletelock(FAR struct altmdm_sys_lock_s *handle)
|
int altmdm_sys_deletelock(FAR struct altmdm_sys_lock_s *handle)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
# ifdef CONFIG_MODEM_ALTMDM_DEBUG
|
#ifdef CONFIG_MODEM_ALTMDM_DEBUG
|
||||||
int l_errno;
|
int l_errno;
|
||||||
# endif
|
#endif
|
||||||
|
|
||||||
/* Check argument. */
|
/* Check argument. */
|
||||||
|
|
||||||
@@ -116,13 +116,13 @@ int altmdm_sys_deletelock(FAR struct altmdm_sys_lock_s *handle)
|
|||||||
|
|
||||||
ret = sem_destroy(&handle->sem);
|
ret = sem_destroy(&handle->sem);
|
||||||
|
|
||||||
# ifdef CONFIG_MODEM_ALTMDM_DEBUG
|
#ifdef CONFIG_MODEM_ALTMDM_DEBUG
|
||||||
if (ret == ERROR)
|
if (ret == ERROR)
|
||||||
{
|
{
|
||||||
l_errno = errno;
|
l_errno = errno;
|
||||||
m_err("sem_destroy() failed:%d\n", l_errno);
|
m_err("sem_destroy() failed:%d\n", l_errno);
|
||||||
}
|
}
|
||||||
# endif
|
#endif
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@@ -159,6 +159,7 @@ int altmdm_sys_lock(FAR struct altmdm_sys_lock_s *handle)
|
|||||||
}
|
}
|
||||||
m_err("sem_wait() failed:%d\n", l_errno);
|
m_err("sem_wait() failed:%d\n", l_errno);
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -176,9 +177,9 @@ int altmdm_sys_lock(FAR struct altmdm_sys_lock_s *handle)
|
|||||||
int altmdm_sys_unlock(FAR struct altmdm_sys_lock_s *handle)
|
int altmdm_sys_unlock(FAR struct altmdm_sys_lock_s *handle)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
# ifdef CONFIG_MODEM_ALTMDM_DEBUG
|
#ifdef CONFIG_MODEM_ALTMDM_DEBUG
|
||||||
int l_errno;
|
int l_errno;
|
||||||
# endif
|
#endif
|
||||||
|
|
||||||
/* Check argument. */
|
/* Check argument. */
|
||||||
|
|
||||||
@@ -189,13 +190,13 @@ int altmdm_sys_unlock(FAR struct altmdm_sys_lock_s *handle)
|
|||||||
|
|
||||||
ret = sem_post(&handle->sem);
|
ret = sem_post(&handle->sem);
|
||||||
|
|
||||||
# ifdef CONFIG_MODEM_ALTMDM_DEBUG
|
#ifdef CONFIG_MODEM_ALTMDM_DEBUG
|
||||||
if (ret == ERROR)
|
if (ret == ERROR)
|
||||||
{
|
{
|
||||||
l_errno = errno;
|
l_errno = errno;
|
||||||
m_err("sem_post() failed:%d\n", l_errno);
|
m_err("sem_post() failed:%d\n", l_errno);
|
||||||
}
|
}
|
||||||
# endif
|
#endif
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@@ -211,9 +212,9 @@ int altmdm_sys_unlock(FAR struct altmdm_sys_lock_s *handle)
|
|||||||
int altmdm_sys_initcsem(FAR struct altmdm_sys_csem_s *handle)
|
int altmdm_sys_initcsem(FAR struct altmdm_sys_csem_s *handle)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
# ifdef CONFIG_MODEM_ALTMDM_DEBUG
|
#ifdef CONFIG_MODEM_ALTMDM_DEBUG
|
||||||
int l_errno;
|
int l_errno;
|
||||||
# endif
|
#endif
|
||||||
|
|
||||||
/* Check argument. */
|
/* Check argument. */
|
||||||
|
|
||||||
@@ -224,13 +225,13 @@ int altmdm_sys_initcsem(FAR struct altmdm_sys_csem_s *handle)
|
|||||||
|
|
||||||
ret = sem_init(&handle->sem, 0, 0);
|
ret = sem_init(&handle->sem, 0, 0);
|
||||||
|
|
||||||
# ifdef CONFIG_MODEM_ALTMDM_DEBUG
|
#ifdef CONFIG_MODEM_ALTMDM_DEBUG
|
||||||
if (ret == ERROR)
|
if (ret == ERROR)
|
||||||
{
|
{
|
||||||
l_errno = errno;
|
l_errno = errno;
|
||||||
m_err("sem_init() failed:%d\n", l_errno);
|
m_err("sem_init() failed:%d\n", l_errno);
|
||||||
}
|
}
|
||||||
# endif
|
#endif
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@@ -246,9 +247,9 @@ int altmdm_sys_initcsem(FAR struct altmdm_sys_csem_s *handle)
|
|||||||
int altmdm_sys_deletecsem(FAR struct altmdm_sys_csem_s *handle)
|
int altmdm_sys_deletecsem(FAR struct altmdm_sys_csem_s *handle)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
# ifdef CONFIG_MODEM_ALTMDM_DEBUG
|
#ifdef CONFIG_MODEM_ALTMDM_DEBUG
|
||||||
int l_errno;
|
int l_errno;
|
||||||
# endif
|
#endif
|
||||||
|
|
||||||
/* Check argument. */
|
/* Check argument. */
|
||||||
|
|
||||||
@@ -259,13 +260,13 @@ int altmdm_sys_deletecsem(FAR struct altmdm_sys_csem_s *handle)
|
|||||||
|
|
||||||
ret = sem_destroy(&handle->sem);
|
ret = sem_destroy(&handle->sem);
|
||||||
|
|
||||||
# ifdef CONFIG_MODEM_ALTMDM_DEBUG
|
#ifdef CONFIG_MODEM_ALTMDM_DEBUG
|
||||||
if (ret == ERROR)
|
if (ret == ERROR)
|
||||||
{
|
{
|
||||||
l_errno = errno;
|
l_errno = errno;
|
||||||
m_err("sem_destroy() failed:%d\n", l_errno);
|
m_err("sem_destroy() failed:%d\n", l_errno);
|
||||||
}
|
}
|
||||||
# endif
|
#endif
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@@ -300,8 +301,10 @@ int altmdm_sys_waitcsem(FAR struct altmdm_sys_csem_s *handle)
|
|||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_err("sem_wait() failed:%d\n", l_errno);
|
m_err("sem_wait() failed:%d\n", l_errno);
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -319,9 +322,9 @@ int altmdm_sys_waitcsem(FAR struct altmdm_sys_csem_s *handle)
|
|||||||
int altmdm_sys_postcsem(FAR struct altmdm_sys_csem_s *handle)
|
int altmdm_sys_postcsem(FAR struct altmdm_sys_csem_s *handle)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
# ifdef CONFIG_MODEM_ALTMDM_DEBUG
|
#ifdef CONFIG_MODEM_ALTMDM_DEBUG
|
||||||
int l_errno;
|
int l_errno;
|
||||||
# endif
|
#endif
|
||||||
|
|
||||||
/* Check argument. */
|
/* Check argument. */
|
||||||
|
|
||||||
@@ -332,13 +335,13 @@ int altmdm_sys_postcsem(FAR struct altmdm_sys_csem_s *handle)
|
|||||||
|
|
||||||
ret = sem_post(&handle->sem);
|
ret = sem_post(&handle->sem);
|
||||||
|
|
||||||
# ifdef CONFIG_MODEM_ALTMDM_DEBUG
|
#ifdef CONFIG_MODEM_ALTMDM_DEBUG
|
||||||
if (ret == ERROR)
|
if (ret == ERROR)
|
||||||
{
|
{
|
||||||
l_errno = errno;
|
l_errno = errno;
|
||||||
m_err("sem_post() failed:%d\n", l_errno);
|
m_err("sem_post() failed:%d\n", l_errno);
|
||||||
}
|
}
|
||||||
# endif
|
#endif
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@@ -355,9 +358,9 @@ int altmdm_sys_getcsemvalue(FAR struct altmdm_sys_csem_s *handle,
|
|||||||
FAR int *value)
|
FAR int *value)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
# ifdef CONFIG_MODEM_ALTMDM_DEBUG
|
#ifdef CONFIG_MODEM_ALTMDM_DEBUG
|
||||||
int l_errno;
|
int l_errno;
|
||||||
# endif
|
#endif
|
||||||
|
|
||||||
/* Check argument. */
|
/* Check argument. */
|
||||||
|
|
||||||
@@ -368,13 +371,13 @@ int altmdm_sys_getcsemvalue(FAR struct altmdm_sys_csem_s *handle,
|
|||||||
|
|
||||||
ret = sem_getvalue(&handle->sem, value);
|
ret = sem_getvalue(&handle->sem, value);
|
||||||
|
|
||||||
# ifdef CONFIG_MODEM_ALTMDM_DEBUG
|
#ifdef CONFIG_MODEM_ALTMDM_DEBUG
|
||||||
if (ret == ERROR)
|
if (ret == ERROR)
|
||||||
{
|
{
|
||||||
l_errno = errno;
|
l_errno = errno;
|
||||||
m_err("sem_getvalue() failed:%d\n", l_errno);
|
m_err("sem_getvalue() failed:%d\n", l_errno);
|
||||||
}
|
}
|
||||||
# endif
|
#endif
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@@ -390,9 +393,9 @@ int altmdm_sys_getcsemvalue(FAR struct altmdm_sys_csem_s *handle,
|
|||||||
int altmdm_sys_initflag(FAR struct altmdm_sys_flag_s *handle)
|
int altmdm_sys_initflag(FAR struct altmdm_sys_flag_s *handle)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
# ifdef CONFIG_MODEM_ALTMDM_DEBUG
|
#ifdef CONFIG_MODEM_ALTMDM_DEBUG
|
||||||
int l_errno;
|
int l_errno;
|
||||||
# endif
|
#endif
|
||||||
|
|
||||||
/* Check argument. */
|
/* Check argument. */
|
||||||
|
|
||||||
@@ -404,13 +407,13 @@ int altmdm_sys_initflag(FAR struct altmdm_sys_flag_s *handle)
|
|||||||
handle->flag = 0;
|
handle->flag = 0;
|
||||||
ret = sem_init(&handle->sem, 0, 0);
|
ret = sem_init(&handle->sem, 0, 0);
|
||||||
|
|
||||||
# ifdef CONFIG_MODEM_ALTMDM_DEBUG
|
#ifdef CONFIG_MODEM_ALTMDM_DEBUG
|
||||||
if (ret == ERROR)
|
if (ret == ERROR)
|
||||||
{
|
{
|
||||||
l_errno = errno;
|
l_errno = errno;
|
||||||
m_err("sem_init() failed:%d\n", l_errno);
|
m_err("sem_init() failed:%d\n", l_errno);
|
||||||
}
|
}
|
||||||
# endif
|
#endif
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@@ -426,9 +429,9 @@ int altmdm_sys_initflag(FAR struct altmdm_sys_flag_s *handle)
|
|||||||
int altmdm_sys_deleteflag(FAR struct altmdm_sys_flag_s *handle)
|
int altmdm_sys_deleteflag(FAR struct altmdm_sys_flag_s *handle)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
# ifdef CONFIG_MODEM_ALTMDM_DEBUG
|
#ifdef CONFIG_MODEM_ALTMDM_DEBUG
|
||||||
int l_errno;
|
int l_errno;
|
||||||
# endif
|
#endif
|
||||||
|
|
||||||
/* Check argument. */
|
/* Check argument. */
|
||||||
|
|
||||||
@@ -439,13 +442,13 @@ int altmdm_sys_deleteflag(FAR struct altmdm_sys_flag_s *handle)
|
|||||||
|
|
||||||
ret = sem_destroy(&handle->sem);
|
ret = sem_destroy(&handle->sem);
|
||||||
|
|
||||||
# ifdef CONFIG_MODEM_ALTMDM_DEBUG
|
#ifdef CONFIG_MODEM_ALTMDM_DEBUG
|
||||||
if (ret == ERROR)
|
if (ret == ERROR)
|
||||||
{
|
{
|
||||||
l_errno = errno;
|
l_errno = errno;
|
||||||
m_err("sem_destroy() failed:%d\n", l_errno);
|
m_err("sem_destroy() failed:%d\n", l_errno);
|
||||||
}
|
}
|
||||||
# endif
|
#endif
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@@ -484,6 +487,7 @@ int altmdm_sys_waitflag(FAR struct altmdm_sys_flag_s *handle,
|
|||||||
case ALTMDM_SYS_FLAG_WMODEOR:
|
case ALTMDM_SYS_FLAG_WMODEOR:
|
||||||
case ALTMDM_SYS_FLAG_WMODEAND:
|
case ALTMDM_SYS_FLAG_WMODEAND:
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
m_err("invalid wait mode:%d\n", wait_mode);
|
m_err("invalid wait mode:%d\n", wait_mode);
|
||||||
return ERROR;
|
return ERROR;
|
||||||
@@ -540,11 +544,13 @@ int altmdm_sys_waitflag(FAR struct altmdm_sys_flag_s *handle,
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
leave_critical_section(flags);
|
leave_critical_section(flags);
|
||||||
|
|
||||||
ret = OK;
|
ret = OK;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
leave_critical_section(flags);
|
leave_critical_section(flags);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -569,11 +575,13 @@ int altmdm_sys_waitflag(FAR struct altmdm_sys_flag_s *handle,
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
leave_critical_section(flags);
|
leave_critical_section(flags);
|
||||||
|
|
||||||
ret = OK;
|
ret = OK;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
leave_critical_section(flags);
|
leave_critical_section(flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -589,6 +597,7 @@ int altmdm_sys_waitflag(FAR struct altmdm_sys_flag_s *handle,
|
|||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_err("sem_timedwait() failed:%d\n", l_errno);
|
m_err("sem_timedwait() failed:%d\n", l_errno);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -605,6 +614,7 @@ int altmdm_sys_waitflag(FAR struct altmdm_sys_flag_s *handle,
|
|||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_err("sem_wait() failed:%d\n", l_errno);
|
m_err("sem_wait() failed:%d\n", l_errno);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -58,25 +58,25 @@
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
struct altmdm_sys_lock_s
|
struct altmdm_sys_lock_s
|
||||||
{
|
{
|
||||||
sem_t sem;
|
sem_t sem;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct altmdm_sys_csem_s
|
struct altmdm_sys_csem_s
|
||||||
{
|
{
|
||||||
sem_t sem;
|
sem_t sem;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct altmdm_sys_flag_s
|
struct altmdm_sys_flag_s
|
||||||
{
|
{
|
||||||
sem_t sem;
|
sem_t sem;
|
||||||
uint32_t flag;
|
uint32_t flag;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct altmdm_sys_flagstate_s
|
struct altmdm_sys_flagstate_s
|
||||||
{
|
{
|
||||||
uint32_t flag_pattern;
|
uint32_t flag_pattern;
|
||||||
};
|
};
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Public Function Prototypes
|
* Public Function Prototypes
|
||||||
|
|||||||
Reference in New Issue
Block a user