Re: Re: [PATCH v2 2/2] PCI: eic7700: Add Eswin eic7700 PCIe host controller driver

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

 



Dear Manivannan

Thank you for your thorough review.Here are some of my clarifications and questions.
Looking forward to your answer, Thank you very much.

> -----Original Messages-----
> From: "Manivannan Sadhasivam" <mani@xxxxxxxxxx>
> Send time:Monday, 01/09/2025 14:40:41
> To: zhangsenchuan@xxxxxxxxxxxxxxxxxx
> Cc: bhelgaas@xxxxxxxxxx, lpieralisi@xxxxxxxxxx, kwilczynski@xxxxxxxxxx, robh@xxxxxxxxxx, krzk+dt@xxxxxxxxxx, conor+dt@xxxxxxxxxx, linux-pci@xxxxxxxxxxxxxxx, devicetree@xxxxxxxxxxxxxxx, linux-kernel@xxxxxxxxxxxxxxx, p.zabel@xxxxxxxxxxxxxx, johan+linaro@xxxxxxxxxx, quic_schintav@xxxxxxxxxxx, shradha.t@xxxxxxxxxxx, cassel@xxxxxxxxxx, thippeswamy.havalige@xxxxxxx, mayank.rana@xxxxxxxxxxxxxxxx, inochiama@xxxxxxxxx, ningyu@xxxxxxxxxxxxxxxxxx, linmin@xxxxxxxxxxxxxxxxxx, pinkesh.vaghela@xxxxxxxxxxxxxx
> Subject: Re: [PATCH v2 2/2] PCI: eic7700: Add Eswin eic7700 PCIe host controller driver


> > +	/* config eswin vendor id and eic7700 device id */
> > +	dw_pcie_writel_dbi(pci, PCIE_TYPE_DEV_VEND_ID, 0x20301fe1);
> 
> Does it need to be configured all the time?

Clarification:
Our hardware initialization did not configure the device Id and vendor Id.
Now, we can only rewrite the device Id and vendor Id in the code.

> 
> > +
> > +	/* lane fix config, real driver NOT need, default x4 */
> 
> What do you mean by 'readl driver NOT need'?
> 

Clarification:
Sorry, this was added during the compatibility platform test. It is not needed for real devices. 
I will remove it later.

> > +	val = dw_pcie_readl_dbi(pci, PCIE_PORT_MULTI_LANE_CTRL);
> > +	val &= 0xffffff80;
> > +	val |= 0x44;
> > +	dw_pcie_writel_dbi(pci, PCIE_PORT_MULTI_LANE_CTRL, val);
> > +
> > +	val = dw_pcie_readl_dbi(pci, DEVICE_CONTROL_DEVICE_STATUS);
> > +	val &= ~(0x7 << 5);
> > +	val |= (0x2 << 5);
> > +	dw_pcie_writel_dbi(pci, DEVICE_CONTROL_DEVICE_STATUS, val);
> > +
> > +	/*  config support 32 msi vectors */
> > +	val = dw_pcie_readl_dbi(pci, PCIE_DSP_PF0_MSI_CAP);
> > +	val &= ~PCIE_MSI_MULTIPLE_MSG_MASK;
> > +	val |= PCIE_MSI_MULTIPLE_MSG_32;
> > +	dw_pcie_writel_dbi(pci, PCIE_DSP_PF0_MSI_CAP, val);
> > +
> > +	/* disable msix cap */
> 
> Why? Hw doesn't support MSI-X but it advertises MSI-X capability?
> 

I'm not quite sure what this comment means? Indeed, our hardware doesn't support MSI-X.
We can't disable the MSI-X capability using the PCIE_NEXT_CAP_PTR register? Then which 
register is needed to disable the MSI-X capability?

> > +	val = dw_pcie_readl_dbi(pci, PCIE_NEXT_CAP_PTR);
> > +	val &= 0xffff00ff;
> > +	dw_pcie_writel_dbi(pci, PCIE_NEXT_CAP_PTR, val);
> > +
> > +	return 0;
> > +
> > +err_clock:
> > +	reset_control_assert(pcie->perst);
> > +err_perst:
> > +	eswin_pcie_power_off(pcie);
> > +	return ret;
> > +}
> > +




Best Regards,
Senchuan Zhang







[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