Re: [PATCH v9 0/3] Tango PCIe controller support

From: Mason
Date: Wed Jul 05 2017 - 18:00:06 EST

On 05/07/2017 23:34, Bjorn Helgaas wrote:

> On Wed, Jul 05, 2017 at 10:39:19PM +0200, Mason wrote:
>> On 05/07/2017 20:03, Bjorn Helgaas wrote:
>>> On Wed, Jul 05, 2017 at 12:55:37AM +0200, Mason wrote:
>>>> On 04/07/2017 22:24, Bjorn Helgaas wrote:
>>>>> I made the trivial changes I mentioned, added a dependency on
>>>>> CONFIG_BROKEN (for the config/MMIO muxing issue), and put these on
>>>>> pci/host-tango. I can't build or test this, so I probably broke
>>>>> something in the process. I think the combination of the boot-time
>>>>> warning, the taint, and CONFIG_BROKEN is a reasonable amount of
>>>>> warning that a user should expect issues.
>>>>> Can you take a look and see if it works for you?
>>>> Thanks. I'll take it for a spin ASAP.
>>>> TAINT_CRAP... Smirk. I didn't see that one in the docs:
>>>> Oh wait... TAINT_CRAP is "C" => a staging driver has been loaded
>>> I wish it had a less pejorative, more descriptive name. But it seems like
>>> the closest to this situation.
>> Maybe it is not too late to submit a patch to Linus
>> renaming TAINT_CRAP?
>> Here are a few candidates, off the top of my head:
> I personally wouldn't object, but it's not a PCI thing so that can all
> be separate from this driver.

Yes, of course. I was just asking for your (and anyone's)
opinion, as a Linux dev.

>>>> The one issue I anticipate with "depends on BROKEN" is
>>>> when I add support for revision 2, which isn't broken.
>>> How about this:
>>> - PCIE_TANGO_REV1 depends on BROKEN
>>> - Add rev2 support later, enabled by PCIE_TANGO
>>> I updated pci/host-tango along these lines (without rev2 support,
>>> obviously).
>> And support for REV1 wouldn't be compiled in, unless
>> BROKEN is selected? Yes, I think that could fly.
> Right.
>> Don't you think the naming should follow the DT
>> convention of using the first SoC embedding the
>> IP (for the compatible string) ?
> Sounds reasonable. So v2 will be something other than SMP8759?
> I renamed it to CONFIG_PCIE_TANGO_SMP8759.

Right, HW bugs are fixed in newer chips. Old chips rarely
get bug fixes, apparently.

> If you confirm that
> works for you, I'll include it in my v4.13 pull request.

There were a few nits I wanted to address:

- Since we added suppress_bind_attrs = true, probe()
can only be called at init, so I wanted to mark __init
all the probe functions, to save space.

- I left the definition of MSI_MAX in the wrong patch

- You put a pointer to the pdev in the struct tango_pcie.
I think this is redundant, since the pdev already has a
pointer to the struct, as drvdata.
So I wanted to change tango_msi_probe() to take a pdev
as argument (to make it more like an actual probe function)
and derive pcie from pdev, instead of the other way around.

Can I send you a patch series with these changes on Friday?