From: Jonathan Woithe on 5 Jul 2010 03:20 Is there no possibility of some other matching function existing after ours in the tree which might need to also be called? If so, this change would prevent that. Regards jonathan > dmi_check_system() walks the table running matching functions until someone > returns non zero or we hit the end. > > This patch makes dmi_check_cb to return 1 so dmi_check_system() return > immediately when a match is found. > > Signed-off-by: Axel Lin <axel.lin(a)gmail.com> > --- > drivers/platform/x86/compal-laptop.c | 2 +- > drivers/platform/x86/fujitsu-laptop.c | 6 +++--- > drivers/platform/x86/msi-laptop.c | 2 +- > 3 files changed, 5 insertions(+), 5 deletions(-) > > diff --git a/drivers/platform/x86/compal-laptop.c b/drivers/platform/x86/compal-laptop.c > index 71ff154..dc31a08 100644 > --- a/drivers/platform/x86/compal-laptop.c > +++ b/drivers/platform/x86/compal-laptop.c > @@ -190,7 +190,7 @@ static int dmi_check_cb(const struct dmi_system_id *id) > printk(KERN_INFO "compal-laptop: Identified laptop model '%s'.\n", > id->ident); > > - return 0; > + return 1; > } > > static struct dmi_system_id __initdata compal_dmi_table[] = { > diff --git a/drivers/platform/x86/fujitsu-laptop.c b/drivers/platform/x86/fujitsu-laptop.c > index dab1a0e..1859d7f 100644 > --- a/drivers/platform/x86/fujitsu-laptop.c > +++ b/drivers/platform/x86/fujitsu-laptop.c > @@ -603,7 +603,7 @@ static int dmi_check_cb_s6410(const struct dmi_system_id *id) > dmi_check_cb_common(id); > fujitsu->keycode1 = KEY_SCREENLOCK; /* "Lock" */ > fujitsu->keycode2 = KEY_HELP; /* "Mobility Center" */ > - return 0; > + return 1; > } > > static int dmi_check_cb_s6420(const struct dmi_system_id *id) > @@ -611,7 +611,7 @@ static int dmi_check_cb_s6420(const struct dmi_system_id *id) > dmi_check_cb_common(id); > fujitsu->keycode1 = KEY_SCREENLOCK; /* "Lock" */ > fujitsu->keycode2 = KEY_HELP; /* "Mobility Center" */ > - return 0; > + return 1; > } > > static int dmi_check_cb_p8010(const struct dmi_system_id *id) > @@ -620,7 +620,7 @@ static int dmi_check_cb_p8010(const struct dmi_system_id *id) > fujitsu->keycode1 = KEY_HELP; /* "Support" */ > fujitsu->keycode3 = KEY_SWITCHVIDEOMODE; /* "Presentation" */ > fujitsu->keycode4 = KEY_WWW; /* "Internet" */ > - return 0; > + return 1; > } > > static struct dmi_system_id fujitsu_dmi_table[] = { > diff --git a/drivers/platform/x86/msi-laptop.c b/drivers/platform/x86/msi-laptop.c > index afd762b..c67a74c 100644 > --- a/drivers/platform/x86/msi-laptop.c > +++ b/drivers/platform/x86/msi-laptop.c > @@ -434,7 +434,7 @@ static int dmi_check_cb(const struct dmi_system_id *id) > { > printk(KERN_INFO "msi-laptop: Identified laptop model '%s'.\n", > id->ident); > - return 0; > + return 1; > } > > static struct dmi_system_id __initdata msi_dmi_table[] = { > -- > 1.5.4.3 > > > -- * Jonathan Woithe jwoithe(a)physics.adelaide.edu.au * * http://www.physics.adelaide.edu.au/~jwoithe * ***-----------------------------------------------------------------------*** ** "Time is an illusion; lunchtime doubly so" ** * "...you wouldn't recognize a subtle plan if it painted itself purple and * * danced naked on a harpsichord singing 'subtle plans are here again'" * -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
From: Jonathan Woithe on 6 Jul 2010 00:30 Hi Axel > 2010/7/5 Jonathan Woithe <jwoithe(a)physics.adelaide.edu.au>: > > Is there no possibility of some other matching function existing after ours > > in the tree which might need to also be called? If so, this change would > > prevent that. > > I checked the implementation of dmi_check_system() and the useage cases in > compal-laptop/fujitsu-laptop/msi-laptop, it should be no problem with > this change. > > In compal-laptop and msi-laptop, we call dmi_check_system() to > identify the laptop model. > (The callback simply print the identified laptop model) > It should have zero or exactly one successful match. > > In fujitsu-laptop, we call dmi_check_system() to identify the laptop > model and set parameters accordingly. > The callback print the identified laptop model and set parameters > (use_alt_lcd_levels / fujitsu->keycode[1|2|3|4|5] ). > It should have zero or exactly one successful match. Yes, that seems to be the situation. If that is the case then I'm happy with the fujitsu-laptop component of this patch (I can't speak for the maintainers of the other drivers touched by this patch). Acked-by: Jonathan Woithe <jwoithe(a)physics.adelaide.edu.au> Regards jonathan > dmi_check_system() walks the table running matching functions until someone > returns non zero or we hit the end. > > This patch makes dmi_check_cb to return 1 so dmi_check_system() return > immediately when a match is found. > > Signed-off-by: Axel Lin <axel.lin(a)gmail.com> > --- > drivers/platform/x86/compal-laptop.c | 2 +- > drivers/platform/x86/fujitsu-laptop.c | 6 +++--- > drivers/platform/x86/msi-laptop.c | 2 +- > 3 files changed, 5 insertions(+), 5 deletions(-) > > diff --git a/drivers/platform/x86/compal-laptop.c b/drivers/platform/x86/compal-laptop.c > index 71ff154..dc31a08 100644 > --- a/drivers/platform/x86/compal-laptop.c > +++ b/drivers/platform/x86/compal-laptop.c > @@ -190,7 +190,7 @@ static int dmi_check_cb(const struct dmi_system_id *id) > printk(KERN_INFO "compal-laptop: Identified laptop model '%s'.\n", > id->ident); > > - return 0; > + return 1; > } > > static struct dmi_system_id __initdata compal_dmi_table[] = { > diff --git a/drivers/platform/x86/fujitsu-laptop.c b/drivers/platform/x86/fujitsu-laptop.c > index dab1a0e..1859d7f 100644 > --- a/drivers/platform/x86/fujitsu-laptop.c > +++ b/drivers/platform/x86/fujitsu-laptop.c > @@ -603,7 +603,7 @@ static int dmi_check_cb_s6410(const struct dmi_system_id *id) > dmi_check_cb_common(id); > fujitsu->keycode1 = KEY_SCREENLOCK; /* "Lock" */ > fujitsu->keycode2 = KEY_HELP; /* "Mobility Center" */ > - return 0; > + return 1; > } > > static int dmi_check_cb_s6420(const struct dmi_system_id *id) > @@ -611,7 +611,7 @@ static int dmi_check_cb_s6420(const struct dmi_system_id *id) > dmi_check_cb_common(id); > fujitsu->keycode1 = KEY_SCREENLOCK; /* "Lock" */ > fujitsu->keycode2 = KEY_HELP; /* "Mobility Center" */ > - return 0; > + return 1; > } > > static int dmi_check_cb_p8010(const struct dmi_system_id *id) > @@ -620,7 +620,7 @@ static int dmi_check_cb_p8010(const struct dmi_system_id *id) > fujitsu->keycode1 = KEY_HELP; /* "Support" */ > fujitsu->keycode3 = KEY_SWITCHVIDEOMODE; /* "Presentation" */ > fujitsu->keycode4 = KEY_WWW; /* "Internet" */ > - return 0; > + return 1; > } > > static struct dmi_system_id fujitsu_dmi_table[] = { > diff --git a/drivers/platform/x86/msi-laptop.c b/drivers/platform/x86/msi-laptop.c > index afd762b..c67a74c 100644 > --- a/drivers/platform/x86/msi-laptop.c > +++ b/drivers/platform/x86/msi-laptop.c > @@ -434,7 +434,7 @@ static int dmi_check_cb(const struct dmi_system_id *id) > { > printk(KERN_INFO "msi-laptop: Identified laptop model '%s'.\n", > id->ident); > - return 0; > + return 1; > } > > static struct dmi_system_id __initdata msi_dmi_table[] = { > -- > 1.5.4.3 > > > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|
Pages: 1 Prev: hwmon: sysfs API updates Next: Removing dead PROCESSOR_NS9750 |