lldev             130 drivers/bluetooth/hci_ll.c 		struct ll_device *lldev = serdev_device_get_drvdata(hu->serdev);
lldev             132 drivers/bluetooth/hci_ll.c 		if (!IS_ERR(lldev->ext_clk))
lldev             133 drivers/bluetooth/hci_ll.c 			clk_prepare_enable(lldev->ext_clk);
lldev             165 drivers/bluetooth/hci_ll.c 		struct ll_device *lldev = serdev_device_get_drvdata(hu->serdev);
lldev             167 drivers/bluetooth/hci_ll.c 		gpiod_set_value_cansleep(lldev->enable_gpio, 0);
lldev             169 drivers/bluetooth/hci_ll.c 		clk_disable_unprepare(lldev->ext_clk);
lldev             486 drivers/bluetooth/hci_ll.c static int send_command_from_firmware(struct ll_device *lldev,
lldev             495 drivers/bluetooth/hci_ll.c 		bt_dev_warn(lldev->hu.hdev,
lldev             500 drivers/bluetooth/hci_ll.c 		bt_dev_dbg(lldev->hu.hdev, "command type %d", cmd->prefix);
lldev             502 drivers/bluetooth/hci_ll.c 	skb = __hci_cmd_sync(lldev->hu.hdev, cmd->opcode, cmd->plen,
lldev             505 drivers/bluetooth/hci_ll.c 		bt_dev_err(lldev->hu.hdev, "send command failed");
lldev             517 drivers/bluetooth/hci_ll.c static int download_firmware(struct ll_device *lldev)
lldev             526 drivers/bluetooth/hci_ll.c 	version = read_local_version(lldev->hu.hdev);
lldev             540 drivers/bluetooth/hci_ll.c 	err = request_firmware(&fw, bts_scr_name, &lldev->serdev->dev);
lldev             542 drivers/bluetooth/hci_ll.c 		bt_dev_err(lldev->hu.hdev, "request_firmware failed(errno %d) for %s",
lldev             555 drivers/bluetooth/hci_ll.c 		bt_dev_dbg(lldev->hu.hdev, " action size %d, type %d ",
lldev             563 drivers/bluetooth/hci_ll.c 			bt_dev_dbg(lldev->hu.hdev, "S");
lldev             565 drivers/bluetooth/hci_ll.c 			err = send_command_from_firmware(lldev, cmd);
lldev             571 drivers/bluetooth/hci_ll.c 			bt_dev_dbg(lldev->hu.hdev, "W");
lldev             574 drivers/bluetooth/hci_ll.c 			bt_dev_info(lldev->hu.hdev, "sleep command in scr");
lldev             611 drivers/bluetooth/hci_ll.c 	struct ll_device *lldev;
lldev             618 drivers/bluetooth/hci_ll.c 	lldev = serdev_device_get_drvdata(serdev);
lldev             626 drivers/bluetooth/hci_ll.c 		gpiod_set_value_cansleep(lldev->enable_gpio, 0);
lldev             628 drivers/bluetooth/hci_ll.c 		gpiod_set_value_cansleep(lldev->enable_gpio, 1);
lldev             635 drivers/bluetooth/hci_ll.c 		err = download_firmware(lldev);
lldev             647 drivers/bluetooth/hci_ll.c 	if (!bacmp(&lldev->bdaddr, BDADDR_NONE)) {
lldev             652 drivers/bluetooth/hci_ll.c 	} else if (bacmp(&lldev->bdaddr, BDADDR_ANY)) {
lldev             653 drivers/bluetooth/hci_ll.c 		err = ll_set_bdaddr(hu->hdev, &lldev->bdaddr);
lldev             687 drivers/bluetooth/hci_ll.c 	struct ll_device *lldev;
lldev             691 drivers/bluetooth/hci_ll.c 	lldev = devm_kzalloc(&serdev->dev, sizeof(struct ll_device), GFP_KERNEL);
lldev             692 drivers/bluetooth/hci_ll.c 	if (!lldev)
lldev             694 drivers/bluetooth/hci_ll.c 	hu = &lldev->hu;
lldev             696 drivers/bluetooth/hci_ll.c 	serdev_device_set_drvdata(serdev, lldev);
lldev             697 drivers/bluetooth/hci_ll.c 	lldev->serdev = hu->serdev = serdev;
lldev             699 drivers/bluetooth/hci_ll.c 	lldev->enable_gpio = devm_gpiod_get_optional(&serdev->dev,
lldev             702 drivers/bluetooth/hci_ll.c 	if (IS_ERR(lldev->enable_gpio))
lldev             703 drivers/bluetooth/hci_ll.c 		return PTR_ERR(lldev->enable_gpio);
lldev             705 drivers/bluetooth/hci_ll.c 	lldev->ext_clk = devm_clk_get(&serdev->dev, "ext_clock");
lldev             706 drivers/bluetooth/hci_ll.c 	if (IS_ERR(lldev->ext_clk) && PTR_ERR(lldev->ext_clk) != -ENOENT)
lldev             707 drivers/bluetooth/hci_ll.c 		return PTR_ERR(lldev->ext_clk);
lldev             732 drivers/bluetooth/hci_ll.c 			bacpy(&lldev->bdaddr, BDADDR_NONE);
lldev             754 drivers/bluetooth/hci_ll.c 		baswap(&lldev->bdaddr, bdaddr);
lldev             763 drivers/bluetooth/hci_ll.c 	struct ll_device *lldev = serdev_device_get_drvdata(serdev);
lldev             765 drivers/bluetooth/hci_ll.c 	hci_uart_unregister_device(&lldev->hu);
lldev              85 drivers/dma/qcom/hidma.c 	return container_of(_lldevp, struct hidma_dev, lldev);
lldev             141 drivers/dma/qcom/hidma.c 		llstat = hidma_ll_status(mdma->lldev, mdesc->tre_ch);
lldev             232 drivers/dma/qcom/hidma.c 	hidma_ll_start(dmadev->lldev);
lldev             245 drivers/dma/qcom/hidma.c 		hidma_ll_queue_request(dmadev->lldev, qdesc->tre_ch);
lldev             262 drivers/dma/qcom/hidma.c 		hidma_ll_start(dmadev->lldev);
lldev             326 drivers/dma/qcom/hidma.c 	if (!hidma_ll_isenabled(dmadev->lldev)) {
lldev             371 drivers/dma/qcom/hidma.c 		rc = hidma_ll_request(dmadev->lldev, mchan->dma_sig,
lldev             386 drivers/dma/qcom/hidma.c 			hidma_ll_free(dmadev->lldev, mdesc->tre_ch);
lldev             420 drivers/dma/qcom/hidma.c 	hidma_ll_set_transfer_params(mdma->lldev, mdesc->tre_ch,
lldev             453 drivers/dma/qcom/hidma.c 	hidma_ll_set_transfer_params(mdma->lldev, mdesc->tre_ch,
lldev             487 drivers/dma/qcom/hidma.c 	rc = hidma_ll_disable(dmadev->lldev);
lldev             505 drivers/dma/qcom/hidma.c 	rc = hidma_ll_enable(dmadev->lldev);
lldev             524 drivers/dma/qcom/hidma.c 	rc = hidma_ll_setup(dmadev->lldev);
lldev             548 drivers/dma/qcom/hidma.c 		hidma_ll_free(mdma->lldev, mdesc->tre_ch);
lldev             566 drivers/dma/qcom/hidma.c 		if (hidma_ll_disable(dmadev->lldev))
lldev             585 drivers/dma/qcom/hidma.c 		rc = hidma_ll_enable(dmadev->lldev);
lldev             599 drivers/dma/qcom/hidma.c 	struct hidma_lldev *lldev = arg;
lldev             605 drivers/dma/qcom/hidma.c 	return hidma_ll_inthandler(chirq, lldev);
lldev             691 drivers/dma/qcom/hidma.c 		devm_free_irq(dev, desc->irq, &dmadev->lldev);
lldev             717 drivers/dma/qcom/hidma.c 				       &dmadev->lldev);
lldev             730 drivers/dma/qcom/hidma.c 				      &dmadev->lldev);
lldev             734 drivers/dma/qcom/hidma.c 		hidma_ll_setup_irq(dmadev->lldev, true);
lldev             858 drivers/dma/qcom/hidma.c 	dmadev->lldev = hidma_ll_init(dmadev->ddev.dev,
lldev             861 drivers/dma/qcom/hidma.c 	if (!dmadev->lldev) {
lldev             871 drivers/dma/qcom/hidma.c 		hidma_ll_setup_irq(dmadev->lldev, false);
lldev             873 drivers/dma/qcom/hidma.c 				      0, "qcom-hidma", dmadev->lldev);
lldev             901 drivers/dma/qcom/hidma.c 	hidma_ll_uninit(dmadev->lldev);
lldev             918 drivers/dma/qcom/hidma.c 	if (hidma_ll_disable(dmadev->lldev))
lldev             931 drivers/dma/qcom/hidma.c 	if (!dmadev->lldev->msi_support)
lldev             932 drivers/dma/qcom/hidma.c 		devm_free_irq(dmadev->ddev.dev, dmadev->irq, dmadev->lldev);
lldev             939 drivers/dma/qcom/hidma.c 	hidma_ll_uninit(dmadev->lldev);
lldev              37 drivers/dma/qcom/hidma.h 	struct hidma_lldev *lldev;	/* lldma device pointer		    */
lldev             116 drivers/dma/qcom/hidma.h 	struct hidma_lldev		*lldev;
lldev             144 drivers/dma/qcom/hidma.h int hidma_ll_disable(struct hidma_lldev *lldev);
lldev             148 drivers/dma/qcom/hidma.h void hidma_ll_setup_irq(struct hidma_lldev *lldev, bool msi);
lldev             149 drivers/dma/qcom/hidma.h int hidma_ll_setup(struct hidma_lldev *lldev);
lldev              17 drivers/dma/qcom/hidma_dbg.c 	struct hidma_lldev *lldev = llhndl;
lldev              24 drivers/dma/qcom/hidma_dbg.c 	if (tre_ch >= lldev->nr_tres) {
lldev              25 drivers/dma/qcom/hidma_dbg.c 		dev_err(lldev->dev, "invalid TRE number in chstats:%d", tre_ch);
lldev              28 drivers/dma/qcom/hidma_dbg.c 	tre = &lldev->trepool[tre_ch];
lldev              56 drivers/dma/qcom/hidma_dbg.c 	struct hidma_lldev *lldev = llhndl;
lldev              59 drivers/dma/qcom/hidma_dbg.c 	seq_printf(s, "lldev init = 0x%x\n", lldev->initialized);
lldev              60 drivers/dma/qcom/hidma_dbg.c 	seq_printf(s, "trch_state = 0x%x\n", lldev->trch_state);
lldev              61 drivers/dma/qcom/hidma_dbg.c 	seq_printf(s, "evch_state = 0x%x\n", lldev->evch_state);
lldev              62 drivers/dma/qcom/hidma_dbg.c 	seq_printf(s, "chidx = 0x%x\n", lldev->chidx);
lldev              63 drivers/dma/qcom/hidma_dbg.c 	seq_printf(s, "nr_tres = 0x%x\n", lldev->nr_tres);
lldev              64 drivers/dma/qcom/hidma_dbg.c 	seq_printf(s, "trca=%p\n", lldev->trca);
lldev              65 drivers/dma/qcom/hidma_dbg.c 	seq_printf(s, "tre_ring=%p\n", lldev->tre_ring);
lldev              66 drivers/dma/qcom/hidma_dbg.c 	seq_printf(s, "tre_ring_handle=%pap\n", &lldev->tre_dma);
lldev              67 drivers/dma/qcom/hidma_dbg.c 	seq_printf(s, "tre_ring_size = 0x%x\n", lldev->tre_ring_size);
lldev              68 drivers/dma/qcom/hidma_dbg.c 	seq_printf(s, "tre_processed_off = 0x%x\n", lldev->tre_processed_off);
lldev              70 drivers/dma/qcom/hidma_dbg.c 			atomic_read(&lldev->pending_tre_count));
lldev              71 drivers/dma/qcom/hidma_dbg.c 	seq_printf(s, "evca=%p\n", lldev->evca);
lldev              72 drivers/dma/qcom/hidma_dbg.c 	seq_printf(s, "evre_ring=%p\n", lldev->evre_ring);
lldev              73 drivers/dma/qcom/hidma_dbg.c 	seq_printf(s, "evre_ring_handle=%pap\n", &lldev->evre_dma);
lldev              74 drivers/dma/qcom/hidma_dbg.c 	seq_printf(s, "evre_ring_size = 0x%x\n", lldev->evre_ring_size);
lldev              75 drivers/dma/qcom/hidma_dbg.c 	seq_printf(s, "evre_processed_off = 0x%x\n", lldev->evre_processed_off);
lldev              76 drivers/dma/qcom/hidma_dbg.c 	seq_printf(s, "tre_write_offset = 0x%x\n", lldev->tre_write_offset);
lldev              95 drivers/dma/qcom/hidma_dbg.c 		hidma_ll_chstats(s, mchan->dmadev->lldev, mdesc->tre_ch);
lldev              99 drivers/dma/qcom/hidma_dbg.c 		hidma_ll_chstats(s, mchan->dmadev->lldev, mdesc->tre_ch);
lldev             103 drivers/dma/qcom/hidma_dbg.c 		hidma_ll_chstats(s, mchan->dmadev->lldev, mdesc->tre_ch);
lldev             105 drivers/dma/qcom/hidma_dbg.c 	hidma_ll_devstats(s, mchan->dmadev->lldev);
lldev             116 drivers/dma/qcom/hidma_ll.c void hidma_ll_free(struct hidma_lldev *lldev, u32 tre_ch)
lldev             120 drivers/dma/qcom/hidma_ll.c 	if (tre_ch >= lldev->nr_tres) {
lldev             121 drivers/dma/qcom/hidma_ll.c 		dev_err(lldev->dev, "invalid TRE number in free:%d", tre_ch);
lldev             125 drivers/dma/qcom/hidma_ll.c 	tre = &lldev->trepool[tre_ch];
lldev             127 drivers/dma/qcom/hidma_ll.c 		dev_err(lldev->dev, "trying to free an unused TRE:%d", tre_ch);
lldev             134 drivers/dma/qcom/hidma_ll.c int hidma_ll_request(struct hidma_lldev *lldev, u32 sig, const char *dev_name,
lldev             141 drivers/dma/qcom/hidma_ll.c 	if (!tre_ch || !lldev)
lldev             145 drivers/dma/qcom/hidma_ll.c 	for (i = 0; i < lldev->nr_tres - 1; i++) {
lldev             146 drivers/dma/qcom/hidma_ll.c 		if (atomic_add_unless(&lldev->trepool[i].allocated, 1, 1))
lldev             150 drivers/dma/qcom/hidma_ll.c 	if (i == (lldev->nr_tres - 1))
lldev             153 drivers/dma/qcom/hidma_ll.c 	tre = &lldev->trepool[i];
lldev             163 drivers/dma/qcom/hidma_ll.c 	tre->lldev = lldev;
lldev             165 drivers/dma/qcom/hidma_ll.c 	tre_local[HIDMA_TRE_CFG_IDX] = (lldev->chidx & 0xFF) << 8;
lldev             178 drivers/dma/qcom/hidma_ll.c 	struct hidma_lldev *lldev = (struct hidma_lldev *)arg;
lldev             181 drivers/dma/qcom/hidma_ll.c 	while (kfifo_out(&lldev->handoff_fifo, &tre, 1)) {
lldev             188 drivers/dma/qcom/hidma_ll.c static int hidma_post_completed(struct hidma_lldev *lldev, u8 err_info,
lldev             195 drivers/dma/qcom/hidma_ll.c 	spin_lock_irqsave(&lldev->lock, flags);
lldev             197 drivers/dma/qcom/hidma_ll.c 	tre_iterator = lldev->tre_processed_off;
lldev             198 drivers/dma/qcom/hidma_ll.c 	tre = lldev->pending_tre_list[tre_iterator / HIDMA_TRE_SIZE];
lldev             200 drivers/dma/qcom/hidma_ll.c 		spin_unlock_irqrestore(&lldev->lock, flags);
lldev             201 drivers/dma/qcom/hidma_ll.c 		dev_warn(lldev->dev, "tre_index [%d] and tre out of sync\n",
lldev             205 drivers/dma/qcom/hidma_ll.c 	lldev->pending_tre_list[tre->tre_index] = NULL;
lldev             211 drivers/dma/qcom/hidma_ll.c 	if (atomic_dec_return(&lldev->pending_tre_count) < 0) {
lldev             212 drivers/dma/qcom/hidma_ll.c 		dev_warn(lldev->dev, "tre count mismatch on completion");
lldev             213 drivers/dma/qcom/hidma_ll.c 		atomic_set(&lldev->pending_tre_count, 0);
lldev             217 drivers/dma/qcom/hidma_ll.c 				 lldev->tre_ring_size);
lldev             218 drivers/dma/qcom/hidma_ll.c 	lldev->tre_processed_off = tre_iterator;
lldev             219 drivers/dma/qcom/hidma_ll.c 	spin_unlock_irqrestore(&lldev->lock, flags);
lldev             225 drivers/dma/qcom/hidma_ll.c 	kfifo_put(&lldev->handoff_fifo, tre);
lldev             226 drivers/dma/qcom/hidma_ll.c 	tasklet_schedule(&lldev->task);
lldev             237 drivers/dma/qcom/hidma_ll.c static int hidma_handle_tre_completion(struct hidma_lldev *lldev)
lldev             239 drivers/dma/qcom/hidma_ll.c 	u32 evre_ring_size = lldev->evre_ring_size;
lldev             244 drivers/dma/qcom/hidma_ll.c 	evre_write_off = readl_relaxed(lldev->evca + HIDMA_EVCA_WRITE_PTR_REG);
lldev             245 drivers/dma/qcom/hidma_ll.c 	evre_iterator = lldev->evre_processed_off;
lldev             249 drivers/dma/qcom/hidma_ll.c 		dev_err(lldev->dev, "HW reports invalid EVRE write offset\n");
lldev             258 drivers/dma/qcom/hidma_ll.c 		u32 *current_evre = lldev->evre_ring + evre_iterator;
lldev             267 drivers/dma/qcom/hidma_ll.c 		if (hidma_post_completed(lldev, err_info, err_code))
lldev             279 drivers/dma/qcom/hidma_ll.c 		    readl_relaxed(lldev->evca + HIDMA_EVCA_WRITE_PTR_REG);
lldev             286 drivers/dma/qcom/hidma_ll.c 		if (!hidma_ll_isenabled(lldev))
lldev             291 drivers/dma/qcom/hidma_ll.c 		u32 evre_read_off = (lldev->evre_processed_off +
lldev             294 drivers/dma/qcom/hidma_ll.c 		writel(evre_read_off, lldev->evca + HIDMA_EVCA_DOORBELL_REG);
lldev             297 drivers/dma/qcom/hidma_ll.c 		lldev->evre_processed_off = evre_read_off;
lldev             303 drivers/dma/qcom/hidma_ll.c void hidma_cleanup_pending_tre(struct hidma_lldev *lldev, u8 err_info,
lldev             306 drivers/dma/qcom/hidma_ll.c 	while (atomic_read(&lldev->pending_tre_count)) {
lldev             307 drivers/dma/qcom/hidma_ll.c 		if (hidma_post_completed(lldev, err_info, err_code))
lldev             312 drivers/dma/qcom/hidma_ll.c static int hidma_ll_reset(struct hidma_lldev *lldev)
lldev             317 drivers/dma/qcom/hidma_ll.c 	val = readl(lldev->trca + HIDMA_TRCA_CTRLSTS_REG);
lldev             320 drivers/dma/qcom/hidma_ll.c 	writel(val, lldev->trca + HIDMA_TRCA_CTRLSTS_REG);
lldev             326 drivers/dma/qcom/hidma_ll.c 	ret = readl_poll_timeout(lldev->trca + HIDMA_TRCA_CTRLSTS_REG, val,
lldev             330 drivers/dma/qcom/hidma_ll.c 		dev_err(lldev->dev, "transfer channel did not reset\n");
lldev             334 drivers/dma/qcom/hidma_ll.c 	val = readl(lldev->evca + HIDMA_EVCA_CTRLSTS_REG);
lldev             337 drivers/dma/qcom/hidma_ll.c 	writel(val, lldev->evca + HIDMA_EVCA_CTRLSTS_REG);
lldev             343 drivers/dma/qcom/hidma_ll.c 	ret = readl_poll_timeout(lldev->evca + HIDMA_EVCA_CTRLSTS_REG, val,
lldev             349 drivers/dma/qcom/hidma_ll.c 	lldev->trch_state = HIDMA_CH_DISABLED;
lldev             350 drivers/dma/qcom/hidma_ll.c 	lldev->evch_state = HIDMA_CH_DISABLED;
lldev             386 drivers/dma/qcom/hidma_ll.c static void hidma_ll_int_handler_internal(struct hidma_lldev *lldev, int cause)
lldev             391 drivers/dma/qcom/hidma_ll.c 		dev_err(lldev->dev, "error 0x%x, disabling...\n",
lldev             395 drivers/dma/qcom/hidma_ll.c 		writel(cause, lldev->evca + HIDMA_EVCA_IRQ_CLR_REG);
lldev             398 drivers/dma/qcom/hidma_ll.c 		hidma_ll_disable(lldev);
lldev             401 drivers/dma/qcom/hidma_ll.c 		hidma_cleanup_pending_tre(lldev, 0xFF,
lldev             407 drivers/dma/qcom/hidma_ll.c 	spin_lock_irqsave(&lldev->lock, irqflags);
lldev             408 drivers/dma/qcom/hidma_ll.c 	writel_relaxed(cause, lldev->evca + HIDMA_EVCA_IRQ_CLR_REG);
lldev             409 drivers/dma/qcom/hidma_ll.c 	spin_unlock_irqrestore(&lldev->lock, irqflags);
lldev             421 drivers/dma/qcom/hidma_ll.c 	hidma_handle_tre_completion(lldev);
lldev             426 drivers/dma/qcom/hidma_ll.c 	struct hidma_lldev *lldev = arg;
lldev             431 drivers/dma/qcom/hidma_ll.c 	status = readl_relaxed(lldev->evca + HIDMA_EVCA_IRQ_STAT_REG);
lldev             432 drivers/dma/qcom/hidma_ll.c 	enable = readl_relaxed(lldev->evca + HIDMA_EVCA_IRQ_EN_REG);
lldev             436 drivers/dma/qcom/hidma_ll.c 		hidma_ll_int_handler_internal(lldev, cause);
lldev             442 drivers/dma/qcom/hidma_ll.c 		status = readl_relaxed(lldev->evca + HIDMA_EVCA_IRQ_STAT_REG);
lldev             443 drivers/dma/qcom/hidma_ll.c 		enable = readl_relaxed(lldev->evca + HIDMA_EVCA_IRQ_EN_REG);
lldev             452 drivers/dma/qcom/hidma_ll.c 	struct hidma_lldev *lldev = arg;
lldev             454 drivers/dma/qcom/hidma_ll.c 	hidma_ll_int_handler_internal(lldev, cause);
lldev             458 drivers/dma/qcom/hidma_ll.c int hidma_ll_enable(struct hidma_lldev *lldev)
lldev             463 drivers/dma/qcom/hidma_ll.c 	val = readl(lldev->evca + HIDMA_EVCA_CTRLSTS_REG);
lldev             466 drivers/dma/qcom/hidma_ll.c 	writel(val, lldev->evca + HIDMA_EVCA_CTRLSTS_REG);
lldev             468 drivers/dma/qcom/hidma_ll.c 	ret = readl_poll_timeout(lldev->evca + HIDMA_EVCA_CTRLSTS_REG, val,
lldev             472 drivers/dma/qcom/hidma_ll.c 		dev_err(lldev->dev, "event channel did not get enabled\n");
lldev             476 drivers/dma/qcom/hidma_ll.c 	val = readl(lldev->trca + HIDMA_TRCA_CTRLSTS_REG);
lldev             479 drivers/dma/qcom/hidma_ll.c 	writel(val, lldev->trca + HIDMA_TRCA_CTRLSTS_REG);
lldev             481 drivers/dma/qcom/hidma_ll.c 	ret = readl_poll_timeout(lldev->trca + HIDMA_TRCA_CTRLSTS_REG, val,
lldev             485 drivers/dma/qcom/hidma_ll.c 		dev_err(lldev->dev, "transfer channel did not get enabled\n");
lldev             489 drivers/dma/qcom/hidma_ll.c 	lldev->trch_state = HIDMA_CH_ENABLED;
lldev             490 drivers/dma/qcom/hidma_ll.c 	lldev->evch_state = HIDMA_CH_ENABLED;
lldev             493 drivers/dma/qcom/hidma_ll.c 	writel(ENABLE_IRQS, lldev->evca + HIDMA_EVCA_IRQ_EN_REG);
lldev             498 drivers/dma/qcom/hidma_ll.c void hidma_ll_start(struct hidma_lldev *lldev)
lldev             502 drivers/dma/qcom/hidma_ll.c 	spin_lock_irqsave(&lldev->lock, irqflags);
lldev             503 drivers/dma/qcom/hidma_ll.c 	writel(lldev->tre_write_offset, lldev->trca + HIDMA_TRCA_DOORBELL_REG);
lldev             504 drivers/dma/qcom/hidma_ll.c 	spin_unlock_irqrestore(&lldev->lock, irqflags);
lldev             507 drivers/dma/qcom/hidma_ll.c bool hidma_ll_isenabled(struct hidma_lldev *lldev)
lldev             511 drivers/dma/qcom/hidma_ll.c 	val = readl(lldev->trca + HIDMA_TRCA_CTRLSTS_REG);
lldev             512 drivers/dma/qcom/hidma_ll.c 	lldev->trch_state = HIDMA_CH_STATE(val);
lldev             513 drivers/dma/qcom/hidma_ll.c 	val = readl(lldev->evca + HIDMA_EVCA_CTRLSTS_REG);
lldev             514 drivers/dma/qcom/hidma_ll.c 	lldev->evch_state = HIDMA_CH_STATE(val);
lldev             517 drivers/dma/qcom/hidma_ll.c 	if (hidma_is_chan_enabled(lldev->trch_state) &&
lldev             518 drivers/dma/qcom/hidma_ll.c 	    hidma_is_chan_enabled(lldev->evch_state))
lldev             524 drivers/dma/qcom/hidma_ll.c void hidma_ll_queue_request(struct hidma_lldev *lldev, u32 tre_ch)
lldev             529 drivers/dma/qcom/hidma_ll.c 	tre = &lldev->trepool[tre_ch];
lldev             532 drivers/dma/qcom/hidma_ll.c 	spin_lock_irqsave(&lldev->lock, flags);
lldev             533 drivers/dma/qcom/hidma_ll.c 	tre->tre_index = lldev->tre_write_offset / HIDMA_TRE_SIZE;
lldev             534 drivers/dma/qcom/hidma_ll.c 	lldev->pending_tre_list[tre->tre_index] = tre;
lldev             535 drivers/dma/qcom/hidma_ll.c 	memcpy(lldev->tre_ring + lldev->tre_write_offset,
lldev             540 drivers/dma/qcom/hidma_ll.c 	atomic_inc(&lldev->pending_tre_count);
lldev             541 drivers/dma/qcom/hidma_ll.c 	lldev->tre_write_offset = (lldev->tre_write_offset + HIDMA_TRE_SIZE)
lldev             542 drivers/dma/qcom/hidma_ll.c 					% lldev->tre_ring_size;
lldev             543 drivers/dma/qcom/hidma_ll.c 	spin_unlock_irqrestore(&lldev->lock, flags);
lldev             551 drivers/dma/qcom/hidma_ll.c int hidma_ll_disable(struct hidma_lldev *lldev)
lldev             557 drivers/dma/qcom/hidma_ll.c 	if (!hidma_ll_isenabled(lldev))
lldev             560 drivers/dma/qcom/hidma_ll.c 	val = readl(lldev->trca + HIDMA_TRCA_CTRLSTS_REG);
lldev             563 drivers/dma/qcom/hidma_ll.c 	writel(val, lldev->trca + HIDMA_TRCA_CTRLSTS_REG);
lldev             569 drivers/dma/qcom/hidma_ll.c 	ret = readl_poll_timeout(lldev->trca + HIDMA_TRCA_CTRLSTS_REG, val,
lldev             575 drivers/dma/qcom/hidma_ll.c 	val = readl(lldev->evca + HIDMA_EVCA_CTRLSTS_REG);
lldev             578 drivers/dma/qcom/hidma_ll.c 	writel(val, lldev->evca + HIDMA_EVCA_CTRLSTS_REG);
lldev             584 drivers/dma/qcom/hidma_ll.c 	ret = readl_poll_timeout(lldev->evca + HIDMA_EVCA_CTRLSTS_REG, val,
lldev             590 drivers/dma/qcom/hidma_ll.c 	lldev->trch_state = HIDMA_CH_SUSPENDED;
lldev             591 drivers/dma/qcom/hidma_ll.c 	lldev->evch_state = HIDMA_CH_SUSPENDED;
lldev             594 drivers/dma/qcom/hidma_ll.c 	writel(0, lldev->evca + HIDMA_EVCA_IRQ_EN_REG);
lldev             598 drivers/dma/qcom/hidma_ll.c void hidma_ll_set_transfer_params(struct hidma_lldev *lldev, u32 tre_ch,
lldev             605 drivers/dma/qcom/hidma_ll.c 	if (tre_ch >= lldev->nr_tres) {
lldev             606 drivers/dma/qcom/hidma_ll.c 		dev_err(lldev->dev, "invalid TRE number in transfer params:%d",
lldev             611 drivers/dma/qcom/hidma_ll.c 	tre = &lldev->trepool[tre_ch];
lldev             613 drivers/dma/qcom/hidma_ll.c 		dev_err(lldev->dev, "trying to set params on an unused TRE:%d",
lldev             633 drivers/dma/qcom/hidma_ll.c int hidma_ll_setup(struct hidma_lldev *lldev)
lldev             638 drivers/dma/qcom/hidma_ll.c 	u32 nr_tres = lldev->nr_tres;
lldev             640 drivers/dma/qcom/hidma_ll.c 	atomic_set(&lldev->pending_tre_count, 0);
lldev             641 drivers/dma/qcom/hidma_ll.c 	lldev->tre_processed_off = 0;
lldev             642 drivers/dma/qcom/hidma_ll.c 	lldev->evre_processed_off = 0;
lldev             643 drivers/dma/qcom/hidma_ll.c 	lldev->tre_write_offset = 0;
lldev             646 drivers/dma/qcom/hidma_ll.c 	writel(0, lldev->evca + HIDMA_EVCA_IRQ_EN_REG);
lldev             649 drivers/dma/qcom/hidma_ll.c 	val = readl(lldev->evca + HIDMA_EVCA_IRQ_STAT_REG);
lldev             650 drivers/dma/qcom/hidma_ll.c 	writel(val, lldev->evca + HIDMA_EVCA_IRQ_CLR_REG);
lldev             652 drivers/dma/qcom/hidma_ll.c 	rc = hidma_ll_reset(lldev);
lldev             660 drivers/dma/qcom/hidma_ll.c 	val = readl(lldev->evca + HIDMA_EVCA_IRQ_STAT_REG);
lldev             661 drivers/dma/qcom/hidma_ll.c 	writel(val, lldev->evca + HIDMA_EVCA_IRQ_CLR_REG);
lldev             664 drivers/dma/qcom/hidma_ll.c 	writel(0, lldev->evca + HIDMA_EVCA_IRQ_EN_REG);
lldev             666 drivers/dma/qcom/hidma_ll.c 	addr = lldev->tre_dma;
lldev             667 drivers/dma/qcom/hidma_ll.c 	writel(lower_32_bits(addr), lldev->trca + HIDMA_TRCA_RING_LOW_REG);
lldev             668 drivers/dma/qcom/hidma_ll.c 	writel(upper_32_bits(addr), lldev->trca + HIDMA_TRCA_RING_HIGH_REG);
lldev             669 drivers/dma/qcom/hidma_ll.c 	writel(lldev->tre_ring_size, lldev->trca + HIDMA_TRCA_RING_LEN_REG);
lldev             671 drivers/dma/qcom/hidma_ll.c 	addr = lldev->evre_dma;
lldev             672 drivers/dma/qcom/hidma_ll.c 	writel(lower_32_bits(addr), lldev->evca + HIDMA_EVCA_RING_LOW_REG);
lldev             673 drivers/dma/qcom/hidma_ll.c 	writel(upper_32_bits(addr), lldev->evca + HIDMA_EVCA_RING_HIGH_REG);
lldev             675 drivers/dma/qcom/hidma_ll.c 			lldev->evca + HIDMA_EVCA_RING_LEN_REG);
lldev             678 drivers/dma/qcom/hidma_ll.c 	hidma_ll_setup_irq(lldev, lldev->msi_support);
lldev             680 drivers/dma/qcom/hidma_ll.c 	rc = hidma_ll_enable(lldev);
lldev             687 drivers/dma/qcom/hidma_ll.c void hidma_ll_setup_irq(struct hidma_lldev *lldev, bool msi)
lldev             691 drivers/dma/qcom/hidma_ll.c 	lldev->msi_support = msi;
lldev             694 drivers/dma/qcom/hidma_ll.c 	writel(0, lldev->evca + HIDMA_EVCA_IRQ_CLR_REG);
lldev             695 drivers/dma/qcom/hidma_ll.c 	writel(0, lldev->evca + HIDMA_EVCA_IRQ_EN_REG);
lldev             698 drivers/dma/qcom/hidma_ll.c 	val = readl(lldev->evca + HIDMA_EVCA_INTCTRL_REG);
lldev             700 drivers/dma/qcom/hidma_ll.c 	if (!lldev->msi_support)
lldev             702 drivers/dma/qcom/hidma_ll.c 	writel(val, lldev->evca + HIDMA_EVCA_INTCTRL_REG);
lldev             705 drivers/dma/qcom/hidma_ll.c 	writel(ENABLE_IRQS, lldev->evca + HIDMA_EVCA_IRQ_CLR_REG);
lldev             706 drivers/dma/qcom/hidma_ll.c 	writel(ENABLE_IRQS, lldev->evca + HIDMA_EVCA_IRQ_EN_REG);
lldev             714 drivers/dma/qcom/hidma_ll.c 	struct hidma_lldev *lldev;
lldev             728 drivers/dma/qcom/hidma_ll.c 	lldev = devm_kzalloc(dev, sizeof(struct hidma_lldev), GFP_KERNEL);
lldev             729 drivers/dma/qcom/hidma_ll.c 	if (!lldev)
lldev             732 drivers/dma/qcom/hidma_ll.c 	lldev->evca = evca;
lldev             733 drivers/dma/qcom/hidma_ll.c 	lldev->trca = trca;
lldev             734 drivers/dma/qcom/hidma_ll.c 	lldev->dev = dev;
lldev             736 drivers/dma/qcom/hidma_ll.c 	lldev->trepool = devm_kcalloc(lldev->dev, nr_tres, sz, GFP_KERNEL);
lldev             737 drivers/dma/qcom/hidma_ll.c 	if (!lldev->trepool)
lldev             740 drivers/dma/qcom/hidma_ll.c 	required_bytes = sizeof(lldev->pending_tre_list[0]);
lldev             741 drivers/dma/qcom/hidma_ll.c 	lldev->pending_tre_list = devm_kcalloc(dev, nr_tres, required_bytes,
lldev             743 drivers/dma/qcom/hidma_ll.c 	if (!lldev->pending_tre_list)
lldev             747 drivers/dma/qcom/hidma_ll.c 	lldev->tre_ring = dmam_alloc_coherent(dev, sz, &lldev->tre_dma,
lldev             749 drivers/dma/qcom/hidma_ll.c 	if (!lldev->tre_ring)
lldev             752 drivers/dma/qcom/hidma_ll.c 	lldev->tre_ring_size = HIDMA_TRE_SIZE * nr_tres;
lldev             753 drivers/dma/qcom/hidma_ll.c 	lldev->nr_tres = nr_tres;
lldev             756 drivers/dma/qcom/hidma_ll.c 	if (!IS_ALIGNED(lldev->tre_dma, HIDMA_TRE_SIZE)) {
lldev             759 drivers/dma/qcom/hidma_ll.c 		tre_ring_shift = lldev->tre_dma % HIDMA_TRE_SIZE;
lldev             761 drivers/dma/qcom/hidma_ll.c 		lldev->tre_dma += tre_ring_shift;
lldev             762 drivers/dma/qcom/hidma_ll.c 		lldev->tre_ring += tre_ring_shift;
lldev             766 drivers/dma/qcom/hidma_ll.c 	lldev->evre_ring = dmam_alloc_coherent(dev, sz, &lldev->evre_dma,
lldev             768 drivers/dma/qcom/hidma_ll.c 	if (!lldev->evre_ring)
lldev             771 drivers/dma/qcom/hidma_ll.c 	lldev->evre_ring_size = HIDMA_EVRE_SIZE * nr_tres;
lldev             774 drivers/dma/qcom/hidma_ll.c 	if (!IS_ALIGNED(lldev->evre_dma, HIDMA_EVRE_SIZE)) {
lldev             777 drivers/dma/qcom/hidma_ll.c 		evre_ring_shift = lldev->evre_dma % HIDMA_EVRE_SIZE;
lldev             779 drivers/dma/qcom/hidma_ll.c 		lldev->evre_dma += evre_ring_shift;
lldev             780 drivers/dma/qcom/hidma_ll.c 		lldev->evre_ring += evre_ring_shift;
lldev             782 drivers/dma/qcom/hidma_ll.c 	lldev->nr_tres = nr_tres;
lldev             783 drivers/dma/qcom/hidma_ll.c 	lldev->chidx = chidx;
lldev             786 drivers/dma/qcom/hidma_ll.c 	rc = kfifo_alloc(&lldev->handoff_fifo, sz, GFP_KERNEL);
lldev             790 drivers/dma/qcom/hidma_ll.c 	rc = hidma_ll_setup(lldev);
lldev             794 drivers/dma/qcom/hidma_ll.c 	spin_lock_init(&lldev->lock);
lldev             795 drivers/dma/qcom/hidma_ll.c 	tasklet_init(&lldev->task, hidma_ll_tre_complete, (unsigned long)lldev);
lldev             796 drivers/dma/qcom/hidma_ll.c 	lldev->initialized = 1;
lldev             797 drivers/dma/qcom/hidma_ll.c 	writel(ENABLE_IRQS, lldev->evca + HIDMA_EVCA_IRQ_EN_REG);
lldev             798 drivers/dma/qcom/hidma_ll.c 	return lldev;
lldev             801 drivers/dma/qcom/hidma_ll.c int hidma_ll_uninit(struct hidma_lldev *lldev)
lldev             807 drivers/dma/qcom/hidma_ll.c 	if (!lldev)
lldev             810 drivers/dma/qcom/hidma_ll.c 	if (!lldev->initialized)
lldev             813 drivers/dma/qcom/hidma_ll.c 	lldev->initialized = 0;
lldev             815 drivers/dma/qcom/hidma_ll.c 	required_bytes = sizeof(struct hidma_tre) * lldev->nr_tres;
lldev             816 drivers/dma/qcom/hidma_ll.c 	tasklet_kill(&lldev->task);
lldev             817 drivers/dma/qcom/hidma_ll.c 	memset(lldev->trepool, 0, required_bytes);
lldev             818 drivers/dma/qcom/hidma_ll.c 	lldev->trepool = NULL;
lldev             819 drivers/dma/qcom/hidma_ll.c 	atomic_set(&lldev->pending_tre_count, 0);
lldev             820 drivers/dma/qcom/hidma_ll.c 	lldev->tre_write_offset = 0;
lldev             822 drivers/dma/qcom/hidma_ll.c 	rc = hidma_ll_reset(lldev);
lldev             828 drivers/dma/qcom/hidma_ll.c 	val = readl(lldev->evca + HIDMA_EVCA_IRQ_STAT_REG);
lldev             829 drivers/dma/qcom/hidma_ll.c 	writel(val, lldev->evca + HIDMA_EVCA_IRQ_CLR_REG);
lldev             830 drivers/dma/qcom/hidma_ll.c 	writel(0, lldev->evca + HIDMA_EVCA_IRQ_EN_REG);
lldev             834 drivers/dma/qcom/hidma_ll.c enum dma_status hidma_ll_status(struct hidma_lldev *lldev, u32 tre_ch)
lldev             841 drivers/dma/qcom/hidma_ll.c 	spin_lock_irqsave(&lldev->lock, flags);
lldev             843 drivers/dma/qcom/hidma_ll.c 	tre = &lldev->trepool[tre_ch];
lldev             852 drivers/dma/qcom/hidma_ll.c 	spin_unlock_irqrestore(&lldev->lock, flags);
lldev             906 drivers/infiniband/hw/cxgb3/cxio_hal.c 		netdev_p = rdev_p->t3cdev_p->lldev;
lldev             936 drivers/infiniband/hw/cxgb3/iwch_provider.c 	struct net_device *lldev = iwch_dev->rdev.t3cdev_p->lldev;
lldev             940 drivers/infiniband/hw/cxgb3/iwch_provider.c 	lldev->ethtool_ops->get_drvinfo(lldev, &info);
lldev             966 drivers/infiniband/hw/cxgb3/iwch_provider.c 	memcpy(&props->sys_image_guid, dev->rdev.t3cdev_p->lldev->dev_addr, 6);
lldev            1028 drivers/infiniband/hw/cxgb3/iwch_provider.c 	struct net_device *lldev = iwch_dev->rdev.t3cdev_p->lldev;
lldev            1031 drivers/infiniband/hw/cxgb3/iwch_provider.c 	lldev->ethtool_ops->get_drvinfo(lldev, &info);
lldev            1196 drivers/infiniband/hw/cxgb3/iwch_provider.c 	struct net_device *lldev = iwch_dev->rdev.t3cdev_p->lldev;
lldev            1199 drivers/infiniband/hw/cxgb3/iwch_provider.c 	lldev->ethtool_ops->get_drvinfo(lldev, &info);
lldev            1271 drivers/infiniband/hw/cxgb3/iwch_provider.c 	memcpy(&dev->ibdev.node_guid, dev->rdev.t3cdev_p->lldev->dev_addr, 6);
lldev            1304 drivers/infiniband/hw/cxgb3/iwch_provider.c 	memcpy(dev->ibdev.iw_ifname, dev->rdev.t3cdev_p->lldev->name,
lldev             343 drivers/infiniband/hw/cxgb4/provider.c 	struct net_device *lldev = c4iw_dev->rdev.lldi.ports[0];
lldev             346 drivers/infiniband/hw/cxgb4/provider.c 	lldev->ethtool_ops->get_drvinfo(lldev, &info);
lldev            1363 drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c 	tdev->lldev = adapter->port[0];
lldev            1375 drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c 	if (sysfs_create_group(&tdev->lldev->dev.kobj, &offload_attr_group))
lldev            1402 drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c 	sysfs_remove_group(&tdev->lldev->dev.kobj, &offload_attr_group);
lldev            1407 drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c 	tdev->lldev = NULL;
lldev             921 drivers/net/ethernet/chelsio/cxgb3/cxgb3_offload.c 	skb->dev = dev->lldev;
lldev              56 drivers/net/ethernet/chelsio/cxgb3/t3cdev.h 	struct net_device *lldev;	/* LL dev associated with T3C messages */
lldev             389 drivers/net/ethernet/chelsio/libcxgb/libcxgb_ppm.c 		   struct pci_dev *pdev, void *lldev,
lldev             477 drivers/net/ethernet/chelsio/libcxgb/libcxgb_ppm.c 	ppm->lldev = lldev;
lldev             132 drivers/net/ethernet/chelsio/libcxgb/libcxgb_ppm.h 	void *lldev;
lldev             327 drivers/net/ethernet/chelsio/libcxgb/libcxgb_ppm.h 		   void *lldev, struct cxgbi_tag_format *,
lldev             185 drivers/scsi/cxgbi/cxgb3i/cxgb3i.c 	l2t_send(csk->cdev->lldev, skb, csk->l2t);
lldev             266 drivers/scsi/cxgbi/cxgb3i/cxgb3i.c 	l2t_send(csk->cdev->lldev, skb, csk->l2t);
lldev             289 drivers/scsi/cxgbi/cxgb3i/cxgb3i.c 	cxgb3_ofld_send(csk->cdev->lldev, skb);
lldev             318 drivers/scsi/cxgbi/cxgb3i/cxgb3i.c 	cxgb3_ofld_send(csk->cdev->lldev, skb);
lldev             455 drivers/scsi/cxgbi/cxgb3i/cxgb3i.c 		l2t_send(csk->cdev->lldev, skb, csk->l2t);
lldev             469 drivers/scsi/cxgbi/cxgb3i/cxgb3i.c 		cxgb3_free_atid(csk->cdev->lldev, csk->atid);
lldev             490 drivers/scsi/cxgbi/cxgb3i/cxgb3i.c 	cxgb3_insert_tid(csk->cdev->lldev, &t3_client, csk, tid);
lldev             896 drivers/scsi/cxgbi/cxgb3i/cxgb3i.c 	struct t3cdev *t3dev = (struct t3cdev *)csk->cdev->lldev;
lldev             907 drivers/scsi/cxgbi/cxgb3i/cxgb3i.c 	struct t3cdev *t3dev = (struct t3cdev *)csk->cdev->lldev;
lldev             958 drivers/scsi/cxgbi/cxgb3i/cxgb3i.c 	struct t3cdev *t3dev = (struct t3cdev *)cdev->lldev;
lldev            1032 drivers/scsi/cxgbi/cxgb3i/cxgb3i.c 	struct t3cdev *t3dev = (struct t3cdev *)cdev->lldev;
lldev            1084 drivers/scsi/cxgbi/cxgb3i/cxgb3i.c 	return ((struct t3cdev *)cdev->lldev)->ulp_iscsi;
lldev            1112 drivers/scsi/cxgbi/cxgb3i/cxgb3i.c 		cxgb3_ofld_send(ppm->lldev, skb);
lldev            1140 drivers/scsi/cxgbi/cxgb3i/cxgb3i.c 		cxgb3_ofld_send(ppm->lldev, skb);
lldev            1168 drivers/scsi/cxgbi/cxgb3i/cxgb3i.c 	cxgb3_ofld_send(csk->cdev->lldev, skb);
lldev            1204 drivers/scsi/cxgbi/cxgb3i/cxgb3i.c 	cxgb3_ofld_send(csk->cdev->lldev, skb);
lldev            1215 drivers/scsi/cxgbi/cxgb3i/cxgb3i.c 	struct t3cdev *tdev = (struct t3cdev *)cdev->lldev;
lldev            1312 drivers/scsi/cxgbi/cxgb3i/cxgb3i.c 	cdev->lldev = t3dev;
lldev             201 drivers/scsi/cxgbi/libcxgbi.c struct cxgbi_device *cxgbi_device_find_by_lldev(void *lldev)
lldev             207 drivers/scsi/cxgbi/libcxgbi.c 		if (cdev->lldev == lldev) {
lldev             215 drivers/scsi/cxgbi/libcxgbi.c 		"lldev 0x%p, NO match found.\n", lldev);
lldev            1296 drivers/scsi/cxgbi/libcxgbi.c 				cdev->lldev, tformat, iscsi_size, llimit, start,
lldev             467 drivers/scsi/cxgbi/libcxgbi.h 	void *lldev;
lldev             264 net/caif/chnl_net.c 	struct net_device *lldev;
lldev             285 net/caif/chnl_net.c 		lldev = __dev_get_by_index(dev_net(dev), llifindex);
lldev             287 net/caif/chnl_net.c 		if (lldev == NULL) {
lldev             293 net/caif/chnl_net.c 		dev->needed_tailroom = tailroom + lldev->needed_tailroom;
lldev             294 net/caif/chnl_net.c 		dev->hard_header_len = headroom + lldev->hard_header_len +
lldev             295 net/caif/chnl_net.c 			lldev->needed_tailroom;
lldev             304 net/caif/chnl_net.c 		mtu = min_t(int, dev->mtu, lldev->mtu - (headroom + tailroom));