* [PATCH 0/4] staging: fsl-mc/dpio, fsl-dpaa2/eth: Enable multi-arch compile
@ 2018-02-26 16:28 Ioana Radulescu
2018-02-26 16:28 ` [PATCH 1/4] staging: fsl-mc/dpio: Fix incorrect casts Ioana Radulescu
` (3 more replies)
0 siblings, 4 replies; 9+ messages in thread
From: Ioana Radulescu @ 2018-02-26 16:28 UTC (permalink / raw)
To: gregkh; +Cc: devel, roy.pledge, bogdan.purcareata, linux-kernel,
laurentiu.tudor
The DPAA2 DPIO and Ethernet drivers need only a couple of small
fixes in order to compile correctly for 32b platforms.
Update the drivers and remove ARCH_LAYERSCAPE from their Kconfig
dependencies.
Ioana Radulescu (4):
staging: fsl-mc/dpio: Fix incorrect casts
staging: fsl-mc/dpio: allow the driver to compile multi-arch
staging: fsl-dpaa2/eth: Fix incorrect casts
staging: fsl-dpaa2/eth: allow the driver to compile multi-arch
drivers/staging/fsl-dpaa2/Kconfig | 2 +-
drivers/staging/fsl-dpaa2/ethernet/dpaa2-eth.c | 6 +++---
drivers/staging/fsl-mc/bus/Kconfig | 2 +-
drivers/staging/fsl-mc/bus/dpio/dpio-service.c | 4 ++--
drivers/staging/fsl-mc/bus/dpio/qbman-portal.c | 4 ++--
5 files changed, 9 insertions(+), 9 deletions(-)
--
2.7.4
_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 1/4] staging: fsl-mc/dpio: Fix incorrect casts
2018-02-26 16:28 [PATCH 0/4] staging: fsl-mc/dpio, fsl-dpaa2/eth: Enable multi-arch compile Ioana Radulescu
@ 2018-02-26 16:28 ` Ioana Radulescu
2018-02-26 16:28 ` [PATCH 2/4] staging: fsl-mc/dpio: allow the driver to compile multi-arch Ioana Radulescu
` (2 subsequent siblings)
3 siblings, 0 replies; 9+ messages in thread
From: Ioana Radulescu @ 2018-02-26 16:28 UTC (permalink / raw)
To: gregkh; +Cc: devel, roy.pledge, bogdan.purcareata, linux-kernel,
laurentiu.tudor
The DPIO driver incorrectly assumes virtual addresses are always
64b long, which causes compiler errors when building for a 32b
platform.
Fix this by using explicit casts to uintptr_t where necessary.
Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com>
---
drivers/staging/fsl-mc/bus/dpio/dpio-service.c | 4 ++--
drivers/staging/fsl-mc/bus/dpio/qbman-portal.c | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/staging/fsl-mc/bus/dpio/dpio-service.c b/drivers/staging/fsl-mc/bus/dpio/dpio-service.c
index 1acff7e..14ed2be 100644
--- a/drivers/staging/fsl-mc/bus/dpio/dpio-service.c
+++ b/drivers/staging/fsl-mc/bus/dpio/dpio-service.c
@@ -192,7 +192,7 @@ irqreturn_t dpaa2_io_irq(struct dpaa2_io *obj)
u64 q64;
q64 = qbman_result_SCN_ctx(dq);
- ctx = (void *)q64;
+ ctx = (void *)(uintptr_t)q64;
ctx->cb(ctx);
} else {
pr_crit("fsl-mc-dpio: Unrecognised/ignored DQRR entry\n");
@@ -237,7 +237,7 @@ int dpaa2_io_service_register(struct dpaa2_io *d,
return -ENODEV;
ctx->dpio_id = d->dpio_desc.dpio_id;
- ctx->qman64 = (u64)ctx;
+ ctx->qman64 = (u64)(uintptr_t)ctx;
ctx->dpio_private = d;
spin_lock_irqsave(&d->lock_notifications, irqflags);
list_add(&ctx->node, &d->notifications);
diff --git a/drivers/staging/fsl-mc/bus/dpio/qbman-portal.c b/drivers/staging/fsl-mc/bus/dpio/qbman-portal.c
index 376e9ed..f57c151 100644
--- a/drivers/staging/fsl-mc/bus/dpio/qbman-portal.c
+++ b/drivers/staging/fsl-mc/bus/dpio/qbman-portal.c
@@ -497,7 +497,7 @@ void qbman_pull_desc_set_storage(struct qbman_pull_desc *d,
int stash)
{
/* save the virtual address */
- d->rsp_addr_virt = (u64)storage;
+ d->rsp_addr_virt = (u64)(uintptr_t)storage;
if (!storage) {
d->verb &= ~(1 << QB_VDQCR_VERB_RLS_SHIFT);
@@ -590,7 +590,7 @@ int qbman_swp_pull(struct qbman_swp *s, struct qbman_pull_desc *d)
atomic_inc(&s->vdq.available);
return -EBUSY;
}
- s->vdq.storage = (void *)d->rsp_addr_virt;
+ s->vdq.storage = (void *)(uintptr_t)d->rsp_addr_virt;
p = qbman_get_cmd(s, QBMAN_CENA_SWP_VDQCR);
p->numf = d->numf;
p->tok = QMAN_DQ_TOKEN_VALID;
--
2.7.4
_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 2/4] staging: fsl-mc/dpio: allow the driver to compile multi-arch
2018-02-26 16:28 [PATCH 0/4] staging: fsl-mc/dpio, fsl-dpaa2/eth: Enable multi-arch compile Ioana Radulescu
2018-02-26 16:28 ` [PATCH 1/4] staging: fsl-mc/dpio: Fix incorrect casts Ioana Radulescu
@ 2018-02-26 16:28 ` Ioana Radulescu
2018-02-28 2:55 ` [RFC PATCH] staging: fsl-mc/dpio: qbman_pull_desc_set_token() can be static kbuild test robot
2018-02-26 16:28 ` [PATCH 3/4] staging: fsl-dpaa2/eth: Fix incorrect casts Ioana Radulescu
2018-02-26 16:28 ` [PATCH 4/4] staging: fsl-dpaa2/eth: allow the driver to compile multi-arch Ioana Radulescu
3 siblings, 1 reply; 9+ messages in thread
From: Ioana Radulescu @ 2018-02-26 16:28 UTC (permalink / raw)
To: gregkh; +Cc: devel, roy.pledge, bogdan.purcareata, linux-kernel,
laurentiu.tudor
Drop dependency on ARCH_LAYERSCAPE (which in turn depends on ARM64),
thus allowing this driver to compile on all architectures supported
by the fsl-mc bus driver.
This was compile tested on:
- powerpc (corenet_basic_defconfig, ppc64_defconfig)
- x86 (i386_defconfig, x86_64_defconfig, needs CONFIG_OF)
- arm64 (defconfig)
Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com>
---
drivers/staging/fsl-mc/bus/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/staging/fsl-mc/bus/Kconfig b/drivers/staging/fsl-mc/bus/Kconfig
index 5f4115d..3424530 100644
--- a/drivers/staging/fsl-mc/bus/Kconfig
+++ b/drivers/staging/fsl-mc/bus/Kconfig
@@ -7,7 +7,7 @@
config FSL_MC_DPIO
tristate "QorIQ DPAA2 DPIO driver"
- depends on FSL_MC_BUS && ARCH_LAYERSCAPE
+ depends on FSL_MC_BUS
help
Driver for the DPAA2 DPIO object. A DPIO provides queue and
buffer management facilities for software to interact with
--
2.7.4
_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 3/4] staging: fsl-dpaa2/eth: Fix incorrect casts
2018-02-26 16:28 [PATCH 0/4] staging: fsl-mc/dpio, fsl-dpaa2/eth: Enable multi-arch compile Ioana Radulescu
2018-02-26 16:28 ` [PATCH 1/4] staging: fsl-mc/dpio: Fix incorrect casts Ioana Radulescu
2018-02-26 16:28 ` [PATCH 2/4] staging: fsl-mc/dpio: allow the driver to compile multi-arch Ioana Radulescu
@ 2018-02-26 16:28 ` Ioana Radulescu
2018-02-26 16:28 ` [PATCH 4/4] staging: fsl-dpaa2/eth: allow the driver to compile multi-arch Ioana Radulescu
3 siblings, 0 replies; 9+ messages in thread
From: Ioana Radulescu @ 2018-02-26 16:28 UTC (permalink / raw)
To: gregkh; +Cc: devel, roy.pledge, bogdan.purcareata, linux-kernel,
laurentiu.tudor
The DPAA2 Ethernet driver incorrectly assumes virtual addresses
are always 64b long, which causes compiler errors when building
for a 32b platform.
Fix this by using explicit casts to uintptr_t where necessary.
Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com>
---
drivers/staging/fsl-dpaa2/ethernet/dpaa2-eth.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/staging/fsl-dpaa2/ethernet/dpaa2-eth.c b/drivers/staging/fsl-dpaa2/ethernet/dpaa2-eth.c
index dc7be538..c81a01f 100644
--- a/drivers/staging/fsl-dpaa2/ethernet/dpaa2-eth.c
+++ b/drivers/staging/fsl-dpaa2/ethernet/dpaa2-eth.c
@@ -324,7 +324,7 @@ static int consume_frames(struct dpaa2_eth_channel *ch)
}
fd = dpaa2_dq_fd(dq);
- fq = (struct dpaa2_eth_fq *)dpaa2_dq_fqd_ctx(dq);
+ fq = (struct dpaa2_eth_fq *)(uintptr_t)dpaa2_dq_fqd_ctx(dq);
fq->stats.frames++;
fq->consume(priv, ch, fd, &ch->napi, fq->flowid);
@@ -1905,7 +1905,7 @@ static int setup_rx_flow(struct dpaa2_eth_priv *priv,
queue.destination.id = fq->channel->dpcon_id;
queue.destination.type = DPNI_DEST_DPCON;
queue.destination.priority = 1;
- queue.user_context = (u64)fq;
+ queue.user_context = (u64)(uintptr_t)fq;
err = dpni_set_queue(priv->mc_io, 0, priv->mc_token,
DPNI_QUEUE_RX, 0, fq->flowid,
DPNI_QUEUE_OPT_USER_CTX | DPNI_QUEUE_OPT_DEST,
@@ -1957,7 +1957,7 @@ static int setup_tx_flow(struct dpaa2_eth_priv *priv,
queue.destination.id = fq->channel->dpcon_id;
queue.destination.type = DPNI_DEST_DPCON;
queue.destination.priority = 0;
- queue.user_context = (u64)fq;
+ queue.user_context = (u64)(uintptr_t)fq;
err = dpni_set_queue(priv->mc_io, 0, priv->mc_token,
DPNI_QUEUE_TX_CONFIRM, 0, fq->flowid,
DPNI_QUEUE_OPT_USER_CTX | DPNI_QUEUE_OPT_DEST,
--
2.7.4
_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 4/4] staging: fsl-dpaa2/eth: allow the driver to compile multi-arch
2018-02-26 16:28 [PATCH 0/4] staging: fsl-mc/dpio, fsl-dpaa2/eth: Enable multi-arch compile Ioana Radulescu
` (2 preceding siblings ...)
2018-02-26 16:28 ` [PATCH 3/4] staging: fsl-dpaa2/eth: Fix incorrect casts Ioana Radulescu
@ 2018-02-26 16:28 ` Ioana Radulescu
2018-02-28 3:43 ` kbuild test robot
2018-03-01 16:31 ` Greg KH
3 siblings, 2 replies; 9+ messages in thread
From: Ioana Radulescu @ 2018-02-26 16:28 UTC (permalink / raw)
To: gregkh; +Cc: devel, roy.pledge, bogdan.purcareata, linux-kernel,
laurentiu.tudor
Drop dependency on ARCH_LAYERSCAPE (which in turn depends on ARM64),
thus allowing this driver to compile on all architectures supported
by the fsl-mc bus driver.
This was compile tested on:
- powerpc (corenet_basic_defconfig, ppc64_defconfig)
- x86 (i386_defconfig, x86_64_defconfig, needs CONFIG_OF)
- arm64 (defconfig)
Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com>
---
drivers/staging/fsl-dpaa2/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/staging/fsl-dpaa2/Kconfig b/drivers/staging/fsl-dpaa2/Kconfig
index dfff675..730fd6d 100644
--- a/drivers/staging/fsl-dpaa2/Kconfig
+++ b/drivers/staging/fsl-dpaa2/Kconfig
@@ -4,7 +4,7 @@
config FSL_DPAA2
bool "Freescale DPAA2 devices"
- depends on FSL_MC_BUS && ARCH_LAYERSCAPE
+ depends on FSL_MC_BUS
---help---
Build drivers for Freescale DataPath Acceleration
Architecture (DPAA2) family of SoCs.
--
2.7.4
_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [RFC PATCH] staging: fsl-mc/dpio: qbman_pull_desc_set_token() can be static
2018-02-26 16:28 ` [PATCH 2/4] staging: fsl-mc/dpio: allow the driver to compile multi-arch Ioana Radulescu
@ 2018-02-28 2:55 ` kbuild test robot
0 siblings, 0 replies; 9+ messages in thread
From: kbuild test robot @ 2018-02-28 2:55 UTC (permalink / raw)
To: Ioana Radulescu
Cc: kbuild-all, gregkh, devel, linux-kernel, roy.pledge,
laurentiu.tudor, bogdan.purcareata
Fixes: 1628e2e4dc76 ("staging: fsl-mc/dpio: allow the driver to compile multi-arch")
Signed-off-by: Fengguang Wu <fengguang.wu@intel.com>
---
qbman-portal.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/staging/fsl-mc/bus/dpio/qbman-portal.c b/drivers/staging/fsl-mc/bus/dpio/qbman-portal.c
index f57c151..7b75c93 100644
--- a/drivers/staging/fsl-mc/bus/dpio/qbman-portal.c
+++ b/drivers/staging/fsl-mc/bus/dpio/qbman-portal.c
@@ -522,7 +522,7 @@ void qbman_pull_desc_set_numframes(struct qbman_pull_desc *d, u8 numframes)
d->numf = numframes - 1;
}
-void qbman_pull_desc_set_token(struct qbman_pull_desc *d, u8 token)
+static void qbman_pull_desc_set_token(struct qbman_pull_desc *d, u8 token)
{
d->tok = token;
}
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 4/4] staging: fsl-dpaa2/eth: allow the driver to compile multi-arch
2018-02-26 16:28 ` [PATCH 4/4] staging: fsl-dpaa2/eth: allow the driver to compile multi-arch Ioana Radulescu
@ 2018-02-28 3:43 ` kbuild test robot
2018-03-01 16:31 ` Greg KH
1 sibling, 0 replies; 9+ messages in thread
From: kbuild test robot @ 2018-02-28 3:43 UTC (permalink / raw)
To: Ioana Radulescu
Cc: devel, gregkh, roy.pledge, linux-kernel, kbuild-all,
bogdan.purcareata, laurentiu.tudor
Hi Ioana,
I love your patch! Perhaps something to improve:
[auto build test WARNING on staging/staging-testing]
[also build test WARNING on v4.16-rc3 next-20180227]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Ioana-Radulescu/staging-fsl-mc-dpio-fsl-dpaa2-eth-Enable-multi-arch-compile/20180228-062457
reproduce:
# apt-get install sparse
make ARCH=x86_64 allmodconfig
make C=1 CF=-D__CHECK_ENDIAN__
sparse warnings: (new ones prefixed by >>)
>> drivers/staging/fsl-dpaa2/ethernet/../../fsl-mc/include/dpaa2-fd.h:290:16: sparse: cast from restricted __le64
>> drivers/staging/fsl-dpaa2/ethernet/../../fsl-mc/include/dpaa2-fd.h:290:16: sparse: cast to restricted __le64
>> drivers/staging/fsl-dpaa2/ethernet/../../fsl-mc/include/dpaa2-fd.h:290:16: sparse: cast from restricted __le64
>> drivers/staging/fsl-dpaa2/ethernet/../../fsl-mc/include/dpaa2-fd.h:290:16: sparse: cast to restricted __le64
>> drivers/staging/fsl-dpaa2/ethernet/../../fsl-mc/include/dpaa2-fd.h:421:30: sparse: cast truncates bits from constant value (ffff7fff becomes 7fff)
--
>> drivers/staging/fsl-dpaa2/ethernet/dpni.c:1624:22: sparse: cast to restricted __le16
drivers/staging/fsl-dpaa2/ethernet/dpni.c:1625:22: sparse: cast to restricted __le16
vim +290 drivers/staging/fsl-dpaa2/ethernet/../../fsl-mc/include/dpaa2-fd.h
d3269bdc Roy Pledge 2017-03-13 281
d3269bdc Roy Pledge 2017-03-13 282 /**
d3269bdc Roy Pledge 2017-03-13 283 * dpaa2_sg_get_addr() - Get the address from SG entry
d3269bdc Roy Pledge 2017-03-13 284 * @sg: the given scatter-gathering object
d3269bdc Roy Pledge 2017-03-13 285 *
d3269bdc Roy Pledge 2017-03-13 286 * Return the address.
d3269bdc Roy Pledge 2017-03-13 287 */
d3269bdc Roy Pledge 2017-03-13 288 static inline dma_addr_t dpaa2_sg_get_addr(const struct dpaa2_sg_entry *sg)
d3269bdc Roy Pledge 2017-03-13 289 {
d3269bdc Roy Pledge 2017-03-13 @290 return le64_to_cpu((dma_addr_t)sg->addr);
d3269bdc Roy Pledge 2017-03-13 291 }
d3269bdc Roy Pledge 2017-03-13 292
d3269bdc Roy Pledge 2017-03-13 293 /**
d3269bdc Roy Pledge 2017-03-13 294 * dpaa2_sg_set_addr() - Set the address in SG entry
d3269bdc Roy Pledge 2017-03-13 295 * @sg: the given scatter-gathering object
d3269bdc Roy Pledge 2017-03-13 296 * @addr: the address to be set
d3269bdc Roy Pledge 2017-03-13 297 */
d3269bdc Roy Pledge 2017-03-13 298 static inline void dpaa2_sg_set_addr(struct dpaa2_sg_entry *sg, dma_addr_t addr)
d3269bdc Roy Pledge 2017-03-13 299 {
d3269bdc Roy Pledge 2017-03-13 300 sg->addr = cpu_to_le64(addr);
d3269bdc Roy Pledge 2017-03-13 301 }
d3269bdc Roy Pledge 2017-03-13 302
d3269bdc Roy Pledge 2017-03-13 303 static inline bool dpaa2_sg_short_len(const struct dpaa2_sg_entry *sg)
d3269bdc Roy Pledge 2017-03-13 304 {
d3269bdc Roy Pledge 2017-03-13 305 return !!((le16_to_cpu(sg->format_offset) >> SG_SHORT_LEN_FLAG_SHIFT)
d3269bdc Roy Pledge 2017-03-13 306 & SG_SHORT_LEN_FLAG_MASK);
d3269bdc Roy Pledge 2017-03-13 307 }
d3269bdc Roy Pledge 2017-03-13 308
d3269bdc Roy Pledge 2017-03-13 309 /**
d3269bdc Roy Pledge 2017-03-13 310 * dpaa2_sg_get_len() - Get the length in SG entry
d3269bdc Roy Pledge 2017-03-13 311 * @sg: the given scatter-gathering object
d3269bdc Roy Pledge 2017-03-13 312 *
d3269bdc Roy Pledge 2017-03-13 313 * Return the length.
d3269bdc Roy Pledge 2017-03-13 314 */
d3269bdc Roy Pledge 2017-03-13 315 static inline u32 dpaa2_sg_get_len(const struct dpaa2_sg_entry *sg)
d3269bdc Roy Pledge 2017-03-13 316 {
d3269bdc Roy Pledge 2017-03-13 317 if (dpaa2_sg_short_len(sg))
d3269bdc Roy Pledge 2017-03-13 318 return le32_to_cpu(sg->len) & SG_SHORT_LEN_MASK;
d3269bdc Roy Pledge 2017-03-13 319
d3269bdc Roy Pledge 2017-03-13 320 return le32_to_cpu(sg->len);
d3269bdc Roy Pledge 2017-03-13 321 }
d3269bdc Roy Pledge 2017-03-13 322
d3269bdc Roy Pledge 2017-03-13 323 /**
d3269bdc Roy Pledge 2017-03-13 324 * dpaa2_sg_set_len() - Set the length in SG entry
d3269bdc Roy Pledge 2017-03-13 325 * @sg: the given scatter-gathering object
d3269bdc Roy Pledge 2017-03-13 326 * @len: the length to be set
d3269bdc Roy Pledge 2017-03-13 327 */
d3269bdc Roy Pledge 2017-03-13 328 static inline void dpaa2_sg_set_len(struct dpaa2_sg_entry *sg, u32 len)
d3269bdc Roy Pledge 2017-03-13 329 {
d3269bdc Roy Pledge 2017-03-13 330 sg->len = cpu_to_le32(len);
d3269bdc Roy Pledge 2017-03-13 331 }
d3269bdc Roy Pledge 2017-03-13 332
d3269bdc Roy Pledge 2017-03-13 333 /**
d3269bdc Roy Pledge 2017-03-13 334 * dpaa2_sg_get_offset() - Get the offset in SG entry
d3269bdc Roy Pledge 2017-03-13 335 * @sg: the given scatter-gathering object
d3269bdc Roy Pledge 2017-03-13 336 *
d3269bdc Roy Pledge 2017-03-13 337 * Return the offset.
d3269bdc Roy Pledge 2017-03-13 338 */
d3269bdc Roy Pledge 2017-03-13 339 static inline u16 dpaa2_sg_get_offset(const struct dpaa2_sg_entry *sg)
d3269bdc Roy Pledge 2017-03-13 340 {
d3269bdc Roy Pledge 2017-03-13 341 return le16_to_cpu(sg->format_offset) & SG_OFFSET_MASK;
d3269bdc Roy Pledge 2017-03-13 342 }
d3269bdc Roy Pledge 2017-03-13 343
d3269bdc Roy Pledge 2017-03-13 344 /**
d3269bdc Roy Pledge 2017-03-13 345 * dpaa2_sg_set_offset() - Set the offset in SG entry
d3269bdc Roy Pledge 2017-03-13 346 * @sg: the given scatter-gathering object
d3269bdc Roy Pledge 2017-03-13 347 * @offset: the offset to be set
d3269bdc Roy Pledge 2017-03-13 348 */
d3269bdc Roy Pledge 2017-03-13 349 static inline void dpaa2_sg_set_offset(struct dpaa2_sg_entry *sg,
d3269bdc Roy Pledge 2017-03-13 350 u16 offset)
d3269bdc Roy Pledge 2017-03-13 351 {
d3269bdc Roy Pledge 2017-03-13 352 sg->format_offset &= cpu_to_le16(~SG_OFFSET_MASK);
d3269bdc Roy Pledge 2017-03-13 353 sg->format_offset |= cpu_to_le16(offset);
d3269bdc Roy Pledge 2017-03-13 354 }
d3269bdc Roy Pledge 2017-03-13 355
d3269bdc Roy Pledge 2017-03-13 356 /**
d3269bdc Roy Pledge 2017-03-13 357 * dpaa2_sg_get_format() - Get the SG format in SG entry
d3269bdc Roy Pledge 2017-03-13 358 * @sg: the given scatter-gathering object
d3269bdc Roy Pledge 2017-03-13 359 *
d3269bdc Roy Pledge 2017-03-13 360 * Return the format.
d3269bdc Roy Pledge 2017-03-13 361 */
d3269bdc Roy Pledge 2017-03-13 362 static inline enum dpaa2_sg_format
d3269bdc Roy Pledge 2017-03-13 363 dpaa2_sg_get_format(const struct dpaa2_sg_entry *sg)
d3269bdc Roy Pledge 2017-03-13 364 {
d3269bdc Roy Pledge 2017-03-13 365 return (enum dpaa2_sg_format)((le16_to_cpu(sg->format_offset)
d3269bdc Roy Pledge 2017-03-13 366 >> SG_FORMAT_SHIFT) & SG_FORMAT_MASK);
d3269bdc Roy Pledge 2017-03-13 367 }
d3269bdc Roy Pledge 2017-03-13 368
d3269bdc Roy Pledge 2017-03-13 369 /**
d3269bdc Roy Pledge 2017-03-13 370 * dpaa2_sg_set_format() - Set the SG format in SG entry
d3269bdc Roy Pledge 2017-03-13 371 * @sg: the given scatter-gathering object
d3269bdc Roy Pledge 2017-03-13 372 * @format: the format to be set
d3269bdc Roy Pledge 2017-03-13 373 */
d3269bdc Roy Pledge 2017-03-13 374 static inline void dpaa2_sg_set_format(struct dpaa2_sg_entry *sg,
d3269bdc Roy Pledge 2017-03-13 375 enum dpaa2_sg_format format)
d3269bdc Roy Pledge 2017-03-13 376 {
d3269bdc Roy Pledge 2017-03-13 377 sg->format_offset &= cpu_to_le16(~(SG_FORMAT_MASK << SG_FORMAT_SHIFT));
d3269bdc Roy Pledge 2017-03-13 378 sg->format_offset |= cpu_to_le16(format << SG_FORMAT_SHIFT);
d3269bdc Roy Pledge 2017-03-13 379 }
d3269bdc Roy Pledge 2017-03-13 380
d3269bdc Roy Pledge 2017-03-13 381 /**
d3269bdc Roy Pledge 2017-03-13 382 * dpaa2_sg_get_bpid() - Get the buffer pool id in SG entry
d3269bdc Roy Pledge 2017-03-13 383 * @sg: the given scatter-gathering object
d3269bdc Roy Pledge 2017-03-13 384 *
d3269bdc Roy Pledge 2017-03-13 385 * Return the bpid.
d3269bdc Roy Pledge 2017-03-13 386 */
d3269bdc Roy Pledge 2017-03-13 387 static inline u16 dpaa2_sg_get_bpid(const struct dpaa2_sg_entry *sg)
d3269bdc Roy Pledge 2017-03-13 388 {
d3269bdc Roy Pledge 2017-03-13 389 return le16_to_cpu(sg->bpid) & SG_BPID_MASK;
d3269bdc Roy Pledge 2017-03-13 390 }
d3269bdc Roy Pledge 2017-03-13 391
d3269bdc Roy Pledge 2017-03-13 392 /**
d3269bdc Roy Pledge 2017-03-13 393 * dpaa2_sg_set_bpid() - Set the buffer pool id in SG entry
d3269bdc Roy Pledge 2017-03-13 394 * @sg: the given scatter-gathering object
d3269bdc Roy Pledge 2017-03-13 395 * @bpid: the bpid to be set
d3269bdc Roy Pledge 2017-03-13 396 */
d3269bdc Roy Pledge 2017-03-13 397 static inline void dpaa2_sg_set_bpid(struct dpaa2_sg_entry *sg, u16 bpid)
d3269bdc Roy Pledge 2017-03-13 398 {
d3269bdc Roy Pledge 2017-03-13 399 sg->bpid &= cpu_to_le16(~(SG_BPID_MASK));
d3269bdc Roy Pledge 2017-03-13 400 sg->bpid |= cpu_to_le16(bpid);
d3269bdc Roy Pledge 2017-03-13 401 }
d3269bdc Roy Pledge 2017-03-13 402
d3269bdc Roy Pledge 2017-03-13 403 /**
d3269bdc Roy Pledge 2017-03-13 404 * dpaa2_sg_is_final() - Check final bit in SG entry
d3269bdc Roy Pledge 2017-03-13 405 * @sg: the given scatter-gathering object
d3269bdc Roy Pledge 2017-03-13 406 *
d3269bdc Roy Pledge 2017-03-13 407 * Return bool.
d3269bdc Roy Pledge 2017-03-13 408 */
d3269bdc Roy Pledge 2017-03-13 409 static inline bool dpaa2_sg_is_final(const struct dpaa2_sg_entry *sg)
d3269bdc Roy Pledge 2017-03-13 410 {
d3269bdc Roy Pledge 2017-03-13 411 return !!(le16_to_cpu(sg->format_offset) >> SG_FINAL_FLAG_SHIFT);
d3269bdc Roy Pledge 2017-03-13 412 }
d3269bdc Roy Pledge 2017-03-13 413
d3269bdc Roy Pledge 2017-03-13 414 /**
d3269bdc Roy Pledge 2017-03-13 415 * dpaa2_sg_set_final() - Set the final bit in SG entry
d3269bdc Roy Pledge 2017-03-13 416 * @sg: the given scatter-gathering object
d3269bdc Roy Pledge 2017-03-13 417 * @final: the final boolean to be set
d3269bdc Roy Pledge 2017-03-13 418 */
d3269bdc Roy Pledge 2017-03-13 419 static inline void dpaa2_sg_set_final(struct dpaa2_sg_entry *sg, bool final)
d3269bdc Roy Pledge 2017-03-13 420 {
d3269bdc Roy Pledge 2017-03-13 @421 sg->format_offset &= cpu_to_le16(~(SG_FINAL_FLAG_MASK
d3269bdc Roy Pledge 2017-03-13 422 << SG_FINAL_FLAG_SHIFT));
d3269bdc Roy Pledge 2017-03-13 423 sg->format_offset |= cpu_to_le16(final << SG_FINAL_FLAG_SHIFT);
d3269bdc Roy Pledge 2017-03-13 424 }
d3269bdc Roy Pledge 2017-03-13 425
:::::: The code at line 290 was first introduced by commit
:::::: d3269bdc7ebcf8bce7969a68d7108ec5890d8173 bus: fsl-mc: dpio: add frame descriptor and scatter/gather APIs
:::::: TO: Roy Pledge <Roy.Pledge@nxp.com>
:::::: CC: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 4/4] staging: fsl-dpaa2/eth: allow the driver to compile multi-arch
2018-02-26 16:28 ` [PATCH 4/4] staging: fsl-dpaa2/eth: allow the driver to compile multi-arch Ioana Radulescu
2018-02-28 3:43 ` kbuild test robot
@ 2018-03-01 16:31 ` Greg KH
2018-03-02 16:55 ` Ruxandra Ioana Ciocoi Radulescu
1 sibling, 1 reply; 9+ messages in thread
From: Greg KH @ 2018-03-01 16:31 UTC (permalink / raw)
To: Ioana Radulescu
Cc: devel, roy.pledge, laurentiu.tudor, bogdan.purcareata,
linux-kernel
On Mon, Feb 26, 2018 at 10:28:07AM -0600, Ioana Radulescu wrote:
> Drop dependency on ARCH_LAYERSCAPE (which in turn depends on ARM64),
> thus allowing this driver to compile on all architectures supported
> by the fsl-mc bus driver.
>
> This was compile tested on:
> - powerpc (corenet_basic_defconfig, ppc64_defconfig)
> - x86 (i386_defconfig, x86_64_defconfig, needs CONFIG_OF)
> - arm64 (defconfig)
Seems you need to compile it on more things, based on the kbuild
warnings :(
Please fix up and resend.
thanks,
greg k-h
_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
* RE: [PATCH 4/4] staging: fsl-dpaa2/eth: allow the driver to compile multi-arch
2018-03-01 16:31 ` Greg KH
@ 2018-03-02 16:55 ` Ruxandra Ioana Ciocoi Radulescu
0 siblings, 0 replies; 9+ messages in thread
From: Ruxandra Ioana Ciocoi Radulescu @ 2018-03-02 16:55 UTC (permalink / raw)
To: Greg KH
Cc: devel@driverdev.osuosl.org, Roy Pledge, Bogdan Purcareata,
linux-kernel@vger.kernel.org, Laurentiu Tudor
-----Original Message-----
From: Greg KH [mailto:gregkh@linuxfoundation.org]
Sent: Thursday, March 1, 2018 6:32 PM
To: Ruxandra Ioana Ciocoi Radulescu <ruxandra.radulescu@nxp.com>
Cc: devel@driverdev.osuosl.org; Roy Pledge <roy.pledge@nxp.com>; Bogdan Purcareata <bogdan.purcareata@nxp.com>; linux-kernel@vger.kernel.org; Laurentiu Tudor <laurentiu.tudor@nxp.com>
Subject: Re: [PATCH 4/4] staging: fsl-dpaa2/eth: allow the driver to compile multi-arch
On Mon, Feb 26, 2018 at 10:28:07AM -0600, Ioana Radulescu wrote:
> Drop dependency on ARCH_LAYERSCAPE (which in turn depends on ARM64),
> thus allowing this driver to compile on all architectures supported by
> the fsl-mc bus driver.
>
> This was compile tested on:
> - powerpc (corenet_basic_defconfig, ppc64_defconfig)
> - x86 (i386_defconfig, x86_64_defconfig, needs CONFIG_OF)
> - arm64 (defconfig)
Seems you need to compile it on more things, based on the kbuild warnings :(
Yes I do, sorry for the slip :(
I've added allmodconfig and the sparse endianness flag to my list of tests.
Will send a v2 early next week.
Thanks,
Ioana
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2018-03-02 16:55 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-02-26 16:28 [PATCH 0/4] staging: fsl-mc/dpio, fsl-dpaa2/eth: Enable multi-arch compile Ioana Radulescu
2018-02-26 16:28 ` [PATCH 1/4] staging: fsl-mc/dpio: Fix incorrect casts Ioana Radulescu
2018-02-26 16:28 ` [PATCH 2/4] staging: fsl-mc/dpio: allow the driver to compile multi-arch Ioana Radulescu
2018-02-28 2:55 ` [RFC PATCH] staging: fsl-mc/dpio: qbman_pull_desc_set_token() can be static kbuild test robot
2018-02-26 16:28 ` [PATCH 3/4] staging: fsl-dpaa2/eth: Fix incorrect casts Ioana Radulescu
2018-02-26 16:28 ` [PATCH 4/4] staging: fsl-dpaa2/eth: allow the driver to compile multi-arch Ioana Radulescu
2018-02-28 3:43 ` kbuild test robot
2018-03-01 16:31 ` Greg KH
2018-03-02 16:55 ` Ruxandra Ioana Ciocoi Radulescu
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.