From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S964869AbdJRFQ0 (ORCPT ); Wed, 18 Oct 2017 01:16:26 -0400 Received: from regular1.263xmail.com ([211.150.99.135]:53622 "EHLO regular1.263xmail.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752532AbdJRFQY (ORCPT ); Wed, 18 Oct 2017 01:16:24 -0400 X-263anti-spam: KSV:0;BIG:0; X-MAIL-GRAY: 0 X-MAIL-DELIVERY: 1 X-KSVirus-check: 0 X-ADDR-CHECKED4: 1 X-ABS-CHECKED: 1 X-SKE-CHECKED: 1 X-ANTISPAM-LEVEL: 2 X-RL-SENDER: jeffy.chen@rock-chips.com X-FST-TO: broonie@kernel.org X-SENDER-IP: 103.29.142.67 X-LOGIN-NAME: jeffy.chen@rock-chips.com X-UNIQUE-TAG: X-ATTACHMENT-NUM: 0 X-DNS-TYPE: 0 Message-ID: <59E6E3A0.2030105@rock-chips.com> Date: Wed, 18 Oct 2017 13:16:16 +0800 From: jeffy User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:19.0) Gecko/20130126 Thunderbird/19.0 MIME-Version: 1.0 To: Mark Brown , Brian Norris CC: Dmitry Torokhov , Thierry Reding , lkml , =?UTF-8?B?SGVpa28gU3TDvGJuZXI=?= , "Rafael J. Wysocki" , Doug Anderson , tfiga@chromium.org, seanpaul@chromium.org, "linux-pwm@vger.kernel.org" Subject: Re: [RFC PATCH v4 7/8] pwm: Add dummy pwmchip for orphan pwms References: <20171017101624.12506-1-jeffy.chen@rock-chips.com> <20171017101624.12506-8-jeffy.chen@rock-chips.com> <20171017124031.GA27983@ulmo> <20171017170428.GB3408@google.com> <20171017184603.yluoukqq6hj2cgcb@sirena.co.uk> <20171017185259.GA41348@google.com> <20171017190501.wa272jreg26tprfo@sirena.co.uk> In-Reply-To: <20171017190501.wa272jreg26tprfo@sirena.co.uk> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi guys, On 10/18/2017 03:05 AM, Mark Brown wrote: > On Tue, Oct 17, 2017 at 11:53:01AM -0700, Brian Norris wrote: >> On Tue, Oct 17, 2017 at 07:46:03PM +0100, Mark Brown wrote: > >>> I would expect we can get a long way in the DT by doing a pass over the >>> tree and adding links between device nodes in cases where phandle >>> references exist. There is a potential issue with circular links which >>> I'm just going to handwave away right now but I'd expect that to help >>> otherwise. > >> But I didn't think FDTs encoded type info. So you don't really know >> whether a phandle is a phandle -- it's just an int (which happens to >> have a corresponding property in some other node). Are we trusting our >> DT bindings well enough to say that, for example, we know that in any >> given device node, a property like 'pwms' must be a phandle to a PWM >> provider? OK, maybe 'pwms' is a bad example (it's unlikely to get >> reused, and it has a companion '#pwm-cells' property), but grepping the >> DT bindings directory shows a ton of one-off properties that contain >> phandles. > > If we're going with the 90% thing we can probably get a long way with a > whitelist of properties, and we'll be able to take that a lot further > with the validatable schemas if they ever happen. > so it looks like we are going to use device link in common code to fix this issue(and also other dependency issue), then i will drop this patch and the followed rockchip drm device link patch in next version :) also the reason why i try to use dummy chip instead is that: currently we have these devices: rockchip spi device(master) -> cros_ec_spi device(child) -> cros_ec_pwm(spi based pwm) -> pwm_bl i added device link to cros_ec_pwm and pwm_bl, that works well for unbind/bind cros_ec_pwm device case, but there's a warning when i try to unbind cros_ec_spi: static void device_links_purge(struct device *dev) { ... list_for_each_entry_safe_reverse(link, ln, &dev->links.consumers, s_node) { WARN_ON(link->status != DL_STATE_DORMANT && link->status != DL_STATE_NONE); <--- hit warning here! __device_link_del(link); } but i checked again, that could due to the way spi core unregester children devices. maybe it need to call device_release_driver