Loading drivers/gpu/drm/nouveau/core/include/subdev/gpio.h +0 −5 Original line number Diff line number Diff line Loading @@ -13,12 +13,7 @@ struct nouveau_gpio { struct nouveau_event *events; /* hardware interfaces */ void (*reset)(struct nouveau_gpio *, u8 func); int (*drive)(struct nouveau_gpio *, int line, int dir, int out); int (*sense)(struct nouveau_gpio *, int line); /* software interfaces */ int (*find)(struct nouveau_gpio *, int idx, u8 tag, u8 line, struct dcb_gpio_func *); int (*set)(struct nouveau_gpio *, int idx, u8 tag, u8 line, int state); Loading drivers/gpu/drm/nouveau/core/subdev/gpio/base.c +5 −2 Original line number Diff line number Diff line Loading @@ -31,13 +31,15 @@ static int nouveau_gpio_drive(struct nouveau_gpio *gpio, int idx, int line, int dir, int out) { return gpio->drive ? gpio->drive(gpio, line, dir, out) : -ENODEV; const struct nouveau_gpio_impl *impl = (void *)nv_object(gpio)->oclass; return impl->drive ? impl->drive(gpio, line, dir, out) : -ENODEV; } static int nouveau_gpio_sense(struct nouveau_gpio *gpio, int idx, int line) { return gpio->sense ? gpio->sense(gpio, line) : -ENODEV; const struct nouveau_gpio_impl *impl = (void *)nv_object(gpio)->oclass; return impl->sense ? impl->sense(gpio, line) : -ENODEV; } static int Loading Loading @@ -201,6 +203,7 @@ nouveau_gpio_create_(struct nouveau_object *parent, gpio->find = nouveau_gpio_find; gpio->set = nouveau_gpio_set; gpio->get = nouveau_gpio_get; gpio->reset = impl->reset; ret = nouveau_event_create(1, impl->lines, &gpio->events); if (ret) Loading drivers/gpu/drm/nouveau/core/subdev/gpio/nv10.c +3 −23 Original line number Diff line number Diff line Loading @@ -26,10 +26,6 @@ #include "priv.h" struct nv10_gpio_priv { struct nouveau_gpio base; }; static int nv10_gpio_sense(struct nouveau_gpio *gpio, int line) { Loading Loading @@ -103,29 +99,11 @@ nv10_gpio_intr_mask(struct nouveau_gpio *gpio, u32 type, u32 mask, u32 data) nv_wr32(gpio, 0x001144, inte); } static int nv10_gpio_ctor(struct nouveau_object *parent, struct nouveau_object *engine, struct nouveau_oclass *oclass, void *data, u32 size, struct nouveau_object **pobject) { struct nv10_gpio_priv *priv; int ret; ret = nouveau_gpio_create(parent, engine, oclass, &priv); *pobject = nv_object(priv); if (ret) return ret; priv->base.drive = nv10_gpio_drive; priv->base.sense = nv10_gpio_sense; return 0; } struct nouveau_oclass * nv10_gpio_oclass = &(struct nouveau_gpio_impl) { .base.handle = NV_SUBDEV(GPIO, 0x10), .base.ofuncs = &(struct nouveau_ofuncs) { .ctor = nv10_gpio_ctor, .ctor = _nouveau_gpio_ctor, .dtor = _nouveau_gpio_dtor, .init = _nouveau_gpio_init, .fini = _nouveau_gpio_fini, Loading @@ -133,4 +111,6 @@ nv10_gpio_oclass = &(struct nouveau_gpio_impl) { .lines = 16, .intr_stat = nv10_gpio_intr_stat, .intr_mask = nv10_gpio_intr_mask, .drive = nv10_gpio_drive, .sense = nv10_gpio_sense, }.base; drivers/gpu/drm/nouveau/core/subdev/gpio/nv50.c +8 −29 Original line number Diff line number Diff line Loading @@ -24,15 +24,10 @@ #include "priv.h" struct nv50_gpio_priv { struct nouveau_gpio base; }; static void void nv50_gpio_reset(struct nouveau_gpio *gpio, u8 match) { struct nouveau_bios *bios = nouveau_bios(gpio); struct nv50_gpio_priv *priv = (void *)gpio; u8 ver, len; u16 entry; int ent = -1; Loading @@ -55,7 +50,7 @@ nv50_gpio_reset(struct nouveau_gpio *gpio, u8 match) gpio->set(gpio, 0, func, line, defs); nv_mask(priv, reg, 0x00010001 << lsh, val << lsh); nv_mask(gpio, reg, 0x00010001 << lsh, val << lsh); } } Loading @@ -72,7 +67,7 @@ nv50_gpio_location(int line, u32 *reg, u32 *shift) return 0; } static int int nv50_gpio_drive(struct nouveau_gpio *gpio, int line, int dir, int out) { u32 reg, shift; Loading @@ -84,7 +79,7 @@ nv50_gpio_drive(struct nouveau_gpio *gpio, int line, int dir, int out) return 0; } static int int nv50_gpio_sense(struct nouveau_gpio *gpio, int line) { u32 reg, shift; Loading Loading @@ -116,30 +111,11 @@ nv50_gpio_intr_mask(struct nouveau_gpio *gpio, u32 type, u32 mask, u32 data) nv_wr32(gpio, 0x00e050, inte); } int nv50_gpio_ctor(struct nouveau_object *parent, struct nouveau_object *engine, struct nouveau_oclass *oclass, void *data, u32 size, struct nouveau_object **pobject) { struct nv50_gpio_priv *priv; int ret; ret = nouveau_gpio_create(parent, engine, oclass, &priv); *pobject = nv_object(priv); if (ret) return ret; priv->base.reset = nv50_gpio_reset; priv->base.drive = nv50_gpio_drive; priv->base.sense = nv50_gpio_sense; return 0; } struct nouveau_oclass * nv50_gpio_oclass = &(struct nouveau_gpio_impl) { .base.handle = NV_SUBDEV(GPIO, 0x50), .base.ofuncs = &(struct nouveau_ofuncs) { .ctor = nv50_gpio_ctor, .ctor = _nouveau_gpio_ctor, .dtor = _nouveau_gpio_dtor, .init = _nouveau_gpio_init, .fini = _nouveau_gpio_fini, Loading @@ -147,4 +123,7 @@ nv50_gpio_oclass = &(struct nouveau_gpio_impl) { .lines = 16, .intr_stat = nv50_gpio_intr_stat, .intr_mask = nv50_gpio_intr_mask, .drive = nv50_gpio_drive, .sense = nv50_gpio_sense, .reset = nv50_gpio_reset, }.base; drivers/gpu/drm/nouveau/core/subdev/gpio/nv92.c +4 −1 Original line number Diff line number Diff line Loading @@ -60,7 +60,7 @@ struct nouveau_oclass * nv92_gpio_oclass = &(struct nouveau_gpio_impl) { .base.handle = NV_SUBDEV(GPIO, 0x92), .base.ofuncs = &(struct nouveau_ofuncs) { .ctor = nv50_gpio_ctor, .ctor = _nouveau_gpio_ctor, .dtor = _nouveau_gpio_dtor, .init = _nouveau_gpio_init, .fini = _nouveau_gpio_fini, Loading @@ -68,4 +68,7 @@ nv92_gpio_oclass = &(struct nouveau_gpio_impl) { .lines = 32, .intr_stat = nv92_gpio_intr_stat, .intr_mask = nv92_gpio_intr_mask, .drive = nv50_gpio_drive, .sense = nv50_gpio_sense, .reset = nv50_gpio_reset, }.base; Loading
drivers/gpu/drm/nouveau/core/include/subdev/gpio.h +0 −5 Original line number Diff line number Diff line Loading @@ -13,12 +13,7 @@ struct nouveau_gpio { struct nouveau_event *events; /* hardware interfaces */ void (*reset)(struct nouveau_gpio *, u8 func); int (*drive)(struct nouveau_gpio *, int line, int dir, int out); int (*sense)(struct nouveau_gpio *, int line); /* software interfaces */ int (*find)(struct nouveau_gpio *, int idx, u8 tag, u8 line, struct dcb_gpio_func *); int (*set)(struct nouveau_gpio *, int idx, u8 tag, u8 line, int state); Loading
drivers/gpu/drm/nouveau/core/subdev/gpio/base.c +5 −2 Original line number Diff line number Diff line Loading @@ -31,13 +31,15 @@ static int nouveau_gpio_drive(struct nouveau_gpio *gpio, int idx, int line, int dir, int out) { return gpio->drive ? gpio->drive(gpio, line, dir, out) : -ENODEV; const struct nouveau_gpio_impl *impl = (void *)nv_object(gpio)->oclass; return impl->drive ? impl->drive(gpio, line, dir, out) : -ENODEV; } static int nouveau_gpio_sense(struct nouveau_gpio *gpio, int idx, int line) { return gpio->sense ? gpio->sense(gpio, line) : -ENODEV; const struct nouveau_gpio_impl *impl = (void *)nv_object(gpio)->oclass; return impl->sense ? impl->sense(gpio, line) : -ENODEV; } static int Loading Loading @@ -201,6 +203,7 @@ nouveau_gpio_create_(struct nouveau_object *parent, gpio->find = nouveau_gpio_find; gpio->set = nouveau_gpio_set; gpio->get = nouveau_gpio_get; gpio->reset = impl->reset; ret = nouveau_event_create(1, impl->lines, &gpio->events); if (ret) Loading
drivers/gpu/drm/nouveau/core/subdev/gpio/nv10.c +3 −23 Original line number Diff line number Diff line Loading @@ -26,10 +26,6 @@ #include "priv.h" struct nv10_gpio_priv { struct nouveau_gpio base; }; static int nv10_gpio_sense(struct nouveau_gpio *gpio, int line) { Loading Loading @@ -103,29 +99,11 @@ nv10_gpio_intr_mask(struct nouveau_gpio *gpio, u32 type, u32 mask, u32 data) nv_wr32(gpio, 0x001144, inte); } static int nv10_gpio_ctor(struct nouveau_object *parent, struct nouveau_object *engine, struct nouveau_oclass *oclass, void *data, u32 size, struct nouveau_object **pobject) { struct nv10_gpio_priv *priv; int ret; ret = nouveau_gpio_create(parent, engine, oclass, &priv); *pobject = nv_object(priv); if (ret) return ret; priv->base.drive = nv10_gpio_drive; priv->base.sense = nv10_gpio_sense; return 0; } struct nouveau_oclass * nv10_gpio_oclass = &(struct nouveau_gpio_impl) { .base.handle = NV_SUBDEV(GPIO, 0x10), .base.ofuncs = &(struct nouveau_ofuncs) { .ctor = nv10_gpio_ctor, .ctor = _nouveau_gpio_ctor, .dtor = _nouveau_gpio_dtor, .init = _nouveau_gpio_init, .fini = _nouveau_gpio_fini, Loading @@ -133,4 +111,6 @@ nv10_gpio_oclass = &(struct nouveau_gpio_impl) { .lines = 16, .intr_stat = nv10_gpio_intr_stat, .intr_mask = nv10_gpio_intr_mask, .drive = nv10_gpio_drive, .sense = nv10_gpio_sense, }.base;
drivers/gpu/drm/nouveau/core/subdev/gpio/nv50.c +8 −29 Original line number Diff line number Diff line Loading @@ -24,15 +24,10 @@ #include "priv.h" struct nv50_gpio_priv { struct nouveau_gpio base; }; static void void nv50_gpio_reset(struct nouveau_gpio *gpio, u8 match) { struct nouveau_bios *bios = nouveau_bios(gpio); struct nv50_gpio_priv *priv = (void *)gpio; u8 ver, len; u16 entry; int ent = -1; Loading @@ -55,7 +50,7 @@ nv50_gpio_reset(struct nouveau_gpio *gpio, u8 match) gpio->set(gpio, 0, func, line, defs); nv_mask(priv, reg, 0x00010001 << lsh, val << lsh); nv_mask(gpio, reg, 0x00010001 << lsh, val << lsh); } } Loading @@ -72,7 +67,7 @@ nv50_gpio_location(int line, u32 *reg, u32 *shift) return 0; } static int int nv50_gpio_drive(struct nouveau_gpio *gpio, int line, int dir, int out) { u32 reg, shift; Loading @@ -84,7 +79,7 @@ nv50_gpio_drive(struct nouveau_gpio *gpio, int line, int dir, int out) return 0; } static int int nv50_gpio_sense(struct nouveau_gpio *gpio, int line) { u32 reg, shift; Loading Loading @@ -116,30 +111,11 @@ nv50_gpio_intr_mask(struct nouveau_gpio *gpio, u32 type, u32 mask, u32 data) nv_wr32(gpio, 0x00e050, inte); } int nv50_gpio_ctor(struct nouveau_object *parent, struct nouveau_object *engine, struct nouveau_oclass *oclass, void *data, u32 size, struct nouveau_object **pobject) { struct nv50_gpio_priv *priv; int ret; ret = nouveau_gpio_create(parent, engine, oclass, &priv); *pobject = nv_object(priv); if (ret) return ret; priv->base.reset = nv50_gpio_reset; priv->base.drive = nv50_gpio_drive; priv->base.sense = nv50_gpio_sense; return 0; } struct nouveau_oclass * nv50_gpio_oclass = &(struct nouveau_gpio_impl) { .base.handle = NV_SUBDEV(GPIO, 0x50), .base.ofuncs = &(struct nouveau_ofuncs) { .ctor = nv50_gpio_ctor, .ctor = _nouveau_gpio_ctor, .dtor = _nouveau_gpio_dtor, .init = _nouveau_gpio_init, .fini = _nouveau_gpio_fini, Loading @@ -147,4 +123,7 @@ nv50_gpio_oclass = &(struct nouveau_gpio_impl) { .lines = 16, .intr_stat = nv50_gpio_intr_stat, .intr_mask = nv50_gpio_intr_mask, .drive = nv50_gpio_drive, .sense = nv50_gpio_sense, .reset = nv50_gpio_reset, }.base;
drivers/gpu/drm/nouveau/core/subdev/gpio/nv92.c +4 −1 Original line number Diff line number Diff line Loading @@ -60,7 +60,7 @@ struct nouveau_oclass * nv92_gpio_oclass = &(struct nouveau_gpio_impl) { .base.handle = NV_SUBDEV(GPIO, 0x92), .base.ofuncs = &(struct nouveau_ofuncs) { .ctor = nv50_gpio_ctor, .ctor = _nouveau_gpio_ctor, .dtor = _nouveau_gpio_dtor, .init = _nouveau_gpio_init, .fini = _nouveau_gpio_fini, Loading @@ -68,4 +68,7 @@ nv92_gpio_oclass = &(struct nouveau_gpio_impl) { .lines = 32, .intr_stat = nv92_gpio_intr_stat, .intr_mask = nv92_gpio_intr_mask, .drive = nv50_gpio_drive, .sense = nv50_gpio_sense, .reset = nv50_gpio_reset, }.base;