From: Russell King <rmk@arm.linux.org.uk>
To: Kronos <kronos@kronoz.cjb.net>
Cc: linux-fbdev-devel@lists.sourceforge.net,
James Simmons <jsimmons@infradead.org>
Subject: Re: [PATCH] cyber2000fb: New framebuffer_alloc API and class_dev changes
Date: Tue, 16 Sep 2003 15:52:30 +0100 [thread overview]
Message-ID: <20030916155230.B20141@flint.arm.linux.org.uk> (raw)
In-Reply-To: <20030916141713.GA1694@dreamland.darkstar.lan>; from kronos@kronoz.cjb.net on Tue, Sep 16, 2003 at 04:17:13PM +0200
On Tue, Sep 16, 2003 at 04:17:13PM +0200, Kronos wrote:
> Good point. I was thinking at files created by the driver itself, I
> forgot about dev attribute. I can overwrite .owner of dev attribute,
> fbmem can't be built as module. Sounds good?
How about we do the job properly first time around?
- fbmem.c is responsible for managing the lifetime of the fb_info structure,
and the lifetime of the driver-private data is equal to the lifetime
of the fb_info structure.
- framebuffer_alloc() creates the fb_info and the driver-private data
in one object, as per your patch.
- fb_add_class_device creates the class device, as per your patch
(don't you think it'd be a good idea to return the error to the
driver if class_device_register() fails?)
- fb_remove_class_device unregisters the class device, as per your
patch. This should not cause the fb_info structures to be released.
- framebuffer_free() marks the structure available for freeing.
- at some point later, once all references have done, release_fb_info()
is called. This releases the memory space allocated by
framebuffer_alloc(). This callback should _not_ call the driver
code.
So far, this fits fairly nicely. Now on to the driver.
- bus-specific ->probe function
driver calls framebuffer_alloc(), initialises whatever it needs to.
Driver then calls register_fb() which in turn eventually calls
fb_add_class_device().
- bus-specific ->remove function
driver calls unregister_framebuffer() which eventually calls
fb_remove_class_device(). driver releases its resources, shuts down
hardware, and generally cleans up. The very last step that it does
is call framebuffer_free().
I believe there was an issue concerning EDID stuff with the above method.
If this requires data from the fb_info or another structure whose lifetime
is directly connected to fb_info, then there isn't a problem. If it
requires something from the driver module, things get a little more
complicated, and there is a solution to this. I don't see any instances
of this from looking at your fbdev-class_dev-all patch though.
--
Russell King (rmk@arm.linux.org.uk) http://www.arm.linux.org.uk/personal/
Linux kernel maintainer of:
2.6 ARM Linux - http://www.arm.linux.org.uk/
2.6 PCMCIA - http://pcmcia.arm.linux.org.uk/
2.6 Serial core
-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
next prev parent reply other threads:[~2003-09-16 14:52 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-09-15 19:43 [PATCH] cyber2000fb: New framebuffer_alloc API and class_dev changes Kronos
2003-09-15 21:07 ` Russell King
2003-09-15 21:28 ` Kronos
2003-09-15 21:33 ` Russell King
2003-09-15 22:04 ` Kronos
2003-09-15 21:40 ` Russell King
2003-09-15 22:17 ` Kronos
2003-09-15 22:58 ` Russell King
2003-09-16 13:40 ` Kronos
2003-09-16 13:44 ` Russell King
2003-09-16 14:17 ` Kronos
2003-09-16 14:52 ` Russell King [this message]
2003-09-16 15:17 ` Kronos
2003-09-16 15:29 ` Russell King
2003-09-17 19:37 ` James Simmons
2003-09-17 19:41 ` Russell King
2003-09-17 19:58 ` James Simmons
2003-09-17 20:13 ` James Simmons
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20030916155230.B20141@flint.arm.linux.org.uk \
--to=rmk@arm.linux.org.uk \
--cc=jsimmons@infradead.org \
--cc=kronos@kronoz.cjb.net \
--cc=linux-fbdev-devel@lists.sourceforge.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.