Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S942011AbcJYQsm (ORCPT ); Tue, 25 Oct 2016 12:48:42 -0400 Received: from mail-qk0-f173.google.com ([209.85.220.173]:37005 "EHLO mail-qk0-f173.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S941828AbcJYQsk (ORCPT ); Tue, 25 Oct 2016 12:48:40 -0400 MIME-Version: 1.0 In-Reply-To: <331cd8da-f69a-b51a-ddbd-f18ee44cac8a@airwebreathe.org.uk> References: <1477283989-21947-1-git-send-email-joel@airwebreathe.org.uk> <1477283989-21947-2-git-send-email-joel@airwebreathe.org.uk> <20161024222805.GA5754@live.com> <331cd8da-f69a-b51a-ddbd-f18ee44cac8a@airwebreathe.org.uk> From: Moritz Fischer Date: Tue, 25 Oct 2016 09:48:38 -0700 Message-ID: Subject: Re: [v2 2/2] fpga: Add support for Lattice iCE40 FPGAs To: Joel Holdsworth Cc: atull , Ian Campbell , Kumar Gala , Mark Rutland , "pawel.moll@arm.com" , Rob Herring , Devicetree List , Linux Kernel Mailing List Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1217 Lines: 30 Hi Joel, On Mon, Oct 24, 2016 at 9:51 PM, Joel Holdsworth wrote: > I think my set_cs() function is ok-ish. It's copied from spi_set_cs() in > drivers/spi/spi.c . This function is a static internal helper, so I > copy/pasted the function into the ice40 driver. Given that it's only 4-lines > of code, it didn't seem too bad - though I'm not exactly sure why > spi_set_cs() isn't a public API. It seems like quite a common-place thing to > need to do with certain devices. > > However, perhaps the function is internal because the authors of the SPI > framework foresaw how easy it would be to screw up a shared bus with that > function. I had to take care to make sure the SPI bus was locked throughout. > > Do you agree that it's the right thing to copy the function in? Or do you > think it would be better to ask for spi_set_cs to be exposed publicly? I'd poke the SPI maintainers about what their reasoning was to make it non-public, and how they'd go about doing what you're trying to do. I can imagine there might be some SPI controllers where the above doesn't work well, because the controller automatically handles the CS line and you don't get control over it. Cheers, Moritz