Home
last modified time | relevance | path

Searched full:gpc (Results 1 – 25 of 102) sorted by relevance

12345

/linux/virt/kvm/
H A Dpfncache.c28 struct gfn_to_pfn_cache *gpc; in gfn_to_pfn_cache_invalidate_start() local
31 list_for_each_entry(gpc, &kvm->gpc_list, list) { in gfn_to_pfn_cache_invalidate_start()
32 read_lock_irq(&gpc->lock); in gfn_to_pfn_cache_invalidate_start()
35 if (gpc->valid && !is_error_noslot_pfn(gpc->pfn) && in gfn_to_pfn_cache_invalidate_start()
36 gpc->uhva >= start && gpc->uhva < end) { in gfn_to_pfn_cache_invalidate_start()
37 read_unlock_irq(&gpc->lock); in gfn_to_pfn_cache_invalidate_start()
47 write_lock_irq(&gpc->lock); in gfn_to_pfn_cache_invalidate_start()
48 if (gpc->valid && !is_error_noslot_pfn(gpc->pfn) && in gfn_to_pfn_cache_invalidate_start()
49 gpc->uhva >= start && gpc->uhva < end) in gfn_to_pfn_cache_invalidate_start()
50 gpc->valid = false; in gfn_to_pfn_cache_invalidate_start()
[all …]
/linux/drivers/gpu/drm/nouveau/nvkm/engine/gr/
H A Dgv100.c28 gv100_gr_trap_sm(struct gf100_gr *gr, int gpc, int tpc, int sm) in gv100_gr_trap_sm() argument
32 u32 werr = nvkm_rd32(device, TPC_UNIT(gpc, tpc, 0x730 + (sm * 0x80))); in gv100_gr_trap_sm()
33 u32 gerr = nvkm_rd32(device, TPC_UNIT(gpc, tpc, 0x734 + (sm * 0x80))); in gv100_gr_trap_sm()
40 nvkm_error(subdev, "GPC%i/TPC%i/SM%d trap: " in gv100_gr_trap_sm()
42 gpc, tpc, sm, gerr, glob, werr, warp ? warp->name : ""); in gv100_gr_trap_sm()
44 nvkm_wr32(device, TPC_UNIT(gpc, tpc, 0x730 + sm * 0x80), 0x00000000); in gv100_gr_trap_sm()
45 nvkm_wr32(device, TPC_UNIT(gpc, tpc, 0x734 + sm * 0x80), gerr); in gv100_gr_trap_sm()
49 gv100_gr_trap_mp(struct gf100_gr *gr, int gpc, int tpc) in gv100_gr_trap_mp() argument
51 gv100_gr_trap_sm(gr, gpc, tpc, 0); in gv100_gr_trap_mp()
52 gv100_gr_trap_sm(gr, gpc, tpc, 1); in gv100_gr_trap_mp()
[all …]
H A Dctxgp100.c52 int gpc, ppc, n = 0; in gp100_grctx_generate_attrib() local
58 for (gpc = 0; gpc < gr->gpc_nr; gpc++) { in gp100_grctx_generate_attrib()
60 const u32 as = alpha * gr->ppc_tpc_nr[gpc][ppc]; in gp100_grctx_generate_attrib()
63 const u32 o = PPC_UNIT(gpc, ppc, 0); in gp100_grctx_generate_attrib()
65 if (!(gr->ppc_mask[gpc] & (1 << ppc))) in gp100_grctx_generate_attrib()
74 ao += grctx->alpha_nr_max * gr->ppc_tpc_nr[gpc][ppc]; in gp100_grctx_generate_attrib()
97 int gpc; in gp100_grctx_generate_attrib_cb_size() local
99 for (gpc = 0; gpc < gr->gpc_nr; gpc++) in gp100_grctx_generate_attrib_cb_size()
114 const u8 gpc = gr->sm[sm].gpc; in gp100_grctx_generate_smid_config() local
116 dist[sm / 4] |= ((gpc << 4) | tpc) << ((sm % 4) * 8); in gp100_grctx_generate_smid_config()
[all …]
H A Dgf100.c1234 gf100_gr_trap_gpc_rop(struct gf100_gr *gr, int gpc) in gf100_gr_trap_gpc_rop() argument
1241 trap[0] = nvkm_rd32(device, GPC_UNIT(gpc, 0x0420)) & 0x3fffffff; in gf100_gr_trap_gpc_rop()
1242 trap[1] = nvkm_rd32(device, GPC_UNIT(gpc, 0x0434)); in gf100_gr_trap_gpc_rop()
1243 trap[2] = nvkm_rd32(device, GPC_UNIT(gpc, 0x0438)); in gf100_gr_trap_gpc_rop()
1244 trap[3] = nvkm_rd32(device, GPC_UNIT(gpc, 0x043c)); in gf100_gr_trap_gpc_rop()
1248 nvkm_error(subdev, "GPC%d/PROP trap: %08x [%s] x = %u, y = %u, " in gf100_gr_trap_gpc_rop()
1250 gpc, trap[0], error, trap[1] & 0xffff, trap[1] >> 16, in gf100_gr_trap_gpc_rop()
1252 nvkm_wr32(device, GPC_UNIT(gpc, 0x0420), 0xc0000000); in gf100_gr_trap_gpc_rop()
1295 gf100_gr_trap_mp(struct gf100_gr *gr, int gpc, int tpc) in gf100_gr_trap_mp() argument
1299 u32 werr = nvkm_rd32(device, TPC_UNIT(gpc, tpc, 0x648)); in gf100_gr_trap_mp()
[all …]
H A Dctxgp102.c51 int gpc, ppc, n = 0; in gp102_grctx_generate_attrib() local
57 for (gpc = 0; gpc < gr->gpc_nr; gpc++) { in gp102_grctx_generate_attrib()
59 const u32 as = alpha * gr->ppc_tpc_nr[gpc][ppc]; in gp102_grctx_generate_attrib()
63 const u32 o = PPC_UNIT(gpc, ppc, 0); in gp102_grctx_generate_attrib()
64 const u32 p = GPC_UNIT(gpc, 0xc44 + (ppc * 4)); in gp102_grctx_generate_attrib()
66 if (!(gr->ppc_mask[gpc] & (1 << ppc))) in gp102_grctx_generate_attrib()
76 ao += grctx->alpha_nr_max * gr->ppc_tpc_nr[gpc][ppc]; in gp102_grctx_generate_attrib()
90 int gpc; in gp102_grctx_generate_attrib_cb_size() local
92 for (gpc = 0; gpc < gr->gpc_nr; gpc++) in gp102_grctx_generate_attrib_cb_size()
H A Dctxgm200.c55 const u8 gpc = gr->sm[sm].gpc; in gm200_grctx_generate_smid_config() local
57 dist[sm / 4] |= ((gpc << 4) | tpc) << ((sm % 4) * 8); in gm200_grctx_generate_smid_config()
58 gpcs[gpc] |= sm << (tpc * 8); in gm200_grctx_generate_smid_config()
87 int gpc, ppc, i; in gm200_grctx_generate_dist_skip_table() local
89 for (gpc = 0; gpc < gr->gpc_nr; gpc++) { in gm200_grctx_generate_dist_skip_table()
91 u8 ppc_tpcs = gr->ppc_tpc_nr[gpc][ppc]; in gm200_grctx_generate_dist_skip_table()
92 u8 ppc_tpcm = gr->ppc_tpc_mask[gpc][ppc]; in gm200_grctx_generate_dist_skip_table()
95 ppc_tpcm ^= gr->ppc_tpc_mask[gpc][ppc]; in gm200_grctx_generate_dist_skip_table()
96 ((u8 *)data)[gpc] |= ppc_tpcm; in gm200_grctx_generate_dist_skip_table()
H A Dctxgv100.c73 int gpc, ppc, n = 0; in gv100_grctx_generate_attrib() local
79 for (gpc = 0; gpc < gr->gpc_nr; gpc++) { in gv100_grctx_generate_attrib()
81 const u32 as = alpha * gr->ppc_tpc_nr[gpc][ppc]; in gv100_grctx_generate_attrib()
85 const u32 o = PPC_UNIT(gpc, ppc, 0); in gv100_grctx_generate_attrib()
87 if (!(gr->ppc_mask[gpc] & (1 << ppc))) in gv100_grctx_generate_attrib()
96 ao += grctx->alpha_nr_max * gr->ppc_tpc_nr[gpc][ppc]; in gv100_grctx_generate_attrib()
160 gv100_grctx_generate_sm_id(struct gf100_gr *gr, int gpc, int tpc, int sm) in gv100_grctx_generate_sm_id() argument
164 tpc = gv100_gr_nonpes_aware_tpc(gr, gpc, tpc); in gv100_grctx_generate_sm_id()
166 nvkm_wr32(device, TPC_UNIT(gpc, tpc, 0x608), sm); in gv100_grctx_generate_sm_id()
167 nvkm_wr32(device, GPC_UNIT(gpc, 0x0c10 + tpc * 4), sm); in gv100_grctx_generate_sm_id()
[all …]
H A Dtu102.c45 int tpc = gv100_gr_nonpes_aware_tpc(gr, gr->sm[sm].gpc, gr->sm[sm].tpc); in tu102_gr_init_fs()
47 nvkm_wr32(device, GPC_UNIT(gr->sm[sm].gpc, 0x0c10 + tpc * 4), sm); in tu102_gr_init_fs()
60 u8 bank[GPC_MAX] = {}, gpc, i, j; in tu102_gr_init_zcull() local
71 for (gpc = 0; gpc < gr->gpc_nr; gpc++) { in tu102_gr_init_zcull()
72 nvkm_wr32(device, GPC_UNIT(gpc, 0x0914), in tu102_gr_init_zcull()
73 gr->screen_tile_row_offset << 8 | gr->tpc_nr[gpc]); in tu102_gr_init_zcull()
74 nvkm_wr32(device, GPC_UNIT(gpc, 0x0910), 0x00040000 | in tu102_gr_init_zcull()
76 nvkm_wr32(device, GPC_UNIT(gpc, 0x0918), magicgpc918); in tu102_gr_init_zcull()
H A Dgf117.c131 u8 bank[GPC_MAX] = {}, gpc, i, j; in gf117_gr_init_zcull() local
142 for (gpc = 0; gpc < gr->gpc_nr; gpc++) { in gf117_gr_init_zcull()
143 nvkm_wr32(device, GPC_UNIT(gpc, 0x0914), in gf117_gr_init_zcull()
144 gr->screen_tile_row_offset << 8 | gr->tpc_nr[gpc]); in gf117_gr_init_zcull()
145 nvkm_wr32(device, GPC_UNIT(gpc, 0x0910), 0x00040000 | in gf117_gr_init_zcull()
147 nvkm_wr32(device, GPC_UNIT(gpc, 0x0918), magicgpc918); in gf117_gr_init_zcull()
H A Dctxgf117.c254 int gpc, ppc; in gf117_grctx_generate_attrib() local
259 for (gpc = 0; gpc < gr->gpc_nr; gpc++) { in gf117_grctx_generate_attrib()
261 const u32 a = alpha * gr->ppc_tpc_nr[gpc][ppc]; in gf117_grctx_generate_attrib()
262 const u32 b = beta * gr->ppc_tpc_nr[gpc][ppc]; in gf117_grctx_generate_attrib()
264 const u32 o = PPC_UNIT(gpc, ppc, 0); in gf117_grctx_generate_attrib()
266 if (!(gr->ppc_mask[gpc] & (1 << ppc))) in gf117_grctx_generate_attrib()
270 bo += grctx->attrib_nr_max * gr->ppc_tpc_nr[gpc][ppc]; in gf117_grctx_generate_attrib()
272 ao += grctx->alpha_nr_max * gr->ppc_tpc_nr[gpc][ppc]; in gf117_grctx_generate_attrib()
H A Dgp102.c89 u32 mask = 0, data, gpc; in gp102_gr_init_swdx_pes_mask() local
91 for (gpc = 0; gpc < gr->gpc_nr; gpc++) { in gp102_gr_init_swdx_pes_mask()
92 data = nvkm_rd32(device, GPC_UNIT(gpc, 0x0c50)) & 0x0000000f; in gp102_gr_init_swdx_pes_mask()
93 mask |= data << (gpc * 4); in gp102_gr_init_swdx_pes_mask()
H A Dctxgf100.c1037 int gpc, tpc; in gf100_grctx_generate_attrib() local
1042 for (gpc = 0; gpc < gr->gpc_nr; gpc++) { in gf100_grctx_generate_attrib()
1043 for (tpc = 0; tpc < gr->tpc_nr[gpc]; tpc++) { in gf100_grctx_generate_attrib()
1044 const u32 o = TPC_UNIT(gpc, tpc, 0x0520); in gf100_grctx_generate_attrib()
1084 data |= gr->sm[sm++].gpc << (j * 8); in gf100_grctx_generate_r4060a8()
1253 int i, gpc; in gf100_grctx_generate_alpha_beta_tables() local
1265 for (gpc = 0; atarget && gpc < gr->gpc_nr; gpc++) { in gf100_grctx_generate_alpha_beta_tables()
1266 if (abits[gpc] < gr->tpc_nr[gpc]) { in gf100_grctx_generate_alpha_beta_tables()
1267 abits[gpc]++; in gf100_grctx_generate_alpha_beta_tables()
1273 for (gpc = 0; gpc < gr->gpc_nr; gpc++) { in gf100_grctx_generate_alpha_beta_tables()
[all …]
H A Dctxtu102.c34 tu102_grctx_generate_sm_id(struct gf100_gr *gr, int gpc, int tpc, int sm) in tu102_grctx_generate_sm_id() argument
38 tpc = gv100_gr_nonpes_aware_tpc(gr, gpc, tpc); in tu102_grctx_generate_sm_id()
40 nvkm_wr32(device, TPC_UNIT(gpc, tpc, 0x608), sm); in tu102_grctx_generate_sm_id()
41 nvkm_wr32(device, TPC_UNIT(gpc, tpc, 0x088), sm); in tu102_grctx_generate_sm_id()
/linux/Documentation/devicetree/bindings/power/
H A Dfsl,imx-gpcv2.yaml13 The i.MX7S/D General Power Control (GPC) block contains Power Gating
16 Power domains contained within GPC node are generic power domain
27 - fsl,imx7d-gpc
28 - fsl,imx8mn-gpc
29 - fsl,imx8mq-gpc
30 - fsl,imx8mm-gpc
31 - fsl,imx8mp-gpc
68 include/dt-bindings/power/imx7-power.h for fsl,imx7d-gpc and
69 include/dt-bindings/power/imx8m-power.h for fsl,imx8mq-gpc
70 include/dt-bindings/power/imx8mm-power.h for fsl,imx8mm-gpc
[all …]
H A Dfsl,imx-gpc.yaml4 $id: http://devicetree.org/schemas/power/fsl,imx-gpc.yaml#
13 The i.MX6 General Power Control (GPC) block contains DVFS load tracking
18 described as subnodes of the power gating controller 'pgc' node of the GPC.
28 - fsl,imx6q-gpc
31 - fsl,imx6qp-gpc
32 - fsl,imx6sl-gpc
33 - fsl,imx6sx-gpc
34 - fsl,imx6ul-gpc
35 - const: fsl,imx6q-gpc
119 gpc@20dc000 {
[all …]
/linux/arch/mips/boot/dts/ingenic/
H A Dqi_lb60.dts114 col-gpios = <&gpc 10 0>, <&gpc 11 0>, <&gpc 12 0>, <&gpc 13 0>,
115 <&gpc 14 0>, <&gpc 15 0>, <&gpc 16 0>, <&gpc 17 0>;
186 sck-gpios = <&gpc 23 GPIO_ACTIVE_HIGH>;
187 mosi-gpios = <&gpc 22 GPIO_ACTIVE_HIGH>;
188 cs-gpios = <&gpc 21 GPIO_ACTIVE_LOW>;
196 status-gpios = <&gpc 27 GPIO_ACTIVE_LOW>;
268 rb-gpios = <&gpc 30 GPIO_ACTIVE_HIGH>;
H A Drs90.dts59 gpios = <&gpc 10 GPIO_ACTIVE_LOW>;
65 gpios = <&gpc 11 GPIO_ACTIVE_LOW>;
83 gpios = <&gpc 31 GPIO_ACTIVE_LOW>;
89 gpios = <&gpc 30 GPIO_ACTIVE_LOW>;
95 gpios = <&gpc 12 GPIO_ACTIVE_LOW>;
128 enable-gpios = <&gpc 15 GPIO_ACTIVE_HIGH>;
236 cd-gpios = <&gpc 20 GPIO_ACTIVE_LOW>;
266 rb-gpios = <&gpc 27 GPIO_ACTIVE_HIGH>;
H A Dcu1000-neo.dts37 reset-gpios = <&gpc 17 GPIO_ACTIVE_LOW>;
72 cs-gpios = <0>, <&gpc 20 GPIO_ACTIVE_LOW>;
87 interrupt-parent = <&gpc>;
146 interrupt-parent = <&gpc>;
163 snps,reset-gpio = <&gpc 23 GPIO_ACTIVE_LOW>; /* PC23 */
/linux/arch/x86/kvm/
H A Dxen.c40 struct gfn_to_pfn_cache *gpc = &kvm->arch.xen.shinfo_cache; in kvm_xen_shared_info_init() local
48 read_lock_irq(&gpc->lock); in kvm_xen_shared_info_init()
49 while (!kvm_gpc_check(gpc, PAGE_SIZE)) { in kvm_xen_shared_info_init()
50 read_unlock_irq(&gpc->lock); in kvm_xen_shared_info_init()
52 ret = kvm_gpc_refresh(gpc, PAGE_SIZE); in kvm_xen_shared_info_init()
56 read_lock_irq(&gpc->lock); in kvm_xen_shared_info_init()
76 struct shared_info *shinfo = gpc->khva; in kvm_xen_shared_info_init()
83 struct compat_shared_info *shinfo = gpc->khva; in kvm_xen_shared_info_init()
99 read_unlock_irq(&gpc->lock); in kvm_xen_shared_info_init()
372 * Attempt to obtain the GPC lock on *both* (if there are two) in kvm_xen_update_runstate_guest()
[all …]
/linux/arch/arm/boot/dts/samsung/
H A Ds3c64xx-pinctrl.dtsi33 gpc: gpc-gpio-bank { label
214 samsung,pins = "gpc-0", "gpc-1", "gpc-2";
220 samsung,pins = "gpc-3";
226 samsung,pins = "gpc-4", "gpc-5", "gpc-6";
232 samsung,pins = "gpc-7";
305 samsung,pins = "gpc-4";
311 samsung,pins = "gpc-5";
354 samsung,pins = "gpc-4", "gpc-5", "gpc-6", "gph-6",
/linux/drivers/irqchip/
H A Dirq-imx-gpcv2.c197 { .compatible = "fsl,imx7d-gpc", .data = (const void *) 2 },
198 { .compatible = "fsl,imx8mq-gpc", .data = (const void *) 4 },
238 pr_err("%pOF: unable to map gpc registers\n", node); in imx_gpcv2_irqchip_init()
268 /* Let CORE0 as the default CPU to wake up by GPC */ in imx_gpcv2_irqchip_init()
283 * later the GPC power domain driver will not be skipped. in imx_gpcv2_irqchip_init()
290 IRQCHIP_DECLARE(imx_gpcv2_imx7d, "fsl,imx7d-gpc", imx_gpcv2_irqchip_init);
291 IRQCHIP_DECLARE(imx_gpcv2_imx8mq, "fsl,imx8mq-gpc", imx_gpcv2_irqchip_init);
/linux/arch/arm/mach-imx/
H A Dgpc.c67 /* Tell GPC to power off ARM core when suspend */ in imx_gpc_pre_suspend()
160 .name = "GPC",
262 * later the GPC power domain driver will not be skipped. in imx_gpc_init()
268 IRQCHIP_DECLARE(imx_gpc, "fsl,imx6q-gpc", imx_gpc_init);
274 np = of_find_compatible_node(NULL, NULL, "fsl,imx6q-gpc"); in imx_gpc_check_dt()
281 /* map GPC, so that at least CPUidle and WARs keep working */ in imx_gpc_check_dt()
H A Dcpu-imx5.c130 u32 gpc; in imx5_pmu_init() local
152 gpc = readl_relaxed(tigerp_base + ARM_GPC); in imx5_pmu_init()
153 gpc |= DBGEN; in imx5_pmu_init()
154 writel_relaxed(gpc, tigerp_base + ARM_GPC); in imx5_pmu_init()
H A Dpm-imx6.c156 .gpc_compat = "fsl,imx6q-gpc",
166 .gpc_compat = "fsl,imx6q-gpc",
176 .gpc_compat = "fsl,imx6sl-gpc",
186 .gpc_compat = "fsl,imx6sll-gpc",
196 .gpc_compat = "fsl,imx6sx-gpc",
206 .gpc_compat = "fsl,imx6ul-gpc",
249 * need to mask all interrupts in GPC before in imx6_enable_rbc()
273 /* restore GPC interrupt mask settings */ in imx6_enable_rbc()
347 * 2) Software should then unmask IRQ #32 in GPC before setting CCM in imx6_set_lpm()
546 pr_warn("%s: failed to get gpc base %d!\n", __func__, ret); in imx6q_suspend_init()
[all …]
/linux/drivers/pmdomain/imx/
H A Dimx8m-blk-ctrl.c113 /* power up upstream GPC domain */ in imx8m_blk_ctrl_power_on()
158 /* power down upstream GPC domain */ in imx8m_blk_ctrl_power_off()
287 * We use runtime PM to trigger power on/off of the upstream GPC in imx8m_blk_ctrl_probe()
365 * control the upstream GPC domains. Things happen in the right order in imx8m_blk_ctrl_suspend()
426 * allow the handshake with the GPC to progress we put the VPUs in imx8mm_vpu_power_notifier()
434 * On power up we have no software backchannel to the GPC to in imx8mm_vpu_power_notifier()
436 * bit. On power down the GPC driver waits for the handshake. in imx8mm_vpu_power_notifier()
538 * On power up we have no software backchannel to the GPC to in imx8mm_disp_power_notifier()
540 * bit. On power down the GPC driver waits for the handshake. in imx8mm_disp_power_notifier()
608 * On power up we have no software backchannel to the GPC to in imx8mn_disp_power_notifier()
[all …]

12345