Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751806AbbHLTAa (ORCPT ); Wed, 12 Aug 2015 15:00:30 -0400 Received: from mail-pd0-f171.google.com ([209.85.192.171]:32791 "EHLO mail-pd0-f171.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751255AbbHLTA3 convert rfc822-to-8bit (ORCPT ); Wed, 12 Aug 2015 15:00:29 -0400 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8BIT To: Eric Anholt , linux-arm-kernel@lists.infradead.org From: Michael Turquette In-Reply-To: <87wpx04c4q.fsf@eliezer.anholt.net> Cc: linux-rpi-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, "Stephen Warren" , "Lee Jones" , linux-clk@vger.kernel.org, "Stephen Boyd" References: <1437420787-32137-1-git-send-email-eric@anholt.net> <1437420787-32137-3-git-send-email-eric@anholt.net> <20150811211733.31346.11122@quantum> <87wpx04c4q.fsf@eliezer.anholt.net> Message-ID: <20150812190014.31346.89987@quantum> User-Agent: alot/0.3.5 Subject: Re: [PATCH v4 2/8] clk: Add a Raspberry Pi-specific clock driver. Date: Wed, 12 Aug 2015 12:00:14 -0700 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1697 Lines: 42 Quoting Eric Anholt (2015-08-12 11:04:05) > Michael Turquette writes: > > > Hi Eric, > > > > Quoting Eric Anholt (2015-07-20 12:33:01) > >> +void __init rpi_firmware_init_clock_provider(struct device_node *node) > >> +{ > >> + /* We delay construction of our struct clks until get time, > >> + * because we need to be able to return -EPROBE_DEFER if the > >> + * firmware driver isn't up yet. clk core doesn't support > >> + * re-probing on -EPROBE_DEFER, but callers of clk_get can. > >> + */ > >> + of_clk_add_provider(node, rpi_firmware_delayed_get_clk, node); > >> +} > >> + > >> +CLK_OF_DECLARE(rpi_firmware_clocks, "raspberrypi,bcm2835-firmware-clocks", > >> + rpi_firmware_init_clock_provider); > > > > Do you require CLK_OF_DECLARE here? Could this be a platform driver > > instead? > > I'm not actually sure. The common pattern seemed to be using > CLK_OF_DECLARE (130 files using it versus declaring a struct > platform_driver), and it seems to avoid a whole lot of boilerplate. > What would the advantage be? Correctly using the Linux driver model, having a nice struct device and things like supsend and resume handlers, etc. There is a lot of CLK_OF_DECLARE going on in drivers/clk, but I am hoping we can fix that. The main reason for CLK_OF_DECLARE is when you need to register clocks very early (e.g. timers). This is often not the case. Regards, Mike -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/