u16 epsc_major;
u16 epsc_minor;
#endif
- u16 fw_minor;
- u16 fw_major;
+ u16 fw_minor; /* This is the internal firmware version, */
+ u16 fw_major; /* which is not the same as the official release version */
int seq_set_proto; /* Protocol version of the initial setup meta protocol (0 == legacy) */
struct psif_epsc_csr_config nb_cfg; /* "Network" byte order config storage (see #3804) */
char *fw_version[FWV_MAX];
{
struct sif_dev *sdev = dev_get_drvdata(device);
struct sif_eps *es = &sdev->es[sdev->mbox_epsc];
+ u64 fw_ver = cpu_to_be64(es->data->dev.fw_ver);
- return sprintf(buf, "%hu.%hu.0\n", es->ver.fw_major, es->ver.fw_minor);
+ return sprintf(buf, "%llu.%llu.%llu\n",
+ (fw_ver >> 32) & 0xffff,
+ (fw_ver >> 16) & 0xffff,
+ (fw_ver & 0xffff));
}
static ssize_t show_eps_api_ver(struct device *device,