Hi Graeme,
Are you saying :
static struct platform_driver sbsa_gwdt_driver = { .driver = { .name = "sbsa-gwdt", .pm = &sbsa_gwdt_pm_ops, .of_match_table = sbsa_gwdt_of_match, }, .probe = sbsa_gwdt_probe, .remove = sbsa_gwdt_remove, .shutdown = sbsa_gwdt_shutdown, };
.name = "sbsa-gwdt", ???
I am not sure if that can do the auto-insmod part, maybe I miss some knowledge of platform_driver , But AFAIK, the platform mechanism uses that name to match the driver and device, ONCE the driver or device is registered into system. that means when the driver is insmod'ed , then the "name" will take effect.
But MODULE_DEVICE_TABLE creates an alias string in the .ok so depmod can find device table.
please correct me , If I misunderstand this part .
On 18 May 2015 at 17:11, Hanjun Guo hanjun.guo@linaro.org wrote:
On 2015年05月18日 17:05, G Gregory wrote:
Shouldn't the standard platform_device matching kick in?
It should match the driver to the name!
Hmm, I missed this part, I'm not familiar with the mechanism, Fuwei, could you please try this direction?
Graeme
On 18 May 2015 at 10:04, Hanjun Guo hanjun.guo@linaro.org wrote:
On 2015年05月18日 16:48, Fu Wei wrote:
Hi Suravee,
Hanjun and me have figured out the problem of auto-insmod SBSA watchdog module, when boot with ACPI:
For now , we can not insmod SBSA watchdog driver automatically, because :
For booting with dtb , in the driver module, we already have :
static const struct of_device_id sbsa_gwdt_of_match[] = { { .compatible = "arm,sbsa-gwdt", }, {}, }; MODULE_DEVICE_TABLE(of, sbsa_gwdt_of_match);
For booting with acpi , we should have sometime like :
static const struct acpi_device_id sbsa_gwdt_ids[] __used = { {ACPI_GTDT_SBSA_GWDT_HID, 0}, {"", 0} }; MODULE_DEVICE_TABLE(acpi, sbsa_gwdt_ids);
Unfortunately, for now , in ACPI spec, it seems we don't have ACPI_GTDT_SBSA_GWDT_HID, and in Linux kernel, there is not a mechanism to register the Wakeup-timer and Watchdog in GTDT with ACPI_GTDT_*_HID.
Maybe, ACPI team of LEG can discuss about that and rise a request of adding ACPI_GTDT_*_HID to ACPI spec for GTDT table
@Hanjun, Al Please correct me if I misunderstand something :-) Great thanks!
You are right, more specifically, there is no mechanism to auto match/register modules for ACPI static tables (MADT/gtdt..), I think we can post a question on ACPI maillist to see if any good inputs.
Thanks Hanjun
struct platform_device_id sbsa_gwdt_id { {"sbsa-gwdt", }, };
MODULE_DEVICE_TABLE(platform, sbsa_gwdt_id);
or something like that from memory.
Graeme
On 18 May 2015 at 11:11, Fu Wei fu.wei@linaro.org wrote:
Hi Graeme,
Are you saying :
static struct platform_driver sbsa_gwdt_driver = { .driver = { .name = "sbsa-gwdt", .pm = &sbsa_gwdt_pm_ops, .of_match_table = sbsa_gwdt_of_match, }, .probe = sbsa_gwdt_probe, .remove = sbsa_gwdt_remove, .shutdown = sbsa_gwdt_shutdown, };
.name = "sbsa-gwdt", ???
I am not sure if that can do the auto-insmod part, maybe I miss some knowledge of platform_driver , But AFAIK, the platform mechanism uses that name to match the driver and device, ONCE the driver or device is registered into system. that means when the driver is insmod'ed , then the "name" will take effect.
But MODULE_DEVICE_TABLE creates an alias string in the .ok so depmod can find device table.
please correct me , If I misunderstand this part .
On 18 May 2015 at 17:11, Hanjun Guo hanjun.guo@linaro.org wrote:
On 2015年05月18日 17:05, G Gregory wrote:
Shouldn't the standard platform_device matching kick in?
It should match the driver to the name!
Hmm, I missed this part, I'm not familiar with the mechanism, Fuwei, could you please try this direction?
Graeme
On 18 May 2015 at 10:04, Hanjun Guo hanjun.guo@linaro.org wrote:
On 2015年05月18日 16:48, Fu Wei wrote:
Hi Suravee,
Hanjun and me have figured out the problem of auto-insmod SBSA watchdog module, when boot with ACPI:
For now , we can not insmod SBSA watchdog driver automatically, because :
For booting with dtb , in the driver module, we already have :
static const struct of_device_id sbsa_gwdt_of_match[] = { { .compatible = "arm,sbsa-gwdt", }, {}, }; MODULE_DEVICE_TABLE(of, sbsa_gwdt_of_match);
For booting with acpi , we should have sometime like :
static const struct acpi_device_id sbsa_gwdt_ids[] __used = { {ACPI_GTDT_SBSA_GWDT_HID, 0}, {"", 0} }; MODULE_DEVICE_TABLE(acpi, sbsa_gwdt_ids);
Unfortunately, for now , in ACPI spec, it seems we don't have ACPI_GTDT_SBSA_GWDT_HID, and in Linux kernel, there is not a mechanism to register the Wakeup-timer and Watchdog in GTDT with ACPI_GTDT_*_HID.
Maybe, ACPI team of LEG can discuss about that and rise a request of adding ACPI_GTDT_*_HID to ACPI spec for GTDT table
@Hanjun, Al Please correct me if I misunderstand something :-) Great thanks!
You are right, more specifically, there is no mechanism to auto match/register modules for ACPI static tables (MADT/gtdt..), I think we can post a question on ACPI maillist to see if any good inputs.
Thanks Hanjun
-- Best regards,
Fu Wei Software Engineer Red Hat Software (Beijing) Co.,Ltd.Shanghai Branch Ph: +86 21 61221326(direct) Ph: +86 186 2020 4684 (mobile) Room 1512, Regus One Corporate Avenue,Level 15, One Corporate Avenue,222 Hubin Road,Huangpu District, Shanghai,China 200021
Hi Graeme,
Ah, that is the part I missed. Great thanks!
@Suravee, Could you have a try on Seattle?
On 18 May 2015 at 18:26, G Gregory graeme.gregory@linaro.org wrote:
struct platform_device_id sbsa_gwdt_id { {"sbsa-gwdt", }, };
MODULE_DEVICE_TABLE(platform, sbsa_gwdt_id);
or something like that from memory.
Graeme
On 18 May 2015 at 11:11, Fu Wei fu.wei@linaro.org wrote:
Hi Graeme,
Are you saying :
static struct platform_driver sbsa_gwdt_driver = { .driver = { .name = "sbsa-gwdt", .pm = &sbsa_gwdt_pm_ops, .of_match_table = sbsa_gwdt_of_match, }, .probe = sbsa_gwdt_probe, .remove = sbsa_gwdt_remove, .shutdown = sbsa_gwdt_shutdown, };
.name = "sbsa-gwdt", ???
I am not sure if that can do the auto-insmod part, maybe I miss some knowledge of platform_driver , But AFAIK, the platform mechanism uses that name to match the driver and device, ONCE the driver or device is registered into system. that means when the driver is insmod'ed , then the "name" will take effect.
But MODULE_DEVICE_TABLE creates an alias string in the .ok so depmod can find device table.
please correct me , If I misunderstand this part .
On 18 May 2015 at 17:11, Hanjun Guo hanjun.guo@linaro.org wrote:
On 2015年05月18日 17:05, G Gregory wrote:
Shouldn't the standard platform_device matching kick in?
It should match the driver to the name!
Hmm, I missed this part, I'm not familiar with the mechanism, Fuwei, could you please try this direction?
Graeme
On 18 May 2015 at 10:04, Hanjun Guo hanjun.guo@linaro.org wrote:
On 2015年05月18日 16:48, Fu Wei wrote:
Hi Suravee,
Hanjun and me have figured out the problem of auto-insmod SBSA watchdog module, when boot with ACPI:
For now , we can not insmod SBSA watchdog driver automatically, because :
For booting with dtb , in the driver module, we already have :
static const struct of_device_id sbsa_gwdt_of_match[] = { { .compatible = "arm,sbsa-gwdt", }, {}, }; MODULE_DEVICE_TABLE(of, sbsa_gwdt_of_match);
For booting with acpi , we should have sometime like :
static const struct acpi_device_id sbsa_gwdt_ids[] __used = { {ACPI_GTDT_SBSA_GWDT_HID, 0}, {"", 0} }; MODULE_DEVICE_TABLE(acpi, sbsa_gwdt_ids);
Unfortunately, for now , in ACPI spec, it seems we don't have ACPI_GTDT_SBSA_GWDT_HID, and in Linux kernel, there is not a mechanism to register the Wakeup-timer and Watchdog in GTDT with ACPI_GTDT_*_HID.
Maybe, ACPI team of LEG can discuss about that and rise a request of adding ACPI_GTDT_*_HID to ACPI spec for GTDT table
@Hanjun, Al Please correct me if I misunderstand something :-) Great thanks!
You are right, more specifically, there is no mechanism to auto match/register modules for ACPI static tables (MADT/gtdt..), I think we can post a question on ACPI maillist to see if any good inputs.
Thanks Hanjun
-- Best regards,
Fu Wei Software Engineer Red Hat Software (Beijing) Co.,Ltd.Shanghai Branch Ph: +86 21 61221326(direct) Ph: +86 186 2020 4684 (mobile) Room 1512, Regus One Corporate Avenue,Level 15, One Corporate Avenue,222 Hubin Road,Huangpu District, Shanghai,China 200021
Hi Greame,
Do we need
static const struct of_device_id sbsa_gwdt_of_match[] = { { .compatible = "arm,sbsa-gwdt", }, {}, }; MODULE_DEVICE_TABLE(of, sbsa_gwdt_of_match);
any more?
I guess we can just use " MODULE_DEVICE_TABLE(platform, sbsa_gwdt_id);"
On 18 May 2015 at 18:26, G Gregory graeme.gregory@linaro.org wrote:
struct platform_device_id sbsa_gwdt_id { {"sbsa-gwdt", }, };
MODULE_DEVICE_TABLE(platform, sbsa_gwdt_id);
or something like that from memory.
Graeme
On 18 May 2015 at 11:11, Fu Wei fu.wei@linaro.org wrote:
Hi Graeme,
Are you saying :
static struct platform_driver sbsa_gwdt_driver = { .driver = { .name = "sbsa-gwdt", .pm = &sbsa_gwdt_pm_ops, .of_match_table = sbsa_gwdt_of_match, }, .probe = sbsa_gwdt_probe, .remove = sbsa_gwdt_remove, .shutdown = sbsa_gwdt_shutdown, };
.name = "sbsa-gwdt", ???
I am not sure if that can do the auto-insmod part, maybe I miss some knowledge of platform_driver , But AFAIK, the platform mechanism uses that name to match the driver and device, ONCE the driver or device is registered into system. that means when the driver is insmod'ed , then the "name" will take effect.
But MODULE_DEVICE_TABLE creates an alias string in the .ok so depmod can find device table.
please correct me , If I misunderstand this part .
On 18 May 2015 at 17:11, Hanjun Guo hanjun.guo@linaro.org wrote:
On 2015年05月18日 17:05, G Gregory wrote:
Shouldn't the standard platform_device matching kick in?
It should match the driver to the name!
Hmm, I missed this part, I'm not familiar with the mechanism, Fuwei, could you please try this direction?
Graeme
On 18 May 2015 at 10:04, Hanjun Guo hanjun.guo@linaro.org wrote:
On 2015年05月18日 16:48, Fu Wei wrote:
Hi Suravee,
Hanjun and me have figured out the problem of auto-insmod SBSA watchdog module, when boot with ACPI:
For now , we can not insmod SBSA watchdog driver automatically, because :
For booting with dtb , in the driver module, we already have :
static const struct of_device_id sbsa_gwdt_of_match[] = { { .compatible = "arm,sbsa-gwdt", }, {}, }; MODULE_DEVICE_TABLE(of, sbsa_gwdt_of_match);
For booting with acpi , we should have sometime like :
static const struct acpi_device_id sbsa_gwdt_ids[] __used = { {ACPI_GTDT_SBSA_GWDT_HID, 0}, {"", 0} }; MODULE_DEVICE_TABLE(acpi, sbsa_gwdt_ids);
Unfortunately, for now , in ACPI spec, it seems we don't have ACPI_GTDT_SBSA_GWDT_HID, and in Linux kernel, there is not a mechanism to register the Wakeup-timer and Watchdog in GTDT with ACPI_GTDT_*_HID.
Maybe, ACPI team of LEG can discuss about that and rise a request of adding ACPI_GTDT_*_HID to ACPI spec for GTDT table
@Hanjun, Al Please correct me if I misunderstand something :-) Great thanks!
You are right, more specifically, there is no mechanism to auto match/register modules for ACPI static tables (MADT/gtdt..), I think we can post a question on ACPI maillist to see if any good inputs.
Thanks Hanjun
-- Best regards,
Fu Wei Software Engineer Red Hat Software (Beijing) Co.,Ltd.Shanghai Branch Ph: +86 21 61221326(direct) Ph: +86 186 2020 4684 (mobile) Room 1512, Regus One Corporate Avenue,Level 15, One Corporate Avenue,222 Hubin Road,Huangpu District, Shanghai,China 200021
Fu Wei,
You will need it if you want DT matching to work from the FDT.
Graeme
On 18 May 2015 at 11:33, Fu Wei fu.wei@linaro.org wrote:
Hi Greame,
Do we need
static const struct of_device_id sbsa_gwdt_of_match[] = { { .compatible = "arm,sbsa-gwdt", }, {}, }; MODULE_DEVICE_TABLE(of, sbsa_gwdt_of_match);
any more?
I guess we can just use " MODULE_DEVICE_TABLE(platform, sbsa_gwdt_id);"
On 18 May 2015 at 18:26, G Gregory graeme.gregory@linaro.org wrote:
struct platform_device_id sbsa_gwdt_id { {"sbsa-gwdt", }, };
MODULE_DEVICE_TABLE(platform, sbsa_gwdt_id);
or something like that from memory.
Graeme
On 18 May 2015 at 11:11, Fu Wei fu.wei@linaro.org wrote:
Hi Graeme,
Are you saying :
static struct platform_driver sbsa_gwdt_driver = { .driver = { .name = "sbsa-gwdt", .pm = &sbsa_gwdt_pm_ops, .of_match_table = sbsa_gwdt_of_match, }, .probe = sbsa_gwdt_probe, .remove = sbsa_gwdt_remove, .shutdown = sbsa_gwdt_shutdown, };
.name = "sbsa-gwdt", ???
I am not sure if that can do the auto-insmod part, maybe I miss some knowledge of platform_driver , But AFAIK, the platform mechanism uses that name to match the driver and device, ONCE the driver or device is registered into system. that means when the driver is insmod'ed , then the "name" will take effect.
But MODULE_DEVICE_TABLE creates an alias string in the .ok so depmod can find device table.
please correct me , If I misunderstand this part .
On 18 May 2015 at 17:11, Hanjun Guo hanjun.guo@linaro.org wrote:
On 2015年05月18日 17:05, G Gregory wrote:
Shouldn't the standard platform_device matching kick in?
It should match the driver to the name!
Hmm, I missed this part, I'm not familiar with the mechanism, Fuwei, could you please try this direction?
Graeme
On 18 May 2015 at 10:04, Hanjun Guo hanjun.guo@linaro.org wrote:
On 2015年05月18日 16:48, Fu Wei wrote: > > > Hi Suravee, > > Hanjun and me have figured out the problem of auto-insmod SBSA > watchdog module, when boot with ACPI: > > For now , we can not insmod SBSA watchdog driver automatically, because > : > > For booting with dtb , in the driver module, we already have : > --------------------- > static const struct of_device_id sbsa_gwdt_of_match[] = { > { .compatible = "arm,sbsa-gwdt", }, > {}, > }; > MODULE_DEVICE_TABLE(of, sbsa_gwdt_of_match); > --------------------- > > For booting with acpi , we should have sometime like : > --------------------- > static const struct acpi_device_id sbsa_gwdt_ids[] __used = { > {ACPI_GTDT_SBSA_GWDT_HID, 0}, > {"", 0} > }; > MODULE_DEVICE_TABLE(acpi, sbsa_gwdt_ids); > --------------------- > > Unfortunately, for now , in ACPI spec, it seems we don't have > ACPI_GTDT_SBSA_GWDT_HID, and in Linux kernel, there is not a > mechanism to register the Wakeup-timer and Watchdog in GTDT with > ACPI_GTDT_*_HID. > > Maybe, ACPI team of LEG can discuss about that and rise a request of > adding ACPI_GTDT_*_HID to ACPI spec for GTDT table > > @Hanjun, Al > Please correct me if I misunderstand something :-) > Great thanks!
You are right, more specifically, there is no mechanism to auto match/register modules for ACPI static tables (MADT/gtdt..), I think we can post a question on ACPI maillist to see if any good inputs.
Thanks Hanjun
-- Best regards,
Fu Wei Software Engineer Red Hat Software (Beijing) Co.,Ltd.Shanghai Branch Ph: +86 21 61221326(direct) Ph: +86 186 2020 4684 (mobile) Room 1512, Regus One Corporate Avenue,Level 15, One Corporate Avenue,222 Hubin Road,Huangpu District, Shanghai,China 200021
-- Best regards,
Fu Wei Software Engineer Red Hat Software (Beijing) Co.,Ltd.Shanghai Branch Ph: +86 21 61221326(direct) Ph: +86 186 2020 4684 (mobile) Room 1512, Regus One Corporate Avenue,Level 15, One Corporate Avenue,222 Hubin Road,Huangpu District, Shanghai,China 200021
Hi Graeme, But FDT driver has import those info into platform device, and my driver is using module_platform_driver(sbsa_gwdt_driver). and it probe device from platform.
any reason we still need MODULE_DEVICE_TABLE(of, sbsa_gwdt_of_match); for booting with dtb? Do I miss something again? :-)
Great thanks
On 18 May 2015 at 18:39, G Gregory graeme.gregory@linaro.org wrote:
Fu Wei,
You will need it if you want DT matching to work from the FDT.
Graeme
On 18 May 2015 at 11:33, Fu Wei fu.wei@linaro.org wrote:
Hi Greame,
Do we need
static const struct of_device_id sbsa_gwdt_of_match[] = { { .compatible = "arm,sbsa-gwdt", }, {}, }; MODULE_DEVICE_TABLE(of, sbsa_gwdt_of_match);
any more?
I guess we can just use " MODULE_DEVICE_TABLE(platform, sbsa_gwdt_id);"
On 18 May 2015 at 18:26, G Gregory graeme.gregory@linaro.org wrote:
struct platform_device_id sbsa_gwdt_id { {"sbsa-gwdt", }, };
MODULE_DEVICE_TABLE(platform, sbsa_gwdt_id);
or something like that from memory.
Graeme
On 18 May 2015 at 11:11, Fu Wei fu.wei@linaro.org wrote:
Hi Graeme,
Are you saying :
static struct platform_driver sbsa_gwdt_driver = { .driver = { .name = "sbsa-gwdt", .pm = &sbsa_gwdt_pm_ops, .of_match_table = sbsa_gwdt_of_match, }, .probe = sbsa_gwdt_probe, .remove = sbsa_gwdt_remove, .shutdown = sbsa_gwdt_shutdown, };
.name = "sbsa-gwdt", ???
I am not sure if that can do the auto-insmod part, maybe I miss some knowledge of platform_driver , But AFAIK, the platform mechanism uses that name to match the driver and device, ONCE the driver or device is registered into system. that means when the driver is insmod'ed , then the "name" will take effect.
But MODULE_DEVICE_TABLE creates an alias string in the .ok so depmod can find device table.
please correct me , If I misunderstand this part .
On 18 May 2015 at 17:11, Hanjun Guo hanjun.guo@linaro.org wrote:
On 2015年05月18日 17:05, G Gregory wrote:
Shouldn't the standard platform_device matching kick in?
It should match the driver to the name!
Hmm, I missed this part, I'm not familiar with the mechanism, Fuwei, could you please try this direction?
Graeme
On 18 May 2015 at 10:04, Hanjun Guo hanjun.guo@linaro.org wrote: > > On 2015年05月18日 16:48, Fu Wei wrote: >> >> >> Hi Suravee, >> >> Hanjun and me have figured out the problem of auto-insmod SBSA >> watchdog module, when boot with ACPI: >> >> For now , we can not insmod SBSA watchdog driver automatically, because >> : >> >> For booting with dtb , in the driver module, we already have : >> --------------------- >> static const struct of_device_id sbsa_gwdt_of_match[] = { >> { .compatible = "arm,sbsa-gwdt", }, >> {}, >> }; >> MODULE_DEVICE_TABLE(of, sbsa_gwdt_of_match); >> --------------------- >> >> For booting with acpi , we should have sometime like : >> --------------------- >> static const struct acpi_device_id sbsa_gwdt_ids[] __used = { >> {ACPI_GTDT_SBSA_GWDT_HID, 0}, >> {"", 0} >> }; >> MODULE_DEVICE_TABLE(acpi, sbsa_gwdt_ids); >> --------------------- >> >> Unfortunately, for now , in ACPI spec, it seems we don't have >> ACPI_GTDT_SBSA_GWDT_HID, and in Linux kernel, there is not a >> mechanism to register the Wakeup-timer and Watchdog in GTDT with >> ACPI_GTDT_*_HID. >> >> Maybe, ACPI team of LEG can discuss about that and rise a request of >> adding ACPI_GTDT_*_HID to ACPI spec for GTDT table >> >> @Hanjun, Al >> Please correct me if I misunderstand something :-) >> Great thanks! > > > > You are right, more specifically, there is no mechanism to auto > match/register modules for ACPI static tables (MADT/gtdt..), I think > we can post a question on ACPI maillist to see if any good inputs. > > Thanks > Hanjun
-- Best regards,
Fu Wei Software Engineer Red Hat Software (Beijing) Co.,Ltd.Shanghai Branch Ph: +86 21 61221326(direct) Ph: +86 186 2020 4684 (mobile) Room 1512, Regus One Corporate Avenue,Level 15, One Corporate Avenue,222 Hubin Road,Huangpu District, Shanghai,China 200021
-- Best regards,
Fu Wei Software Engineer Red Hat Software (Beijing) Co.,Ltd.Shanghai Branch Ph: +86 21 61221326(direct) Ph: +86 186 2020 4684 (mobile) Room 1512, Regus One Corporate Avenue,Level 15, One Corporate Avenue,222 Hubin Road,Huangpu District, Shanghai,China 200021
On 18 May 2015 at 11:52, Fu Wei fu.wei@linaro.org wrote:
Hi Graeme, But FDT driver has import those info into platform device, and my driver is using module_platform_driver(sbsa_gwdt_driver). and it probe device from platform.
any reason we still need MODULE_DEVICE_TABLE(of, sbsa_gwdt_of_match); for booting with dtb? Do I miss something again? :-)
You will create same problem for OF matching as currently exists for ACPI matching.
Graeme
Great thanks
On 18 May 2015 at 18:39, G Gregory graeme.gregory@linaro.org wrote:
Fu Wei,
You will need it if you want DT matching to work from the FDT.
Graeme
On 18 May 2015 at 11:33, Fu Wei fu.wei@linaro.org wrote:
Hi Greame,
Do we need
static const struct of_device_id sbsa_gwdt_of_match[] = { { .compatible = "arm,sbsa-gwdt", }, {}, }; MODULE_DEVICE_TABLE(of, sbsa_gwdt_of_match);
any more?
I guess we can just use " MODULE_DEVICE_TABLE(platform, sbsa_gwdt_id);"
On 18 May 2015 at 18:26, G Gregory graeme.gregory@linaro.org wrote:
struct platform_device_id sbsa_gwdt_id { {"sbsa-gwdt", }, };
MODULE_DEVICE_TABLE(platform, sbsa_gwdt_id);
or something like that from memory.
Graeme
On 18 May 2015 at 11:11, Fu Wei fu.wei@linaro.org wrote:
Hi Graeme,
Are you saying :
static struct platform_driver sbsa_gwdt_driver = { .driver = { .name = "sbsa-gwdt", .pm = &sbsa_gwdt_pm_ops, .of_match_table = sbsa_gwdt_of_match, }, .probe = sbsa_gwdt_probe, .remove = sbsa_gwdt_remove, .shutdown = sbsa_gwdt_shutdown, };
.name = "sbsa-gwdt", ???
I am not sure if that can do the auto-insmod part, maybe I miss some knowledge of platform_driver , But AFAIK, the platform mechanism uses that name to match the driver and device, ONCE the driver or device is registered into system. that means when the driver is insmod'ed , then the "name" will take effect.
But MODULE_DEVICE_TABLE creates an alias string in the .ok so depmod can find device table.
please correct me , If I misunderstand this part .
On 18 May 2015 at 17:11, Hanjun Guo hanjun.guo@linaro.org wrote:
On 2015年05月18日 17:05, G Gregory wrote: > > Shouldn't the standard platform_device matching kick in? > > It should match the driver to the name!
Hmm, I missed this part, I'm not familiar with the mechanism, Fuwei, could you please try this direction?
> > Graeme > > On 18 May 2015 at 10:04, Hanjun Guo hanjun.guo@linaro.org wrote: >> >> On 2015年05月18日 16:48, Fu Wei wrote: >>> >>> >>> Hi Suravee, >>> >>> Hanjun and me have figured out the problem of auto-insmod SBSA >>> watchdog module, when boot with ACPI: >>> >>> For now , we can not insmod SBSA watchdog driver automatically, because >>> : >>> >>> For booting with dtb , in the driver module, we already have : >>> --------------------- >>> static const struct of_device_id sbsa_gwdt_of_match[] = { >>> { .compatible = "arm,sbsa-gwdt", }, >>> {}, >>> }; >>> MODULE_DEVICE_TABLE(of, sbsa_gwdt_of_match); >>> --------------------- >>> >>> For booting with acpi , we should have sometime like : >>> --------------------- >>> static const struct acpi_device_id sbsa_gwdt_ids[] __used = { >>> {ACPI_GTDT_SBSA_GWDT_HID, 0}, >>> {"", 0} >>> }; >>> MODULE_DEVICE_TABLE(acpi, sbsa_gwdt_ids); >>> --------------------- >>> >>> Unfortunately, for now , in ACPI spec, it seems we don't have >>> ACPI_GTDT_SBSA_GWDT_HID, and in Linux kernel, there is not a >>> mechanism to register the Wakeup-timer and Watchdog in GTDT with >>> ACPI_GTDT_*_HID. >>> >>> Maybe, ACPI team of LEG can discuss about that and rise a request of >>> adding ACPI_GTDT_*_HID to ACPI spec for GTDT table >>> >>> @Hanjun, Al >>> Please correct me if I misunderstand something :-) >>> Great thanks! >> >> >> >> You are right, more specifically, there is no mechanism to auto >> match/register modules for ACPI static tables (MADT/gtdt..), I think >> we can post a question on ACPI maillist to see if any good inputs. >> >> Thanks >> Hanjun
-- Best regards,
Fu Wei Software Engineer Red Hat Software (Beijing) Co.,Ltd.Shanghai Branch Ph: +86 21 61221326(direct) Ph: +86 186 2020 4684 (mobile) Room 1512, Regus One Corporate Avenue,Level 15, One Corporate Avenue,222 Hubin Road,Huangpu District, Shanghai,China 200021
-- Best regards,
Fu Wei Software Engineer Red Hat Software (Beijing) Co.,Ltd.Shanghai Branch Ph: +86 21 61221326(direct) Ph: +86 186 2020 4684 (mobile) Room 1512, Regus One Corporate Avenue,Level 15, One Corporate Avenue,222 Hubin Road,Huangpu District, Shanghai,China 200021
-- Best regards,
Fu Wei Software Engineer Red Hat Software (Beijing) Co.,Ltd.Shanghai Branch Ph: +86 21 61221326(direct) Ph: +86 186 2020 4684 (mobile) Room 1512, Regus One Corporate Avenue,Level 15, One Corporate Avenue,222 Hubin Road,Huangpu District, Shanghai,China 200021
Hi Graeme ,
Sorry for confusing, I have got it , Thanks for your suggestion, will test it soon
On 18 May 2015 at 19:02, G Gregory graeme.gregory@linaro.org wrote:
On 18 May 2015 at 11:52, Fu Wei fu.wei@linaro.org wrote:
Hi Graeme, But FDT driver has import those info into platform device, and my driver is using module_platform_driver(sbsa_gwdt_driver). and it probe device from platform.
any reason we still need MODULE_DEVICE_TABLE(of, sbsa_gwdt_of_match); for booting with dtb? Do I miss something again? :-)
You will create same problem for OF matching as currently exists for ACPI matching.
Graeme
Great thanks
On 18 May 2015 at 18:39, G Gregory graeme.gregory@linaro.org wrote:
Fu Wei,
You will need it if you want DT matching to work from the FDT.
Graeme
On 18 May 2015 at 11:33, Fu Wei fu.wei@linaro.org wrote:
Hi Greame,
Do we need
static const struct of_device_id sbsa_gwdt_of_match[] = { { .compatible = "arm,sbsa-gwdt", }, {}, }; MODULE_DEVICE_TABLE(of, sbsa_gwdt_of_match);
any more?
I guess we can just use " MODULE_DEVICE_TABLE(platform, sbsa_gwdt_id);"
On 18 May 2015 at 18:26, G Gregory graeme.gregory@linaro.org wrote:
struct platform_device_id sbsa_gwdt_id { {"sbsa-gwdt", }, };
MODULE_DEVICE_TABLE(platform, sbsa_gwdt_id);
or something like that from memory.
Graeme
On 18 May 2015 at 11:11, Fu Wei fu.wei@linaro.org wrote:
Hi Graeme,
Are you saying :
static struct platform_driver sbsa_gwdt_driver = { .driver = { .name = "sbsa-gwdt", .pm = &sbsa_gwdt_pm_ops, .of_match_table = sbsa_gwdt_of_match, }, .probe = sbsa_gwdt_probe, .remove = sbsa_gwdt_remove, .shutdown = sbsa_gwdt_shutdown, };
.name = "sbsa-gwdt", ???
I am not sure if that can do the auto-insmod part, maybe I miss some knowledge of platform_driver , But AFAIK, the platform mechanism uses that name to match the driver and device, ONCE the driver or device is registered into system. that means when the driver is insmod'ed , then the "name" will take effect.
But MODULE_DEVICE_TABLE creates an alias string in the .ok so depmod can find device table.
please correct me , If I misunderstand this part .
On 18 May 2015 at 17:11, Hanjun Guo hanjun.guo@linaro.org wrote: > On 2015年05月18日 17:05, G Gregory wrote: >> >> Shouldn't the standard platform_device matching kick in? >> >> It should match the driver to the name! > > > Hmm, I missed this part, I'm not familiar with > the mechanism, Fuwei, could you please try this > direction? > > >> >> Graeme >> >> On 18 May 2015 at 10:04, Hanjun Guo hanjun.guo@linaro.org wrote: >>> >>> On 2015年05月18日 16:48, Fu Wei wrote: >>>> >>>> >>>> Hi Suravee, >>>> >>>> Hanjun and me have figured out the problem of auto-insmod SBSA >>>> watchdog module, when boot with ACPI: >>>> >>>> For now , we can not insmod SBSA watchdog driver automatically, because >>>> : >>>> >>>> For booting with dtb , in the driver module, we already have : >>>> --------------------- >>>> static const struct of_device_id sbsa_gwdt_of_match[] = { >>>> { .compatible = "arm,sbsa-gwdt", }, >>>> {}, >>>> }; >>>> MODULE_DEVICE_TABLE(of, sbsa_gwdt_of_match); >>>> --------------------- >>>> >>>> For booting with acpi , we should have sometime like : >>>> --------------------- >>>> static const struct acpi_device_id sbsa_gwdt_ids[] __used = { >>>> {ACPI_GTDT_SBSA_GWDT_HID, 0}, >>>> {"", 0} >>>> }; >>>> MODULE_DEVICE_TABLE(acpi, sbsa_gwdt_ids); >>>> --------------------- >>>> >>>> Unfortunately, for now , in ACPI spec, it seems we don't have >>>> ACPI_GTDT_SBSA_GWDT_HID, and in Linux kernel, there is not a >>>> mechanism to register the Wakeup-timer and Watchdog in GTDT with >>>> ACPI_GTDT_*_HID. >>>> >>>> Maybe, ACPI team of LEG can discuss about that and rise a request of >>>> adding ACPI_GTDT_*_HID to ACPI spec for GTDT table >>>> >>>> @Hanjun, Al >>>> Please correct me if I misunderstand something :-) >>>> Great thanks! >>> >>> >>> >>> You are right, more specifically, there is no mechanism to auto >>> match/register modules for ACPI static tables (MADT/gtdt..), I think >>> we can post a question on ACPI maillist to see if any good inputs. >>> >>> Thanks >>> Hanjun
-- Best regards,
Fu Wei Software Engineer Red Hat Software (Beijing) Co.,Ltd.Shanghai Branch Ph: +86 21 61221326(direct) Ph: +86 186 2020 4684 (mobile) Room 1512, Regus One Corporate Avenue,Level 15, One Corporate Avenue,222 Hubin Road,Huangpu District, Shanghai,China 200021
-- Best regards,
Fu Wei Software Engineer Red Hat Software (Beijing) Co.,Ltd.Shanghai Branch Ph: +86 21 61221326(direct) Ph: +86 186 2020 4684 (mobile) Room 1512, Regus One Corporate Avenue,Level 15, One Corporate Avenue,222 Hubin Road,Huangpu District, Shanghai,China 200021
-- Best regards,
Fu Wei Software Engineer Red Hat Software (Beijing) Co.,Ltd.Shanghai Branch Ph: +86 21 61221326(direct) Ph: +86 186 2020 4684 (mobile) Room 1512, Regus One Corporate Avenue,Level 15, One Corporate Avenue,222 Hubin Road,Huangpu District, Shanghai,China 200021
On 5/18/2015 5:26 AM, G Gregory wrote:
struct platform_device_id sbsa_gwdt_id { {"sbsa-gwdt", }, };
MODULE_DEVICE_TABLE(platform, sbsa_gwdt_id);
or something like that from memory.
Graeme
This changes makes the modules auto-load works. I guess it should have been added to begin with. Previously, it works when modprobe manually because the driver name happens to be the same as device name.
Thanks,
Suravee