Quoting Srinivas Kandagatla (2018-06-21 06:40:08) > new file mode 100644 > index 000000000000..f8af9474d286 > --- /dev/null > +++ b/drivers/slimbus/stream.c > @@ -0,0 +1,493 @@ > +// SPDX-License-Identifier: GPL-2.0 > +// Copyright (c) 2018, Linaro Limited > + > +#include <linux/kernel.h> > +#include <linux/errno.h> > +#include <linux/slab.h> > +#include <linux/list.h> > +#include <linux/slimbus.h> > +#include "slimbus.h" > + > +/** > + * struct segdist_code - Segment Distributions code from > + * Table 20 of SLIMbus Specs Version 2.0 > + * > + * @ratem: Channel Rate Multipler(Segments per Superframe) > + * @seg_interval: Number of slots between the first Slot of Segment > + * and the first slot of the next consecutive Segment. > + * @segdist_code: Segment Distribution Code SD[11:0] > + * @seg_offset_mask: Segment offset mask in SD[11:0] > + * @segdist_codes: List of all possible Segmet Distribution codes. > + */ > +static struct segdist_code { const? > + int ratem; > + int seg_interval; > + int segdist_code; > + u32 seg_offset_mask; > + > +} segdist_codes[] = { > + {1, 1536, 0x200, 0xdff}, > + {2, 768, 0x100, 0xcff}, > + {4, 384, 0x080, 0xc7f}, > + {8, 192, 0x040, 0xc3f}, > + {16, 96, 0x020, 0xc1f}, > + {32, 48, 0x010, 0xc0f}, > + {64, 24, 0x008, 0xc07}, > + {128, 12, 0x004, 0xc03}, > + {256, 6, 0x002, 0xc01}, > + {512, 3, 0x001, 0xc00}, > + {3, 512, 0xe00, 0x1ff}, > + {6, 256, 0xd00, 0x0ff}, > + {12, 128, 0xc80, 0x07f}, > + {24, 64, 0xc40, 0x03f}, > + {48, 32, 0xc20, 0x01f}, > + {96, 16, 0xc10, 0x00f}, > + {192, 8, 0xc08, 0x007}, > + {364, 4, 0xc04, 0x003}, > + {768, 2, 0xc02, 0x001}, > +}; > + > +/** > + * struct slim_presence_rate - Presense Rate table for all Natural Frequencies > + * The Presense rate of a constant bitrate stram is mean flow rate of the > + * stream expressed in occupied Segments of that Data Channel per second. > + * Table 66 from SLIMbus 2.0 Specs > + * > + * @rate: data rate > + * @pr_code: presence rate code PR[6:0] > + * @prate_table: All possible presence rate code for Natural Frequencies > + */ > +static struct slim_presence_rate { const? > + int rate; > + int pr_code; > +} prate_table[] = { -- To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html