On Thu, Dec 10, 2009 at 3:35 AM, Jerome Glisse <jgli...@redhat.com> wrote:
> This patch add a function which check module argument to be
> valid. On invalid argument it prints a warning and setback
> the default value.

This seems to screw up here and prints

radeon 0000:06:00.0: vram limit (0) must be a power of 2
radeon 0000:06:00.0: invalida AGP mode 0 (valid mode: -1, 1, 2, 4, 8)

on a PCIE box with no params specified.

Dave.

>
> Signed-off-by: Jerome Glisse <jgli...@redhat.com>
> ---
>  drivers/gpu/drm/radeon/radeon_device.c |   66 +++++++++++++++++++++++++++++--
>  1 files changed, 61 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/gpu/drm/radeon/radeon_device.c 
> b/drivers/gpu/drm/radeon/radeon_device.c
> index f31cc62..2915078 100644
> --- a/drivers/gpu/drm/radeon/radeon_device.c
> +++ b/drivers/gpu/drm/radeon/radeon_device.c
> @@ -538,9 +538,65 @@ void radeon_agp_disable(struct radeon_device *rdev)
>        }
>  }
>
> -/*
> - * Radeon device.
> - */
> +void radeon_check_arguments(struct radeon_device *rdev)
> +{
> +       /* vramlimit must be a power of two */
> +       switch (radeon_vram_limit) {
> +       case 4:
> +       case 8:
> +       case 16:
> +       case 32:
> +       case 64:
> +       case 128:
> +       case 256:
> +       case 512:
> +       case 1024:
> +       case 2048:
> +       case 4096:
> +               break;
> +       default:
> +               dev_warn(rdev->dev, "vram limit (%d) must be a power of 2\n",
> +                               radeon_vram_limit);
> +               radeon_vram_limit = 0;
> +               break;
> +       }
> +       radeon_vram_limit = radeon_vram_limit << 20;
> +       /* gtt size must be power of two */
> +       switch (radeon_gart_size) {
> +       case 4:
> +       case 8:
> +       case 16:
> +       case 32:
> +       case 64:
> +       case 128:
> +       case 256:
> +       case 512:
> +       case 1024:
> +       case 2048:
> +       case 4096:
> +               break;
> +       default:
> +               dev_warn(rdev->dev, "gart size (%d) must be a power of 2\n",
> +                               radeon_gart_size);
> +               radeon_gart_size = 512;
> +               break;
> +       }
> +       /* AGP mode can only be -1, 1, 2, 4, 8 */
> +       switch (radeon_agpmode) {
> +       case -1:
> +       case 1:
> +       case 2:
> +       case 4:
> +       case 8:
> +               break;
> +       default:
> +               dev_warn(rdev->dev, "invalida AGP mode %d (valid mode: "
> +                               "-1, 1, 2, 4, 8)\n", radeon_agpmode);
> +               radeon_agpmode = 0;
> +               break;
> +       }
> +}
> +
>  int radeon_device_init(struct radeon_device *rdev,
>                       struct drm_device *ddev,
>                       struct pci_dev *pdev,
> @@ -574,9 +630,9 @@ int radeon_device_init(struct radeon_device *rdev,
>
>        /* Set asic functions */
>        r = radeon_asic_init(rdev);
> -       if (r) {
> +       if (r)
>                return r;
> -       }
> +       radeon_check_arguments(rdev);
>
>        if (rdev->flags & RADEON_IS_AGP && radeon_agpmode == -1) {
>                radeon_agp_disable(rdev);
> --
> 1.6.5.2
>
>

------------------------------------------------------------------------------
Return on Information:
Google Enterprise Search pays you back
Get the facts.
http://p.sf.net/sfu/google-dev2dev
--
_______________________________________________
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to