Lines Matching refs:cl_data
99 struct hsc_client_data *cl_data; member
240 struct hsc_client_data *cl_data = hsi_client_drvdata(msg->cl); in hsc_rx_completed() local
241 struct hsc_channel *channel = cl_data->channels + msg->channel; in hsc_rx_completed()
260 struct hsc_client_data *cl_data = hsi_client_drvdata(msg->cl); in hsc_tx_completed() local
261 struct hsc_channel *channel = cl_data->channels + msg->channel; in hsc_tx_completed()
280 struct hsc_client_data *cl_data = hsi_client_drvdata(msg->cl); in hsc_break_req_destructor() local
283 clear_bit(HSC_RXBREAK, &cl_data->flags); in hsc_break_req_destructor()
288 struct hsc_client_data *cl_data = hsi_client_drvdata(msg->cl); in hsc_break_received() local
289 struct hsc_channel *channel = cl_data->channels; in hsc_break_received()
315 struct hsc_client_data *cl_data = hsi_client_drvdata(cl); in hsc_break_request() local
319 if (test_and_set_bit(HSC_RXBREAK, &cl_data->flags)) in hsc_break_request()
324 clear_bit(HSC_RXBREAK, &cl_data->flags); in hsc_break_request()
592 static inline void __hsc_port_release(struct hsc_client_data *cl_data) in __hsc_port_release() argument
594 BUG_ON(cl_data->usecnt == 0); in __hsc_port_release()
596 if (--cl_data->usecnt == 0) { in __hsc_port_release()
597 hsi_flush(cl_data->cl); in __hsc_port_release()
598 hsi_release_port(cl_data->cl); in __hsc_port_release()
604 struct hsc_client_data *cl_data; in hsc_open() local
610 cl_data = container_of(inode->i_cdev, struct hsc_client_data, cdev); in hsc_open()
611 mutex_lock(&cl_data->lock); in hsc_open()
612 channel = cl_data->channels + (iminor(inode) & HSC_CH_MASK); in hsc_open()
622 if (cl_data->usecnt == 0) { in hsc_open()
623 ret = hsi_claim_port(cl_data->cl, 0); in hsc_open()
626 hsi_setup(cl_data->cl); in hsc_open()
628 cl_data->usecnt++; in hsc_open()
632 __hsc_port_release(cl_data); in hsc_open()
637 mutex_unlock(&cl_data->lock); in hsc_open()
641 mutex_unlock(&cl_data->lock); in hsc_open()
649 struct hsc_client_data *cl_data = channel->cl_data; in hsc_release() local
651 mutex_lock(&cl_data->lock); in hsc_release()
655 __hsc_port_release(cl_data); in hsc_release()
664 mutex_unlock(&cl_data->lock); in hsc_release()
691 struct hsc_client_data *cl_data; in hsc_probe() local
699 cl_data = kzalloc(sizeof(*cl_data), GFP_KERNEL); in hsc_probe()
700 if (!cl_data) { in hsc_probe()
719 mutex_init(&cl_data->lock); in hsc_probe()
720 hsi_client_set_drvdata(cl, cl_data); in hsc_probe()
721 cdev_init(&cl_data->cdev, &hsc_fops); in hsc_probe()
722 cl_data->cdev.owner = THIS_MODULE; in hsc_probe()
723 cl_data->cl = cl; in hsc_probe()
724 for (i = 0, channel = cl_data->channels; i < HSC_DEVS; i++, channel++) { in hsc_probe()
728 channel->cl_data = cl_data; in hsc_probe()
732 ret = cdev_add(&cl_data->cdev, hsc_dev, HSC_DEVS); in hsc_probe()
742 kfree(cl_data); in hsc_probe()
750 struct hsc_client_data *cl_data = hsi_client_drvdata(cl); in hsc_remove() local
751 dev_t hsc_dev = cl_data->cdev.dev; in hsc_remove()
753 cdev_del(&cl_data->cdev); in hsc_remove()
756 kfree(cl_data); in hsc_remove()