[PATCH 01/10] dovetail/sirq: implement sirq request and free and post

Philippe Gerum rpm at xenomai.org
Mon Jan 11 14:05:23 CET 2021


Jan Kiszka via Xenomai <xenomai at xenomai.org> writes:

> On 11.01.21 07:43, hongzha1 via Xenomai wrote:
>> inband sirq request through synthetic_irq_domain and free and post
>> srq.
>> 
>> Signed-off-by: hongzha1 <hongzhan.chen at intel.com>
>> ---
>>  .../cobalt/kernel/dovetail/pipeline/sirq.h    | 28 +++++++++++++++----
>>  1 file changed, 23 insertions(+), 5 deletions(-)
>> 
>> diff --git a/include/cobalt/kernel/dovetail/pipeline/sirq.h b/include/cobalt/kernel/dovetail/pipeline/sirq.h
>> index be9dc587f..1da9d13b2 100644
>> --- a/include/cobalt/kernel/dovetail/pipeline/sirq.h
>> +++ b/include/cobalt/kernel/dovetail/pipeline/sirq.h
>> @@ -23,9 +23,24 @@ int pipeline_create_inband_sirq(irqreturn_t (*handler)(int irq, void *dev_id))
>>  	 * Allocate an IRQ from the synthetic interrupt domain then
>>  	 * trap it to @handler, to be fired from the in-band stage.
>>  	 */
>> -	TODO();
>> +	int sirq, ret;
>>  
>> -	return 0;
>> +	sirq = irq_create_direct_mapping(synthetic_irq_domain);
>> +	if (sirq == 0)
>> +		return -EAGAIN;
>> +
>> +	ret = __request_percpu_irq(sirq,
>> +			handler,
>> +			IRQF_NO_THREAD,
>> +			"Inband sirq",
>> +			&cobalt_machine_cpudata);
>> +
>> +	if (ret) {
>> +		irq_dispose_mapping(sirq);
>> +		return ret;
>> +	}
>> +
>> +	return sirq;
>>  }
>>  
>>  static inline
>> @@ -35,13 +50,16 @@ void pipeline_delete_inband_sirq(int sirq)
>>  	 * Free the synthetic IRQ then deallocate it to its
>>  	 * originating domain.
>>  	 */
>> -	TODO();
>> +	free_percpu_irq(sirq,
>> +		&cobalt_machine_cpudata);
>> +
>> +	irq_dispose_mapping(sirq);
>>  }
>>  
>>  static inline void pipeline_post_sirq(int sirq)
>>  {
>>  	/* Trigger the synthetic IRQ */
>> -	TODO();
>> +	irq_post_inband(sirq);
>>  }
>>  
>> -#endif /* !_COBALT_KERNEL_IPIPE_SIRQ_H */
>> +#endif /* !_COBALT_KERNEL_DOVETAIL_SIRQ_H */
>> 
>
> Does this series merely target review / discussion?
>

It is always open for discussion particularly if something needs to be
clarified wrt the way Dovetail works. If not, then this should be
considered as a merge merge request.

-- 
Philippe.



More information about the Xenomai mailing list