Lines Matching refs:pasid_table
69 struct pasid_table *pasid_table) in device_attach_pasid_table() argument
71 info->pasid_table = pasid_table; in device_attach_pasid_table()
72 list_add(&info->table, &pasid_table->dev); in device_attach_pasid_table()
77 struct pasid_table *pasid_table) in device_detach_pasid_table() argument
79 info->pasid_table = NULL; in device_detach_pasid_table()
84 struct pasid_table **pasid_table; member
97 info->pasid_table) { in search_pasid_table()
98 *data->pasid_table = info->pasid_table; in search_pasid_table()
123 struct pasid_table *pasid_table; in intel_pasid_alloc_table() local
131 !info->pasid_supported || info->pasid_table)) in intel_pasid_alloc_table()
135 data.pasid_table = &pasid_table; in intel_pasid_alloc_table()
141 pasid_table = kzalloc(sizeof(*pasid_table), GFP_ATOMIC); in intel_pasid_alloc_table()
142 if (!pasid_table) in intel_pasid_alloc_table()
144 INIT_LIST_HEAD(&pasid_table->dev); in intel_pasid_alloc_table()
155 pasid_table->table = page_address(pages); in intel_pasid_alloc_table()
156 pasid_table->order = order; in intel_pasid_alloc_table()
157 pasid_table->max_pasid = count; in intel_pasid_alloc_table()
160 device_attach_pasid_table(info, pasid_table); in intel_pasid_alloc_table()
168 struct pasid_table *pasid_table; in intel_pasid_free_table() local
172 !info->pasid_supported || !info->pasid_table) in intel_pasid_free_table()
175 pasid_table = info->pasid_table; in intel_pasid_free_table()
176 device_detach_pasid_table(info, pasid_table); in intel_pasid_free_table()
178 if (!list_empty(&pasid_table->dev)) in intel_pasid_free_table()
181 free_pages((unsigned long)pasid_table->table, pasid_table->order); in intel_pasid_free_table()
182 kfree(pasid_table); in intel_pasid_free_table()
185 struct pasid_table *intel_pasid_get_table(struct device *dev) in intel_pasid_get_table()
193 return info->pasid_table; in intel_pasid_get_table()
201 if (!info || !info->pasid_table) in intel_pasid_get_dev_max_id()
204 return info->pasid_table->max_pasid; in intel_pasid_get_dev_max_id()
209 struct pasid_table *pasid_table; in intel_pasid_get_entry() local
212 pasid_table = intel_pasid_get_table(dev); in intel_pasid_get_entry()
213 if (WARN_ON(!pasid_table || pasid < 0 || in intel_pasid_get_entry()
217 entries = pasid_table->table; in intel_pasid_get_entry()