[go: nahoru, domu]

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