diff --git a/drivers/pnp/isapnp/core.c b/drivers/pnp/isapnp/core.c index c4b95b5..0a41e05 100644 --- a/drivers/pnp/isapnp/core.c +++ b/drivers/pnp/isapnp/core.c @@ -403,14 +403,12 @@ static void __init isapnp_skip_bytes(int count) static void isapnp_to_pnpid(unsigned short vendor, unsigned short device, char *id) { - id[0] = 'A' + ((vendor >> 2) & 0x3f) - 1; - id[1] = 'A' + (((vendor & 3) << 3) | ((vendor >> 13) & 7)) - 1; - id[2] = 'A' + ((vendor >> 8) & 0x1f) - 1; - id[3] = '0' + ((device >> 4) & 0x0f); - id[4] = '0' + (device & 0x0f); - id[5] = '0' + ((device >> 12) & 0x0f); - id[6] = '0' + ((device >> 8) & 0x0f); - id[7] = '\0'; + sprintf(id, "%c%c%c%x%x%x%x", + 'A' + ((vendor >> 2) & 0x3f) - 1, + 'A' + (((vendor & 3) << 3) | ((vendor >> 13) & 7)) - 1, + 'A' + ((vendor >> 8) & 0x1f) - 1, + (device >> 4) & 0x0f, device & 0x0f, + (device >> 12) & 0x0f, (device >> 8) & 0x0f); } /*