1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00

can_pm: if powered up by raw interface, fix sleeping timer.

This commit is contained in:
Javier FILEIV 2019-05-03 08:33:07 +02:00 committed by Vincent Dupont
parent 6bbb908d59
commit ced8094e1a

View File

@ -40,14 +40,12 @@
#ifdef MODULE_CAN_PM
#define CAN_DEVICE_PM_DEFAULT_RX_TIMEOUT (10 * US_PER_SEC)
#define CAN_DEVICE_PM_DEFAULT_TX_TIMEOUT (2 * US_PER_SEC)
static void pm_cb(void *arg);
static void pm_reset(candev_dev_t *candev_dev, uint32_t value);
#endif
static int power_up(candev_dev_t *candev_dev);
static int power_down(candev_dev_t *candev_dev);
#ifdef MODULE_CAN_PM
static void pm_cb(void *arg);
static void pm_reset(candev_dev_t *candev_dev, uint32_t value);
#endif
static void _can_event(candev_t *dev, candev_event_t event, void *arg)
{
@ -157,11 +155,11 @@ static int power_down(candev_dev_t *candev_dev)
#ifdef MODULE_CAN_PM
static void pm_cb(void *arg)
{
candev_dev_t *dev = arg;
candev_dev_t *candev_dev = (candev_dev_t *)arg;
msg_t msg;
msg.type = CAN_MSG_PM;
msg_send(&msg, dev->pid);
msg_send(&msg, candev_dev->pid);
}
static void pm_reset(candev_dev_t *candev_dev, uint32_t value)
@ -307,7 +305,7 @@ static void *_can_device_thread(void *args)
DEBUG("can device: CAN_MSG_POWER_UP received\n");
res = power_up(candev_dev);
#ifdef MODULE_CAN_PM
pm_reset(candev_dev, 0);
pm_reset(candev_dev, candev_dev->tx_wakeup_timeout);
#endif
/* send reply to calling thread */
reply.type = CAN_MSG_ACK;
@ -317,6 +315,9 @@ static void *_can_device_thread(void *args)
case CAN_MSG_POWER_DOWN:
DEBUG("can device: CAN_MSG_POWER_DOWN received\n");
res = power_down(candev_dev);
#ifdef MODULE_CAN_PM
pm_reset(candev_dev, 0);
#endif
/* send reply to calling thread */
reply.type = CAN_MSG_ACK;
reply.content.value = (uint32_t)res;