static dma_addr_t paddr;
static bool v3p_flag;
static int alpha_blending_version;
+static bool pxp_legacy;
struct pxp_dma {
struct dma_device dma;
pixmap->paddr = param->paddr;
pixmap->bpp = get_bpp_from_fmt(pixmap->format);
- if (!param->stride || (param->stride == param->width))
- pixmap->pitch = param->width * pixmap->bpp >> 3;
- else
- pixmap->pitch = param->stride;
+ if (pxp_legacy) {
+ pixmap->pitch = (param->stride) ? (param->stride * pixmap->bpp >> 3) :
+ (param->width * pixmap->bpp >> 3);
+ } else {
+ if (!param->stride || (param->stride == param->width))
+ pixmap->pitch = param->width * pixmap->bpp >> 3;
+ else
+ pixmap->pitch = param->stride;
+ }
pixmap->crop.x = param->crop.left;
pixmap->crop.y = param->crop.top;
else
alpha_blending_version = PXP_ALPHA_BLENDING_NONE;
+ pxp_legacy = (proc_data->pxp_legacy) ? true : false;
+
/* Save PxP configuration */
list_for_each_entry(child, &desc->tx_list, list) {
if (i == 0) { /* Output */
#define ALPHA_MODE_LEGACY 0x2
#define ALPHA_MODE_PORTER_DUFF 0x3
+#define PXP_DEVICE_LEGACY
+
/* Order significant! */
enum pxp_channel_status {
PXP_CHANNEL_FREE,
bool reagl_en; /* enable reagl/-d */
bool reagl_d_en; /* enable reagl or reagl-d */
bool detection_only;
+ bool pxp_legacy;
int lut;
bool lut_cleanup;
unsigned int lut_status_1;