[PATCH v4 00/15] staging: mt7621-pci: avoid custom pci config read and writes
NeilBrown
neil at brown.name
Thu Jul 26 04:50:55 UTC 2018
On Wed, Jul 25 2018, Sergio Paracuellos wrote:
> On Wed, Jul 25, 2018 at 08:21:35AM +1000, NeilBrown wrote:
>> On Mon, Jul 16 2018, Sergio Paracuellos wrote:
>>
>> > This patch series include an attempt to avoid the use of custom
>> > read and writes in driver code and use PCI subsystem common ones.
>> >
>> > In order to do this 'map_bus' callback is implemented and also
>> > data structures for driver are included. The regs base address
>> > is being readed from device tree and the driver gets clean a lot
>> > of code.
>> >
>> > Changes in v4:
>> > - Rebased onto staging-next.
>> >
>> > Changes in v3:
>> > - Include new patches to delete all RALINK_BASE definition
>> > dependant code and be able to avoid use of pci_legacy code.
>> > - use devm_of_pci_get_host_bridge_resources,
>> > devm_request_pci_bus_resources and pci_scan_root_bus_bridge
>> > and pci_bus_add_devices
>> >
>> > Changes in v2:
>> > - squash PATCH 1 and PATCH 2 of previous series in only PATCH 1
>> > - Change name for host structure.
>> > - Create a new port structure (platform has 3 pcie controllers)
>> > - Replace the use of pci_generic_config_[read|write]32 in favour
>> > of pci_generic_config_[read|write] and change map_bus implemen-
>> > tation for hopefully the right one.
>> >
>> > Best regards,
>>
>> Thanks for these.
>> I added
>> diff --git a/arch/mips/ralink/Kconfig b/arch/mips/ralink/Kconfig
>> index 1f9cb0e3c79a..50779b3379db 100644
>> --- a/arch/mips/ralink/Kconfig
>> +++ b/arch/mips/ralink/Kconfig
>> @@ -51,6 +51,7 @@ choice
>> select COMMON_CLK
>> select CLKSRC_MIPS_GIC
>> select HW_HAS_PCI
>> + select PCI_DRIVERS_GENERIC
>> endchoice
>>
>> choice
>>
>> so that I could build and test it - maybe there is somewhere else that
>> "select" can go while this is still in staging..
>>
>> The system boots and can see the three pcie-attached SATA controllers:
>>
>> # lspci
>> 00:00.0 PCI bridge: Device 0e8d:0801 (rev 01)
>> 00:01.0 PCI bridge: Device 0e8d:0801 (rev 01)
>> 00:02.0 PCI bridge: Device 0e8d:0801 (rev 01)
>> 01:00.0 IDE interface: ASMedia Technology Inc. ASM1061 SATA IDE Controller (rev 02)
>> 02:00.0 IDE interface: ASMedia Technology Inc. ASM1061 SATA IDE Controller (rev 02)
>> 03:00.0 IDE interface: ASMedia Technology Inc. ASM1061 SATA IDE Controller (rev 02)
>>
>> but it cannot see the drive that is plugged into one of these.
>> Below is the first 10 seconds of dmesg.
>> I suspect the relevant bit is
>>
>> [ 8.680000] ahci: probe of 0000:01:00.0 failed with error -22
>> [ 8.700000] ahci: probe of 0000:02:00.0 failed with error -22
>> [ 8.710000] ahci: probe of 0000:03:00.0 failed with error -22
>>
>> I haven't dug deeper yet.
>
> Hi Neil,
>
> Can you please make a test for me? Can you comment lines about pinctrl in the pcie
> node of the device tree? I am not sure we have to use the reset pin there but just
> use the reset_control in a proper way. These two:
>
> pinctrl-names = "default";
> pinctrl-0 = <&pcie_pins>;
>
> Does this change make the plugged drives to work?
Thanks for the suggestion. No, this does change anything.
I had a go at sprinking printks to see what exactly was failing.
It is pcim_iomap_regions().
"mask" is 0x20, is t wants to map region 5.
However region 5 has size zero - hence -EINVAL.
In the dmesg there is:
>> [ 2.530000] pci 0000:01:00.0: BAR 5: no space for [mem size 0x00000200]
>> [ 2.540000] pci 0000:01:00.0: BAR 5: failed to assign [mem size 0x00000200]
I think this is where resource 5 is not getting set up properly.
That is as far as I got today.
Thanks,
NeilBrown
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 832 bytes
Desc: not available
URL: <http://driverdev.linuxdriverproject.org/pipermail/driverdev-devel/attachments/20180726/9fb0cf57/attachment.asc>
More information about the devel
mailing list