Lines Matching defs:channel
30 #define STI_IRQ_SET_OFFSET 0x24 /* Generate a Tx channel interrupt */
33 #define STI_ENA_SET_OFFSET 0x84 /* Enable a channel */
34 #define STI_ENA_CLR_OFFSET 0xa4 /* Disable a channel */
42 * @mbox: Representation of a communication channel controller
51 * A channel an be used for TX or RX
66 * @num_chan: Maximum number of channel per instance
74 * struct sti_channel - STi Mailbox allocated channel information
77 * @instance: Instance number channel resides in
78 * @channel: Channel number pertaining to this container
83 unsigned int channel;
91 unsigned int channel = chan_info->channel;
93 return mdev->enabled[instance] & BIT(channel);
99 unsigned int channel)
108 chan_info->channel == channel)
113 "Channel not registered: instance: %d channel: %d\n",
114 instance, channel);
124 unsigned int channel = chan_info->channel;
129 mdev->enabled[instance] |= BIT(channel);
130 writel_relaxed(BIT(channel), base + STI_ENA_SET_OFFSET);
139 unsigned int channel = chan_info->channel;
144 mdev->enabled[instance] &= ~BIT(channel);
145 writel_relaxed(BIT(channel), base + STI_ENA_CLR_OFFSET);
154 unsigned int channel = chan_info->channel;
157 writel_relaxed(BIT(channel), base + STI_IRQ_CLR_OFFSET);
165 unsigned int channel;
174 /* An IRQ has fired, find the associated channel */
175 for (channel = 0; bits; channel++) {
176 if (!test_and_clear_bit(channel, &bits))
179 chan = sti_mbox_to_channel(mbox, instance, channel);
182 "IRQ fired on instance: %d channel: %d\n",
183 instance, channel);
231 " instance: %d: channel: %d [enabled: %x]\n",
233 chan_info->channel, mdev->enabled[instance]);
246 dev_err(mdev->dev, "Spurious IRQ - was a channel requested?\n");
256 unsigned int channel = chan_info->channel;
259 if (!(readl_relaxed(base + STI_ENA_VAL_OFFSET) & BIT(channel))) {
261 mdev->name, instance, channel);
265 if (readl_relaxed(base + STI_IRQ_VAL_OFFSET) & BIT(channel)) {
267 mdev->name, instance, channel);
279 unsigned int channel = chan_info->channel;
283 writel_relaxed(BIT(channel), base + STI_IRQ_SET_OFFSET);
286 "Sent via Mailbox %s: instance: %d channel: %d\n",
287 mdev->name, instance, channel);
311 dev_warn(mbox->dev, "Request to free non-existent channel\n");
315 /* Reset channel */
329 unsigned int channel = spec->args[1];
333 if (instance >= pdata->num_inst || channel >= pdata->num_chan) {
335 "Invalid channel requested instance: %d channel: %d\n",
336 instance, channel);
343 /* Is requested channel free? */
347 channel == chan_info->channel) {
355 * to see if requested channel is in use
372 chan_info->channel = channel;
377 "Mbox: %s: Created channel: instance: %d channel: %d\n",
378 mdev->name, instance, channel);