Lines Matching refs:isp

42 static int isp_v4_1_0_hw_init(struct amdgpu_isp *isp)  in isp_v4_1_0_hw_init()  argument
44 struct amdgpu_device *adev = isp->adev; in isp_v4_1_0_hw_init()
53 isp->isp_cell = kcalloc(2, sizeof(struct mfd_cell), GFP_KERNEL); in isp_v4_1_0_hw_init()
54 if (!isp->isp_cell) { in isp_v4_1_0_hw_init()
61 isp->isp_res = kcalloc(num_res, sizeof(struct resource), in isp_v4_1_0_hw_init()
63 if (!isp->isp_res) { in isp_v4_1_0_hw_init()
69 isp->isp_pdata = kzalloc(sizeof(*isp->isp_pdata), GFP_KERNEL); in isp_v4_1_0_hw_init()
70 if (!isp->isp_pdata) { in isp_v4_1_0_hw_init()
77 isp->isp_pdata->adev = (void *)adev; in isp_v4_1_0_hw_init()
78 isp->isp_pdata->asic_type = adev->asic_type; in isp_v4_1_0_hw_init()
79 isp->isp_pdata->base_rmmio_size = adev->rmmio_size; in isp_v4_1_0_hw_init()
81 isp->isp_res[0].name = "isp_4_1_0_reg"; in isp_v4_1_0_hw_init()
82 isp->isp_res[0].flags = IORESOURCE_MEM; in isp_v4_1_0_hw_init()
83 isp->isp_res[0].start = isp_base; in isp_v4_1_0_hw_init()
84 isp->isp_res[0].end = isp_base + ISP_REGS_OFFSET_END; in isp_v4_1_0_hw_init()
86 isp->isp_res[1].name = "isp_4_1_phy0_reg"; in isp_v4_1_0_hw_init()
87 isp->isp_res[1].flags = IORESOURCE_MEM; in isp_v4_1_0_hw_init()
88 isp->isp_res[1].start = isp_base + ISP410_PHY0_OFFSET; in isp_v4_1_0_hw_init()
89 isp->isp_res[1].end = isp_base + ISP410_PHY0_OFFSET + ISP410_PHY0_SIZE; in isp_v4_1_0_hw_init()
91 isp->isp_res[2].name = "isp_gpio_sensor0_reg"; in isp_v4_1_0_hw_init()
92 isp->isp_res[2].flags = IORESOURCE_MEM; in isp_v4_1_0_hw_init()
93 isp->isp_res[2].start = isp_base + ISP410_GPIO_SENSOR0_OFFSET; in isp_v4_1_0_hw_init()
94 isp->isp_res[2].end = isp_base + ISP410_GPIO_SENSOR0_OFFSET + in isp_v4_1_0_hw_init()
99 isp->isp_res[idx].name = "isp_4_1_0_irq"; in isp_v4_1_0_hw_init()
100 isp->isp_res[idx].flags = IORESOURCE_IRQ; in isp_v4_1_0_hw_init()
101 isp->isp_res[idx].start = in isp_v4_1_0_hw_init()
103 isp->isp_res[idx].end = in isp_v4_1_0_hw_init()
104 isp->isp_res[idx].start; in isp_v4_1_0_hw_init()
107 isp->isp_cell[0].name = "amd_isp_capture"; in isp_v4_1_0_hw_init()
108 isp->isp_cell[0].num_resources = num_res; in isp_v4_1_0_hw_init()
109 isp->isp_cell[0].resources = &isp->isp_res[0]; in isp_v4_1_0_hw_init()
110 isp->isp_cell[0].platform_data = isp->isp_pdata; in isp_v4_1_0_hw_init()
111 isp->isp_cell[0].pdata_size = sizeof(struct isp_platform_data); in isp_v4_1_0_hw_init()
113 isp->isp_i2c_res = kcalloc(1, sizeof(struct resource), in isp_v4_1_0_hw_init()
115 if (!isp->isp_i2c_res) { in isp_v4_1_0_hw_init()
121 isp->isp_i2c_res[0].name = "isp_i2c0_reg"; in isp_v4_1_0_hw_init()
122 isp->isp_i2c_res[0].flags = IORESOURCE_MEM; in isp_v4_1_0_hw_init()
123 isp->isp_i2c_res[0].start = isp_base + ISP410_I2C0_OFFSET; in isp_v4_1_0_hw_init()
124 isp->isp_i2c_res[0].end = isp_base + ISP410_I2C0_OFFSET + ISP410_I2C0_SIZE; in isp_v4_1_0_hw_init()
126 isp->isp_cell[1].name = "amd_isp_i2c_designware"; in isp_v4_1_0_hw_init()
127 isp->isp_cell[1].num_resources = 1; in isp_v4_1_0_hw_init()
128 isp->isp_cell[1].resources = &isp->isp_i2c_res[0]; in isp_v4_1_0_hw_init()
129 isp->isp_cell[1].platform_data = isp->isp_pdata; in isp_v4_1_0_hw_init()
130 isp->isp_cell[1].pdata_size = sizeof(struct isp_platform_data); in isp_v4_1_0_hw_init()
132 r = mfd_add_hotplug_devices(isp->parent, isp->isp_cell, 2); in isp_v4_1_0_hw_init()
142 kfree(isp->isp_pdata); in isp_v4_1_0_hw_init()
143 kfree(isp->isp_res); in isp_v4_1_0_hw_init()
144 kfree(isp->isp_cell); in isp_v4_1_0_hw_init()
145 kfree(isp->isp_i2c_res); in isp_v4_1_0_hw_init()
150 static int isp_v4_1_0_hw_fini(struct amdgpu_isp *isp) in isp_v4_1_0_hw_fini() argument
152 mfd_remove_devices(isp->parent); in isp_v4_1_0_hw_fini()
154 kfree(isp->isp_res); in isp_v4_1_0_hw_fini()
155 kfree(isp->isp_cell); in isp_v4_1_0_hw_fini()
156 kfree(isp->isp_pdata); in isp_v4_1_0_hw_fini()
157 kfree(isp->isp_i2c_res); in isp_v4_1_0_hw_fini()
167 void isp_v4_1_0_set_isp_funcs(struct amdgpu_isp *isp) in isp_v4_1_0_set_isp_funcs() argument
169 isp->funcs = &isp_v4_1_0_funcs; in isp_v4_1_0_set_isp_funcs()