~ruther/qmk_firmware

15faffacf49240ea95a0f0121511e6b2fb4c914c — Ryan 4 years ago e388828
Omit serial number if not defined (#11104)

2 files changed, 16 insertions(+), 8 deletions(-)

M tmk_core/protocol/usb_descriptor.c
M tmk_core/protocol/vusb/vusb.c
M tmk_core/protocol/usb_descriptor.c => tmk_core/protocol/usb_descriptor.c +8 -4
@@ 374,7 374,11 @@ const USB_Descriptor_Device_t PROGMEM DeviceDescriptor = {
    .ReleaseNumber              = DEVICE_VER,
    .ManufacturerStrIndex       = 0x01,
    .ProductStrIndex            = 0x02,
#if defined(SERIAL_NUMBER)
    .SerialNumStrIndex          = 0x03,
#else
    .SerialNumStrIndex          = 0x00,
#endif
    .NumberOfConfigurations     = FIXED_NUM_CONFIGURATIONS
};



@@ 950,10 954,7 @@ const USB_Descriptor_String_t PROGMEM ProductString = {
    .UnicodeString              = LSTR(PRODUCT)
};

#ifndef SERIAL_NUMBER
#    define SERIAL_NUMBER 0
#endif

#if defined(SERIAL_NUMBER)
const USB_Descriptor_String_t PROGMEM SerialNumberString = {
    .Header = {
        .Size                   = USB_STRING_LEN(sizeof(STR(SERIAL_NUMBER)) - 1), // Subtract 1 for null terminator


@@ 961,6 962,7 @@ const USB_Descriptor_String_t PROGMEM SerialNumberString = {
    },
    .UnicodeString              = LSTR(SERIAL_NUMBER)
};
#endif

// clang-format on



@@ 1005,11 1007,13 @@ uint16_t get_usb_descriptor(const uint16_t wValue, const uint16_t wIndex, const 
                    Size    = pgm_read_byte(&ProductString.Header.Size);

                    break;
#if defined(SERIAL_NUMBER)
                case 0x03:
                    Address = &SerialNumberString;
                    Size    = pgm_read_byte(&SerialNumberString.Header.Size);

                    break;
#endif
            }

            break;

M tmk_core/protocol/vusb/vusb.c => tmk_core/protocol/vusb/vusb.c +8 -4
@@ 531,10 531,6 @@ const PROGMEM uchar console_hid_report[] = {
};
#endif

#ifndef SERIAL_NUMBER
#    define SERIAL_NUMBER 0
#endif

#ifndef USB_MAX_POWER_CONSUMPTION
#    define USB_MAX_POWER_CONSUMPTION 500
#endif


@@ 569,6 565,7 @@ const PROGMEM usbStringDescriptor_t usbStringDescriptorProduct = {
    .bString             = LSTR(PRODUCT)
};

#if defined(SERIAL_NUMBER)
const PROGMEM usbStringDescriptor_t usbStringDescriptorSerial = {
    .header = {
        .bLength         = USB_STRING_LEN(sizeof(STR(SERIAL_NUMBER)) - 1),


@@ 576,6 573,7 @@ const PROGMEM usbStringDescriptor_t usbStringDescriptorSerial = {
    },
    .bString             = LSTR(SERIAL_NUMBER)
};
#endif

/*
 * Device descriptor


@@ 595,7 593,11 @@ const PROGMEM usbDeviceDescriptor_t usbDeviceDescriptor = {
    .bcdDevice           = DEVICE_VER,
    .iManufacturer       = 0x01,
    .iProduct            = 0x02,
#if defined(SERIAL_NUMBER)
    .iSerialNumber       = 0x03,
#else
    .iSerialNumber       = 0x00,
#endif
    .bNumConfigurations  = 1
};



@@ 821,10 823,12 @@ USB_PUBLIC usbMsgLen_t usbFunctionDescriptor(struct usbRequest *rq) {
                    usbMsgPtr = (usbMsgPtr_t)&usbStringDescriptorProduct;
                    len       = usbStringDescriptorProduct.header.bLength;
                    break;
#if defined(SERIAL_NUMBER)
                case 3:  // iSerialNumber
                    usbMsgPtr = (usbMsgPtr_t)&usbStringDescriptorSerial;
                    len       = usbStringDescriptorSerial.header.bLength;
                    break;
#endif
            }
            break;
        case USBDESCR_HID: