On Tue, Jun 11, 2019 at 09:48:16AM +0200, Thomas Zimmermann wrote: > Hi > > Am 08.06.19 um 10:19 schrieb Sam Ravnborg: > > Opencode all macros used from the deprecated drm_os_linux.h header file. > > The DRM_WAIT_ON used 3 * HZ as timeout. > > This was translated to 30 msec. > > > > Signed-off-by: Sam Ravnborg <sam@xxxxxxxxxxxx> > > Cc: Thomas Zimmermann <tzimmermann@xxxxxxx> > > Cc: Daniel Vetter <daniel@xxxxxxxx> > > Cc: David Airlie <airlied@xxxxxxxx> > > --- > > drivers/gpu/drm/mga/mga_dma.c | 12 ++++++++---- > > drivers/gpu/drm/mga/mga_drv.h | 12 ++++++++---- > > drivers/gpu/drm/mga/mga_irq.c | 8 ++++---- > > drivers/gpu/drm/mga/mga_state.c | 6 +++--- > > 4 files changed, 23 insertions(+), 15 deletions(-) > > > > diff --git a/drivers/gpu/drm/mga/mga_dma.c b/drivers/gpu/drm/mga/mga_dma.c > > index 1ffdafea27e4..123be2f3a151 100644 > > --- a/drivers/gpu/drm/mga/mga_dma.c > > +++ b/drivers/gpu/drm/mga/mga_dma.c > > @@ -35,6 +35,8 @@ > > * \author Gareth Hughes <gareth@xxxxxxxxxxx> > > */ > > > > +#include <linux/delay.h> > > + > > #include <drm/drmP.h> > > #include <drm/mga_drm.h> > > #include "mga_drv.h" > > @@ -62,7 +64,7 @@ int mga_do_wait_for_idle(drm_mga_private_t *dev_priv) > > MGA_WRITE8(MGA_CRTC_INDEX, 0); > > return 0; > > } > > - DRM_UDELAY(1); > > + udelay(1); > > } > > > > #if MGA_DMA_DEBUG > > @@ -114,7 +116,7 @@ void mga_do_dma_flush(drm_mga_private_t *dev_priv) > > status = MGA_READ(MGA_STATUS) & MGA_ENGINE_IDLE_MASK; > > if (status == MGA_ENDPRDMASTS) > > break; > > - DRM_UDELAY(1); > > + udelay(1); > > } > > > > if (primary->tail == primary->last_flush) { > > @@ -1120,7 +1122,7 @@ int mga_dma_buffers(struct drm_device *dev, void *data, > > */ > > if (d->send_count != 0) { > > DRM_ERROR("Process %d trying to send %d buffers via drmDMA\n", > > - DRM_CURRENTPID, d->send_count); > > + task_pid_nr(current), d->send_count); > > return -EINVAL; > > } > > > > @@ -1128,7 +1130,9 @@ int mga_dma_buffers(struct drm_device *dev, void *data, > > */ > > if (d->request_count < 0 || d->request_count > dma->buf_count) { > > DRM_ERROR("Process %d trying to get %d buffers (of %d max)\n", > > - DRM_CURRENTPID, d->request_count, dma->buf_count); > > + task_pid_nr(current), > > + d->request_count, > > + dma->buf_count); > > return -EINVAL; > > } > > > > diff --git a/drivers/gpu/drm/mga/mga_drv.h b/drivers/gpu/drm/mga/mga_drv.h > > index a45bb22275a7..7844a9e463f6 100644 > > --- a/drivers/gpu/drm/mga/mga_drv.h > > +++ b/drivers/gpu/drm/mga/mga_drv.h > > @@ -199,10 +199,14 @@ extern long mga_compat_ioctl(struct file *filp, unsigned int cmd, > > > > #define mga_flush_write_combine() wmb() > > > > -#define MGA_READ8(reg) DRM_READ8(dev_priv->mmio, (reg)) > > -#define MGA_READ(reg) DRM_READ32(dev_priv->mmio, (reg)) > > -#define MGA_WRITE8(reg, val) DRM_WRITE8(dev_priv->mmio, (reg), (val)) > > -#define MGA_WRITE(reg, val) DRM_WRITE32(dev_priv->mmio, (reg), (val)) > > +#define MGA_READ8(reg) \ > > + readb(((void __iomem *)dev_priv->mmio->handle) + (reg)) > > +#define MGA_READ(reg) \ > > + readl(((void __iomem *)dev_priv->mmio->handle) + (reg)) > > +#define MGA_WRITE8(reg, val) \ > > + writeb(val, ((void __iomem *)dev_priv->mmio->handle) + (reg)) > > +#define MGA_WRITE(reg, val) \ > > + writel(val, ((void __iomem *)dev_priv->mmio->handle) + (reg)) > > Addition is not defined or implementation specific for type void* IIRC. > Compilers tend to treat it like u8*. Maybe cast mmio->handle to (u8 > __iomem *) instead? drm_os_linux.h has depended upon this gcc-ism since decades by now, I think it's ok to leave this as-is :-) -Daniel > > Best regards > Thomas > > > > > #define DWGREG0 0x1c00 > > #define DWGREG0_END 0x1dff > > diff --git a/drivers/gpu/drm/mga/mga_irq.c b/drivers/gpu/drm/mga/mga_irq.c > > index 693ba708cfed..c6a3fab5b0c4 100644 > > --- a/drivers/gpu/drm/mga/mga_irq.c > > +++ b/drivers/gpu/drm/mga/mga_irq.c > > @@ -122,19 +122,19 @@ int mga_driver_fence_wait(struct drm_device *dev, unsigned int *sequence) > > { > > drm_mga_private_t *dev_priv = (drm_mga_private_t *) dev->dev_private; > > unsigned int cur_fence; > > - int ret = 0; > > > > /* Assume that the user has missed the current sequence number > > * by about a day rather than she wants to wait for years > > * using fences. > > */ > > - DRM_WAIT_ON(ret, dev_priv->fence_queue, 3 * HZ, > > + wait_event_timeout(dev_priv->fence_queue, > > (((cur_fence = atomic_read(&dev_priv->last_fence_retired)) > > - - *sequence) <= (1 << 23))); > > + - *sequence) <= (1 << 23)), > > + msecs_to_jiffies(30)); > > > > *sequence = cur_fence; > > > > - return ret; > > + return 0; > > } > > > > void mga_driver_irq_preinstall(struct drm_device *dev) > > diff --git a/drivers/gpu/drm/mga/mga_state.c b/drivers/gpu/drm/mga/mga_state.c > > index e5f6b735f575..296a1db7e5ee 100644 > > --- a/drivers/gpu/drm/mga/mga_state.c > > +++ b/drivers/gpu/drm/mga/mga_state.c > > @@ -1016,7 +1016,7 @@ int mga_getparam(struct drm_device *dev, void *data, struct drm_file *file_priv) > > return -EINVAL; > > } > > > > - DRM_DEBUG("pid=%d\n", DRM_CURRENTPID); > > + DRM_DEBUG("pid=%d\n", task_pid_nr(current)); > > > > switch (param->param) { > > case MGA_PARAM_IRQ_NR: > > @@ -1048,7 +1048,7 @@ static int mga_set_fence(struct drm_device *dev, void *data, struct drm_file *fi > > return -EINVAL; > > } > > > > - DRM_DEBUG("pid=%d\n", DRM_CURRENTPID); > > + DRM_DEBUG("pid=%d\n", task_pid_nr(current)); > > > > /* I would normal do this assignment in the declaration of fence, > > * but dev_priv may be NULL. > > @@ -1077,7 +1077,7 @@ file_priv) > > return -EINVAL; > > } > > > > - DRM_DEBUG("pid=%d\n", DRM_CURRENTPID); > > + DRM_DEBUG("pid=%d\n", task_pid_nr(current)); > > > > mga_driver_fence_wait(dev, fence); > > return 0; > > > > -- > Thomas Zimmermann > Graphics Driver Developer > SUSE Linux GmbH, Maxfeldstrasse 5, 90409 Nuernberg, Germany > GF: Felix Imendörffer, Mary Higgins, Sri Rasiah > HRB 21284 (AG Nürnberg) > -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel