Lines Matching refs:data

345  * struct fsl_diu_data - per-DIU data structure
357 * @cursor: hardware cursor data
363 * This data structure must be allocated with 32-byte alignment, so that the
379 /* It's easier to parse the cursor data as little-endian */
381 /* Blank cursor data -- used to hide the cursor */
383 /* Scratch cursor data -- used to build new cursor */
504 struct fsl_diu_data *data = mfbi->parent;
505 struct diu __iomem *hw = data->diu_reg;
512 cmfbi = &data->mfb[2];
523 cmfbi = &data->mfb[4];
534 pmfbi = &data->mfb[1];
536 if (hw->desc[1] == data->dummy_ad.paddr)
542 pmfbi = &data->mfb[3];
544 if (hw->desc[2] == data->dummy_ad.paddr)
556 struct fsl_diu_data *data = mfbi->parent;
557 struct diu __iomem *hw = data->diu_reg;
564 cmfbi = &data->mfb[2];
569 wr_reg_wa(&hw->desc[1], data->dummy_ad.paddr);
573 cmfbi = &data->mfb[4];
578 wr_reg_wa(&hw->desc[2], data->dummy_ad.paddr);
582 pmfbi = &data->mfb[1];
589 wr_reg_wa(&hw->desc[1], data->dummy_ad.paddr);
593 pmfbi = &data->mfb[3];
600 wr_reg_wa(&hw->desc[2], data->dummy_ad.paddr);
609 struct fsl_diu_data *data = mfbi->parent;
610 struct diu __iomem *hw = data->diu_reg;
618 struct fsl_diu_data *data = mfbi->parent;
619 struct diu __iomem *hw = data->diu_reg;
628 struct fsl_diu_data *data = mfbi->parent;
634 base_plane_width = data->fsl_diu_info[0].var.xres;
635 base_plane_height = data->fsl_diu_info[0].var.yres;
650 lower_aoi_mfbi = data->fsl_diu_info[index+1].par;
668 upper_aoi_mfbi = data->fsl_diu_info[index-1].par;
669 upper_aoi_height = data->fsl_diu_info[index-1].var.yres;
803 struct fsl_diu_data *data = mfbi->parent;
810 hw = data->diu_reg;
813 diu_ops.set_monitor_port(data->monitor_port);
814 gamma_table_base = data->gamma;
823 diu_ops.set_gamma_table(data->monitor_port, data->gamma);
829 out_be32(&hw->gamma, DMA_ADDR(data, gamma));
976 * Cursor data is represented as a sequence of 'width' bits packed into bytes.
979 * 7) / 8 bytes of 'data'
988 * is 24x24, then the first three bytes of 'image' contain the pixel data for
999 struct fsl_diu_data *data = mfbi->parent;
1000 __le16 *cursor = data->cursor;
1020 * Set a hardware cursor. The image data for the cursor is passed via the
1026 struct fsl_diu_data *data = mfbi->parent;
1027 struct diu __iomem *hw = data->diu_reg;
1037 * all the image data, in expectation of new data. However,
1041 memset(data->cursor, 0, sizeof(data->cursor));
1061 * Determine the size of the cursor image data. Normally,
1088 /* Use 32-bit operations on the data to improve performance */
1089 image = (uint32_t *)data->next_cursor;
1090 source = (uint32_t *)cursor->image.data;
1105 * Show or hide the cursor. The cursor data is always stored in the
1109 * redirect the CURSOR register to the real cursor data.
1112 out_be32(&hw->cursor, DMA_ADDR(data, cursor));
1114 out_be32(&hw->cursor, DMA_ADDR(data, blank_cursor));
1123 * data. This means we depend on the data in var inside fb_info to be
1132 struct fsl_diu_data *data = mfbi->parent;
1136 hw = data->diu_reg;
1154 ad->pix_fmt = diu_ops.get_pixel_format(data->monitor_port,
1362 struct fsl_diu_data *data = mfbi->parent;
1364 if (copy_from_user(data->gamma, buf, sizeof(data->gamma)))
1366 setbits32(&data->diu_reg->gamma, 0); /* Force table reload */
1370 struct fsl_diu_data *data = mfbi->parent;
1372 if (copy_to_user(buf, data->gamma, sizeof(data->gamma)))
1385 static inline void fsl_diu_enable_interrupts(struct fsl_diu_data *data)
1392 clrbits32(&data->diu_reg->int_mask, int_mask);
1432 struct fsl_diu_data *data = mfbi->parent;
1438 struct mfb_info *mi = data->fsl_diu_info[i].par;
1444 out_be32(&data->diu_reg->int_mask, 0xffffffff);
1469 struct fsl_diu_data *data = mfbi->parent;
1486 if (data->has_edid) {
1488 fb_edid_to_monspecs(data->edid_data, &info->monspecs);
1506 if ((mfbi->index == PLANE0) && data->has_edid)
1612 struct fsl_diu_data *data;
1614 data = dev_get_drvdata(&ofdev->dev);
1615 disable_lcdc(data->fsl_diu_info);
1622 struct fsl_diu_data *data;
1625 data = dev_get_drvdata(&ofdev->dev);
1627 fsl_diu_enable_interrupts(data);
1628 update_lcdc(data->fsl_diu_info);
1630 if (data->mfb[i].count)
1631 fsl_diu_enable_panel(&data->fsl_diu_info[i]);
1646 struct fsl_diu_data *data =
1649 old_monitor_port = data->monitor_port;
1650 data->monitor_port = fsl_diu_name_to_port(buf);
1652 if (old_monitor_port != data->monitor_port) {
1659 fsl_diu_set_par(&data->fsl_diu_info[i]);
1667 struct fsl_diu_data *data =
1670 switch (data->monitor_port) {
1686 struct fsl_diu_data *data;
1692 data = dmam_alloc_coherent(&pdev->dev, sizeof(struct fsl_diu_data),
1694 if (!data)
1696 data->dma_addr = dma_addr;
1705 if ((unsigned long)data & 31) {
1711 spin_lock_init(&data->reg_lock);
1714 struct fb_info *info = &data->fsl_diu_info[i];
1717 info->par = &data->mfb[i];
1723 data->ad[i].paddr = DMA_ADDR(data, ad[i]);
1727 /* Initialize the AOI data structure */
1730 mfbi->parent = data;
1731 mfbi->ad = &data->ad[i];
1734 /* Get the EDID data from the device tree, if present */
1737 memcpy(data->edid_data, prop, EDID_LENGTH);
1738 data->has_edid = true;
1741 data->diu_reg = of_iomap(np, 0);
1742 if (!data->diu_reg) {
1749 data->irq = irq_of_parse_and_map(np, 0);
1751 if (!data->irq) {
1756 data->monitor_port = monitor_port;
1759 data->dummy_ad.addr = cpu_to_le32(DMA_ADDR(data, dummy_aoi));
1760 data->dummy_ad.pix_fmt = 0x88882317;
1761 data->dummy_ad.src_size_g_alpha = cpu_to_le32((4 << 12) | 4);
1762 data->dummy_ad.aoi_size = cpu_to_le32((4 << 16) | 2);
1763 data->dummy_ad.offset_xyi = 0;
1764 data->dummy_ad.offset_xyd = 0;
1765 data->dummy_ad.next_ad = 0;
1766 data->dummy_ad.paddr = DMA_ADDR(data, dummy_ad);
1772 if (in_be32(&data->diu_reg->diu_mode) == MFB_MODE0)
1773 out_be32(&data->diu_reg->desc[0], 0);
1775 out_be32(&data->diu_reg->desc[1], data->dummy_ad.paddr);
1776 out_be32(&data->diu_reg->desc[2], data->dummy_ad.paddr);
1782 out_be32(&data->diu_reg->int_mask, 0xffffffff);
1783 in_be32(&data->diu_reg->int_status);
1785 ret = request_irq(data->irq, fsl_diu_isr, 0, "fsl-diu-fb",
1786 data->diu_reg);
1793 ret = install_fb(&data->fsl_diu_info[i]);
1796 free_irq(data->irq, data->diu_reg);
1801 sysfs_attr_init(&data->dev_attr.attr);
1802 data->dev_attr.attr.name = "monitor";
1803 data->dev_attr.attr.mode = S_IRUGO|S_IWUSR;
1804 data->dev_attr.show = show_monitor;
1805 data->dev_attr.store = store_monitor;
1806 ret = device_create_file(&pdev->dev, &data->dev_attr);
1809 data->dev_attr.attr.name);
1812 dev_set_drvdata(&pdev->dev, data);
1817 uninstall_fb(&data->fsl_diu_info[i]);
1819 iounmap(data->diu_reg);
1826 struct fsl_diu_data *data;
1829 data = dev_get_drvdata(&pdev->dev);
1830 disable_lcdc(&data->fsl_diu_info[0]);
1832 free_irq(data->irq, data->diu_reg);
1835 uninstall_fb(&data->fsl_diu_info[i]);
1837 iounmap(data->diu_reg);
1940 pr_debug("fsl-diu-fb: coherence data size is %zu bytes\n",