Re: [PATCH] SATA: OCTEON: support SATA on OCTEON platform

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

 



On 01/21/2015 08:54 AM, Mark Rutland wrote:
On Mon, Jan 19, 2015 at 07:16:28PM +0000, David Daney wrote:
[...]
@@ -67,6 +76,7 @@ static const struct of_device_id ahci_of_match[] = {
   	{ .compatible = "ibm,476gtr-ahci", },
   	{ .compatible = "snps,dwc-ahci", },
   	{ .compatible = "hisilicon,hisi-ahci", },
+	{ .compatible = "cavium,octeon-7130-ahci", },
   	{},

I was under the impression that the strings other than "generic-ahci"
were only for compatibility with existing DTBs. Why do we need to add
new platform-specific strings here?

Because it is an "existing DTB", The device tree doesn't contain the
compatible property of "generic-ahci", only "cavium,octeon-7130-ahci".

While the DTB may already exist, the string "cavium,octeon-7130-ahci"
isn't in mainline, and as far as I can see has never been supported.

There seems to be a disconnect here. The DTB comes from the hardware boot environment. The hardware is in some cases already deployed. It is for all practical purposes, impossible to change the DTB.

The idea that the kernel source code controls the content of the device tree doesn't apply here.

We
_maintain_ support for existing DTBs, we don't just copy what some
forked kernel happens to do.

Trying to push that under the "don't break existing DTBs" rule is
bending the definition.

The purpose of the kernel is to provide services on top of actual hardware. In general, for a kernel driver to support any given device, it may have to add device specific identifiers, that correspond to the device, in the probing code.

David Daney


Thanks,
Mark.








[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux