Lines Matching refs:can
258 struct can_priv can; member
274 struct kvaser_pciefd_can *can[KVASER_PCIEFD_MAX_CAN_CHANNELS]; member
486 static void kvaser_pciefd_request_status(struct kvaser_pciefd_can *can) in kvaser_pciefd_request_status() argument
491 cmd |= ++can->cmd_seq << KVASER_PCIEFD_KCAN_CMD_SEQ_SHIFT; in kvaser_pciefd_request_status()
492 iowrite32(cmd, can->reg_base + KVASER_PCIEFD_KCAN_CMD_REG); in kvaser_pciefd_request_status()
495 static void kvaser_pciefd_enable_err_gen(struct kvaser_pciefd_can *can) in kvaser_pciefd_enable_err_gen() argument
500 spin_lock_irqsave(&can->lock, irq); in kvaser_pciefd_enable_err_gen()
501 mode = ioread32(can->reg_base + KVASER_PCIEFD_KCAN_MODE_REG); in kvaser_pciefd_enable_err_gen()
504 iowrite32(mode, can->reg_base + KVASER_PCIEFD_KCAN_MODE_REG); in kvaser_pciefd_enable_err_gen()
506 spin_unlock_irqrestore(&can->lock, irq); in kvaser_pciefd_enable_err_gen()
509 static void kvaser_pciefd_disable_err_gen(struct kvaser_pciefd_can *can) in kvaser_pciefd_disable_err_gen() argument
514 spin_lock_irqsave(&can->lock, irq); in kvaser_pciefd_disable_err_gen()
515 mode = ioread32(can->reg_base + KVASER_PCIEFD_KCAN_MODE_REG); in kvaser_pciefd_disable_err_gen()
517 iowrite32(mode, can->reg_base + KVASER_PCIEFD_KCAN_MODE_REG); in kvaser_pciefd_disable_err_gen()
518 spin_unlock_irqrestore(&can->lock, irq); in kvaser_pciefd_disable_err_gen()
521 static int kvaser_pciefd_set_tx_irq(struct kvaser_pciefd_can *can) in kvaser_pciefd_set_tx_irq() argument
531 iowrite32(msk, can->reg_base + KVASER_PCIEFD_KCAN_IEN_REG); in kvaser_pciefd_set_tx_irq()
536 static void kvaser_pciefd_setup_controller(struct kvaser_pciefd_can *can) in kvaser_pciefd_setup_controller() argument
541 spin_lock_irqsave(&can->lock, irq); in kvaser_pciefd_setup_controller()
543 mode = ioread32(can->reg_base + KVASER_PCIEFD_KCAN_MODE_REG); in kvaser_pciefd_setup_controller()
544 if (can->can.ctrlmode & CAN_CTRLMODE_FD) { in kvaser_pciefd_setup_controller()
546 if (can->can.ctrlmode & CAN_CTRLMODE_FD_NON_ISO) in kvaser_pciefd_setup_controller()
555 if (can->can.ctrlmode & CAN_CTRLMODE_LISTENONLY) in kvaser_pciefd_setup_controller()
563 iowrite32(mode, can->reg_base + KVASER_PCIEFD_KCAN_MODE_REG); in kvaser_pciefd_setup_controller()
565 spin_unlock_irqrestore(&can->lock, irq); in kvaser_pciefd_setup_controller()
568 static void kvaser_pciefd_start_controller_flush(struct kvaser_pciefd_can *can) in kvaser_pciefd_start_controller_flush() argument
573 spin_lock_irqsave(&can->lock, irq); in kvaser_pciefd_start_controller_flush()
574 iowrite32(-1, can->reg_base + KVASER_PCIEFD_KCAN_IRQ_REG); in kvaser_pciefd_start_controller_flush()
576 can->reg_base + KVASER_PCIEFD_KCAN_IEN_REG); in kvaser_pciefd_start_controller_flush()
578 status = ioread32(can->reg_base + KVASER_PCIEFD_KCAN_STAT_REG); in kvaser_pciefd_start_controller_flush()
584 cmd |= ++can->cmd_seq << KVASER_PCIEFD_KCAN_CMD_SEQ_SHIFT; in kvaser_pciefd_start_controller_flush()
585 iowrite32(cmd, can->reg_base + KVASER_PCIEFD_KCAN_CMD_REG); in kvaser_pciefd_start_controller_flush()
590 mode = ioread32(can->reg_base + KVASER_PCIEFD_KCAN_MODE_REG); in kvaser_pciefd_start_controller_flush()
592 iowrite32(mode, can->reg_base + KVASER_PCIEFD_KCAN_MODE_REG); in kvaser_pciefd_start_controller_flush()
595 spin_unlock_irqrestore(&can->lock, irq); in kvaser_pciefd_start_controller_flush()
598 static int kvaser_pciefd_bus_on(struct kvaser_pciefd_can *can) in kvaser_pciefd_bus_on() argument
603 del_timer(&can->bec_poll_timer); in kvaser_pciefd_bus_on()
605 if (!completion_done(&can->flush_comp)) in kvaser_pciefd_bus_on()
606 kvaser_pciefd_start_controller_flush(can); in kvaser_pciefd_bus_on()
608 if (!wait_for_completion_timeout(&can->flush_comp, in kvaser_pciefd_bus_on()
610 netdev_err(can->can.dev, "Timeout during bus on flush\n"); in kvaser_pciefd_bus_on()
614 spin_lock_irqsave(&can->lock, irq); in kvaser_pciefd_bus_on()
615 iowrite32(0, can->reg_base + KVASER_PCIEFD_KCAN_IEN_REG); in kvaser_pciefd_bus_on()
616 iowrite32(-1, can->reg_base + KVASER_PCIEFD_KCAN_IRQ_REG); in kvaser_pciefd_bus_on()
619 can->reg_base + KVASER_PCIEFD_KCAN_IEN_REG); in kvaser_pciefd_bus_on()
621 mode = ioread32(can->reg_base + KVASER_PCIEFD_KCAN_MODE_REG); in kvaser_pciefd_bus_on()
623 iowrite32(mode, can->reg_base + KVASER_PCIEFD_KCAN_MODE_REG); in kvaser_pciefd_bus_on()
624 spin_unlock_irqrestore(&can->lock, irq); in kvaser_pciefd_bus_on()
626 if (!wait_for_completion_timeout(&can->start_comp, in kvaser_pciefd_bus_on()
628 netdev_err(can->can.dev, "Timeout during bus on reset\n"); in kvaser_pciefd_bus_on()
632 iowrite32(0, can->reg_base + KVASER_PCIEFD_KCAN_IEN_REG); in kvaser_pciefd_bus_on()
633 iowrite32(-1, can->reg_base + KVASER_PCIEFD_KCAN_IRQ_REG); in kvaser_pciefd_bus_on()
635 kvaser_pciefd_set_tx_irq(can); in kvaser_pciefd_bus_on()
636 kvaser_pciefd_setup_controller(can); in kvaser_pciefd_bus_on()
638 can->can.state = CAN_STATE_ERROR_ACTIVE; in kvaser_pciefd_bus_on()
639 netif_wake_queue(can->can.dev); in kvaser_pciefd_bus_on()
640 can->bec.txerr = 0; in kvaser_pciefd_bus_on()
641 can->bec.rxerr = 0; in kvaser_pciefd_bus_on()
642 can->err_rep_cnt = 0; in kvaser_pciefd_bus_on()
647 static void kvaser_pciefd_pwm_stop(struct kvaser_pciefd_can *can) in kvaser_pciefd_pwm_stop() argument
653 spin_lock_irqsave(&can->lock, irq); in kvaser_pciefd_pwm_stop()
654 pwm_ctrl = ioread32(can->reg_base + KVASER_PCIEFD_KCAN_PWM_REG); in kvaser_pciefd_pwm_stop()
659 iowrite32(pwm_ctrl, can->reg_base + KVASER_PCIEFD_KCAN_PWM_REG); in kvaser_pciefd_pwm_stop()
660 spin_unlock_irqrestore(&can->lock, irq); in kvaser_pciefd_pwm_stop()
663 static void kvaser_pciefd_pwm_start(struct kvaser_pciefd_can *can) in kvaser_pciefd_pwm_start() argument
669 kvaser_pciefd_pwm_stop(can); in kvaser_pciefd_pwm_start()
670 spin_lock_irqsave(&can->lock, irq); in kvaser_pciefd_pwm_start()
673 top = can->kv_pcie->bus_freq / (2 * 500000) - 1; in kvaser_pciefd_pwm_start()
677 iowrite32(pwm_ctrl, can->reg_base + KVASER_PCIEFD_KCAN_PWM_REG); in kvaser_pciefd_pwm_start()
683 iowrite32(pwm_ctrl, can->reg_base + KVASER_PCIEFD_KCAN_PWM_REG); in kvaser_pciefd_pwm_start()
684 spin_unlock_irqrestore(&can->lock, irq); in kvaser_pciefd_pwm_start()
690 struct kvaser_pciefd_can *can = netdev_priv(netdev); in kvaser_pciefd_open() local
696 err = kvaser_pciefd_bus_on(can); in kvaser_pciefd_open()
707 struct kvaser_pciefd_can *can = netdev_priv(netdev); in kvaser_pciefd_stop() local
711 if (!completion_done(&can->flush_comp)) in kvaser_pciefd_stop()
712 kvaser_pciefd_start_controller_flush(can); in kvaser_pciefd_stop()
714 if (!wait_for_completion_timeout(&can->flush_comp, in kvaser_pciefd_stop()
716 netdev_err(can->can.dev, "Timeout during stop\n"); in kvaser_pciefd_stop()
719 iowrite32(0, can->reg_base + KVASER_PCIEFD_KCAN_IEN_REG); in kvaser_pciefd_stop()
720 del_timer(&can->bec_poll_timer); in kvaser_pciefd_stop()
728 struct kvaser_pciefd_can *can, in kvaser_pciefd_prepare_tx_packet() argument
733 int seq = can->echo_idx; in kvaser_pciefd_prepare_tx_packet()
737 if (can->can.ctrlmode & CAN_CTRLMODE_ONE_SHOT) in kvaser_pciefd_prepare_tx_packet()
769 struct kvaser_pciefd_can *can = netdev_priv(netdev); in kvaser_pciefd_start_xmit() local
778 nwords = kvaser_pciefd_prepare_tx_packet(&packet, can, skb); in kvaser_pciefd_start_xmit()
780 spin_lock_irqsave(&can->echo_lock, irq_flags); in kvaser_pciefd_start_xmit()
783 can_put_echo_skb(skb, netdev, can->echo_idx, 0); in kvaser_pciefd_start_xmit()
786 can->echo_idx = (can->echo_idx + 1) % can->can.echo_skb_max; in kvaser_pciefd_start_xmit()
790 can->reg_base + KVASER_PCIEFD_KCAN_FIFO_REG); in kvaser_pciefd_start_xmit()
792 can->reg_base + KVASER_PCIEFD_KCAN_FIFO_REG); in kvaser_pciefd_start_xmit()
798 iowrite32_rep(can->reg_base + in kvaser_pciefd_start_xmit()
802 __raw_writel(data_last, can->reg_base + in kvaser_pciefd_start_xmit()
806 __raw_writel(0, can->reg_base + in kvaser_pciefd_start_xmit()
810 count = ioread32(can->reg_base + KVASER_PCIEFD_KCAN_TX_NPACKETS_REG); in kvaser_pciefd_start_xmit()
815 can->can.echo_skb[can->echo_idx]) in kvaser_pciefd_start_xmit()
818 spin_unlock_irqrestore(&can->echo_lock, irq_flags); in kvaser_pciefd_start_xmit()
823 static int kvaser_pciefd_set_bittiming(struct kvaser_pciefd_can *can, bool data) in kvaser_pciefd_set_bittiming() argument
831 bt = &can->can.data_bittiming; in kvaser_pciefd_set_bittiming()
833 bt = &can->can.bittiming; in kvaser_pciefd_set_bittiming()
842 spin_lock_irqsave(&can->lock, irq_flags); in kvaser_pciefd_set_bittiming()
843 mode = ioread32(can->reg_base + KVASER_PCIEFD_KCAN_MODE_REG); in kvaser_pciefd_set_bittiming()
847 can->reg_base + KVASER_PCIEFD_KCAN_MODE_REG); in kvaser_pciefd_set_bittiming()
850 ret = readl_poll_timeout(can->reg_base + KVASER_PCIEFD_KCAN_MODE_REG, in kvaser_pciefd_set_bittiming()
855 spin_unlock_irqrestore(&can->lock, irq_flags); in kvaser_pciefd_set_bittiming()
860 iowrite32(btrn, can->reg_base + KVASER_PCIEFD_KCAN_BTRD_REG); in kvaser_pciefd_set_bittiming()
862 iowrite32(btrn, can->reg_base + KVASER_PCIEFD_KCAN_BTRN_REG); in kvaser_pciefd_set_bittiming()
865 iowrite32(mode, can->reg_base + KVASER_PCIEFD_KCAN_MODE_REG); in kvaser_pciefd_set_bittiming()
867 spin_unlock_irqrestore(&can->lock, irq_flags); in kvaser_pciefd_set_bittiming()
883 struct kvaser_pciefd_can *can = netdev_priv(ndev); in kvaser_pciefd_set_mode() local
888 if (!can->can.restart_ms) in kvaser_pciefd_set_mode()
889 ret = kvaser_pciefd_bus_on(can); in kvaser_pciefd_set_mode()
901 struct kvaser_pciefd_can *can = netdev_priv(ndev); in kvaser_pciefd_get_berr_counter() local
903 bec->rxerr = can->bec.rxerr; in kvaser_pciefd_get_berr_counter()
904 bec->txerr = can->bec.txerr; in kvaser_pciefd_get_berr_counter()
910 struct kvaser_pciefd_can *can = from_timer(can, data, bec_poll_timer); in kvaser_pciefd_bec_poll_timer() local
912 kvaser_pciefd_enable_err_gen(can); in kvaser_pciefd_bec_poll_timer()
913 kvaser_pciefd_request_status(can); in kvaser_pciefd_bec_poll_timer()
914 can->err_rep_cnt = 0; in kvaser_pciefd_bec_poll_timer()
935 struct kvaser_pciefd_can *can; in kvaser_pciefd_setup_can_ctrls() local
943 can = netdev_priv(netdev); in kvaser_pciefd_setup_can_ctrls()
946 can->reg_base = pcie->reg_base + KVASER_PCIEFD_KCAN0_BASE + in kvaser_pciefd_setup_can_ctrls()
949 can->kv_pcie = pcie; in kvaser_pciefd_setup_can_ctrls()
950 can->cmd_seq = 0; in kvaser_pciefd_setup_can_ctrls()
951 can->err_rep_cnt = 0; in kvaser_pciefd_setup_can_ctrls()
952 can->bec.txerr = 0; in kvaser_pciefd_setup_can_ctrls()
953 can->bec.rxerr = 0; in kvaser_pciefd_setup_can_ctrls()
955 init_completion(&can->start_comp); in kvaser_pciefd_setup_can_ctrls()
956 init_completion(&can->flush_comp); in kvaser_pciefd_setup_can_ctrls()
957 timer_setup(&can->bec_poll_timer, kvaser_pciefd_bec_poll_timer, in kvaser_pciefd_setup_can_ctrls()
961 iowrite32(0, can->reg_base + KVASER_PCIEFD_KCAN_BUS_LOAD_REG); in kvaser_pciefd_setup_can_ctrls()
963 tx_npackets = ioread32(can->reg_base + in kvaser_pciefd_setup_can_ctrls()
974 can->can.clock.freq = pcie->freq; in kvaser_pciefd_setup_can_ctrls()
975 can->can.echo_skb_max = KVASER_PCIEFD_CAN_TX_MAX_COUNT; in kvaser_pciefd_setup_can_ctrls()
976 can->echo_idx = 0; in kvaser_pciefd_setup_can_ctrls()
977 spin_lock_init(&can->echo_lock); in kvaser_pciefd_setup_can_ctrls()
978 spin_lock_init(&can->lock); in kvaser_pciefd_setup_can_ctrls()
979 can->can.bittiming_const = &kvaser_pciefd_bittiming_const; in kvaser_pciefd_setup_can_ctrls()
980 can->can.data_bittiming_const = &kvaser_pciefd_bittiming_const; in kvaser_pciefd_setup_can_ctrls()
982 can->can.do_set_bittiming = kvaser_pciefd_set_nominal_bittiming; in kvaser_pciefd_setup_can_ctrls()
983 can->can.do_set_data_bittiming = in kvaser_pciefd_setup_can_ctrls()
986 can->can.do_set_mode = kvaser_pciefd_set_mode; in kvaser_pciefd_setup_can_ctrls()
987 can->can.do_get_berr_counter = kvaser_pciefd_get_berr_counter; in kvaser_pciefd_setup_can_ctrls()
989 can->can.ctrlmode_supported = CAN_CTRLMODE_LISTENONLY | in kvaser_pciefd_setup_can_ctrls()
993 status = ioread32(can->reg_base + KVASER_PCIEFD_KCAN_STAT_REG); in kvaser_pciefd_setup_can_ctrls()
1003 can->can.ctrlmode_supported |= CAN_CTRLMODE_ONE_SHOT; in kvaser_pciefd_setup_can_ctrls()
1009 iowrite32(-1, can->reg_base + KVASER_PCIEFD_KCAN_IRQ_REG); in kvaser_pciefd_setup_can_ctrls()
1012 can->reg_base + KVASER_PCIEFD_KCAN_IEN_REG); in kvaser_pciefd_setup_can_ctrls()
1014 pcie->can[i] = can; in kvaser_pciefd_setup_can_ctrls()
1015 kvaser_pciefd_pwm_start(can); in kvaser_pciefd_setup_can_ctrls()
1026 int err = register_candev(pcie->can[i]->can.dev); in kvaser_pciefd_reg_candev()
1033 unregister_candev(pcie->can[j]->can.dev); in kvaser_pciefd_reg_candev()
1163 priv = &pcie->can[ch_id]->can; in kvaser_pciefd_handle_data_packet()
1210 static void kvaser_pciefd_change_state(struct kvaser_pciefd_can *can, in kvaser_pciefd_change_state() argument
1216 can_change_state(can->can.dev, cf, tx_state, rx_state); in kvaser_pciefd_change_state()
1219 struct net_device *ndev = can->can.dev; in kvaser_pciefd_change_state()
1222 spin_lock_irqsave(&can->lock, irq_flags); in kvaser_pciefd_change_state()
1223 netif_stop_queue(can->can.dev); in kvaser_pciefd_change_state()
1224 spin_unlock_irqrestore(&can->lock, irq_flags); in kvaser_pciefd_change_state()
1227 if (!can->can.restart_ms) { in kvaser_pciefd_change_state()
1228 kvaser_pciefd_start_controller_flush(can); in kvaser_pciefd_change_state()
1260 static int kvaser_pciefd_rx_error_frame(struct kvaser_pciefd_can *can, in kvaser_pciefd_rx_error_frame() argument
1265 struct net_device *ndev = can->can.dev; in kvaser_pciefd_rx_error_frame()
1271 old_state = can->can.state; in kvaser_pciefd_rx_error_frame()
1282 kvaser_pciefd_change_state(can, cf, new_state, tx_state, in kvaser_pciefd_rx_error_frame()
1287 can->can.restart_ms) { in kvaser_pciefd_rx_error_frame()
1288 can->can.can_stats.restarts++; in kvaser_pciefd_rx_error_frame()
1294 can->err_rep_cnt++; in kvaser_pciefd_rx_error_frame()
1295 can->can.can_stats.bus_error++; in kvaser_pciefd_rx_error_frame()
1301 can->bec.txerr = bec.txerr; in kvaser_pciefd_rx_error_frame()
1302 can->bec.rxerr = bec.rxerr; in kvaser_pciefd_rx_error_frame()
1312 can->kv_pcie->freq_to_ticks_div)); in kvaser_pciefd_rx_error_frame()
1325 struct kvaser_pciefd_can *can; in kvaser_pciefd_handle_error_packet() local
1331 can = pcie->can[ch_id]; in kvaser_pciefd_handle_error_packet()
1333 kvaser_pciefd_rx_error_frame(can, p); in kvaser_pciefd_handle_error_packet()
1334 if (can->err_rep_cnt >= KVASER_PCIEFD_MAX_ERR_REP) in kvaser_pciefd_handle_error_packet()
1336 kvaser_pciefd_disable_err_gen(can); in kvaser_pciefd_handle_error_packet()
1338 mod_timer(&can->bec_poll_timer, KVASER_PCIEFD_BEC_POLL_FREQ); in kvaser_pciefd_handle_error_packet()
1342 static int kvaser_pciefd_handle_status_resp(struct kvaser_pciefd_can *can, in kvaser_pciefd_handle_status_resp() argument
1348 old_state = can->can.state; in kvaser_pciefd_handle_status_resp()
1357 struct net_device *ndev = can->can.dev; in kvaser_pciefd_handle_status_resp()
1370 kvaser_pciefd_change_state(can, cf, new_state, tx_state, in kvaser_pciefd_handle_status_resp()
1375 can->can.restart_ms) { in kvaser_pciefd_handle_status_resp()
1376 can->can.can_stats.restarts++; in kvaser_pciefd_handle_status_resp()
1383 can->kv_pcie->freq_to_ticks_div)); in kvaser_pciefd_handle_status_resp()
1390 can->bec.txerr = bec.txerr; in kvaser_pciefd_handle_status_resp()
1391 can->bec.rxerr = bec.rxerr; in kvaser_pciefd_handle_status_resp()
1394 mod_timer(&can->bec_poll_timer, KVASER_PCIEFD_BEC_POLL_FREQ); in kvaser_pciefd_handle_status_resp()
1402 struct kvaser_pciefd_can *can; in kvaser_pciefd_handle_status_packet() local
1410 can = pcie->can[ch_id]; in kvaser_pciefd_handle_status_packet()
1412 status = ioread32(can->reg_base + KVASER_PCIEFD_KCAN_STAT_REG); in kvaser_pciefd_handle_status_packet()
1424 can->reg_base + KVASER_PCIEFD_KCAN_IRQ_REG); in kvaser_pciefd_handle_status_packet()
1426 cmd |= ++can->cmd_seq << KVASER_PCIEFD_KCAN_CMD_SEQ_SHIFT; in kvaser_pciefd_handle_status_packet()
1427 iowrite32(cmd, can->reg_base + KVASER_PCIEFD_KCAN_CMD_REG); in kvaser_pciefd_handle_status_packet()
1430 can->reg_base + KVASER_PCIEFD_KCAN_IEN_REG); in kvaser_pciefd_handle_status_packet()
1436 u8 count = ioread32(can->reg_base + in kvaser_pciefd_handle_status_packet()
1441 can->reg_base + KVASER_PCIEFD_KCAN_CTRL_REG); in kvaser_pciefd_handle_status_packet()
1445 kvaser_pciefd_handle_status_resp(can, p); in kvaser_pciefd_handle_status_packet()
1446 if (can->can.state != CAN_STATE_BUS_OFF && in kvaser_pciefd_handle_status_packet()
1447 can->can.state != CAN_STATE_ERROR_ACTIVE) { in kvaser_pciefd_handle_status_packet()
1448 mod_timer(&can->bec_poll_timer, in kvaser_pciefd_handle_status_packet()
1454 if (!completion_done(&can->start_comp)) in kvaser_pciefd_handle_status_packet()
1455 complete(&can->start_comp); in kvaser_pciefd_handle_status_packet()
1464 struct kvaser_pciefd_can *can; in kvaser_pciefd_handle_eack_packet() local
1470 can = pcie->can[ch_id]; in kvaser_pciefd_handle_eack_packet()
1474 u8 count = ioread32(can->reg_base + in kvaser_pciefd_handle_eack_packet()
1479 can->reg_base + KVASER_PCIEFD_KCAN_CTRL_REG); in kvaser_pciefd_handle_eack_packet()
1482 int dlc = can_get_echo_skb(can->can.dev, echo_idx, NULL); in kvaser_pciefd_handle_eack_packet()
1483 struct net_device_stats *stats = &can->can.dev->stats; in kvaser_pciefd_handle_eack_packet()
1488 if (netif_queue_stopped(can->can.dev)) in kvaser_pciefd_handle_eack_packet()
1489 netif_wake_queue(can->can.dev); in kvaser_pciefd_handle_eack_packet()
1495 static void kvaser_pciefd_handle_nack_packet(struct kvaser_pciefd_can *can, in kvaser_pciefd_handle_nack_packet() argument
1499 struct net_device_stats *stats = &can->can.dev->stats; in kvaser_pciefd_handle_nack_packet()
1502 skb = alloc_can_err_skb(can->can.dev, &cf); in kvaser_pciefd_handle_nack_packet()
1508 can->can.can_stats.arbitration_lost++; in kvaser_pciefd_handle_nack_packet()
1518 netdev_warn(can->can.dev, "No memory left for err_skb\n"); in kvaser_pciefd_handle_nack_packet()
1525 struct kvaser_pciefd_can *can; in kvaser_pciefd_handle_ack_packet() local
1532 can = pcie->can[ch_id]; in kvaser_pciefd_handle_ack_packet()
1538 kvaser_pciefd_handle_nack_packet(can, p); in kvaser_pciefd_handle_ack_packet()
1543 netdev_dbg(can->can.dev, "Packet was flushed\n"); in kvaser_pciefd_handle_ack_packet()
1546 int dlc = can_get_echo_skb(can->can.dev, echo_idx, NULL); in kvaser_pciefd_handle_ack_packet()
1547 u8 count = ioread32(can->reg_base + in kvaser_pciefd_handle_ack_packet()
1551 netif_queue_stopped(can->can.dev)) in kvaser_pciefd_handle_ack_packet()
1552 netif_wake_queue(can->can.dev); in kvaser_pciefd_handle_ack_packet()
1555 struct net_device_stats *stats = &can->can.dev->stats; in kvaser_pciefd_handle_ack_packet()
1568 struct kvaser_pciefd_can *can; in kvaser_pciefd_handle_eflush_packet() local
1574 can = pcie->can[ch_id]; in kvaser_pciefd_handle_eflush_packet()
1576 if (!completion_done(&can->flush_comp)) in kvaser_pciefd_handle_eflush_packet()
1577 complete(&can->flush_comp); in kvaser_pciefd_handle_eflush_packet()
1710 static int kvaser_pciefd_transmit_irq(struct kvaser_pciefd_can *can) in kvaser_pciefd_transmit_irq() argument
1712 u32 irq = ioread32(can->reg_base + KVASER_PCIEFD_KCAN_IRQ_REG); in kvaser_pciefd_transmit_irq()
1715 netdev_err(can->can.dev, "Tx FIFO overflow\n"); in kvaser_pciefd_transmit_irq()
1718 u8 count = ioread32(can->reg_base + in kvaser_pciefd_transmit_irq()
1723 can->reg_base + KVASER_PCIEFD_KCAN_CTRL_REG); in kvaser_pciefd_transmit_irq()
1727 netdev_err(can->can.dev, in kvaser_pciefd_transmit_irq()
1731 netdev_err(can->can.dev, "CAN FD frame in CAN mode\n"); in kvaser_pciefd_transmit_irq()
1734 netdev_err(can->can.dev, "Rx FIFO overflow\n"); in kvaser_pciefd_transmit_irq()
1736 iowrite32(irq, can->reg_base + KVASER_PCIEFD_KCAN_IRQ_REG); in kvaser_pciefd_transmit_irq()
1755 if (!pcie->can[i]) { in kvaser_pciefd_irq_handler()
1763 kvaser_pciefd_transmit_irq(pcie->can[i]); in kvaser_pciefd_irq_handler()
1773 struct kvaser_pciefd_can *can; in kvaser_pciefd_teardown_can_ctrls() local
1776 can = pcie->can[i]; in kvaser_pciefd_teardown_can_ctrls()
1777 if (can) { in kvaser_pciefd_teardown_can_ctrls()
1779 can->reg_base + KVASER_PCIEFD_KCAN_IEN_REG); in kvaser_pciefd_teardown_can_ctrls()
1780 kvaser_pciefd_pwm_stop(can); in kvaser_pciefd_teardown_can_ctrls()
1781 free_candev(can->can.dev); in kvaser_pciefd_teardown_can_ctrls()
1880 struct kvaser_pciefd_can *can; in kvaser_pciefd_remove_all_ctrls() local
1884 can = pcie->can[i]; in kvaser_pciefd_remove_all_ctrls()
1885 if (can) { in kvaser_pciefd_remove_all_ctrls()
1887 can->reg_base + KVASER_PCIEFD_KCAN_IEN_REG); in kvaser_pciefd_remove_all_ctrls()
1888 unregister_candev(can->can.dev); in kvaser_pciefd_remove_all_ctrls()
1889 del_timer(&can->bec_poll_timer); in kvaser_pciefd_remove_all_ctrls()
1890 kvaser_pciefd_pwm_stop(can); in kvaser_pciefd_remove_all_ctrls()
1891 free_candev(can->can.dev); in kvaser_pciefd_remove_all_ctrls()