From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751945AbbINS1R (ORCPT ); Mon, 14 Sep 2015 14:27:17 -0400 Received: from mezzanine.sirena.org.uk ([106.187.55.193]:35622 "EHLO mezzanine.sirena.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751663AbbINS1F (ORCPT ); Mon, 14 Sep 2015 14:27:05 -0400 Date: Mon, 14 Sep 2015 19:26:00 +0100 From: Mark Brown To: Vignesh R Cc: Benoit Cousson , Tony Lindgren , Russell King , David Woodhouse , Brian Norris , hramrach@gmail.com, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-omap@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mtd@lists.infradead.org, linux-spi@vger.kernel.org Message-ID: <20150914182600.GC12027@sirena.org.uk> References: <1441355402-6837-1-git-send-email-vigneshr@ti.com> <1441355402-6837-3-git-send-email-vigneshr@ti.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="hr8bQwfI8oPfWpHR" Content-Disposition: inline In-Reply-To: <1441355402-6837-3-git-send-email-vigneshr@ti.com> X-Cookie: You are fairminded, just and loving. User-Agent: Mutt/1.5.23 (2014-03-12) X-SA-Exim-Connect-IP: 94.175.94.161 X-SA-Exim-Mail-From: broonie@sirena.org.uk Subject: Re: [PATCH 2/5] spi: spi-ti-qspi: add mmap mode read support X-SA-Exim-Version: 4.2.1 (built Mon, 26 Dec 2011 16:24:06 +0000) X-SA-Exim-Scanned: Yes (on mezzanine.sirena.org.uk) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --hr8bQwfI8oPfWpHR Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Fri, Sep 04, 2015 at 01:59:59PM +0530, Vignesh R wrote: > +static int ti_qspi_spi_mtd_mmap_read(struct spi_device *spi, > + loff_t from, size_t len, > + size_t *retlen, u_char *buf, > + u8 read_opcode, u8 addr_width, > + u8 dummy_bytes) > +{ > + struct ti_qspi *qspi = spi_master_get_devdata(spi->master); > + int ret = 0; > + > + spi_bus_lock(qspi->master); I suspect I'm going to see the answer to this in another patch but the fact that we're having to take this lock in a driver when it's an op the core should be calling. > + ret = pm_runtime_get_sync(qspi->dev); > + if (ret < 0) { > + dev_err(qspi->dev, "pm_runtime_get_sync() failed\n"); > + return ret; > + } This would be better outside the lock, there's no need to have the lock before we power on and this fixes the fact that you don't release the lock here. > + memcpy(buf, (__force void *)(qspi->mmap_base + from), len); The fact that you're having to cast here should be a warning that there's someting wrong here. I think you're looking for memcpy_fromio(). > @@ -479,6 +576,7 @@ static int ti_qspi_probe(struct platform_device *pdev) > master->setup = ti_qspi_setup; > master->auto_runtime_pm = true; > master->transfer_one_message = ti_qspi_start_transfer_one; > + master->spi_mtd_mmap_read = ti_qspi_spi_mtd_mmap_read; > master->dev.of_node = pdev->dev.of_node; > master->bits_per_word_mask = SPI_BPW_MASK(32) | SPI_BPW_MASK(16) | > SPI_BPW_MASK(8); Don't we need to map a resource somewhere? --hr8bQwfI8oPfWpHR Content-Type: application/pgp-signature; name="signature.asc" Content-Description: Digital signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQEcBAEBCAAGBQJV9xE3AAoJECTWi3JdVIfQfbIH/jkoRH8R/Fd2x7/W2yvrG7Q2 V/kCmfMV3VnopEYY2NrjsdUNdxqi+vObifrhOytPmF9nRbKWU7m52WQjTSMCoWbQ PdaRXdJN0Jbpx7iEmCjXPefTjekiYJ/Tk6S4N/Scr/GC6ekEuiA8kPos9Y6nNhtc XWsdcPDOhQBLLmD6OHI5OQ+sg2THAbTsHRMjr2KlSq2wR64kaj2zAOTRMx7n2P1z h3NWJF57RuhNIsT+34bg55Y5pS4mr5T7d0gAS/QME0Ej1NvH9Wv/1I1UVqm5qjyL HRDgbrMZpKFukWivMMx2FHriuYZs7rNYPFXI/x++sunI7/5NWxyirdO7RvrzuDc= =gYMN -----END PGP SIGNATURE----- --hr8bQwfI8oPfWpHR--