Lines Matching refs:lsc
283 ccdc->lsc.state = LSC_STATE_STOPPED;
287 ccdc->lsc.state = LSC_STATE_RUNNING;
289 ccdc->lsc.state = LSC_STATE_STOPPING;
347 ccdc->lsc.state = LSC_STATE_STOPPED;
373 spin_lock_irqsave(&ccdc->lsc.req_lock, flags);
376 spin_unlock_irqrestore(&ccdc->lsc.req_lock, flags);
378 spin_lock_irqsave(&ccdc->lsc.req_lock, flags);
380 spin_unlock_irqrestore(&ccdc->lsc.req_lock, flags);
386 struct ispccdc_lsc *lsc;
388 lsc = container_of(work, struct ispccdc_lsc, table_work);
389 ccdc = container_of(lsc, struct isp_ccdc_device, lsc);
391 ccdc_lsc_free_queue(ccdc, &lsc->free_queue);
452 if (copy_from_user(req->table.addr, config->lsc,
462 spin_lock_irqsave(&ccdc->lsc.req_lock, flags);
463 if (ccdc->lsc.request) {
464 list_add_tail(&ccdc->lsc.request->list, &ccdc->lsc.free_queue);
465 schedule_work(&ccdc->lsc.table_work);
467 ccdc->lsc.request = req;
468 spin_unlock_irqrestore(&ccdc->lsc.req_lock, flags);
484 spin_lock_irqsave(&ccdc->lsc.req_lock, flags);
485 ret = ccdc->lsc.active != NULL;
486 spin_unlock_irqrestore(&ccdc->lsc.req_lock, flags);
493 struct ispccdc_lsc *lsc = &ccdc->lsc;
495 if (lsc->state != LSC_STATE_STOPPED)
498 if (lsc->active) {
499 list_add_tail(&lsc->active->list, &lsc->free_queue);
500 lsc->active = NULL;
503 if (__ccdc_lsc_configure(ccdc, lsc->request) < 0) {
506 list_add_tail(&lsc->request->list, &lsc->free_queue);
507 lsc->request = NULL;
511 lsc->active = lsc->request;
512 lsc->request = NULL;
516 if (!list_empty(&lsc->free_queue))
517 schedule_work(&lsc->table_work);
1292 spin_lock_irqsave(&ccdc->lsc.req_lock, flags);
1293 if (ccdc->lsc.request == NULL)
1296 WARN_ON(ccdc->lsc.active);
1301 if (ccdc->lsc.active == NULL &&
1302 __ccdc_lsc_configure(ccdc, ccdc->lsc.request) == 0) {
1303 ccdc->lsc.active = ccdc->lsc.request;
1305 list_add_tail(&ccdc->lsc.request->list, &ccdc->lsc.free_queue);
1306 schedule_work(&ccdc->lsc.table_work);
1309 ccdc->lsc.request = NULL;
1312 spin_unlock_irqrestore(&ccdc->lsc.req_lock, flags);
1354 ccdc_lsc_free_request(ccdc, ccdc->lsc.request);
1355 ccdc->lsc.request = ccdc->lsc.active;
1356 ccdc->lsc.active = NULL;
1357 cancel_work_sync(&ccdc->lsc.table_work);
1358 ccdc_lsc_free_queue(ccdc, &ccdc->lsc.free_queue);
1436 if (ccdc->lsc.state != LSC_STATE_STOPPED)
1444 if (ccdc->lsc.state == LSC_STATE_STOPPED)
1497 dev_dbg(to_device(ccdc), "lsc prefetch error\n");
1507 spin_lock_irqsave(&ccdc->lsc.req_lock, flags);
1509 if (ccdc->lsc.state == LSC_STATE_STOPPING)
1510 ccdc->lsc.state = LSC_STATE_STOPPED;
1515 if (ccdc->lsc.state != LSC_STATE_RECONFIG)
1519 ccdc->lsc.state = LSC_STATE_STOPPED;
1531 if (ccdc->lsc.request == NULL)
1537 spin_unlock_irqrestore(&ccdc->lsc.req_lock, flags);
1671 if (ccdc->lsc.state != LSC_STATE_STOPPED)
1716 spin_lock_irqsave(&ccdc->lsc.req_lock, flags);
1735 if (ccdc->lsc.state != LSC_STATE_STOPPED)
1748 if (ccdc->lsc.request == NULL)
1755 if (ccdc->lsc.state == LSC_STATE_RUNNING) {
1757 ccdc->lsc.state = LSC_STATE_RECONFIG;
1762 if (ccdc->lsc.state == LSC_STATE_STOPPED)
1766 spin_unlock_irqrestore(&ccdc->lsc.req_lock, flags);
2726 INIT_WORK(&ccdc->lsc.table_work, ccdc_lsc_free_table_work);
2727 ccdc->lsc.state = LSC_STATE_STOPPED;
2728 INIT_LIST_HEAD(&ccdc->lsc.free_queue);
2729 spin_lock_init(&ccdc->lsc.req_lock);
2760 ccdc_lsc_free_request(ccdc, ccdc->lsc.request);
2761 cancel_work_sync(&ccdc->lsc.table_work);
2762 ccdc_lsc_free_queue(ccdc, &ccdc->lsc.free_queue);