Lines Matching refs:bcm

154 /* generic bcm uart resources */
181 struct bcm_data *bcm = hu->priv;
185 if (speed > 3000000 && !bcm->dev->no_uart_clock_set) {
335 static int bcm_request_irq(struct bcm_data *bcm)
337 struct bcm_device *bdev = bcm->dev;
394 struct bcm_data *bcm = hu->priv;
398 sleep_params.host_wake_active = !bcm->dev->irq_active_low;
414 static inline int bcm_request_irq(struct bcm_data *bcm) { return 0; }
421 struct bcm_data *bcm = hu->priv;
435 skb_queue_tail(&bcm->txq, skb);
443 struct bcm_data *bcm;
452 bcm = kzalloc(sizeof(*bcm), GFP_KERNEL);
453 if (!bcm)
456 skb_queue_head_init(&bcm->txq);
458 hu->priv = bcm;
463 bcm->dev = serdev_device_get_drvdata(hu->serdev);
478 bcm->dev = dev;
487 if (bcm->dev) {
488 if (bcm->dev->use_autobaud_mode)
490 else if (bcm->dev->drive_rts_on_open)
493 if (bcm->dev->use_autobaud_mode && bcm->dev->max_autobaud_speed)
494 hu->init_speed = min(bcm->dev->oper_speed, bcm->dev->max_autobaud_speed);
496 hu->init_speed = bcm->dev->init_speed;
501 if (!bcm->dev->no_early_set_baudrate && !bcm->dev->use_autobaud_mode)
502 hu->oper_speed = bcm->dev->oper_speed;
504 err = bcm_gpio_set_power(bcm->dev, true);
506 if (bcm->dev->drive_rts_on_open)
519 bcm->dev->hu = NULL;
523 kfree(bcm);
529 struct bcm_data *bcm = hu->priv;
535 /* Protect bcm->dev against removal of the device or driver */
540 } else if (bcm_device_exists(bcm->dev)) {
541 bdev = bcm->dev;
562 skb_queue_purge(&bcm->txq);
563 kfree_skb(bcm->rx_skb);
564 kfree(bcm);
572 struct bcm_data *bcm = hu->priv;
576 skb_queue_purge(&bcm->txq);
583 struct bcm_data *bcm = hu->priv;
585 bool use_autobaud_mode = (bcm->dev ? bcm->dev->use_autobaud_mode : 0);
602 if (bcm->dev && bcm->dev->init_speed)
603 speed = bcm->dev->init_speed;
615 else if (bcm->dev && bcm->dev->oper_speed)
616 speed = bcm->dev->oper_speed;
629 if (bcm->dev && bcm->dev->pcm_int_params[0] != 0xff) {
634 memcpy(&params, bcm->dev->pcm_int_params, 5);
649 if (!bcm_request_irq(bcm))
696 struct bcm_data *bcm = hu->priv;
701 bcm->rx_skb = h4_recv_buf(hu->hdev, bcm->rx_skb, data, count,
703 if (IS_ERR(bcm->rx_skb)) {
704 int err = PTR_ERR(bcm->rx_skb);
706 bcm->rx_skb = NULL;
708 } else if (!bcm->rx_skb) {
711 if (bcm->dev && bcm_device_exists(bcm->dev)) {
712 pm_runtime_get(bcm->dev->dev);
713 pm_runtime_mark_last_busy(bcm->dev->dev);
714 pm_runtime_put_autosuspend(bcm->dev->dev);
724 struct bcm_data *bcm = hu->priv;
730 skb_queue_tail(&bcm->txq, skb);
737 struct bcm_data *bcm = hu->priv;
743 if (bcm_device_exists(bcm->dev)) {
744 bdev = bcm->dev;
749 skb = skb_dequeue(&bcm->txq);