Re: [PATCH 1/8] pci: adding new irq api to pci-designware

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Lucas,

Às 1:33 PM de 5/31/2017, Lucas Stach escreveu:
> Am Dienstag, den 30.05.2017, 12:32 +0100 schrieb Joao Pinto:
>> This patch adds the new interrupt api to pcie-designware, keeping the old
>> one. Although the old API is still available, pcie-designware initiates
>> with the new one.
>>
>> Signed-off-by: Joao Pinto <jpinto@xxxxxxxxxxxx>
>> ---
> [...]
>> @@ -378,17 +593,18 @@ int dw_pcie_host_init(struct pcie_port *pp)
>>  
>>  	if (IS_ENABLED(CONFIG_PCI_MSI)) {
>>  		if (!pp->ops->msi_host_init) {
>> -			pp->irq_domain = irq_domain_add_linear(dev->of_node,
>> -						MAX_MSI_IRQS, &msi_domain_ops,
>> -						&dw_pcie_msi_chip);
>> -			if (!pp->irq_domain) {
>> -				dev_err(dev, "irq domain init failed\n");
>> -				ret = -ENXIO;
>> +			ret = of_property_read_u32(np, "num-vectors",
>> +						   &pp->num_vectors);
>> +			if (ret)
>> +				pp->num_vectors = 1;
> 
> This adds a DT property without documentation. That's a strong no-go.
> 

yep, indeed I forgot to merge this into the patch tree. Going to check this in
the next patch version.

> Why do you even need this property? The number of vectors available can
> be inferred from the compatible, so there is no need to push this into
> the DT. A fallback of only 1 vector if the property doesn't exist is
> also pretty limiting. The old implementation allowed for at least 32
> vectors, with most of the core implementations probably allowing much
> more in hardware.

The hardware supports up to 256, but the current driver is set for a maximum of
32. I suggest we remove MAX_MSI_IRQS and MAX_MSI_CTRLS, and calculate the
maximum number of controllers according to the num_vectors value: Ctrls =
num_vectors / 32, removing the hardcoded limitation from the driver.
What do you think?

> 
> Regards,
> Lucas
> 

Thanks and regards,

Joao



[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux