From: Sam Ravnborg <sam@ravnborg.org>
To: dri-devel@lists.freedesktop.org
Cc: David Airlie <airlied@linux.ie>, Thomas Zimmermann <tzimmermann@suse.de>
Subject: Re: [PATCH v2 1/4] drm/mga: drop dependency on drm_os_linux.h
Date: Sat, 29 Jun 2019 19:59:58 +0200 [thread overview]
Message-ID: <20190629175958.GA18538@ravnborg.org> (raw)
In-Reply-To: <20190623103542.30697-2-sam@ravnborg.org>
Hi all.
> 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 3000 msec.
>
> The return value of mga_driver_fence_wait() was not
> used, so make it return void to simplify code a bit.
>
> v2:
> - fixed timeout to 3000 msec (original value was 3 * Hz)
> - drop unused return value from mga_driver_fence_wait()
Thomas give his ack on v1 of this patch.
But I am reluctant to apply it until someone has looked at this version.
The main difference is a s described above, where the change to 3000
msec was a bug in v1.
Any feedback?
Sam
>
> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
> Acked-by: Thomas Zimmermann <tzimmermann@suse.de>
> Cc: Daniel Vetter <daniel@ffwll.ch>
> Cc: David Airlie <airlied@linux.ie>
> ---
> drivers/gpu/drm/mga/mga_dma.c | 11 +++++++----
> drivers/gpu/drm/mga/mga_drv.h | 14 +++++++++-----
> drivers/gpu/drm/mga/mga_irq.c | 10 ++++------
> drivers/gpu/drm/mga/mga_state.c | 6 +++---
> 4 files changed, 23 insertions(+), 18 deletions(-)
>
> diff --git a/drivers/gpu/drm/mga/mga_dma.c b/drivers/gpu/drm/mga/mga_dma.c
> index 1ffdafea27e4..c5e7c210999f 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@valinux.com>
> */
>
> +#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,8 @@ 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..1766c195b397 100644
> --- a/drivers/gpu/drm/mga/mga_drv.h
> +++ b/drivers/gpu/drm/mga/mga_drv.h
> @@ -188,7 +188,7 @@ extern int mga_warp_init(drm_mga_private_t *dev_priv);
> extern int mga_enable_vblank(struct drm_device *dev, unsigned int pipe);
> extern void mga_disable_vblank(struct drm_device *dev, unsigned int pipe);
> extern u32 mga_get_vblank_counter(struct drm_device *dev, unsigned int pipe);
> -extern int mga_driver_fence_wait(struct drm_device *dev, unsigned int *sequence);
> +extern void mga_driver_fence_wait(struct drm_device *dev, unsigned int *sequence);
> extern int mga_driver_vblank_wait(struct drm_device *dev, unsigned int *sequence);
> extern irqreturn_t mga_driver_irq_handler(int irq, void *arg);
> extern void mga_driver_irq_preinstall(struct drm_device *dev);
> @@ -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))
>
> #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..1545a3694b53 100644
> --- a/drivers/gpu/drm/mga/mga_irq.c
> +++ b/drivers/gpu/drm/mga/mga_irq.c
> @@ -118,23 +118,21 @@ void mga_disable_vblank(struct drm_device *dev, unsigned int pipe)
> /* MGA_WRITE(MGA_IEN, MGA_VLINEIEN | MGA_SOFTRAPEN); */
> }
>
> -int mga_driver_fence_wait(struct drm_device *dev, unsigned int *sequence)
> +void 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(3000));
>
> *sequence = cur_fence;
> -
> - return ret;
> }
>
> 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;
> --
> 2.20.1
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
next prev parent reply other threads:[~2019-06-29 18:00 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-06-23 10:35 [PATCH v2 0/4] drm/{mga,mgag200}: drop use of drmP.h Sam Ravnborg
2019-06-23 10:35 ` [PATCH v2 1/4] drm/mga: drop dependency on drm_os_linux.h Sam Ravnborg
2019-06-29 17:59 ` Sam Ravnborg [this message]
2019-06-30 7:32 ` Thomas Zimmermann
2019-06-30 8:03 ` Sam Ravnborg
2019-07-01 10:59 ` Emil Velikov
2019-06-23 10:35 ` [PATCH v2 2/4] drm/mga: make header file self contained Sam Ravnborg
2019-06-23 10:35 ` [PATCH v2 3/4] drm/mga: drop use of drmP.h Sam Ravnborg
2019-06-23 10:35 ` [PATCH v2 4/4] drm/mgag200: " Sam Ravnborg
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=20190629175958.GA18538@ravnborg.org \
--to=sam@ravnborg.org \
--cc=airlied@linux.ie \
--cc=dri-devel@lists.freedesktop.org \
--cc=tzimmermann@suse.de \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox