Re: [PATCH 1/3] powerpc/book3e: load critical/machine/debug exception stack

2012-12-18 Thread Tabi Timur-B04825
On Thu, Oct 25, 2012 at 1:43 AM, Tiejun Chen  wrote:
> We always alloc critical/machine/debug check exceptions. This is
> different from the normal exception. So we should load these exception
> stack properly like we did for booke.

Tiejun,

I'm a little confused by these patches, because the actual critical
exception handlers are still commented out:

/* Critical Input Interrupt */
START_EXCEPTION(critical_input);
CRIT_EXCEPTION_PROLOG(0x100, BOOKE_INTERRUPT_CRITICAL,
  PROLOG_ADDITION_NONE)
//  EXCEPTION_COMMON(0x100, PACA_EXCRIT, INTS_DISABLE)
//  bl  special_reg_save_crit
//  CHECK_NAPPING();
//  addir3,r1,STACK_FRAME_OVERHEAD
//  bl  .critical_exception
//  b   ret_from_crit_except
b   .

Are you working on fixing this?  I'm trying to fix it, too, but I
think you're way ahead of me.

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [RFC PATCH] powerpc/fsl: add timer wakeup source

2012-12-13 Thread Tabi Timur-B04825
On Wed, Oct 3, 2012 at 5:42 AM, Wang Dongsheng  wrote:
>
>
> Signed-off-by: Wang Dongsheng 

Wang,

Your patches must always have a From: line of your Freescale email
address.  Do not use your gmail.com address to send patches.

This needs to be fixed when this patch is applied.

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH] powerpc/mpic: add global timer support

2012-12-13 Thread Tabi Timur-B04825
On Wed, Oct 3, 2012 at 5:38 AM, Wang Dongsheng  wrote:

> diff --git a/arch/powerpc/include/asm/mpic_timer.h 
> b/arch/powerpc/include/asm/mpic_timer.h
> new file mode 100644
> index 000..2428972
> --- /dev/null
> +++ b/arch/powerpc/include/asm/mpic_timer.h
> @@ -0,0 +1,39 @@
> +/*
> + * arch/powerpc/include/asm/mpic_timer.h
> + *
> + * Mpic Global Timer Header
> + *
> + * Copyright 2012 Freescale Semicondutor, Inc.

When this patch is applied, please fix the misspelling of "Semiconductor".

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH 4/4 v6] iommu/fsl: Freescale PAMU driver and IOMMU API implementation.

2012-12-04 Thread Tabi Timur-B04825
Sethi Varun-B16395 wrote:

> This would in any case change with the new LIODN allocation scheme. I
> intend on introducing the new scheme as a separate patch.

At the very least, you should detect when an LIODN is too large and print 
an error message.

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH 3/4 v5] iommu/fsl: Add iommu domain attributes required by fsl PAMU driver.

2012-12-02 Thread Tabi Timur-B04825
Joerg Roedel wrote:
> When you add implementation specific attributes please add some
> indication to the names that it is only for PAMU. DOMAIN_ATTR_STASH
> sounds too generic.

We were thinking that maybe this attribute could be useful to other IOMMUs 
in the future.  Stashing is not a concept that would only work on 
Freescale processors.

But we'll change it if you insist.

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH 4/4 v6] iommu/fsl: Freescale PAMU driver and IOMMU API implementation.

2012-12-01 Thread Tabi Timur-B04825
Varun Sethi wrote:
> Following is a brief description of the PAMU hardware:
> PAMU determines what action to take and whether to authorize the action on
> the basis of the memory address, a Logical IO Device Number (LIODN), and
> PAACT table (logically) indexed by LIODN and address. Hardware devices which
> need to access memory must provide an LIODN in addition to the memory address.
>
> Peripheral Access Authorization and Control Tables (PAACTs) are the primary
> data structures used by PAMU. A PAACT is a table of peripheral access
> authorization and control entries (PAACE).Each PAACE defines the range of
> I/O bus address space that is accessible by the LIOD and the associated access
> capabilities.
>
> There are two types of PAACTs: primary PAACT (PPAACT) and secondary PAACT
> (SPAACT).A given physical I/O device may be able to act as one or more
> independent logical I/O devices (LIODs). Each such logical I/O device is
> assigned an identifier called logical I/O device number (LIODN). A LIODN is
> allocated a contiguous portion of the I/O bus address space called the DSA 
> window
> for performing DSA operations. The DSA window may optionally be divided into
> multiple sub-windows, each of which may be used to map to a region in system
> storage space. The first sub-window is referred to as the primary sub-window
> and the remaining are called secondary sub-windows.
>
> This patch provides the PAMU driver (fsl_pamu.c) and the corresponding IOMMU
> API implementation (fsl_pamu_domain.c). The PAMU hardware driver (fsl_pamu.c)
> has been derived from the work done by Ashish Kalra and Timur Tabi
> (ti...@freescale.com).
>
> Signed-off-by: Timur Tabi
> Signed-off-by: Varun Sethi
> ---

Acked-by: Timur Tabi 


-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH] powerpc: Fix typos in Freescale copyright claims

2012-11-04 Thread Tabi Timur-B04825
On Thu, Nov 1, 2012 at 11:53 PM, Li Yang  wrote:
> There are many cases that Semiconductor is misspelled.  The patch
> fix these typos.
>
> Signed-off-by: Li Yang 

Acked-by: Timur Tabi 

I can't believe I've been staring at these files for all these years
and never noticed the misspelligs.

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH 3/3 v3] iommu/fsl: Freescale PAMU driver and IOMMU API implementation.

2012-10-22 Thread Tabi Timur-B04825
On Wed, Oct 17, 2012 at 12:32 PM, Varun Sethi  wrote:

> + * Copyright (C) 2012 Freescale Semiconductor, Inc.

Copyright 2012 Freescale Semiconductor, Inc.

> + *
> + */
> +
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +
> +#include "fsl_pamu.h"
> +
> +/* PAMU bypass enbale register contains control bits for
> + * enabling bypass mode on each PAMU.
> + */

/*
 * Linux multi-line comments
 * look like this.
 */

> +#define PAMUBYPENR 0x604

Update struct ccsr_guts instead.

http://patchwork.ozlabs.org/patch/141649/

> +
> +/* define indexes for each operation mapping scenario */
> +#define OMI_QMAN0x00
> +#define OMI_FMAN0x01
> +#define OMI_QMAN_PRIV   0x02
> +#define OMI_CAAM0x03
> +
> +static paace_t *ppaact;
> +static paace_t *spaact;
> +static struct ome *omt;
> +unsigned int max_subwindow_count;
> +
> +struct gen_pool *spaace_pool;
> +
> +static paace_t *pamu_get_ppaace(int liodn)
> +{
> +   if (!ppaact) {
> +   pr_err("PPAACT doesn't exist\n");

pr_err("fsl-pamu: PPAACT has not been initialized\n");

Make sure ALL pr_xxx() messages in this file start with "fsl-pamu: "

> +   return NULL;
> +   }
> +
> +   return &ppaact[liodn];

Bounds checking?

> +}
> +
> +/**  Sets validation bit of PACCE
> + *
> + * @parm[in] liodn PAACT index for desired PAACE
> + *
> + * @return Returns 0 upon success else error code < 0 returned
> + */
> +int pamu_enable_liodn(int liodn)
> +{
> +   paace_t *ppaace;
> +
> +   ppaace = pamu_get_ppaace(liodn);
> +   if (!ppaace)
> +   return -ENOENT;

error message?

> +
> +   if (!get_bf(ppaace->addr_bitfields, PPAACE_AF_WSE)) {
> +   pr_err("liodn %d not configured\n", liodn);
> +   return -EINVAL;
> +   }
> +
> +   /* Ensure that all other stores to the ppaace complete first */
> +   mb();
> +
> +   ppaace->addr_bitfields |= PAACE_V_VALID;
> +   mb();
> +
> +   return 0;
> +}
> +
> +/** Clears validation bit of PACCE
> + *
> + * @parm[in]  liodn PAACT index for desired PAACE
> + *
> + * @return Returns 0 upon success else error code < 0 returned

This is not proper kerneldoc format.

> + */
> +int pamu_disable_liodn(int liodn)
> +{
> +   paace_t *ppaace;
> +
> +   ppaace = pamu_get_ppaace(liodn);
> +   if (!ppaace)
> +   return -ENOENT;

error message?

> +
> +   set_bf(ppaace->addr_bitfields, PAACE_AF_V, PAACE_V_INVALID);
> +   mb();
> +
> +   return 0;
> +}
> +
> +
> +static unsigned int map_addrspace_size_to_wse(phys_addr_t addrspace_size)
> +{
> +   BUG_ON((addrspace_size & (addrspace_size - 1)));
> +
> +   /* window size is 2^(WSE+1) bytes */
> +   return __ffs(addrspace_size >> PAMU_PAGE_SHIFT) + PAMU_PAGE_SHIFT - 1;
> +}
> +
> +static unsigned int map_subwindow_cnt_to_wce(u32 subwindow_cnt)
> +{
> +   /* window count is 2^(WCE+1) bytes */
> +   return __ffs(subwindow_cnt) - 1;
> +}
> +
> +static void pamu_setup_default_xfer_to_host_ppaace(paace_t *ppaace)
> +{
> +   set_bf(ppaace->addr_bitfields, PAACE_AF_PT, PAACE_PT_PRIMARY);
> +
> +   set_bf(ppaace->domain_attr.to_host.coherency_required, 
> PAACE_DA_HOST_CR,
> +  PAACE_M_COHERENCE_REQ);
> +}
> +
> +static void pamu_setup_default_xfer_to_host_spaace(paace_t *spaace)
> +{
> +   set_bf(spaace->addr_bitfields, PAACE_AF_PT, PAACE_PT_SECONDARY);
> +   set_bf(spaace->domain_attr.to_host.coherency_required, 
> PAACE_DA_HOST_CR,
> +  PAACE_M_COHERENCE_REQ);
> +}
> +
> +static paace_t *pamu_get_spaace(u32 fspi_index, u32 wnum)
> +{
> +   return &spaact[fspi_index + wnum];

bounds checking?

> +}
> +
> +static unsigned long pamu_get_fspi_and_allocate(u32 subwin_cnt)
> +{

subwin_cnt should probably be an unsigned int.

This function needs to be documented.  What value is being returned?

> +   unsigned long spaace_addr;
> +
> +   spaace_addr = gen_pool_alloc(spaace_pool, subwin_cnt * 
> sizeof(paace_t));
> +   if (!spaace_addr)
> +   return ULONG_MAX;

What's wrong with returning 0 on error?

> +
> +   return (spaace_addr - (unsigned long)spaact) / (sizeof(paace_t));

Is this supposed to be a virtual address?  If so, then return void*
instead of an unsigned long.

> +}
> +
> +void pamu_free_subwins(int liodn)
> +{
> +   paace_t *ppaace;
> +   u32 subwin_cnt, size;

subwin_cnt should probably be an unsigned int.

> +
> +   ppaace = pamu_get_ppaace(liodn);
> +   if (!ppaace)
> +   return;

error message

> +
> +   if (get_bf(ppaace->addr_bitfields, PPAACE_AF_MW)) {
> +   subwin_cnt = 1UL << (get_bf(ppaace->impl_attr, PAACE_IA_WCE) 
> + 1);
> +   size = (subwin_cnt - 1) * sizeof(paace_t);
> +   gen_pool_free(spaace_pool, (unsigned 
> long)&spaact[ppaace->fspi], size);
> +  

Re: [PATCH 15/25] powerpc/fsl_msi: add a const qualifier

2012-10-15 Thread Tabi Timur-B04825
On Mon, Jul 23, 2012 at 4:13 AM, Uwe Kleine-König
 wrote:
> This prepares *of_device_id.data becoming const. Without this change
> the following warning would occur:
>
> arch/powerpc/sysdev/fsl_msi.c: In function 'fsl_of_msi_probe':
> arch/powerpc/sysdev/fsl_msi.c:379:11: error: assignment discards 
> 'const' qualifier from pointer target type [-Werror]
>
> Signed-off-by: Uwe Kleine-König 

Acked-by: Timur Tabi 

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: linux-next: manual merge of the kvm-ppc tree with the powerpc-merge tree

2012-10-10 Thread Tabi Timur-B04825
On Wed, Oct 10, 2012 at 9:47 PM, Stephen Rothwell  wrote:

> Commit 549d62d889b4 ("KVM: PPC: use definitions in epapr header
> for hcalls") from the kvm-ppc tree added an include of asm/epapr_hcall.h
> to the user visible part of asm/kvm_para.h so asm/epapr_hcall.h became a
> user visible header file.

Any real user-space code that tries to call any of the functions in
epapr_hcall.h will cause an exception.

Claiming that kernel header files that KVM needs are suddenly
user-space header files doesn't make much sense to me, but I guess
it's not my decision.

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: linux-next: manual merge of the kvm-ppc tree with the powerpc-merge tree

2012-10-10 Thread Tabi Timur-B04825
On Wed, Oct 10, 2012 at 8:18 PM, Stephen Rothwell  wrote:

>  arch/powerpc/include/asm/epapr_hcalls.h  |  511 
> --
>  arch/powerpc/include/uapi/asm/Kbuild |1 +
>  arch/powerpc/include/uapi/asm/epapr_hcalls.h |  511 
> ++

What is include/uapi?  epapr_hcalls.h is not a user-space header file.
 I don't remember seeing the original patch which moved it, so I don't
know where this comes from.


-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH v3 1/2] mmc: Move mmc_delay() to include/linux/mmc/core.h

2012-09-24 Thread Tabi Timur-B04825
On Mon, Sep 24, 2012 at 8:17 AM, Arnd Bergmann  wrote:
>
>> static inline void mmc_delay(unsigned int ms)
>> {
>>   msleep(ms);
>> }
>
> That would be my preferred choice, unless someone has specific issues with 
> this.

If we're going to do that, then just get rid of mmc_delay and replace
all calls to it with msleep().  Why bother with the inline function?
There's nothing really MMC-specific about it.

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: PPC64 & DMA zone

2012-09-01 Thread Tabi Timur-B04825
On Fri, Aug 17, 2012 at 3:40 PM, Benjamin Herrenschmidt
 wrote:
> On Fri, 2012-08-17 at 23:04 +0300, Aaro Koskinen wrote:
>> Hi,
>>
>> Is there a way to reduce/limit DMA zone with PPC64 kernel (3.6-rcX)
>> on G5 Mac? I have tried to search Kconfig or command line options,
>> but can't find anything.
>
> No.

What about Shaohui patches for ZONE_DMA?  That's meant to solve
exactly this problem?  Granted, it sets the DMA zone to 31 bits, but
it's simple to hack that to 30 bits.

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH] QE USB host fix for mpc832x

2012-09-01 Thread Tabi Timur-B04825
On Wed, Aug 22, 2012 at 10:54 PM, Ben Dubb  wrote:
> This patch should be used to get QE USB host mode working on mpc832x and
> mpc8360
> based devices. It fixes the following issues:
>
> - BRG divisor shall not be an add number greater than 3.
> - USB param block in multi-user ram can't be accessed at default location on
> mpc832x
>   device. Allocate it dynamically.

I think this should be two separate patches.

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH] i2c-mpc: Wait for STOP to hit the bus

