summaryrefslogtreecommitdiff
path: root/drivers/vfio
diff options
context:
space:
mode:
authorMinghuan Lian <Minghuan.Lian@freescale.com>2014-03-10 04:02:01 (GMT)
committerJose Rivera <German.Rivera@freescale.com>2014-03-17 19:41:28 (GMT)
commite5b9da042f16f09692f044f660275e5f2ab6ad49 (patch)
tree146d8abed590b3a12befa280b4124b9ebaf80cbe /drivers/vfio
parent1f65e59b45115b55a7526dc30a255b0f27be9177 (diff)
downloadlinux-fsl-qoriq-e5b9da042f16f09692f044f660275e5f2ab6ad49.tar.xz
fsl_pci_ep: update fsl_pci_ep.c according to kernel changes
1. Now in kernel the dev_attrs field is removed from struct class, and is converted to use dev_groups. So the patch uses pci_ep_groups instead of pci_ep_attrs. 2. The field pci_mem_offset of struct pci_controller has been changed to mem_offset[], so the patch update the related code. 3. Remove is_pcie initialization for this field has been removed from struct pci_dev. Signed-off-by: Minghuan Lian <Minghuan.Lian@freescale.com> Change-Id: I9a664b79a1528b52728dae60a929afe4b62aa8c2 Reviewed-on: http://git.am.freescale.net:8181/9607 Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com> Reviewed-by: Tiefei Zang <tie-fei.zang@freescale.com> Reviewed-by: Jose Rivera <German.Rivera@freescale.com>
Diffstat (limited to 'drivers/vfio')
-rw-r--r--drivers/vfio/fsl_pci_ep/fsl_pci_ep.c37
-rw-r--r--drivers/vfio/fsl_pci_ep/fsl_pci_ep.h2
2 files changed, 23 insertions, 16 deletions
diff --git a/drivers/vfio/fsl_pci_ep/fsl_pci_ep.c b/drivers/vfio/fsl_pci_ep/fsl_pci_ep.c
index 47380f2..94a5e05 100644
--- a/drivers/vfio/fsl_pci_ep/fsl_pci_ep.c
+++ b/drivers/vfio/fsl_pci_ep/fsl_pci_ep.c
@@ -881,16 +881,25 @@ msix_show(struct device *dev, struct device_attribute *attr, char *buf)
return str - buf;
}
-struct device_attribute pci_ep_attrs[] = {
- __ATTR_RO(ep_type),
- __ATTR_RO(pf_idx),
- __ATTR_RO(vf_idx),
- __ATTR_RO(inbound_windows),
- __ATTR_RO(outbound_windows),
- __ATTR_RO(msix),
- __ATTR_NULL,
+static DEVICE_ATTR_RO(ep_type);
+static DEVICE_ATTR_RO(pf_idx);
+static DEVICE_ATTR_RO(vf_idx);
+static DEVICE_ATTR_RO(inbound_windows);
+static DEVICE_ATTR_RO(outbound_windows);
+static DEVICE_ATTR_RO(msix);
+
+static struct attribute *pci_ep_attrs[] = {
+ &dev_attr_ep_type.attr,
+ &dev_attr_pf_idx.attr,
+ &dev_attr_vf_idx.attr,
+ &dev_attr_inbound_windows.attr,
+ &dev_attr_outbound_windows.attr,
+ &dev_attr_msix.attr,
+ NULL,
};
+ATTRIBUTE_GROUPS(pci_ep);
+
static void pci_ep_dev_release(struct device *dev)
{
/* nothing to do */
@@ -901,10 +910,9 @@ static void pci_ep_class_release(struct class *cls)
/* nothing to do */
}
-
static struct class pci_ep_class = {
.name = "pci_ep",
- .dev_attrs = pci_ep_attrs,
+ .dev_groups = pci_ep_groups,
.dev_release = pci_ep_dev_release,
.class_release = pci_ep_class_release,
};
@@ -1184,7 +1192,7 @@ static int fsl_pci_pf_atmu_init(struct pci_pf_dev *pf)
/* Setup VF outbound windows*/
win.cpu_addr = pf->mem_resources[0].start;
- win.pci_addr = win.cpu_addr - pf->pci_mem_offset;
+ win.pci_addr = win.cpu_addr - pf->mem_offset[0];
win.size = sz;
win.attr = 0;
win.idx = 0;
@@ -1221,7 +1229,7 @@ static int fsl_pci_pf_atmu_init(struct pci_pf_dev *pf)
/* Setup PF outbound windows */
win.cpu_addr = pf->mem_resources[0].start + pf->vf_total * sz;
- win.pci_addr = win.cpu_addr - pf->pci_mem_offset;
+ win.pci_addr = win.cpu_addr - pf->mem_offset[0];
free_sz = pf->mem_resources[0].end - win.cpu_addr - reserve_sz + 1;
if (free_sz < sz) {
bits = ilog2(free_sz);
@@ -1340,7 +1348,6 @@ int fsl_pci_pf_setup(struct pci_bus *bus, int pf_num)
pdev->hdr_type = PCI_HEADER_TYPE_NORMAL;
pos = pci_find_capability(pdev, PCI_CAP_ID_EXP);
if (pos) {
- pdev->is_pcie = 1;
pdev->pcie_cap = pos;
pdev->cfg_size = 0x1000;
} else
@@ -1377,7 +1384,6 @@ int fsl_pci_pf_setup(struct pci_bus *bus, int pf_num)
if (pci_find_capability(pf->pdev, PCI_CAP_ID_MSIX))
pf->msix_enable = true;
- pf->pci_mem_offset = host->pci_mem_offset;
for (i = 0; i < 3; i++) {
mem_size = resource_size(&host->mem_resources[i]);
if (!mem_size)
@@ -1388,6 +1394,7 @@ int fsl_pci_pf_setup(struct pci_bus *bus, int pf_num)
mem_size * pf->idx;
pf->mem_resources[i].end =
pf->mem_resources[i].start + mem_size - 1;
+ pf->mem_offset[i] = host->mem_offset[i];
}
fsl_pci_pf_cfg_ready(pf);
@@ -1462,7 +1469,7 @@ static void pci_process_of_ranges(struct pci_controller *hose,
continue;
}
- hose->pci_mem_offset = cpu_addr - pci_addr;
+ hose->mem_offset[memno] = cpu_addr - pci_addr;
/* Build resource */
res = &hose->mem_resources[memno++];
diff --git a/drivers/vfio/fsl_pci_ep/fsl_pci_ep.h b/drivers/vfio/fsl_pci_ep/fsl_pci_ep.h
index a46ec92..c27942b 100644
--- a/drivers/vfio/fsl_pci_ep/fsl_pci_ep.h
+++ b/drivers/vfio/fsl_pci_ep/fsl_pci_ep.h
@@ -71,7 +71,7 @@ struct pci_pf_dev {
u8 iw_num;
u8 ow_num;
bool msix_enable;
- resource_size_t pci_mem_offset;
+ resource_size_t mem_offset[3];
struct resource mem_resources[3];
/* VF info */
int vf_pos;