1.修复spi cs引脚配置不更新。
This commit is contained in:
@@ -72,7 +72,7 @@ static ssize_t mr_can_bus_isr(struct mr_dev *dev, int event, void *args)
|
||||
break;
|
||||
}
|
||||
}
|
||||
return MR_ENOTSUP;
|
||||
return MR_EOK;
|
||||
}
|
||||
|
||||
default:
|
||||
|
||||
@@ -59,7 +59,7 @@ static ssize_t mr_i2c_bus_isr(struct mr_dev *dev, int event, void *args)
|
||||
ssize_t size = (ssize_t)mr_ringbuf_get_data_size(&i2c_dev->rd_fifo);
|
||||
i2c_dev->dev.rd_call.call(i2c_dev->dev.rd_call.desc, &size);
|
||||
}
|
||||
return MR_ENOTSUP;
|
||||
return MR_EOK;
|
||||
}
|
||||
|
||||
default:
|
||||
|
||||
@@ -197,6 +197,7 @@ static ssize_t mr_serial_isr(struct mr_dev *dev, int event, void *args)
|
||||
|
||||
return (ssize_t)mr_ringbuf_get_data_size(&serial->rd_fifo);
|
||||
}
|
||||
|
||||
case MR_ISR_SERIAL_WR_INT:
|
||||
{
|
||||
/* Write data from FIFO */
|
||||
|
||||
@@ -78,7 +78,7 @@ static ssize_t mr_spi_bus_isr(struct mr_dev *dev, int event, void *args)
|
||||
ssize_t size = (ssize_t)mr_ringbuf_get_data_size(&spi_dev->rd_fifo);
|
||||
spi_dev->dev.rd_call.call(spi_dev->dev.rd_call.desc, &size);
|
||||
}
|
||||
return MR_ENOTSUP;
|
||||
return MR_EOK;
|
||||
}
|
||||
|
||||
default:
|
||||
@@ -499,9 +499,11 @@ static int mr_spi_dev_ioctl(struct mr_dev *dev, int off, int cmd, void *args)
|
||||
/* Reconfigure CS */
|
||||
if (config.host_slave != spi_dev->config.host_slave)
|
||||
{
|
||||
spi_dev->config = config;
|
||||
spi_dev_cs_configure(spi_dev, MR_ENABLE);
|
||||
}
|
||||
#endif /* MR_USING_PIN */
|
||||
|
||||
/* If holding the bus, release it */
|
||||
if (spi_dev == spi_bus->owner)
|
||||
{
|
||||
|
||||
@@ -64,7 +64,7 @@ int mr_dev_register(struct mr_dev *dev,
|
||||
int sflags,
|
||||
struct mr_dev_ops *ops,
|
||||
struct mr_drv *drv);
|
||||
void mr_dev_isr(struct mr_dev *dev, int event, void *args);
|
||||
int mr_dev_isr(struct mr_dev *dev, int event, void *args);
|
||||
int mr_dev_get_full_name(struct mr_dev *dev, char *buf, size_t bufsz);
|
||||
/** @} */
|
||||
|
||||
|
||||
@@ -435,7 +435,7 @@ int mr_dev_register(struct mr_dev *dev,
|
||||
* @param event The event to be handle.
|
||||
* @param args The arguments of the event.
|
||||
*/
|
||||
void mr_dev_isr(struct mr_dev *dev, int event, void *args)
|
||||
int mr_dev_isr(struct mr_dev *dev, int event, void *args)
|
||||
{
|
||||
mr_assert(dev != MR_NULL);
|
||||
|
||||
@@ -444,7 +444,7 @@ void mr_dev_isr(struct mr_dev *dev, int event, void *args)
|
||||
ssize_t ret = dev->ops->isr(dev, event, args);
|
||||
if (ret < 0)
|
||||
{
|
||||
return;
|
||||
return (int)ret;
|
||||
}
|
||||
|
||||
switch (event & MR_ISR_MASK)
|
||||
@@ -455,11 +455,12 @@ void mr_dev_isr(struct mr_dev *dev, int event, void *args)
|
||||
{
|
||||
dev->rd_call.call(dev->rd_call.desc, &ret);
|
||||
}
|
||||
return;
|
||||
return MR_EOK;
|
||||
}
|
||||
|
||||
case MR_ISR_WR:
|
||||
{
|
||||
if (ret == 0)
|
||||
if (ret == MR_EOK)
|
||||
{
|
||||
#ifdef MR_USING_RDWR_CTL
|
||||
dev_lock_release(dev, MR_LFLAG_NONBLOCK);
|
||||
@@ -468,16 +469,18 @@ void mr_dev_isr(struct mr_dev *dev, int event, void *args)
|
||||
{
|
||||
dev->wr_call.call(dev->wr_call.desc, &ret);
|
||||
}
|
||||
return MR_EOK;
|
||||
}
|
||||
return;
|
||||
return MR_EBUSY;
|
||||
}
|
||||
|
||||
default:
|
||||
{
|
||||
return;
|
||||
return MR_ENOTSUP;
|
||||
}
|
||||
}
|
||||
}
|
||||
return MR_ENOTSUP;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user