106c0dd96bfbba8a9368ffd7c4b12d3bfed37001dRob Clark/* 206c0dd96bfbba8a9368ffd7c4b12d3bfed37001dRob Clark * Copyright (C) 2013 Red Hat 306c0dd96bfbba8a9368ffd7c4b12d3bfed37001dRob Clark * Author: Rob Clark <robdclark@gmail.com> 406c0dd96bfbba8a9368ffd7c4b12d3bfed37001dRob Clark * 506c0dd96bfbba8a9368ffd7c4b12d3bfed37001dRob Clark * This program is free software; you can redistribute it and/or modify it 606c0dd96bfbba8a9368ffd7c4b12d3bfed37001dRob Clark * under the terms of the GNU General Public License version 2 as published by 706c0dd96bfbba8a9368ffd7c4b12d3bfed37001dRob Clark * the Free Software Foundation. 806c0dd96bfbba8a9368ffd7c4b12d3bfed37001dRob Clark * 906c0dd96bfbba8a9368ffd7c4b12d3bfed37001dRob Clark * This program is distributed in the hope that it will be useful, but WITHOUT 1006c0dd96bfbba8a9368ffd7c4b12d3bfed37001dRob Clark * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 1106c0dd96bfbba8a9368ffd7c4b12d3bfed37001dRob Clark * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 1206c0dd96bfbba8a9368ffd7c4b12d3bfed37001dRob Clark * more details. 1306c0dd96bfbba8a9368ffd7c4b12d3bfed37001dRob Clark * 1406c0dd96bfbba8a9368ffd7c4b12d3bfed37001dRob Clark * You should have received a copy of the GNU General Public License along with 1506c0dd96bfbba8a9368ffd7c4b12d3bfed37001dRob Clark * this program. If not, see <http://www.gnu.org/licenses/>. 1606c0dd96bfbba8a9368ffd7c4b12d3bfed37001dRob Clark */ 1706c0dd96bfbba8a9368ffd7c4b12d3bfed37001dRob Clark 1806c0dd96bfbba8a9368ffd7c4b12d3bfed37001dRob Clark#ifndef __MDP5_SMP_H__ 1906c0dd96bfbba8a9368ffd7c4b12d3bfed37001dRob Clark#define __MDP5_SMP_H__ 2006c0dd96bfbba8a9368ffd7c4b12d3bfed37001dRob Clark 2106c0dd96bfbba8a9368ffd7c4b12d3bfed37001dRob Clark#include "msm_drv.h" 2206c0dd96bfbba8a9368ffd7c4b12d3bfed37001dRob Clark 2306c0dd96bfbba8a9368ffd7c4b12d3bfed37001dRob Clark#define MAX_SMP_BLOCKS 22 2406c0dd96bfbba8a9368ffd7c4b12d3bfed37001dRob Clark#define SMP_BLK_SIZE 4096 2506c0dd96bfbba8a9368ffd7c4b12d3bfed37001dRob Clark#define SMP_ENTRIES_PER_BLK (SMP_BLK_SIZE / 16) 2606c0dd96bfbba8a9368ffd7c4b12d3bfed37001dRob Clark 2706c0dd96bfbba8a9368ffd7c4b12d3bfed37001dRob Clarktypedef DECLARE_BITMAP(mdp5_smp_state_t, MAX_SMP_BLOCKS); 2806c0dd96bfbba8a9368ffd7c4b12d3bfed37001dRob Clark 2906c0dd96bfbba8a9368ffd7c4b12d3bfed37001dRob Clarkstruct mdp5_client_smp_state { 3006c0dd96bfbba8a9368ffd7c4b12d3bfed37001dRob Clark mdp5_smp_state_t inuse; 3106c0dd96bfbba8a9368ffd7c4b12d3bfed37001dRob Clark mdp5_smp_state_t pending; 3206c0dd96bfbba8a9368ffd7c4b12d3bfed37001dRob Clark}; 3306c0dd96bfbba8a9368ffd7c4b12d3bfed37001dRob Clark 3406c0dd96bfbba8a9368ffd7c4b12d3bfed37001dRob Clarkstruct mdp5_kms; 3506c0dd96bfbba8a9368ffd7c4b12d3bfed37001dRob Clark 3606c0dd96bfbba8a9368ffd7c4b12d3bfed37001dRob Clarkint mdp5_smp_request(struct mdp5_kms *mdp5_kms, enum mdp5_client_id cid, int nblks); 3706c0dd96bfbba8a9368ffd7c4b12d3bfed37001dRob Clarkvoid mdp5_smp_configure(struct mdp5_kms *mdp5_kms, enum mdp5_client_id cid); 3806c0dd96bfbba8a9368ffd7c4b12d3bfed37001dRob Clarkvoid mdp5_smp_commit(struct mdp5_kms *mdp5_kms, enum mdp5_client_id cid); 3906c0dd96bfbba8a9368ffd7c4b12d3bfed37001dRob Clark 4006c0dd96bfbba8a9368ffd7c4b12d3bfed37001dRob Clark 4106c0dd96bfbba8a9368ffd7c4b12d3bfed37001dRob Clark#endif /* __MDP5_SMP_H__ */ 42