Lines Matching +full:host +full:- +full:id
1 // SPDX-License-Identifier: GPL-2.0-only
6 * Copyright (c) 2010-2013, NVIDIA Corporation.
22 unsigned int id = syncpt->id; in host1x_intr_syncpt_handle() local
23 struct host1x *host = syncpt->host; in host1x_intr_syncpt_handle() local
25 host1x_sync_writel(host, BIT(id % 32), in host1x_intr_syncpt_handle()
26 HOST1X_SYNC_SYNCPT_THRESH_INT_DISABLE(id / 32)); in host1x_intr_syncpt_handle()
27 host1x_sync_writel(host, BIT(id % 32), in host1x_intr_syncpt_handle()
28 HOST1X_SYNC_SYNCPT_THRESH_CPU0_INT_STATUS(id / 32)); in host1x_intr_syncpt_handle()
30 schedule_work(&syncpt->intr.work); in host1x_intr_syncpt_handle()
35 struct host1x *host = dev_id; in syncpt_thresh_isr() local
37 unsigned int i, id; in syncpt_thresh_isr() local
39 for (i = 0; i < DIV_ROUND_UP(host->info->nb_pts, 32); i++) { in syncpt_thresh_isr()
40 reg = host1x_sync_readl(host, in syncpt_thresh_isr()
42 for_each_set_bit(id, ®, 32) { in syncpt_thresh_isr()
44 host->syncpt + (i * 32 + id); in syncpt_thresh_isr()
52 static void _host1x_intr_disable_all_syncpt_intrs(struct host1x *host) in _host1x_intr_disable_all_syncpt_intrs() argument
56 for (i = 0; i < DIV_ROUND_UP(host->info->nb_pts, 32); ++i) { in _host1x_intr_disable_all_syncpt_intrs()
57 host1x_sync_writel(host, 0xffffffffu, in _host1x_intr_disable_all_syncpt_intrs()
59 host1x_sync_writel(host, 0xffffffffu, in _host1x_intr_disable_all_syncpt_intrs()
64 static void intr_hw_init(struct host1x *host, u32 cpm) in intr_hw_init() argument
68 host1x_sync_writel(host, 0, HOST1X_SYNC_IP_BUSY_TIMEOUT); in intr_hw_init()
71 * increase the auto-ack timout to the maximum value. 2d will hang in intr_hw_init()
74 host1x_sync_writel(host, 0xff, HOST1X_SYNC_CTXSW_TIMEOUT_CFG); in intr_hw_init()
76 /* update host clocks per usec */ in intr_hw_init()
77 host1x_sync_writel(host, cpm, HOST1X_SYNC_USEC_CLK); in intr_hw_init()
82 _host1x_intr_init_host_sync(struct host1x *host, u32 cpm, in _host1x_intr_init_host_sync() argument
88 host1x_hw_intr_disable_all_syncpt_intrs(host); in _host1x_intr_init_host_sync()
90 for (i = 0; i < host->info->nb_pts; i++) in _host1x_intr_init_host_sync()
91 INIT_WORK(&host->syncpt[i].intr.work, syncpt_thresh_work); in _host1x_intr_init_host_sync()
93 err = devm_request_irq(host->dev, host->intr_syncpt_irq, in _host1x_intr_init_host_sync()
95 "host1x_syncpt", host); in _host1x_intr_init_host_sync()
101 intr_hw_init(host, cpm); in _host1x_intr_init_host_sync()
106 static void _host1x_intr_set_syncpt_threshold(struct host1x *host, in _host1x_intr_set_syncpt_threshold() argument
107 unsigned int id, in _host1x_intr_set_syncpt_threshold() argument
110 host1x_sync_writel(host, thresh, HOST1X_SYNC_SYNCPT_INT_THRESH(id)); in _host1x_intr_set_syncpt_threshold()
113 static void _host1x_intr_enable_syncpt_intr(struct host1x *host, in _host1x_intr_enable_syncpt_intr() argument
114 unsigned int id) in _host1x_intr_enable_syncpt_intr() argument
116 host1x_sync_writel(host, BIT(id % 32), in _host1x_intr_enable_syncpt_intr()
117 HOST1X_SYNC_SYNCPT_THRESH_INT_ENABLE_CPU0(id / 32)); in _host1x_intr_enable_syncpt_intr()
120 static void _host1x_intr_disable_syncpt_intr(struct host1x *host, in _host1x_intr_disable_syncpt_intr() argument
121 unsigned int id) in _host1x_intr_disable_syncpt_intr() argument
123 host1x_sync_writel(host, BIT(id % 32), in _host1x_intr_disable_syncpt_intr()
124 HOST1X_SYNC_SYNCPT_THRESH_INT_DISABLE(id / 32)); in _host1x_intr_disable_syncpt_intr()
125 host1x_sync_writel(host, BIT(id % 32), in _host1x_intr_disable_syncpt_intr()
126 HOST1X_SYNC_SYNCPT_THRESH_CPU0_INT_STATUS(id / 32)); in _host1x_intr_disable_syncpt_intr()
129 static int _host1x_free_syncpt_irq(struct host1x *host) in _host1x_free_syncpt_irq() argument
133 devm_free_irq(host->dev, host->intr_syncpt_irq, host); in _host1x_free_syncpt_irq()
135 for (i = 0; i < host->info->nb_pts; i++) in _host1x_free_syncpt_irq()
136 cancel_work_sync(&host->syncpt[i].intr.work); in _host1x_free_syncpt_irq()