2012-09-01 Thread Tabi Timur-B04825
On Thu, Aug 30, 2012 at 5:40 AM, Joakim Tjernlund
 wrote:

> -   mpc_i2c_stop(i2c);
> +   mpc_i2c_stop(i2c); /* Initiate STOP */
> +   orig_jiffies = jiffies;
> +   /* Wait until STOP is seen, allow up to 1 s */
> +   while (readb(i2c->base + MPC_I2C_SR) & CSR_MBB) {
> +   if (time_after(jiffies, orig_jiffies + HZ)) {
> +   u8 status = readb(i2c->base + MPC_I2C_SR);
> +
> +   dev_dbg(i2c->dev, "timeout\n");
> +   if ((status & (CSR_MCF | CSR_MBB | CSR_RXAK)) != 0) {
> +   writeb(status & ~CSR_MAL,
> +  i2c->base + MPC_I2C_SR);
> +   mpc_i2c_fixup(i2c);
> +   }
> +   return -EIO;
> +   }
> +   cond_resched();
> +   }

Shouldn't the while-loop be inside mpc_i2c_stop() itself?

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH 2/3] powerpc: Bail out of KGDB when we've been triggered

2012-08-22 Thread Tabi Timur-B04825
On Wed, Aug 22, 2012 at 5:43 AM, Tiejun Chen  wrote:

> +int kgdb_skipexception(int exception, struct pt_regs *regs)
> +{
> +   if (kgdb_isremovedbreak(regs->nip))
> +   return 1;
> +
> +   return 0;
> +}

int kgdb_skipexception(int exception, struct pt_regs *regs)
{
return !!kgdb_isremovedbreak(regs->nip));
}

If the caller only cares about zero vs. non-zero, you can drop the !!.

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH 2/2] powerpc/usb: fix bug of CPU hang when missing USB PHY clock

2012-08-20 Thread Tabi Timur-B04825
On Fri, Aug 10, 2012 at 5:48 AM, Shengzhou Liu
 wrote:

> +   for (timeout = 1000; timeout > 0; timeout--) {
> +   /* check PHY_CLK_VALID to get phy clk valid */
> +   if (in_be32(non_ehci + FSL_SOC_USB_CTRL)
> +   & PHY_CLK_VALID)
> +   break;
> +   udelay(1);
> +   }

Use spin_event_timeout() instead.

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH V6 3/3] powerpc/fsl-pci: Unify pci/pcie initialization code

2012-08-15 Thread Tabi Timur-B04825
On Aug 14, 2012, at 10:56 PM, "Jia Hongtao-B38951"  wrote:

>> 
>>> 
>>> +EXPORT_SYMBOL_GPL(mpc85xx_pci_err_probe);
>> 
>> Make this EXPORT_SYMBOL.
>> 
> 
> Hi Timur and Kumar:
> 
> I'm a little confused.
> Should we remove _GPL for upstream version too?

Yes. 


> 
> -Hongtao.

___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH 2/4] fsl_pmc: Add API to enable device as wakeup event source

2012-08-14 Thread Tabi Timur-B04825
Zhao Chenhui wrote:
>>> > >+#ifdef CONFIG_FSL_PMC
>>> > >+extern int mpc85xx_pmc_set_wake(struct device *dev, bool enable);
>>> > >+extern void mpc85xx_pmc_set_lossless_ethernet(int enable);
>> >
>> >Don't use 'extern' for functions.
>> >
> Why? I think there is no difference.

It's unnecessary, and it makes the line longer.

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH 2/4] fsl_pmc: Add API to enable device as wakeup event source

2012-08-11 Thread Tabi Timur-B04825
On Tue, Aug 7, 2012 at 3:43 AM, Zhao Chenhui  wrote:

> +int mpc85xx_pmc_set_wake(struct device *dev, bool enable)
> +{
> +   int ret = 0;
> +   struct device_node *clk_np;
> +   const u32 *prop;
> +   u32 pmcdr_mask;
> +
> +   if (!pmc_regs) {
> +   pr_err("%s: PMC is unavailable\n", __func__);

You have a 'struct device', so please use dev_err instead.

> +   return -ENODEV;
> +   }
> +
> +   if (enable && !device_may_wakeup(dev))
> +   return -EINVAL;
> +
> +   clk_np = of_parse_phandle(dev->of_node, "fsl,pmc-handle", 0);
> +   if (!clk_np)
> +   return -EINVAL;
> +
> +   prop = of_get_property(clk_np, "fsl,pmcdr-mask", NULL);
> +   if (!prop) {
> +   ret = -EINVAL;
> +   goto out;
> +   }
> +   pmcdr_mask = be32_to_cpup(prop);
> +
> +   if (enable)
> +   /* clear to enable clock in low power mode */
> +   clrbits32(&pmc_regs->pmcdr, pmcdr_mask);
> +   else
> +   setbits32(&pmc_regs->pmcdr, pmcdr_mask);
> +
> +out:
> +   of_node_put(clk_np);
> +   return ret;
> +}
> +EXPORT_SYMBOL_GPL(mpc85xx_pmc_set_wake);

Use EXPORT_SYMBOL, not EXPORT_SYMBOL_GPL.

> +
> +/**
> + * mpc85xx_pmc_set_lossless_ethernet - enable lossless ethernet
> + * in (deep) sleep mode
> + * @enable: True to enable event generation; false to disable
> + */
> +void mpc85xx_pmc_set_lossless_ethernet(int enable)

Should this be 'bool enable'?

> @@ -21,6 +22,17 @@ struct device_node;
>
>  extern void fsl_rstcr_restart(char *cmd);
>
> +#ifdef CONFIG_FSL_PMC
> +extern int mpc85xx_pmc_set_wake(struct device *dev, bool enable);
> +extern void mpc85xx_pmc_set_lossless_ethernet(int enable);

Don't use 'extern' for functions.

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH V6 3/3] powerpc/fsl-pci: Unify pci/pcie initialization code

2012-08-11 Thread Tabi Timur-B04825
On Fri, Aug 10, 2012 at 3:19 AM, Jia Hongtao  wrote:
>
> +EXPORT_SYMBOL_GPL(mpc85xx_pci_err_probe);

Make this EXPORT_SYMBOL.

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH v2 2/2] powerpc/mpic: add global timer support

2012-08-11 Thread Tabi Timur-B04825
On Fri, Aug 10, 2012 at 12:54 AM,   wrote:
> From: Wang Dongsheng 

> +EXPORT_SYMBOL_GPL(mpic_request_timer);

Make these EXPORT_SYMBOL.  No need for a GPL restriction.

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH] powerpc/epapr: export epapr_hypercall_start

2012-08-11 Thread Tabi Timur-B04825
On Sat, Aug 11, 2012 at 2:01 AM, Geert Uytterhoeven
 wrote:
> On Sat, Aug 11, 2012 at 12:21 AM, Scott Wood  wrote:
>> +EXPORT_SYMBOL(epapr_hypercall_start);
>
> EXPORT_SYMBOL_GPL?

We prefer EXPORT_SYMBOL.  We don't want to restrict our customers from
having to use GPL code.

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH 1/3] powerpc/e500v2: Add power isa properties to comply with ePAPR 1.1

2012-08-08 Thread Tabi Timur-B04825
On Wed, Aug 8, 2012 at 1:53 AM, Olivia Yin  wrote:
> The patch update all e500v2 platforms.

Could you provide some more information about the ePAPR requirement?

> + * e500v2 power isa Device Tree Source (include)

Power ISA

> + *
> + * Copyright 2012 Freescale Semiconductor Inc.
> + *
> + * Redistribution and use in source and binary forms, with or without
> + * modification, are permitted provided that the following conditions are 
> met:
> + * * Redistributions of source code must retain the above copyright
> + *   notice, this list of conditions and the following disclaimer.
> + * * Redistributions in binary form must reproduce the above copyright
> + *   notice, this list of conditions and the following disclaimer in the
> + *   documentation and/or other materials provided with the distribution.
> + * * Neither the name of Freescale Semiconductor nor the
> + *   names of its contributors may be used to endorse or promote products
> + *   derived from this software without specific prior written 
> permission.
> + *
> + *
> + * ALTERNATIVELY, this software may be distributed under the terms of the
> + * GNU General Public License ("GPL") as published by the Free Software
> + * Foundation, either version 2 of that License or (at your option) any
> + * later version.
> + *
> + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY

Please use normal quotation marks

   "AS IS"

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [v2 PATCH 1/1] booke/wdt: some ioctls do not return values properly

2012-08-06 Thread Tabi Timur-B04825
On Mon, Aug 6, 2012 at 8:59 PM, Tiejun Chen  wrote:
> Fix some booke wdt ioctls return value error.
>
> Signed-off-by: Tiejun Chen 

It's not the greatest patch description, but it'll do.

