Lines Matching refs:data

194 				     struct platform_pwm_backlight_data *data,
205 data->max_brightness =
208 data->levels = devm_kcalloc(dev, data->max_brightness,
209 sizeof(*data->levels), GFP_KERNEL);
210 if (!data->levels)
214 for (i = 0; i < data->max_brightness; i++) {
216 data->max_brightness) * period;
220 data->levels[i] = (unsigned int)retval;
223 data->dft_brightness = data->max_brightness / 2;
224 data->max_brightness--;
230 struct platform_pwm_backlight_data *data)
245 memset(data, 0, sizeof(*data));
252 &data->post_pwm_on_delay);
253 of_property_read_u32(node, "pwm-off-delay-ms", &data->pwm_off_delay);
263 data->max_brightness = length / sizeof(u32);
266 if (data->max_brightness > 0) {
267 size_t size = sizeof(*data->levels) * data->max_brightness;
270 data->levels = devm_kzalloc(dev, size, GFP_KERNEL);
271 if (!data->levels)
275 data->levels,
276 data->max_brightness);
285 data->dft_brightness = value;
301 if (data->max_brightness < 2) {
311 for (i = 0; i < data->max_brightness - 1; i++) {
312 if ((data->levels[i + 1] - data->levels[i]) /
333 for (i = 0; i < data->max_brightness - 1; i++) {
334 value = data->levels[i];
335 n = (data->levels[i + 1] - value) / num_steps;
343 table[levels_count] = data->levels[i];
347 table[levels_count] = data->levels[i];
354 devm_kfree(dev, data->levels);
355 data->levels = table;
361 data->max_brightness = num_levels;
364 data->max_brightness--;
378 struct platform_pwm_backlight_data *data)
385 struct platform_pwm_backlight_data *data,
392 static bool pwm_backlight_is_linear(struct platform_pwm_backlight_data *data)
394 unsigned int nlevels = data->max_brightness + 1;
395 unsigned int min_val = data->levels[0];
396 unsigned int max_val = data->levels[nlevels - 1];
408 unsigned int delta = abs(linear_value - data->levels[i]);
463 struct platform_pwm_backlight_data *data = dev_get_platdata(&pdev->dev);
473 if (!data) {
476 dev_err(&pdev->dev, "failed to find platform data\n");
480 data = &defdata;
483 if (data->init) {
484 ret = data->init(&pdev->dev);
495 pb->notify = data->notify;
496 pb->notify_after = data->notify_after;
497 pb->check_fb = data->check_fb;
498 pb->exit = data->exit;
501 pb->post_pwm_on_delay = data->post_pwm_on_delay;
502 pb->pwm_off_delay = data->pwm_off_delay;
521 pb->pwm = pwm_request(data->pwm_id, "pwm-backlight");
539 * set the period from platform data if it has not already been set
542 if (!state.period && (data->pwm_period_ns > 0))
543 state.period = data->pwm_period_ns;
554 if (data->levels) {
555 pb->levels = data->levels;
559 * data->levels is filled. For the non-DT case, data->levels
560 * can come from platform data, however is not usual.
562 for (i = 0; i <= data->max_brightness; i++)
563 if (data->levels[i] > pb->scale)
564 pb->scale = data->levels[i];
566 if (pwm_backlight_is_linear(data))
570 } else if (!data->max_brightness) {
582 ret = pwm_backlight_brightness_default(&pdev->dev, data,
590 for (i = 0; i <= data->max_brightness; i++) {
591 if (data->levels[i] > pb->scale)
592 pb->scale = data->levels[i];
594 pb->levels = data->levels;
600 * That only happens for the non-DT case, where platform data
603 pb->scale = data->max_brightness;
606 pb->lth_brightness = data->lth_brightness * (div_u64(state.period,
610 props.max_brightness = data->max_brightness;
621 if (data->dft_brightness > data->max_brightness) {
624 data->dft_brightness, data->max_brightness);
625 data->dft_brightness = data->max_brightness;
628 bl->props.brightness = data->dft_brightness;
636 if (data->exit)
637 data->exit(&pdev->dev);