From mboxrd@z Thu Jan 1 00:00:00 1970 From: Grant Likely Subject: Re: [PATCH 1/2] powerpc: add platform registration for ALSA SoC drivers Date: Wed, 28 Apr 2010 10:47:37 -0600 Message-ID: References: <1272314980-23679-1-git-send-email-timur@freescale.com> <1272350168.24542.6.camel@pasglop> <1272355624.3204.52.camel@odin> <4BD74D0C.40303@freescale.com> Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Return-path: Received: from mail-gy0-f179.google.com (mail-gy0-f179.google.com [209.85.160.179]) by alsa0.perex.cz (Postfix) with ESMTP id E3E8D244A1 for ; Wed, 28 Apr 2010 18:47:59 +0200 (CEST) Received: by gyd10 with SMTP id 10so6897717gyd.38 for ; Wed, 28 Apr 2010 09:47:57 -0700 (PDT) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: alsa-devel-bounces@alsa-project.org Errors-To: alsa-devel-bounces@alsa-project.org To: Timur Tabi Cc: alsa-devel@alsa-project.org, Benjamin Herrenschmidt , kumar.gala@freescale.com, broonie@opensource.wolfsonmicro.com, linuxppc-dev@ozlabs.org, Liam Girdwood List-Id: alsa-devel@alsa-project.org On Wed, Apr 28, 2010 at 10:20 AM, Timur Tabi wrote: > On Wed, Apr 28, 2010 at 8:57 AM, Grant Likely = wrote: > >> I'm just saying move the registration of the machine device out of >> arch/powerpc platform code and into the ssi driver. > > But the SSI driver is an OF driver, and it gets probed for every SSI > node in the device tree. =A0On the 8610, that means being probed twice. > But I should only call platform_device_register_simple() once. Didn't you just finish saying that you cannot see any situation where you would want the SSI devices linked into a single audio device? So then if both SSIs are being used for audio, then do you not need a machine driver for each ssi? > Are you saying that I should call platform_device_register_simple() > from the SSI's driver initialization function, fsl_ssi_init()? No, I'm saying call it from the probe hook. However, you should probably do a two stage platform_device_alloc() / platform_device_add() so you can add data (node pointer) to the platform device before it gets probed by the machine driver. >> Then you've got a >> reasonable place to pass shared data (either the ssi device node or >> device instance or name. =A0Whatever you need) to the machine driver. > > The problem is that the fabric driver needs much more information from > the device tree than the SSI driver needs. =A0So if the SSI driver is > going to pass that information to the fabric driver via the platform > data, it's going to have to know what information the fabric driver > needs. =A0Then the SSI driver is not board-independent. I'm not talking about platform_data or about the ssi driver decoding things that the machine driver needs. I'm talking about giving the machine driver a pointer to the ssi device tree node so you don't need to go through weird gymnastics to find the correct node again. g.