Acked-by: Timur Tabi 

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH 1/1] booke/wdt: fix incorrect WDIOC_GETSUPPORT return path

2012-08-06 Thread Tabi Timur-B04825
On Mon, Aug 6, 2012 at 2:12 PM, Tabi Timur-B04825  wrote:
> On Mon, Jul 30, 2012 at 3:15 AM, Tiejun Chen  
> wrote:
>> We miss that correct WDIOC_GETSUPPORT return path when perform
>> copy_to_user() properly.
>
> Thanks for catching this.  I'm amazed that this driver still has bugs like 
> this.

While you're at it, I found a few related bugs.  Can you fix these, also?

1.  case WDIOC_SETOPTIONS:
if (get_user(tmp, p))
return -EINVAL;

This should return -EFAULT.

2.  case WDIOC_GETBOOTSTATUS:
/* XXX: something is clearing TSR */
tmp = mfspr(SPRN_TSR) & TSR_WRS(3);
/* returns CARDRESET if last reset was caused by the WDT */
return (tmp ? WDIOF_CARDRESET : 0);

This should use put_user() to return the value, instead of returning
it as a return code.

You can title the new patch something like, "booke/wdt: some ioctls do
not return values properly"

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH 1/1] booke/wdt: fix incorrect WDIOC_GETSUPPORT return path

2012-08-06 Thread Tabi Timur-B04825
On Mon, Jul 30, 2012 at 3:15 AM, Tiejun Chen  wrote:
> We miss that correct WDIOC_GETSUPPORT return path when perform
> copy_to_user() properly.

Thanks for catching this.  I'm amazed that this driver still has bugs like this.

> diff --git a/drivers/watchdog/booke_wdt.c b/drivers/watchdog/booke_wdt.c
> index 3fe82d0..2be7f29 100644
> --- a/drivers/watchdog/booke_wdt.c
> +++ b/drivers/watchdog/booke_wdt.c
> @@ -162,12 +162,13 @@ static long booke_wdt_ioctl(struct file *file,
> unsigned int cmd, unsigned long arg)
>  {
> u32 tmp = 0;
> -   u32 __user *p = (u32 __user *)arg;
> +   void __user *argp = (u32 __user *)arg;
> +   u32 __user *p = argp;

You don't need to create 'argp'.  The existing 'p' variable will work
in the copy_to_user() call.

> +   return copy_to_user(argp, &ident,
> +   sizeof(ident)) ? -EFAULT : 0;

This can fit in one line, especially if you use 'p' instead of 'argp'.

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH V4 3/3] powerpc/fsl-pci: Unify pci/pcie initialization code

2012-08-05 Thread Tabi Timur-B04825
On Fri, Aug 3, 2012 at 11:09 AM, Scott Wood  wrote:

> p1022ds OTOH is weird enough that it deserves its own board file.

What's so weird about the P1022DS?

Also, why do we need a default PCI bus if one isn't specified in the
device tree?

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH 2/3] powerpc/85xx: add Freescale P5040 SOC and SEC v5.2 device trees

2012-07-25 Thread Tabi Timur-B04825


On Jul 25, 2012, at 5:38 PM, "Phillips Kim-R1AAHA"  wrote:

> On Wed, 25 Jul 2012 16:59:49 -0500
> Timur Tabi  wrote:
> 
>> Add device tree (dtsi) files for the Freescale P5040 SOC.  Since this
>> SOC introduces SEC v5.2, add the dtsi file for that also.
>> 
>> Signed-off-by: Timur Tabi 
>> ---
> 
> mind retaining the original authors' signoffs?

Doh!  Sorry about that. 


> 
> Kim

___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [2/3][PATCH][upstream] TDM Framework

2012-07-24 Thread Tabi Timur-B04825
Michael Ellerman wrote:
> I agree these values are odd. But there's no rule that you can only use
> an enum if the values are monotonically increasing.
>
> It can still serve as helpful documentation, and reduce the number of
> places you pass a bare int around.

IMHO, an enum should only be used if

1) You are doing real type checking of the enum
2) You don't care what the actual values of each enum is

For this patch, neither is true.

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH] powerpc/mm: add ZONE_NORMAL zone for 64 bit kernel

2012-07-23 Thread Tabi Timur-B04825
Benjamin Herrenschmidt wrote:
> Sure but I don't want to create the zones in the first place (and thus
> introduce the added pressure on the memory management) on machines that
> don't need it.

One thing that does confuse me -- by default, we don't create a 
ZONE_NORMAL.  We only create a ZONE_DMA.  Why is that?  Shouldn't it be 
the other way around?

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH] powerpc/mm: add ZONE_NORMAL zone for 64 bit kernel

2012-07-23 Thread Tabi Timur-B04825
Benjamin Herrenschmidt wrote:
> Sure but I don't want to create the zones in the first place (and thus
> introduce the added pressure on the memory management) on machines that
> don't need it.

Ah yes, I forgot about memory pressure.

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH] powerpc/mm: add ZONE_NORMAL zone for 64 bit kernel

2012-07-23 Thread Tabi Timur-B04825
On Mon, Jul 23, 2012 at 5:20 PM, Benjamin Herrenschmidt
 wrote:

> And ? Who cares ? Drivers who know about a 32-bit limitations use
> GFP_DMA32, that's what is expected, don't mess around with ZONE_DMA.

I thought drivers are supposed to set a dma_mask, and
dma_alloc_coherent() is supposed to use that to figure out how to
honor that mask.

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [2/3][PATCH][upstream] TDM Framework

2012-07-23 Thread Tabi Timur-B04825
On Mon, Jul 23, 2012 at 5:49 AM,   wrote:
> From: Sandeep Singh 

Please fix your git configuration so that the From: line in your
emails contains your full name.   This patch was sent with this From:
line:

From: 

It should say:

From: Sandeep Singh 

Three more things:

1) You don't need to add [upstream] to patches that are posted upstream.

2) This patch needs to be CC'd to linux-ker...@vger.kernel.org and
de...@driverdev.osuosl.org.

3) I'm concerned that there is no "struct device" anywhere in this
framework.  I think that's a serious omission, and you need to figure
out where you can put this.


> diff --git a/drivers/tdm/tdm-core.c b/drivers/tdm/tdm-core.c
> new file mode 100644
> index 000..9973b6b
> --- /dev/null
> +++ b/drivers/tdm/tdm-core.c
> @@ -0,0 +1,1082 @@
> +/* driver/tdm/tdm-core.c
> + *
> + * Copyright (C) 2012 Freescale Semiconductor, Inc, All rights reserved.

I've been seeing this copyright messages a lot recently, and I don't
understand why.  This message is incorrectly formatted.  The "(C)" is
redundant, and the phrase "All rights reserved." is wrong.  This patch
is licensed under the GPL, so we are NOT reserving all rights, we are
actually giving up some rights.

Please change this to:

Copyright 2012 Freescale Semiconductor, Inc.

> + *
> + * TDM core is the interface between TDM clients and TDM devices.
> + * It is also intended to serve as an interface for line controlled
> + * devices later on.
> + *
> + * Author:Hemant Agrawal 
> + * Rajesh Gumasta 

If these two are the authors, why are they not on the signed-off-by lines?

> + *
> + * Modified by Sandeep Kr Singh 
> + * Poonam Aggarwal 

Do not add "modified" by lines to the code.  That's why we have a git history.


> + * 1. Added framework based initialization of device.
> + * 2. All the init/run time configuration is now done by framework.
> + * 3. Added channel level operations.
> + * 4. Added sysfs knob to configure use_latest_tdm_data at runtime.

Again, this is not information that belongs in the source file.

> + *
> + * Note that some parts of this code may have been derived from i2c 
> subsystem.
> + *
> + * This program is free software; you can redistribute  it and/or modify it
> + * under  the terms of  the GNU General  Public License as published by the
> + * Free Software Foundation;  either version 2 of the  License, or (at your
> + * option) any later version.
> + *
> + * This program is distributed in the hope that it will be useful, but
> + * WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> + * General Public License for more details.
> + *
> + * You should have received a copy of the  GNU General Public License along
> + * with this program; if not, write  to the Free Software Foundation, Inc.,
> + * 675 Mass Ave, Cambridge, MA 02139, USA.
> + */
> +
> +
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 

Are you sure you need all of these header files?

> +
> +
> +static DEFINE_MUTEX(tdm_core_lock);
> +static DEFINE_IDR(tdm_adapter_idr);
> +/* List of TDM adapters registered with TDM framework */
> +LIST_HEAD(adapter_list);
> +
> +/* List of TDM clients registered with TDM framework */
> +LIST_HEAD(driver_list);
> +
> +/* In case the previous data is not fetched by the client driver, the
> + * de-interleaving function will  discard the old data and rewrite the
> + * new data */

Proper multi-line comment format is like this:

/*
 * In case the previous data is not fetched by the client driver, the
 * de-interleaving function will  discard the old data and rewrite the
 * new data.
 */

> +static int use_latest_tdm_data = 1;
> +
> +/* Data structures required for sysfs */
> +static struct tdm_sysfs attr = {
> +   .attr.name = "use_latest_data",
> +   .attr.mode = 0664,
> +   .cmd_type = TDM_LATEST_DATA,
> +};
> +
> +static struct attribute *tdm_attr[] = {
> +   &attr.attr,
> +   NULL
> +};
> +
> +const struct sysfs_ops tdm_ops = {
> +   .show = tdm_show_sysfs,
> +   .store = tdm_store_sysfs,
> +};
> +
> +static struct kobj_type tdm_type = {
> +   .sysfs_ops = &tdm_ops,
> +   .default_attrs = tdm_attr,
> +};

Why are some of these 'const' and some aren't?  They should all be 'const'

> +
> +/* tries to match client driver with the adapter */
> +static int tdm_device_match(struct tdm_driver *driver, struct tdm_adapter 
> *adap)
> +{
> +   /* match on an id table if there is one */
> +   if (driver->id_table && driver->id_table->name[0]) {
> +   if (!(strcmp(driver->id_table->name, adap->name)))
> +   return (int)driver->id_table;
> +   }


> +   return TDM_E_OK;

Get rid of TDM_E_OK.  It's the only error code that you've defined,
and it's set to 0.  That doesn't mean anything.

> +}
> +
> +st

Re: [PATCH] of: require a match on all fields of of_device_id

2012-07-17 Thread Tabi Timur-B04825
On Tue, Jul 17, 2012 at 8:11 PM, Scott Wood  wrote:
> Commit 107a84e61cdd3406c842a0e4be7efffd3a05dba6 ("of: match by compatible
> property first") breaks the gianfar ethernet driver found on various
> Freescale PPC chips.
>
> There are, for unfortunate historical reasons, two nodes with a
> compatible of "gianfar".

Would it be worth updating the binding for the two nodes to make the
compatible property different?  We could do something like this:

ethernet@24000 {
reg = <0x24000 0x1000>;
compatible = "fsl,gianfar-eth", "gianfar";
...
};

(and something similar for MDIO nodes)

and update all the drivers to look for both strings.  After a few
years, we can delete "gianfar".

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH] ppc44x/watchdog: Select WATCHDOG_NOWAYOUT option

2012-07-16 Thread Tabi Timur-B04825
On Sun, Jul 15, 2012 at 9:07 PM, Lu.Jiang  wrote:
>
> Since the ppc44x's watch dog can not reset by software, such operation only
> set the timeout value(WDTP) to minimum, and cause the system reboot
> immediately.

It's supposed to set it to the maximum.  That's what WDTP_MASK is
supposed to do.

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH] ppc44x/watchdog: Select WATCHDOG_NOWAYOUT option

2012-07-16 Thread Tabi Timur-B04825
On Fri, Jul 13, 2012 at 7:25 AM, Josh Boyer  wrote:

> Right now, if the option is not set we call booke_wdt_disable which
> indeed does not actually _disable_ the WDT, but it does set the timer
> period to the maxium value.  We could go one step further and implement
> a simple timer that pops and calls booke_wdt_ping if WATCHDOG_NOWAYOUT
> is not set, then rearms itself.  That would leave the user with the
> ability to perform recovery of the userspace process that exited or
> died and was responsible for pinging the watchdog.

