[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <50918223.6080003@ti.com>
Date: Wed, 31 Oct 2012 20:55:15 +0100
From: Benoit Cousson <b-cousson@...com>
To: Pantelis Antoniou <panto@...oniou-consulting.com>
CC: Tony Lindgren <tony@...mide.com>, <linux-kernel@...r.kernel.org>,
Koen Kooi <koen@...inion.thruhere.net>,
Matt Porter <mporter@...com>, Russ Dill <Russ.Dill@...com>,
<linux-omap@...r.kernel.org>, Kevin Hilman <khilman@...com>,
Paul Walmsley <paul@...an.com>
Subject: Re: [PATCH 0/3] capebus moving omap_devices to mach-omap2
Hi Panto,
On 10/31/2012 07:09 PM, Tony Lindgren wrote:
> * Pantelis Antoniou <panto@...oniou-consulting.com> [121031 11:05]:
>> Hi Tony,
>>
>> On Oct 31, 2012, at 7:52 PM, Tony Lindgren wrote:
>>
>>> * Pantelis Antoniou <panto@...oniou-consulting.com> [121031 10:26]:
>>>> It is painless to move the adapter DT devices to arch/arm/mach-omap2
>>>>
>>>> However I got bit by the __init at omap_build_device family functions.
>>>> If you don't remove it, crashes every time you instantiate a device
>>>> at runtime, or you load the cape driver as a module.
>>>
>>> Hmm I think you misunderstood me. You only need to create the
>>> platform_device under arch/arm/mach-omap2. The device creation
>>> happens only at __init, so omap_build_device can stay as __init.
>>> The driver itself should be under drivers.
>>>
>>> But is this bus on non-device-tree omaps? If not, just make it
>>> device tree only.
>>>
>>
>> I'm afraid that's not the case. The whole notion of capebus is that
>> instantiation of the devices doesn't just happen early at the boot
>> sequence.
>>
>> It is perfectly valid for a cape to be instantiated via loading
>> a module, or by making an override by writing a sysfs file.
>>
>> When having the __init there, the function has been long removed
>> and you get a crash by calling into the weeds.
>>
>> So the sequence is:
>>
>> <early boot> Register the adapter driver.
>
> OK this is always there for the hardware, and done during
> the __init and this one should have an omap_device..
>
>> <user> insmod bone-geiger-cape
>> <cape-is-matched> call omap_build_device
>>
>> Please look into the capebus patches for the details.
>
> ..but it seems that the devices connected to capebus should
> not have anything to do with omap_device and hwmod?
Yeah, I do agree. I'm confused as well. Only OMAP IPs under PRCM control
could have an hwmod and thus must be handled by an omap_device.
Any devices that is created later cannot be omap_device. The DT core
will create regular platform_device for them.
Since cape is an external board, it should have nothing to do with
omap_device.
Looking at your patch:
da8xx-dt: Create da8xx DT adapter device
I understand why you do that, but in fact that patch does not make sense
to me :-(
Why do you have to create an omap_device from the driver probe?
Regards,
Benoit
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists