On Fri, Feb 12, 2010 at 3:55 AM, Pauli Nieminen <suok...@gmail.com> wrote:
> Setting global asic structure to point to different function
> would cause problem in system where is multiple r300 cards
> with different bus type.

This contains a typo which I fixed locally please make sure it
compiles before sending to me ;-)

hint: rv370_pci_set_gart_flush

Dave.

>
> r300_asic_pcie is just copy from r300_asic with gart tlb
> functions replaced with pcie versions.
>
> Signed-off-by: Pauli Nieminen <suok...@gmail.com>
> ---
>  drivers/gpu/drm/radeon/radeon_asic.h   |   38 
> ++++++++++++++++++++++++++++++++
>  drivers/gpu/drm/radeon/radeon_device.c |    9 +++----
>  2 files changed, 42 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/gpu/drm/radeon/radeon_asic.h 
> b/drivers/gpu/drm/radeon/radeon_asic.h
> index 0971e7e..af18ffe 100644
> --- a/drivers/gpu/drm/radeon/radeon_asic.h
> +++ b/drivers/gpu/drm/radeon/radeon_asic.h
> @@ -221,6 +221,44 @@ static struct radeon_asic r300_asic = {
>        .ioctl_wait_idle = NULL,
>  };
>
> +
> +static struct radeon_asic r300_asic_pcie = {
> +       .init = &r300_init,
> +       .fini = &r300_fini,
> +       .suspend = &r300_suspend,
> +       .resume = &r300_resume,
> +       .vga_set_state = &r100_vga_set_state,
> +       .gpu_reset = &r300_gpu_reset,
> +       .gart_tlb_flush = &rv370_pci_gart_tlb_flush,
> +       .gart_set_page = &rv370_pci_gart_set_page,
> +       .cp_commit = &r100_cp_commit,
> +       .ring_start = &r300_ring_start,
> +       .ring_test = &r100_ring_test,
> +       .ring_ib_execute = &r100_ring_ib_execute,
> +       .irq_set = &r100_irq_set,
> +       .irq_process = &r100_irq_process,
> +       .get_vblank_counter = &r100_get_vblank_counter,
> +       .fence_ring_emit = &r300_fence_ring_emit,
> +       .cs_parse = &r300_cs_parse,
> +       .copy_blit = &r100_copy_blit,
> +       .copy_dma = &r200_copy_dma,
> +       .copy = &r100_copy_blit,
> +       .get_engine_clock = &radeon_legacy_get_engine_clock,
> +       .set_engine_clock = &radeon_legacy_set_engine_clock,
> +       .get_memory_clock = &radeon_legacy_get_memory_clock,
> +       .set_memory_clock = NULL,
> +       .set_pcie_lanes = &rv370_set_pcie_lanes,
> +       .set_clock_gating = &radeon_legacy_set_clock_gating,
> +       .set_surface_reg = r100_set_surface_reg,
> +       .clear_surface_reg = r100_clear_surface_reg,
> +       .bandwidth_update = &r100_bandwidth_update,
> +       .hpd_init = &r100_hpd_init,
> +       .hpd_fini = &r100_hpd_fini,
> +       .hpd_sense = &r100_hpd_sense,
> +       .hpd_set_polarity = &r100_hpd_set_polarity,
> +       .ioctl_wait_idle = NULL,
> +};
> +
>  /*
>  * r420,r423,rv410
>  */
> diff --git a/drivers/gpu/drm/radeon/radeon_device.c 
> b/drivers/gpu/drm/radeon/radeon_device.c
> index b5c9d38..767aed8 100644
> --- a/drivers/gpu/drm/radeon/radeon_device.c
> +++ b/drivers/gpu/drm/radeon/radeon_device.c
> @@ -341,11 +341,10 @@ int radeon_asic_init(struct radeon_device *rdev)
>        case CHIP_R350:
>        case CHIP_RV350:
>        case CHIP_RV380:
> -               rdev->asic = &r300_asic;
> -               if (rdev->flags & RADEON_IS_PCIE) {
> -                       rdev->asic->gart_tlb_flush = 
> &rv370_pcie_gart_tlb_flush;
> -                       rdev->asic->gart_set_page = &rv370_pcie_gart_set_page;
> -               }
> +               if (rdev->flags & RADEON_IS_PCIE)
> +                       rdev->asic = &r300_asic_pcie;
> +               else
> +                       rdev->asic = &r300_asic;
>                break;
>        case CHIP_R420:
>        case CHIP_R423:
> --
> 1.6.3.3
>
>
> ------------------------------------------------------------------------------
> SOLARIS 10 is the OS for Data Centers - provides features such as DTrace,
> Predictive Self Healing and Award Winning ZFS. Get Solaris 10 NOW
> http://p.sf.net/sfu/solaris-dev2dev
> --
> _______________________________________________
> Dri-devel mailing list
> Dri-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/dri-devel
>

------------------------------------------------------------------------------
Download Intel&reg; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs 
proactively, and fine-tune applications for parallel performance. 
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
--
_______________________________________________
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to