I think the maximum value is still decades or centuries, so there's no
real reason to complicate the code.

The NOWAYOUT feature is working as designed, so I don't understand the
need for this patch.

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [linuxppc-release] [PATCH v3 4/4] fsl-dma: use spin_lock_bh to instead of spin_lock_irqsave

2012-07-16 Thread Tabi Timur-B04825
Qiang Liu wrote:
> Use spin_lock_bh to instead of spin_lock_irqsave for improving performance.

You forgot to include the evidence that performance has improved, as well 
as an explanation why it's okay to use spin_lock_bh, and why it's faster. 
  I told you to respin the patch with that information in the patch 
description.

-- 
Timur Tabi
Linux kernel developer at Freescale


___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH 2/2] powerpc/85xx: Create dts of each core in CAMP mode for P1021RDB-PC

2012-07-11 Thread Tabi Timur-B04825
Kumar Gala wrote:
>> >
>> >./p2020rdb_camp_core1.dts
>> >./p1020rdb-pc_camp_core1.dts
>> >./mpc8572ds_camp_core1.dts
>> >./p2020rdb_camp_core0.dts
>> >./p1020rdb-pc_camp_core0.dts
>> >./mpc8572ds_camp_core0.dts
>> >./p1020rdb_camp_core1.dts
>> >./p1020rdb_camp_core0.dts
>> >
> I'd be ok if we want to drop the p1020rdb as that board has been replaced 
> w/the p1020rdb-pc.

How about dropping the P2020RDB as well?  Then we have only two examples: 
MPC8572DS and P1020RDB-PC.

-- 
Timur Tabi
Linux kernel developer at Freescale


___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH 2/2] powerpc/85xx: Create dts of each core in CAMP mode for P1021RDB-PC

2012-07-10 Thread Tabi Timur-B04825
On Tue, Jul 10, 2012 at 3:39 AM, Xu Jiucheng  wrote:
> Create the dts files for each core and splits the devices between
> the two cores for P1021RDB-PC.
>
> Core0 has l2, serial0, i2c, spi, gpio, tdm,dma, usb, eth0, eth1,
> sdhc, crypto, global-util, message, pci0, pci1, msi, crypto.
> Core1 has l2, serial1, eth2.
>
> Signed-off-by: Xu Jiucheng 
> Signed-off-by: Matthew McClintock 
> ---

Do we really want AMP device trees upstream?  They're very
application-specific, and AMP support has always been a hack.  If
anything, I think we should be deleting AMP device trees from
upstream, not adding more.

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: 3.4.0-rc1: No init found

2012-07-05 Thread Tabi Timur-B04825
On Wed, Apr 4, 2012 at 7:36 AM, Suzuki K. Poulose  wrote:

>> Not sure if this is related, but at the end of each kernel compilation,
>> the following messages are printed:
>>
>> 
>>SYSMAP  System.map
>>SYSMAP  .tmp_System.map
>>WRAParch/powerpc/boot/zImage.pmac
>> INFO: Uncompressed kernel (size 0x6e52f8) overlaps the address of the
>> wrapper(0x40)
>> INFO: Fixing the link_address of wrapper to (0x70)
>>WRAParch/powerpc/boot/zImage.coff
>> INFO: Uncompressed kernel (size 0x6e52f8) overlaps the address of the
>> wrapper(0x50)
>> INFO: Fixing the link_address of wrapper to (0x70)
>>WRAParch/powerpc/boot/zImage.miboot
>> INFO: Uncompressed kernel (size 0x6d4b80) overlaps the address of the
>> wrapper(0x40)
>> INFO: Fixing the link_address of wrapper to (0x70)
>>Building modules, stage 2.
>>MODPOST 24 modules
>> 
>>
>> I started to see these messages in January (around Linux 3.2.0), but never
>> investigated what it was since the produced kernels continued to boot just
>> fine.
>
>
> The above change was added by me. The message is printed when the 'wrapper'
> script finds that decompressed kernel overlaps the 'bootstrap code' which
> does the decompression. So it shifts the 'address' of the bootstrap code to
> the next higher MB. As such it is harmless.

I see this message every time when I build the kernel.  I know it's
harmless, but is this something that can be "fixed"?  That is, can we
change some linker script (or whatever) to make 0x70 the default
value?  Or maybe modify the wrapper script to just automatically find
the right spot without printing a message?

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH v7 1/5] powerpc/85xx: implement hardware timebase sync

2012-07-05 Thread Tabi Timur-B04825
On Tue, Jul 3, 2012 at 5:21 AM, Zhao Chenhui  wrote:
> Do hardware timebase sync. Firstly, stop all timebases, and transfer
> the timebase value of the boot core to the other core. Finally,
> start all timebases.
>
> Only apply to dual-core chips, such as MPC8572, P2020, etc.
>
> Signed-off-by: Zhao Chenhui 
> Signed-off-by: Li Yang 

Acked-by: Timur Tabi 

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH v7 1/5] powerpc/85xx: implement hardware timebase sync

2012-07-04 Thread Tabi Timur-B04825
Zhao Chenhui wrote:
> On Tue, Jul 03, 2012 at 10:17:12PM -0500, Tabi Timur-B04825 wrote:
>> Zhao Chenhui wrote:
>>> If the guts variable is NULL, it indicates there is error in dts or kernel.
>>> We should fix the error, rather than ignore it.
>>
>> And that's why there's a warning message.  Crashing the kernel is not
>> going to fix anything.
>>
>
> This error likely crashes the kenel somewhere.

Can you test this, please?

The point I'm trying to make is that it's wrong to intentionally halt the 
kernel unless you're sure that it's the best option.  A missing device 
tree node is supposed to only disable a given feature, not break everything.

-- 
Timur Tabi
Linux kernel developer at Freescale


___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH v7 1/5] powerpc/85xx: implement hardware timebase sync

2012-07-03 Thread Tabi Timur-B04825
Zhao Chenhui wrote:
> If the guts variable is NULL, it indicates there is error in dts or kernel.
> We should fix the error, rather than ignore it.

And that's why there's a warning message.  Crashing the kernel is not 
going to fix anything.

> Moreover, if smp_85xx_ops.give/take_timebase is NULL, kernel can not do the 
> timebase sync.

Is that necessary for the kernel to boot?

-- 
Timur Tabi
Linux kernel developer at Freescale


___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH v7 1/5] powerpc/85xx: implement hardware timebase sync

2012-07-03 Thread Tabi Timur-B04825
On Tue, Jul 3, 2012 at 5:21 AM, Zhao Chenhui  wrote:

> +   np = of_find_matching_node(NULL, mpc85xx_smp_guts_ids);
> +   if (np) {
> +   guts = of_iomap(np, 0);
> +   of_node_put(np);
> +   if (!guts) {
> +   pr_err("%s: Could not map guts node address\n",
> +   __func__);
> +   return;
> +   }
> +   smp_85xx_ops.give_timebase = mpc85xx_give_timebase;
> +   smp_85xx_ops.take_timebase = mpc85xx_take_timebase;
> +   }

I had this in mind:

   guts = of_iomap(np, 0);
   of_node_put(np);
   if (guts) {
   smp_85xx_ops.give_timebase = mpc85xx_give_timebase;
   smp_85xx_ops.take_timebase = mpc85xx_take_timebase;
} else {
   pr_err("%s: Could not map guts node address\n",
   __func__);
   }

That way, a missing GUTS node does not break everything.

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH v6 1/5] powerpc/85xx: implement hardware timebase sync

2012-06-29 Thread Tabi Timur-B04825
On Tue, Jun 26, 2012 at 5:25 AM, Zhao Chenhui
 wrote:
> Do hardware timebase sync. Firstly, stop all timebases, and transfer
> the timebase value of the boot core to the other core. Finally,
> start all timebases.
>
> Only apply to dual-core chips, such as MPC8572, P2020, etc.
>
> Signed-off-by: Zhao Chenhui 
> Signed-off-by: Li Yang 
> ---
> Changes for v6:
>  * added 85xx_TB_SYNC
>  * added isync() after set_tb()
>  * removed extra entries from mpc85xx_smp_guts_ids
>
>  arch/powerpc/include/asm/fsl_guts.h |    2 +
>  arch/powerpc/platforms/85xx/Kconfig |    5 ++
>  arch/powerpc/platforms/85xx/smp.c   |   84 
> +++
>  3 files changed, 91 insertions(+), 0 deletions(-)
>
> diff --git a/arch/powerpc/include/asm/fsl_guts.h 
> b/arch/powerpc/include/asm/fsl_guts.h
> index aa4c488..dd5ba2c 100644
> --- a/arch/powerpc/include/asm/fsl_guts.h
> +++ b/arch/powerpc/include/asm/fsl_guts.h
> @@ -48,6 +48,8 @@ struct ccsr_guts {
>         __be32  dmuxcr;                /* 0x.0068 - DMA Mux Control Register 
> */
>         u8     res06c[0x70 - 0x6c];
>        __be32  devdisr;        /* 0x.0070 - Device Disable Control */
> +#define CCSR_GUTS_DEVDISR_TB1  0x1000
> +#define CCSR_GUTS_DEVDISR_TB0  0x4000
>        __be32  devdisr2;       /* 0x.0074 - Device Disable Control 2 */
>        u8      res078[0x7c - 0x78];
>        __be32  pmjcr;          /* 0x.007c - 4 Power Management Jog Control 
> Register */
> diff --git a/arch/powerpc/platforms/85xx/Kconfig 
> b/arch/powerpc/platforms/85xx/Kconfig
> index f000d81..8dd7147 100644
> --- a/arch/powerpc/platforms/85xx/Kconfig
> +++ b/arch/powerpc/platforms/85xx/Kconfig
> @@ -8,6 +8,7 @@ menuconfig FSL_SOC_BOOKE
>        select FSL_PCI if PCI
>        select SERIAL_8250_EXTENDED if SERIAL_8250
>        select SERIAL_8250_SHARE_IRQ if SERIAL_8250
> +       select 85xx_TB_SYNC if KEXEC
>        default y
>
>  if FSL_SOC_BOOKE
> @@ -267,3 +268,7 @@ endif # FSL_SOC_BOOKE
>
>  config TQM85xx
>        bool
> +
> +config 85xx_TB_SYNC
> +       bool
> +       default n
> diff --git a/arch/powerpc/platforms/85xx/smp.c 
> b/arch/powerpc/platforms/85xx/smp.c
> index ff42490..edb0cad 100644
> --- a/arch/powerpc/platforms/85xx/smp.c
> +++ b/arch/powerpc/platforms/85xx/smp.c
> @@ -24,6 +24,7 @@
>  #include 
>  #include 
>  #include 
> +#include 
>
>  #include 
>  #include 
> @@ -42,6 +43,69 @@ extern void __early_start(void);
>  #define NUM_BOOT_ENTRY         8
>  #define SIZE_BOOT_ENTRY                (NUM_BOOT_ENTRY * sizeof(u32))
>
> +#ifdef CONFIG_85xx_TB_SYNC
> +static struct ccsr_guts __iomem *guts;
> +static u64 timebase;
> +static int tb_req;
> +static int tb_valid;
> +
> +static void mpc85xx_timebase_freeze(int freeze)
> +{
> +       unsigned int mask;

'mask' should be uint32_t

> +
> +       if (!guts)
> +               return;

This function should never be called if guts is NULL, so this check
should be unnecessary.

> +
> +       mask = CCSR_GUTS_DEVDISR_TB0 | CCSR_GUTS_DEVDISR_TB1;
> +       if (freeze)
> +               setbits32(&guts->devdisr, mask);
> +       else
> +               clrbits32(&guts->devdisr, mask);
> +
> +       in_be32(&guts->devdisr);
> +}
> +
> +static void mpc85xx_give_timebase(void)
> +{
> +       unsigned long flags;
> +
> +       local_irq_save(flags);
> +
> +       while (!tb_req)
> +               barrier();

I think tb_req and tb_valid need to be 'volatile'.

> +       tb_req = 0;
> +
> +       mpc85xx_timebase_freeze(1);
> +       timebase = get_tb();
> +       mb();
> +       tb_valid = 1;
> +
> +       while (tb_valid)
> +               barrier();
> +
> +       mpc85xx_timebase_freeze(0);
> +
> +       local_irq_restore(flags);
> +}
> +
> +static void mpc85xx_take_timebase(void)
> +{
> +       unsigned long flags;
> +
> +       local_irq_save(flags);
> +
> +       tb_req = 1;
> +       while (!tb_valid)
> +               barrier();
> +
> +       set_tb(timebase >> 32, timebase & 0x);
> +       isync();
> +       tb_valid = 0;
> +
> +       local_irq_restore(flags);
> +}
> +#endif
> +
>  static int __init
>  smp_85xx_kick_cpu(int nr)
>  {
> @@ -228,6 +292,16 @@ smp_85xx_setup_cpu(int cpu_nr)
>                doorbell_setup_this_cpu();
>  }
>
> +static const struct of_device_id mpc85xx_smp_guts_ids[] = {
> +       { .compatible = "fsl,mpc8572-guts", },
> +       { .compatible = "fsl,p1020-guts", },
> +       { .compatible = "fsl,p1021-guts", },
> +       { .compatible = "fsl,p1022-guts", },
> +       { .compatible = "fsl,p1023-guts", },
> +       { .compatible = "fsl,p2020-guts", },
> +       {},
> +};

I wonder if it's possible to dynamically generate the compatible
string by using the SOC name?

> +
>  void __init mpc85xx_smp_init(void)
>  {
>        struct device_node *np;
> @@ -249,6 +323,16 @@ void __init mpc85xx_smp_init(void)
>                smp_85xx_ops.cause_ipi = doorbell_cause_ipi;
>        }
>
> +       np = of_find_matching_node(NULL, mpc85xx_smp_guts_ids);
> +       if (np) {
> +#ifdef C

Re: [PATCH v6 0/3] netdev/of/phy: MDIO bus multiplexer support.

2012-05-18 Thread Tabi Timur-B04825
On Wed, May 2, 2012 at 8:16 PM, David Daney  wrote:
> From: David Daney 
>
> This code has been working well for about six months on a couple of
> different configurations (boards), so I thought it would be a good
> time to send it out again, and I hope get it on the path towards
> merging.

David,

I'm trying to implement this feature on our boards, which don't use
GPIOs but rather a memory-mapped FPGA.  I control the mux by setting
some bits in one of the FPGA registers.

Do you have a real device tree I can use as an example?

I'm not sure what the "parent" MDIO bus node is supposed to represent.
 Is that that device that actually controls the muxing hardware, which
in our case would be the FPGA?

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: Re: Build regressions/improvements in v3.4-rc7

2012-05-17 Thread Tabi Timur-B04825
On Thu, May 17, 2012 at 12:30 PM, Timur Tabi  wrote:

> Anyway, I think I see what the problem is, but it does appear when I use
> the normal defconfigs.  What .config was being used?

I meant to say that it does NOT appear.

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH 1/2] powerpc/mpc85xx: p1022ds support the MTD for NOR and NAND flash

2012-05-10 Thread Tabi Timur-B04825
On Mon, Apr 16, 2012 at 8:42 PM,   wrote:
> From: Jerry Huang 
>
> The compatilbe 'simple-bus' is removed from the latest DTS for NAND and
> NOR flash partition, so we must add the new compatilbe support for p1022ds,
> otherwise, the kernel can't parse the partition of NOR and NAND flash.
>
> Signed-off-by: Jerry Huang 
> ---

This patch is no longer compatible with the upstream kernel since my
patch, "powerpc/85xx: don't call of_platform_bus_probe() twice" was
applied.  This is because my patch removed p1022_ds_ids[].

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH 2/2] powerpc/p1022ds/DTS: Add RTC support

