Lines Matching refs:dev

84 	struct device dev;  member
121 static ssize_t state_show(struct device *dev, struct device_attribute *attr, in state_show() argument
215 struct dim2_hdm *dev = data; in deliver_netinfo_thread() local
218 wait_event_interruptible(dev->netinfo_waitq, in deliver_netinfo_thread()
219 dev->deliver_netinfo || in deliver_netinfo_thread()
222 if (dev->deliver_netinfo) { in deliver_netinfo_thread()
223 dev->deliver_netinfo--; in deliver_netinfo_thread()
224 if (dev->on_netinfo) { in deliver_netinfo_thread()
225 dev->on_netinfo(&dev->most_iface, in deliver_netinfo_thread()
226 dev->link_state, in deliver_netinfo_thread()
227 dev->mac_addrs); in deliver_netinfo_thread()
243 static void retrieve_netinfo(struct dim2_hdm *dev, struct mbo *mbo) in retrieve_netinfo() argument
248 dev->link_state = data[18]; in retrieve_netinfo()
249 pr_info("NIState: %d\n", dev->link_state); in retrieve_netinfo()
250 memcpy(dev->mac_addrs, data + 19, 6); in retrieve_netinfo()
251 dev->deliver_netinfo++; in retrieve_netinfo()
252 wake_up_interruptible(&dev->netinfo_waitq); in retrieve_netinfo()
262 static void service_done_flag(struct dim2_hdm *dev, int ch_idx) in service_done_flag() argument
264 struct hdm_channel *hdm_ch = dev->hch + ch_idx; in service_done_flag()
308 retrieve_netinfo(dev, mbo); in service_done_flag()
333 static struct dim_channel **get_active_channels(struct dim2_hdm *dev, in get_active_channels() argument
340 if (dev->hch[ch_idx].is_initialized) in get_active_channels()
341 buffer[idx++] = &dev->hch[ch_idx].ch; in get_active_channels()
350 struct dim2_hdm *dev = _dev; in dim2_mlb_isr() local
357 if (dev->atx_idx >= 0 && dev->hch[dev->atx_idx].is_initialized) in dim2_mlb_isr()
358 while (!try_start_dim_transfer(dev->hch + dev->atx_idx)) in dim2_mlb_isr()
366 struct dim2_hdm *dev = _dev; in dim2_task_irq() local
371 if (!dev->hch[ch_idx].is_initialized) in dim2_task_irq()
375 dim_service_channel(&dev->hch[ch_idx].ch); in dim2_task_irq()
378 service_done_flag(dev, ch_idx); in dim2_task_irq()
379 while (!try_start_dim_transfer(dev->hch + ch_idx)) in dim2_task_irq()
396 struct dim2_hdm *dev = _dev; in dim2_ahb_isr() local
401 dim_service_ahb_int_irq(get_active_channels(dev, buffer)); in dim2_ahb_isr()
448 struct dim2_hdm *dev = iface_to_hdm(most_iface); in configure_channel() local
456 struct hdm_channel *const hdm_ch = dev->hch + ch_idx; in configure_channel()
545 dev->atx_idx < 0) in configure_channel()
546 dev->atx_idx = ch_idx; in configure_channel()
566 struct dim2_hdm *dev = iface_to_hdm(most_iface); in enqueue() local
567 struct hdm_channel *hdm_ch = dev->hch + ch_idx; in enqueue()
600 struct dim2_hdm *dev = iface_to_hdm(most_iface); in request_netinfo() local
604 dev->on_netinfo = on_netinfo; in request_netinfo()
608 if (dev->atx_idx < 0) { in request_netinfo()
613 mbo = most_get_mbo(&dev->most_iface, dev->atx_idx, NULL); in request_netinfo()
640 struct dim2_hdm *dev = iface_to_hdm(most_iface); in poison_channel() local
641 struct hdm_channel *hdm_ch = dev->hch + ch_idx; in poison_channel()
654 if (ch_idx == dev->atx_idx) in poison_channel()
655 dev->atx_idx = -1; in poison_channel()
672 struct device *dev = mbo->ifp->driver_dev; in dma_alloc() local
674 return dma_alloc_coherent(dev, size, &mbo->bus_address, GFP_KERNEL); in dma_alloc()
679 struct device *dev = mbo->ifp->driver_dev; in dma_free() local
681 dma_free_coherent(dev, size, mbo->virt_address, mbo->bus_address); in dma_free()
724 struct dim2_hdm *dev = container_of(d, struct dim2_hdm, dev); in dim2_release() local
727 kthread_stop(dev->netinfo_task); in dim2_release()
733 if (dev->disable_platform) in dim2_release()
734 dev->disable_platform(to_platform_device(d->parent)); in dim2_release()
736 kfree(dev); in dim2_release()
751 struct dim2_hdm *dev; in dim2_probe() local
760 dev = kzalloc(sizeof(*dev), GFP_KERNEL); in dim2_probe()
761 if (!dev) in dim2_probe()
764 dev->atx_idx = -1; in dim2_probe()
766 platform_set_drvdata(pdev, dev); in dim2_probe()
768 ret = of_property_read_string(pdev->dev.of_node, in dim2_probe()
771 dev_err(&pdev->dev, "missing dt property clock-speed\n"); in dim2_probe()
775 ret = get_dim2_clk_speed(clock_speed, &dev->clk_speed); in dim2_probe()
777 dev_err(&pdev->dev, "bad dt property clock-speed\n"); in dim2_probe()
781 dev->io_base = devm_platform_get_and_ioremap_resource(pdev, 0, &res); in dim2_probe()
782 if (IS_ERR(dev->io_base)) { in dim2_probe()
783 ret = PTR_ERR(dev->io_base); in dim2_probe()
787 of_id = of_match_node(dim2_of_match, pdev->dev.of_node); in dim2_probe()
795 dev->disable_platform = pdata->disable; in dim2_probe()
800 dev_info(&pdev->dev, "sync: num of frames per sub-buffer: %u\n", in dim2_probe()
802 hal_ret = dim_startup(dev->io_base, dev->clk_speed, dev_fcnt); in dim2_probe()
804 dev_err(&pdev->dev, "dim_startup failed: %d\n", hal_ret); in dim2_probe()
815 ret = devm_request_threaded_irq(&pdev->dev, irq, dim2_ahb_isr, in dim2_probe()
816 dim2_task_irq, 0, "dim2_ahb0_int", dev); in dim2_probe()
818 dev_err(&pdev->dev, "failed to request ahb0_int irq %d\n", irq); in dim2_probe()
828 ret = devm_request_irq(&pdev->dev, irq, dim2_mlb_isr, 0, in dim2_probe()
829 "dim2_mlb_int", dev); in dim2_probe()
831 dev_err(&pdev->dev, "failed to request mlb_int irq %d\n", irq); in dim2_probe()
835 init_waitqueue_head(&dev->netinfo_waitq); in dim2_probe()
836 dev->deliver_netinfo = 0; in dim2_probe()
837 dev->netinfo_task = kthread_run(&deliver_netinfo_thread, dev, in dim2_probe()
839 if (IS_ERR(dev->netinfo_task)) { in dim2_probe()
840 ret = PTR_ERR(dev->netinfo_task); in dim2_probe()
845 struct most_channel_capability *cap = dev->capabilities + i; in dim2_probe()
846 struct hdm_channel *hdm_ch = dev->hch + i; in dim2_probe()
873 snprintf(dev->name, sizeof(dev->name), fmt, res->start); in dim2_probe()
876 dev->most_iface.interface = ITYPE_MEDIALB_DIM2; in dim2_probe()
877 dev->most_iface.description = dev->name; in dim2_probe()
878 dev->most_iface.num_channels = DMA_CHANNELS; in dim2_probe()
879 dev->most_iface.channel_vector = dev->capabilities; in dim2_probe()
880 dev->most_iface.configure = configure_channel; in dim2_probe()
881 dev->most_iface.enqueue = enqueue; in dim2_probe()
882 dev->most_iface.dma_alloc = dma_alloc; in dim2_probe()
883 dev->most_iface.dma_free = dma_free; in dim2_probe()
884 dev->most_iface.poison_channel = poison_channel; in dim2_probe()
885 dev->most_iface.request_netinfo = request_netinfo; in dim2_probe()
886 dev->most_iface.driver_dev = &pdev->dev; in dim2_probe()
887 dev->most_iface.dev = &dev->dev; in dim2_probe()
888 dev->dev.init_name = dev->name; in dim2_probe()
889 dev->dev.parent = &pdev->dev; in dim2_probe()
890 dev->dev.release = dim2_release; in dim2_probe()
892 return most_register_interface(&dev->most_iface); in dim2_probe()
897 if (dev->disable_platform) in dim2_probe()
898 dev->disable_platform(pdev); in dim2_probe()
900 kfree(dev); in dim2_probe()
913 struct dim2_hdm *dev = platform_get_drvdata(pdev); in dim2_remove() local
915 most_deregister_interface(&dev->most_iface); in dim2_remove()
922 struct dim2_hdm *dev = platform_get_drvdata(pdev); in fsl_mx6_enable() local
925 dev->clk = devm_clk_get(&pdev->dev, "mlb"); in fsl_mx6_enable()
926 if (IS_ERR_OR_NULL(dev->clk)) { in fsl_mx6_enable()
927 dev_err(&pdev->dev, "unable to get mlb clock\n"); in fsl_mx6_enable()
931 ret = clk_prepare_enable(dev->clk); in fsl_mx6_enable()
933 dev_err(&pdev->dev, "%s\n", "clk_prepare_enable failed"); in fsl_mx6_enable()
937 if (dev->clk_speed >= CLK_2048FS) { in fsl_mx6_enable()
939 dev->clk_pll = devm_clk_get(&pdev->dev, "pll8_mlb"); in fsl_mx6_enable()
940 if (IS_ERR_OR_NULL(dev->clk_pll)) { in fsl_mx6_enable()
941 dev_err(&pdev->dev, "unable to get mlb pll clock\n"); in fsl_mx6_enable()
942 clk_disable_unprepare(dev->clk); in fsl_mx6_enable()
946 writel(0x888, dev->io_base + 0x38); in fsl_mx6_enable()
947 clk_prepare_enable(dev->clk_pll); in fsl_mx6_enable()
955 struct dim2_hdm *dev = platform_get_drvdata(pdev); in fsl_mx6_disable() local
957 if (dev->clk_speed >= CLK_2048FS) in fsl_mx6_disable()
958 clk_disable_unprepare(dev->clk_pll); in fsl_mx6_disable()
960 clk_disable_unprepare(dev->clk); in fsl_mx6_disable()
965 struct dim2_hdm *dev = platform_get_drvdata(pdev); in rcar_gen2_enable() local
968 dev->clk = devm_clk_get(&pdev->dev, NULL); in rcar_gen2_enable()
969 if (IS_ERR(dev->clk)) { in rcar_gen2_enable()
970 dev_err(&pdev->dev, "cannot get clock\n"); in rcar_gen2_enable()
971 return PTR_ERR(dev->clk); in rcar_gen2_enable()
974 ret = clk_prepare_enable(dev->clk); in rcar_gen2_enable()
976 dev_err(&pdev->dev, "%s\n", "clk_prepare_enable failed"); in rcar_gen2_enable()
980 if (dev->clk_speed >= CLK_2048FS) { in rcar_gen2_enable()
982 writel(0x03, dev->io_base + 0x600); in rcar_gen2_enable()
984 writel(0x888, dev->io_base + 0x38); in rcar_gen2_enable()
987 writel(0x04, dev->io_base + 0x600); in rcar_gen2_enable()
991 writel(0x03, dev->io_base + 0x500); in rcar_gen2_enable()
992 writel(0x0002FF02, dev->io_base + 0x508); in rcar_gen2_enable()
999 struct dim2_hdm *dev = platform_get_drvdata(pdev); in rcar_gen2_disable() local
1001 clk_disable_unprepare(dev->clk); in rcar_gen2_disable()
1004 writel(0x0, dev->io_base + 0x600); in rcar_gen2_disable()
1009 struct dim2_hdm *dev = platform_get_drvdata(pdev); in rcar_gen3_enable() local
1010 u32 enable_512fs = dev->clk_speed == CLK_512FS; in rcar_gen3_enable()
1013 dev->clk = devm_clk_get(&pdev->dev, NULL); in rcar_gen3_enable()
1014 if (IS_ERR(dev->clk)) { in rcar_gen3_enable()
1015 dev_err(&pdev->dev, "cannot get clock\n"); in rcar_gen3_enable()
1016 return PTR_ERR(dev->clk); in rcar_gen3_enable()
1019 ret = clk_prepare_enable(dev->clk); in rcar_gen3_enable()
1021 dev_err(&pdev->dev, "%s\n", "clk_prepare_enable failed"); in rcar_gen3_enable()
1026 writel(0x04, dev->io_base + 0x600); in rcar_gen3_enable()
1028 writel(enable_512fs, dev->io_base + 0x604); in rcar_gen3_enable()
1031 writel(0x03, dev->io_base + 0x500); in rcar_gen3_enable()
1032 writel(0x0002FF02, dev->io_base + 0x508); in rcar_gen3_enable()
1039 struct dim2_hdm *dev = platform_get_drvdata(pdev); in rcar_gen3_disable() local
1041 clk_disable_unprepare(dev->clk); in rcar_gen3_disable()
1044 writel(0x0, dev->io_base + 0x600); in rcar_gen3_disable()