Lines Matching full:bcm
154 /* generic bcm uart resources */
162 /* List of BCM BT UART devices */
181 struct bcm_data *bcm = hu->priv; in bcm_set_baudrate() local
185 if (speed > 3000000 && !bcm->dev->no_uart_clock_set) { in bcm_set_baudrate()
198 bt_dev_err(hdev, "BCM: failed to write clock (%d)", in bcm_set_baudrate()
218 bt_dev_err(hdev, "BCM: failed to write update baudrate (%d)", in bcm_set_baudrate()
335 static int bcm_request_irq(struct bcm_data *bcm) in bcm_request_irq() argument
337 struct bcm_device *bdev = bcm->dev; in bcm_request_irq()
394 struct bcm_data *bcm = hu->priv; in bcm_setup_sleep() local
398 sleep_params.host_wake_active = !bcm->dev->irq_active_low; in bcm_setup_sleep()
414 static inline int bcm_request_irq(struct bcm_data *bcm) { return 0; } in bcm_request_irq() argument
421 struct bcm_data *bcm = hu->priv; in bcm_set_diag() local
435 skb_queue_tail(&bcm->txq, skb); in bcm_set_diag()
443 struct bcm_data *bcm; in bcm_open() local
452 bcm = kzalloc(sizeof(*bcm), GFP_KERNEL); in bcm_open()
453 if (!bcm) in bcm_open()
456 skb_queue_head_init(&bcm->txq); in bcm_open()
458 hu->priv = bcm; in bcm_open()
463 bcm->dev = serdev_device_get_drvdata(hu->serdev); in bcm_open()
478 bcm->dev = dev; in bcm_open()
487 if (bcm->dev) { in bcm_open()
488 if (bcm->dev->use_autobaud_mode) in bcm_open()
490 else if (bcm->dev->drive_rts_on_open) in bcm_open()
493 if (bcm->dev->use_autobaud_mode && bcm->dev->max_autobaud_speed) in bcm_open()
494 hu->init_speed = min(bcm->dev->oper_speed, bcm->dev->max_autobaud_speed); in bcm_open()
496 hu->init_speed = bcm->dev->init_speed; in bcm_open()
501 if (!bcm->dev->no_early_set_baudrate && !bcm->dev->use_autobaud_mode) in bcm_open()
502 hu->oper_speed = bcm->dev->oper_speed; in bcm_open()
504 err = bcm_gpio_set_power(bcm->dev, true); in bcm_open()
506 if (bcm->dev->drive_rts_on_open) in bcm_open()
519 bcm->dev->hu = NULL; in bcm_open()
523 kfree(bcm); in bcm_open()
529 struct bcm_data *bcm = hu->priv; in bcm_close() local
535 /* Protect bcm->dev against removal of the device or driver */ in bcm_close()
540 } else if (bcm_device_exists(bcm->dev)) { in bcm_close()
541 bdev = bcm->dev; in bcm_close()
562 skb_queue_purge(&bcm->txq); in bcm_close()
563 kfree_skb(bcm->rx_skb); in bcm_close()
564 kfree(bcm); in bcm_close()
572 struct bcm_data *bcm = hu->priv; in bcm_flush() local
576 skb_queue_purge(&bcm->txq); in bcm_flush()
583 struct bcm_data *bcm = hu->priv; in bcm_setup() local
585 bool use_autobaud_mode = (bcm->dev ? bcm->dev->use_autobaud_mode : 0); in bcm_setup()
602 if (bcm->dev && bcm->dev->init_speed) in bcm_setup()
603 speed = bcm->dev->init_speed; in bcm_setup()
615 else if (bcm->dev && bcm->dev->oper_speed) in bcm_setup()
616 speed = bcm->dev->oper_speed; in bcm_setup()
629 if (bcm->dev && bcm->dev->pcm_int_params[0] != 0xff) { in bcm_setup()
634 memcpy(¶ms, bcm->dev->pcm_int_params, 5); in bcm_setup()
649 if (!bcm_request_irq(bcm)) in bcm_setup()
696 struct bcm_data *bcm = hu->priv; in bcm_recv() local
701 bcm->rx_skb = h4_recv_buf(hu->hdev, bcm->rx_skb, data, count, in bcm_recv()
703 if (IS_ERR(bcm->rx_skb)) { in bcm_recv()
704 int err = PTR_ERR(bcm->rx_skb); in bcm_recv()
706 bcm->rx_skb = NULL; in bcm_recv()
708 } else if (!bcm->rx_skb) { in bcm_recv()
711 if (bcm->dev && bcm_device_exists(bcm->dev)) { in bcm_recv()
712 pm_runtime_get(bcm->dev->dev); in bcm_recv()
713 pm_runtime_mark_last_busy(bcm->dev->dev); in bcm_recv()
714 pm_runtime_put_autosuspend(bcm->dev->dev); in bcm_recv()
724 struct bcm_data *bcm = hu->priv; in bcm_enqueue() local
730 skb_queue_tail(&bcm->txq, skb); in bcm_enqueue()
737 struct bcm_data *bcm = hu->priv; in bcm_dequeue() local
743 if (bcm_device_exists(bcm->dev)) { in bcm_dequeue()
744 bdev = bcm->dev; in bcm_dequeue()
749 skb = skb_dequeue(&bcm->txq); in bcm_dequeue()
845 bt_dev_dbg(bdev, "BCM irq: enabled"); in bcm_suspend()
875 bt_dev_dbg(bdev, "BCM irq: disabled"); in bcm_resume()
1163 dev_dbg(dev->dev, "BCM irq: %d\n", dev->irq); in bcm_get_resources()