Cosmetic changes from review of last PR.

This commit is contained in:
Gregory Nutt
2019-10-21 08:51:47 -06:00
parent 07f9154e5b
commit 230c80b8e1
8 changed files with 210 additions and 164 deletions
+5 -1
View File
@@ -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"
@@ -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)
+3
View File
@@ -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);
} }
+29
View File
@@ -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;
} }
+12 -12
View File
@@ -66,18 +66,18 @@ struct altmdm_spi_xferhdr_s
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.
*/ */
@@ -87,7 +87,7 @@ struct altmdm_spi_rxbufffifo_s
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. */
}; };
@@ -102,8 +102,8 @@ 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. */
@@ -122,7 +122,7 @@ 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. */
}; };
@@ -139,7 +139,7 @@ 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 */
@@ -151,7 +151,7 @@ struct altmdm_spi_dev_s
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,7 +169,7 @@ 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;
+10
View File
@@ -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;
} }
@@ -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;
} }
@@ -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;
} }