diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2010-07-25 19:28:25 -0400 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2010-07-25 21:43:57 -0400 |
commit | ee2e013131dcf6427334663662dbe760ccdba735 (patch) | |
tree | 2533973de31a05dbb06465a124087334842c6f37 /drivers/gpu/drm/nouveau/nouveau_drv.h | |
parent | bf563a6b7c7efb283dd4ddf12cc90c2898195c16 (diff) |
drm/nouveau: introduce gpio engine
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau/nouveau_drv.h')
-rw-r--r-- | drivers/gpu/drm/nouveau/nouveau_drv.h | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/drivers/gpu/drm/nouveau/nouveau_drv.h b/drivers/gpu/drm/nouveau/nouveau_drv.h index 0687e6ab918..d0a35d9ba52 100644 --- a/drivers/gpu/drm/nouveau/nouveau_drv.h +++ b/drivers/gpu/drm/nouveau/nouveau_drv.h | |||
@@ -359,6 +359,16 @@ struct nouveau_display_engine { | |||
359 | void (*destroy)(struct drm_device *); | 359 | void (*destroy)(struct drm_device *); |
360 | }; | 360 | }; |
361 | 361 | ||
362 | struct nouveau_gpio_engine { | ||
363 | int (*init)(struct drm_device *); | ||
364 | void (*takedown)(struct drm_device *); | ||
365 | |||
366 | int (*get)(struct drm_device *, enum dcb_gpio_tag); | ||
367 | int (*set)(struct drm_device *, enum dcb_gpio_tag, int state); | ||
368 | |||
369 | void (*irq_enable)(struct drm_device *, enum dcb_gpio_tag, bool on); | ||
370 | }; | ||
371 | |||
362 | struct nouveau_engine { | 372 | struct nouveau_engine { |
363 | struct nouveau_instmem_engine instmem; | 373 | struct nouveau_instmem_engine instmem; |
364 | struct nouveau_mc_engine mc; | 374 | struct nouveau_mc_engine mc; |
@@ -367,6 +377,7 @@ struct nouveau_engine { | |||
367 | struct nouveau_pgraph_engine graph; | 377 | struct nouveau_pgraph_engine graph; |
368 | struct nouveau_fifo_engine fifo; | 378 | struct nouveau_fifo_engine fifo; |
369 | struct nouveau_display_engine display; | 379 | struct nouveau_display_engine display; |
380 | struct nouveau_gpio_engine gpio; | ||
370 | }; | 381 | }; |
371 | 382 | ||
372 | struct nouveau_pll_vals { | 383 | struct nouveau_pll_vals { |
@@ -1149,11 +1160,12 @@ extern int nouveau_gem_ioctl_cpu_fini(struct drm_device *, void *, | |||
1149 | extern int nouveau_gem_ioctl_info(struct drm_device *, void *, | 1160 | extern int nouveau_gem_ioctl_info(struct drm_device *, void *, |
1150 | struct drm_file *); | 1161 | struct drm_file *); |
1151 | 1162 | ||
1152 | /* nv17_gpio.c */ | 1163 | /* nv10_gpio.c */ |
1153 | int nv17_gpio_get(struct drm_device *dev, enum dcb_gpio_tag tag); | 1164 | int nv10_gpio_get(struct drm_device *dev, enum dcb_gpio_tag tag); |
1154 | int nv17_gpio_set(struct drm_device *dev, enum dcb_gpio_tag tag, int state); | 1165 | int nv10_gpio_set(struct drm_device *dev, enum dcb_gpio_tag tag, int state); |
1155 | 1166 | ||
1156 | /* nv50_gpio.c */ | 1167 | /* nv50_gpio.c */ |
1168 | int nv50_gpio_init(struct drm_device *dev); | ||
1157 | int nv50_gpio_get(struct drm_device *dev, enum dcb_gpio_tag tag); | 1169 | int nv50_gpio_get(struct drm_device *dev, enum dcb_gpio_tag tag); |
1158 | int nv50_gpio_set(struct drm_device *dev, enum dcb_gpio_tag tag, int state); | 1170 | int nv50_gpio_set(struct drm_device *dev, enum dcb_gpio_tag tag, int state); |
1159 | void nv50_gpio_irq_enable(struct drm_device *, enum dcb_gpio_tag, bool on); | 1171 | void nv50_gpio_irq_enable(struct drm_device *, enum dcb_gpio_tag, bool on); |