Lines Matching refs:subdev
46 struct host1x_subdev *subdev; in host1x_subdev_add() local
48 subdev = kzalloc(sizeof(*subdev), GFP_KERNEL); in host1x_subdev_add()
49 if (!subdev) in host1x_subdev_add()
52 INIT_LIST_HEAD(&subdev->list); in host1x_subdev_add()
53 subdev->np = of_node_get(np); in host1x_subdev_add()
56 list_add_tail(&subdev->list, &device->subdevs); in host1x_subdev_add()
65 static void host1x_subdev_del(struct host1x_subdev *subdev) in host1x_subdev_del() argument
67 list_del(&subdev->list); in host1x_subdev_del()
68 of_node_put(subdev->np); in host1x_subdev_del()
69 kfree(subdev); in host1x_subdev_del()
94 struct host1x_subdev *subdev, in host1x_subdev_register() argument
107 list_move_tail(&subdev->list, &device->active); in host1x_subdev_register()
109 subdev->client = client; in host1x_subdev_register()
123 struct host1x_subdev *subdev) in __host1x_subdev_unregister() argument
125 struct host1x_client *client = subdev->client; in __host1x_subdev_unregister()
143 subdev->client = NULL; in __host1x_subdev_unregister()
145 list_move_tail(&subdev->list, &device->subdevs); in __host1x_subdev_unregister()
159 struct host1x_subdev *subdev) in host1x_subdev_unregister() argument
162 __host1x_subdev_unregister(device, subdev); in host1x_subdev_unregister()
222 struct host1x_subdev *subdev; in host1x_add_client() local
227 list_for_each_entry(subdev, &device->subdevs, list) { in host1x_add_client()
228 if (subdev->np == client->dev->of_node) { in host1x_add_client()
229 host1x_subdev_register(device, subdev, client); in host1x_add_client()
244 struct host1x_subdev *subdev; in host1x_del_client() local
249 list_for_each_entry(subdev, &device->active, list) { in host1x_del_client()
250 if (subdev->client == client) { in host1x_del_client()
251 host1x_subdev_unregister(device, subdev); in host1x_del_client()
318 struct host1x_subdev *subdev, *sd; in __host1x_device_del() local
324 list_for_each_entry_safe(subdev, sd, &device->active, list) { in __host1x_device_del()
334 client = subdev->client; in __host1x_device_del()
336 __host1x_subdev_unregister(device, subdev); in __host1x_device_del()
345 list_for_each_entry_safe(subdev, sd, &device->subdevs, list) in __host1x_device_del()
346 host1x_subdev_del(subdev); in __host1x_device_del()
376 struct host1x_subdev *subdev; in host1x_device_add() local
412 list_for_each_entry(subdev, &device->subdevs, list) { in host1x_device_add()
413 if (subdev->np == client->dev->of_node) { in host1x_device_add()
414 host1x_subdev_register(device, subdev, client); in host1x_device_add()