int mods_init_tegradc(void) { #if defined(CONFIG_TEGRA_NVSD) int i; int ret = 0; LOG_ENT(); for (i = 0; i < TEGRA_MAX_DC; i++) { struct tegra_dc *dc = tegra_dc_get_dc(i); if (!dc) continue; tegra_dc_saved_sd_settings[i] = dc->out->sd_settings; dc->out->sd_settings = &mods_sd_settings[i]; if (dc->enabled) nvsd_init(dc, dc->out->sd_settings); if (!tegra_dc_saved_sd_settings[i]) ret = nvsd_create_sysfs(&dc->ndev->dev); } LOG_EXT(); return ret; #else return 0; #endif }
void tegra_dc_create_sysfs(struct device *dev) { struct nvhost_device *ndev = to_nvhost_device(dev); struct tegra_dc *dc = nvhost_get_drvdata(ndev); struct tegra_dc_sd_settings *sd_settings = dc->out->sd_settings; int error = 0; error |= device_create_file(dev, &dev_attr_mode); error |= device_create_file(dev, &dev_attr_nvdps); error |= device_create_file(dev, &dev_attr_enable); error |= device_create_file(dev, &dev_attr_stats_enable); error |= device_create_file(dev, &dev_attr_crc_checksum_latched); if (dc->out->stereo) { error |= device_create_file(dev, &dev_attr_stereo_orientation); error |= device_create_file(dev, &dev_attr_stereo_mode); } if (sd_settings) error |= nvsd_create_sysfs(dev); if (dc->out->flags & TEGRA_DC_OUT_ONE_SHOT_MODE) error |= device_create_file(dev, &dev_attr_smart_panel); if (error) dev_err(&ndev->dev, "Failed to create sysfs attributes!\n"); }