Lines Matching full:ccf
100 struct ccf_private *ccf = dev_id; in ccf_irq() local
109 errdet = ioread32be(&ccf->err_regs->errdet); in ccf_irq()
110 cecar = ioread32be(&ccf->err_regs->cecar); in ccf_irq()
111 cecar2 = ioread32be(&ccf->err_regs->cecar2); in ccf_irq()
112 addr = ioread32be(&ccf->err_regs->cecaddrl); in ccf_irq()
113 addr |= ((u64)(ioread32be(&ccf->err_regs->cecaddrh) & in ccf_irq()
119 switch (ccf->info->version) { in ccf_irq()
141 dev_crit(ccf->dev, "errdet 0x%08x cecar 0x%08x cecar2 0x%08x\n", in ccf_irq()
146 dev_crit(ccf->dev, "LAW Unavailable Target ID\n"); in ccf_irq()
148 dev_crit(ccf->dev, "Local Access Window Error\n"); in ccf_irq()
152 dev_crit(ccf->dev, "Coherency Violation\n"); in ccf_irq()
155 dev_crit(ccf->dev, "Unavailable Target ID\n"); in ccf_irq()
158 dev_crit(ccf->dev, "Multicast Stash\n"); in ccf_irq()
161 dev_crit(ccf->dev, "address 0x%09llx, src id 0x%x\n", in ccf_irq()
166 iowrite32be(errdet, &ccf->err_regs->errdet); in ccf_irq()
172 struct ccf_private *ccf; in ccf_probe() local
176 ccf = devm_kzalloc(&pdev->dev, sizeof(*ccf), GFP_KERNEL); in ccf_probe()
177 if (!ccf) in ccf_probe()
180 ccf->regs = devm_platform_ioremap_resource(pdev, 0); in ccf_probe()
181 if (IS_ERR(ccf->regs)) in ccf_probe()
182 return PTR_ERR(ccf->regs); in ccf_probe()
184 ccf->dev = &pdev->dev; in ccf_probe()
185 ccf->info = device_get_match_data(&pdev->dev); in ccf_probe()
186 ccf->err_regs = ccf->regs + ccf->info->err_reg_offs; in ccf_probe()
188 if (ccf->info->has_brr) { in ccf_probe()
189 u32 brr = ioread32be(ccf->regs + CCF_BRR); in ccf_probe()
192 ccf->t1040 = true; in ccf_probe()
195 dev_set_drvdata(&pdev->dev, ccf); in ccf_probe()
201 ret = devm_request_irq(&pdev->dev, irq, ccf_irq, 0, pdev->name, ccf); in ccf_probe()
208 if (ccf->t1040) in ccf_probe()
211 switch (ccf->info->version) { in ccf_probe()
214 iowrite32be(errinten, &ccf->err_regs->errdis); in ccf_probe()
218 iowrite32be(0, &ccf->err_regs->errdis); in ccf_probe()
219 iowrite32be(errinten, &ccf->err_regs->errinten); in ccf_probe()
228 struct ccf_private *ccf = dev_get_drvdata(&pdev->dev); in ccf_remove() local
230 switch (ccf->info->version) { in ccf_remove()
232 iowrite32be(0, &ccf->err_regs->errdis); in ccf_remove()
241 iowrite32be(0, &ccf->err_regs->errinten); in ccf_remove()