Sergey Matyukevich <sergey.matyukevich...@quantenna.com> writes: >> > +/** >> > * struct qlink_chandef - qlink channel definition >> > * >> > + * @chan: primary channel definition >> > * @center_freq1: center frequency of first segment >> > * @center_freq2: center frequency of second segment (80+80 only) >> > * @width: channel width, one of @enum qlink_channel_width >> > */ >> > struct qlink_chandef { >> > + struct qlink_channel chan; >> > __le16 center_freq1; >> > __le16 center_freq2; >> > u8 width; >> > - u8 rsvd[3]; >> > + u8 rsvd; >> > } __packed; >> >> Doesn't this break backwards compatibility with the older firmware? The >> basic princinple is that old firmware images continue to work with newer >> driver (or there will be a firmware image with new name, eg. fw-2.bin). >> You can check how iwlwifi does that. > > Yes, it breaks. That is why we increment qlink protocol version in each > change affecting backwards compatibility. So driver is going to work only > with matching firmware. This is a very simplistic approach, but it looks > reasonable for current stage of development since we keep adding features.
Everyone are always adding new features, that's no excuse to break backwards compatibility with user space. In the future you really need to come up a way to handle the firmware interface breaks gracefully, just like iwlwifi does. Related to this, any progress on getting the firmware image to linux-firmware? -- Kalle Valo