Lines Matching full: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; member
91 unsigned int channel = chan_info->channel; in sti_mbox_channel_is_enabled() local
93 return mdev->enabled[instance] & BIT(channel); in sti_mbox_channel_is_enabled()
99 unsigned int channel) in sti_mbox_to_channel() argument
108 chan_info->channel == channel) in sti_mbox_to_channel()
113 "Channel not registered: instance: %d channel: %d\n", in sti_mbox_to_channel()
114 instance, channel); in sti_mbox_to_channel()
124 unsigned int channel = chan_info->channel; in sti_mbox_enable_channel() local
129 mdev->enabled[instance] |= BIT(channel); in sti_mbox_enable_channel()
130 writel_relaxed(BIT(channel), base + STI_ENA_SET_OFFSET); in sti_mbox_enable_channel()
139 unsigned int channel = chan_info->channel; in sti_mbox_disable_channel() local
144 mdev->enabled[instance] &= ~BIT(channel); in sti_mbox_disable_channel()
145 writel_relaxed(BIT(channel), base + STI_ENA_CLR_OFFSET); in sti_mbox_disable_channel()
154 unsigned int channel = chan_info->channel; in sti_mbox_clear_irq() local
157 writel_relaxed(BIT(channel), base + STI_IRQ_CLR_OFFSET); in sti_mbox_clear_irq()
165 unsigned int channel; in sti_mbox_irq_to_channel() local
174 /* An IRQ has fired, find the associated channel */ in sti_mbox_irq_to_channel()
175 for (channel = 0; bits; channel++) { in sti_mbox_irq_to_channel()
176 if (!test_and_clear_bit(channel, &bits)) in sti_mbox_irq_to_channel()
179 chan = sti_mbox_to_channel(mbox, instance, channel); in sti_mbox_irq_to_channel()
182 "IRQ fired on instance: %d channel: %d\n", in sti_mbox_irq_to_channel()
183 instance, channel); in sti_mbox_irq_to_channel()
231 " instance: %d: channel: %d [enabled: %x]\n", in sti_mbox_irq_handler()
233 chan_info->channel, mdev->enabled[instance]); in sti_mbox_irq_handler()
246 dev_err(mdev->dev, "Spurious IRQ - was a channel requested?\n"); in sti_mbox_irq_handler()
256 unsigned int channel = chan_info->channel; in sti_mbox_tx_is_ready() local
259 if (!(readl_relaxed(base + STI_ENA_VAL_OFFSET) & BIT(channel))) { in sti_mbox_tx_is_ready()
261 mdev->name, instance, channel); in sti_mbox_tx_is_ready()
265 if (readl_relaxed(base + STI_IRQ_VAL_OFFSET) & BIT(channel)) { in sti_mbox_tx_is_ready()
267 mdev->name, instance, channel); in sti_mbox_tx_is_ready()
279 unsigned int channel = chan_info->channel; in sti_mbox_send_data() local
283 writel_relaxed(BIT(channel), base + STI_IRQ_SET_OFFSET); in sti_mbox_send_data()
286 "Sent via Mailbox %s: instance: %d channel: %d\n", in sti_mbox_send_data()
287 mdev->name, instance, channel); in sti_mbox_send_data()
311 dev_warn(mbox->dev, "Request to free non-existent channel\n"); in sti_mbox_shutdown_chan()
315 /* Reset channel */ in sti_mbox_shutdown_chan()
329 unsigned int channel = spec->args[1]; in sti_mbox_xlate() local
333 if (instance >= pdata->num_inst || channel >= pdata->num_chan) { in sti_mbox_xlate()
335 "Invalid channel requested instance: %d channel: %d\n", in sti_mbox_xlate()
336 instance, channel); in sti_mbox_xlate()
343 /* Is requested channel free? */ in sti_mbox_xlate()
347 channel == chan_info->channel) { in sti_mbox_xlate()
349 dev_err(mbox->dev, "Channel in use\n"); in sti_mbox_xlate()
355 * to see if requested channel is in use in sti_mbox_xlate()
372 chan_info->channel = channel; in sti_mbox_xlate()
377 "Mbox: %s: Created channel: instance: %d channel: %d\n", in sti_mbox_xlate()
378 mdev->name, instance, channel); in sti_mbox_xlate()