diff options
Diffstat (limited to 'drivers/gpu/drm/nouveau/nouveau_notifier.c')
-rw-r--r-- | drivers/gpu/drm/nouveau/nouveau_notifier.c | 41 |
1 files changed, 0 insertions, 41 deletions
diff --git a/drivers/gpu/drm/nouveau/nouveau_notifier.c b/drivers/gpu/drm/nouveau/nouveau_notifier.c index 2ef883c4bbc1..69c93b864519 100644 --- a/drivers/gpu/drm/nouveau/nouveau_notifier.c +++ b/drivers/gpu/drm/nouveau/nouveau_notifier.c | |||
@@ -161,44 +161,3 @@ nouveau_notifier_alloc(struct nouveau_channel *chan, uint32_t handle, | |||
161 | *b_offset = mem->start; | 161 | *b_offset = mem->start; |
162 | return 0; | 162 | return 0; |
163 | } | 163 | } |
164 | |||
165 | int | ||
166 | nouveau_notifier_offset(struct nouveau_gpuobj *nobj, uint32_t *poffset) | ||
167 | { | ||
168 | if (!nobj || nobj->dtor != nouveau_notifier_gpuobj_dtor) | ||
169 | return -EINVAL; | ||
170 | |||
171 | if (poffset) { | ||
172 | struct drm_mm_node *mem = nobj->priv; | ||
173 | |||
174 | if (*poffset >= mem->size) | ||
175 | return false; | ||
176 | |||
177 | *poffset += mem->start; | ||
178 | } | ||
179 | |||
180 | return 0; | ||
181 | } | ||
182 | |||
183 | int | ||
184 | nouveau_ioctl_notifier_alloc(struct drm_device *dev, void *data, | ||
185 | struct drm_file *file_priv) | ||
186 | { | ||
187 | struct drm_nouveau_private *dev_priv = dev->dev_private; | ||
188 | struct drm_nouveau_notifierobj_alloc *na = data; | ||
189 | struct nouveau_channel *chan; | ||
190 | int ret; | ||
191 | |||
192 | /* completely unnecessary for these chipsets... */ | ||
193 | if (unlikely(dev_priv->card_type >= NV_C0)) | ||
194 | return -EINVAL; | ||
195 | |||
196 | chan = nouveau_channel_get(file_priv, na->channel); | ||
197 | if (IS_ERR(chan)) | ||
198 | return PTR_ERR(chan); | ||
199 | |||
200 | ret = nouveau_notifier_alloc(chan, na->handle, na->size, 0, 0x1000, | ||
201 | &na->offset); | ||
202 | nouveau_channel_put(&chan); | ||
203 | return ret; | ||
204 | } | ||