Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752345AbbELClr (ORCPT ); Mon, 11 May 2015 22:41:47 -0400 Received: from avon.wwwdotorg.org ([70.85.31.133]:48863 "EHLO avon.wwwdotorg.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751655AbbELClp (ORCPT ); Mon, 11 May 2015 22:41:45 -0400 Message-ID: <55516867.3020203@wwwdotorg.org> Date: Mon, 11 May 2015 20:41:43 -0600 From: Stephen Warren User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0 MIME-Version: 1.0 To: Eric Anholt CC: Alexander Stein , linux-rpi-kernel@lists.infradead.org, =?UTF-8?B?Tm9yYWxmIFRyw7hubmVz?= , linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, Jassi Brar , linux-kernel@vger.kernel.org Subject: Re: [PATCH 2/3 v8] mailbox: Enable BCM2835 mailbox support References: <1430857666-18877-1-git-send-email-eric@anholt.net> <554BA0B7.8040600@tronnes.org> <87mw1grwnn.fsf@eliezer.anholt.net> <2464203.68HkYCAlx7@kongar> <87a8xenagd.fsf@eliezer.anholt.net> In-Reply-To: <87a8xenagd.fsf@eliezer.anholt.net> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2542 Lines: 55 On 05/08/2015 01:19 PM, Eric Anholt wrote: > Alexander Stein writes: > >> On Thursday 07 May 2015, 12:54:20 wrote Eric Anholt: >>> Noralf Trønnes writes: >>> >>>> Den 05.05.2015 22:27, skrev Eric Anholt: >>>>> From: Lubomir Rintel >>>>> >>>>> This mailbox driver provides a single mailbox channel to >>>>> write 32-bit values to the VPU and get a 32-bit response. >>>>> The Raspberry Pi firmware uses this mailbox channel to >>>>> implement firmware calls, while Roku 2 (despite being >>>>> derived from the same firmware tree) doesn't. >>>>> >>>>> The driver was originally submitted by Lubomir, based on >>>>> the out-of-tree 2708 mailbox driver. Eric Anholt fixed it >>>>> up for upstreaming, with the major functional change being >>>>> that it now has no notion of multiple channels (since that >>>>> is a firmware-dependent concept) and instead the >>>>> raspberrypi-firmware driver will do that bit-twiddling in >>>>> its own messages. >>>> ... >>>>> +static struct platform_driver bcm2835_mbox_driver = { + >>>>> .driver = { + .name = "bcm2835-mbox", + .owner = >>>>> THIS_MODULE, + .of_match_table = bcm2835_mbox_of_match, + >>>>> }, + .probe = bcm2835_mbox_probe, + .remove = >>>>> bcm2835_mbox_remove, +}; >>>>> +module_platform_driver(bcm2835_mbox_driver); >>>> >>>> I have tested this driver and the firmware driver booting >>>> directly from the VideoCore bootloader (no uboot). The >>>> mailbox driver loads too late to turn on USB power: >>> >>> Yeah, I have a patch on my branches that returns -EPROBE_DEFER >>> when trying to get a power domain and not finding the provider. >>> It was rejected by the maintainers in favor of a proposed >>> solution whose description I didn't quite follow. >> >> Do you have a link for this thread? > > https://lkml.org/lkml/2015/3/11/483 That's really odd; -EPROBE_DEFER was clearly invented exactly to handle dependencies just like this. Playing with initcall levels simply isn't scalable, and in the main people are actively working not to use them for dependencies like this; they're far too implicit. While the timeout mentioned earlier in the thread might work (I didn't really look at the details), again it's far too indirect/accidental to be a good solution. -- 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/