* [PATCH v5 1/2] qe: modify get_qe_base function @ 2016-07-25 5:43 Zhao Qiang 2016-07-25 5:43 ` [PATCH v5 2/2] QE: remove PPCisms for QE Zhao Qiang 0 siblings, 1 reply; 8+ messages in thread From: Zhao Qiang @ 2016-07-25 5:43 UTC (permalink / raw) To: oss; +Cc: linuxppc-dev, linux-kernel, xiaobo.xie, Zhao Qiang modify get_qe_base function with of_address_to_resource instead of of_get_property and of_translate_address. Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com> --- Changes for v2: - na Changes for v3: - na Changes for v4: - na Changes for v5: - na drivers/soc/fsl/qe/qe.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/soc/fsl/qe/qe.c b/drivers/soc/fsl/qe/qe.c index 7026507..2707a82 100644 --- a/drivers/soc/fsl/qe/qe.c +++ b/drivers/soc/fsl/qe/qe.c @@ -69,8 +69,8 @@ static phys_addr_t qebase = -1; phys_addr_t get_qe_base(void) { struct device_node *qe; - int size; - const u32 *prop; + int ret; + struct resource res; if (qebase != -1) return qebase; @@ -82,9 +82,9 @@ phys_addr_t get_qe_base(void) return qebase; } - prop = of_get_property(qe, "reg", &size); - if (prop && size >= sizeof(*prop)) - qebase = of_translate_address(qe, prop); + ret = of_address_to_resource(qe, 0, &res); + if (!ret) + qebase = res.start; of_node_put(qe); return qebase; -- 2.1.0.27.g96db324 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v5 2/2] QE: remove PPCisms for QE 2016-07-25 5:43 [PATCH v5 1/2] qe: modify get_qe_base function Zhao Qiang @ 2016-07-25 5:43 ` Zhao Qiang 2016-09-19 20:13 ` Leo Li 0 siblings, 1 reply; 8+ messages in thread From: Zhao Qiang @ 2016-07-25 5:43 UTC (permalink / raw) To: oss; +Cc: linuxppc-dev, linux-kernel, xiaobo.xie, Zhao Qiang QE was supported on PowerPC, and dependent on PPC, Now it is supported on other platforms. so remove PPCisms. Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com> --- Changes for v2: - na Changes for v3: - add NO_IRQ Changes for v4: - modify spin_event_timeout to opencoded timeout loop - remove NO_IRQ - modify virq_to_hw to opencoed code Changes for v5: - modify commit msg - modify depends of QUICC_ENGINE - add kerneldoc header for qe_issue_cmd drivers/irqchip/qe_ic.c | 28 +++++++++------ drivers/soc/fsl/qe/Kconfig | 2 +- drivers/soc/fsl/qe/qe.c | 80 ++++++++++++++++++++++++++----------------- drivers/soc/fsl/qe/qe_io.c | 42 ++++++++++------------- drivers/soc/fsl/qe/qe_tdm.c | 8 ++--- drivers/soc/fsl/qe/ucc.c | 10 +++--- drivers/soc/fsl/qe/ucc_fast.c | 68 ++++++++++++++++++------------------ include/soc/fsl/qe/qe.h | 1 - include/soc/fsl/qe/qe_ic.h | 12 +++---- 9 files changed, 133 insertions(+), 118 deletions(-) diff --git a/drivers/irqchip/qe_ic.c b/drivers/irqchip/qe_ic.c index 46652c0..32deb60 100644 --- a/drivers/irqchip/qe_ic.c +++ b/drivers/irqchip/qe_ic.c @@ -18,7 +18,10 @@ #include <linux/of_address.h> #include <linux/kernel.h> #include <linux/init.h> +#include <linux/irqdomain.h> #include <linux/errno.h> +#include <linux/of_address.h> +#include <linux/of_irq.h> #include <linux/reboot.h> #include <linux/slab.h> #include <linux/stddef.h> @@ -177,13 +180,13 @@ static struct qe_ic_info qe_ic_info[] = { static inline u32 qe_ic_read(volatile __be32 __iomem * base, unsigned int reg) { - return in_be32(base + (reg >> 2)); + return ioread32be(base + (reg >> 2)); } static inline void qe_ic_write(volatile __be32 __iomem * base, unsigned int reg, u32 value) { - out_be32(base + (reg >> 2), value); + iowrite32be(value, base + (reg >> 2)); } static inline struct qe_ic *qe_ic_from_irq(unsigned int virq) @@ -285,7 +288,7 @@ static const struct irq_domain_ops qe_ic_host_ops = { .xlate = irq_domain_xlate_onetwocell, }; -/* Return an interrupt vector or NO_IRQ if no interrupt is pending. */ +/* Return an interrupt vector or 0 if no interrupt is pending. */ unsigned int qe_ic_get_low_irq(struct qe_ic *qe_ic) { int irq; @@ -296,12 +299,12 @@ unsigned int qe_ic_get_low_irq(struct qe_ic *qe_ic) irq = qe_ic_read(qe_ic->regs, QEIC_CIVEC) >> 26; if (irq == 0) - return NO_IRQ; + return 0; return irq_linear_revmap(qe_ic->irqhost, irq); } -/* Return an interrupt vector or NO_IRQ if no interrupt is pending. */ +/* Return an interrupt vector or 0 if no interrupt is pending. */ unsigned int qe_ic_get_high_irq(struct qe_ic *qe_ic) { int irq; @@ -312,7 +315,7 @@ unsigned int qe_ic_get_high_irq(struct qe_ic *qe_ic) irq = qe_ic_read(qe_ic->regs, QEIC_CHIVEC) >> 26; if (irq == 0) - return NO_IRQ; + return 0; return irq_linear_revmap(qe_ic->irqhost, irq); } @@ -355,7 +358,7 @@ static int __init qe_ic_init(unsigned int flags) qe_ic->virq_high = irq_of_parse_and_map(node, 0); qe_ic->virq_low = irq_of_parse_and_map(node, 1); - if (qe_ic->virq_low == NO_IRQ) { + if (qe_ic->virq_low == 0) { pr_err("Failed to map QE_IC low IRQ\n"); ret = -ENOMEM; goto err_domain_remove; @@ -387,7 +390,7 @@ static int __init qe_ic_init(unsigned int flags) irq_set_handler_data(qe_ic->virq_low, qe_ic); irq_set_chained_handler(qe_ic->virq_low, qe_ic_cascade_low_mpic); - if (qe_ic->virq_high != NO_IRQ && + if (qe_ic->virq_high != 0 && qe_ic->virq_high != qe_ic->virq_low) { irq_set_handler_data(qe_ic->virq_high, qe_ic); irq_set_chained_handler(qe_ic->virq_high, @@ -407,7 +410,8 @@ err_put_node: void qe_ic_set_highest_priority(unsigned int virq, int high) { struct qe_ic *qe_ic = qe_ic_from_irq(virq); - unsigned int src = virq_to_hw(virq); + struct irq_data *irq_data = irq_get_irq_data(virq); + irq_hw_number_t src = WARN_ON(!irq_data) ? 0 : irq_data->hwirq; u32 temp = 0; temp = qe_ic_read(qe_ic->regs, QEIC_CICR); @@ -425,7 +429,8 @@ void qe_ic_set_highest_priority(unsigned int virq, int high) int qe_ic_set_priority(unsigned int virq, unsigned int priority) { struct qe_ic *qe_ic = qe_ic_from_irq(virq); - unsigned int src = virq_to_hw(virq); + struct irq_data *irq_data = irq_get_irq_data(virq); + irq_hw_number_t src = WARN_ON(!irq_data) ? 0 : irq_data->hwirq; u32 temp; if (priority > 8 || priority == 0) @@ -455,7 +460,8 @@ int qe_ic_set_priority(unsigned int virq, unsigned int priority) int qe_ic_set_high_priority(unsigned int virq, unsigned int priority, int high) { struct qe_ic *qe_ic = qe_ic_from_irq(virq); - unsigned int src = virq_to_hw(virq); + struct irq_data *irq_data = irq_get_irq_data(virq); + irq_hw_number_t src = WARN_ON(!irq_data) ? 0 : irq_data->hwirq; u32 temp, control_reg = QEIC_CICNR, shift = 0; if (priority > 2 || priority == 0) diff --git a/drivers/soc/fsl/qe/Kconfig b/drivers/soc/fsl/qe/Kconfig index 73a2e08..b26b643 100644 --- a/drivers/soc/fsl/qe/Kconfig +++ b/drivers/soc/fsl/qe/Kconfig @@ -4,7 +4,7 @@ config QUICC_ENGINE bool "Freescale QUICC Engine (QE) Support" - depends on FSL_SOC && PPC32 + depends on OF && HAS_IOMEM select GENERIC_ALLOCATOR select CRC32 help diff --git a/drivers/soc/fsl/qe/qe.c b/drivers/soc/fsl/qe/qe.c index 2707a82..2b53e85 100644 --- a/drivers/soc/fsl/qe/qe.c +++ b/drivers/soc/fsl/qe/qe.c @@ -33,8 +33,6 @@ #include <asm/pgtable.h> #include <soc/fsl/qe/immap_qe.h> #include <soc/fsl/qe/qe.h> -#include <asm/prom.h> -#include <asm/rheap.h> static void qe_snums_init(void); static int qe_sdma_init(void); @@ -109,15 +107,27 @@ void qe_reset(void) panic("sdma init failed!"); } +/* issue commands to QE, return 0 on success while -EIO on error + * + * @cmd: the command code, should be QE_INIT_TX_RX, QE_STOP_TX and so on + * @device: which sub-block will run the command, QE_CR_SUBBLOCK_UCCFAST1 - 8 + * , QE_CR_SUBBLOCK_UCCSLOW1 - 8, QE_CR_SUBBLOCK_MCC1 - 3, + * QE_CR_SUBBLOCK_IDMA1 - 4 and such on. + * @mcn_protocol: specifies mode for the command for non-MCC, should be + * QE_CR_PROTOCOL_HDLC_TRANSPARENT, QE_CR_PROTOCOL_QMC, QE_CR_PROTOCOL_UART + * and such on. + * @cmd_input: command related data. + */ int qe_issue_cmd(u32 cmd, u32 device, u8 mcn_protocol, u32 cmd_input) { unsigned long flags; u8 mcn_shift = 0, dev_shift = 0; - u32 ret; + int ret; + int i; spin_lock_irqsave(&qe_lock, flags); if (cmd == QE_RESET) { - out_be32(&qe_immr->cp.cecr, (u32) (cmd | QE_CR_FLG)); + iowrite32be((cmd | QE_CR_FLG), &qe_immr->cp.cecr); } else { if (cmd == QE_ASSIGN_PAGE) { /* Here device is the SNUM, not sub-block */ @@ -134,20 +144,26 @@ int qe_issue_cmd(u32 cmd, u32 device, u8 mcn_protocol, u32 cmd_input) mcn_shift = QE_CR_MCN_NORMAL_SHIFT; } - out_be32(&qe_immr->cp.cecdr, cmd_input); - out_be32(&qe_immr->cp.cecr, - (cmd | QE_CR_FLG | ((u32) device << dev_shift) | (u32) - mcn_protocol << mcn_shift)); + iowrite32be(cmd_input, &qe_immr->cp.cecdr); + iowrite32be((cmd | QE_CR_FLG | ((u32)device << dev_shift) | + (u32)mcn_protocol << mcn_shift), &qe_immr->cp.cecr); } /* wait for the QE_CR_FLG to clear */ - ret = spin_event_timeout((in_be32(&qe_immr->cp.cecr) & QE_CR_FLG) == 0, - 100, 0); + ret = -EIO; + for (i = 0; i < 100; i++) { + if ((ioread32be(&qe_immr->cp.cecr) & QE_CR_FLG) == 0) { + ret = 0; + break; + } + udelay(1); + } + /* On timeout (e.g. failure), the expression will be false (ret == 0), otherwise it will be true (ret == 1). */ spin_unlock_irqrestore(&qe_lock, flags); - return ret == 1; + return ret; } EXPORT_SYMBOL(qe_issue_cmd); @@ -166,8 +182,8 @@ static unsigned int brg_clk = 0; unsigned int qe_get_brg_clk(void) { struct device_node *qe; - int size; - const u32 *prop; + u32 val; + int ret; if (brg_clk) return brg_clk; @@ -179,9 +195,9 @@ unsigned int qe_get_brg_clk(void) return brg_clk; } - prop = of_get_property(qe, "brg-frequency", &size); - if (prop && size == sizeof(*prop)) - brg_clk = *prop; + ret = of_property_read_u32(qe, "brg-frequency", &val); + if (!ret) + brg_clk = val; of_node_put(qe); @@ -221,7 +237,7 @@ int qe_setbrg(enum qe_clock brg, unsigned int rate, unsigned int multiplier) tempval = ((divisor - 1) << QE_BRGC_DIVISOR_SHIFT) | QE_BRGC_ENABLE | div16; - out_be32(&qe_immr->brg.brgc[brg - QE_BRG1], tempval); + iowrite32be(tempval, &qe_immr->brg.brgc[brg - QE_BRG1]); return 0; } @@ -355,9 +371,9 @@ static int qe_sdma_init(void) return -ENOMEM; } - out_be32(&sdma->sdebcr, (u32) sdma_buf_offset & QE_SDEBCR_BA_MASK); - out_be32(&sdma->sdmr, (QE_SDMR_GLB_1_MSK | - (0x1 << QE_SDMR_CEN_SHIFT))); + iowrite32be((u32)sdma_buf_offset & QE_SDEBCR_BA_MASK, &sdma->sdebcr); + iowrite32be((QE_SDMR_GLB_1_MSK | (0x1 << QE_SDMR_CEN_SHIFT)), + &sdma->sdmr); return 0; } @@ -395,14 +411,14 @@ static void qe_upload_microcode(const void *base, "uploading microcode '%s'\n", ucode->id); /* Use auto-increment */ - out_be32(&qe_immr->iram.iadd, be32_to_cpu(ucode->iram_offset) | - QE_IRAM_IADD_AIE | QE_IRAM_IADD_BADDR); + iowrite32be(be32_to_cpu(ucode->iram_offset) | QE_IRAM_IADD_AIE | + QE_IRAM_IADD_BADDR, &qe_immr->iram.iadd); for (i = 0; i < be32_to_cpu(ucode->count); i++) - out_be32(&qe_immr->iram.idata, be32_to_cpu(code[i])); + iowrite32be(be32_to_cpu(code[i]), &qe_immr->iram.idata); /* Set I-RAM Ready Register */ - out_be32(&qe_immr->iram.iready, be32_to_cpu(QE_IRAM_READY)); + iowrite32be(be32_to_cpu(QE_IRAM_READY), &qe_immr->iram.iready); } /* @@ -487,7 +503,7 @@ int qe_upload_firmware(const struct qe_firmware *firmware) * If the microcode calls for it, split the I-RAM. */ if (!firmware->split) - setbits16(&qe_immr->cp.cercr, QE_CP_CERCR_CIR); + qe_setbits16(&qe_immr->cp.cercr, QE_CP_CERCR_CIR); if (firmware->soc.model) printk(KERN_INFO @@ -521,11 +537,11 @@ int qe_upload_firmware(const struct qe_firmware *firmware) u32 trap = be32_to_cpu(ucode->traps[j]); if (trap) - out_be32(&qe_immr->rsp[i].tibcr[j], trap); + iowrite32be(trap, &qe_immr->rsp[i].tibcr[j]); } /* Enable traps */ - out_be32(&qe_immr->rsp[i].eccr, be32_to_cpu(ucode->eccr)); + iowrite32be(be32_to_cpu(ucode->eccr), &qe_immr->rsp[i].eccr); } qe_firmware_uploaded = 1; @@ -644,9 +660,9 @@ EXPORT_SYMBOL(qe_get_num_of_risc); unsigned int qe_get_num_of_snums(void) { struct device_node *qe; - int size; unsigned int num_of_snums; - const u32 *prop; + u32 val; + int ret; num_of_snums = 28; /* The default number of snum for threads is 28 */ qe = of_find_compatible_node(NULL, NULL, "fsl,qe"); @@ -660,9 +676,9 @@ unsigned int qe_get_num_of_snums(void) return num_of_snums; } - prop = of_get_property(qe, "fsl,qe-num-snums", &size); - if (prop && size == sizeof(*prop)) { - num_of_snums = *prop; + ret = of_property_read_u32(qe, "fsl,qe-num-snums", &val); + if (!ret) { + num_of_snums = val; if ((num_of_snums < 28) || (num_of_snums > QE_NUM_OF_SNUM)) { /* No QE ever has fewer than 28 SNUMs */ pr_err("QE: number of snum is invalid\n"); diff --git a/drivers/soc/fsl/qe/qe_io.c b/drivers/soc/fsl/qe/qe_io.c index 7ae59ab..8966e8b 100644 --- a/drivers/soc/fsl/qe/qe_io.c +++ b/drivers/soc/fsl/qe/qe_io.c @@ -22,8 +22,6 @@ #include <asm/io.h> #include <soc/fsl/qe/qe.h> -#include <asm/prom.h> -#include <sysdev/fsl_soc.h> #undef DEBUG @@ -61,16 +59,16 @@ void __par_io_config_pin(struct qe_pio_regs __iomem *par_io, u8 pin, int dir, pin_mask1bit = (u32) (1 << (QE_PIO_PINS - (pin + 1))); /* Set open drain, if required */ - tmp_val = in_be32(&par_io->cpodr); + tmp_val = ioread32be(&par_io->cpodr); if (open_drain) - out_be32(&par_io->cpodr, pin_mask1bit | tmp_val); + iowrite32be(pin_mask1bit | tmp_val, &par_io->cpodr); else - out_be32(&par_io->cpodr, ~pin_mask1bit & tmp_val); + iowrite32be(~pin_mask1bit & tmp_val, &par_io->cpodr); /* define direction */ tmp_val = (pin > (QE_PIO_PINS / 2) - 1) ? - in_be32(&par_io->cpdir2) : - in_be32(&par_io->cpdir1); + ioread32be(&par_io->cpdir2) : + ioread32be(&par_io->cpdir1); /* get all bits mask for 2 bit per port */ pin_mask2bits = (u32) (0x3 << (QE_PIO_PINS - @@ -82,34 +80,30 @@ void __par_io_config_pin(struct qe_pio_regs __iomem *par_io, u8 pin, int dir, /* clear and set 2 bits mask */ if (pin > (QE_PIO_PINS / 2) - 1) { - out_be32(&par_io->cpdir2, - ~pin_mask2bits & tmp_val); + iowrite32be(~pin_mask2bits & tmp_val, &par_io->cpdir2); tmp_val &= ~pin_mask2bits; - out_be32(&par_io->cpdir2, new_mask2bits | tmp_val); + iowrite32be(new_mask2bits | tmp_val, &par_io->cpdir2); } else { - out_be32(&par_io->cpdir1, - ~pin_mask2bits & tmp_val); + iowrite32be(~pin_mask2bits & tmp_val, &par_io->cpdir1); tmp_val &= ~pin_mask2bits; - out_be32(&par_io->cpdir1, new_mask2bits | tmp_val); + iowrite32be(new_mask2bits | tmp_val, &par_io->cpdir1); } /* define pin assignment */ tmp_val = (pin > (QE_PIO_PINS / 2) - 1) ? - in_be32(&par_io->cppar2) : - in_be32(&par_io->cppar1); + ioread32be(&par_io->cppar2) : + ioread32be(&par_io->cppar1); new_mask2bits = (u32) (assignment << (QE_PIO_PINS - (pin % (QE_PIO_PINS / 2) + 1) * 2)); /* clear and set 2 bits mask */ if (pin > (QE_PIO_PINS / 2) - 1) { - out_be32(&par_io->cppar2, - ~pin_mask2bits & tmp_val); + iowrite32be(~pin_mask2bits & tmp_val, &par_io->cppar2); tmp_val &= ~pin_mask2bits; - out_be32(&par_io->cppar2, new_mask2bits | tmp_val); + iowrite32be(new_mask2bits | tmp_val, &par_io->cppar2); } else { - out_be32(&par_io->cppar1, - ~pin_mask2bits & tmp_val); + iowrite32be(~pin_mask2bits & tmp_val, &par_io->cppar1); tmp_val &= ~pin_mask2bits; - out_be32(&par_io->cppar1, new_mask2bits | tmp_val); + iowrite32be(new_mask2bits | tmp_val, &par_io->cppar1); } } EXPORT_SYMBOL(__par_io_config_pin); @@ -137,12 +131,12 @@ int par_io_data_set(u8 port, u8 pin, u8 val) /* calculate pin location */ pin_mask = (u32) (1 << (QE_PIO_PINS - 1 - pin)); - tmp_val = in_be32(&par_io[port].cpdata); + tmp_val = ioread32be(&par_io[port].cpdata); if (val == 0) /* clear */ - out_be32(&par_io[port].cpdata, ~pin_mask & tmp_val); + iowrite32be(~pin_mask & tmp_val, &par_io[port].cpdata); else /* set */ - out_be32(&par_io[port].cpdata, pin_mask | tmp_val); + iowrite32be(pin_mask | tmp_val, &par_io[port].cpdata); return 0; } diff --git a/drivers/soc/fsl/qe/qe_tdm.c b/drivers/soc/fsl/qe/qe_tdm.c index 5e48b14..974154f 100644 --- a/drivers/soc/fsl/qe/qe_tdm.c +++ b/drivers/soc/fsl/qe/qe_tdm.c @@ -227,10 +227,10 @@ void ucc_tdm_init(struct ucc_tdm *utdm, struct ucc_tdm_info *ut_info) &siram[siram_entry_id * 32 + 0x200 + i]); } - setbits16(&siram[(siram_entry_id * 32) + (utdm->num_of_ts - 1)], - SIR_LAST); - setbits16(&siram[(siram_entry_id * 32) + 0x200 + (utdm->num_of_ts - 1)], - SIR_LAST); + qe_setbits16(&siram[(siram_entry_id * 32) + (utdm->num_of_ts - 1)], + SIR_LAST); + qe_setbits16(&siram[(siram_entry_id * 32) + 0x200 + + (utdm->num_of_ts - 1)], SIR_LAST); /* Set SIxMR register */ sixmr = SIMR_SAD(siram_entry_id); diff --git a/drivers/soc/fsl/qe/ucc.c b/drivers/soc/fsl/qe/ucc.c index c646d87..bc64b83 100644 --- a/drivers/soc/fsl/qe/ucc.c +++ b/drivers/soc/fsl/qe/ucc.c @@ -39,7 +39,7 @@ int ucc_set_qe_mux_mii_mng(unsigned int ucc_num) return -EINVAL; spin_lock_irqsave(&cmxgcr_lock, flags); - clrsetbits_be32(&qe_immr->qmx.cmxgcr, QE_CMXGCR_MII_ENET_MNG, + qe_clrsetbits32(&qe_immr->qmx.cmxgcr, QE_CMXGCR_MII_ENET_MNG, ucc_num << QE_CMXGCR_MII_ENET_MNG_SHIFT); spin_unlock_irqrestore(&cmxgcr_lock, flags); @@ -84,7 +84,7 @@ int ucc_set_type(unsigned int ucc_num, enum ucc_speed_type speed) return -EINVAL; } - clrsetbits_8(guemr, UCC_GUEMR_MODE_MASK, + qe_clrsetbits8(guemr, UCC_GUEMR_MODE_MASK, UCC_GUEMR_SET_RESERVED3 | speed); return 0; @@ -113,9 +113,9 @@ int ucc_mux_set_grant_tsa_bkpt(unsigned int ucc_num, int set, u32 mask) get_cmxucr_reg(ucc_num, &cmxucr, ®_num, &shift); if (set) - setbits32(cmxucr, mask << shift); + qe_setbits32(cmxucr, mask << shift); else - clrbits32(cmxucr, mask << shift); + qe_clrbits32(cmxucr, mask << shift); return 0; } @@ -211,7 +211,7 @@ int ucc_set_qe_mux_rxtx(unsigned int ucc_num, enum qe_clock clock, if (mode == COMM_DIR_RX) shift += 4; - clrsetbits_be32(cmxucr, QE_CMXUCR_TX_CLK_SRC_MASK << shift, + qe_clrsetbits32(cmxucr, QE_CMXUCR_TX_CLK_SRC_MASK << shift, clock_bits << shift); return 0; diff --git a/drivers/soc/fsl/qe/ucc_fast.c b/drivers/soc/fsl/qe/ucc_fast.c index 83d8d16..3a0224c 100644 --- a/drivers/soc/fsl/qe/ucc_fast.c +++ b/drivers/soc/fsl/qe/ucc_fast.c @@ -33,41 +33,41 @@ void ucc_fast_dump_regs(struct ucc_fast_private * uccf) printk(KERN_INFO "Base address: 0x%p\n", uccf->uf_regs); printk(KERN_INFO "gumr : addr=0x%p, val=0x%08x\n", - &uccf->uf_regs->gumr, in_be32(&uccf->uf_regs->gumr)); + &uccf->uf_regs->gumr, ioread32be(&uccf->uf_regs->gumr)); printk(KERN_INFO "upsmr : addr=0x%p, val=0x%08x\n", - &uccf->uf_regs->upsmr, in_be32(&uccf->uf_regs->upsmr)); + &uccf->uf_regs->upsmr, ioread32be(&uccf->uf_regs->upsmr)); printk(KERN_INFO "utodr : addr=0x%p, val=0x%04x\n", - &uccf->uf_regs->utodr, in_be16(&uccf->uf_regs->utodr)); + &uccf->uf_regs->utodr, ioread16be(&uccf->uf_regs->utodr)); printk(KERN_INFO "udsr : addr=0x%p, val=0x%04x\n", - &uccf->uf_regs->udsr, in_be16(&uccf->uf_regs->udsr)); + &uccf->uf_regs->udsr, ioread16be(&uccf->uf_regs->udsr)); printk(KERN_INFO "ucce : addr=0x%p, val=0x%08x\n", - &uccf->uf_regs->ucce, in_be32(&uccf->uf_regs->ucce)); + &uccf->uf_regs->ucce, ioread32be(&uccf->uf_regs->ucce)); printk(KERN_INFO "uccm : addr=0x%p, val=0x%08x\n", - &uccf->uf_regs->uccm, in_be32(&uccf->uf_regs->uccm)); + &uccf->uf_regs->uccm, ioread32be(&uccf->uf_regs->uccm)); printk(KERN_INFO "uccs : addr=0x%p, val=0x%02x\n", - &uccf->uf_regs->uccs, in_8(&uccf->uf_regs->uccs)); + &uccf->uf_regs->uccs, ioread8(&uccf->uf_regs->uccs)); printk(KERN_INFO "urfb : addr=0x%p, val=0x%08x\n", - &uccf->uf_regs->urfb, in_be32(&uccf->uf_regs->urfb)); + &uccf->uf_regs->urfb, ioread32be(&uccf->uf_regs->urfb)); printk(KERN_INFO "urfs : addr=0x%p, val=0x%04x\n", - &uccf->uf_regs->urfs, in_be16(&uccf->uf_regs->urfs)); + &uccf->uf_regs->urfs, ioread16be(&uccf->uf_regs->urfs)); printk(KERN_INFO "urfet : addr=0x%p, val=0x%04x\n", - &uccf->uf_regs->urfet, in_be16(&uccf->uf_regs->urfet)); + &uccf->uf_regs->urfet, ioread16be(&uccf->uf_regs->urfet)); printk(KERN_INFO "urfset: addr=0x%p, val=0x%04x\n", - &uccf->uf_regs->urfset, in_be16(&uccf->uf_regs->urfset)); + &uccf->uf_regs->urfset, ioread16be(&uccf->uf_regs->urfset)); printk(KERN_INFO "utfb : addr=0x%p, val=0x%08x\n", - &uccf->uf_regs->utfb, in_be32(&uccf->uf_regs->utfb)); + &uccf->uf_regs->utfb, ioread32be(&uccf->uf_regs->utfb)); printk(KERN_INFO "utfs : addr=0x%p, val=0x%04x\n", - &uccf->uf_regs->utfs, in_be16(&uccf->uf_regs->utfs)); + &uccf->uf_regs->utfs, ioread16be(&uccf->uf_regs->utfs)); printk(KERN_INFO "utfet : addr=0x%p, val=0x%04x\n", - &uccf->uf_regs->utfet, in_be16(&uccf->uf_regs->utfet)); + &uccf->uf_regs->utfet, ioread16be(&uccf->uf_regs->utfet)); printk(KERN_INFO "utftt : addr=0x%p, val=0x%04x\n", - &uccf->uf_regs->utftt, in_be16(&uccf->uf_regs->utftt)); + &uccf->uf_regs->utftt, ioread16be(&uccf->uf_regs->utftt)); printk(KERN_INFO "utpt : addr=0x%p, val=0x%04x\n", - &uccf->uf_regs->utpt, in_be16(&uccf->uf_regs->utpt)); + &uccf->uf_regs->utpt, ioread16be(&uccf->uf_regs->utpt)); printk(KERN_INFO "urtry : addr=0x%p, val=0x%08x\n", - &uccf->uf_regs->urtry, in_be32(&uccf->uf_regs->urtry)); + &uccf->uf_regs->urtry, ioread32be(&uccf->uf_regs->urtry)); printk(KERN_INFO "guemr : addr=0x%p, val=0x%02x\n", - &uccf->uf_regs->guemr, in_8(&uccf->uf_regs->guemr)); + &uccf->uf_regs->guemr, ioread8(&uccf->uf_regs->guemr)); } EXPORT_SYMBOL(ucc_fast_dump_regs); @@ -89,7 +89,7 @@ EXPORT_SYMBOL(ucc_fast_get_qe_cr_subblock); void ucc_fast_transmit_on_demand(struct ucc_fast_private * uccf) { - out_be16(&uccf->uf_regs->utodr, UCC_FAST_TOD); + iowrite16be(UCC_FAST_TOD, &uccf->uf_regs->utodr); } EXPORT_SYMBOL(ucc_fast_transmit_on_demand); @@ -101,7 +101,7 @@ void ucc_fast_enable(struct ucc_fast_private * uccf, enum comm_dir mode) uf_regs = uccf->uf_regs; /* Enable reception and/or transmission on this UCC. */ - gumr = in_be32(&uf_regs->gumr); + gumr = ioread32be(&uf_regs->gumr); if (mode & COMM_DIR_TX) { gumr |= UCC_FAST_GUMR_ENT; uccf->enabled_tx = 1; @@ -110,7 +110,7 @@ void ucc_fast_enable(struct ucc_fast_private * uccf, enum comm_dir mode) gumr |= UCC_FAST_GUMR_ENR; uccf->enabled_rx = 1; } - out_be32(&uf_regs->gumr, gumr); + iowrite32be(gumr, &uf_regs->gumr); } EXPORT_SYMBOL(ucc_fast_enable); @@ -122,7 +122,7 @@ void ucc_fast_disable(struct ucc_fast_private * uccf, enum comm_dir mode) uf_regs = uccf->uf_regs; /* Disable reception and/or transmission on this UCC. */ - gumr = in_be32(&uf_regs->gumr); + gumr = ioread32be(&uf_regs->gumr); if (mode & COMM_DIR_TX) { gumr &= ~UCC_FAST_GUMR_ENT; uccf->enabled_tx = 0; @@ -131,7 +131,7 @@ void ucc_fast_disable(struct ucc_fast_private * uccf, enum comm_dir mode) gumr &= ~UCC_FAST_GUMR_ENR; uccf->enabled_rx = 0; } - out_be32(&uf_regs->gumr, gumr); + iowrite32be(gumr, &uf_regs->gumr); } EXPORT_SYMBOL(ucc_fast_disable); @@ -263,7 +263,7 @@ int ucc_fast_init(struct ucc_fast_info * uf_info, struct ucc_fast_private ** ucc gumr |= uf_info->tenc; gumr |= uf_info->tcrc; gumr |= uf_info->mode; - out_be32(&uf_regs->gumr, gumr); + iowrite32be(gumr, &uf_regs->gumr); /* Allocate memory for Tx Virtual Fifo */ uccf->ucc_fast_tx_virtual_fifo_base_offset = @@ -290,15 +290,15 @@ int ucc_fast_init(struct ucc_fast_info * uf_info, struct ucc_fast_private ** ucc } /* Set Virtual Fifo registers */ - out_be16(&uf_regs->urfs, uf_info->urfs); - out_be16(&uf_regs->urfet, uf_info->urfet); - out_be16(&uf_regs->urfset, uf_info->urfset); - out_be16(&uf_regs->utfs, uf_info->utfs); - out_be16(&uf_regs->utfet, uf_info->utfet); - out_be16(&uf_regs->utftt, uf_info->utftt); + iowrite16be(uf_info->urfs, &uf_regs->urfs); + iowrite16be(uf_info->urfet, &uf_regs->urfet); + iowrite16be(uf_info->urfset, &uf_regs->urfset); + iowrite16be(uf_info->utfs, &uf_regs->utfs); + iowrite16be(uf_info->utfet, &uf_regs->utfet); + iowrite16be(uf_info->utftt, &uf_regs->utftt); /* utfb, urfb are offsets from MURAM base */ - out_be32(&uf_regs->utfb, uccf->ucc_fast_tx_virtual_fifo_base_offset); - out_be32(&uf_regs->urfb, uccf->ucc_fast_rx_virtual_fifo_base_offset); + iowrite32be(uccf->ucc_fast_tx_virtual_fifo_base_offset, &uf_regs->utfb); + iowrite32be(uccf->ucc_fast_rx_virtual_fifo_base_offset, &uf_regs->urfb); /* Mux clocking */ /* Grant Support */ @@ -366,14 +366,14 @@ int ucc_fast_init(struct ucc_fast_info * uf_info, struct ucc_fast_private ** ucc } /* Set interrupt mask register at UCC level. */ - out_be32(&uf_regs->uccm, uf_info->uccm_mask); + iowrite32be(uf_info->uccm_mask, &uf_regs->uccm); /* First, clear anything pending at UCC level, * otherwise, old garbage may come through * as soon as the dam is opened. */ /* Writing '1' clears */ - out_be32(&uf_regs->ucce, 0xffffffff); + iowrite32be(0xffffffff, &uf_regs->ucce); *uccf_ret = uccf; return 0; diff --git a/include/soc/fsl/qe/qe.h b/include/soc/fsl/qe/qe.h index 70339d7..f7a14f2 100644 --- a/include/soc/fsl/qe/qe.h +++ b/include/soc/fsl/qe/qe.h @@ -21,7 +21,6 @@ #include <linux/spinlock.h> #include <linux/errno.h> #include <linux/err.h> -#include <asm/cpm.h> #include <soc/fsl/qe/immap_qe.h> #include <linux/of.h> #include <linux/of_address.h> diff --git a/include/soc/fsl/qe/qe_ic.h b/include/soc/fsl/qe/qe_ic.h index 6113699..863cfec 100644 --- a/include/soc/fsl/qe/qe_ic.h +++ b/include/soc/fsl/qe/qe_ic.h @@ -76,7 +76,7 @@ static inline void qe_ic_cascade_low_ipic(struct irq_desc *desc) struct qe_ic *qe_ic = irq_desc_get_handler_data(desc); unsigned int cascade_irq = qe_ic_get_low_irq(qe_ic); - if (cascade_irq != NO_IRQ) + if (cascade_irq != 0) generic_handle_irq(cascade_irq); } @@ -85,7 +85,7 @@ static inline void qe_ic_cascade_high_ipic(struct irq_desc *desc) struct qe_ic *qe_ic = irq_desc_get_handler_data(desc); unsigned int cascade_irq = qe_ic_get_high_irq(qe_ic); - if (cascade_irq != NO_IRQ) + if (cascade_irq != 0) generic_handle_irq(cascade_irq); } @@ -95,7 +95,7 @@ static inline void qe_ic_cascade_low_mpic(struct irq_desc *desc) unsigned int cascade_irq = qe_ic_get_low_irq(qe_ic); struct irq_chip *chip = irq_desc_get_chip(desc); - if (cascade_irq != NO_IRQ) + if (cascade_irq != 0) generic_handle_irq(cascade_irq); chip->irq_eoi(&desc->irq_data); @@ -107,7 +107,7 @@ static inline void qe_ic_cascade_high_mpic(struct irq_desc *desc) unsigned int cascade_irq = qe_ic_get_high_irq(qe_ic); struct irq_chip *chip = irq_desc_get_chip(desc); - if (cascade_irq != NO_IRQ) + if (cascade_irq != 0) generic_handle_irq(cascade_irq); chip->irq_eoi(&desc->irq_data); @@ -120,10 +120,10 @@ static inline void qe_ic_cascade_muxed_mpic(struct irq_desc *desc) struct irq_chip *chip = irq_desc_get_chip(desc); cascade_irq = qe_ic_get_high_irq(qe_ic); - if (cascade_irq == NO_IRQ) + if (cascade_irq == 0) cascade_irq = qe_ic_get_low_irq(qe_ic); - if (cascade_irq != NO_IRQ) + if (cascade_irq != 0) generic_handle_irq(cascade_irq); chip->irq_eoi(&desc->irq_data); -- 2.1.0.27.g96db324 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH v5 2/2] QE: remove PPCisms for QE 2016-07-25 5:43 ` [PATCH v5 2/2] QE: remove PPCisms for QE Zhao Qiang @ 2016-09-19 20:13 ` Leo Li 2016-09-21 1:13 ` Qiang Zhao 0 siblings, 1 reply; 8+ messages in thread From: Leo Li @ 2016-09-19 20:13 UTC (permalink / raw) To: Zhao Qiang; +Cc: Scott Wood, linuxppc-dev, lkml, Xiaobo Xie On Mon, Jul 25, 2016 at 12:43 AM, Zhao Qiang <qiang.zhao@nxp.com> wrote: > QE was supported on PowerPC, and dependent on PPC, > Now it is supported on other platforms. so remove PPCisms. > > Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com> > --- > Changes for v2: > - na > Changes for v3: > - add NO_IRQ > Changes for v4: > - modify spin_event_timeout to opencoded timeout loop > - remove NO_IRQ > - modify virq_to_hw to opencoed code > Changes for v5: > - modify commit msg > - modify depends of QUICC_ENGINE > - add kerneldoc header for qe_issue_cmd > > drivers/irqchip/qe_ic.c | 28 +++++++++------ > drivers/soc/fsl/qe/Kconfig | 2 +- > drivers/soc/fsl/qe/qe.c | 80 ++++++++++++++++++++++++++----------------- > drivers/soc/fsl/qe/qe_io.c | 42 ++++++++++------------- > drivers/soc/fsl/qe/qe_tdm.c | 8 ++--- > drivers/soc/fsl/qe/ucc.c | 10 +++--- > drivers/soc/fsl/qe/ucc_fast.c | 68 ++++++++++++++++++------------------ > include/soc/fsl/qe/qe.h | 1 - > include/soc/fsl/qe/qe_ic.h | 12 +++---- > 9 files changed, 133 insertions(+), 118 deletions(-) > [snip] > diff --git a/drivers/soc/fsl/qe/Kconfig b/drivers/soc/fsl/qe/Kconfig > index 73a2e08..b26b643 100644 > --- a/drivers/soc/fsl/qe/Kconfig > +++ b/drivers/soc/fsl/qe/Kconfig > @@ -4,7 +4,7 @@ > > config QUICC_ENGINE > bool "Freescale QUICC Engine (QE) Support" > - depends on FSL_SOC && PPC32 > + depends on OF && HAS_IOMEM > select GENERIC_ALLOCATOR > select CRC32 > help You make it possible to build QE drivers on ARM, but the UCC_GETH fails to build on arm64. Please make sure all these drivers can build on other architectures. Or you can simply make them only build for Power architecture as most of them are not available on ARM. Regards, Leo ^ permalink raw reply [flat|nested] 8+ messages in thread
* RE: [PATCH v5 2/2] QE: remove PPCisms for QE 2016-09-19 20:13 ` Leo Li @ 2016-09-21 1:13 ` Qiang Zhao 2016-09-21 18:18 ` Leo Li 0 siblings, 1 reply; 8+ messages in thread From: Qiang Zhao @ 2016-09-21 1:13 UTC (permalink / raw) To: Leo Li; +Cc: Scott Wood, linuxppc-dev, lkml, X.B. Xie T24gTW9uLCBTZXAgMjAsIDIwMTYgYXQgNDoxMyBBTSwgTGVvIExpIHdyb3RlOg0KPiAtLS0tLU9y aWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBMZW8gTGkgW21haWx0bzpwa3UubGVvQGdtYWls LmNvbV0NCj4gU2VudDogVHVlc2RheSwgU2VwdGVtYmVyIDIwLCAyMDE2IDQ6MTMgQU0NCj4gVG86 IFFpYW5nIFpoYW8gPHFpYW5nLnpoYW9AbnhwLmNvbT4NCj4gQ2M6IFNjb3R0IFdvb2QgPG9zc0Bi dXNlcnJvci5uZXQ+OyBsaW51eHBwYy1kZXYgPGxpbnV4cHBjLQ0KPiBkZXZAbGlzdHMub3psYWJz Lm9yZz47IGxrbWwgPGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmc+OyBYLkIuIFhpZQ0KPiA8 eGlhb2JvLnhpZUBueHAuY29tPg0KPiBTdWJqZWN0OiBSZTogW1BBVENIIHY1IDIvMl0gUUU6IHJl bW92ZSBQUENpc21zIGZvciBRRQ0KPiANCj4gT24gTW9uLCBKdWwgMjUsIDIwMTYgYXQgMTI6NDMg QU0sIFpoYW8gUWlhbmcgPHFpYW5nLnpoYW9AbnhwLmNvbT4gd3JvdGU6DQo+ID4gUUUgd2FzIHN1 cHBvcnRlZCBvbiBQb3dlclBDLCBhbmQgZGVwZW5kZW50IG9uIFBQQywgTm93IGl0IGlzIHN1cHBv cnRlZA0KPiA+IG9uIG90aGVyIHBsYXRmb3Jtcy4gc28gcmVtb3ZlIFBQQ2lzbXMuDQo+ID4NCj4g PiBTaWduZWQtb2ZmLWJ5OiBaaGFvIFFpYW5nIDxxaWFuZy56aGFvQG54cC5jb20+DQo+ID4gLS0t DQo+ID4gQ2hhbmdlcyBmb3IgdjI6DQo+ID4gICAgICAgICAtIG5hDQo+ID4gQ2hhbmdlcyBmb3Ig djM6DQo+ID4gICAgICAgICAtIGFkZCBOT19JUlENCj4gPiBDaGFuZ2VzIGZvciB2NDoNCj4gPiAg ICAgICAgIC0gbW9kaWZ5IHNwaW5fZXZlbnRfdGltZW91dCB0byBvcGVuY29kZWQgdGltZW91dCBs b29wDQo+ID4gICAgICAgICAtIHJlbW92ZSBOT19JUlENCj4gPiAgICAgICAgIC0gbW9kaWZ5IHZp cnFfdG9faHcgdG8gb3BlbmNvZWQgY29kZSBDaGFuZ2VzIGZvciB2NToNCj4gPiAgICAgICAgIC0g bW9kaWZ5IGNvbW1pdCBtc2cNCj4gPiAgICAgICAgIC0gbW9kaWZ5IGRlcGVuZHMgb2YgUVVJQ0Nf RU5HSU5FDQo+ID4gICAgICAgICAtIGFkZCBrZXJuZWxkb2MgaGVhZGVyIGZvciBxZV9pc3N1ZV9j bWQNCj4gPg0KPiA+ICBkcml2ZXJzL2lycWNoaXAvcWVfaWMuYyAgICAgICB8IDI4ICsrKysrKysr Ky0tLS0tLQ0KPiA+ICBkcml2ZXJzL3NvYy9mc2wvcWUvS2NvbmZpZyAgICB8ICAyICstDQo+ID4g IGRyaXZlcnMvc29jL2ZzbC9xZS9xZS5jICAgICAgIHwgODAgKysrKysrKysrKysrKysrKysrKysr KysrKystLS0tLS0tLS0tLS0tLQ0KPiAtLS0NCj4gPiAgZHJpdmVycy9zb2MvZnNsL3FlL3FlX2lv LmMgICAgfCA0MiArKysrKysrKysrLS0tLS0tLS0tLS0tLQ0KPiA+ICBkcml2ZXJzL3NvYy9mc2wv cWUvcWVfdGRtLmMgICB8ICA4ICsrLS0tDQo+ID4gIGRyaXZlcnMvc29jL2ZzbC9xZS91Y2MuYyAg ICAgIHwgMTAgKysrLS0tDQo+ID4gIGRyaXZlcnMvc29jL2ZzbC9xZS91Y2NfZmFzdC5jIHwgNjgg KysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gIGluY2x1ZGUvc29jL2Zz bC9xZS9xZS5oICAgICAgIHwgIDEgLQ0KPiA+ICBpbmNsdWRlL3NvYy9mc2wvcWUvcWVfaWMuaCAg ICB8IDEyICsrKy0tLS0NCj4gPiAgOSBmaWxlcyBjaGFuZ2VkLCAxMzMgaW5zZXJ0aW9ucygrKSwg MTE4IGRlbGV0aW9ucygtKQ0KPiA+DQo+IA0KPiBbc25pcF0NCj4gDQo+ID4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvc29jL2ZzbC9xZS9LY29uZmlnIGIvZHJpdmVycy9zb2MvZnNsL3FlL0tjb25maWcN Cj4gPiBpbmRleCA3M2EyZTA4Li5iMjZiNjQzIDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvc29j L2ZzbC9xZS9LY29uZmlnDQo+ID4gKysrIGIvZHJpdmVycy9zb2MvZnNsL3FlL0tjb25maWcNCj4g PiBAQCAtNCw3ICs0LDcgQEANCj4gPg0KPiA+ICBjb25maWcgUVVJQ0NfRU5HSU5FDQo+ID4gICAg ICAgICBib29sICJGcmVlc2NhbGUgUVVJQ0MgRW5naW5lIChRRSkgU3VwcG9ydCINCj4gPiAtICAg ICAgIGRlcGVuZHMgb24gRlNMX1NPQyAmJiBQUEMzMg0KPiA+ICsgICAgICAgZGVwZW5kcyBvbiBP RiAmJiBIQVNfSU9NRU0NCj4gPiAgICAgICAgIHNlbGVjdCBHRU5FUklDX0FMTE9DQVRPUg0KPiA+ ICAgICAgICAgc2VsZWN0IENSQzMyDQo+ID4gICAgICAgICBoZWxwDQo+IA0KPiBZb3UgbWFrZSBp dCBwb3NzaWJsZSB0byBidWlsZCBRRSBkcml2ZXJzIG9uIEFSTSwgYnV0IHRoZSBVQ0NfR0VUSCBm YWlscyB0bw0KPiBidWlsZCBvbiBhcm02NC4gIFBsZWFzZSBtYWtlIHN1cmUgYWxsIHRoZXNlIGRy aXZlcnMgY2FuIGJ1aWxkIG9uIG90aGVyDQo+IGFyY2hpdGVjdHVyZXMuICBPciB5b3UgY2FuIHNp bXBseSBtYWtlIHRoZW0gb25seSBidWlsZCBmb3IgUG93ZXIgYXJjaGl0ZWN0dXJlDQo+IGFzIG1v c3Qgb2YgdGhlbSBhcmUgbm90IGF2YWlsYWJsZSBvbiBBUk0uDQo+IA0KDQpNb3N0IG9mIHRoZW0g YXJlIG5vdCBhdmFpbGFibGUgb24gQVJNIGFuZCBBUk02NC4NCk5vdywgb25seSBxZS1oZGxjIGlz IGF2YWlsYWJsZSBvbiBBUk02NC4NCg0KQlINCi1aaGFvIFFpYW5nDQo= ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v5 2/2] QE: remove PPCisms for QE 2016-09-21 1:13 ` Qiang Zhao @ 2016-09-21 18:18 ` Leo Li 2016-09-22 1:43 ` Qiang Zhao 0 siblings, 1 reply; 8+ messages in thread From: Leo Li @ 2016-09-21 18:18 UTC (permalink / raw) To: Qiang Zhao; +Cc: Scott Wood, linuxppc-dev, lkml, X.B. Xie On Tue, Sep 20, 2016 at 8:13 PM, Qiang Zhao <qiang.zhao@nxp.com> wrote: > On Mon, Sep 20, 2016 at 4:13 AM, Leo Li wrote: >> -----Original Message----- >> From: Leo Li [mailto:pku.leo@gmail.com] >> Sent: Tuesday, September 20, 2016 4:13 AM >> To: Qiang Zhao <qiang.zhao@nxp.com> >> Cc: Scott Wood <oss@buserror.net>; linuxppc-dev <linuxppc- >> dev@lists.ozlabs.org>; lkml <linux-kernel@vger.kernel.org>; X.B. Xie >> <xiaobo.xie@nxp.com> >> Subject: Re: [PATCH v5 2/2] QE: remove PPCisms for QE >> >> On Mon, Jul 25, 2016 at 12:43 AM, Zhao Qiang <qiang.zhao@nxp.com> wrote: >> > QE was supported on PowerPC, and dependent on PPC, Now it is supported >> > on other platforms. so remove PPCisms. >> > >> > Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com> >> > --- >> > Changes for v2: >> > - na >> > Changes for v3: >> > - add NO_IRQ >> > Changes for v4: >> > - modify spin_event_timeout to opencoded timeout loop >> > - remove NO_IRQ >> > - modify virq_to_hw to opencoed code Changes for v5: >> > - modify commit msg >> > - modify depends of QUICC_ENGINE >> > - add kerneldoc header for qe_issue_cmd >> > >> > drivers/irqchip/qe_ic.c | 28 +++++++++------ >> > drivers/soc/fsl/qe/Kconfig | 2 +- >> > drivers/soc/fsl/qe/qe.c | 80 ++++++++++++++++++++++++++-------------- >> --- >> > drivers/soc/fsl/qe/qe_io.c | 42 ++++++++++------------- >> > drivers/soc/fsl/qe/qe_tdm.c | 8 ++--- >> > drivers/soc/fsl/qe/ucc.c | 10 +++--- >> > drivers/soc/fsl/qe/ucc_fast.c | 68 ++++++++++++++++++------------------ >> > include/soc/fsl/qe/qe.h | 1 - >> > include/soc/fsl/qe/qe_ic.h | 12 +++---- >> > 9 files changed, 133 insertions(+), 118 deletions(-) >> > >> >> [snip] >> >> > diff --git a/drivers/soc/fsl/qe/Kconfig b/drivers/soc/fsl/qe/Kconfig >> > index 73a2e08..b26b643 100644 >> > --- a/drivers/soc/fsl/qe/Kconfig >> > +++ b/drivers/soc/fsl/qe/Kconfig >> > @@ -4,7 +4,7 @@ >> > >> > config QUICC_ENGINE >> > bool "Freescale QUICC Engine (QE) Support" >> > - depends on FSL_SOC && PPC32 >> > + depends on OF && HAS_IOMEM >> > select GENERIC_ALLOCATOR >> > select CRC32 >> > help >> >> You make it possible to build QE drivers on ARM, but the UCC_GETH fails to >> build on arm64. Please make sure all these drivers can build on other >> architectures. Or you can simply make them only build for Power architecture >> as most of them are not available on ARM. >> > > Most of them are not available on ARM and ARM64. > Now, only qe-hdlc is available on ARM64. Then you should update the Kconfig for these drivers too, if they are only depending on CONFIG_QUICC_ENGINE. Regards, Leo ^ permalink raw reply [flat|nested] 8+ messages in thread
* RE: [PATCH v5 2/2] QE: remove PPCisms for QE 2016-09-21 18:18 ` Leo Li @ 2016-09-22 1:43 ` Qiang Zhao 2016-09-22 19:38 ` Leo Li 0 siblings, 1 reply; 8+ messages in thread From: Qiang Zhao @ 2016-09-22 1:43 UTC (permalink / raw) To: Leo Li; +Cc: Scott Wood, linuxppc-dev, lkml, X.B. Xie T24gTW9uLCBTZXAgMjIsIDIwMTYgYXQgMjoxOSBBTSwgTGVvIExpIHdyb3RlOg0KPiAtLS0tLU9y aWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBMZW8gTGkgW21haWx0bzpwa3UubGVvQGdtYWls LmNvbV0NCj4gU2VudDogVGh1cnNkYXksIFNlcHRlbWJlciAyMiwgMjAxNiAyOjE5IEFNDQo+IFRv OiBRaWFuZyBaaGFvIDxxaWFuZy56aGFvQG54cC5jb20+DQo+IENjOiBTY290dCBXb29kIDxvc3NA YnVzZXJyb3IubmV0PjsgbGludXhwcGMtZGV2IDxsaW51eHBwYy0NCj4gZGV2QGxpc3RzLm96bGFi cy5vcmc+OyBsa21sIDxsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnPjsgWC5CLiBYaWUNCj4g PHhpYW9iby54aWVAbnhwLmNvbT4NCj4gU3ViamVjdDogUmU6IFtQQVRDSCB2NSAyLzJdIFFFOiBy ZW1vdmUgUFBDaXNtcyBmb3IgUUUNCj4gDQo+IE9uIFR1ZSwgU2VwIDIwLCAyMDE2IGF0IDg6MTMg UE0sIFFpYW5nIFpoYW8gPHFpYW5nLnpoYW9AbnhwLmNvbT4gd3JvdGU6DQo+ID4gT24gTW9uLCBT ZXAgMjAsIDIwMTYgYXQgNDoxMyBBTSwgTGVvIExpIHdyb3RlOg0KPiA+PiAtLS0tLU9yaWdpbmFs IE1lc3NhZ2UtLS0tLQ0KPiA+PiBGcm9tOiBMZW8gTGkgW21haWx0bzpwa3UubGVvQGdtYWlsLmNv bV0NCj4gPj4gU2VudDogVHVlc2RheSwgU2VwdGVtYmVyIDIwLCAyMDE2IDQ6MTMgQU0NCj4gPj4g VG86IFFpYW5nIFpoYW8gPHFpYW5nLnpoYW9AbnhwLmNvbT4NCj4gPj4gQ2M6IFNjb3R0IFdvb2Qg PG9zc0BidXNlcnJvci5uZXQ+OyBsaW51eHBwYy1kZXYgPGxpbnV4cHBjLQ0KPiA+PiBkZXZAbGlz dHMub3psYWJzLm9yZz47IGxrbWwgPGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmc+OyBYLkIu IFhpZQ0KPiA+PiA8eGlhb2JvLnhpZUBueHAuY29tPg0KPiA+PiBTdWJqZWN0OiBSZTogW1BBVENI IHY1IDIvMl0gUUU6IHJlbW92ZSBQUENpc21zIGZvciBRRQ0KPiA+Pg0KPiA+PiBPbiBNb24sIEp1 bCAyNSwgMjAxNiBhdCAxMjo0MyBBTSwgWmhhbyBRaWFuZyA8cWlhbmcuemhhb0BueHAuY29tPg0K PiB3cm90ZToNCj4gPj4gPiBRRSB3YXMgc3VwcG9ydGVkIG9uIFBvd2VyUEMsIGFuZCBkZXBlbmRl bnQgb24gUFBDLCBOb3cgaXQgaXMNCj4gPj4gPiBzdXBwb3J0ZWQgb24gb3RoZXIgcGxhdGZvcm1z LiBzbyByZW1vdmUgUFBDaXNtcy4NCj4gPj4gPg0KPiA+PiA+IFNpZ25lZC1vZmYtYnk6IFpoYW8g UWlhbmcgPHFpYW5nLnpoYW9AbnhwLmNvbT4NCj4gPj4gPiAtLS0NCj4gPj4gPiBDaGFuZ2VzIGZv ciB2MjoNCj4gPj4gPiAgICAgICAgIC0gbmENCj4gPj4gPiBDaGFuZ2VzIGZvciB2MzoNCj4gPj4g PiAgICAgICAgIC0gYWRkIE5PX0lSUQ0KPiA+PiA+IENoYW5nZXMgZm9yIHY0Og0KPiA+PiA+ICAg ICAgICAgLSBtb2RpZnkgc3Bpbl9ldmVudF90aW1lb3V0IHRvIG9wZW5jb2RlZCB0aW1lb3V0IGxv b3ANCj4gPj4gPiAgICAgICAgIC0gcmVtb3ZlIE5PX0lSUQ0KPiA+PiA+ICAgICAgICAgLSBtb2Rp ZnkgdmlycV90b19odyB0byBvcGVuY29lZCBjb2RlIENoYW5nZXMgZm9yIHY1Og0KPiA+PiA+ICAg ICAgICAgLSBtb2RpZnkgY29tbWl0IG1zZw0KPiA+PiA+ICAgICAgICAgLSBtb2RpZnkgZGVwZW5k cyBvZiBRVUlDQ19FTkdJTkUNCj4gPj4gPiAgICAgICAgIC0gYWRkIGtlcm5lbGRvYyBoZWFkZXIg Zm9yIHFlX2lzc3VlX2NtZA0KPiA+PiA+DQo+ID4+ID4gIGRyaXZlcnMvaXJxY2hpcC9xZV9pYy5j ICAgICAgIHwgMjggKysrKysrKysrLS0tLS0tDQo+ID4+ID4gIGRyaXZlcnMvc29jL2ZzbC9xZS9L Y29uZmlnICAgIHwgIDIgKy0NCj4gPj4gPiAgZHJpdmVycy9zb2MvZnNsL3FlL3FlLmMgICAgICAg fCA4MCArKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0NCj4gLS0tLQ0KPiA+PiAt LS0NCj4gPj4gPiAgZHJpdmVycy9zb2MvZnNsL3FlL3FlX2lvLmMgICAgfCA0MiArKysrKysrKysr LS0tLS0tLS0tLS0tLQ0KPiA+PiA+ICBkcml2ZXJzL3NvYy9mc2wvcWUvcWVfdGRtLmMgICB8ICA4 ICsrLS0tDQo+ID4+ID4gIGRyaXZlcnMvc29jL2ZzbC9xZS91Y2MuYyAgICAgIHwgMTAgKysrLS0t DQo+ID4+ID4gIGRyaXZlcnMvc29jL2ZzbC9xZS91Y2NfZmFzdC5jIHwgNjggKysrKysrKysrKysr KysrKysrLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4+ID4gIGluY2x1ZGUvc29jL2ZzbC9xZS9xZS5o ICAgICAgIHwgIDEgLQ0KPiA+PiA+ICBpbmNsdWRlL3NvYy9mc2wvcWUvcWVfaWMuaCAgICB8IDEy ICsrKy0tLS0NCj4gPj4gPiAgOSBmaWxlcyBjaGFuZ2VkLCAxMzMgaW5zZXJ0aW9ucygrKSwgMTE4 IGRlbGV0aW9ucygtKQ0KPiA+PiA+DQo+ID4+DQo+ID4+IFtzbmlwXQ0KPiA+Pg0KPiA+PiA+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL3NvYy9mc2wvcWUvS2NvbmZpZw0KPiA+PiA+IGIvZHJpdmVycy9z b2MvZnNsL3FlL0tjb25maWcgaW5kZXggNzNhMmUwOC4uYjI2YjY0MyAxMDA2NDQNCj4gPj4gPiAt LS0gYS9kcml2ZXJzL3NvYy9mc2wvcWUvS2NvbmZpZw0KPiA+PiA+ICsrKyBiL2RyaXZlcnMvc29j L2ZzbC9xZS9LY29uZmlnDQo+ID4+ID4gQEAgLTQsNyArNCw3IEBADQo+ID4+ID4NCj4gPj4gPiAg Y29uZmlnIFFVSUNDX0VOR0lORQ0KPiA+PiA+ICAgICAgICAgYm9vbCAiRnJlZXNjYWxlIFFVSUND IEVuZ2luZSAoUUUpIFN1cHBvcnQiDQo+ID4+ID4gLSAgICAgICBkZXBlbmRzIG9uIEZTTF9TT0Mg JiYgUFBDMzINCj4gPj4gPiArICAgICAgIGRlcGVuZHMgb24gT0YgJiYgSEFTX0lPTUVNDQo+ID4+ ID4gICAgICAgICBzZWxlY3QgR0VORVJJQ19BTExPQ0FUT1INCj4gPj4gPiAgICAgICAgIHNlbGVj dCBDUkMzMg0KPiA+PiA+ICAgICAgICAgaGVscA0KPiA+Pg0KPiA+PiBZb3UgbWFrZSBpdCBwb3Nz aWJsZSB0byBidWlsZCBRRSBkcml2ZXJzIG9uIEFSTSwgYnV0IHRoZSBVQ0NfR0VUSA0KPiA+PiBm YWlscyB0byBidWlsZCBvbiBhcm02NC4gIFBsZWFzZSBtYWtlIHN1cmUgYWxsIHRoZXNlIGRyaXZl cnMgY2FuDQo+ID4+IGJ1aWxkIG9uIG90aGVyIGFyY2hpdGVjdHVyZXMuICBPciB5b3UgY2FuIHNp bXBseSBtYWtlIHRoZW0gb25seSBidWlsZA0KPiA+PiBmb3IgUG93ZXIgYXJjaGl0ZWN0dXJlIGFz IG1vc3Qgb2YgdGhlbSBhcmUgbm90IGF2YWlsYWJsZSBvbiBBUk0uDQo+ID4+DQo+ID4NCj4gPiBN b3N0IG9mIHRoZW0gYXJlIG5vdCBhdmFpbGFibGUgb24gQVJNIGFuZCBBUk02NC4NCj4gPiBOb3cs IG9ubHkgcWUtaGRsYyBpcyBhdmFpbGFibGUgb24gQVJNNjQuDQo+IA0KPiBUaGVuIHlvdSBzaG91 bGQgdXBkYXRlIHRoZSBLY29uZmlnIGZvciB0aGVzZSBkcml2ZXJzIHRvbywgaWYgdGhleSBhcmUg b25seQ0KPiBkZXBlbmRpbmcgb24gQ09ORklHX1FVSUNDX0VOR0lORS4NCg0KWW91IG1lYW4gYWRk aW5nICJkZXBlbmRzIG9uIEZTTF9TT0MgJiYgUFBDMzIgIiB0byB0aGUgZHJpdmVycyB0aGF0IGFy ZSBub3QgYXZhaWxhYmxlIGZvciBBUk0/DQoNCkJSDQotWmhhbyBRaWFuZw0K ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v5 2/2] QE: remove PPCisms for QE 2016-09-22 1:43 ` Qiang Zhao @ 2016-09-22 19:38 ` Leo Li 2016-09-23 1:10 ` Qiang Zhao 0 siblings, 1 reply; 8+ messages in thread From: Leo Li @ 2016-09-22 19:38 UTC (permalink / raw) To: Qiang Zhao; +Cc: Scott Wood, linuxppc-dev, lkml, X.B. Xie On Wed, Sep 21, 2016 at 8:43 PM, Qiang Zhao <qiang.zhao@nxp.com> wrote: > On Mon, Sep 22, 2016 at 2:19 AM, Leo Li wrote: >> -----Original Message----- >> From: Leo Li [mailto:pku.leo@gmail.com] >> Sent: Thursday, September 22, 2016 2:19 AM >> To: Qiang Zhao <qiang.zhao@nxp.com> >> Cc: Scott Wood <oss@buserror.net>; linuxppc-dev <linuxppc- >> dev@lists.ozlabs.org>; lkml <linux-kernel@vger.kernel.org>; X.B. Xie >> <xiaobo.xie@nxp.com> >> Subject: Re: [PATCH v5 2/2] QE: remove PPCisms for QE >> >> On Tue, Sep 20, 2016 at 8:13 PM, Qiang Zhao <qiang.zhao@nxp.com> wrote: >> > On Mon, Sep 20, 2016 at 4:13 AM, Leo Li wrote: >> >> -----Original Message----- >> >> From: Leo Li [mailto:pku.leo@gmail.com] >> >> Sent: Tuesday, September 20, 2016 4:13 AM >> >> To: Qiang Zhao <qiang.zhao@nxp.com> >> >> Cc: Scott Wood <oss@buserror.net>; linuxppc-dev <linuxppc- >> >> dev@lists.ozlabs.org>; lkml <linux-kernel@vger.kernel.org>; X.B. Xie >> >> <xiaobo.xie@nxp.com> >> >> Subject: Re: [PATCH v5 2/2] QE: remove PPCisms for QE >> >> >> >> On Mon, Jul 25, 2016 at 12:43 AM, Zhao Qiang <qiang.zhao@nxp.com> >> wrote: >> >> > QE was supported on PowerPC, and dependent on PPC, Now it is >> >> > supported on other platforms. so remove PPCisms. >> >> > >> >> > Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com> >> >> > --- >> >> > Changes for v2: >> >> > - na >> >> > Changes for v3: >> >> > - add NO_IRQ >> >> > Changes for v4: >> >> > - modify spin_event_timeout to opencoded timeout loop >> >> > - remove NO_IRQ >> >> > - modify virq_to_hw to opencoed code Changes for v5: >> >> > - modify commit msg >> >> > - modify depends of QUICC_ENGINE >> >> > - add kerneldoc header for qe_issue_cmd >> >> > >> >> > drivers/irqchip/qe_ic.c | 28 +++++++++------ >> >> > drivers/soc/fsl/qe/Kconfig | 2 +- >> >> > drivers/soc/fsl/qe/qe.c | 80 ++++++++++++++++++++++++++---------- >> ---- >> >> --- >> >> > drivers/soc/fsl/qe/qe_io.c | 42 ++++++++++------------- >> >> > drivers/soc/fsl/qe/qe_tdm.c | 8 ++--- >> >> > drivers/soc/fsl/qe/ucc.c | 10 +++--- >> >> > drivers/soc/fsl/qe/ucc_fast.c | 68 ++++++++++++++++++------------------ >> >> > include/soc/fsl/qe/qe.h | 1 - >> >> > include/soc/fsl/qe/qe_ic.h | 12 +++---- >> >> > 9 files changed, 133 insertions(+), 118 deletions(-) >> >> > >> >> >> >> [snip] >> >> >> >> > diff --git a/drivers/soc/fsl/qe/Kconfig >> >> > b/drivers/soc/fsl/qe/Kconfig index 73a2e08..b26b643 100644 >> >> > --- a/drivers/soc/fsl/qe/Kconfig >> >> > +++ b/drivers/soc/fsl/qe/Kconfig >> >> > @@ -4,7 +4,7 @@ >> >> > >> >> > config QUICC_ENGINE >> >> > bool "Freescale QUICC Engine (QE) Support" >> >> > - depends on FSL_SOC && PPC32 >> >> > + depends on OF && HAS_IOMEM >> >> > select GENERIC_ALLOCATOR >> >> > select CRC32 >> >> > help >> >> >> >> You make it possible to build QE drivers on ARM, but the UCC_GETH >> >> fails to build on arm64. Please make sure all these drivers can >> >> build on other architectures. Or you can simply make them only build >> >> for Power architecture as most of them are not available on ARM. >> >> >> > >> > Most of them are not available on ARM and ARM64. >> > Now, only qe-hdlc is available on ARM64. >> >> Then you should update the Kconfig for these drivers too, if they are only >> depending on CONFIG_QUICC_ENGINE. > > You mean adding "depends on FSL_SOC && PPC32 " to the drivers that are not available for ARM? Yes. Previously these drivers get the architecture limitation from CONFIG_QUICC_ENGINE, but now they need them by their own. Regards, Leo ^ permalink raw reply [flat|nested] 8+ messages in thread
* RE: [PATCH v5 2/2] QE: remove PPCisms for QE 2016-09-22 19:38 ` Leo Li @ 2016-09-23 1:10 ` Qiang Zhao 0 siblings, 0 replies; 8+ messages in thread From: Qiang Zhao @ 2016-09-23 1:10 UTC (permalink / raw) To: Leo Li; +Cc: Scott Wood, linuxppc-dev, lkml, X.B. Xie T24gRnJpLCBTZXAgMjMsIDIwMTYgYXQgMzozOSBBTSwgTGVvIExpIHdyb3RlOg0KDQo+IC0tLS0t T3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IExlbyBMaSBbbWFpbHRvOnBrdS5sZW9AZ21h aWwuY29tXQ0KPiBTZW50OiBGcmlkYXksIFNlcHRlbWJlciAyMywgMjAxNiAzOjM5IEFNDQo+IFRv OiBRaWFuZyBaaGFvIDxxaWFuZy56aGFvQG54cC5jb20+DQo+IENjOiBTY290dCBXb29kIDxvc3NA YnVzZXJyb3IubmV0PjsgbGludXhwcGMtZGV2IDxsaW51eHBwYy0NCj4gZGV2QGxpc3RzLm96bGFi cy5vcmc+OyBsa21sIDxsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnPjsgWC5CLiBYaWUNCj4g PHhpYW9iby54aWVAbnhwLmNvbT4NCj4gU3ViamVjdDogUmU6IFtQQVRDSCB2NSAyLzJdIFFFOiBy ZW1vdmUgUFBDaXNtcyBmb3IgUUUNCj4gDQo+IE9uIFdlZCwgU2VwIDIxLCAyMDE2IGF0IDg6NDMg UE0sIFFpYW5nIFpoYW8gPHFpYW5nLnpoYW9AbnhwLmNvbT4gd3JvdGU6DQo+ID4gT24gTW9uLCBT ZXAgMjIsIDIwMTYgYXQgMjoxOSBBTSwgTGVvIExpIHdyb3RlOg0KPiA+PiAtLS0tLU9yaWdpbmFs IE1lc3NhZ2UtLS0tLQ0KPiA+PiBGcm9tOiBMZW8gTGkgW21haWx0bzpwa3UubGVvQGdtYWlsLmNv bV0NCj4gPj4gU2VudDogVGh1cnNkYXksIFNlcHRlbWJlciAyMiwgMjAxNiAyOjE5IEFNDQo+ID4+ IFRvOiBRaWFuZyBaaGFvIDxxaWFuZy56aGFvQG54cC5jb20+DQo+ID4+IENjOiBTY290dCBXb29k IDxvc3NAYnVzZXJyb3IubmV0PjsgbGludXhwcGMtZGV2IDxsaW51eHBwYy0NCj4gPj4gZGV2QGxp c3RzLm96bGFicy5vcmc+OyBsa21sIDxsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnPjsgWC5C LiBYaWUNCj4gPj4gPHhpYW9iby54aWVAbnhwLmNvbT4NCj4gPj4gU3ViamVjdDogUmU6IFtQQVRD SCB2NSAyLzJdIFFFOiByZW1vdmUgUFBDaXNtcyBmb3IgUUUNCj4gPj4NCj4gPj4gT24gVHVlLCBT ZXAgMjAsIDIwMTYgYXQgODoxMyBQTSwgUWlhbmcgWmhhbyA8cWlhbmcuemhhb0BueHAuY29tPiB3 cm90ZToNCj4gPj4gPiBPbiBNb24sIFNlcCAyMCwgMjAxNiBhdCA0OjEzIEFNLCBMZW8gTGkgd3Jv dGU6DQo+ID4+ID4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+ID4+IEZyb206IExl byBMaSBbbWFpbHRvOnBrdS5sZW9AZ21haWwuY29tXQ0KPiA+PiA+PiBTZW50OiBUdWVzZGF5LCBT ZXB0ZW1iZXIgMjAsIDIwMTYgNDoxMyBBTQ0KPiA+PiA+PiBUbzogUWlhbmcgWmhhbyA8cWlhbmcu emhhb0BueHAuY29tPg0KPiA+PiA+PiBDYzogU2NvdHQgV29vZCA8b3NzQGJ1c2Vycm9yLm5ldD47 IGxpbnV4cHBjLWRldiA8bGludXhwcGMtDQo+ID4+ID4+IGRldkBsaXN0cy5vemxhYnMub3JnPjsg bGttbCA8bGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZz47IFguQi4NCj4gPj4gPj4gWGllIDx4 aWFvYm8ueGllQG54cC5jb20+DQo+ID4+ID4+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjUgMi8yXSBR RTogcmVtb3ZlIFBQQ2lzbXMgZm9yIFFFDQo+ID4+ID4+DQo+ID4+ID4+IE9uIE1vbiwgSnVsIDI1 LCAyMDE2IGF0IDEyOjQzIEFNLCBaaGFvIFFpYW5nIDxxaWFuZy56aGFvQG54cC5jb20+DQo+ID4+ IHdyb3RlOg0KPiA+PiA+PiA+IFFFIHdhcyBzdXBwb3J0ZWQgb24gUG93ZXJQQywgYW5kIGRlcGVu ZGVudCBvbiBQUEMsIE5vdyBpdCBpcw0KPiA+PiA+PiA+IHN1cHBvcnRlZCBvbiBvdGhlciBwbGF0 Zm9ybXMuIHNvIHJlbW92ZSBQUENpc21zLg0KPiA+PiA+PiA+DQo+ID4+ID4+ID4gU2lnbmVkLW9m Zi1ieTogWmhhbyBRaWFuZyA8cWlhbmcuemhhb0BueHAuY29tPg0KPiA+PiA+PiA+IC0tLQ0KPiA+ PiA+PiA+IENoYW5nZXMgZm9yIHYyOg0KPiA+PiA+PiA+ICAgICAgICAgLSBuYQ0KPiA+PiA+PiA+ IENoYW5nZXMgZm9yIHYzOg0KPiA+PiA+PiA+ICAgICAgICAgLSBhZGQgTk9fSVJRDQo+ID4+ID4+ ID4gQ2hhbmdlcyBmb3IgdjQ6DQo+ID4+ID4+ID4gICAgICAgICAtIG1vZGlmeSBzcGluX2V2ZW50 X3RpbWVvdXQgdG8gb3BlbmNvZGVkIHRpbWVvdXQgbG9vcA0KPiA+PiA+PiA+ICAgICAgICAgLSBy ZW1vdmUgTk9fSVJRDQo+ID4+ID4+ID4gICAgICAgICAtIG1vZGlmeSB2aXJxX3RvX2h3IHRvIG9w ZW5jb2VkIGNvZGUgQ2hhbmdlcyBmb3IgdjU6DQo+ID4+ID4+ID4gICAgICAgICAtIG1vZGlmeSBj b21taXQgbXNnDQo+ID4+ID4+ID4gICAgICAgICAtIG1vZGlmeSBkZXBlbmRzIG9mIFFVSUNDX0VO R0lORQ0KPiA+PiA+PiA+ICAgICAgICAgLSBhZGQga2VybmVsZG9jIGhlYWRlciBmb3IgcWVfaXNz dWVfY21kDQo+ID4+ID4+ID4NCj4gPj4gPj4gPiAgZHJpdmVycy9pcnFjaGlwL3FlX2ljLmMgICAg ICAgfCAyOCArKysrKysrKystLS0tLS0NCj4gPj4gPj4gPiAgZHJpdmVycy9zb2MvZnNsL3FlL0tj b25maWcgICAgfCAgMiArLQ0KPiA+PiA+PiA+ICBkcml2ZXJzL3NvYy9mc2wvcWUvcWUuYyAgICAg ICB8IDgwICsrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tDQo+IC0tLS0NCj4gPj4gLS0t LQ0KPiA+PiA+PiAtLS0NCj4gPj4gPj4gPiAgZHJpdmVycy9zb2MvZnNsL3FlL3FlX2lvLmMgICAg fCA0MiArKysrKysrKysrLS0tLS0tLS0tLS0tLQ0KPiA+PiA+PiA+ICBkcml2ZXJzL3NvYy9mc2wv cWUvcWVfdGRtLmMgICB8ICA4ICsrLS0tDQo+ID4+ID4+ID4gIGRyaXZlcnMvc29jL2ZzbC9xZS91 Y2MuYyAgICAgIHwgMTAgKysrLS0tDQo+ID4+ID4+ID4gIGRyaXZlcnMvc29jL2ZzbC9xZS91Y2Nf ZmFzdC5jIHwgNjggKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLQ0KPiAtLQ0KPiA+ PiA+PiA+ICBpbmNsdWRlL3NvYy9mc2wvcWUvcWUuaCAgICAgICB8ICAxIC0NCj4gPj4gPj4gPiAg aW5jbHVkZS9zb2MvZnNsL3FlL3FlX2ljLmggICAgfCAxMiArKystLS0tDQo+ID4+ID4+ID4gIDkg ZmlsZXMgY2hhbmdlZCwgMTMzIGluc2VydGlvbnMoKyksIDExOCBkZWxldGlvbnMoLSkNCj4gPj4g Pj4gPg0KPiA+PiA+Pg0KPiA+PiA+PiBbc25pcF0NCj4gPj4gPj4NCj4gPj4gPj4gPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9zb2MvZnNsL3FlL0tjb25maWcNCj4gPj4gPj4gPiBiL2RyaXZlcnMvc29j L2ZzbC9xZS9LY29uZmlnIGluZGV4IDczYTJlMDguLmIyNmI2NDMgMTAwNjQ0DQo+ID4+ID4+ID4g LS0tIGEvZHJpdmVycy9zb2MvZnNsL3FlL0tjb25maWcNCj4gPj4gPj4gPiArKysgYi9kcml2ZXJz L3NvYy9mc2wvcWUvS2NvbmZpZw0KPiA+PiA+PiA+IEBAIC00LDcgKzQsNyBAQA0KPiA+PiA+PiA+ DQo+ID4+ID4+ID4gIGNvbmZpZyBRVUlDQ19FTkdJTkUNCj4gPj4gPj4gPiAgICAgICAgIGJvb2wg IkZyZWVzY2FsZSBRVUlDQyBFbmdpbmUgKFFFKSBTdXBwb3J0Ig0KPiA+PiA+PiA+IC0gICAgICAg ZGVwZW5kcyBvbiBGU0xfU09DICYmIFBQQzMyDQo+ID4+ID4+ID4gKyAgICAgICBkZXBlbmRzIG9u IE9GICYmIEhBU19JT01FTQ0KPiA+PiA+PiA+ICAgICAgICAgc2VsZWN0IEdFTkVSSUNfQUxMT0NB VE9SDQo+ID4+ID4+ID4gICAgICAgICBzZWxlY3QgQ1JDMzINCj4gPj4gPj4gPiAgICAgICAgIGhl bHANCj4gPj4gPj4NCj4gPj4gPj4gWW91IG1ha2UgaXQgcG9zc2libGUgdG8gYnVpbGQgUUUgZHJp dmVycyBvbiBBUk0sIGJ1dCB0aGUgVUNDX0dFVEgNCj4gPj4gPj4gZmFpbHMgdG8gYnVpbGQgb24g YXJtNjQuICBQbGVhc2UgbWFrZSBzdXJlIGFsbCB0aGVzZSBkcml2ZXJzIGNhbg0KPiA+PiA+PiBi dWlsZCBvbiBvdGhlciBhcmNoaXRlY3R1cmVzLiAgT3IgeW91IGNhbiBzaW1wbHkgbWFrZSB0aGVt IG9ubHkNCj4gPj4gPj4gYnVpbGQgZm9yIFBvd2VyIGFyY2hpdGVjdHVyZSBhcyBtb3N0IG9mIHRo ZW0gYXJlIG5vdCBhdmFpbGFibGUgb24gQVJNLg0KPiA+PiA+Pg0KPiA+PiA+DQo+ID4+ID4gTW9z dCBvZiB0aGVtIGFyZSBub3QgYXZhaWxhYmxlIG9uIEFSTSBhbmQgQVJNNjQuDQo+ID4+ID4gTm93 LCBvbmx5IHFlLWhkbGMgaXMgYXZhaWxhYmxlIG9uIEFSTTY0Lg0KPiA+Pg0KPiA+PiBUaGVuIHlv dSBzaG91bGQgdXBkYXRlIHRoZSBLY29uZmlnIGZvciB0aGVzZSBkcml2ZXJzIHRvbywgaWYgdGhl eSBhcmUNCj4gPj4gb25seSBkZXBlbmRpbmcgb24gQ09ORklHX1FVSUNDX0VOR0lORS4NCj4gPg0K PiA+IFlvdSBtZWFuIGFkZGluZyAiZGVwZW5kcyBvbiBGU0xfU09DICYmIFBQQzMyICIgdG8gdGhl IGRyaXZlcnMgdGhhdCBhcmUNCj4gbm90IGF2YWlsYWJsZSBmb3IgQVJNPw0KPiANCj4gWWVzLiAg UHJldmlvdXNseSB0aGVzZSBkcml2ZXJzIGdldCB0aGUgYXJjaGl0ZWN0dXJlIGxpbWl0YXRpb24g ZnJvbQ0KPiBDT05GSUdfUVVJQ0NfRU5HSU5FLCBidXQgbm93IHRoZXkgbmVlZCB0aGVtIGJ5IHRo ZWlyIG93bi4NCj4gDQoNCg0KT2ssIEkgd2lsbCBtb2RpZnkgaXQgaW4gdGhlIG5leHQgdmVydGlv bi4NCg0KQlINCi1aaGFvIFFpYW5nDQo= ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2016-09-23 1:11 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2016-07-25 5:43 [PATCH v5 1/2] qe: modify get_qe_base function Zhao Qiang 2016-07-25 5:43 ` [PATCH v5 2/2] QE: remove PPCisms for QE Zhao Qiang 2016-09-19 20:13 ` Leo Li 2016-09-21 1:13 ` Qiang Zhao 2016-09-21 18:18 ` Leo Li 2016-09-22 1:43 ` Qiang Zhao 2016-09-22 19:38 ` Leo Li 2016-09-23 1:10 ` Qiang Zhao
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).