From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: "Zhang, Qi" Date: Wed, 7 Mar 2018 15:45:48 +0800 Subject: [PATCH] unify trusty driver Keep One Trusty driver accross different version kernel as we have One Trusty OS Change-Id: Ie81201bb543ffdf6050bfab7560bd275f3a92eb0 Signed-off-by: Zhang, Qi --- drivers/trusty/trusty-ipc.c | 7 +++++++ drivers/trusty/trusty-mem.c | 6 +++--- drivers/trusty/trusty-virtio.c | 14 ++++++++++++++ 3 files changed, 24 insertions(+), 3 deletions(-) mode change 100755 => 100644 drivers/trusty/trusty-mem.c diff --git a/drivers/trusty/trusty-ipc.c b/drivers/trusty/trusty-ipc.c index a2bc3fcba29a..7df0972ddd05 100644 --- a/drivers/trusty/trusty-ipc.c +++ b/drivers/trusty/trusty-ipc.c @@ -21,7 +21,10 @@ #include #include #include +#include +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 14, 0) #include +#endif #include #include #include @@ -1558,7 +1561,11 @@ static int tipc_virtio_probe(struct virtio_device *vdev) vds->cdev_name[sizeof(vds->cdev_name)-1] = '\0'; /* find tx virtqueues (rx and tx and in this order) */ +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 14, 0) err = vdev->config->find_vqs(vdev, 2, vqs, vq_cbs, vq_names, NULL, NULL); +#else + err = vdev->config->find_vqs(vdev, 2, vqs, vq_cbs, vq_names); +#endif if (err) goto err_find_vqs; diff --git a/drivers/trusty/trusty-mem.c b/drivers/trusty/trusty-mem.c old mode 100755 new mode 100644 index fc299e348581..470df8823d3a --- a/drivers/trusty/trusty-mem.c +++ b/drivers/trusty/trusty-mem.c @@ -77,7 +77,7 @@ static int get_mem_attr(struct page *page, pgprot_t pgprot) return -EINVAL; } #elif defined(CONFIG_X86) - #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 1, 0) +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 1, 0) /* The porting to CHT kernel (3.14.55) is in the #else clause. ** For BXT kernel (4.1.0), the function get_page_memtype() is static. ** @@ -93,7 +93,7 @@ static int get_mem_attr(struct page *page, pgprot_t pgprot) ** with SMP, which only allow UNCACHED. */ return NS_MAIR_NORMAL_UNCACHED; - #else +#else unsigned long type; int ret_mem_attr = 0; @@ -124,7 +124,7 @@ static int get_mem_attr(struct page *page, pgprot_t pgprot) ret_mem_attr = -EINVAL; } return ret_mem_attr; - #endif +#endif #else return 0; #endif diff --git a/drivers/trusty/trusty-virtio.c b/drivers/trusty/trusty-virtio.c index 743a4789772f..66b4ee7caf0d 100644 --- a/drivers/trusty/trusty-virtio.c +++ b/drivers/trusty/trusty-virtio.c @@ -15,6 +15,7 @@ #include #include #include +#include #include #include @@ -337,9 +338,15 @@ static struct virtqueue *_find_vq(struct virtio_device *vdev, dev_info(&vdev->dev, "vring%d: va(pa) %p(%llx) qsz %d notifyid %d\n", id, tvr->vaddr, (u64)tvr->paddr, tvr->elem_num, tvr->notifyid); +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 14, 0) tvr->vq = vring_new_virtqueue(id, tvr->elem_num, tvr->align, vdev, true, true, tvr->vaddr, trusty_virtio_notify, callback, name); +#else + tvr->vq = vring_new_virtqueue(id, tvr->elem_num, tvr->align, + vdev, true, tvr->vaddr, + trusty_virtio_notify, callback, name); +#endif if (!tvr->vq) { dev_err(&vdev->dev, "vring_new_virtqueue %s failed\n", name); @@ -356,12 +363,19 @@ static struct virtqueue *_find_vq(struct virtio_device *vdev, return ERR_PTR(-ENOMEM); } +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 14, 0) static int trusty_virtio_find_vqs(struct virtio_device *vdev, unsigned nvqs, struct virtqueue *vqs[], vq_callback_t *callbacks[], const char * const names[], const bool *ctx, struct irq_affinity *desc) +#else +static int trusty_virtio_find_vqs(struct virtio_device *vdev, unsigned nvqs, + struct virtqueue *vqs[], + vq_callback_t *callbacks[], + const char * const names[]) +#endif { uint i; int ret; -- https://clearlinux.org