|
@@ -57,6 +57,7 @@
|
|
|
#include <linux/kernel.h>
|
|
|
#include <linux/errno.h>
|
|
|
#include <linux/string.h>
|
|
|
+#include <linux/ctype.h>
|
|
|
#include <linux/mm.h>
|
|
|
#include <linux/slab.h>
|
|
|
#include <linux/delay.h>
|
|
@@ -2158,6 +2159,7 @@ static int __devinit radeonfb_pci_register (struct pci_dev *pdev,
|
|
|
struct fb_info *info;
|
|
|
struct radeonfb_info *rinfo;
|
|
|
int ret;
|
|
|
+ unsigned char c1, c2;
|
|
|
|
|
|
RTRACE("radeonfb_pci_register BEGIN\n");
|
|
|
|
|
@@ -2185,9 +2187,15 @@ static int __devinit radeonfb_pci_register (struct pci_dev *pdev,
|
|
|
rinfo->lvds_timer.function = radeon_lvds_timer_func;
|
|
|
rinfo->lvds_timer.data = (unsigned long)rinfo;
|
|
|
|
|
|
- strcpy(rinfo->name, "ATI Radeon XX ");
|
|
|
- rinfo->name[11] = ent->device >> 8;
|
|
|
- rinfo->name[12] = ent->device & 0xFF;
|
|
|
+ c1 = ent->device >> 8;
|
|
|
+ c2 = ent->device & 0xff;
|
|
|
+ if (isprint(c1) && isprint(c2))
|
|
|
+ snprintf(rinfo->name, sizeof(rinfo->name),
|
|
|
+ "ATI Radeon %x \"%c%c\"", ent->device & 0xffff, c1, c2);
|
|
|
+ else
|
|
|
+ snprintf(rinfo->name, sizeof(rinfo->name),
|
|
|
+ "ATI Radeon %x", ent->device & 0xffff);
|
|
|
+
|
|
|
rinfo->family = ent->driver_data & CHIP_FAMILY_MASK;
|
|
|
rinfo->chipset = pdev->device;
|
|
|
rinfo->has_CRTC2 = (ent->driver_data & CHIP_HAS_CRTC2) != 0;
|