2012-05-10 Thread Tabi Timur-B04825
On Mon, Apr 16, 2012 at 8:42 PM,   wrote:
> From: Jerry Huang 
>
> Add the RTC support for p1022ds
>
> Signed-off-by: Jerry Huang 
> ---

Acked-by: Timur Tabi 

Kumar, please apply for 3.5.

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH v2 1/2] powerpc/mpc85xx: support the MTD for p1022ds flash

2012-04-17 Thread Tabi Timur-B04825
On Tue, Apr 17, 2012 at 4:15 AM,   wrote:

> diff --git a/arch/powerpc/platforms/85xx/p1022_ds.c 
> b/arch/powerpc/platforms/85xx/p1022_ds.c
> index e74b7cd..0db3a7e 100644
> --- a/arch/powerpc/platforms/85xx/p1022_ds.c
> +++ b/arch/powerpc/platforms/85xx/p1022_ds.c
> @@ -463,6 +463,7 @@ static void __init p1022_ds_setup_arch(void)
>  static struct of_device_id __initdata p1022_ds_ids[] = {
>        /* So that the DMA channel nodes can be probed individually: */
>        { .compatible = "fsl,eloplus-dma", },
> +       { .compatible = "fsl,p1022-elbc", },
>        {},
>  };


Have you actually tested this with an upstream kernel?  p1022_ds_ids[]
is broken upstream, so adding a new line won't work.

Take a look at http://patchwork.ozlabs.org/patch/128533/

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [git pull] Please pull powerpc.git next branch

2012-04-02 Thread Tabi Timur-B04825
Ping!

Kumar, you forgot to deal with this patch for 3.3.  The window for 3.4
is closing rapidly.  There are no objections to my patch.  Could you
please apply it and get it merged into 3.4?  I'm tired of waiting.

On Thu, Mar 29, 2012 at 4:47 PM, Tabi Timur-B04825  wrote:
> On Thu, Mar 29, 2012 at 3:44 PM, Kumar Gala  wrote:
>>
>> A few minor bug fixes and missing dts updates for 3.4.  There got lost in
>> the mix.  Sorry for the delay
>
> What about my "don't call of_platform_bus_probe() twice" patch?
> That's still an important fix for the P1022DS.
>
> --
> Timur Tabi
> Linux kernel developer at Freescale



-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [git pull] Please pull powerpc.git next branch

2012-03-29 Thread Tabi Timur-B04825
On Thu, Mar 29, 2012 at 3:44 PM, Kumar Gala  wrote:
>
> A few minor bug fixes and missing dts updates for 3.4.  There got lost in
> the mix.  Sorry for the delay

What about my "don't call of_platform_bus_probe() twice" patch?
That's still an important fix for the P1022DS.

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: why use 'raw_spin_lock_irqsave' inf function 'of_find_node_with_property'

2012-03-29 Thread Tabi Timur-B04825
On Thu, Mar 29, 2012 at 5:01 AM, Huang Changming-R66093
 wrote:
> Hi, all
>
> In function “of_find_node_with_property”, why use “raw_spin_lock_irqsave” to
> disable preemption and disable interrupt?

Where do you see raw_spin_lock_irqsave?

struct device_node *of_find_node_with_property(struct device_node *from,
const char *prop_name)
{
struct device_node *np;
struct property *pp;

read_lock(&devtree_lock);
np = from ? from->allnext : allnodes;
for (; np; np = np->allnext) {
for (pp = np->properties; pp != 0; pp = pp->next) {
if (of_prop_cmp(pp->name, prop_name) == 0) {
of_node_get(np);
goto out;
}
}
}
out:
of_node_put(from);
read_unlock(&devtree_lock);
return np;
}

We need a lock so that we don't parse the tree while it's being
modified.  That would cause the for-loop to fail in strange ways.

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: issues calling of_platform_bus_probe() twice

2012-03-18 Thread Tabi Timur-B04825
Grant Likely wrote:
> That's because you're using it wrong.  of_platform_bus_probe() creates
> platform devices at the starting level and every level below it as
> described by the bus ids.  It is illegal to call of_platform_bus_probe()
> twice at the same level in the DT.

Well, *I* am not using it wrong.  Notice that my patch fixes (or works 
around) the commit that *did* do it wrong:

http://patchwork.ozlabs.org/patch/126289/

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: issues calling of_platform_bus_probe() twice

2012-03-17 Thread Tabi Timur-B04825
Benjamin Herrenschmidt wrote:
> Why don't you track down the actual bug instead ?

I was hoping that someone who is very familiar with the code would take a 
look.  I don't know the OF layer that well.

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH] Device Tree Bindings for Freescale TDM controller

2012-03-17 Thread Tabi Timur-B04825
On Sat, Mar 17, 2012 at 2:33 AM, Aggrwal Poonam-B10812
 wrote:
>
>> > +           compatible = "fsl,p1010-tdm", "fsl,mpc8315-tdm";
>> > +           reg = <0x16000 0x200 0x2c000 0x2000>;
>> > +           clock-frequency = <0>;
>>
>> Show a real clock-frequency, perhaps with a comment saying it's typically
>> filled in by boot software.

> Okay.

Scott, are you suggesting that Poonam put a non-zero number in the DTS
for clock-frequency?  If so, then I don't think that's a good idea, if
U-Boot will always override it.

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH] Device Tree Bindings for Freescale TDM controller

2012-03-17 Thread Tabi Timur-B04825
On Sat, Mar 17, 2012 at 2:33 AM, Aggrwal Poonam-B10812
 wrote:
>
>> > +  - clock-frequency
>> > +      Usage: optional
>> > +      Value type: 
>> > +      Definition: The frequency at which the TDM block is operating.
>>
>> Will this frequency ever need to be > 4GHz?
> Don't think so, at max this will be CCB, not sure if CCB on our platforms may 
> get bigger than 4G ever.

Apparently, 4GB is the new 640K.

In Poonam's defense, every clock frequency property in the device tree
is a 32-bit integer.  I've never seen a 64-bit one.

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH] mpc85xx_defconfig:Added I2C_CHARDEV option in defconfig to have compiled I2C device interface

2012-03-17 Thread Tabi Timur-B04825
On Sat, Mar 17, 2012 at 4:00 AM, Shaveta Leekha  wrote:
> Signed-off-by: Shaveta Leekha 
> ---

Where's the patch description?  You need to explain WHY this change is
a good idea.

And you should change all defconfigs in one patch.

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: issues calling of_platform_bus_probe() twice

2012-03-17 Thread Tabi Timur-B04825
Grant Likely wrote:
>>> >  >  Are you aware of any reason that we can't call of_platform_bus_probe()
>>> >  >  or multiple times.  Timur's run into an issue in which all devices
>>> >  >  don't get registered properly if we call of_platform_bus_probe() times
>>> >  >  with different of_device_id struct's.
>> >
>> >  Nothing comes to mind... Grant ?
> Neither for me.  Should work.

I posted a work-around patch here:

http://patchwork.ozlabs.org/patch/128533/

Without this patch, drivers cannot probe on DMA *channels*, or any other 
grandchildren of the root node.

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH 6/9] powerpc/mpc8548cds: Add FPGA node to dts

2012-03-07 Thread Tabi Timur-B04825
On Tue, Mar 6, 2012 at 3:06 AM, Zhao Chenhui  wrote:
> From: chenhui zhao 
>
> Remove FPGA(CADMUS) macros in code. Move it to dts.
>
> Signed-off-by: Zhao Chenhui 
> Signed-off-by: Li Yang 
> ---

Acked-by: Timur Tabi 


-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH 1/2] powerpc/e500: make load_up_spe a normal fuction

2012-02-27 Thread Tabi Timur-B04825
On Mon, Feb 27, 2012 at 4:59 AM, Olivia Yin  wrote:
> So that we can call it in kernel.

And why would we want that?

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH] powerpc/85xx: allow CONFIG_PHYS_64BIT to be selectable

2012-02-23 Thread Tabi Timur-B04825
Li Yang-R58472 wrote:

> It's a good point.  Why can't we decide to use 32-bit/36-bit TLB at runtime 
> even for e500v2?

That's not what PHYS_64BIT does.  PHYS_64BIT determines whether 
phys_addr_t is a u64 or a u32.  This is something that must be determined 
at compilation time.

