search for: nvkm_gpio

Displaying 20 results from an estimated 36 matches for "nvkm_gpio".

2017 Apr 02
1
[PATCH] drm/nouveau: enable interrupts on cards with 32 intr lines
...tion(-) diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/gpio/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/gpio/base.c index 77c649723ad7..4a57defc99b3 100644 --- a/drivers/gpu/drm/nouveau/nvkm/subdev/gpio/base.c +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/gpio/base.c @@ -164,7 +164,7 @@ static int nvkm_gpio_fini(struct nvkm_subdev *subdev, bool suspend) { struct nvkm_gpio *gpio = nvkm_gpio(subdev); - u32 mask = (1 << gpio->func->lines) - 1; + u32 mask = (1ULL << gpio->func->lines) - 1; gpio->func->intr_mask(gpio, NVKM_GPIO_TOGGLED, mask, 0); gpio->func->int...
2019 Jul 15
2
[PATCH v2 2/4] gpio: fail if gpu external power is missing
.../base.c > +++ b/drm/nouveau/nvkm/subdev/gpio/base.c > @@ -182,12 +182,35 @@ static const struct dmi_system_id gpio_reset_ids[] = { > { } > }; > > +static enum dcb_gpio_func_name power_checks[] = { > + DCB_GPIO_EXT_POWER_LOW, > +}; > + > static int > nvkm_gpio_init(struct nvkm_subdev *subdev) > { > struct nvkm_gpio *gpio = nvkm_gpio(subdev); > + struct dcb_gpio_func func; > + int ret; > + int i; > + > if (dmi_check_system(gpio_reset_ids)) > nvkm_gpio_reset(gpio, DCB_GPIO_UNUSED);...
2019 Jul 15
5
[PATCH v2 0/4] Refuse to load if power cables are not connected
Trello: https://trello.com/c/admzDRvd/50-reduce-performance-refuse-to-boot-if-not-all-the-power-connectors-are-plugged Fixed commit messages. Mark Menzynski (4): bios/gpio: sort gpios by values gpio: fail if gpu external power is missing gpio: check the gpio function 16 in the power check as well gpio: check function 76 in the power check as well
2019 Jul 11
0
[PATCH 2/4] gpio: checking if gpu power cable is connected
...ndex 1399d923..c4685807 100644 --- a/drm/nouveau/nvkm/subdev/gpio/base.c +++ b/drm/nouveau/nvkm/subdev/gpio/base.c @@ -182,12 +182,35 @@ static const struct dmi_system_id gpio_reset_ids[] = { { } }; +static enum dcb_gpio_func_name power_checks[] = { + DCB_GPIO_EXT_POWER_LOW, +}; + static int nvkm_gpio_init(struct nvkm_subdev *subdev) { struct nvkm_gpio *gpio = nvkm_gpio(subdev); + struct dcb_gpio_func func; + int ret; + int i; + if (dmi_check_system(gpio_reset_ids)) nvkm_gpio_reset(gpio, DCB_GPIO_UNUSED); + + for (i = 0; i < ARRAY_SIZE(power_checks); ++i) { + ret = nvkm_gpio_find(gpi...
2019 Jul 15
0
[PATCH v2 2/4] gpio: fail if gpu external power is missing
...ndex 1399d923..c4685807 100644 --- a/drm/nouveau/nvkm/subdev/gpio/base.c +++ b/drm/nouveau/nvkm/subdev/gpio/base.c @@ -182,12 +182,35 @@ static const struct dmi_system_id gpio_reset_ids[] = { { } }; +static enum dcb_gpio_func_name power_checks[] = { + DCB_GPIO_EXT_POWER_LOW, +}; + static int nvkm_gpio_init(struct nvkm_subdev *subdev) { struct nvkm_gpio *gpio = nvkm_gpio(subdev); + struct dcb_gpio_func func; + int ret; + int i; + if (dmi_check_system(gpio_reset_ids)) nvkm_gpio_reset(gpio, DCB_GPIO_UNUSED); + + for (i = 0; i < ARRAY_SIZE(power_checks); ++i) { + ret = nvkm_gpio_find(gpi...
2019 Jul 16
0
[PATCH v2 2/4] gpio: fail if gpu external power is missing
...se.c > > @@ -182,12 +182,35 @@ static const struct dmi_system_id gpio_reset_ids[] = { > > { } > > }; > > > > +static enum dcb_gpio_func_name power_checks[] = { > > + DCB_GPIO_EXT_POWER_LOW, > > +}; > > + > > static int > > nvkm_gpio_init(struct nvkm_subdev *subdev) > > { > > struct nvkm_gpio *gpio = nvkm_gpio(subdev); > > + struct dcb_gpio_func func; > > + int ret; > > + int i; > > + > > if (dmi_check_system(gpio_reset_ids)) > >...
2018 Aug 30
2
[PATCH v2] drm/nouveau: Fix nouveau_connector_ddc_detect()
...rs/gpu/drm/nouveau/nouveau_connector.c +++ b/drivers/gpu/drm/nouveau/nouveau_connector.c @@ -414,9 +414,10 @@ nouveau_connector_ddc_detect(struct drm_connector *connector) struct nouveau_connector *nv_connector = nouveau_connector(connector); struct nouveau_drm *drm = nouveau_drm(dev); struct nvkm_gpio *gpio = nvxx_gpio(&drm->client.device); - struct nouveau_encoder *nv_encoder = NULL; + struct nouveau_encoder *nv_encoder = NULL, *found = NULL; struct drm_encoder *encoder; - int i, panel = -ENODEV; + int i, ret, panel = -ENODEV; + bool switcheroo_ddc = false; /* eDP panels need power...
2019 Jul 18
5
[PATCH v3 0/4] Refuse to load if power cable are not connected
Added config override for power checks. Mark Menzynski (4): bios/gpio: sort gpios by values gpio: fail if gpu external power is missing gpio: check the gpio function 16 in the power check as well gpio: check function 76 in the power check as well drm/nouveau/include/nvkm/subdev/bios/gpio.h | 5 +++- drm/nouveau/nvkm/subdev/gpio/base.c | 32 +++++++++++++++++++++ 2 files
2018 Jun 30
2
[PATCH v2 5/9] drm/nouveau: Use drm_connector_for_each_possible_encoder()
...struct drm_device *dev = connector->dev; 1a1841d30 Ben Skeggs 2012-12-10 412 struct nouveau_connector *nv_connector = nouveau_connector(connector); 77145f1cb Ben Skeggs 2012-07-31 413 struct nouveau_drm *drm = nouveau_drm(dev); 1167c6bc5 Ben Skeggs 2016-05-18 414 struct nvkm_gpio *gpio = nvxx_gpio(&drm->client.device); 8777c5c11 Ben Skeggs 2014-06-06 415 struct nouveau_encoder *nv_encoder; 6d385c0aa Rob Clark 2014-07-17 416 struct drm_encoder *encoder; 1a1841d30 Ben Skeggs 2012-12-10 417 int i, panel = -ENODEV; 1a1841d30 Ben Skeggs 2012-...
2016 Feb 19
0
[PATCH v2 1/4] subdev/iccsense: add new subdev for power sensors
...-- a/drm/nouveau/include/nvkm/core/device.h +++ b/drm/nouveau/include/nvkm/core/device.h @@ -22,6 +22,7 @@ enum nvkm_devidx { NVKM_SUBDEV_BAR, NVKM_SUBDEV_PMU, NVKM_SUBDEV_VOLT, + NVKM_SUBDEV_ICCSENSE, NVKM_SUBDEV_THERM, NVKM_SUBDEV_CLK, @@ -109,6 +110,7 @@ struct nvkm_device { struct nvkm_gpio *gpio; struct nvkm_i2c *i2c; struct nvkm_subdev *ibus; + struct nvkm_iccsense *iccsense; struct nvkm_instmem *imem; struct nvkm_ltc *ltc; struct nvkm_mc *mc; @@ -164,46 +166,47 @@ struct nvkm_device_quirk { struct nvkm_device_chip { const char *name; - int (*bar )(struct nvkm_devi...
2016 Feb 20
0
[PATCH v4 1/6] subdev/iccsense: add new subdev for power sensors
...-- a/drm/nouveau/include/nvkm/core/device.h +++ b/drm/nouveau/include/nvkm/core/device.h @@ -22,6 +22,7 @@ enum nvkm_devidx { NVKM_SUBDEV_BAR, NVKM_SUBDEV_PMU, NVKM_SUBDEV_VOLT, + NVKM_SUBDEV_ICCSENSE, NVKM_SUBDEV_THERM, NVKM_SUBDEV_CLK, @@ -109,6 +110,7 @@ struct nvkm_device { struct nvkm_gpio *gpio; struct nvkm_i2c *i2c; struct nvkm_subdev *ibus; + struct nvkm_iccsense *iccsense; struct nvkm_instmem *imem; struct nvkm_ltc *ltc; struct nvkm_mc *mc; @@ -164,46 +166,47 @@ struct nvkm_device_quirk { struct nvkm_device_chip { const char *name; - int (*bar )(struct nvkm_devi...
2019 Jul 11
6
[PATCH 0/4] Refuse to load if the power cable are not connected
trello card: https://trello.com/c/admzDRvd/50-reduce-performance-refuse-to-boot-if-not-all-the-power-connectors-are-plugged Mark Menzynski (4): moved gpio so it is sorted by values gpio: checking if gpu power cable is connected gpio: added power check for another GPIO gpio: added power check for another GPIO drm/nouveau/include/nvkm/subdev/bios/gpio.h | 5 ++++-
2015 Sep 29
10
All-round reclocking improvements
In bulletpoints: - Add some support for G94 and G96 reclocking. Has been tested on literally two cards, which is hardly adequate as "full coverage". On the other hand, the changes were small enough to make me confident this might work for others as well. - Fix NV50 wait for VBLANK when no monitor is plugged in. - Voltage related inprovements for GT21x. - Slightly improve Keplers
2020 Jul 27
0
[PATCH] drm/nouveau: add config NvForceGpioReset
...90c2a1bf3d..1b7535805e71 100644 --- a/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c +++ b/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c @@ -2836,6 +2836,11 @@ nvkm_device_preinit(struct nvkm_device *device) if (ret) goto fail; + if (device->devinit->force_gpio_reset) { + struct nvkm_gpio *gpio = device->devinit->subdev.device->gpio; + nvkm_gpio_reset(gpio, DCB_GPIO_UNUSED); + } + time = ktime_to_us(ktime_get()) - time; nvdev_trace(device, "preinit completed in %lldus\n", time); return 0; diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/base.c b/dri...
2018 Aug 23
0
[PATCH] drm/nouveau: Fix nouveau_connector_ddc_detect()
...ers/gpu/drm/nouveau/nouveau_connector.c +++ b/drivers/gpu/drm/nouveau/nouveau_connector.c @@ -414,9 +414,9 @@ nouveau_connector_ddc_detect(struct drm_connector *connector) struct nouveau_connector *nv_connector = nouveau_connector(connector); struct nouveau_drm *drm = nouveau_drm(dev); struct nvkm_gpio *gpio = nvxx_gpio(&drm->client.device); - struct nouveau_encoder *nv_encoder = NULL; + struct nouveau_encoder *nv_encoder = NULL, *found = NULL; struct drm_encoder *encoder; - int i, panel = -ENODEV; + int i, ret, panel = -ENODEV; /* eDP panels need powering on by us (if the VBIOS does...
2018 Jun 28
4
[PATCH v2 0/9] drm: Third attempt at fixing the fb-helper .best_encoder() mess
From: Ville Syrjälä <ville.syrjala at linux.intel.com> Changes from the previous version mainly involve Danoie's suggestion of hiding the drm_encoder_find() in the iterator macro. I also polished the msm and tilcdc cases a bit more with another small helper. Cc: Alex Deucher <alexander.deucher at amd.com> Cc: amd-gfx at lists.freedesktop.org Cc: Ben Skeggs <bskeggs at
2016 Sep 25
0
[PATCH 2/3] drm/nouveau: mark symbols static where possible
...diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/gpio/gk104.c b/drivers/gpu/drm/nouveau/nvkm/subdev/gpio/gk104.c index 3f45afd1..2ead515 100644 --- a/drivers/gpu/drm/nouveau/nvkm/subdev/gpio/gk104.c +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/gpio/gk104.c @@ -37,7 +37,7 @@ gk104_gpio_intr_stat(struct nvkm_gpio *gpio, u32 *hi, u32 *lo) nvkm_wr32(device, 0x00dc80, intr1); } -void +static void gk104_gpio_intr_mask(struct nvkm_gpio *gpio, u32 type, u32 mask, u32 data) { struct nvkm_device *device = gpio->subdev.device; diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/secboot/gm200.c b/drivers/gpu...
2018 Aug 30
0
[PATCH v2] drm/nouveau: Fix nouveau_connector_ddc_detect()
...u_connector.c > +++ b/drivers/gpu/drm/nouveau/nouveau_connector.c > @@ -414,9 +414,10 @@ nouveau_connector_ddc_detect(struct drm_connector *connector) > struct nouveau_connector *nv_connector = nouveau_connector(connector); > struct nouveau_drm *drm = nouveau_drm(dev); > struct nvkm_gpio *gpio = nvxx_gpio(&drm->client.device); > - struct nouveau_encoder *nv_encoder = NULL; > + struct nouveau_encoder *nv_encoder = NULL, *found = NULL; > struct drm_encoder *encoder; > - int i, panel = -ENODEV; > + int i, ret, panel = -ENODEV; > + bool switcheroo_ddc = false...
2018 Jul 02
0
[PATCH v2 5/9] drm/nouveau: Use drm_connector_for_each_possible_encoder()
...vice *dev = connector->dev; > 1a1841d30 Ben Skeggs 2012-12-10 412 struct nouveau_connector *nv_connector = nouveau_connector(connector); > 77145f1cb Ben Skeggs 2012-07-31 413 struct nouveau_drm *drm = nouveau_drm(dev); > 1167c6bc5 Ben Skeggs 2016-05-18 414 struct nvkm_gpio *gpio = nvxx_gpio(&drm->client.device); > 8777c5c11 Ben Skeggs 2014-06-06 415 struct nouveau_encoder *nv_encoder; > 6d385c0aa Rob Clark 2014-07-17 416 struct drm_encoder *encoder; > 1a1841d30 Ben Skeggs 2012-12-10 417 int i, panel = -ENODEV; > 1a1841d30 B...
2016 Oct 24
1
[PATCH v2 1/2] drm/nouveau: add missing header dependencies
We get a few warnings when building kernel with W=1: drivers/gpu/drm/nouveau/nvkm/core/firmware.c:34:1: warning: no previous prototype for 'nvkm_firmware_get' [-Wmissing-prototypes] drivers/gpu/drm/nouveau/nvkm/core/firmware.c:58:1: warning: no previous prototype for 'nvkm_firmware_put' [-Wmissing-prototypes] drivers/gpu/drm/nouveau/nvkm/subdev/fb/sddr3.c:69:1: warning: no previous