spi: Optimize access to private data
Signed-off-by: Shoukui Zhang <zhangshoukui@xiaomi.com>
This commit is contained in:
parent
a6cea0d82e
commit
2bf13ffbb0
2 changed files with 38 additions and 33 deletions
|
@ -116,16 +116,16 @@ static const struct file_operations g_spidrvr_fops =
|
|||
#ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
|
||||
static int spidrvr_open(FAR struct file *filep)
|
||||
{
|
||||
FAR struct inode *inode;
|
||||
FAR struct spi_driver_s *priv;
|
||||
int ret;
|
||||
|
||||
/* Sanity check */
|
||||
|
||||
DEBUGASSERT(filep->f_inode->i_private != NULL);
|
||||
|
||||
/* Get our private data structure */
|
||||
|
||||
inode = filep->f_inode;
|
||||
|
||||
priv = inode->i_private;
|
||||
DEBUGASSERT(priv);
|
||||
priv = filep->f_inode->i_private;
|
||||
|
||||
/* Get exclusive access to the SPI driver state structure */
|
||||
|
||||
|
@ -152,16 +152,16 @@ static int spidrvr_open(FAR struct file *filep)
|
|||
#ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
|
||||
static int spidrvr_close(FAR struct file *filep)
|
||||
{
|
||||
FAR struct inode *inode;
|
||||
FAR struct spi_driver_s *priv;
|
||||
int ret;
|
||||
|
||||
/* Sanity check */
|
||||
|
||||
DEBUGASSERT(filep->f_inode->i_private != NULL);
|
||||
|
||||
/* Get our private data structure */
|
||||
|
||||
inode = filep->f_inode;
|
||||
|
||||
priv = inode->i_private;
|
||||
DEBUGASSERT(priv);
|
||||
priv = filep->f_inode->i_private;
|
||||
|
||||
/* Get exclusive access to the SPI driver state structure */
|
||||
|
||||
|
@ -184,6 +184,7 @@ static int spidrvr_close(FAR struct file *filep)
|
|||
{
|
||||
nxmutex_destroy(&priv->lock);
|
||||
kmm_free(priv);
|
||||
filep->f_inode->i_private = NULL;
|
||||
return OK;
|
||||
}
|
||||
|
||||
|
@ -218,19 +219,18 @@ static ssize_t spidrvr_write(FAR struct file *filep, FAR const char *buffer,
|
|||
|
||||
static int spidrvr_ioctl(FAR struct file *filep, int cmd, unsigned long arg)
|
||||
{
|
||||
FAR struct inode *inode;
|
||||
FAR struct spi_driver_s *priv;
|
||||
FAR struct spi_sequence_s *seq;
|
||||
int ret;
|
||||
|
||||
/* Sanity check */
|
||||
|
||||
DEBUGASSERT(filep->f_inode->i_private != NULL);
|
||||
spiinfo("cmd=%d arg=%lu\n", cmd, arg);
|
||||
|
||||
/* Get our private data structure */
|
||||
|
||||
inode = filep->f_inode;
|
||||
|
||||
priv = inode->i_private;
|
||||
DEBUGASSERT(priv);
|
||||
priv = filep->f_inode->i_private;
|
||||
|
||||
/* Get exclusive access to the SPI driver state structure */
|
||||
|
||||
|
@ -305,6 +305,7 @@ static int spidrvr_unlink(FAR struct inode *inode)
|
|||
{
|
||||
nxmutex_destroy(&priv->lock);
|
||||
kmm_free(priv);
|
||||
inode->i_private = NULL;
|
||||
return OK;
|
||||
}
|
||||
|
||||
|
|
|
@ -174,18 +174,17 @@ static const struct spi_slave_devops_s g_spisdev_ops =
|
|||
|
||||
static int spi_slave_open(FAR struct file *filep)
|
||||
{
|
||||
FAR struct inode *inode;
|
||||
FAR struct spi_slave_driver_s *priv;
|
||||
int ret;
|
||||
|
||||
DEBUGASSERT(filep->f_inode->i_private != NULL);
|
||||
/* Sanity check */
|
||||
|
||||
DEBUGASSERT(filep->f_inode->i_private != NULL);
|
||||
spiinfo("filep: %p\n", filep);
|
||||
|
||||
/* Get our private data structure */
|
||||
|
||||
inode = filep->f_inode;
|
||||
priv = inode->i_private;
|
||||
priv = filep->f_inode->i_private;
|
||||
|
||||
/* Get exclusive access to the SPI Slave driver state structure */
|
||||
|
||||
|
@ -229,18 +228,17 @@ static int spi_slave_open(FAR struct file *filep)
|
|||
|
||||
static int spi_slave_close(FAR struct file *filep)
|
||||
{
|
||||
FAR struct inode *inode;
|
||||
FAR struct spi_slave_driver_s *priv;
|
||||
int ret;
|
||||
|
||||
DEBUGASSERT(filep->f_inode->i_private != NULL);
|
||||
/* Sanity check */
|
||||
|
||||
DEBUGASSERT(filep->f_inode->i_private != NULL);
|
||||
spiinfo("filep: %p\n", filep);
|
||||
|
||||
/* Get our private data structure */
|
||||
|
||||
inode = filep->f_inode;
|
||||
priv = inode->i_private;
|
||||
priv = filep->f_inode->i_private;
|
||||
|
||||
/* Get exclusive access to the SPI Slave driver state structure */
|
||||
|
||||
|
@ -273,7 +271,7 @@ static int spi_slave_close(FAR struct file *filep)
|
|||
{
|
||||
nxmutex_destroy(&priv->lock);
|
||||
kmm_free(priv);
|
||||
inode->i_private = NULL;
|
||||
filep->f_inode->i_private = NULL;
|
||||
return OK;
|
||||
}
|
||||
|
||||
|
@ -302,18 +300,19 @@ static int spi_slave_close(FAR struct file *filep)
|
|||
static ssize_t spi_slave_read(FAR struct file *filep, FAR char *buffer,
|
||||
size_t buflen)
|
||||
{
|
||||
FAR struct inode *inode;
|
||||
FAR struct spi_slave_driver_s *priv;
|
||||
size_t read_bytes;
|
||||
size_t remaining_words;
|
||||
int ret;
|
||||
|
||||
/* Sanity check */
|
||||
|
||||
DEBUGASSERT(filep->f_inode->i_private != NULL);
|
||||
spiinfo("filep=%p buffer=%p buflen=%zu\n", filep, buffer, buflen);
|
||||
|
||||
/* Get our private data structure */
|
||||
|
||||
inode = filep->f_inode;
|
||||
priv = inode->i_private;
|
||||
priv = filep->f_inode->i_private;
|
||||
|
||||
if (buffer == NULL)
|
||||
{
|
||||
|
@ -394,17 +393,18 @@ static ssize_t spi_slave_read(FAR struct file *filep, FAR char *buffer,
|
|||
static ssize_t spi_slave_write(FAR struct file *filep,
|
||||
FAR const char *buffer, size_t buflen)
|
||||
{
|
||||
FAR struct inode *inode;
|
||||
FAR struct spi_slave_driver_s *priv;
|
||||
size_t enqueued_bytes;
|
||||
int ret;
|
||||
|
||||
/* Sanity check */
|
||||
|
||||
DEBUGASSERT(filep->f_inode->i_private != NULL);
|
||||
spiinfo("filep=%p buffer=%p buflen=%zu\n", filep, buffer, buflen);
|
||||
|
||||
/* Get our private data structure */
|
||||
|
||||
inode = filep->f_inode;
|
||||
priv = inode->i_private;
|
||||
priv = filep->f_inode->i_private;
|
||||
|
||||
ret = nxmutex_lock(&priv->lock);
|
||||
if (ret < 0)
|
||||
|
@ -453,13 +453,15 @@ static int spi_slave_poll(FAR struct file *filep, FAR struct pollfd *fds,
|
|||
bool setup)
|
||||
{
|
||||
FAR struct spi_slave_driver_s *priv;
|
||||
FAR struct inode *inode;
|
||||
int ret;
|
||||
|
||||
/* Sanity check */
|
||||
|
||||
DEBUGASSERT(filep->f_inode->i_private != NULL);
|
||||
|
||||
/* Get our private data structure */
|
||||
|
||||
inode = filep->f_inode;
|
||||
priv = inode->i_private;
|
||||
priv = filep->f_inode->i_private;
|
||||
|
||||
ret = nxmutex_lock(&priv->lock);
|
||||
if (ret < 0)
|
||||
|
@ -525,6 +527,8 @@ static int spi_slave_unlink(FAR struct inode *inode)
|
|||
FAR struct spi_slave_driver_s *priv;
|
||||
int ret;
|
||||
|
||||
/* Sanity check */
|
||||
|
||||
DEBUGASSERT(inode->i_private != NULL);
|
||||
|
||||
/* Get our private data structure */
|
||||
|
|
Loading…
Reference in a new issue