>> Please remember that the Kconfig for the P1022DS already forced
>> PHYS_64BIT for all mpc85xx platforms.  All we're doing is making it
>> possible to deselect PHYS_64BIT.
>
> I think it's a side-effect introduced by P1022DS support and need to be fixed.

Exactly.  That's what these patches do.  And these patches have been 
applied to the SDK.  I'm just waiting for Kumar to apply them to his 
repository.

> There was no mentioning of enforcing 36-bit for all mpc85xx platforms.

It's not enforcing, it's just the default.  If you build with 
mpc85xx_smp_defconfig, then you'll get a 36-bit kernel.  But now you can 
also use menuconfig to turn off PHYS_64BIT.  Before these fixes, that was 
not possible.

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH] powerpc/85xx: allow CONFIG_PHYS_64BIT to be selectable

2012-02-23 Thread Tabi Timur-B04825
Li Yang-R58472 wrote:

> The mpc85xx_defconfig does include silicons with e500v1 core which
> doesn't have the 36-bit support.  Won't enabling 36-bit support by
> default break the support for them?

No.  The kernel will detect at runtime that that it's an e500v1 core and 
it won't try to create 36-bit TLBs. (e.g. it won't write to MAS7).

Please remember that the Kconfig for the P1022DS already forced PHYS_64BIT 
for all mpc85xx platforms.  All we're doing is making it possible to 
deselect PHYS_64BIT.

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH] powerpc/85xx: allow CONFIG_PHYS_64BIT to be selectable

2012-02-23 Thread Tabi Timur-B04825
Huang Changming-R66093 wrote:
> I want to know if you have the other codes for different address?
>
> The current U-boot just detect the base address of DTS and the CCSR address.
> If they are different, u-boot will print the warning and return 0,
> so the kernel can't been booted.

I had a patch that verified some PCI addresses (which are sometimes 
slightly mismatched), but Kumar rejected it.

I could add some more checks, but the 90% of the time, the only problem is 
using the wrong size (32-bit vs 36-bit) DT.

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH] powerpc/85xx: allow CONFIG_PHYS_64BIT to be selectable

2012-02-23 Thread Tabi Timur-B04825
Li Yang-R58472 wrote:

> Even though the user still need to know the addressing mode that u-boot
> is using.  It won't work if the addressing mode of u-boot and device
> tree are different.

U-Boot will tell the user if the DT does not match.  I added code to 
U-Boot to do that.  So if you have a 36-bit U-Boot and a 32-bit DT, then 
you will get a warning.  If you have a 36-bit U-boot and a 36-bit DT and a 
32-bit kernel, you will get nothing.  But if you have a 32-bit U-boot and 
a 32-bit DT and a 36-bit kernel, then that will work.  A 36-bit kernel 
works with 32-bit *and* 36-bit DTs.  This is why a 36-bit kernel should be 
the default.

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH] powerpc/85xx: allow CONFIG_PHYS_64BIT to be selectable

2012-02-23 Thread Tabi Timur-B04825
Li Yang-R58472 wrote:

> I agree with Changming that we shouldn't setting PHYS_64BIT by default.

The default kernel should always be the compatible with as much as 
possible.  Disabling PHYS_64BIT by default means that the default kernel 
will not work with a 36-bit DTS.  If you attempt to boot such a kernel 
with a 36-bit DTS, there will be no text output.  Most people will not 
know why it's not working.

So the safest option is for PHYS_64BIT to be enabled by default.  That 
way, the kernel will always work.

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH] powerpc/85xx: allow CONFIG_PHYS_64BIT to be selectable

2012-02-23 Thread Tabi Timur-B04825
Huang Changming-R66093 wrote:
> I have one similar patch to remove the "select PHYS_64BIT".
> http://patchwork.ozlabs.org/patch/132351/

That one doesn't update the defconfigs, which means that the default 
kernel will not have PHYS_64BIT enabled.

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: warnings from drivers/tty/ehv_bytechan.c

2012-02-20 Thread Tabi Timur-B04825
Stephen Rothwell wrote:
> console_initcall() is not defined for modules.

Hmmm... the patch you posted is a good short-term fix, but I wonder if 
makes sense for the driver to support modules at all.  I have this in the 
driver:

#include 
...
module_init(ehv_bc_init);
module_exit(ehv_bc_exit);

although to be honest, I can't remember the last time I tried to compile 
it as a module.

The problem stems from the fact that it's a console driver *and* a tty 
driver.  It makes sense that a tty driver can be compiled as a module, but 
not a console driver.

So Greg, can I do something like this:

#ifdef MODULE
module_initcall(ehv_bc_console_init)
#else
console_initcall(ehv_bc_console_init);
#endif

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH 21/30] KVM: PPC: make e500v2 and e500mc mutually exclusive

2012-02-17 Thread Tabi Timur-B04825
On Fri, Feb 17, 2012 at 10:56 AM, Alexander Graf  wrote:

>  config KVM_E500MC
>        bool "KVM support for PowerPC E500MC/E5500 processors"
> -       depends on EXPERIMENTAL && PPC_E500MC
> +       depends on EXPERIMENTAL && PPC_E500MC && !KVM_E500V2

There was a patch floating around that made a similar change to the
platform support, so that you could either build an e500v2 kernel and
enable support only for e500v2 board, or you could build an e500mc
kernel and enable support only for e500mc boards.  Last I heard, the
patch wasn't quite working, but that was a while ago.

Is there a connection between this patch and that one?

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH] powerpc/85xx:Add PSC9131 RDB Support

2012-02-17 Thread Tabi Timur-B04825
On Tue, Feb 14, 2012 at 2:37 AM, Prabhakar Kushwaha
 wrote:
>
>  Applied on git://git.kernel.org/pub/scm/linux/kernel/git/galak/powerpc.git 
> branch next

This is actually a false statement.  "Applied" is past tense, so you
are saying that this patch has *already* been applied to Kumar's
powerpc.git repository.  But this is not true -- Kumar's repository
has not been updated in the last three weeks, and this patch is
nowhere to be found.

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH 2/2 v5] powerpc/85xx: Abstract common define of signal multiplex control for qe

2012-02-17 Thread Tabi Timur-B04825
On Wed, Feb 15, 2012 at 12:58 AM, Zhicheng Fan  wrote:

> @@ -114,6 +114,24 @@ struct ccsr_guts_86xx {
>        __be32  srds2cr1;       /* 0x.0f44 - SerDes2 Control Register 0 */
>  } __attribute__ ((packed));
>
> +#ifdef CONFIG_PPC_85xx
> +

Remove this #ifdef.  It doesn't really help, and it makes things more
complicated.

> +/* Alternate function signal multiplex control */
> +#define MPC85xx_PMUXCR_QE0              0x8000
> +#define MPC85xx_PMUXCR_QE2              0x2000
> +#define MPC85xx_PMUXCR_QE3              0x1000
> +#define MPC85xx_PMUXCR_QE4              0x0800
> +#define MPC85xx_PMUXCR_QE5              0x0400
> +#define MPC85xx_PMUXCR_QE6              0x0200
> +#define MPC85xx_PMUXCR_QE7              0x0100
> +#define MPC85xx_PMUXCR_QE8              0x0080
> +#define MPC85xx_PMUXCR_QE9              0x0040
> +#define MPC85xx_PMUXCR_QE10             0x0020
> +#define MPC85xx_PMUXCR_QE11             0x0010
> +#define MPC85xx_PMUXCR_QE12             0x0008

#define MPC85xx_PMUXCR_QE(x) (0x8000 >> (x))

> +                               pr_err("mpc85xx-rdb: could not map global 
> utilties register!\n");

No exclamation marks (!) in kernel messages.

You misspelled "utilities".

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH 1/2] powerpc/85xx: fix problem that prevents PHYS_64BIT from configurable

2012-02-17 Thread Tabi Timur-B04825
On Thu, Feb 16, 2012 at 7:27 PM, Kumar Gala  wrote:

> For some of these platforms like P2041RDB, P3041DS, P3060QDS, P4080DS, & 
> P5020DS only a 36-bit physical address map is supported by u-boot and the 
> device tree.  This was a decision that was made to NOT support 32-bit address 
> map for these boards and accept the performance implication of it to reduce 
> the # of builds, etc.

Was this a Freescale internal decision, or is this a generic 85xx decision?

For the record, I'm in favor in leaving out support for 32-bit address
map in the upstream kernel, and having it be an option on the SDK
only.  However, in order to do that, we cannot have "select
PHYS_64BIT" in the Kconfigs.  It needs to be in the defconfigs
instead.  Putting it in the defconfig will eliminate the need to have
it in every Kconfig block, so I think that's an improvement.

Then the SDK can include a defconfig that does not have PHYS_64BIT
defined.  And the SDK can include 32-bit U-Boots and 32-bit device
trees for any board where Freescale determines there is a need.

I think Leo's patch simplifies things for everyone.

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH 1/2 v4] powerpc/85xx: Add p1025rdb platform support

2012-02-16 Thread Tabi Timur-B04825
On Tue, Feb 14, 2012 at 2:06 AM, Zhicheng Fan  wrote:
> From: Zhicheng Fan 
>
> Signed-off-by: Zhicheng Fan 
> ---

Acked-by: Timur Tabi 

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH 2/2 v4] powerpc/dts: Add dts for p1025rdb board

2012-02-16 Thread Tabi Timur-B04825
On Tue, Feb 14, 2012 at 2:06 AM, Zhicheng Fan  wrote:
> From: Zhicheng Fan 
>
> P1025RDB Overview
> --
> 1Gbyte DDR3 SDRAM
> 32 Mbyte NAND flash
> 16Mbyte NOR flash
> 16 Mbyte SPI flash
> SD connector to interface with the SD memory card
> Real-time clock on I2C bus
>
> PCIe:
> - x1 PCIe slot
> - x1 mini-PCIe slot
>
> 10/100/1000 BaseT Ethernet ports:
> - eTSEC1, RGMII: one 10/100/1000 port using AtherosTM AR8021
> - eTSEC2, SGMII: one 10/100/1000 port using VitesseTM VSC8221
> - eTSEC3, RGMII: one 10/100/1000 port using AtherosTM AR8021
>
> USB 2.0 port:
> - Two USB2.0 Type A receptacles
> - One USB2.0 signal to Mini PCIe slot
>
> Dual RJ45 UART ports:
> - DUART interface: supports two UARTs up to 115200 bps for console display
>
> Signed-off-by: Zhicheng Fan 
> ---

Acked-by: Timur Tabi 

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH 1/2 v5] powerpc/85xx: Add Quicc Engine support for p1025rdb

2012-02-16 Thread Tabi Timur-B04825
On Wed, Feb 15, 2012 at 12:58 AM, Zhicheng Fan  wrote:
> From: Zhicheng Fan 
>
> Signed-off-by: Zhicheng Fan 
> ---

Acked-by: Timur Tabi 

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH 1/1] fsldma: ignore end of segments interrupt

2012-02-16 Thread Tabi Timur-B04825
On Thu, Jan 26, 2012 at 2:58 PM, Ira W. Snyder  wrote:
> The mpc8349ea has been observed to generate spurious end of segments
> interrupts despite the fact that they are not enabled by this driver.
> Check for them and ignore them to avoid a kernel error message.

When this happens, are there any other status bits set?  It seems
weird that there are spurious interrupts from an internal block,
especially since it's the same block on all 83xx parts.

I wonder if the EOSI bit just happens to be set when the interrupt
occurs for some other reason.

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH 1/2] powerpc/85xx: fix problem that prevents PHYS_64BIT from configurable

2012-02-16 Thread Tabi Timur-B04825
On Thu, Feb 16, 2012 at 6:10 AM, Li Yang  wrote:
>
> The reason why we need to keep PHYS_64BIT option configurable is
> that enabling it cause negative performance impact on various
> aspects like TLB miss and physical address manipulating.  We should
> not enable it unless really needed, e.g. use large memory of 4GB
> or bigger.

I think we should make 36-bit the only option for the upstream
defconfigs, and if we want a 32-bit "optimized" kernel for the SDK,
then we provide that on the SDK only.

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH 1/2] powerpc/85xx: fix problem that prevents PHYS_64BIT from configurable

