CC3000 driver updates from David Sidrane

This commit is contained in:
Gregory Nutt
2013-10-27 18:54:10 -06:00
parent 61e63181d7
commit 77c0c6c2d6
2 changed files with 13 additions and 9 deletions
+5 -4
View File
@@ -77,7 +77,6 @@
#include "cc3000_socket.h" #include "cc3000_socket.h"
#include "cc3000.h" #include "cc3000.h"
/**************************************************************************** /****************************************************************************
* Pre-processor Definitions * Pre-processor Definitions
****************************************************************************/ ****************************************************************************/
@@ -782,12 +781,13 @@ static int cc3000_open(FAR struct file *filep)
} }
pthread_attr_init(&tattr); pthread_attr_init(&tattr);
tattr.stacksize = 336;
param.sched_priority = SCHED_PRIORITY_MAX; param.sched_priority = SCHED_PRIORITY_MAX;
pthread_attr_setschedparam(&tattr, &param); pthread_attr_setschedparam(&tattr, &param);
ret = pthread_create(&priv->workertid, &tattr, cc3000_worker, ret = pthread_create(&priv->workertid, &tattr, cc3000_worker,
(pthread_addr_t)priv); (pthread_addr_t)priv);
if (ret < 0) if (ret != 0)
{ {
mq_close(priv->queue); mq_close(priv->queue);
priv->queue = 0; priv->queue = 0;
@@ -796,16 +796,16 @@ static int cc3000_open(FAR struct file *filep)
} }
pthread_attr_init(&tattr); pthread_attr_init(&tattr);
tattr.stacksize = 460;
param.sched_priority = SCHED_PRIORITY_DEFAULT+10; param.sched_priority = SCHED_PRIORITY_DEFAULT+10;
pthread_attr_setschedparam(&tattr, &param); pthread_attr_setschedparam(&tattr, &param);
ret = pthread_create(&priv->selecttid, &tattr, select_thread_func, ret = pthread_create(&priv->selecttid, &tattr, select_thread_func,
(pthread_addr_t)priv); (pthread_addr_t)priv);
if (ret < 0) if (ret != 0)
{ {
pthread_t workertid = priv->workertid; pthread_t workertid = priv->workertid;
priv->workertid = -1; priv->workertid = -1;
pthread_cancel(workertid); pthread_cancel(workertid);
pthread_join(workertid,NULL);
mq_close(priv->queue); mq_close(priv->queue);
priv->queue = 0; priv->queue = 0;
ret = -errno; ret = -errno;
@@ -1525,6 +1525,7 @@ int cc3000_accept_socket(int sd, int minor, struct sockaddr *addr,
sem_post(&priv->selectsem); /* Wake select thread if need be */ sem_post(&priv->selectsem); /* Wake select thread if need be */
sem_wait(&priv->accepting_socket.acc.semwait); /* Wait caller on select to finish */ sem_wait(&priv->accepting_socket.acc.semwait); /* Wait caller on select to finish */
sem_wait(&priv->selectsem); /* Sleep select thread */ sem_wait(&priv->selectsem); /* Sleep select thread */
if (priv->accepting_socket.acc.status != CC3000_SOC_ERROR) if (priv->accepting_socket.acc.status != CC3000_SOC_ERROR)
{ {
*addr = priv->accepting_socket.addr; *addr = priv->accepting_socket.addr;
+5 -2
View File
@@ -72,7 +72,6 @@ static struct
uint8_t rx_buffer[CC3000_RX_BUFFER_SIZE]; uint8_t rx_buffer[CC3000_RX_BUFFER_SIZE];
mqd_t queue; mqd_t queue;
sem_t *done; sem_t *done;
} spiconf; } spiconf;
/***************************************************************************** /*****************************************************************************
@@ -195,7 +194,8 @@ static void *unsoliced_thread_func(void *parameter)
while(spiconf.run) while(spiconf.run)
{ {
memset(spiconf.rx_buffer,0,sizeof(spiconf.rx_buffer)); memset(spiconf.rx_buffer,0,sizeof(spiconf.rx_buffer));
nbytes = mq_receive(spiconf.queue, spiconf.rx_buffer, CC3000_RX_BUFFER_SIZE, 0); nbytes = mq_receive(spiconf.queue, spiconf.rx_buffer,
CC3000_RX_BUFFER_SIZE, 0);
if (nbytes > 0) if (nbytes > 0)
{ {
nlldbg("%d Processed\n",nbytes); nlldbg("%d Processed\n",nbytes);
@@ -240,12 +240,15 @@ void SpiOpen(gcSpiHandleRx pfRxHandler)
pthread_attr_t attr; pthread_attr_t attr;
struct sched_param param; struct sched_param param;
pthread_attr_init(&attr); pthread_attr_init(&attr);
attr.stacksize = 292;
param.sched_priority = SCHED_PRIORITY_DEFAULT-10; param.sched_priority = SCHED_PRIORITY_DEFAULT-10;
pthread_attr_setschedparam(&attr, &param); pthread_attr_setschedparam(&attr, &param);
status = pthread_create(&spiconf.unsoliced_thread, &attr, status = pthread_create(&spiconf.unsoliced_thread, &attr,
unsoliced_thread_func, NULL); unsoliced_thread_func, NULL);
DEBUGASSERT(status == 0) DEBUGASSERT(status == 0)
} }
DEBUGASSERT(spiconf.cc3000fd);
} }
/***************************************************************************** /*****************************************************************************