From mboxrd@z Thu Jan 1 00:00:00 1970 From: arnd@arndb.de (Arnd Bergmann) Date: Mon, 24 Feb 2014 22:11:58 +0100 Subject: [PATCH 4/4] ARM: keystone: Use dma-ranges for dma_pfn_offset configuration In-Reply-To: <1393275235-1087-5-git-send-email-santosh.shilimkar@ti.com> References: <1393275235-1087-1-git-send-email-santosh.shilimkar@ti.com> <1393275235-1087-5-git-send-email-santosh.shilimkar@ti.com> Message-ID: <5593544.ET3nngKczF@wuerfel> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Monday 24 February 2014 15:53:55 Santosh Shilimkar wrote: > From: Grygorii Strashko > } > > +static unsigned long get_dma_pfn_offset(struct device *dev) > +{ > + struct device_node *node = of_node_get(dev->of_node); > + const u32 *ranges = NULL; > + int len, naddr, nsize, pna; > + dma_addr_t dma_addr; > + phys_addr_t cpu_addr, size; > + unsigned long dma_pfn_offset = 0; > + > + if (!node) > + return 0; Hmm, isn't this function the same as of_translate_dma_address()? I think we should have the implementation in common code, not hidden in the keystone platform, to avoid duplication. If of_translate_dma_address doesn't work, what is the problem, and can you fix it there? > static int keystone_platform_notifier(struct notifier_block *nb, > unsigned long event, void *dev) > { > + struct device *_dev = dev; > + > if (event != BUS_NOTIFY_ADD_DEVICE) > return NOTIFY_DONE; Style: it would be nicer to name the local variable 'dev' and the argument something else like 'p' or 'data'. I also wonder if this shouldn't be in ARM architecture wide code rather than platform code. Unfortunately it can't be in drivers/base since the offset is stored in an ARM specific location. Arnd