From: Danilo Krummrich <dakr@redhat.com>
To: Ben Skeggs <bskeggs@nvidia.com>
Cc: nouveau@lists.freedesktop.org
Subject: Re: [PATCH v2 27/37] drm/nouveau: move nvxx_* definitions to nouveau_drv.h
Date: Fri, 19 Jul 2024 14:28:37 +0200 [thread overview]
Message-ID: <Zppb9T40lRoYCS4v@pollux> (raw)
In-Reply-To: <58b5742f-36f5-4108-8a47-a52f3f0ba298@nvidia.com>
On Thu, Jul 18, 2024 at 05:58:20PM +1000, Ben Skeggs wrote:
> On 10/7/24 02:31, Danilo Krummrich wrote:
>
> > On Fri, Jul 05, 2024 at 04:37:11AM +1000, Ben Skeggs wrote:
> > > These are some dodgy "convenience" macros for the DRM driver to peek
> > > into NVKM state. They're still used in a few places, but don't belong
> > > in nvif/device.h in any case.
> > >
> > > Move them to nouveau_drv.h, and modify callers to pass a nouveau_drm
> > > instead of an nvif_device.
> > >
> > > v2:
> > > - use drm->nvkm pointer for nvxx_*() macros, removing some void*
> > >
> > > Signed-off-by: Ben Skeggs <bskeggs@nvidia.com>
> > > ---
> > > drivers/gpu/drm/nouveau/dispnv04/crtc.c | 4 +-
> > > drivers/gpu/drm/nouveau/dispnv04/dac.c | 2 +-
> > > drivers/gpu/drm/nouveau/dispnv04/dfp.c | 2 +-
> > > drivers/gpu/drm/nouveau/dispnv04/disp.c | 2 +-
> > > drivers/gpu/drm/nouveau/dispnv04/disp.h | 2 +-
> > > drivers/gpu/drm/nouveau/dispnv04/hw.c | 9 ++--
> > > drivers/gpu/drm/nouveau/dispnv04/tvnv04.c | 4 +-
> > > drivers/gpu/drm/nouveau/dispnv04/tvnv17.c | 6 +--
> > > drivers/gpu/drm/nouveau/dispnv50/disp.c | 6 +--
> > > drivers/gpu/drm/nouveau/include/nvif/device.h | 33 -------------
> > > drivers/gpu/drm/nouveau/include/nvif/object.h | 2 +-
> > > drivers/gpu/drm/nouveau/nouveau_abi16.c | 4 +-
> > > drivers/gpu/drm/nouveau/nouveau_bios.c | 4 +-
> > > drivers/gpu/drm/nouveau/nouveau_bios.h | 1 +
> > > drivers/gpu/drm/nouveau/nouveau_bo.c | 8 ++--
> > > drivers/gpu/drm/nouveau/nouveau_chan.c | 3 +-
> > > drivers/gpu/drm/nouveau/nouveau_drm.c | 3 +-
> > > drivers/gpu/drm/nouveau/nouveau_drv.h | 27 +++++++++++
> > > drivers/gpu/drm/nouveau/nouveau_hwmon.c | 46 +++++++++----------
> > > drivers/gpu/drm/nouveau/nouveau_led.c | 2 +-
> > > drivers/gpu/drm/nouveau/nouveau_ttm.c | 4 +-
> > > 21 files changed, 83 insertions(+), 91 deletions(-)
> > >
> > > diff --git a/drivers/gpu/drm/nouveau/dispnv04/crtc.c b/drivers/gpu/drm/nouveau/dispnv04/crtc.c
> > > index 4310ad71870b..e5067d5a4801 100644
> > > --- a/drivers/gpu/drm/nouveau/dispnv04/crtc.c
> > > +++ b/drivers/gpu/drm/nouveau/dispnv04/crtc.c
> > > @@ -118,8 +118,8 @@ static void nv_crtc_calc_state_ext(struct drm_crtc *crtc, struct drm_display_mod
> > > {
> > > struct drm_device *dev = crtc->dev;
> > > struct nouveau_drm *drm = nouveau_drm(dev);
> > > - struct nvkm_bios *bios = nvxx_bios(&drm->client.device);
> > > - struct nvkm_clk *clk = nvxx_clk(&drm->client.device);
> > > + struct nvkm_bios *bios = nvxx_bios(drm);
> > > + struct nvkm_clk *clk = nvxx_clk(drm);
> > > struct nouveau_crtc *nv_crtc = nouveau_crtc(crtc);
> > > struct nv04_mode_state *state = &nv04_display(dev)->mode_reg;
> > > struct nv04_crtc_reg *regp = &state->crtc_reg[nv_crtc->index];
> > > diff --git a/drivers/gpu/drm/nouveau/dispnv04/dac.c b/drivers/gpu/drm/nouveau/dispnv04/dac.c
> > > index d6b8e0cce2ac..2e12bf136607 100644
> > > --- a/drivers/gpu/drm/nouveau/dispnv04/dac.c
> > > +++ b/drivers/gpu/drm/nouveau/dispnv04/dac.c
> > > @@ -237,7 +237,7 @@ uint32_t nv17_dac_sample_load(struct drm_encoder *encoder)
> > > struct drm_device *dev = encoder->dev;
> > > struct nouveau_drm *drm = nouveau_drm(dev);
> > > struct nvif_object *device = &nouveau_drm(dev)->client.device.object;
> > > - struct nvkm_gpio *gpio = nvxx_gpio(&drm->client.device);
> > > + struct nvkm_gpio *gpio = nvxx_gpio(drm);
> > > struct dcb_output *dcb = nouveau_encoder(encoder)->dcb;
> > > uint32_t sample, testval, regoffset = nv04_dac_output_offset(encoder);
> > > uint32_t saved_powerctrl_2 = 0, saved_powerctrl_4 = 0, saved_routput,
> > > diff --git a/drivers/gpu/drm/nouveau/dispnv04/dfp.c b/drivers/gpu/drm/nouveau/dispnv04/dfp.c
> > > index d5b129dc623b..504c421aa176 100644
> > > --- a/drivers/gpu/drm/nouveau/dispnv04/dfp.c
> > > +++ b/drivers/gpu/drm/nouveau/dispnv04/dfp.c
> > > @@ -626,7 +626,7 @@ static void nv04_tmds_slave_init(struct drm_encoder *encoder)
> > > struct drm_device *dev = encoder->dev;
> > > struct dcb_output *dcb = nouveau_encoder(encoder)->dcb;
> > > struct nouveau_drm *drm = nouveau_drm(dev);
> > > - struct nvkm_i2c *i2c = nvxx_i2c(&drm->client.device);
> > > + struct nvkm_i2c *i2c = nvxx_i2c(drm);
> > > struct nvkm_i2c_bus *bus = nvkm_i2c_bus_find(i2c, NVKM_I2C_BUS_PRI);
> > > struct nvkm_i2c_bus_probe info[] = {
> > > {
> > > diff --git a/drivers/gpu/drm/nouveau/dispnv04/disp.c b/drivers/gpu/drm/nouveau/dispnv04/disp.c
> > > index e8b27bb135e7..e563a160571a 100644
> > > --- a/drivers/gpu/drm/nouveau/dispnv04/disp.c
> > > +++ b/drivers/gpu/drm/nouveau/dispnv04/disp.c
> > > @@ -211,7 +211,7 @@ int
> > > nv04_display_create(struct drm_device *dev)
> > > {
> > > struct nouveau_drm *drm = nouveau_drm(dev);
> > > - struct nvkm_i2c *i2c = nvxx_i2c(&drm->client.device);
> > > + struct nvkm_i2c *i2c = nvxx_i2c(drm);
> > > struct dcb_table *dcb = &drm->vbios.dcb;
> > > struct drm_connector *connector, *ct;
> > > struct drm_encoder *encoder;
> > > diff --git a/drivers/gpu/drm/nouveau/dispnv04/disp.h b/drivers/gpu/drm/nouveau/dispnv04/disp.h
> > > index 11a6663758ec..85ec0f534392 100644
> > > --- a/drivers/gpu/drm/nouveau/dispnv04/disp.h
> > > +++ b/drivers/gpu/drm/nouveau/dispnv04/disp.h
> > > @@ -176,7 +176,7 @@ static inline void
> > > nouveau_bios_run_init_table(struct drm_device *dev, u16 table,
> > > struct dcb_output *outp, int crtc)
> > > {
> > > - nvbios_init(&nvxx_bios(&nouveau_drm(dev)->client.device)->subdev, table,
> > > + nvbios_init(&nvxx_bios(nouveau_drm(dev))->subdev, table,
> > > init.outp = outp;
> > > init.head = crtc;
> > > );
> > > diff --git a/drivers/gpu/drm/nouveau/dispnv04/hw.c b/drivers/gpu/drm/nouveau/dispnv04/hw.c
> > > index f7d35657aa64..8b376f9c8746 100644
> > > --- a/drivers/gpu/drm/nouveau/dispnv04/hw.c
> > > +++ b/drivers/gpu/drm/nouveau/dispnv04/hw.c
> > > @@ -166,7 +166,7 @@ nouveau_hw_get_pllvals(struct drm_device *dev, enum nvbios_pll_type plltype,
> > > {
> > > struct nouveau_drm *drm = nouveau_drm(dev);
> > > struct nvif_object *device = &drm->client.device.object;
> > > - struct nvkm_bios *bios = nvxx_bios(&drm->client.device);
> > > + struct nvkm_bios *bios = nvxx_bios(drm);
> > > uint32_t reg1, pll1, pll2 = 0;
> > > struct nvbios_pll pll_lim;
> > > int ret;
> > > @@ -258,9 +258,8 @@ nouveau_hw_fix_bad_vpll(struct drm_device *dev, int head)
> > > */
> > > struct nouveau_drm *drm = nouveau_drm(dev);
> > > - struct nvif_device *device = &drm->client.device;
> > > - struct nvkm_clk *clk = nvxx_clk(device);
> > > - struct nvkm_bios *bios = nvxx_bios(device);
> > > + struct nvkm_clk *clk = nvxx_clk(drm);
> > > + struct nvkm_bios *bios = nvxx_bios(drm);
> > > struct nvbios_pll pll_lim;
> > > struct nvkm_pll_vals pv;
> > > enum nvbios_pll_type pll = head ? PLL_VPLL1 : PLL_VPLL0;
> > > @@ -470,7 +469,7 @@ nv_load_state_ramdac(struct drm_device *dev, int head,
> > > struct nv04_mode_state *state)
> > > {
> > > struct nouveau_drm *drm = nouveau_drm(dev);
> > > - struct nvkm_clk *clk = nvxx_clk(&drm->client.device);
> > > + struct nvkm_clk *clk = nvxx_clk(drm);
> > > struct nv04_crtc_reg *regp = &state->crtc_reg[head];
> > > uint32_t pllreg = head ? NV_RAMDAC_VPLL2 : NV_PRAMDAC_VPLL_COEFF;
> > > int i;
> > > diff --git a/drivers/gpu/drm/nouveau/dispnv04/tvnv04.c b/drivers/gpu/drm/nouveau/dispnv04/tvnv04.c
> > > index de3ea731d6e6..d3014027a812 100644
> > > --- a/drivers/gpu/drm/nouveau/dispnv04/tvnv04.c
> > > +++ b/drivers/gpu/drm/nouveau/dispnv04/tvnv04.c
> > > @@ -53,7 +53,7 @@ static struct nvkm_i2c_bus_probe nv04_tv_encoder_info[] = {
> > > int nv04_tv_identify(struct drm_device *dev, int i2c_index)
> > > {
> > > struct nouveau_drm *drm = nouveau_drm(dev);
> > > - struct nvkm_i2c *i2c = nvxx_i2c(&drm->client.device);
> > > + struct nvkm_i2c *i2c = nvxx_i2c(drm);
> > > struct nvkm_i2c_bus *bus = nvkm_i2c_bus_find(i2c, i2c_index);
> > > if (bus) {
> > > return nvkm_i2c_bus_probe(bus, "TV encoder",
> > > @@ -205,7 +205,7 @@ nv04_tv_create(struct drm_connector *connector, struct dcb_output *entry)
> > > struct drm_encoder *encoder;
> > > struct drm_device *dev = connector->dev;
> > > struct nouveau_drm *drm = nouveau_drm(dev);
> > > - struct nvkm_i2c *i2c = nvxx_i2c(&drm->client.device);
> > > + struct nvkm_i2c *i2c = nvxx_i2c(drm);
> > > struct nvkm_i2c_bus *bus = nvkm_i2c_bus_find(i2c, entry->i2c_index);
> > > int type, ret;
> > > diff --git a/drivers/gpu/drm/nouveau/dispnv04/tvnv17.c b/drivers/gpu/drm/nouveau/dispnv04/tvnv17.c
> > > index 670c9739e5e1..c11f58033018 100644
> > > --- a/drivers/gpu/drm/nouveau/dispnv04/tvnv17.c
> > > +++ b/drivers/gpu/drm/nouveau/dispnv04/tvnv17.c
> > > @@ -47,7 +47,7 @@ static uint32_t nv42_tv_sample_load(struct drm_encoder *encoder)
> > > {
> > > struct drm_device *dev = encoder->dev;
> > > struct nouveau_drm *drm = nouveau_drm(dev);
> > > - struct nvkm_gpio *gpio = nvxx_gpio(&drm->client.device);
> > > + struct nvkm_gpio *gpio = nvxx_gpio(drm);
> > > uint32_t testval, regoffset = nv04_dac_output_offset(encoder);
> > > uint32_t gpio0, gpio1, fp_htotal, fp_hsync_start, fp_hsync_end,
> > > fp_control, test_ctrl, dacclk, ctv_14, ctv_1c, ctv_6c;
> > > @@ -131,7 +131,7 @@ static bool
> > > get_tv_detect_quirks(struct drm_device *dev, uint32_t *pin_mask)
> > > {
> > > struct nouveau_drm *drm = nouveau_drm(dev);
> > > - struct nvkm_device *device = nvxx_device(&drm->client.device);
> > > + struct nvkm_device *device = nvxx_device(drm);
> > > if (device->quirk && device->quirk->tv_pin_mask) {
> > > *pin_mask = device->quirk->tv_pin_mask;
> > > @@ -363,7 +363,7 @@ static void nv17_tv_dpms(struct drm_encoder *encoder, int mode)
> > > {
> > > struct drm_device *dev = encoder->dev;
> > > struct nouveau_drm *drm = nouveau_drm(dev);
> > > - struct nvkm_gpio *gpio = nvxx_gpio(&drm->client.device);
> > > + struct nvkm_gpio *gpio = nvxx_gpio(drm);
> > > struct nv17_tv_state *regs = &to_tv_enc(encoder)->state;
> > > struct nv17_tv_norm_params *tv_norm = get_tv_norm(encoder);
> > > diff --git a/drivers/gpu/drm/nouveau/dispnv50/disp.c b/drivers/gpu/drm/nouveau/dispnv50/disp.c
> > > index 42375f757d7c..80803346b620 100644
> > > --- a/drivers/gpu/drm/nouveau/dispnv50/disp.c
> > > +++ b/drivers/gpu/drm/nouveau/dispnv50/disp.c
> > > @@ -561,7 +561,7 @@ nv50_dac_create(struct nouveau_encoder *nv_encoder)
> > > {
> > > struct drm_connector *connector = &nv_encoder->conn->base;
> > > struct nouveau_drm *drm = nouveau_drm(connector->dev);
> > > - struct nvkm_i2c *i2c = nvxx_i2c(&drm->client.device);
> > > + struct nvkm_i2c *i2c = nvxx_i2c(drm);
> > > struct nvkm_i2c_bus *bus;
> > > struct drm_encoder *encoder;
> > > struct dcb_output *dcbe = nv_encoder->dcb;
> > > @@ -1884,7 +1884,7 @@ nv50_sor_create(struct nouveau_encoder *nv_encoder)
> > > struct drm_connector *connector = &nv_encoder->conn->base;
> > > struct nouveau_connector *nv_connector = nouveau_connector(connector);
> > > struct nouveau_drm *drm = nouveau_drm(connector->dev);
> > > - struct nvkm_i2c *i2c = nvxx_i2c(&drm->client.device);
> > > + struct nvkm_i2c *i2c = nvxx_i2c(drm);
> > > struct drm_encoder *encoder;
> > > struct dcb_output *dcbe = nv_encoder->dcb;
> > > struct nv50_disp *disp = nv50_disp(connector->dev);
> > > @@ -2051,7 +2051,7 @@ nv50_pior_create(struct nouveau_encoder *nv_encoder)
> > > struct drm_device *dev = connector->dev;
> > > struct nouveau_drm *drm = nouveau_drm(dev);
> > > struct nv50_disp *disp = nv50_disp(dev);
> > > - struct nvkm_i2c *i2c = nvxx_i2c(&drm->client.device);
> > > + struct nvkm_i2c *i2c = nvxx_i2c(drm);
> > > struct nvkm_i2c_bus *bus = NULL;
> > > struct nvkm_i2c_aux *aux = NULL;
> > > struct i2c_adapter *ddc;
> > > diff --git a/drivers/gpu/drm/nouveau/include/nvif/device.h b/drivers/gpu/drm/nouveau/include/nvif/device.h
> > > index fec76f4733a4..7877a2a79da9 100644
> > > --- a/drivers/gpu/drm/nouveau/include/nvif/device.h
> > > +++ b/drivers/gpu/drm/nouveau/include/nvif/device.h
> > > @@ -22,37 +22,4 @@ int nvif_device_ctor(struct nvif_client *, const char *name, struct nvif_device
> > > void nvif_device_dtor(struct nvif_device *);
> > > int nvif_device_map(struct nvif_device *);
> > > u64 nvif_device_time(struct nvif_device *);
> > > -
> > > -/*XXX*/
> > > -#include <subdev/bios.h>
> > > -#include <subdev/fb.h>
> > > -#include <subdev/bar.h>
> > > -#include <subdev/gpio.h>
> > > -#include <subdev/clk.h>
> > > -#include <subdev/i2c.h>
> > > -#include <subdev/timer.h>
> > > -#include <subdev/therm.h>
> > > -#include <subdev/pci.h>
> > > -
> > > -#define nvxx_device(a) ({ \
> > > - struct nvif_device *_device = (a); \
> > > - struct { \
> > > - struct nvkm_object object; \
> > > - struct nvkm_device *device; \
> > > - } *_udevice = _device->object.priv; \
> > > - _udevice->device; \
> > > -})
> > > -#define nvxx_bios(a) nvxx_device(a)->bios
> > > -#define nvxx_fb(a) nvxx_device(a)->fb
> > > -#define nvxx_gpio(a) nvxx_device(a)->gpio
> > > -#define nvxx_clk(a) nvxx_device(a)->clk
> > > -#define nvxx_i2c(a) nvxx_device(a)->i2c
> > > -#define nvxx_iccsense(a) nvxx_device(a)->iccsense
> > > -#define nvxx_therm(a) nvxx_device(a)->therm
> > > -#define nvxx_volt(a) nvxx_device(a)->volt
> > > -
> > > -#include <engine/fifo.h>
> > > -#include <engine/gr.h>
> > > -
> > > -#define nvxx_gr(a) nvxx_device(a)->gr
> > > #endif
> > > diff --git a/drivers/gpu/drm/nouveau/include/nvif/object.h b/drivers/gpu/drm/nouveau/include/nvif/object.h
> > > index 8d205b6af46a..3534b241cad9 100644
> > > --- a/drivers/gpu/drm/nouveau/include/nvif/object.h
> > > +++ b/drivers/gpu/drm/nouveau/include/nvif/object.h
> > > @@ -15,7 +15,7 @@ struct nvif_object {
> > > const char *name;
> > > u32 handle;
> > > s32 oclass;
> > > - void *priv; /*XXX: hack */
> > > + void *priv;
> > > struct {
> > > void __iomem *ptr;
> > > u64 size;
> > > diff --git a/drivers/gpu/drm/nouveau/nouveau_abi16.c b/drivers/gpu/drm/nouveau/nouveau_abi16.c
> > > index 704977530b6b..5d74c36a4ca5 100644
> > > --- a/drivers/gpu/drm/nouveau/nouveau_abi16.c
> > > +++ b/drivers/gpu/drm/nouveau/nouveau_abi16.c
> > > @@ -240,8 +240,8 @@ nouveau_abi16_ioctl_getparam(ABI16_IOCTL_ARGS)
> > > struct nouveau_cli *cli = nouveau_cli(file_priv);
> > > struct nouveau_drm *drm = nouveau_drm(dev);
> > > struct nvif_device *device = &drm->client.device;
> > > - struct nvkm_device *nvkm_device = nvxx_device(&drm->client.device);
> > > - struct nvkm_gr *gr = nvxx_gr(device);
> > > + struct nvkm_device *nvkm_device = nvxx_device(drm);
> > > + struct nvkm_gr *gr = nvxx_gr(drm);
> > > struct drm_nouveau_getparam *getparam = data;
> > > struct pci_dev *pdev = to_pci_dev(dev->dev);
> > > diff --git a/drivers/gpu/drm/nouveau/nouveau_bios.c b/drivers/gpu/drm/nouveau/nouveau_bios.c
> > > index 79cfab53f80e..a8da6492efd3 100644
> > > --- a/drivers/gpu/drm/nouveau/nouveau_bios.c
> > > +++ b/drivers/gpu/drm/nouveau/nouveau_bios.c
> > > @@ -2020,7 +2020,7 @@ uint8_t *nouveau_bios_embedded_edid(struct drm_device *dev)
> > > static bool NVInitVBIOS(struct drm_device *dev)
> > > {
> > > struct nouveau_drm *drm = nouveau_drm(dev);
> > > - struct nvkm_bios *bios = nvxx_bios(&drm->client.device);
> > > + struct nvkm_bios *bios = nvxx_bios(drm);
> > > struct nvbios *legacy = &drm->vbios;
> > > memset(legacy, 0, sizeof(struct nvbios));
> > > @@ -2091,7 +2091,7 @@ nouveau_bios_init(struct drm_device *dev)
> > > /* only relevant for PCI devices */
> > > if (!dev_is_pci(dev->dev) ||
> > > - nvkm_gsp_rm(nvxx_device(&drm->client.device)->gsp))
> > > + nvkm_gsp_rm(nvxx_device(drm)->gsp))
> > > return 0;
> > > if (!NVInitVBIOS(dev))
> > > diff --git a/drivers/gpu/drm/nouveau/nouveau_bios.h b/drivers/gpu/drm/nouveau/nouveau_bios.h
> > > index 18eb061ccafb..62b5f5889041 100644
> > > --- a/drivers/gpu/drm/nouveau/nouveau_bios.h
> > > +++ b/drivers/gpu/drm/nouveau/nouveau_bios.h
> > > @@ -48,6 +48,7 @@ struct bit_entry {
> > > int bit_table(struct drm_device *, u8 id, struct bit_entry *);
> > > +#include <subdev/bios.h>
> > > #include <subdev/bios/dcb.h>
> > > #include <subdev/bios/conn.h>
> > > diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c
> > > index 0712d0b15170..6631d85ea749 100644
> > > --- a/drivers/gpu/drm/nouveau/nouveau_bo.c
> > > +++ b/drivers/gpu/drm/nouveau/nouveau_bo.c
> > > @@ -58,7 +58,7 @@ nv10_bo_update_tile_region(struct drm_device *dev, struct nouveau_drm_tile *reg,
> > > {
> > > struct nouveau_drm *drm = nouveau_drm(dev);
> > > int i = reg - drm->tile.reg;
> > > - struct nvkm_fb *fb = nvxx_fb(&drm->client.device);
> > > + struct nvkm_fb *fb = nvxx_fb(drm);
> > > struct nvkm_fb_tile *tile = &fb->tile.region[i];
> > > nouveau_fence_unref(®->fence);
> > > @@ -109,7 +109,7 @@ nv10_bo_set_tiling(struct drm_device *dev, u32 addr,
> > > u32 size, u32 pitch, u32 zeta)
> > > {
> > > struct nouveau_drm *drm = nouveau_drm(dev);
> > > - struct nvkm_fb *fb = nvxx_fb(&drm->client.device);
> > > + struct nvkm_fb *fb = nvxx_fb(drm);
> > > struct nouveau_drm_tile *tile, *found = NULL;
> > > int i;
> > > @@ -1171,7 +1171,7 @@ static int
> > > nouveau_ttm_io_mem_reserve(struct ttm_device *bdev, struct ttm_resource *reg)
> > > {
> > > struct nouveau_drm *drm = nouveau_bdev(bdev);
> > > - struct nvkm_device *device = nvxx_device(&drm->client.device);
> > > + struct nvkm_device *device = nvxx_device(drm);
> > > struct nouveau_mem *mem = nouveau_mem(reg);
> > > struct nvif_mmu *mmu = &drm->client.mmu;
> > > int ret;
> > > @@ -1291,7 +1291,7 @@ vm_fault_t nouveau_ttm_fault_reserve_notify(struct ttm_buffer_object *bo)
> > > {
> > > struct nouveau_drm *drm = nouveau_bdev(bo->bdev);
> > > struct nouveau_bo *nvbo = nouveau_bo(bo);
> > > - struct nvkm_device *device = nvxx_device(&drm->client.device);
> > > + struct nvkm_device *device = nvxx_device(drm);
> > > u32 mappable = device->func->resource_size(device, 1) >> PAGE_SHIFT;
> > > int i, ret;
> > > diff --git a/drivers/gpu/drm/nouveau/nouveau_chan.c b/drivers/gpu/drm/nouveau/nouveau_chan.c
> > > index ce04c40e6f8f..0105d4704c3a 100644
> > > --- a/drivers/gpu/drm/nouveau/nouveau_chan.c
> > > +++ b/drivers/gpu/drm/nouveau/nouveau_chan.c
> > > @@ -218,8 +218,7 @@ nouveau_channel_prep(struct nouveau_drm *drm, struct nvif_device *device,
> > > */
> > > args.target = NV_DMA_V0_TARGET_PCI;
> > > args.access = NV_DMA_V0_ACCESS_RDWR;
> > > - args.start = nvxx_device(device)->func->
> > > - resource_addr(nvxx_device(device), 1);
> > > + args.start = nvxx_device(drm)->func->resource_addr(nvxx_device(drm), 1);
> > > args.limit = args.start + device->info.ram_user - 1;
> > > } else {
> > > args.target = NV_DMA_V0_TARGET_VRAM;
> > > diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.c b/drivers/gpu/drm/nouveau/nouveau_drm.c
> > > index 936eb32fc8c4..5ff116bcbabf 100644
> > > --- a/drivers/gpu/drm/nouveau/nouveau_drm.c
> > > +++ b/drivers/gpu/drm/nouveau/nouveau_drm.c
> > > @@ -424,8 +424,7 @@ nouveau_accel_gr_init(struct nouveau_drm *drm)
> > > * any GPU where it's possible we'll end up using M2MF for BO moves.
> > > */
> > > if (device->info.family < NV_DEVICE_INFO_V0_FERMI) {
> > > - ret = nvkm_gpuobj_new(nvxx_device(device), 32, 0, false, NULL,
> > > - &drm->notify);
> > > + ret = nvkm_gpuobj_new(nvxx_device(drm), 32, 0, false, NULL, &drm->notify);
> > > if (ret) {
> > > NV_ERROR(drm, "failed to allocate notifier, %d\n", ret);
> > > nouveau_accel_gr_fini(drm);
> > > diff --git a/drivers/gpu/drm/nouveau/nouveau_drv.h b/drivers/gpu/drm/nouveau/nouveau_drv.h
> > > index 80ffe15ba76b..a9e0a63c772e 100644
> > > --- a/drivers/gpu/drm/nouveau/nouveau_drv.h
> > > +++ b/drivers/gpu/drm/nouveau/nouveau_drv.h
> > > @@ -360,4 +360,31 @@ void nouveau_drm_device_remove(struct nouveau_drm *);
> > > extern int nouveau_modeset;
> > > +/*XXX*/
> > What is the message of this here?
> This is moved over from its old location.
Just to clarify, because I think it came across this way in a few other patches.
I try to avoid putting a question, when I actually look for an action. So, when
I ask a question, no need to assume that I want something changed. :)
> >
> > > +#include <subdev/bios.h>
> > > +#include <subdev/fb.h>
> > > +#include <subdev/gpio.h>
> > > +#include <subdev/clk.h>
> > > +#include <subdev/i2c.h>
> > > +#include <subdev/timer.h>
> > > +#include <subdev/therm.h>
> > > +
> > > +static inline struct nvkm_device *
> > > +nvxx_device(struct nouveau_drm *drm)
> > > +{
> > > + return drm->nvkm;
> > > +}
> > > +
> > > +#define nvxx_bios(a) nvxx_device(a)->bios
> > > +#define nvxx_fb(a) nvxx_device(a)->fb
> > > +#define nvxx_gpio(a) nvxx_device(a)->gpio
> > > +#define nvxx_clk(a) nvxx_device(a)->clk
> > > +#define nvxx_i2c(a) nvxx_device(a)->i2c
> > > +#define nvxx_iccsense(a) nvxx_device(a)->iccsense
> > > +#define nvxx_therm(a) nvxx_device(a)->therm
> > > +#define nvxx_volt(a) nvxx_device(a)->volt
> > Why the "nvxx" prefix? Why not just "nvkm"?
>
> Because these aren't supposed to be used, and exist for the few locations
> that never got proper NVIF. I've added info to the commit with some further
> explanation.
Thanks for adding it, looks good!
One question regarding that, you write:
"Outside of the current use, these should not be relied on, and proper
interfaces implemented instead."
What would a "proper" interface for those offer us / improve? And if the answer
is nothing, why do we consider using nvkm_ structures directly a hack?
>
> I've updated the branch on gitlab for this, and your commit message
> nitpicks.
>
> >
> > > +
> > > +#include <engine/gr.h>
> > > +
> > > +#define nvxx_gr(a) nvxx_device(a)->gr
> > > #endif
> > > diff --git a/drivers/gpu/drm/nouveau/nouveau_hwmon.c b/drivers/gpu/drm/nouveau/nouveau_hwmon.c
> > > index db30a4c2cd4d..5c07a9ee8b77 100644
> > > --- a/drivers/gpu/drm/nouveau/nouveau_hwmon.c
> > > +++ b/drivers/gpu/drm/nouveau/nouveau_hwmon.c
> > > @@ -52,7 +52,7 @@ nouveau_hwmon_temp1_auto_point1_temp(struct device *d,
> > > {
> > > struct drm_device *dev = dev_get_drvdata(d);
> > > struct nouveau_drm *drm = nouveau_drm(dev);
> > > - struct nvkm_therm *therm = nvxx_therm(&drm->client.device);
> > > + struct nvkm_therm *therm = nvxx_therm(drm);
> > > return sysfs_emit(buf, "%d\n",
> > > therm->attr_get(therm, NVKM_THERM_ATTR_THRS_FAN_BOOST) * 1000);
> > > @@ -64,7 +64,7 @@ nouveau_hwmon_set_temp1_auto_point1_temp(struct device *d,
> > > {
> > > struct drm_device *dev = dev_get_drvdata(d);
> > > struct nouveau_drm *drm = nouveau_drm(dev);
> > > - struct nvkm_therm *therm = nvxx_therm(&drm->client.device);
> > > + struct nvkm_therm *therm = nvxx_therm(drm);
> > > long value;
> > > if (kstrtol(buf, 10, &value))
> > > @@ -85,7 +85,7 @@ nouveau_hwmon_temp1_auto_point1_temp_hyst(struct device *d,
> > > {
> > > struct drm_device *dev = dev_get_drvdata(d);
> > > struct nouveau_drm *drm = nouveau_drm(dev);
> > > - struct nvkm_therm *therm = nvxx_therm(&drm->client.device);
> > > + struct nvkm_therm *therm = nvxx_therm(drm);
> > > return sysfs_emit(buf, "%d\n",
> > > therm->attr_get(therm, NVKM_THERM_ATTR_THRS_FAN_BOOST_HYST) * 1000);
> > > @@ -97,7 +97,7 @@ nouveau_hwmon_set_temp1_auto_point1_temp_hyst(struct device *d,
> > > {
> > > struct drm_device *dev = dev_get_drvdata(d);
> > > struct nouveau_drm *drm = nouveau_drm(dev);
> > > - struct nvkm_therm *therm = nvxx_therm(&drm->client.device);
> > > + struct nvkm_therm *therm = nvxx_therm(drm);
> > > long value;
> > > if (kstrtol(buf, 10, &value))
> > > @@ -118,7 +118,7 @@ nouveau_hwmon_get_pwm1_max(struct device *d,
> > > {
> > > struct drm_device *dev = dev_get_drvdata(d);
> > > struct nouveau_drm *drm = nouveau_drm(dev);
> > > - struct nvkm_therm *therm = nvxx_therm(&drm->client.device);
> > > + struct nvkm_therm *therm = nvxx_therm(drm);
> > > int ret;
> > > ret = therm->attr_get(therm, NVKM_THERM_ATTR_FAN_MAX_DUTY);
> > > @@ -134,7 +134,7 @@ nouveau_hwmon_get_pwm1_min(struct device *d,
> > > {
> > > struct drm_device *dev = dev_get_drvdata(d);
> > > struct nouveau_drm *drm = nouveau_drm(dev);
> > > - struct nvkm_therm *therm = nvxx_therm(&drm->client.device);
> > > + struct nvkm_therm *therm = nvxx_therm(drm);
> > > int ret;
> > > ret = therm->attr_get(therm, NVKM_THERM_ATTR_FAN_MIN_DUTY);
> > > @@ -150,7 +150,7 @@ nouveau_hwmon_set_pwm1_min(struct device *d, struct device_attribute *a,
> > > {
> > > struct drm_device *dev = dev_get_drvdata(d);
> > > struct nouveau_drm *drm = nouveau_drm(dev);
> > > - struct nvkm_therm *therm = nvxx_therm(&drm->client.device);
> > > + struct nvkm_therm *therm = nvxx_therm(drm);
> > > long value;
> > > int ret;
> > > @@ -173,7 +173,7 @@ nouveau_hwmon_set_pwm1_max(struct device *d, struct device_attribute *a,
> > > {
> > > struct drm_device *dev = dev_get_drvdata(d);
> > > struct nouveau_drm *drm = nouveau_drm(dev);
> > > - struct nvkm_therm *therm = nvxx_therm(&drm->client.device);
> > > + struct nvkm_therm *therm = nvxx_therm(drm);
> > > long value;
> > > int ret;
> > > @@ -247,7 +247,7 @@ static umode_t
> > > nouveau_power_is_visible(const void *data, u32 attr, int channel)
> > > {
> > > struct nouveau_drm *drm = nouveau_drm((struct drm_device *)data);
> > > - struct nvkm_iccsense *iccsense = nvxx_iccsense(&drm->client.device);
> > > + struct nvkm_iccsense *iccsense = nvxx_iccsense(drm);
> > > if (!iccsense || !iccsense->data_valid || list_empty(&iccsense->rails))
> > > return 0;
> > > @@ -272,7 +272,7 @@ static umode_t
> > > nouveau_temp_is_visible(const void *data, u32 attr, int channel)
> > > {
> > > struct nouveau_drm *drm = nouveau_drm((struct drm_device *)data);
> > > - struct nvkm_therm *therm = nvxx_therm(&drm->client.device);
> > > + struct nvkm_therm *therm = nvxx_therm(drm);
> > > if (!therm || !therm->attr_get || nvkm_therm_temp_get(therm) < 0)
> > > return 0;
> > > @@ -296,7 +296,7 @@ static umode_t
> > > nouveau_pwm_is_visible(const void *data, u32 attr, int channel)
> > > {
> > > struct nouveau_drm *drm = nouveau_drm((struct drm_device *)data);
> > > - struct nvkm_therm *therm = nvxx_therm(&drm->client.device);
> > > + struct nvkm_therm *therm = nvxx_therm(drm);
> > > if (!therm || !therm->attr_get || !therm->fan_get ||
> > > therm->fan_get(therm) < 0)
> > > @@ -315,7 +315,7 @@ static umode_t
> > > nouveau_input_is_visible(const void *data, u32 attr, int channel)
> > > {
> > > struct nouveau_drm *drm = nouveau_drm((struct drm_device *)data);
> > > - struct nvkm_volt *volt = nvxx_volt(&drm->client.device);
> > > + struct nvkm_volt *volt = nvxx_volt(drm);
> > > if (!volt || nvkm_volt_get(volt) < 0)
> > > return 0;
> > > @@ -335,7 +335,7 @@ static umode_t
> > > nouveau_fan_is_visible(const void *data, u32 attr, int channel)
> > > {
> > > struct nouveau_drm *drm = nouveau_drm((struct drm_device *)data);
> > > - struct nvkm_therm *therm = nvxx_therm(&drm->client.device);
> > > + struct nvkm_therm *therm = nvxx_therm(drm);
> > > if (!therm || !therm->attr_get || nvkm_therm_fan_sense(therm) < 0)
> > > return 0;
> > > @@ -367,7 +367,7 @@ nouveau_temp_read(struct device *dev, u32 attr, int channel, long *val)
> > > {
> > > struct drm_device *drm_dev = dev_get_drvdata(dev);
> > > struct nouveau_drm *drm = nouveau_drm(drm_dev);
> > > - struct nvkm_therm *therm = nvxx_therm(&drm->client.device);
> > > + struct nvkm_therm *therm = nvxx_therm(drm);
> > > int ret;
> > > if (!therm || !therm->attr_get)
> > > @@ -416,7 +416,7 @@ nouveau_fan_read(struct device *dev, u32 attr, int channel, long *val)
> > > {
> > > struct drm_device *drm_dev = dev_get_drvdata(dev);
> > > struct nouveau_drm *drm = nouveau_drm(drm_dev);
> > > - struct nvkm_therm *therm = nvxx_therm(&drm->client.device);
> > > + struct nvkm_therm *therm = nvxx_therm(drm);
> > > if (!therm)
> > > return -EOPNOTSUPP;
> > > @@ -439,7 +439,7 @@ nouveau_in_read(struct device *dev, u32 attr, int channel, long *val)
> > > {
> > > struct drm_device *drm_dev = dev_get_drvdata(dev);
> > > struct nouveau_drm *drm = nouveau_drm(drm_dev);
> > > - struct nvkm_volt *volt = nvxx_volt(&drm->client.device);
> > > + struct nvkm_volt *volt = nvxx_volt(drm);
> > > int ret;
> > > if (!volt)
> > > @@ -470,7 +470,7 @@ nouveau_pwm_read(struct device *dev, u32 attr, int channel, long *val)
> > > {
> > > struct drm_device *drm_dev = dev_get_drvdata(dev);
> > > struct nouveau_drm *drm = nouveau_drm(drm_dev);
> > > - struct nvkm_therm *therm = nvxx_therm(&drm->client.device);
> > > + struct nvkm_therm *therm = nvxx_therm(drm);
> > > if (!therm || !therm->attr_get || !therm->fan_get)
> > > return -EOPNOTSUPP;
> > > @@ -496,7 +496,7 @@ nouveau_power_read(struct device *dev, u32 attr, int channel, long *val)
> > > {
> > > struct drm_device *drm_dev = dev_get_drvdata(dev);
> > > struct nouveau_drm *drm = nouveau_drm(drm_dev);
> > > - struct nvkm_iccsense *iccsense = nvxx_iccsense(&drm->client.device);
> > > + struct nvkm_iccsense *iccsense = nvxx_iccsense(drm);
> > > if (!iccsense)
> > > return -EOPNOTSUPP;
> > > @@ -525,7 +525,7 @@ nouveau_temp_write(struct device *dev, u32 attr, int channel, long val)
> > > {
> > > struct drm_device *drm_dev = dev_get_drvdata(dev);
> > > struct nouveau_drm *drm = nouveau_drm(drm_dev);
> > > - struct nvkm_therm *therm = nvxx_therm(&drm->client.device);
> > > + struct nvkm_therm *therm = nvxx_therm(drm);
> > > if (!therm || !therm->attr_set)
> > > return -EOPNOTSUPP;
> > > @@ -559,7 +559,7 @@ nouveau_pwm_write(struct device *dev, u32 attr, int channel, long val)
> > > {
> > > struct drm_device *drm_dev = dev_get_drvdata(dev);
> > > struct nouveau_drm *drm = nouveau_drm(drm_dev);
> > > - struct nvkm_therm *therm = nvxx_therm(&drm->client.device);
> > > + struct nvkm_therm *therm = nvxx_therm(drm);
> > > if (!therm || !therm->attr_set)
> > > return -EOPNOTSUPP;
> > > @@ -664,9 +664,9 @@ nouveau_hwmon_init(struct drm_device *dev)
> > > {
> > > #if defined(CONFIG_HWMON) || (defined(MODULE) && defined(CONFIG_HWMON_MODULE))
> > > struct nouveau_drm *drm = nouveau_drm(dev);
> > > - struct nvkm_iccsense *iccsense = nvxx_iccsense(&drm->client.device);
> > > - struct nvkm_therm *therm = nvxx_therm(&drm->client.device);
> > > - struct nvkm_volt *volt = nvxx_volt(&drm->client.device);
> > > + struct nvkm_iccsense *iccsense = nvxx_iccsense(drm);
> > > + struct nvkm_therm *therm = nvxx_therm(drm);
> > > + struct nvkm_volt *volt = nvxx_volt(drm);
> > > const struct attribute_group *special_groups[N_ATTR_GROUPS];
> > > struct nouveau_hwmon *hwmon;
> > > struct device *hwmon_dev;
> > > diff --git a/drivers/gpu/drm/nouveau/nouveau_led.c b/drivers/gpu/drm/nouveau/nouveau_led.c
> > > index 2c5e0628da12..ac950518a820 100644
> > > --- a/drivers/gpu/drm/nouveau/nouveau_led.c
> > > +++ b/drivers/gpu/drm/nouveau/nouveau_led.c
> > > @@ -78,7 +78,7 @@ int
> > > nouveau_led_init(struct drm_device *dev)
> > > {
> > > struct nouveau_drm *drm = nouveau_drm(dev);
> > > - struct nvkm_gpio *gpio = nvxx_gpio(&drm->client.device);
> > > + struct nvkm_gpio *gpio = nvxx_gpio(drm);
> > > struct dcb_gpio_func logo_led;
> > > int ret;
> > > diff --git a/drivers/gpu/drm/nouveau/nouveau_ttm.c b/drivers/gpu/drm/nouveau/nouveau_ttm.c
> > > index 486f39f31a38..53553819bcac 100644
> > > --- a/drivers/gpu/drm/nouveau/nouveau_ttm.c
> > > +++ b/drivers/gpu/drm/nouveau/nouveau_ttm.c
> > > @@ -261,7 +261,7 @@ nouveau_ttm_fini_gtt(struct nouveau_drm *drm)
> > > int
> > > nouveau_ttm_init(struct nouveau_drm *drm)
> > > {
> > > - struct nvkm_device *device = nvxx_device(&drm->client.device);
> > > + struct nvkm_device *device = nvxx_device(drm);
> > > struct nvkm_pci *pci = device->pci;
> > > struct nvif_mmu *mmu = &drm->client.mmu;
> > > struct drm_device *dev = drm->dev;
> > > @@ -348,7 +348,7 @@ nouveau_ttm_init(struct nouveau_drm *drm)
> > > void
> > > nouveau_ttm_fini(struct nouveau_drm *drm)
> > > {
> > > - struct nvkm_device *device = nvxx_device(&drm->client.device);
> > > + struct nvkm_device *device = nvxx_device(drm);
> > > nouveau_ttm_fini_vram(drm);
> > > nouveau_ttm_fini_gtt(drm);
> > > --
> > > 2.45.1
> > >
>
next prev parent reply other threads:[~2024-07-19 12:28 UTC|newest]
Thread overview: 77+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-04 18:36 [PATCH v2 00/37] drm/nouveau: misc. cleanups and removal of unused apis Ben Skeggs
2024-07-04 18:36 ` [PATCH v2 01/37] drm/nouveau: move nouveau_drm_device_fini() above init() Ben Skeggs
2024-07-09 14:48 ` Danilo Krummrich
2024-07-04 18:36 ` [PATCH v2 02/37] drm/nouveau: handle pci/tegra drm_dev_{alloc, register} from common code Ben Skeggs
2024-07-09 15:16 ` Danilo Krummrich
2024-07-18 7:14 ` Ben Skeggs
2024-07-19 11:10 ` Danilo Krummrich
2024-07-26 4:27 ` Ben Skeggs
2024-07-26 15:41 ` Danilo Krummrich
2024-07-26 13:07 ` Ben Skeggs
2024-07-27 1:54 ` Danilo Krummrich
2024-07-28 18:13 ` Jason Gunthorpe
2024-07-28 21:34 ` Danilo Krummrich
2024-07-28 23:04 ` Jason Gunthorpe
2024-07-29 0:55 ` Danilo Krummrich
2024-07-04 18:36 ` [PATCH v2 03/37] drm/nouveau: replace drm_device* with nouveau_drm* as dev drvdata Ben Skeggs
2024-07-04 18:36 ` [PATCH v2 04/37] drm/nouveau: create pci device once Ben Skeggs
2024-07-04 18:36 ` [PATCH v2 05/37] drm/nouveau: store nvkm_device pointer in nouveau_drm Ben Skeggs
2024-07-04 18:36 ` [PATCH v2 06/37] drm/nouveau: move allocation of root client out of nouveau_cli_init() Ben Skeggs
2024-07-09 15:33 ` Danilo Krummrich
2024-07-18 7:29 ` Ben Skeggs
2024-07-19 11:37 ` Danilo Krummrich
2024-07-26 4:29 ` Ben Skeggs
2024-07-04 18:36 ` [PATCH v2 07/37] drm/nouveau: add nouveau_cli to nouveau_abi16 Ben Skeggs
2024-07-09 15:36 ` Danilo Krummrich
2024-07-04 18:36 ` [PATCH v2 08/37] drm/nouveau: handle limited nvif ioctl in abi16 Ben Skeggs
2024-07-09 16:03 ` Danilo Krummrich
2024-07-18 7:43 ` Ben Skeggs
2024-07-19 12:06 ` Danilo Krummrich
2024-07-04 18:36 ` [PATCH v2 09/37] drm/nouveau: remove abi16->device Ben Skeggs
2024-07-04 18:36 ` [PATCH v2 10/37] drm/nouveau: remove abi16->handles Ben Skeggs
2024-07-04 18:36 ` [PATCH v2 11/37] drm/nouveau/nvkm: remove detect/mmio/subdev_mask from device args Ben Skeggs
2024-07-04 18:36 ` [PATCH v2 12/37] drm/nouveau/nvkm: remove perfmon Ben Skeggs
2024-07-04 18:36 ` [PATCH v2 13/37] drm/nouveau/nvkm: remove nvkm_client_search() Ben Skeggs
2024-07-04 18:36 ` [PATCH v2 14/37] drm/nouveau/nvif: remove support for userspace backends Ben Skeggs
2024-07-04 18:36 ` [PATCH v2 15/37] drm/nouveau/nvif: remove route/token Ben Skeggs
2024-07-09 16:11 ` Danilo Krummrich
2024-07-18 7:52 ` Ben Skeggs
2024-07-19 12:12 ` Danilo Krummrich
2024-07-04 18:37 ` [PATCH v2 16/37] drm/nouveau/nvif: remove nvxx_object() Ben Skeggs
2024-07-09 16:14 ` Danilo Krummrich
2024-07-04 18:37 ` [PATCH v2 17/37] drm/nouveau/nvif: remove nvxx_client() Ben Skeggs
2024-07-04 18:37 ` [PATCH v2 18/37] drm/nouveau/nvif: remove driver keep/fini Ben Skeggs
2024-07-04 18:37 ` [PATCH v2 19/37] drm/nouveau/nvif: remove client device arg Ben Skeggs
2024-07-09 16:16 ` Danilo Krummrich
2024-07-04 18:37 ` [PATCH v2 20/37] drm/nouveau/nvif: remove client version Ben Skeggs
2024-07-04 18:37 ` [PATCH v2 21/37] drm/nouveau/nvif: remove client devlist Ben Skeggs
2024-07-04 18:37 ` [PATCH v2 22/37] drm/nouveau/nvif: remove client fini Ben Skeggs
2024-07-04 18:37 ` [PATCH v2 23/37] drm/nouveau/nvif: remove device args Ben Skeggs
2024-07-09 16:18 ` Danilo Krummrich
2024-07-04 18:37 ` [PATCH v2 24/37] drm/nouveau: always map device Ben Skeggs
2024-07-04 18:37 ` [PATCH v2 25/37] drm/nouveau/nvif: remove device rd/wr Ben Skeggs
2024-07-09 16:22 ` Danilo Krummrich
2024-07-04 18:37 ` [PATCH v2 26/37] drm/nouveau/nvif: remove disp chan rd/wr Ben Skeggs
2024-07-04 18:37 ` [PATCH v2 27/37] drm/nouveau: move nvxx_* definitions to nouveau_drv.h Ben Skeggs
2024-07-09 16:31 ` Danilo Krummrich
2024-07-18 7:58 ` Ben Skeggs
2024-07-19 12:28 ` Danilo Krummrich [this message]
2024-07-26 4:35 ` Ben Skeggs
2024-07-04 18:37 ` [PATCH v2 28/37] drm/nouveau: add nvif_mmu to nouveau_drm Ben Skeggs
2024-07-09 16:34 ` Danilo Krummrich
2024-07-18 8:10 ` Ben Skeggs
2024-07-19 12:47 ` Danilo Krummrich
2024-07-04 18:37 ` [PATCH v2 29/37] drm/nouveau: pass drm to nouveau_mem_new(), instead of cli Ben Skeggs
2024-07-04 18:37 ` [PATCH v2 30/37] drm/nouveau: pass drm to nv50_dmac_create(), rather than device+disp Ben Skeggs
2024-07-04 18:37 ` [PATCH v2 31/37] drm/nouveau: pass cli to nouveau_channel_new() instead of drm+device Ben Skeggs
2024-07-04 18:37 ` [PATCH v2 32/37] drm/nouveau: remove nouveau_chan.device Ben Skeggs
2024-07-04 18:37 ` [PATCH v2 33/37] drm/nouveau: remove chan->drm Ben Skeggs
2024-07-04 18:37 ` [PATCH v2 34/37] drm/nouveau: remove master Ben Skeggs
2024-07-09 16:38 ` Danilo Krummrich
2024-07-18 8:12 ` Ben Skeggs
2024-07-19 12:49 ` Danilo Krummrich
2024-07-04 18:37 ` [PATCH v2 35/37] drm/nouveau: remove push pointer from nouveau_channel Ben Skeggs
2024-07-04 18:37 ` [PATCH v2 36/37] drm/nouveau/kms: remove a few unused struct members and fn decls Ben Skeggs
2024-07-04 18:37 ` [PATCH v2 37/37] drm/nouveau/kms: remove push pointer from nv50_dmac Ben Skeggs
2024-07-09 14:44 ` [PATCH v2 00/37] drm/nouveau: misc. cleanups and removal of unused apis Danilo Krummrich
2024-07-18 7:00 ` Ben Skeggs
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Zppb9T40lRoYCS4v@pollux \
--to=dakr@redhat.com \
--cc=bskeggs@nvidia.com \
--cc=nouveau@lists.freedesktop.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.