2012-02-16 Thread Tabi Timur-B04825
On Thu, Feb 16, 2012 at 9:56 AM, Tabi Timur-B04825  wrote:
> I think we should make 36-bit the only option for the upstream
> defconfigs, and if we want a 32-bit "optimized" kernel for the SDK,
> then we provide that on the SDK only.

Oops, I meant to post this as a reply to "powerpc/85xx: add a 36-bit
corenet default config".

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH 2/2 v3] powerpc/dts: Add dts for p1025rdb board

2012-02-13 Thread Tabi Timur-B04825
On Fri, Feb 10, 2012 at 4:18 AM, Zhicheng Fan  wrote:
>
> +                       local-mac-address = [ 00 00 00 00 00 00 ];

This doesn't belong in the DTS.

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH 2/2 v3] powerpc/85xx: Abstract common define of signal multiplex control for qe

2012-02-13 Thread Tabi Timur-B04825
On Sun, Feb 12, 2012 at 11:33 PM, Zhicheng Fan  wrote:

>                if (np) {
> -                       pmuxcr = of_iomap(np, 0) + MPC85xx_PMUXCR_OFFSET;
> +                       guts = of_iomap(np, 0);
>
> -                       if (!pmuxcr)
> -                               printk(KERN_EMERG "Error: Alternate function"
> -                                       " signal multiplex control register 
> not"
> -                                       " mapped!\n");
> +                       if (!guts)
> +                               pr_err("mpc85xx-rdb: could not map global 
> utilties register!\n");
>                        else
>                        /* P1021 has pins muxed for QE and other functions. To
>                         * enable QE UEC mode, we need to set bit QE0 for UCC1
> @@ -291,11 +286,11 @@ static void __init mpc85xx_mds_qe_init(void)
>                         * and QE12 for QE MII management signals in PMUXCR
>                         * register.
>                         */
> -                               setbits32(pmuxcr, MPC85xx_PMUXCR_QE0 |
> +                               setbits32(&guts->pmuxcr, MPC85xx_PMUXCR_QE0 |
>                                                  MPC85xx_PMUXCR_QE3 |
>                                                  MPC85xx_PMUXCR_QE9 |
>                                                  MPC85xx_PMUXCR_QE12);
> -
> +                       iounmap(guts);

This needs to move into the "else" statement:

else {
   setbits(...
   iounmap( ...)
}


-- 
Timur Tabi
Linux kernel developer at Freescale

___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH 1/2 v3] powerpc/85xx: Add Quicc Engine support for p1025rdb

2012-02-13 Thread Tabi Timur-B04825
On Sun, Feb 12, 2012 at 11:33 PM, Zhicheng Fan  wrote:
> From: Zhicheng Fan 
>
> Signed-off-by: Zhicheng Fan 
> ---
>  arch/powerpc/platforms/85xx/mpc85xx_rdb.c |   78 
> -
>  1 files changed, 77 insertions(+), 1 deletions(-)
>
> diff --git a/arch/powerpc/platforms/85xx/mpc85xx_rdb.c 
> b/arch/powerpc/platforms/85xx/mpc85xx_rdb.c
> index e95aef7..c9dfdcc 100644
> --- a/arch/powerpc/platforms/85xx/mpc85xx_rdb.c
> +++ b/arch/powerpc/platforms/85xx/mpc85xx_rdb.c
> @@ -26,6 +26,9 @@
>  #include 
>  #include 
>  #include 
> +#include 
> +#include 
> +#include 
>
>  #include 
>  #include 
> @@ -47,6 +50,10 @@ void __init mpc85xx_rdb_pic_init(void)
>        struct mpic *mpic;
>        unsigned long root = of_get_flat_dt_root();
>
> +#ifdef CONFIG_QUICC_ENGINE
> +       struct device_node *np;
> +#endif
> +
>        if (of_flat_dt_is_compatible(root, "fsl,MPC85XXRDB-CAMP")) {
>                mpic = mpic_alloc(NULL, 0,
>                        MPIC_BIG_ENDIAN | MPIC_BROKEN_FRR_NIRQS |
> @@ -62,6 +69,18 @@ void __init mpc85xx_rdb_pic_init(void)
>
>        BUG_ON(mpic == NULL);
>        mpic_init(mpic);
> +
> +#ifdef CONFIG_QUICC_ENGINE
> +       np = of_find_compatible_node(NULL, NULL, "fsl,qe-ic");
> +       if (np) {
> +               qe_ic_init(np, 0, qe_ic_cascade_low_mpic,
> +                               qe_ic_cascade_high_mpic);
> +               of_node_put(np);
> +
> +       } else
> +               pr_err("%s: Could not find qe-ic node\n", __func__);
> +#endif
> +
>  }
>
>  /*
> @@ -69,7 +88,7 @@ void __init mpc85xx_rdb_pic_init(void)
>  */
>  static void __init mpc85xx_rdb_setup_arch(void)
>  {
> -#ifdef CONFIG_PCI
> +#if defined(CONFIG_PCI) || defined(CONFIG_QUICC_ENGINE)
>        struct device_node *np;
>  #endif
>
> @@ -85,6 +104,63 @@ static void __init mpc85xx_rdb_setup_arch(void)
>  #endif
>
>        mpc85xx_smp_init();
> +
> +#ifdef CONFIG_QUICC_ENGINE
> +       np = of_find_compatible_node(NULL, NULL, "fsl,qe");
> +       if (!np) {
> +               pr_err("%s: Could not find Quicc Engine node\n", __func__);
> +               goto qe_fail;
> +       }
> +
> +       qe_reset();
> +       of_node_put(np);
> +
> +       np = of_find_node_by_name(NULL, "par_io");
> +       if (np) {
> +               struct device_node *ucc;
> +
> +               par_io_init(np);
> +               of_node_put(np);
> +
> +               for_each_node_by_name(ucc, "ucc")
> +                       par_io_of_config(ucc);
> +
> +       }
> +       if (machine_is(p1025_rdb)) {
> +
> +               struct ccsr_guts_85xx __iomem *guts;
> +
> +               np = of_find_node_by_name(NULL, "global-utilities");
> +               if (np) {
> +
> +                       guts = of_iomap(np, 0);
> +                       if (!guts) {
> +
> +                               pr_err("mpc85xx-rdb: could not map global 
> utilties register!\n");
> +
> +                       } else {
> +#if defined(CONFIG_UCC_GETH) || defined(CONFIG_SERIAL_QE)

This #if should be above the " if (machine_is(p1025_rdb)) {" line.

> +                       /* P1025 has pins muxed for QE and other functions. To
> +                       * enable QE UEC mode, we need to set bit QE0 for UCC1
> +                       * in Eth mode, QE0 and QE3 for UCC5 in Eth mode, QE9
> +                       * and QE12 for QE MII management singals in PMUXCR
> +                       * register.
> +                       */
> +                               setbits32(&guts->pmuxcr, MPC85xx_PMUXCR_QE0 |
> +                                               MPC85xx_PMUXCR_QE3 |
> +                                               MPC85xx_PMUXCR_QE9 |
> +                                               MPC85xx_PMUXCR_QE12);
> +#endif
> +                       }
> +                       iounmap(guts);

Put the iounmap() call inside the "else" bracket:


   setbits32(&guts->pmuxcr, MPC85xx_PMUXCR_QE0 |
   MPC85xx_PMUXCR_QE3 |
   MPC85xx_PMUXCR_QE9 |
   MPC85xx_PMUXCR_QE12);
   iounmap(guts);
   }

You're not really paying attention to the code that you're writing.
Please take a good look at your code before you paste it.

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH 1/2 v2] P1025RDB: Add Quicc Engine support

2012-02-09 Thread Tabi Timur-B04825
> +#ifdef CONFIG_QUICC_ENGINE
> +       np = of_find_compatible_node(NULL, NULL, "fsl,qe-ic");
> +       if (np) {
> +               qe_ic_init(np, 0, qe_ic_cascade_low_mpic,
> +                               qe_ic_cascade_high_mpic);
> +               of_node_put(np);
> +
> +       } else
> +               pr_err("Could not find qe-ic node\n");

Since you have to use pr_err instead of dev_err, please add a prefix
to the message.  Like this:

pr_err("mpc85xx-rdb: could not find qe-ic node\n");

or maybe something like this:

pr_err("%s: could not find qe-ic node\n", __func__);


> +       if (machine_is(p1025_rdb)) {
> +
> +               __be32 __iomem *pmuxcr;
> +
> +               np = of_find_node_by_name(NULL, "global-utilities");
> +
> +               if (np) {
> +                       pmuxcr = of_iomap(np, 0) + MPC85xx_PMUXCR_OFFSET;

Use the ccsr_guts_85xx structure instead of hard-coded offsets.

MPC85xx_PMUXCR_OFFSET should be deleted.

> +
> +                       if (!pmuxcr)
> +                               pr_err(KERN_EMERG "Error: Alternate function"
> +                                       " signal multiplex control register 
> not"
> +                                       " mapped!\n");

A missing node in the device tree is NOT an emergency.  Also, the
KERN_xxx macros are not supposed to be used in a pr_xxx macro.  Please
don't blindly copy/paste code from somewhere else without thinking
about it.

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH 1/2 v4] powerpc/85xx: Add p1020rdb-pc platform support

2012-02-09 Thread Tabi Timur-B04825
On Wed, Feb 8, 2012 at 11:40 PM, Zhicheng Fan  wrote:

> +static int __init p1020_rdb_pc_probe(void)
> +{
> +       unsigned long root = of_get_flat_dt_root();
> +
> +       if (of_flat_dt_is_compatible(root, "fsl,P1020RDB-PC"))
> +               return 1;
> +       return 0;
> +}

static int __init p1020_rdb_pc_probe(void)
{
   unsigned long root = of_get_flat_dt_root();

   return of_flat_dt_is_compatible(root, "fsl,P1020RDB-PC");
}

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH 2/2 v4] powerpc/dts: Add dts for p1020rdb-pc board

2012-02-09 Thread Tabi Timur-B04825
On Wed, Feb 8, 2012 at 11:40 PM, Zhicheng Fan  wrote:
>
>  arch/powerpc/boot/dts/p1020rdb-pc.dts            |   90 
>  arch/powerpc/boot/dts/p1020rdb-pc.dtsi           |  247 
> ++
>  arch/powerpc/boot/dts/p1020rdb-pc_36b.dts        |   90 

If we're going to support both 32-bit and 36-bit dts files, then we
have to label both DTS files properly.  Do not assume that 32-bit is
the "default", because on some platforms, 36-bit is the default.

p1020rdb-pc.dts should be called p1020rdb-pc_32b.dts.

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH] powerpc/dts: Removed fsl,msi property from dts.

2012-02-09 Thread Tabi Timur-B04825
On Thu, Feb 9, 2012 at 7:41 AM, Diana Craciun
 wrote:
> From: Diana CRACIUN 
>
> The association in the decice tree between PCI and MSI
> using fsl,msi property was an artificial one and it does
> not reflect the actual hardware.
>
> Signed-off-by: Diana CRACIUN 

Acked-by: Timur Tabi 

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: Efika (mpc5200b): sound doesn't build/work from linux-2.6.38.x

2012-02-05 Thread Tabi Timur-B04825
On Fri, Feb 3, 2012 at 8:02 PM, acrux  wrote:

> as i said [1] it seems to be fixed only in 3.x instead the last working one 
> is the obsolete 2.6.36.x .
> Anyway, alog the sound/soc/fsl/mpc5200_dma.c now builds the sound is still 
> broken.

Ok, I missed that part in your email.

The Efika sound driver was not being compiled by default for a very
long time, so I think everyone just forgot about it.  I posted a patch
to enable it by default and fix the compilation errors, but I'm pretty
sure that it's succumbed to bit rot.  ALSA has changed, especially
with the introduction of device trees, and so now someone needs to fix
the Efika driver.

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: Efika (mpc5200b): sound doesn't build/work from linux-2.6.38.x

2012-02-02 Thread Tabi Timur-B04825
On Thu, Feb 2, 2012 at 10:57 AM, acrux  wrote:


> well, i got the same error with also linux-2.6.37. Btw, this was already 
> reported about a year ago:
> http://lists.ozlabs.org/pipermail/linuxppc-dev/2011-February/088415.html

I think this was fixed already.  You're using an obsolete kernel.

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH 2/2] powerpc: Abstract common define of signal multiplex control for qe

2012-01-30 Thread Tabi Timur-B04825
fanzc wrote:
>>
>>> Signed-off-by: Fanzc
>> Please fix this.  There are only two e's in freescale.  In addition,
>> please use your full name.
>>
> Hi Timur,
>
>You mean that need to remove the define to other file or create new
> file?

No, I mean you're signed-off-by should be this:

Signed-off-by: Zhicheng Fan 

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH 2/2] powerpc: Abstract common define of signal multiplex control for qe

2012-01-25 Thread Tabi Timur-B04825
On Thu, Jan 19, 2012 at 11:00 PM, Zhicheng Fan  wrote:

> Signed-off-by: Fanzc 

Please fix this.  There are only two e's in freescale.  In addition,
please use your full name.

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH 1/2] P1025RDB: add Quicc Engine support

2012-01-20 Thread Tabi Timur-B04825
On Thu, Jan 19, 2012 at 11:00 PM, Zhicheng Fan  wrote:
> From: Fanzc 
>
> Signed-off-by: Fanzc 

Please use your full name (first and last name)

> ---
>  arch/powerpc/platforms/85xx/mpc85xx_rdb.c |   79 
> -
>  1 files changed, 78 insertions(+), 1 deletions(-)
>
> diff --git a/arch/powerpc/platforms/85xx/mpc85xx_rdb.c 
> b/arch/powerpc/platforms/85xx/mpc85xx_rdb.c
> index 1950076..1ba67aa 100644
> --- a/arch/powerpc/platforms/85xx/mpc85xx_rdb.c
> +++ b/arch/powerpc/platforms/85xx/mpc85xx_rdb.c
> @@ -26,6 +26,9 @@
>  #include 
>  #include 
>  #include 
> +#include 
> +#include 
> +#include 
>
>  #include 
>  #include 
> @@ -47,6 +50,10 @@ void __init mpc85xx_rdb_pic_init(void)
>        struct mpic *mpic;
>        unsigned long root = of_get_flat_dt_root();
>
> +#ifdef CONFIG_QUICC_ENGINE
> +       struct device_node *np;
> +#endif
> +
>        if (of_flat_dt_is_compatible(root, "fsl,MPC85XXRDB-CAMP")) {
>                mpic = mpic_alloc(NULL, 0,
>                        MPIC_BIG_ENDIAN | MPIC_BROKEN_FRR_NIRQS |
> @@ -62,6 +69,18 @@ void __init mpc85xx_rdb_pic_init(void)
>
>        BUG_ON(mpic == NULL);
>        mpic_init(mpic);
> +
> +#ifdef CONFIG_QUICC_ENGINE
> +       np = of_find_compatible_node(NULL, NULL, "fsl,qe-ic");
> +       if (np) {
> +               qe_ic_init(np, 0, qe_ic_cascade_low_mpic,
> +                               qe_ic_cascade_high_mpic);
> +               of_node_put(np);
> +
> +       } else
> +               printk(KERN_ERR "Could not find qe-ic node\n");

Use pr_err instead of printk(KERN_ERR

> +#endif
> +
>  }
>
>  /*
> @@ -69,7 +88,7 @@ void __init mpc85xx_rdb_pic_init(void)
>  */
>  static void __init mpc85xx_rdb_setup_arch(void)
>  {
> -#ifdef CONFIG_PCI
> +#if defined(CONFIG_PCI) || defined(CONFIG_QUICC_ENGINE)
>        struct device_node *np;
>  #endif
>
> @@ -85,6 +104,64 @@ static void __init mpc85xx_rdb_setup_arch(void)
>  #endif
>
>        mpc85xx_smp_init();
> +
> +#ifdef CONFIG_QUICC_ENGINE
> +       np = of_find_compatible_node(NULL, NULL, "fsl,qe");
> +       if (!np) {
> +               printk(KERN_ERR "Could not find Quicc Engine node\n");
> +               goto qe_fail;
> +       }
> +
> +       qe_reset();
> +       of_node_put(np);
> +
> +       np = of_find_node_by_name(NULL, "par_io");
> +       if (np) {
> +               struct device_node *ucc;
> +
> +               par_io_init(np);
> +               of_node_put(np);
> +
> +               for_each_node_by_name(ucc, "ucc")
> +                       par_io_of_config(ucc);
> +
> +       }
> +       if (machine_is(p1025_rdb)) {
> +
> +               __be32 __iomem *pmuxcr;
> +
> +               np = of_find_node_by_name(NULL, "global-utilities");
> +
> +               if (np) {
> +                       pmuxcr = of_iomap(np, 0) + MPC85xx_PMUXCR_OFFSET;

You're missing the iounmap().

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH] drivers/video: compile fixes for fsl-diu-fb.c

2012-01-15 Thread Tabi Timur-B04825
Michael Neuling wrote:
> In message<4f1370c9.9010...@freescale.com>  you wrote:
>> Michael Neuling wrote:
>>> Fix a bunch of compiler errors and warnings introduced in:
>>> commit ddd3d905436b572ebadc09dcf2d12ca5b37020a0
>>> Author: Timur Tabi
>>> drivers/video: fsl-diu-fb: merge all allocated data into one block
>>>
>>> Signed-off-by: Michael Neuling
>>> ---
>>> Timur: you do compile test your patches, right? :-P
>>
>> I have a script that tests each commit in a set to make sure it compiles,
>> so that git-bisect isn't broken.
>
> May I suggest you actually run the script next time :-P

Tomorrow, when I get into the office, I'll take a look.  But my code has 
always compiled.  Can you give me the output of your compiler?

> diff --git a/drivers/video/fsl-diu-fb.c b/drivers/video/fsl-diu-fb.c
> index acf292b..3006b2b 100644
> --- a/drivers/video/fsl-diu-fb.c
> +++ b/drivers/video/fsl-diu-fb.c
> @@ -1432,7 +1432,7 @@ static int fsl_diu_suspend(struct platform_device 
> *ofdev, pm_message_t state)
>   struct fsl_diu_data *data;
>
>   data = dev_get_drvdata(&ofdev->dev);
> - disable_lcdc(data->fsl_diu_info[0]);
> + disable_lcdc(&(data->fsl_diu_info[0]));
>
>   return 0;
>   }
> @@ -1442,7 +1442,7 @@ static int fsl_diu_resume(struct platform_device *ofdev)
>   struct fsl_diu_data *data;
>
>   data = dev_get_drvdata(&ofdev->dev);
> - enable_lcdc(data->fsl_diu_info[0]);
> + enable_lcdc(&(data->fsl_diu_info[0]));

I prefer this:

disable_lcdc(data->fsl_diu_info);

Your change makes sense.  I don't understand why it compiles on my system. 
  Something strange is going on.

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH] drivers/video: compile fixes for fsl-diu-fb.c

2012-01-15 Thread Tabi Timur-B04825
Michael Neuling wrote:
> Fix a bunch of compiler errors and warnings introduced in:
>commit ddd3d905436b572ebadc09dcf2d12ca5b37020a0
>Author: Timur Tabi
>drivers/video: fsl-diu-fb: merge all allocated data into one block
>
> Signed-off-by: Michael Neuling
> ---
> Timur: you do compile test your patches, right? :-P

I have a script that tests each commit in a set to make sure it compiles, 
so that git-bisect isn't broken.

> This is effecting mpc85xx_defconfig on mainline (and has been in
> linux-next for while already).
>
> diff --git a/drivers/video/fsl-diu-fb.c b/drivers/video/fsl-diu-fb.c
> index acf292b..78cac52 100644
> --- a/drivers/video/fsl-diu-fb.c
> +++ b/drivers/video/fsl-diu-fb.c
> @@ -366,7 +366,7 @@ struct mfb_info {
>*/
>   struct fsl_diu_data {
>   dma_addr_t dma_addr;
> - struct fb_info fsl_diu_info[NUM_AOIS];
> + struct fb_info *fsl_diu_info[NUM_AOIS];

This doesn't make any sense.  If you change fsl_diu_info into a pointer, 
then where is the object being allocated?

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH] DTS: fix the bug and add the chip compatible for eSDHC

2012-01-02 Thread Tabi Timur-B04825
On Fri, Dec 23, 2011 at 12:10 AM,   wrote:
>
> Accordint to latest kernel, the auto-cmd12 property should be
> "sdhci,auto-cmd12", and according to the SDHC binding and the workaround for
> the special chip, add the chip compatible for eSDHC: "fsl,p1022-esdhc",
> "fsl,mpc8536-esdhc", "fsl,p2020-esdhc" and "fsl,p1010-esdhc".

Please do not use the phrase "fix the bug" in patch summaries.

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: Linux port availability for p5010 processor

2011-12-15 Thread Tabi Timur-B04825
On Thu, Dec 15, 2011 at 5:45 AM, Vineeth  wrote:
>
> why is it a part of 85xx directory ? the core of P5020 is E5500 where the
> core of 85xx is e500;

e5500 is very similar to e500, so it's all part of the same family of cores.

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH] powerpc: fix compile error with 85xx/p1022_ds.c

2011-12-13 Thread Tabi Timur-B04825
On Sun, Dec 11, 2011 at 4:49 PM, Michael Neuling  wrote:
> Current linux-next compiled with mpc85xx_defconfig causes this:
>  arch/powerpc/platforms/85xx/p1022_ds.c:341:14: error: 'udbg_progress' 
> undeclared here (not in a function)
>
> Add include to fix this.
>
> Signed-off-by: Michael Neuling 

Acked-by: Timur Tabi 

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH] powerpc/fsl: add MSI support for the Freescale hypervisor

2011-12-12 Thread Tabi Timur-B04825
Scott Wood wrote:
> How's the hypervisor even going to know if the mem= kernel command line
> argument is used to change the end of main memory (assuming that's been
> taken into account by this point in the boot sequence)?
>
> What if the user put a shared memory region immediately after the main
> partition memory?

Alright, I'll need to add support for detached MSIIR addresses, but for 
now I think this patch is okay.  It's the same level of functionality that 
we provide on the SDK.

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH] powerpc/fsl: add MSI support for the Freescale hypervisor

2011-12-12 Thread Tabi Timur-B04825
Scott Wood wrote:
> Technically, it's up to the hv config file where MSIIR gets mapped.
> After main memory is just a common way of configuring it, but won't work
> if we're limiting the partition's memory to end at an unusual address.

I'll change the comment to reflect this.

Why can't we have the hypervisor always put MSIIR at the end of DDR, and 
not make it configurable?

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH 10/13] powerpc: Update mpc85xx/corenet 32-bit defconfigs

2011-12-09 Thread Tabi Timur-B04825
On Mon, Oct 10, 2011 at 3:50 PM, Becky Bruce  wrote:
> From: Becky Bruce 
>
> Results from updates via make savedefconfig.
>
> Signed-off-by: Becky Bruce 
> ---

...

> -CONFIG_PPC_EPAPR_HV_BYTECHAN=y

I guess no one noticed that this patch removes byte channel support,
thereby preventing this kernel from booting under the hypervisor?

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH] powerpc: Fix compiliation with hugetlbfs enabled

2011-12-09 Thread Tabi Timur-B04825
On Thu, Nov 24, 2011 at 1:40 PM, Kumar Gala  wrote:
> arch/powerpc/mm/hugetlbpage.c: In function 'reserve_hugetlb_gpages':
> arch/powerpc/mm/hugetlbpage.c:312:2: error: implicit declaration of function 
> 'parse_args'
>
> Signed-off-by: Kumar Gala 

Acked-by: Timur Tabi 

Would you please apply this to your 'next' branch?  It won't compile
with this patch.

-- 
Timur Tabi
Linux kernel developer at Freescale
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


  1   2   >