On Sun, 2010-12-26 at 09:02 -0800, Arjan van de Ven wrote: 
> On 12/25/2010 6:02 PM, Giuseppe Dia wrote:
> > Hi all,
> > I'm trying to make the Omnibook driver
> > (http://sourceforge.net/apps/mediawiki/omnibook/index.php?title=Main_Page
> > last version from git) more Meego 1.1 netbook friendly. Compiling and
> > installing is flawless, and it works (hot keys, blue tooth works on my
> > Toshiba nb200) but the original driver doesn't have the MODULE_ALIAS
> > macro defined, so it's not loaded at boot.
> > As far as I know (correct me if I'm wrong), there's no /etc/modules or
> > other explicit way to load a module at boot in meego and I understand
> > that module loading in meego should be done just by enumeration by
> > kernel only.
> >
> > So I added the MODULE_ALIAS macro (now modprobe
> > usb:v0930pxxxxxxxxxxxxxxxxxxxxxx works) and the file 'omnibook' in
> > modprobe.d with the relevant module options inside (option ectype=12
> > works for me), but the module isn't loaded during enumeration at boot.
> > Now the involved hardware doesn't show anywhere, (so the system has no
> > alias to match to) until the driver itself is loaded.
> > To summarize:
> > -) hardware won't show until driver is loaded, so no alias during
> > enumeration
> > -) I did a little test adding an alias directive with the a
> > usb:v0930pxxxxxxxxxxxxxxxxxxxxxxX entry in dists.conf (I know, it's not
> > supposed to be modified) but it won't load the module anyway.
> > I know I miss something, but seems to me the classic egg-chicken
> > problem. Maybe this is the reason why it was left outside the meego
> > kernel?
> > Besides this, being a 'group of drivers' rather than a driver for a
> > single device, choosing the module_aliases correctly is a task on
> > itself.
> > Thanks for your advice,
> 
> if it's machine specific you can always use the DMI entries to match the 
> specific machine
> this is done by for example the thinkpad fan drivers, and a series of 
> others....
> 
> they do it like this:
> 
> 
> /*
>   * DMI matching for module autoloading
>   *
>   * See http://thinkwiki.org/wiki/List_of_DMI_IDs
>   * See http://thinkwiki.org/wiki/BIOS_Upgrade_Downloads
>   *
>   * Only models listed in thinkwiki will be supported, so add yours
>   * if it is not there yet.
>   */
> #define IBM_BIOS_MODULE_ALIAS(__type) \
>          MODULE_ALIAS("dmi:bvnIBM:bvr" __type "ET??WW*")
> 
> /* Ancient thinkpad BIOSes have to be identified by
>   * BIOS type or model number, and there are far less
>   * BIOS types than model numbers... */
> IBM_BIOS_MODULE_ALIAS("I[MU]");         /* 570, 570e */
> 
> 
> 
Hi,
after a bit of testing I have a working patch of Omnibook drivers for
Toshiba NB200 module autoloading, addressing bug 318.
https://bugs.meego.com/show_bug.cgi?id=318
It works on Meego 1.1 and I'm currently testing it on 1.2 (no problems
so far).
Please note that I already submitted the patch to Omnibook developers
months ago:
http://sourceforge.net/tracker/?func=detail&aid=3146110&group_id=174260&atid=868544
Do you think it could be interesting to include it? 
Regards,

Giuseppe Dia





>From f4cb5859f129ded2fc30f43562f5080c3c6ec353 Mon Sep 17 00:00:00 2001
From: Giuseppe Dia <[email protected]>
Date: Mon, 27 Dec 2010 12:32:56 +0100
Subject: [PATCH] Toshiba NB 200 MODULE_ALIAS and Dmi table lookup

---
 init.c   |    1 +
 laptop.h |    9 +++++++++
 2 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/init.c b/init.c
index c5278fe..d337c83 100644
--- a/init.c
+++ b/init.c
@@ -531,5 +531,6 @@ module_param_call(ectype, set_ectype_param,
get_ectype_param, NULL, S_IRUGO);
 module_param_named(userset, omnibook_userset, int, S_IRUGO);
 MODULE_PARM_DESC(ectype, "Type of embedded controller firmware");
 MODULE_PARM_DESC(userset, "Use 0 to disable, 1 to enable users to set
parameters");
+MODULE_ALIAS("dmi:*:svnTOSHIBA:pnTOSHIBANB200:*:rnKAVAA:*");
 
 /* End of file */
diff --git a/laptop.h b/laptop.h
index dd0a198..3fe4682 100644
--- a/laptop.h
+++ b/laptop.h
@@ -610,6 +610,15 @@ static struct  dmi_system_id omnibook_ids[]
__initdata = {
         },
        {
                 .callback = dmi_matched,
+                .ident = "Toshiba NB200",
+                .matches = {
+                        DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+                        DMI_MATCH(DMI_PRODUCT_NAME, "TOSHIBA NB200"),
+                },
+                .driver_data = (void*) TSM70
+        },
+       {
+                .callback = dmi_matched,
                 .ident = "Toshiba Satellite A80",
                 .matches = {
                         DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
-- 
1.7.2.2




_______________________________________________
MeeGo-kernel mailing list
[email protected]
http://lists.meego.com/listinfo/meego-kernel

Reply via email to