#ifndef __FSL_PAMU_STASH_H
 #define __FSL_PAMU_STASH_H
 
+struct iommu_domain;
+
 /* cache stash targets */
 enum pamu_stash_target {
        PAMU_ATTR_CACHE_L1 = 1,
        PAMU_ATTR_CACHE_L3,
 };
 
-/*
- * This attribute allows configuring stashig specific parameters
- * in the PAMU hardware.
- */
-
-struct pamu_stash_attribute {
-       u32     cpu;    /* cpu number */
-       u32     cache;  /* cache to stash to: L1,L2,L3 */
-};
+int fsl_pamu_configure_l1_stash(struct iommu_domain *domain, u32 cpu);
 
 #endif  /* __FSL_PAMU_STASH_H */
 
 }
 
 /* Set the domain stash attribute */
-static int configure_domain_stash(struct fsl_dma_domain *dma_domain, void *data)
+int fsl_pamu_configure_l1_stash(struct iommu_domain *domain, u32 cpu)
 {
-       struct pamu_stash_attribute *stash_attr = data;
+       struct fsl_dma_domain *dma_domain = to_fsl_dma_domain(domain);
        unsigned long flags;
        int ret;
 
        spin_lock_irqsave(&dma_domain->domain_lock, flags);
-
-       memcpy(&dma_domain->dma_stash, stash_attr,
-              sizeof(struct pamu_stash_attribute));
-
-       dma_domain->stash_id = get_stash_id(stash_attr->cache,
-                                           stash_attr->cpu);
+       dma_domain->stash_id = get_stash_id(PAMU_ATTR_CACHE_L1, cpu);
        if (dma_domain->stash_id == ~(u32)0) {
                pr_debug("Invalid stash attributes\n");
                spin_unlock_irqrestore(&dma_domain->domain_lock, flags);
                return -EINVAL;
        }
-
        ret = update_domain_stash(dma_domain, dma_domain->stash_id);
-
        spin_unlock_irqrestore(&dma_domain->domain_lock, flags);
 
        return ret;
        int ret = 0;
 
        switch (attr_type) {
-       case DOMAIN_ATTR_FSL_PAMU_STASH:
-               ret = configure_domain_stash(dma_domain, data);
-               break;
        case DOMAIN_ATTR_FSL_PAMU_ENABLE:
                ret = configure_domain_dma_state(dma_domain, *(int *)data);
                break;
 
         *
         */
        int                             enabled;
-       /* stash_id obtained from the stash attribute details */
        u32                             stash_id;
-       struct pamu_stash_attribute     dma_stash;
        u32                             snoop_id;
        struct iommu_domain             iommu_domain;
        spinlock_t                      domain_lock;
 
 #ifdef CONFIG_FSL_PAMU
        struct device *dev = pcfg->dev;
        int window_count = 1;
-       struct pamu_stash_attribute stash_attr;
        int ret;
 
        pcfg->iommu_domain = iommu_domain_alloc(&platform_bus_type);
                dev_err(dev, "%s(): iommu_domain_alloc() failed", __func__);
                goto no_iommu;
        }
-       stash_attr.cpu = cpu;
-       stash_attr.cache = PAMU_ATTR_CACHE_L1;
-       ret = iommu_domain_set_attr(pcfg->iommu_domain,
-                                   DOMAIN_ATTR_FSL_PAMU_STASH,
-                                   &stash_attr);
+       ret = fsl_pamu_configure_l1_stash(pcfg->iommu_domain, cpu);
        if (ret < 0) {
-               dev_err(dev, "%s(): iommu_domain_set_attr() = %d",
+               dev_err(dev, "%s(): fsl_pamu_configure_l1_stash() = %d",
                        __func__, ret);
                goto out_domain_free;
        }
                                                        unsigned int cpu)
 {
 #ifdef CONFIG_FSL_PAMU /* TODO */
-       struct pamu_stash_attribute stash_attr;
-       int ret;
-
        if (pcfg->iommu_domain) {
-               stash_attr.cpu = cpu;
-               stash_attr.cache = PAMU_ATTR_CACHE_L1;
-               ret = iommu_domain_set_attr(pcfg->iommu_domain,
-                               DOMAIN_ATTR_FSL_PAMU_STASH, &stash_attr);
-               if (ret < 0) {
+               if (fsl_pamu_configure_l1_stash(pcfg->iommu_domain, cpu) < 0) {
                        dev_err(pcfg->dev,
                                "Failed to update pamu stash setting\n");
                        return;
 
 enum iommu_attr {
        DOMAIN_ATTR_GEOMETRY,
        DOMAIN_ATTR_PAGING,
-       DOMAIN_ATTR_FSL_PAMU_STASH,
        DOMAIN_ATTR_FSL_PAMU_ENABLE,
        DOMAIN_ATTR_NESTING,    /* two stages of translation */
        DOMAIN_ATTR_DMA_USE_FLUSH_QUEUE,