[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CADnq5_NsmJigAimosC1Z8iGc-1nVSw9W7ROWaU5u_vR-BC5X_A@mail.gmail.com>
Date: Tue, 14 Oct 2014 12:52:26 -0400
From: Alex Deucher <alexdeucher@...il.com>
To: Oded Gabbay <oded.gabbay@....com>
Cc: David Airlie <airlied@...ux.ie>,
Alex Deucher <alexander.deucher@....com>,
Jerome Glisse <j.glisse@...il.com>,
Andrew Lewycky <Andrew.Lewycky@....com>,
LKML <linux-kernel@...r.kernel.org>,
Maling list - DRI developers
<dri-devel@...ts.freedesktop.org>,
Christian König <christian.koenig@....com>
Subject: Re: [PATCH v4 03/23] drm/radeon: Report doorbell configuration to amdkfd
On Wed, Sep 24, 2014 at 4:45 PM, Oded Gabbay <oded.gabbay@....com> wrote:
> radeon and amdkfd share the doorbell aperture.
> radeon sets it up, takes the doorbells required for its own rings
> and reports the setup to amdkfd.
> radeon reserved doorbells are at the start of the doorbell aperture.
>
> Signed-off-by: Oded Gabbay <oded.gabbay@....com>
Reviewed-by: Alex Deucher <alexander.deucher@....com>
> ---
> drivers/gpu/drm/radeon/radeon.h | 4 ++++
> drivers/gpu/drm/radeon/radeon_device.c | 31 +++++++++++++++++++++++++++++++
> 2 files changed, 35 insertions(+)
>
> diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h
> index bb75e57..67d249a 100644
> --- a/drivers/gpu/drm/radeon/radeon.h
> +++ b/drivers/gpu/drm/radeon/radeon.h
> @@ -697,6 +697,10 @@ struct radeon_doorbell {
>
> int radeon_doorbell_get(struct radeon_device *rdev, u32 *page);
> void radeon_doorbell_free(struct radeon_device *rdev, u32 doorbell);
> +void radeon_doorbell_get_kfd_info(struct radeon_device *rdev,
> + phys_addr_t *aperture_base,
> + size_t *aperture_size,
> + size_t *start_offset);
>
> /*
> * IRQS.
> diff --git a/drivers/gpu/drm/radeon/radeon_device.c b/drivers/gpu/drm/radeon/radeon_device.c
> index e84a76e..da3035f 100644
> --- a/drivers/gpu/drm/radeon/radeon_device.c
> +++ b/drivers/gpu/drm/radeon/radeon_device.c
> @@ -373,6 +373,37 @@ void radeon_doorbell_free(struct radeon_device *rdev, u32 doorbell)
> __clear_bit(doorbell, rdev->doorbell.used);
> }
>
> +/**
> + * radeon_doorbell_get_kfd_info - Report doorbell configuration required to
> + * setup KFD
> + *
> + * @rdev: radeon_device pointer
> + * @aperture_base: output returning doorbell aperture base physical address
> + * @aperture_size: output returning doorbell aperture size in bytes
> + * @start_offset: output returning # of doorbell bytes reserved for radeon.
> + *
> + * Radeon and the KFD share the doorbell aperture. Radeon sets it up,
> + * takes doorbells required for its own rings and reports the setup to KFD.
> + * Radeon reserved doorbells are at the start of the doorbell aperture.
> + */
> +void radeon_doorbell_get_kfd_info(struct radeon_device *rdev,
> + phys_addr_t *aperture_base,
> + size_t *aperture_size,
> + size_t *start_offset)
> +{
> + /* The first num_doorbells are used by radeon.
> + * KFD takes whatever's left in the aperture. */
> + if (rdev->doorbell.size > rdev->doorbell.num_doorbells * sizeof(u32)) {
> + *aperture_base = rdev->doorbell.base;
> + *aperture_size = rdev->doorbell.size;
> + *start_offset = rdev->doorbell.num_doorbells * sizeof(u32);
> + } else {
> + *aperture_base = 0;
> + *aperture_size = 0;
> + *start_offset = 0;
> + }
> +}
> +
> /*
> * radeon_wb_*()
> * Writeback is the the method by which the the GPU updates special pages
> --
> 1.9.1
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@...ts.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists