All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alex Deucher <alexdeucher@gmail.com>
To: Jerome Glisse <j.glisse@gmail.com>
Cc: Alex Deucher <alexander.deucher@amd.com>,
	dri-devel@lists.freedesktop.org
Subject: Re: [PATCH 051/165] drm/radeon: implement simple doorbell page allocator
Date: Wed, 26 Jun 2013 14:38:46 -0400	[thread overview]
Message-ID: <CADnq5_PbByt7K_JsTLocHQvjoWmsw9s3hwaMjDCAw=pJpeP3mw@mail.gmail.com> (raw)
In-Reply-To: <20130626125727.GH2480@gmail.com>

On Wed, Jun 26, 2013 at 8:57 AM, Jerome Glisse <j.glisse@gmail.com> wrote:
> On Wed, Jun 26, 2013 at 09:22:11AM -0400, alexdeucher@gmail.com wrote:
>> From: Alex Deucher <alexander.deucher@amd.com>
>>
>> The doorbell aperture is a PCI BAR whose pages can be
>> mapped to compute resources for things like wptrs
>> for userspace queues.
>>
>> This patch maps the BAR and sets up a simple allocator
>> to allocate pages from the BAR.
>
> This doorbell stuff is cryptic, is that some memory on the GPU ? Or is it
> more like a register file ? ie what is backing the pci bar.
>

There's no memory backing it.  It's just an aperture that the GPU can
selectively listens to.  You assign dw offsets from the doorbell
aperture for things like the wrptr for compute rings.  When the driver
or process write a new wtpr value to the offset assigned to it's
specific ring, the GPU starts processing it.  Like ringing a doorbell.

Alex

> Also probably want to use bitmap as i dont think gcc will turn bool array
> into a bitmap.
>
> Cheers,
> Jerome
>
>>
>> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
>> ---
>>  drivers/gpu/drm/radeon/cik.c           |   38 +++++++++++++
>>  drivers/gpu/drm/radeon/radeon.h        |   21 +++++++
>>  drivers/gpu/drm/radeon/radeon_device.c |   94 ++++++++++++++++++++++++++++++++
>>  3 files changed, 153 insertions(+), 0 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/radeon/cik.c b/drivers/gpu/drm/radeon/cik.c
>> index bb7dbc4..5c28fa5 100644
>> --- a/drivers/gpu/drm/radeon/cik.c
>> +++ b/drivers/gpu/drm/radeon/cik.c
>> @@ -121,6 +121,44 @@ u32 cik_get_xclk(struct radeon_device *rdev)
>>       return reference_clock;
>>  }
>>
>> +/**
>> + * cik_mm_rdoorbell - read a doorbell dword
>> + *
>> + * @rdev: radeon_device pointer
>> + * @offset: byte offset into the aperture
>> + *
>> + * Returns the value in the doorbell aperture at the
>> + * requested offset (CIK).
>> + */
>> +u32 cik_mm_rdoorbell(struct radeon_device *rdev, u32 offset)
>> +{
>> +     if (offset < rdev->doorbell.size) {
>> +             return readl(((void __iomem *)rdev->doorbell.ptr) + offset);
>> +     } else {
>> +             DRM_ERROR("reading beyond doorbell aperture: 0x%08x!\n", offset);
>> +             return 0;
>> +     }
>> +}
>> +
>> +/**
>> + * cik_mm_wdoorbell - write a doorbell dword
>> + *
>> + * @rdev: radeon_device pointer
>> + * @offset: byte offset into the aperture
>> + * @v: value to write
>> + *
>> + * Writes @v to the doorbell aperture at the
>> + * requested offset (CIK).
>> + */
>> +void cik_mm_wdoorbell(struct radeon_device *rdev, u32 offset, u32 v)
>> +{
>> +     if (offset < rdev->doorbell.size) {
>> +             writel(v, ((void __iomem *)rdev->doorbell.ptr) + offset);
>> +     } else {
>> +             DRM_ERROR("writing beyond doorbell aperture: 0x%08x!\n", offset);
>> +     }
>> +}
>> +
>>  #define BONAIRE_IO_MC_REGS_SIZE 36
>>
>>  static const u32 bonaire_io_mc_regs[BONAIRE_IO_MC_REGS_SIZE][2] =
>> diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h
>> index ad4e68a..a2a3430 100644
>> --- a/drivers/gpu/drm/radeon/radeon.h
>> +++ b/drivers/gpu/drm/radeon/radeon.h
>> @@ -556,6 +556,20 @@ struct radeon_scratch {
>>  int radeon_scratch_get(struct radeon_device *rdev, uint32_t *reg);
>>  void radeon_scratch_free(struct radeon_device *rdev, uint32_t reg);
>>
>> +/*
>> + * GPU doorbell structures, functions & helpers
>> + */
>> +struct radeon_doorbell {
>> +     u32                     num_pages;
>> +     bool                    free[1024];
>> +     /* doorbell mmio */
>> +     resource_size_t                 base;
>> +     resource_size_t                 size;
>> +     void __iomem                    *ptr;
>> +};
>> +
>> +int radeon_doorbell_get(struct radeon_device *rdev, u32 *page);
>> +void radeon_doorbell_free(struct radeon_device *rdev, u32 doorbell);
>>
>>  /*
>>   * IRQS.
>> @@ -1711,6 +1725,7 @@ struct radeon_device {
>>       struct radeon_gart              gart;
>>       struct radeon_mode_info         mode_info;
>>       struct radeon_scratch           scratch;
>> +     struct radeon_doorbell          doorbell;
>>       struct radeon_mman              mman;
>>       struct radeon_fence_driver      fence_drv[RADEON_NUM_RINGS];
>>       wait_queue_head_t               fence_queue;
>> @@ -1784,6 +1799,9 @@ void r100_mm_wreg(struct radeon_device *rdev, uint32_t reg, uint32_t v,
>>  u32 r100_io_rreg(struct radeon_device *rdev, u32 reg);
>>  void r100_io_wreg(struct radeon_device *rdev, u32 reg, u32 v);
>>
>> +u32 cik_mm_rdoorbell(struct radeon_device *rdev, u32 offset);
>> +void cik_mm_wdoorbell(struct radeon_device *rdev, u32 offset, u32 v);
>> +
>>  /*
>>   * Cast helper
>>   */
>> @@ -1833,6 +1851,9 @@ void r100_io_wreg(struct radeon_device *rdev, u32 reg, u32 v);
>>  #define RREG32_IO(reg) r100_io_rreg(rdev, (reg))
>>  #define WREG32_IO(reg, v) r100_io_wreg(rdev, (reg), (v))
>>
>> +#define RDOORBELL32(offset) cik_mm_rdoorbell(rdev, (offset))
>> +#define WDOORBELL32(offset, v) cik_mm_wdoorbell(rdev, (offset), (v))
>> +
>>  /*
>>   * Indirect registers accessor
>>   */
>> diff --git a/drivers/gpu/drm/radeon/radeon_device.c b/drivers/gpu/drm/radeon/radeon_device.c
>> index 4e97ff7..82335e3 100644
>> --- a/drivers/gpu/drm/radeon/radeon_device.c
>> +++ b/drivers/gpu/drm/radeon/radeon_device.c
>> @@ -232,6 +232,94 @@ void radeon_scratch_free(struct radeon_device *rdev, uint32_t reg)
>>  }
>>
>>  /*
>> + * GPU doorbell aperture helpers function.
>> + */
>> +/**
>> + * radeon_doorbell_init - Init doorbell driver information.
>> + *
>> + * @rdev: radeon_device pointer
>> + *
>> + * Init doorbell driver information (CIK)
>> + * Returns 0 on success, error on failure.
>> + */
>> +int radeon_doorbell_init(struct radeon_device *rdev)
>> +{
>> +     int i;
>> +
>> +     /* doorbell bar mapping */
>> +     rdev->doorbell.base = pci_resource_start(rdev->pdev, 2);
>> +     rdev->doorbell.size = pci_resource_len(rdev->pdev, 2);
>> +
>> +     /* limit to 4 MB for now */
>> +     if (rdev->doorbell.size > (4 * 1024 * 1024))
>> +             rdev->doorbell.size = 4 * 1024 * 1024;
>> +
>> +     rdev->doorbell.ptr = ioremap(rdev->doorbell.base, rdev->doorbell.size);
>> +     if (rdev->doorbell.ptr == NULL) {
>> +             return -ENOMEM;
>> +     }
>> +     DRM_INFO("doorbell mmio base: 0x%08X\n", (uint32_t)rdev->doorbell.base);
>> +     DRM_INFO("doorbell mmio size: %u\n", (unsigned)rdev->doorbell.size);
>> +
>> +     rdev->doorbell.num_pages = rdev->doorbell.size / PAGE_SIZE;
>> +
>> +     for (i = 0; i < rdev->doorbell.num_pages; i++) {
>> +             rdev->doorbell.free[i] = true;
>> +     }
>> +     return 0;
>> +}
>> +
>> +/**
>> + * radeon_doorbell_fini - Tear down doorbell driver information.
>> + *
>> + * @rdev: radeon_device pointer
>> + *
>> + * Tear down doorbell driver information (CIK)
>> + */
>> +void radeon_doorbell_fini(struct radeon_device *rdev)
>> +{
>> +     iounmap(rdev->doorbell.ptr);
>> +     rdev->doorbell.ptr = NULL;
>> +}
>> +
>> +/**
>> + * radeon_doorbell_get - Allocate a doorbell page
>> + *
>> + * @rdev: radeon_device pointer
>> + * @doorbell: doorbell page number
>> + *
>> + * Allocate a doorbell page for use by the driver (all asics).
>> + * Returns 0 on success or -EINVAL on failure.
>> + */
>> +int radeon_doorbell_get(struct radeon_device *rdev, u32 *doorbell)
>> +{
>> +     int i;
>> +
>> +     for (i = 0; i < rdev->doorbell.num_pages; i++) {
>> +             if (rdev->doorbell.free[i]) {
>> +                     rdev->doorbell.free[i] = false;
>> +                     *doorbell = i;
>> +                     return 0;
>> +             }
>> +     }
>> +     return -EINVAL;
>> +}
>> +
>> +/**
>> + * radeon_doorbell_free - Free a doorbell page
>> + *
>> + * @rdev: radeon_device pointer
>> + * @doorbell: doorbell page number
>> + *
>> + * Free a doorbell page allocated for use by the driver (all asics)
>> + */
>> +void radeon_doorbell_free(struct radeon_device *rdev, u32 doorbell)
>> +{
>> +     if (doorbell < rdev->doorbell.num_pages)
>> +             rdev->doorbell.free[doorbell] = true;
>> +}
>> +
>> +/*
>>   * radeon_wb_*()
>>   * Writeback is the the method by which the the GPU updates special pages
>>   * in memory with the status of certain GPU events (fences, ring pointers,
>> @@ -1162,6 +1250,10 @@ int radeon_device_init(struct radeon_device *rdev,
>>       DRM_INFO("register mmio base: 0x%08X\n", (uint32_t)rdev->rmmio_base);
>>       DRM_INFO("register mmio size: %u\n", (unsigned)rdev->rmmio_size);
>>
>> +     /* doorbell bar mapping */
>> +     if (rdev->family >= CHIP_BONAIRE)
>> +             radeon_doorbell_init(rdev);
>> +
>>       /* io port mapping */
>>       for (i = 0; i < DEVICE_COUNT_RESOURCE; i++) {
>>               if (pci_resource_flags(rdev->pdev, i) & IORESOURCE_IO) {
>> @@ -1239,6 +1331,8 @@ void radeon_device_fini(struct radeon_device *rdev)
>>       rdev->rio_mem = NULL;
>>       iounmap(rdev->rmmio);
>>       rdev->rmmio = NULL;
>> +     if (rdev->family >= CHIP_BONAIRE)
>> +             radeon_doorbell_fini(rdev);
>>       radeon_debugfs_remove_files(rdev);
>>  }
>>
>> --
>> 1.7.7.5
>>
>> _______________________________________________
>> dri-devel mailing list
>> dri-devel@lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/dri-devel

  reply	other threads:[~2013-06-26 18:38 UTC|newest]

Thread overview: 142+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-06-26 13:21 [PATCH 000/165] radeon drm-next patches alexdeucher
2013-06-26 12:55 ` Jerome Glisse
2013-06-26 13:21 ` [PATCH 001/165] drm/radeon: fix AVI infoframe generation alexdeucher
2013-06-26 13:21 ` [PATCH 002/165] drm/radeon: add backlight quirk for hybrid mac alexdeucher
2013-06-26 13:21 ` [PATCH 003/165] drm/radeon: add a reset work handler alexdeucher
2013-06-26 13:21 ` [PATCH 004/165] drm/radeon: add CIK chip families alexdeucher
2013-06-26 13:21 ` [PATCH 005/165] drm/radeon: add DCE8 macro for CIK alexdeucher
2013-06-26 13:21 ` [PATCH 006/165] drm/radeon: adapt to PCI BAR changes on CIK alexdeucher
2013-06-26 13:21 ` [PATCH 007/165] drm/radeon: add gpu init support for CIK (v9) alexdeucher
2013-06-26 13:21 ` [PATCH 008/165] drm/radeon: Add support for CIK GPU reset (v2) alexdeucher
2013-06-26 13:21 ` [PATCH 009/165] drm/radeon: add support for MC/VM setup on CIK (v6) alexdeucher
2013-06-26 13:21 ` [PATCH 010/165] drm/radeon/cik: stop page faults from hanging the system (v2) alexdeucher
2013-06-26 13:21 ` [PATCH 011/165] drm/radeon: add initial ucode loading for CIK (v5) alexdeucher
2013-06-26 13:21 ` [PATCH 012/165] drm/radeon: add support mc ucode loading on CIK (v2) alexdeucher
2013-06-26 13:21 ` [PATCH 013/165] drm/radeon: Add CP init for CIK (v7) alexdeucher
2013-06-26 13:21 ` [PATCH 014/165] drm/radeon: add IB and fence dispatch functions for CIK gfx (v7) alexdeucher
2013-06-26 13:21 ` [PATCH 015/165] drm/radeon: add ring and IB tests for CIK (v3) alexdeucher
2013-06-26 13:21 ` [PATCH 016/165] drm/radeon: implement async vm_flush for the CP (v7) alexdeucher
2013-06-26 13:21 ` [PATCH 017/165] drm/radeon: Add support for RLC init on CIK (v4) alexdeucher
2013-06-26 13:21 ` [PATCH 018/165] drm/radeon: add support for interrupts on CIK (v5) alexdeucher
2013-06-26 13:21 ` [PATCH 019/165] drm/radeon/cik: log and handle VM page fault interrupts alexdeucher
2013-06-26 13:21 ` [PATCH 020/165] drm/radeon/cik: add support for sDMA dma engines (v8) alexdeucher
2013-06-26 13:21 ` [PATCH 021/165] drm/radeon: implement async vm_flush for the sDMA (v6) alexdeucher
2013-06-26 13:21 ` [PATCH 022/165] drm/radeon/cik: add support for doing async VM pt updates (v5) alexdeucher
2013-06-26 13:21 ` [PATCH 023/165] drm/radeon/cik: fill in startup/shutdown callbacks (v4) alexdeucher
2013-06-26 15:03   ` Christian König
2013-06-26 13:21 ` [PATCH 024/165] drm/radeon: upstream ObjectID.h updates (v2) alexdeucher
2013-06-26 13:21 ` [PATCH 025/165] drm/radeon: upstream atombios.h " alexdeucher
2013-06-26 13:21 ` [PATCH 026/165] drm/radeon: atombios power table " alexdeucher
2013-06-26 13:21 ` [PATCH 027/165] drm/radeon: handle the integrated thermal controller on CI alexdeucher
2013-06-26 13:21 ` [PATCH 028/165] drm/radeon: update power state parsing for CI alexdeucher
2013-06-26 13:21 ` [PATCH 029/165] drm/radeon/dce8: add support for display watermark setup alexdeucher
2013-06-26 13:21 ` [PATCH 030/165] drm/radeon/cik: add hw cursor support (v2) alexdeucher
2013-06-26 13:21 ` [PATCH 031/165] drm/radeon/dce8: properly handle interlaced timing alexdeucher
2013-06-26 13:21 ` [PATCH 032/165] drm/radeon/dce8: crtc_set_base updates alexdeucher
2013-06-26 13:21 ` [PATCH 033/165] drm/radeon/atom: add DCE8 encoder support alexdeucher
2013-06-26 13:21 ` [PATCH 034/165] drm/radeon/atom: add support for new DVO tables alexdeucher
2013-06-26 13:21 ` [PATCH 035/165] drm/radeon: update DISPCLK programming for DCE8 alexdeucher
2013-06-26 13:21 ` [PATCH 036/165] drm/radeon: add support pll selection for DCE8 (v4) alexdeucher
2013-06-26 13:21 ` [PATCH 037/165] drm/radeon: Handle PPLL0 powerdown on DCE8 alexdeucher
2013-06-26 13:21 ` [PATCH 038/165] drm/radeon: use frac fb div " alexdeucher
2013-06-26 13:21 ` [PATCH 039/165] drm/radeon: add SS override support for KB/KV alexdeucher
2013-06-26 13:22 ` [PATCH 040/165] drm/radeon: Update radeon_info_ioctl for CIK (v2) alexdeucher
2013-06-26 13:22 ` [PATCH 041/165] drm/radeon: add get_gpu_clock_counter() callback for cik alexdeucher
2013-06-26 13:22 ` [PATCH 042/165] drm/radeon: update CIK soft reset alexdeucher
2013-06-26 13:22 ` [PATCH 043/165] drm/radeon: add indirect register accessors for SMC registers alexdeucher
2013-06-26 13:22 ` [PATCH 044/165] drm/radeon: add get_xclk() callback for CIK alexdeucher
2013-06-26 13:22 ` [PATCH 045/165] drm/radeon/cik: add pcie_port indirect register accessors alexdeucher
2013-06-26 13:22 ` [PATCH 046/165] drm/radeon: update radeon_atom_get_clock_dividers() for SI alexdeucher
2013-06-26 13:22 ` [PATCH 047/165] drm/radeon: update radeon_atom_get_clock_dividers for CIK alexdeucher
2013-06-26 13:22 ` [PATCH 048/165] drm/radeon: add UVD support for CIK (v3) alexdeucher
2013-06-26 13:22 ` [PATCH 049/165] drm/radeon/cik: add srbm_select function alexdeucher
2013-06-26 13:22 ` [PATCH 050/165] drm/radeon: use callbacks for ring pointer handling alexdeucher
2013-06-26 15:31   ` Christian König
2013-06-26 13:22 ` [PATCH 051/165] drm/radeon: implement simple doorbell page allocator alexdeucher
2013-06-26 12:57   ` Jerome Glisse
2013-06-26 18:38     ` Alex Deucher [this message]
2013-06-26 13:22 ` [PATCH 052/165] drm/radeon/cik: Add support for compute queues (v2) alexdeucher
2013-06-26 10:08   ` Jerome Glisse
2013-06-26 13:22 ` [PATCH 053/165] drm/radeon/cik: switch to type3 nop packet for compute rings alexdeucher
2013-06-26 10:10   ` Jerome Glisse
2013-06-26 13:22 ` [PATCH 054/165] drm/radeon: fix up ring functions " alexdeucher
2013-06-26 13:22 ` [PATCH 055/165] drm/radeon/cik: add support for compute interrupts alexdeucher
2013-06-26 13:22 ` [PATCH 056/165] drm/radeon/cik: add support for golden register init alexdeucher
2013-06-26 13:22 ` [PATCH 057/165] drm/radeon: add radeon_asic struct for CIK (v11) alexdeucher
2013-06-26 13:22 ` [PATCH 058/165] drm/radeon: add cik tile mode array query alexdeucher
2013-06-26 13:22 ` [PATCH 059/165] drm/radeon: add current Bonaire PCI ids alexdeucher
2013-06-26 13:22 ` [PATCH 060/165] drm/radeon: add current KB pci ids alexdeucher
2013-06-26 13:22 ` [PATCH 061/165] drm/radeon/kms: add accessors for RCU indirect space alexdeucher
2013-06-26 13:22 ` [PATCH 062/165] drm/radeon/evergreen: add indirect register accessors for CG registers alexdeucher
2013-06-26 13:22 ` [PATCH 063/165] drm/radeon: make get_temperature functions a callback alexdeucher
2013-06-26 13:22 ` [PATCH 064/165] drm/radeon: add support for thermal sensor on tn alexdeucher
2013-06-26 13:22 ` [PATCH 065/165] drm/radeon/kms: move ucode defines to a separate header alexdeucher
2013-06-26 13:22 ` [PATCH 066/165] drm/radeon: properly set up the RLC on ON/LN/TN (v3) alexdeucher
2013-06-26 13:22 ` [PATCH 067/165] drm/radeon/kms: add atom helper functions for dpm (v3) alexdeucher
2013-06-26 13:22 ` [PATCH 068/165] drm/radeon/kms: add new asic struct for rv6xx (v3) alexdeucher
2013-06-26 13:22 ` [PATCH 069/165] drm/radeon/kms: add common dpm infrastructure alexdeucher
2013-06-26 10:27   ` Jerome Glisse
2013-06-27 13:52   ` K. Schnass
2013-06-26 13:22 ` [PATCH 070/165] drm/radeon/kms: fix up rs780/rs880 display watermark calc for dpm alexdeucher
2013-06-26 13:22 ` [PATCH 071/165] drm/radeon/kms: fix up 6xx/7xx " alexdeucher
2013-06-26 13:22 ` [PATCH 072/165] drm/radeon/kms: fix up dce4/5 " alexdeucher
2013-06-26 13:22 ` [PATCH 073/165] drm/radeon/kms: fix up dce6 " alexdeucher
2013-06-26 13:22 ` [PATCH 074/165] drm/radeon/kms: add common r600 dpm functions alexdeucher
2013-06-26 13:22 ` [PATCH 075/165] drm/radeon/kms: add dpm support for rs780/rs880 alexdeucher
2013-06-26 10:46   ` Jerome Glisse
2013-06-26 18:19     ` Alex Deucher
2013-06-26 13:18       ` Jerome Glisse
2013-06-26 18:41         ` Alex Deucher
2013-06-26 13:22 ` [PATCH 076/165] drm/radeon/kms: add dpm support for rv6xx alexdeucher
2013-06-26 16:45   ` Christian König
2013-06-26 13:22 ` [PATCH 077/165] drm/radeon/kms: add dpm support for rv7xx (v2) alexdeucher
2013-06-26 13:22 ` [PATCH 078/165] drm/radeon/kms: add dpm support for evergreen (v2) alexdeucher
2013-06-26 13:22 ` [PATCH 079/165] drm/radeon/kms: add dpm support for btc (v2) alexdeucher
2013-06-26 13:22 ` [PATCH 080/165] drm/radeon/kms: add dpm support for sumo asics alexdeucher
2013-06-26 11:19   ` Jerome Glisse
2013-06-26 13:22 ` [PATCH 081/165] drm/radeon/kms: add dpm support for trinity asics alexdeucher
2013-06-26 13:22 ` [PATCH 082/165] drm/radeon/dpm: let atom control display phy powergating alexdeucher
2013-06-26 13:22 ` [PATCH 083/165] drm/radeon: add dpm UVD handling for r7xx asics alexdeucher
2013-06-26 13:22 ` [PATCH 084/165] drm/radeon: add dpm UVD handling for evergreen/btc asics alexdeucher
2013-06-26 13:22 ` [PATCH 085/165] drm/radeon: add dpm UVD handling for sumo asics alexdeucher
2013-06-26 13:22 ` [PATCH 086/165] drm/radeon: add dpm UVD handling for TN asics (v2) alexdeucher
2013-06-26 13:22 ` [PATCH 087/165] drm/radeon/kms: enable UVD as needed (v9) alexdeucher
2013-06-26 13:22 ` [PATCH 088/165] drm/radeon/dpm: add helpers for extended power tables (v2) alexdeucher
2013-06-26 13:22 ` [PATCH 089/165] drm/radeon/dpm: track whether we are on AC or battery alexdeucher
2013-06-26 13:22 ` [PATCH 090/165] drm/radeon/dpm: fixup dynamic state adjust for sumo alexdeucher
2013-06-26 13:22 ` [PATCH 091/165] drm/radeon/dpm: fixup dynamic state adjust for TN alexdeucher
2013-06-26 13:22 ` [PATCH 092/165] drm/radeon/dpm: fixup dynamic state adjust for btc (v2) alexdeucher
2013-06-26 13:22 ` [PATCH 093/165] drm/radeon/kms: add dpm support for cayman alexdeucher
2013-06-26 11:29   ` Jerome Glisse
2013-06-26 13:22 ` [PATCH 094/165] drm/radeon/cayman: update tdp limits in set_power_state alexdeucher
2013-06-26 13:22 ` [PATCH 095/165] drm/radeon/dpm/rs780: restructure code alexdeucher
2013-06-26 13:22 ` [PATCH 096/165] drm/radeon/dpm/rv6xx: " alexdeucher
2013-06-26 13:22 ` [PATCH 097/165] drm/radeon/dpm/rv7xx: " alexdeucher
2013-06-26 13:22 ` [PATCH 098/165] drm/radeon/dpm/evergreen: " alexdeucher
2013-06-26 13:22 ` [PATCH 099/165] drm/radeon/dpm/btc: " alexdeucher
2013-06-26 13:23 ` [PATCH 100/165] drm/radeon/dpm/cayman: " alexdeucher
2013-06-26 13:23 ` [PATCH 101/165] drm/radeon/dpm/sumo: " alexdeucher
2013-06-26 13:23 ` [PATCH 102/165] drm/radeon/dpm/tn: " alexdeucher
2013-06-26 13:23 ` [PATCH 103/165] drm/radeon/dpm: add new pre/post_set_power_state callbacks alexdeucher
2013-06-26 13:23 ` [PATCH 104/165] drm/radeon/dpm: add pre/post_set_power_state callbacks (6xx-eg) alexdeucher
2013-06-26 13:23 ` [PATCH 105/165] drm/radeon/dpm: add pre/post_set_power_state callback (sumo) alexdeucher
2013-06-26 13:23 ` [PATCH 106/165] drm/radeon/dpm: add pre/post_set_power_state callback (TN) alexdeucher
2013-06-26 13:23 ` [PATCH 107/165] drm/radeon/dpm: add pre/post_set_power_state callback (BTC) alexdeucher
2013-06-26 13:23 ` [PATCH 108/165] drm/radeon/dpm: add pre/post_set_power_state callback (cayman) alexdeucher
2013-06-26 13:23 ` [PATCH 109/165] drm/radeon/dpm: remove broken dyn state remnants alexdeucher
2013-06-26 13:23 ` [PATCH 110/165] drm/radeon: add missing UVD clock set in cayman dpm code alexdeucher
2013-06-26 13:23 ` [PATCH 111/165] drm/radeon/dpm: remove local sumo_get_xclk() alexdeucher
2013-06-26 21:57 ` [PATCH 000/165] radeon drm-next patches Julian Wollrath
2013-06-26 22:51   ` Julian Wollrath
2013-06-27 14:21     ` Jerome Glisse
2013-06-27 21:26       ` Julian Wollrath
2013-06-29 17:37   ` Grigori Goronzy
2013-06-26 22:23 ` Alex Deucher
2013-06-27 13:12   ` Andy Furniss
2013-06-27 14:55     ` Alex Deucher
2013-06-27 22:19       ` James Cloos
2013-06-27 22:52         ` Jerome Glisse
2013-06-27 23:55     ` Alex Deucher
2013-06-28 13:00       ` Laurent Carlier
2013-06-29  9:28       ` Andy Furniss
2013-06-29 10:23         ` Ilyes Gouta

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='CADnq5_PbByt7K_JsTLocHQvjoWmsw9s3hwaMjDCAw=pJpeP3mw@mail.gmail.com' \
    --to=alexdeucher@gmail.com \
    --cc=alexander.deucher@amd.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=j.glisse@gmail.com \
    /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.