diff options
Diffstat (limited to 'drivers/gpu/pvr/omaplfb/omaplfb-sysfs.c')
-rw-r--r-- | drivers/gpu/pvr/omaplfb/omaplfb-sysfs.c | 130 |
1 files changed, 0 insertions, 130 deletions
diff --git a/drivers/gpu/pvr/omaplfb/omaplfb-sysfs.c b/drivers/gpu/pvr/omaplfb/omaplfb-sysfs.c deleted file mode 100644 index 2e04583..0000000 --- a/drivers/gpu/pvr/omaplfb/omaplfb-sysfs.c +++ /dev/null @@ -1,130 +0,0 @@ -/* - * omaplfb-sysfs.c - * - * Copyright (C) 2011 Texas Instruments. - * - * This file is licensed under the terms of the GNU General Public License - * version 2. This program is licensed "as is" without any warranty of any - * kind, whether express or implied. - * - * Author: Gustavo Diaz (gusdp@ti.com) - * - */ - -#include <linux/version.h> -#include <linux/module.h> -#include <linux/sysfs.h> -#include <linux/platform_device.h> -#include <linux/device.h> -#include <linux/uaccess.h> - -#include "img_defs.h" -#include "servicesext.h" -#include "kerneldisplay.h" -#include "omaplfb.h" - -static ssize_t show_ignore_sync(OMAPLFB_DEVINFO *display_info, char *buf) -{ - return snprintf(buf, PAGE_SIZE, "%d\n", display_info->ignore_sync); -} - -static ssize_t store_ignore_sync(OMAPLFB_DEVINFO *display_info, - const char *buf, size_t count) -{ - unsigned long new_value; - - if (strict_strtoul(buf, 10, &new_value)) - return -EINVAL; - - if (new_value == 0 || new_value == 1) { - display_info->ignore_sync = new_value; - return count; - } - - return -EINVAL; -} - -struct omaplfb_attribute { - struct attribute attr; - ssize_t (*show)(OMAPLFB_DEVINFO *, char *); - ssize_t (*store)(OMAPLFB_DEVINFO *, const char *, size_t); -}; - -static ssize_t omaplfb_attr_show(struct kobject *kobj, struct attribute *attr, - char *buf) -{ - OMAPLFB_DEVINFO *display_info; - struct omaplfb_attribute *omaplfb_attr; - - display_info = container_of(kobj, OMAPLFB_DEVINFO, kobj); - omaplfb_attr = container_of(attr, struct omaplfb_attribute, attr); - - if (!omaplfb_attr->show) - return -ENOENT; - - return omaplfb_attr->show(display_info, buf); -} - -static ssize_t omaplfb_attr_store(struct kobject *kobj, struct attribute *attr, - const char *buf, size_t size) -{ - OMAPLFB_DEVINFO *display_info; - struct omaplfb_attribute *omaplfb_attr; - - display_info = container_of(kobj, OMAPLFB_DEVINFO, kobj); - omaplfb_attr = container_of(attr, struct omaplfb_attribute, attr); - - if (!omaplfb_attr->store) - return -ENOENT; - - return omaplfb_attr->store(display_info, buf, size); -} - -#define OMAPLFB_ATTR(_name, _mode, _show, _store) \ - struct omaplfb_attribute omaplfb_attr_##_name = \ - __ATTR(_name, _mode, _show, _store) - -static OMAPLFB_ATTR(ignore_sync, S_IRUGO|S_IWUSR, show_ignore_sync, - store_ignore_sync); - -#undef OMAPLFB_ATTR - -static struct attribute *omaplfb_sysfs_attrs[] = { - &omaplfb_attr_ignore_sync.attr, - NULL -}; - -static const struct sysfs_ops omaplfb_sysfs_ops = { - .show = omaplfb_attr_show, - .store = omaplfb_attr_store, -}; - -static struct kobj_type omaplfb_ktype = { - .sysfs_ops = &omaplfb_sysfs_ops, - .default_attrs = omaplfb_sysfs_attrs, -}; - -void omaplfb_create_sysfs(struct omaplfb_device *odev) -{ - int i, r; - - /* Create a sysfs entry for every display */ - for (i = 0; i < odev->display_count; i++) { - OMAPLFB_DEVINFO *display_info = &odev->display_info_list[i]; - r = kobject_init_and_add(&display_info->kobj, &omaplfb_ktype, - &odev->dev->kobj, "display%d", - display_info->uDeviceID); - if (r) - ERROR_PRINTK("failed to create sysfs file\n"); - } -} - -void omaplfb_remove_sysfs(struct omaplfb_device *odev) -{ - int i; - for (i = 0; i < odev->display_count; i++) { - OMAPLFB_DEVINFO *display_info = &odev->display_info_list[i]; - kobject_del(&display_info->kobj); - kobject_put(&display_info->kobj); - } -} |