Subject: [PATCH] [acpi video] Add basic init for video devics - Add video_dev_init() an call from video_add() - Simply grab _ADR and store it in struct acpi_video_dev Signed-off-by: Patrick Mochel --- drivers/acpi/drivers/video/dev-device.c | 17 +++++++++++++++++ drivers/acpi/drivers/video/dev-driver.c | 7 +++++++ drivers/acpi/drivers/video/video.h | 3 +++ 3 files changed, 27 insertions(+), 0 deletions(-) applies-to: 26c8201bbaa269d70bdf3ec945d039b7286bf301 25b031dc32e3a9ad9bce5f6369c9aa0f7e5ac8b8 diff --git a/drivers/acpi/drivers/video/dev-device.c b/drivers/acpi/drivers/video/dev-device.c index 5907c16..6988efb 100644 --- a/drivers/acpi/drivers/video/dev-device.c +++ b/drivers/acpi/drivers/video/dev-device.c @@ -42,3 +42,20 @@ int video_dev_test(struct acpi_dev * ad) return get_int(ad, "_ADR", &device_id) == 0 ? 1 : 0; } + + +/** + * video_dev_init - Initialize a video device + * @vd: The ACPI video device + * + */ + +int video_dev_init(struct acpi_video_dev * vd) +{ + int ret; + + ret = get_int(vd->v_ad, "_ADR", &vd->v_id); + if (ret) + return ret; + return 0; +} diff --git a/drivers/acpi/drivers/video/dev-driver.c b/drivers/acpi/drivers/video/dev-driver.c index 584dfbb..efbd859 100644 --- a/drivers/acpi/drivers/video/dev-driver.c +++ b/drivers/acpi/drivers/video/dev-driver.c @@ -38,6 +38,7 @@ static int video_probe(struct acpi_dev * static int video_add(struct acpi_dev * ad) { struct acpi_video_dev * vd; + int ret; vd = kzalloc(sizeof(struct acpi_video_dev), GFP_KERNEL); if (!vd) @@ -45,6 +46,12 @@ static int video_add(struct acpi_dev * a vd->v_ad = ad; + ret = video_dev_init(vd); + if (ret) { + kfree(vd); + return ret; + } + dev_set_drvdata(&ad->dev, vd); printk(KERN_INFO PREFIX "video device [%s]\n", diff --git a/drivers/acpi/drivers/video/video.h b/drivers/acpi/drivers/video/video.h index 1c3c061..acd81e8 100644 --- a/drivers/acpi/drivers/video/video.h +++ b/drivers/acpi/drivers/video/video.h @@ -26,10 +26,13 @@ ACPI_MODULE_NAME("acpi_video"); struct acpi_video_dev { + unsigned long v_id; + struct acpi_dev * v_ad; }; extern int video_dev_test(struct acpi_dev * ad); +extern int video_dev_init(struct acpi_video_dev * vd); struct acpi_video_enum { --- 0.99.9.GIT