RE: [PATCH][V4] powerpc/fsl-pci: Add pci inbound/outbound PM support

2012-09-19 Thread Jia Hongtao-B38951


> -Original Message-
> From: Kumar Gala [mailto:ga...@kernel.crashing.org]
> Sent: Tuesday, September 18, 2012 1:04 PM
> To: Jia Hongtao-B38951
> Cc: linuxppc-dev@lists.ozlabs.org; Li Yang-R58472; Wood Scott-B07421
> Subject: Re: [PATCH][V4] powerpc/fsl-pci: Add pci inbound/outbound PM
> support
> 
> 
> On Sep 17, 2012, at 9:10 PM, Jia Hongtao wrote:
> 
> > Power supply for PCI inbound/outbound window registers is off when
> > system go to deep-sleep state. We save the values of registers before
> > suspend and restore to registers after resume.
> >
> > Signed-off-by: Jiang Yutang 
> > Signed-off-by: Jia Hongtao 
> > Signed-off-by: Li Yang 
> > ---
> > Changes for V4:
> > We just rebase the patch upon following patch:
> > powerpc/fsl-pci: Unify pci/pcie initialization code
> >
> > arch/powerpc/include/asm/pci-bridge.h |2 +-
> > arch/powerpc/sysdev/fsl_pci.c |  121
> +
> > 2 files changed, 122 insertions(+), 1 deletions(-)
> 
> Did you ever compare this to just re-parsing device tree method?
> 
> - k

I tested the re-parsing way by using setup_pci_atmu() when resume.
And I found out that re-parsing will *change* outbound IO translation
address regitster.

It seems that in the first bootup, after setup_atmu()
pcibios_setup_phb_resources() may update hose->io_resource, but atmu
is not updated according to the new hose->io_resource value.
In resume from sleep setup_atmu() will reset atmu according to the
new hose->io_resource value. So the setup_atmu() will cause different
result on outbound IO register between first bootup and resume from
sleep.

So... There's a possibility that in the first bootup atmu is not setup
properly.

Anyway, if setup_pci_atmu() at resume is functionally right then re-parsing
is a good way for PM. I also test the latency of re-parsing and save/restore,
both way are acceptable.


- Hongtao.

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


[PATCH] powerpc/fsl-pci: use 'Header Type' to identify PCIE mode

2012-09-19 Thread Minghuan Lian
The original code uses 'Programming Interface' field to judge if PCIE is
EP or RC mode, however, some latest silicons do not support this functionality.
According to PCIE specification, 'Header Type' offset 0x0e is used to
indicate header type, so change code to use 'Header Type' field to
judge PCIE mode. Because FSL PCI controller does not support 'Header Type',
patch still uses 'Programming Interface' to identify PCI mode.

Signed-off-by: Minghuan Lian 
Signed-off-by: Roy Zang 
---
 arch/powerpc/sysdev/fsl_pci.c |   38 +++---
 1 file changed, 23 insertions(+), 15 deletions(-)

diff --git a/arch/powerpc/sysdev/fsl_pci.c b/arch/powerpc/sysdev/fsl_pci.c
index c37f461..43d30df 100644
--- a/arch/powerpc/sysdev/fsl_pci.c
+++ b/arch/powerpc/sysdev/fsl_pci.c
@@ -38,15 +38,15 @@ static int fsl_pcie_bus_fixup, is_mpc83xx_pci;
 
 static void __devinit quirk_fsl_pcie_header(struct pci_dev *dev)
 {
-   u8 progif;
+   u8 hdr_type;
 
/* if we aren't a PCIe don't bother */
if (!pci_find_capability(dev, PCI_CAP_ID_EXP))
return;
 
/* if we aren't in host mode don't bother */
-   pci_read_config_byte(dev, PCI_CLASS_PROG, &progif);
-   if (progif & 0x1)
+   pci_read_config_byte(dev, PCI_HEADER_TYPE, &hdr_type);
+   if ((hdr_type & 0x7f) != PCI_HEADER_TYPE_BRIDGE)
return;
 
dev->class = PCI_CLASS_BRIDGE_PCI << 8;
@@ -425,7 +425,7 @@ int __init fsl_add_bridge(struct device_node *dev, int 
is_primary)
struct pci_controller *hose;
struct resource rsrc;
const int *bus_range;
-   u8 progif;
+   u8 hdr_type, progif;
 
if (!of_device_is_available(dev)) {
pr_warning("%s: disabled\n", dev->full_name);
@@ -457,25 +457,24 @@ int __init fsl_add_bridge(struct device_node *dev, int 
is_primary)
setup_indirect_pci(hose, rsrc.start, rsrc.start + 0x4,
PPC_INDIRECT_TYPE_BIG_ENDIAN);
 
-   early_read_config_byte(hose, 0, 0, PCI_CLASS_PROG, &progif);
-   if ((progif & 1) == 1) {
-   /* unmap cfg_data & cfg_addr separately if not on same page */
-   if (((unsigned long)hose->cfg_data & PAGE_MASK) !=
-   ((unsigned long)hose->cfg_addr & PAGE_MASK))
-   iounmap(hose->cfg_data);
-   iounmap(hose->cfg_addr);
-   pcibios_free_controller(hose);
-   return -ENODEV;
-   }
-
setup_pci_cmd(hose);
 
/* check PCI express link status */
if (early_find_capability(hose, 0, 0, PCI_CAP_ID_EXP)) {
+   /* For PCIE read HEADER_TYPE to identify controler mode */
+   early_read_config_byte(hose, 0, 0, PCI_HEADER_TYPE, &hdr_type);
+   if ((hdr_type & 0x7f) != PCI_HEADER_TYPE_BRIDGE)
+   goto no_bridge;
+
hose->indirect_type |= PPC_INDIRECT_TYPE_EXT_REG |
PPC_INDIRECT_TYPE_SURPRESS_PRIMARY_BUS;
if (fsl_pcie_check_link(hose))
hose->indirect_type |= PPC_INDIRECT_TYPE_NO_PCIE_LINK;
+   } else {
+   /* For PCI read PROG to identify controller mode */
+   early_read_config_byte(hose, 0, 0, PCI_CLASS_PROG, &progif);
+   if ((progif & 1) == 1)
+   goto no_bridge;
}
 
printk(KERN_INFO "Found FSL PCI host bridge at 0x%016llx. "
@@ -494,6 +493,15 @@ int __init fsl_add_bridge(struct device_node *dev, int 
is_primary)
setup_pci_atmu(hose, &rsrc);
 
return 0;
+
+no_bridge:
+   /* unmap cfg_data & cfg_addr separately if not on same page */
+   if (((unsigned long)hose->cfg_data & PAGE_MASK) !=
+   ((unsigned long)hose->cfg_addr & PAGE_MASK))
+   iounmap(hose->cfg_data);
+   iounmap(hose->cfg_addr);
+   pcibios_free_controller(hose);
+   return -ENODEV;
 }
 #endif /* CONFIG_FSL_SOC_BOOKE || CONFIG_PPC_86xx */
 
-- 
1.7.9.5


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


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

2012-09-19 Thread b16395
From: Varun Sethi 

This patchset provides the Freescale PAMU (Peripheral Access Management Unit) 
driver
and the corresponding IOMMU API implementation. PAMU is the IOMMU present on 
Freescale
QorIQ platforms. PAMU can authorize memory access, remap the memory address, 
and remap 
the I/O transaction type.

This set consists of the following patches:
1. Addition of new field in the device (powerpc) archdata structure for storing 
iommu domain information
   pointer. This pointer is stored when the device is attached to a particular 
iommu domain.
2. Addition of domain attributes required by the PAMU driver IOMMU API.
3. PAMU driver and IOMMU API implementation.

Varun Sethi (3):
  Store iommu domain information pointer in archdata.
  Add iommu domain attributes required by fsl PAMU driver.
  FSL PAMU driver and IOMMU API implementation.

 arch/powerpc/include/asm/device.h |4 +
 drivers/iommu/Kconfig |7 +
 drivers/iommu/Makefile|1 +
 drivers/iommu/fsl_pamu.c  | 1033 +
 drivers/iommu/fsl_pamu.h  |  377 ++
 drivers/iommu/fsl_pamu_domain.c   |  990 +++
 drivers/iommu/fsl_pamu_domain.h   |   94 
 drivers/iommu/fsl_pamu_proto.h|   49 ++
 include/linux/iommu.h |   30 ++
 9 files changed, 2585 insertions(+), 0 deletions(-)
 create mode 100644 drivers/iommu/fsl_pamu.c
 create mode 100644 drivers/iommu/fsl_pamu.h
 create mode 100644 drivers/iommu/fsl_pamu_domain.c
 create mode 100644 drivers/iommu/fsl_pamu_domain.h
 create mode 100644 drivers/iommu/fsl_pamu_proto.h

-- 
1.7.4.1


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


[RFC][PATCH 1/3] iommu/fsl: Store iommu domain information pointer in archdata.

2012-09-19 Thread b16395
From: Varun Sethi 

Add a new field in the device (powerpc) archdata structure for storing iommu 
domain
information pointer. This pointer is stored when the device is attached to a 
particular
domain.

Signed-off-by: Varun Sethi 
---
 arch/powerpc/include/asm/device.h |4 
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/arch/powerpc/include/asm/device.h 
b/arch/powerpc/include/asm/device.h
index 77e97dd..6dc79fe 100644
--- a/arch/powerpc/include/asm/device.h
+++ b/arch/powerpc/include/asm/device.h
@@ -28,6 +28,10 @@ struct dev_archdata {
void*iommu_table_base;
} dma_data;
 
+   /* IOMMU domain information pointer. This would be set
+* when this device is attached to an iommu_domain.
+*/
+   void*iommu_domain;
 #ifdef CONFIG_SWIOTLB
dma_addr_t  max_direct_dma_addr;
 #endif
-- 
1.7.4.1


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


[RFC][PATCH 2/3] iommu/fsl: Add iommu domain attributes required by fsl PAMU driver.

2012-09-19 Thread b16395
From: Varun Sethi 

Added the following domain attributes required by FSL PAMU driver:
1. Subwindows field added to the iommu domain geometry attribute.
2. Added new iommu stash attribute, which allows setting of the
   LIODN specific stash id parameter through IOMMU API.
3. Added an attribute for enabling/disabling DMA to a particular
   memory window.

Signed-off-by: Varun Sethi 
---
 include/linux/iommu.h |   30 ++
 1 files changed, 30 insertions(+), 0 deletions(-)

diff --git a/include/linux/iommu.h b/include/linux/iommu.h
index 7e83370..eaa40c6 100644
--- a/include/linux/iommu.h
+++ b/include/linux/iommu.h
@@ -44,6 +44,28 @@ struct iommu_domain_geometry {
dma_addr_t aperture_start; /* First address that can be mapped*/
dma_addr_t aperture_end;   /* Last address that can be mapped */
bool force_aperture;   /* DMA only allowed in mappable range? */
+
+   /* The subwindows field indicates number of DMA subwindows supported
+* by the geometry. Following is the interpretation of
+* values for this field:
+* 0 : This implies that the supported geometry size is 1 MB
+ * with each subwindow size being 4KB. Thus number of subwindows
+* being = 1MB/4KB = 256.
+* 1 : Only one DMA window i.e. no subwindows.
+* value other than 0 or 1 would indicate actual number of subwindows.
+*/
+   u32 subwindows;
+};
+
+/* This attribute corresponds to IOMMUs capable of generating
+ * a stash transaction. A stash transaction is typically a
+ * hardware initiated prefetch of data from memory to cache.
+ * This attribute allows configuring stashig specific parameters
+ * in the IOMMU hardware.
+ */
+struct iommu_stash_attribute {
+   u32 cpu;/* cpu number */
+   u32 cache;  /* cache to stash to: L1,L2,L3 */
 };
 
 struct iommu_domain {
@@ -60,6 +82,14 @@ struct iommu_domain {
 enum iommu_attr {
DOMAIN_ATTR_MAX,
DOMAIN_ATTR_GEOMETRY,
+   /* Set the IOMMU hardware stashing
+* parameters.
+*/
+   DOMAIN_ATTR_STASH,
+   /* Explicity enable/disable DMA for a
+ * particular memory window.
+ */
+   DOMAIN_ATTR_ENABLE,
 };
 
 #ifdef CONFIG_IOMMU_API
-- 
1.7.4.1


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


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

2012-09-19 Thread Kumar Gala

On Sep 19, 2012, at 8:17 AM,   
wrote:

> From: Varun Sethi 
> 
> This patchset provides the Freescale PAMU (Peripheral Access Management Unit) 
> driver
> and the corresponding IOMMU API implementation. PAMU is the IOMMU present on 
> Freescale
> QorIQ platforms. PAMU can authorize memory access, remap the memory address, 
> and remap 
> the I/O transaction type.
> 
> This set consists of the following patches:
> 1. Addition of new field in the device (powerpc) archdata structure for 
> storing iommu domain information
>   pointer. This pointer is stored when the device is attached to a particular 
> iommu domain.
> 2. Addition of domain attributes required by the PAMU driver IOMMU API.
> 3. PAMU driver and IOMMU API implementation.
> 
> Varun Sethi (3):
>  Store iommu domain information pointer in archdata.
>  Add iommu domain attributes required by fsl PAMU driver.
>  FSL PAMU driver and IOMMU API implementation.
> 
> arch/powerpc/include/asm/device.h |4 +
> drivers/iommu/Kconfig |7 +
> drivers/iommu/Makefile|1 +
> drivers/iommu/fsl_pamu.c  | 1033 +
> drivers/iommu/fsl_pamu.h  |  377 ++
> drivers/iommu/fsl_pamu_domain.c   |  990 +++
> drivers/iommu/fsl_pamu_domain.h   |   94 
> drivers/iommu/fsl_pamu_proto.h|   49 ++
> include/linux/iommu.h |   30 ++
> 9 files changed, 2585 insertions(+), 0 deletions(-)
> create mode 100644 drivers/iommu/fsl_pamu.c
> create mode 100644 drivers/iommu/fsl_pamu.h
> create mode 100644 drivers/iommu/fsl_pamu_domain.c
> create mode 100644 drivers/iommu/fsl_pamu_domain.h
> create mode 100644 drivers/iommu/fsl_pamu_proto.h

I assume that another patch series will add device tree binding spec and update 
device trees for SoCs with PAMU?

- k

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


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

2012-09-19 Thread Kumar Gala

On Sep 19, 2012, at 8:17 AM,   
wrote:

> From: Varun Sethi 
> 
> Added the following domain attributes required by FSL PAMU driver:
> 1. Subwindows field added to the iommu domain geometry attribute.
> 2. Added new iommu stash attribute, which allows setting of the
>   LIODN specific stash id parameter through IOMMU API.
> 3. Added an attribute for enabling/disabling DMA to a particular
>   memory window.
> 
> Signed-off-by: Varun Sethi 
> ---
> include/linux/iommu.h |   30 ++
> 1 files changed, 30 insertions(+), 0 deletions(-)
> 
> diff --git a/include/linux/iommu.h b/include/linux/iommu.h
> index 7e83370..eaa40c6 100644
> --- a/include/linux/iommu.h
> +++ b/include/linux/iommu.h
> @@ -44,6 +44,28 @@ struct iommu_domain_geometry {
>   dma_addr_t aperture_start; /* First address that can be mapped*/
>   dma_addr_t aperture_end;   /* Last address that can be mapped */
>   bool force_aperture;   /* DMA only allowed in mappable range? */
> +
> + /* The subwindows field indicates number of DMA subwindows supported
> +  * by the geometry. Following is the interpretation of
> +  * values for this field:
> +  * 0 : This implies that the supported geometry size is 1 MB
> + * with each subwindow size being 4KB. Thus number of subwindows
> +  * being = 1MB/4KB = 256.
> +  * 1 : Only one DMA window i.e. no subwindows.
> +  * value other than 0 or 1 would indicate actual number of subwindows.
> +  */
> + u32 subwindows;
> +};
> +
> +/* This attribute corresponds to IOMMUs capable of generating
> + * a stash transaction. A stash transaction is typically a
> + * hardware initiated prefetch of data from memory to cache.
> + * This attribute allows configuring stashig specific parameters
> + * in the IOMMU hardware.
> + */
> +struct iommu_stash_attribute {
> + u32 cpu;/* cpu number */
> + u32 cache;  /* cache to stash to: L1,L2,L3 */

seems like this should be enum instead of u32 for cache

With enum being something like:

enum iommu_attr_stash_cache {
IOMMU_ATTR_CACHE_L1,
IOMMU_ATTR_CACHE_L2,
IOMMU_ATTR_CACHE_L3,
};

> };
> 
> struct iommu_domain {
> @@ -60,6 +82,14 @@ struct iommu_domain {
> enum iommu_attr {
>   DOMAIN_ATTR_MAX,
>   DOMAIN_ATTR_GEOMETRY,
> + /* Set the IOMMU hardware stashing
> +  * parameters.
> +  */
> + DOMAIN_ATTR_STASH,
> + /* Explicity enable/disable DMA for a
> + * particular memory window.
> + */
> + DOMAIN_ATTR_ENABLE,
> };
> 
> #ifdef CONFIG_IOMMU_API
> -- 
> 1.7.4.1
> 
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majord...@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/

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


Re: [PATCH] powerpc/fsl-pci: use 'Header Type' to identify PCIE mode

2012-09-19 Thread Kumar Gala

On Sep 19, 2012, at 2:23 AM, Minghuan Lian wrote:

> The original code uses 'Programming Interface' field to judge if PCIE is
> EP or RC mode, however, some latest silicons do not support this 
> functionality.
> According to PCIE specification, 'Header Type' offset 0x0e is used to
> indicate header type, so change code to use 'Header Type' field to
> judge PCIE mode. Because FSL PCI controller does not support 'Header Type',
> patch still uses 'Programming Interface' to identify PCI mode.
> 
> Signed-off-by: Minghuan Lian 
> Signed-off-by: Roy Zang 
> ---
> arch/powerpc/sysdev/fsl_pci.c |   38 +++---
> 1 file changed, 23 insertions(+), 15 deletions(-)
> 
> diff --git a/arch/powerpc/sysdev/fsl_pci.c b/arch/powerpc/sysdev/fsl_pci.c
> index c37f461..43d30df 100644
> --- a/arch/powerpc/sysdev/fsl_pci.c
> +++ b/arch/powerpc/sysdev/fsl_pci.c
> @@ -38,15 +38,15 @@ static int fsl_pcie_bus_fixup, is_mpc83xx_pci;
> 
> static void __devinit quirk_fsl_pcie_header(struct pci_dev *dev)
> {
> - u8 progif;
> + u8 hdr_type;
> 
>   /* if we aren't a PCIe don't bother */
>   if (!pci_find_capability(dev, PCI_CAP_ID_EXP))
>   return;
> 
>   /* if we aren't in host mode don't bother */
> - pci_read_config_byte(dev, PCI_CLASS_PROG, &progif);
> - if (progif & 0x1)
> + pci_read_config_byte(dev, PCI_HEADER_TYPE, &hdr_type);
> + if ((hdr_type & 0x7f) != PCI_HEADER_TYPE_BRIDGE)
>   return;
> 
>   dev->class = PCI_CLASS_BRIDGE_PCI << 8;
> @@ -425,7 +425,7 @@ int __init fsl_add_bridge(struct device_node *dev, int 
> is_primary)
>   struct pci_controller *hose;
>   struct resource rsrc;
>   const int *bus_range;
> - u8 progif;
> + u8 hdr_type, progif;
> 
>   if (!of_device_is_available(dev)) {
>   pr_warning("%s: disabled\n", dev->full_name);
> @@ -457,25 +457,24 @@ int __init fsl_add_bridge(struct device_node *dev, int 
> is_primary)
>   setup_indirect_pci(hose, rsrc.start, rsrc.start + 0x4,
>   PPC_INDIRECT_TYPE_BIG_ENDIAN);
> 
> - early_read_config_byte(hose, 0, 0, PCI_CLASS_PROG, &progif);
> - if ((progif & 1) == 1) {
> - /* unmap cfg_data & cfg_addr separately if not on same page */
> - if (((unsigned long)hose->cfg_data & PAGE_MASK) !=
> - ((unsigned long)hose->cfg_addr & PAGE_MASK))
> - iounmap(hose->cfg_data);
> - iounmap(hose->cfg_addr);
> - pcibios_free_controller(hose);
> - return -ENODEV;
> - }
> -
>   setup_pci_cmd(hose);

I think we should be doing the check before we call setup_pci_cmd().  The old 
code didn't touch the controller registers if we where and end-point.  We 
should maintain that.

> 
>   /* check PCI express link status */
>   if (early_find_capability(hose, 0, 0, PCI_CAP_ID_EXP)) {
> + /* For PCIE read HEADER_TYPE to identify controler mode */
> + early_read_config_byte(hose, 0, 0, PCI_HEADER_TYPE, &hdr_type);
> + if ((hdr_type & 0x7f) != PCI_HEADER_TYPE_BRIDGE)
> + goto no_bridge;
> +
>   hose->indirect_type |= PPC_INDIRECT_TYPE_EXT_REG |
>   PPC_INDIRECT_TYPE_SURPRESS_PRIMARY_BUS;
>   if (fsl_pcie_check_link(hose))
>   hose->indirect_type |= PPC_INDIRECT_TYPE_NO_PCIE_LINK;
> + } else {
> + /* For PCI read PROG to identify controller mode */
> + early_read_config_byte(hose, 0, 0, PCI_CLASS_PROG, &progif);
> + if ((progif & 1) == 1)
> + goto no_bridge;
>   }
> 
>   printk(KERN_INFO "Found FSL PCI host bridge at 0x%016llx. "
> @@ -494,6 +493,15 @@ int __init fsl_add_bridge(struct device_node *dev, int 
> is_primary)
>   setup_pci_atmu(hose, &rsrc);
> 
>   return 0;
> +
> +no_bridge:
> + /* unmap cfg_data & cfg_addr separately if not on same page */
> + if (((unsigned long)hose->cfg_data & PAGE_MASK) !=
> + ((unsigned long)hose->cfg_addr & PAGE_MASK))
> + iounmap(hose->cfg_data);
> + iounmap(hose->cfg_addr);
> + pcibios_free_controller(hose);
> + return -ENODEV;
> }
> #endif /* CONFIG_FSL_SOC_BOOKE || CONFIG_PPC_86xx */
> 
> -- 
> 1.7.9.5
> 

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


Re: [PATCH][V4] powerpc/fsl-pci: Add pci inbound/outbound PM support

2012-09-19 Thread Kumar Gala

On Sep 19, 2012, at 2:10 AM, Jia Hongtao-B38951 wrote:

> 
> 
>> -Original Message-
>> From: Kumar Gala [mailto:ga...@kernel.crashing.org]
>> Sent: Tuesday, September 18, 2012 1:04 PM
>> To: Jia Hongtao-B38951
>> Cc: linuxppc-dev@lists.ozlabs.org; Li Yang-R58472; Wood Scott-B07421
>> Subject: Re: [PATCH][V4] powerpc/fsl-pci: Add pci inbound/outbound PM
>> support
>> 
>> 
>> On Sep 17, 2012, at 9:10 PM, Jia Hongtao wrote:
>> 
>>> Power supply for PCI inbound/outbound window registers is off when
>>> system go to deep-sleep state. We save the values of registers before
>>> suspend and restore to registers after resume.
>>> 
>>> Signed-off-by: Jiang Yutang 
>>> Signed-off-by: Jia Hongtao 
>>> Signed-off-by: Li Yang 
>>> ---
>>> Changes for V4:
>>> We just rebase the patch upon following patch:
>>> powerpc/fsl-pci: Unify pci/pcie initialization code
>>> 
>>> arch/powerpc/include/asm/pci-bridge.h |2 +-
>>> arch/powerpc/sysdev/fsl_pci.c |  121
>> +
>>> 2 files changed, 122 insertions(+), 1 deletions(-)
>> 
>> Did you ever compare this to just re-parsing device tree method?
>> 
>> - k
> 
> I tested the re-parsing way by using setup_pci_atmu() when resume.
> And I found out that re-parsing will *change* outbound IO translation
> address regitster.
> 
> It seems that in the first bootup, after setup_atmu()
> pcibios_setup_phb_resources() may update hose->io_resource, but atmu
> is not updated according to the new hose->io_resource value.
> In resume from sleep setup_atmu() will reset atmu according to the
> new hose->io_resource value. So the setup_atmu() will cause different
> result on outbound IO register between first bootup and resume from
> sleep.
> 
> So... There's a possibility that in the first bootup atmu is not setup
> properly.

Are you seeing this happen in your testing?  If so its a bug we need to look at 
fixing.

> 
> Anyway, if setup_pci_atmu() at resume is functionally right then re-parsing
> is a good way for PM. I also test the latency of re-parsing and save/restore,
> both way are acceptable.
> 
> 
> - Hongtao.

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


RE: [PATCH 5/7] ASoC: fsl: convert pcm030-audio-fabric to a platform-driver

2012-09-19 Thread Eric Millbrandt
On 2012-09-18 Mark Brown wrote:
> On Thu, Sep 13, 2012 at 05:43:14PM -0400, Eric Millbrandt wrote:
>
>> +static int __devexit pcm030_fabric_remove(struct platform_device *op)
>> +{ + struct platform_device *pdev = platform_get_drvdata(op); +
>> +platform_device_unregister(pdev); + +   return 0; +}
>
> This seems really confused...  why is a platform device registering
> another platform device?  Do you mean to convert to
> snd_soc_register_card()?
>
That was an artifact of me splitting the changes to pcm030-audio-fabric.c
into multiple patches.  I changed the driver to a platform device in this
patch and converted to snd_soc_register_card() in the next patch.  I can
merge the two patches back together if you think that is cleaner and
easier to understand.

Thanks
Eric


-DISCLAIMER: an automatically appended disclaimer may follow. By posting-
-to a public e-mail mailing list I hereby grant permission to distribute-
-and copy this message.-

This e-mail and the information, including any attachments, it contains are 
intended to be a confidential communication only to the person or entity to 
whom it is addressed and may contain information that is privileged. If the 
reader of this message is not the intended recipient, you are hereby notified 
that any dissemination, distribution or copying of this communication is 
strictly prohibited. If you have received this communication in error, please 
immediately notify the sender and destroy the original message.

Thank you.

Please consider the environment before printing this email.
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


[PATCH v2 1/7] ASoC: fsl: add PPC_MPC52xx dependency to SND_POWERPC_SOC

2012-09-19 Thread "Eric Millbrandt
From: Eric Millbrandt 

mpc52xx socs need to define SND_POWERPC_SOC to build ASoC drivers.

Signed-off-by: Eric Millbrandt 
---
Changes since v1:
Patch was "powerpc/52xx: define FSL_SOC"
Changed from defining FSL_SOC for PPC_MPC52xx to adding PPC_MPC52xx as a
dependency of SND_POWERPC_SOC as per Anatolij Gustschin's comment.

 sound/soc/fsl/Kconfig |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/sound/soc/fsl/Kconfig b/sound/soc/fsl/Kconfig
index d701330..4563b28 100644
--- a/sound/soc/fsl/Kconfig
+++ b/sound/soc/fsl/Kconfig
@@ -6,7 +6,7 @@ config SND_SOC_FSL_UTILS
 
 menuconfig SND_POWERPC_SOC
tristate "SoC Audio for Freescale PowerPC CPUs"
-   depends on FSL_SOC
+   depends on FSL_SOC || PPC_MPC52xx
help
  Say Y or M if you want to add support for codecs attached to
  the PowerPC CPUs.
-- 
1.7.2.5

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


Re: [PATCH] p1023rds_defconfig: Add USB support

2012-09-19 Thread Gala Kumar-B11780

On Sep 14, 2012, at 2:57 PM, Chunhe Lan wrote:

> Signed-off-by: Chunhe Lan 
> ---
> arch/powerpc/configs/85xx/p1023rds_defconfig |6 ++
> 1 files changed, 6 insertions(+), 0 deletions(-)

applied to next

- k

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


Re: [PATCH] powerpc/fsl-pci: fix warning when CONFIG_SWIOTLB is disabled

2012-09-19 Thread Kumar Gala

On Sep 18, 2012, at 4:57 AM, Jia Hongtao wrote:

> Fix the following warning:
> arch/powerpc/sysdev/fsl_pci.c: In function 'fsl_pci_probe':
> arch/powerpc/sysdev/fsl_pci.c:867:25: error: unused variable 'hose'
> 
> Signed-off-by: Jia Hongtao 
> ---
> arch/powerpc/sysdev/fsl_pci.c |2 ++
> 1 files changed, 2 insertions(+), 0 deletions(-)

applied to next

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


Re: [PATCH] powerpc/mpc85xx:Update interrupt handling for IFC controller

2012-09-19 Thread Kumar Gala

On Sep 13, 2012, at 3:04 AM, Prabhakar Kushwaha wrote:

> IFC may have one or two interrupts.  If two interrupt specifiers are present,
> the first is the "common" interrupt (CM_EVTER_STAT), and the second is the 
> NAND
> interrupt (NAND_EVTER_STAT).
> If there is only one, that interrupt reports both types of event.
> 
> Signed-off-by: Prabhakar Kushwaha 
> ---
> Based upon git://git.kernel.org/pub/scm/linux/kernel/git/galak/powerpc.git 
> branch next 
> 
> arch/powerpc/sysdev/fsl_ifc.c |   20 
> 1 file changed, 8 insertions(+), 12 deletions(-)

applied to next

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


Re: [PATCH] powerpc/smp: Do not disable IPI interrupts during suspend

2012-09-19 Thread Kumar Gala

On Jul 20, 2012, at 7:47 AM, Zhao Chenhui wrote:

> During suspend, all interrupts including IPI will be disabled. In this case,
> the suspend process will hang in SMP. To prevent this, pass the flag
> IRQF_NO_SUSPEND when requesting IPI irq.
> 
> Signed-off-by: Zhao Chenhui 
> Signed-off-by: Li Yang 
> ---
> arch/powerpc/kernel/smp.c |2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)

applied to next

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


[git pull] Please pull powerpc.git next branch

2012-09-19 Thread Kumar Gala
The following changes since commit caa1d631fc99940f866480c2bb88a6f5a235e7a2:

  Merge remote-tracking branch 'kumar/next' into next (2012-09-18 16:04:33 
+1000)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/galak/powerpc.git next

for you to fetch changes up to 4d56dec5dca496655ef035ef3b80f7c47dc22b77:

  powerpc/fsl-pci: fix warning when CONFIG_SWIOTLB is disabled (2012-09-19 
08:41:46 -0500)


Chunhe Lan (1):
  powerpc/85xx: Enable USB support in p1023rds_defconfig

Jia Hongtao (1):
  powerpc/fsl-pci: fix warning when CONFIG_SWIOTLB is disabled

Prabhakar Kushwaha (1):
  powerpc/mpc85xx: Update interrupt handling for IFC controller

Zhao Chenhui (1):
  powerpc/smp: Do not disable IPI interrupts during suspend

 arch/powerpc/configs/85xx/p1023rds_defconfig |6 ++
 arch/powerpc/kernel/smp.c|2 +-
 arch/powerpc/sysdev/fsl_ifc.c|   20 
 arch/powerpc/sysdev/fsl_pci.c|2 ++
 4 files changed, 17 insertions(+), 13 deletions(-)
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [RFC][PATCH 1/3] iommu/fsl: Store iommu domain information pointer in archdata.

2012-09-19 Thread Kumar Gala

On Sep 19, 2012, at 8:17 AM,   
wrote:

> From: Varun Sethi 
> 
> Add a new field in the device (powerpc) archdata structure for storing iommu 
> domain
> information pointer. This pointer is stored when the device is attached to a 
> particular
> domain.
> 
> Signed-off-by: Varun Sethi 
> ---
> arch/powerpc/include/asm/device.h |4 
> 1 files changed, 4 insertions(+), 0 deletions(-)

Not too familiar, but what does the IBM Server IOMMU do for iommu_domain?

> 
> diff --git a/arch/powerpc/include/asm/device.h 
> b/arch/powerpc/include/asm/device.h
> index 77e97dd..6dc79fe 100644
> --- a/arch/powerpc/include/asm/device.h
> +++ b/arch/powerpc/include/asm/device.h
> @@ -28,6 +28,10 @@ struct dev_archdata {
>   void*iommu_table_base;
>   } dma_data;
> 
> + /* IOMMU domain information pointer. This would be set
> +  * when this device is attached to an iommu_domain.
> +  */
> + void*iommu_domain;
> #ifdef CONFIG_SWIOTLB
>   dma_addr_t  max_direct_dma_addr;
> #endif
> -- 
> 1.7.4.1
> 
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majord...@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/

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


RE: [PATCH][V4] powerpc/fsl-pci: Add pci inbound/outbound PM support

2012-09-19 Thread Jia Hongtao-B38951


From: Kumar Gala [ga...@kernel.crashing.org]
Sent: Wednesday, September 19, 2012 10:27 PM
To: Jia Hongtao-B38951
Cc: linuxppc-dev@lists.ozlabs.org; Li Yang-R58472; Wood Scott-B07421
Subject: Re: [PATCH][V4] powerpc/fsl-pci: Add pci inbound/outbound PM support

On Sep 19, 2012, at 2:10 AM, Jia Hongtao-B38951 wrote:

>
>
>> -Original Message-
>> From: Kumar Gala [mailto:ga...@kernel.crashing.org]
>> Sent: Tuesday, September 18, 2012 1:04 PM
>> To: Jia Hongtao-B38951
>> Cc: linuxppc-dev@lists.ozlabs.org; Li Yang-R58472; Wood Scott-B07421
>> Subject: Re: [PATCH][V4] powerpc/fsl-pci: Add pci inbound/outbound PM
>> support
>>
>>
>> On Sep 17, 2012, at 9:10 PM, Jia Hongtao wrote:
>>
>>> Power supply for PCI inbound/outbound window registers is off when
>>> system go to deep-sleep state. We save the values of registers before
>>> suspend and restore to registers after resume.
>>>
>>> Signed-off-by: Jiang Yutang 
>>> Signed-off-by: Jia Hongtao 
>>> Signed-off-by: Li Yang 
>>> ---
>>> Changes for V4:
>>> We just rebase the patch upon following patch:
>>> powerpc/fsl-pci: Unify pci/pcie initialization code
>>>
>>> arch/powerpc/include/asm/pci-bridge.h |2 +-
>>> arch/powerpc/sysdev/fsl_pci.c |  121
>> +
>>> 2 files changed, 122 insertions(+), 1 deletions(-)
>>
>> Did you ever compare this to just re-parsing device tree method?
>>
>> - k
>
> I tested the re-parsing way by using setup_pci_atmu() when resume.
> And I found out that re-parsing will *change* outbound IO translation
> address regitster.
>
> It seems that in the first bootup, after setup_atmu()
> pcibios_setup_phb_resources() may update hose->io_resource, but atmu
> is not updated according to the new hose->io_resource value.
> In resume from sleep setup_atmu() will reset atmu according to the
> new hose->io_resource value. So the setup_atmu() will cause different
> result on outbound IO register between first bootup and resume from
> sleep.
>
> So... There's a possibility that in the first bootup atmu is not setup
> properly.

[Are you seeing this happen in your testing?  If so its a bug we need to look 
at fixing.]

Yes, I see this in my testing.
Also PCIe ethernet card works well after resuming from sleep in both 
save/restore
and re-parsing way. (Maybe PCIe ethernet card don't need outbound IO resource)
So, I guess the result of re-parsing (actually it's re-setup) is right and ATMU 
is not setup
properly at the first bootup.



>
> Anyway, if setup_pci_atmu() at resume is functionally right then re-parsing
> is a good way for PM. I also test the latency of re-parsing and save/restore,
> both way are acceptable.
>
>
> - Hongtao.



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


Re: [PATCH][V4] powerpc/fsl-pci: Add pci inbound/outbound PM support

2012-09-19 Thread Kumar Gala
>>> On Sep 17, 2012, at 9:10 PM, Jia Hongtao wrote:
>>> 
 Power supply for PCI inbound/outbound window registers is off when
 system go to deep-sleep state. We save the values of registers before
 suspend and restore to registers after resume.
 
 Signed-off-by: Jiang Yutang 
 Signed-off-by: Jia Hongtao 
 Signed-off-by: Li Yang 
 ---
 Changes for V4:
 We just rebase the patch upon following patch:
 powerpc/fsl-pci: Unify pci/pcie initialization code
 
 arch/powerpc/include/asm/pci-bridge.h |2 +-
 arch/powerpc/sysdev/fsl_pci.c |  121
>>> +
 2 files changed, 122 insertions(+), 1 deletions(-)
>>> 
>>> Did you ever compare this to just re-parsing device tree method?
>>> 
>>> - k
>> 
>> I tested the re-parsing way by using setup_pci_atmu() when resume.
>> And I found out that re-parsing will *change* outbound IO translation
>> address regitster.
>> 
>> It seems that in the first bootup, after setup_atmu()
>> pcibios_setup_phb_resources() may update hose->io_resource, but atmu
>> is not updated according to the new hose->io_resource value.
>> In resume from sleep setup_atmu() will reset atmu according to the
>> new hose->io_resource value. So the setup_atmu() will cause different
>> result on outbound IO register between first bootup and resume from
>> sleep.
>> 
>> So... There's a possibility that in the first bootup atmu is not setup
>> properly.
> 
> [Are you seeing this happen in your testing?  If so its a bug we need to look 
> at fixing.]
> 
> Yes, I see this in my testing.
> Also PCIe ethernet card works well after resuming from sleep in both 
> save/restore
> and re-parsing way. (Maybe PCIe ethernet card don't need outbound IO resource)
> So, I guess the result of re-parsing (actually it's re-setup) is right and 
> ATMU is not setup
> properly at the first bootup.

Are you seeing the following message - "PCI: I/O resource not set for host 
bridge" ?

Trying to understand why you'd hit the reassignment of io_resource.

- k

> 
> 
> 
>> 
>> Anyway, if setup_pci_atmu() at resume is functionally right then re-parsing
>> is a good way for PM. I also test the latency of re-parsing and save/restore,
>> both way are acceptable.
>> 
>> 
>> - Hongtao.
> 
> 

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


Re: [RFC v8 PATCH 00/20] memory-hotplug: hot-remove physical memory

2012-09-19 Thread Vasilis Liaskovitis
Hi,
On Tue, Sep 18, 2012 at 05:39:37PM +0800, Wen Congyang wrote:
> At 09/13/2012 01:18 AM, Vasilis Liaskovitis Wrote:
> > Hi,
> > 
> > On Wed, Sep 12, 2012 at 01:20:28PM +0800, Wen Congyang wrote:
> >> Hmm, seabios doesn't support ACPI table SLIT. We can specify node it for 
> >> dimm
> >> device, so I think we should support SLIT in seabios. Otherwise we may meet
> >> the following kernel messages:
> >> [  325.016769] init_memory_mapping: [mem 0x4000-0x5fff]
> >> [  325.018060]  [mem 0x4000-0x5fff] page 2M
> >> [  325.019168] [ea000100-ea00011f] potential offnode 
> >> page_structs
> >> [  325.024172] [ea000120-ea00013f] potential offnode 
> >> page_structs
> >> [  325.028596]  [ea000140-ea00017f] PMD -> 
> >> [88003500-8800353f] on node 1
> >> [  325.031775] [ea000160-ea00017f] potential offnode 
> >> page_structs
> >>
> >> Do you have plan to do it?
> > thanks for testing.
> > 
> > commit 5294828 from https://github.com/vliaskov/seabios/commits/memhp-v2
> > implements a SLIT table for the given numa nodes.
> 
> Hmm, why do you set node_distance(i, j) to REMOTE_DISTANCE if i != j?

What's the alternative?

Afaik SLIT[i][j] shows the distance between proximity domains (_PXM) i and j. It
doesn't correspond to individual SRAT entries. So i and j here are not memory
ranges associated with 2 different dimms. They denote domains i and j, which map
to 2 different logical nodeids in the kernel.

A default setting would be to set the entry to REMOTE_DISTANCE for all different
domains (i!=j). So this SLIT implementation is not useful, since it results
in the same numa_distance values as the non-SLIT kernel calculation in
include/linux/topology.h

> 
> > 
> > However I am not sure the SLIT is the problem. The kernel builds a default
> > numa_distance table in arch/x86/mm/numa.c: numa_alloc_distance(). If the 
> > BIOS
> > doesn't present a SLIT, this should take effect (numactl --hardware should
> > report this table)
> 
> If the BIOS doesn't present a SLIT, numa_distance_cnt is set to 0 in the
> function numa_reset_distance(). So node_distance(i, j) is REMOTE_DISTANCE(i 
> != j).
> 
> > 
> > Do you have more details on how to reproduce the warning? e.g. how many 
> > dimms
> > are present in the system? Does this happen on the first dimm hot-plugged?
> > Are all SRAT entries parsed correctly at boot-time or do you see any other
> > warnings at boot-time?
> 
> I can't reproduce it again. IIRC, I only do the following things:
> hotplug a memory device, online the pages, offline the pages and hot remove
> the memory device.

Is the sparse_vmemmap allocation supposed to guarantee no off-node allocations?
If not, then the warning could be valid.

thanks,

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


Re: [PATCH 5/7] ASoC: fsl: convert pcm030-audio-fabric to a platform-driver

2012-09-19 Thread Mark Brown
On Wed, Sep 19, 2012 at 10:35:45AM -0400, Eric Millbrandt wrote:

> That was an artifact of me splitting the changes to pcm030-audio-fabric.c
> into multiple patches.  I changed the driver to a platform device in this
> patch and converted to snd_soc_register_card() in the next patch.  I can
> merge the two patches back together if you think that is cleaner and
> easier to understand.

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


Re: [PATCH v2 1/7] ASoC: fsl: add PPC_MPC52xx dependency to SND_POWERPC_SOC

2012-09-19 Thread Mark Brown
On Wed, Sep 19, 2012 at 10:51:25AM -0400,  wrote:
> From: Eric Millbrandt 
> 
> mpc52xx socs need to define SND_POWERPC_SOC to build ASoC drivers.
> 
> Signed-off-by: Eric Millbrandt 
> ---
> Changes since v1:
> Patch was "powerpc/52xx: define FSL_SOC"
> Changed from defining FSL_SOC for PPC_MPC52xx to adding PPC_MPC52xx as a
> dependency of SND_POWERPC_SOC as per Anatolij Gustschin's comment.

Patches 2 to 7 appear to have gone AWOL?
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


RE: [PATCH v2 1/7] ASoC: fsl: add PPC_MPC52xx dependency to SND_POWERPC_SOC

2012-09-19 Thread Eric Millbrandt
On 2012-09-19 Mark Brown wrote:
> On Wed, Sep 19, 2012 at 10:51:25AM -0400,  wrote:
>> From: Eric Millbrandt 
>>
>> mpc52xx socs need to define SND_POWERPC_SOC to build ASoC drivers.
>>
>> Signed-off-by: Eric Millbrandt  ---
>> Changes since v1: Patch was "powerpc/52xx: define FSL_SOC" Changed from
>> defining FSL_SOC for PPC_MPC52xx to adding PPC_MPC52xx as a dependency
>> of SND_POWERPC_SOC as per Anatolij Gustschin's comment.
>
> Patches 2 to 7 appear to have gone AWOL?
>
No changes to 2 through 7, so I didn't repost the full series.

Eric



-DISCLAIMER: an automatically appended disclaimer may follow. By posting-
-to a public e-mail mailing list I hereby grant permission to distribute-
-and copy this message.-

This e-mail and the information, including any attachments, it contains are 
intended to be a confidential communication only to the person or entity to 
whom it is addressed and may contain information that is privileged. If the 
reader of this message is not the intended recipient, you are hereby notified 
that any dissemination, distribution or copying of this communication is 
strictly prohibited. If you have received this communication in error, please 
immediately notify the sender and destroy the original message.

Thank you.

Please consider the environment before printing this email.
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


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

2012-09-19 Thread Scott Wood

On 09/19/2012 08:52:27 AM, Kumar Gala wrote:


On Sep 19, 2012, at 8:17 AM,   
 wrote:


> From: Varun Sethi 
>
> Added the following domain attributes required by FSL PAMU driver:
> 1. Subwindows field added to the iommu domain geometry attribute.
> 2. Added new iommu stash attribute, which allows setting of the
>   LIODN specific stash id parameter through IOMMU API.
> 3. Added an attribute for enabling/disabling DMA to a particular
>   memory window.
>
> Signed-off-by: Varun Sethi 
> ---
> include/linux/iommu.h |   30 ++
> 1 files changed, 30 insertions(+), 0 deletions(-)
>
> diff --git a/include/linux/iommu.h b/include/linux/iommu.h
> index 7e83370..eaa40c6 100644
> --- a/include/linux/iommu.h
> +++ b/include/linux/iommu.h
> @@ -44,6 +44,28 @@ struct iommu_domain_geometry {
> 	dma_addr_t aperture_start; /* First address that can be  
mapped*/
> 	dma_addr_t aperture_end;   /* Last address that can be  
mapped */
> 	bool force_aperture;   /* DMA only allowed in mappable  
range? */

> +
> +	/* The subwindows field indicates number of DMA subwindows  
supported

> +   * by the geometry. Following is the interpretation of
> +   * values for this field:
> +   * 0 : This implies that the supported geometry size is 1 MB
> + * with each subwindow size being 4KB. Thus number of  
subwindows

> +   * being = 1MB/4KB = 256.
> +   * 1 : Only one DMA window i.e. no subwindows.
> +	 * value other than 0 or 1 would indicate actual number of  
subwindows.

> +   */
> +  u32 subwindows;
> +};
> +
> +/* This attribute corresponds to IOMMUs capable of generating
> + * a stash transaction. A stash transaction is typically a
> + * hardware initiated prefetch of data from memory to cache.
> + * This attribute allows configuring stashig specific parameters
> + * in the IOMMU hardware.
> + */
> +struct iommu_stash_attribute {
> +  u32 cpu;/* cpu number */
> +  u32 cache;  /* cache to stash to: L1,L2,L3 */

seems like this should be enum instead of u32 for cache

With enum being something like:

enum iommu_attr_stash_cache {
IOMMU_ATTR_CACHE_L1,
IOMMU_ATTR_CACHE_L2,
IOMMU_ATTR_CACHE_L3,
};


Don't we want these structs to be usable via some VFIO ioctl?  In that  
case they need to use fixed size types.


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


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

2012-09-19 Thread Scott Wood

On 09/19/2012 08:49:14 AM, Kumar Gala wrote:


On Sep 19, 2012, at 8:17 AM,   
 wrote:


> From: Varun Sethi 
>
> This patchset provides the Freescale PAMU (Peripheral Access  
Management Unit) driver
> and the corresponding IOMMU API implementation. PAMU is the IOMMU  
present on Freescale
> QorIQ platforms. PAMU can authorize memory access, remap the memory  
address, and remap

> the I/O transaction type.
>
> This set consists of the following patches:
> 1. Addition of new field in the device (powerpc) archdata structure  
for storing iommu domain information
>   pointer. This pointer is stored when the device is attached to a  
particular iommu domain.
> 2. Addition of domain attributes required by the PAMU driver IOMMU  
API.

> 3. PAMU driver and IOMMU API implementation.
>
> Varun Sethi (3):
>  Store iommu domain information pointer in archdata.
>  Add iommu domain attributes required by fsl PAMU driver.
>  FSL PAMU driver and IOMMU API implementation.
>
> arch/powerpc/include/asm/device.h |4 +
> drivers/iommu/Kconfig |7 +
> drivers/iommu/Makefile|1 +
> drivers/iommu/fsl_pamu.c  | 1033  
+

> drivers/iommu/fsl_pamu.h  |  377 ++
> drivers/iommu/fsl_pamu_domain.c   |  990  
+++

> drivers/iommu/fsl_pamu_domain.h   |   94 
> drivers/iommu/fsl_pamu_proto.h|   49 ++
> include/linux/iommu.h |   30 ++
> 9 files changed, 2585 insertions(+), 0 deletions(-)
> create mode 100644 drivers/iommu/fsl_pamu.c
> create mode 100644 drivers/iommu/fsl_pamu.h
> create mode 100644 drivers/iommu/fsl_pamu_domain.c
> create mode 100644 drivers/iommu/fsl_pamu_domain.h
> create mode 100644 drivers/iommu/fsl_pamu_proto.h

I assume that another patch series will add device tree binding spec  
and update device trees for SoCs with PAMU?


The device trees already have PAMU in them.  A binding would be nice,  
though.


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


Re: [PATCH v2 1/7] ASoC: fsl: add PPC_MPC52xx dependency to SND_POWERPC_SOC

2012-09-19 Thread Mark Brown
On Wed, Sep 19, 2012 at 05:07:34PM -0400, Eric Millbrandt wrote:
> On 2012-09-19 Mark Brown wrote:

> > Patches 2 to 7 appear to have gone AWOL?

> No changes to 2 through 7, so I didn't repost the full series.

Then this isn't patch 1/7, it's just a patch.  The fact that you may
have posted some patches earlier isn't relevant and creates confusion
like this.
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev