}
static const struct of_device_id mtk_uart_apdma_match[] = {
- { .compatible = "mediatek,mt6577-uart-dma", },
+ { .compatible = "mediatek,mt6577-uart-dma", .data = (void *)32 },
+ { .compatible = "mediatek,mt6795-uart-dma", .data = (void *)33 },
{ /* sentinel */ },
};
MODULE_DEVICE_TABLE(of, mtk_uart_apdma_match);
{
struct device_node *np = pdev->dev.of_node;
struct mtk_uart_apdmadev *mtkd;
- int bit_mask = 32, rc;
struct mtk_chan *c;
- unsigned int i;
+ unsigned int bit_mask, i;
+ int rc;
mtkd = devm_kzalloc(&pdev->dev, sizeof(*mtkd), GFP_KERNEL);
if (!mtkd)
return rc;
}
- if (of_property_read_bool(np, "mediatek,dma-33bits"))
+ bit_mask = (unsigned int)(uintptr_t)of_device_get_match_data(&pdev->dev);
+ if (bit_mask > 32)
mtkd->support_33bits = true;
- if (mtkd->support_33bits)
- bit_mask = 33;
-
rc = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(bit_mask));
if (rc)
return rc;