Messages in this thread |  | | Date | Tue, 18 Nov 2014 19:47:35 +0800 | From | "Yun Wu (Abel)" <> | Subject | Re: [patch 07/16] genirq: Introduce helper irq_domain_set_info() to reduce duplicated code |
| |
On 2014/11/18 18:03, Thomas Gleixner wrote:
> On Tue, 18 Nov 2014, Yun Wu (Abel) wrote: > >> Hi Thomas, Jiang, >> On 2014/11/12 21:43, Thomas Gleixner wrote: >> >>> From: Jiang Liu <jiang.liu@linux.intel.com> >> [...] >>> +void irq_domain_set_info(struct irq_domain *domain, unsigned int virq, >>> + irq_hw_number_t hwirq, struct irq_chip *chip, >>> + void *chip_data, irq_flow_handler_t handler, >>> + void *handler_data, const char *handler_name) >>> +{ >>> + irq_domain_set_hwirq_and_chip(domain, virq, hwirq, chip, chip_data); >>> + __irq_set_handler(virq, handler, 0, handler_name); >>> + irq_set_handler_data(virq, handler_data); >>> +} >> >> When stacked domain enabled, there will be a semantic shift to the linux interrupt >> identifiers. The @virq now delivers much more than before. >> More specifically, now we need both @virq and @domain, rather than only @irq, to >> determine which irq_data we want to configure. And once we configure @irq without >> providing the exact domain, it means we are configuring all the domains related to >> that @irq. So I think this routine just messed all things up. > > You can mess up anything by using an interface in the wrong way. Open > coding will not make that harder. >
But what's the correct way to use this interface?
Thanks, Abel
|  |