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