sata_sil: Enable DM_PCI operation

Even though the sata_sil driver was converted over to the driver model,
it still assumed that the PCI controller is using the legacy interface.

Allow the "devno" member to be a struct udevice pointer and use
DM_PCI_COMPAT to covert the rest of the interface.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
This commit is contained in:
Andre Przywara 2020-06-11 12:03:19 +01:00 committed by Tom Rini
parent cc696e7cae
commit 44a4042b01
2 changed files with 15 additions and 2 deletions

View File

@ -27,7 +27,11 @@
#include "sata_sil.h"
#ifdef CONFIG_DM_PCI
#define virt_to_bus(devno, v) dm_pci_virt_to_mem(devno, (void *) (v))
#else
#define virt_to_bus(devno, v) pci_virt_to_mem(devno, (void *) (v))
#endif
/* just compatible ahci_ops */
struct sil_ops {
@ -608,13 +612,18 @@ static int sil_init_sata(struct udevice *uc_dev, int dev)
/* Save the private struct to block device struct */
#if !CONFIG_IS_ENABLED(BLK)
sata_dev_desc[dev].priv = (void *)sata;
sata->devno = sata_info.devno;
#else
priv->sil_sata_desc[dev] = sata;
priv->port_num = dev;
#ifdef CONFIG_DM_PCI
sata->devno = uc_dev->parent;
#else
sata->devno = sata_info.devno;
#endif /* CONFIG_DM_PCI */
#endif
sata->id = dev;
sata->port = port;
sata->devno = sata_info.devno;
sprintf(sata->name, "SATA#%d", dev);
sil_cmd_soft_reset(sata);
tmp = readl(port + PORT_SSTATUS);

View File

@ -21,7 +21,11 @@ struct sil_sata {
u16 pio;
u16 mwdma;
u16 udma;
pci_dev_t devno;
#ifdef CONFIG_DM_PCI
struct udevice *devno;
#else
pci_dev_t devno;
#endif
int wcache;
int flush;
int flush_ext;