Lines Matching refs:bcm
328 static int bcm_request_irq(struct bcm_data *bcm) in bcm_request_irq() argument
330 struct bcm_device *bdev = bcm->dev; in bcm_request_irq()
387 struct bcm_data *bcm = hu->priv; in bcm_setup_sleep() local
391 sleep_params.host_wake_active = !bcm->dev->irq_active_low; in bcm_setup_sleep()
407 static inline int bcm_request_irq(struct bcm_data *bcm) { return 0; } in bcm_request_irq() argument
414 struct bcm_data *bcm = hu->priv; in bcm_set_diag() local
428 skb_queue_tail(&bcm->txq, skb); in bcm_set_diag()
436 struct bcm_data *bcm; in bcm_open() local
445 bcm = kzalloc(sizeof(*bcm), GFP_KERNEL); in bcm_open()
446 if (!bcm) in bcm_open()
449 skb_queue_head_init(&bcm->txq); in bcm_open()
451 hu->priv = bcm; in bcm_open()
456 bcm->dev = serdev_device_get_drvdata(hu->serdev); in bcm_open()
471 bcm->dev = dev; in bcm_open()
480 if (bcm->dev) { in bcm_open()
481 if (bcm->dev->use_autobaud_mode) in bcm_open()
483 else if (bcm->dev->drive_rts_on_open) in bcm_open()
486 if (bcm->dev->use_autobaud_mode && bcm->dev->max_autobaud_speed) in bcm_open()
487 hu->init_speed = min(bcm->dev->oper_speed, bcm->dev->max_autobaud_speed); in bcm_open()
489 hu->init_speed = bcm->dev->init_speed; in bcm_open()
494 if (!bcm->dev->no_early_set_baudrate && !bcm->dev->use_autobaud_mode) in bcm_open()
495 hu->oper_speed = bcm->dev->oper_speed; in bcm_open()
497 err = bcm_gpio_set_power(bcm->dev, true); in bcm_open()
499 if (bcm->dev->drive_rts_on_open) in bcm_open()
512 bcm->dev->hu = NULL; in bcm_open()
516 kfree(bcm); in bcm_open()
522 struct bcm_data *bcm = hu->priv; in bcm_close() local
533 } else if (bcm_device_exists(bcm->dev)) { in bcm_close()
534 bdev = bcm->dev; in bcm_close()
555 skb_queue_purge(&bcm->txq); in bcm_close()
556 kfree_skb(bcm->rx_skb); in bcm_close()
557 kfree(bcm); in bcm_close()
565 struct bcm_data *bcm = hu->priv; in bcm_flush() local
569 skb_queue_purge(&bcm->txq); in bcm_flush()
576 struct bcm_data *bcm = hu->priv; in bcm_setup() local
578 bool use_autobaud_mode = (bcm->dev ? bcm->dev->use_autobaud_mode : 0); in bcm_setup()
595 if (bcm->dev && bcm->dev->init_speed) in bcm_setup()
596 speed = bcm->dev->init_speed; in bcm_setup()
608 else if (bcm->dev && bcm->dev->oper_speed) in bcm_setup()
609 speed = bcm->dev->oper_speed; in bcm_setup()
622 if (bcm->dev && bcm->dev->pcm_int_params[0] != 0xff) { in bcm_setup()
627 memcpy(¶ms, bcm->dev->pcm_int_params, 5); in bcm_setup()
641 if (!bcm_request_irq(bcm)) in bcm_setup()
688 struct bcm_data *bcm = hu->priv; in bcm_recv() local
693 bcm->rx_skb = h4_recv_buf(hu->hdev, bcm->rx_skb, data, count, in bcm_recv()
695 if (IS_ERR(bcm->rx_skb)) { in bcm_recv()
696 int err = PTR_ERR(bcm->rx_skb); in bcm_recv()
698 bcm->rx_skb = NULL; in bcm_recv()
700 } else if (!bcm->rx_skb) { in bcm_recv()
703 if (bcm->dev && bcm_device_exists(bcm->dev)) { in bcm_recv()
704 pm_runtime_get(bcm->dev->dev); in bcm_recv()
705 pm_runtime_mark_last_busy(bcm->dev->dev); in bcm_recv()
706 pm_runtime_put_autosuspend(bcm->dev->dev); in bcm_recv()
716 struct bcm_data *bcm = hu->priv; in bcm_enqueue() local
722 skb_queue_tail(&bcm->txq, skb); in bcm_enqueue()
729 struct bcm_data *bcm = hu->priv; in bcm_dequeue() local
735 if (bcm_device_exists(bcm->dev)) { in bcm_dequeue()
736 bdev = bcm->dev; in bcm_dequeue()
741 skb = skb_dequeue(&bcm->txq); in bcm_dequeue()