struct spi_device *spi = to_spi_device(dev);
        struct spi_mem *spimem = spi_get_drvdata(spi);
        struct spi_nor *nor = spi_mem_get_drvdata(spimem);
+       const u8 *id = nor->info->id_len ? nor->info->id : nor->id;
+       u8 id_len = nor->info->id_len ?: SPI_NOR_MAX_ID_LEN;
 
-       return sysfs_emit(buf, "%*phN\n", nor->info->id_len, nor->info->id);
+       return sysfs_emit(buf, "%*phN\n", id_len, id);
 }
 static DEVICE_ATTR_RO(jedec_id);
 
 
        if (attr == &dev_attr_manufacturer.attr && !nor->manufacturer)
                return 0;
-       if (attr == &dev_attr_jedec_id.attr && !nor->info->id_len)
+       if (attr == &dev_attr_jedec_id.attr && !nor->info->id_len && !nor->id)
                return 0;
 
        return 0444;