From b22da3d8526a935aa31e086e63f60ff3246cb61c Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Sat, 09 Dec 2023 07:24:11 +0000
Subject: [PATCH] add stmac read mac form eeprom
---
kernel/drivers/video/fbdev/mmp/hw/mmp_ctrl.c | 79 ++++++++++++++++++---------------------
1 files changed, 37 insertions(+), 42 deletions(-)
diff --git a/kernel/drivers/video/fbdev/mmp/hw/mmp_ctrl.c b/kernel/drivers/video/fbdev/mmp/hw/mmp_ctrl.c
index fcdbb2d..061a105 100644
--- a/kernel/drivers/video/fbdev/mmp/hw/mmp_ctrl.c
+++ b/kernel/drivers/video/fbdev/mmp/hw/mmp_ctrl.c
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
/*
* linux/drivers/video/mmp/hw/mmp_ctrl.c
* Marvell MMP series Display Controller support
@@ -6,20 +7,6 @@
* Authors: Guoqing Li <ligq@marvell.com>
* Lisa Du <cldu@marvell.com>
* Zhou Zhu <zzhu3@marvell.com>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see <http://www.gnu.org/licenses/>.
- *
*/
#include <linux/module.h>
#include <linux/moduleparam.h>
@@ -149,19 +136,26 @@
mutex_lock(&overlay->access_ok);
if (overlay_is_vid(overlay)) {
- writel_relaxed(win->pitch[0], ®s->v_pitch_yc);
- writel_relaxed(win->pitch[2] << 16 |
- win->pitch[1], ®s->v_pitch_uv);
+ writel_relaxed(win->pitch[0],
+ (void __iomem *)®s->v_pitch_yc);
+ writel_relaxed(win->pitch[2] << 16 | win->pitch[1],
+ (void __iomem *)®s->v_pitch_uv);
- writel_relaxed((win->ysrc << 16) | win->xsrc, ®s->v_size);
- writel_relaxed((win->ydst << 16) | win->xdst, ®s->v_size_z);
- writel_relaxed(win->ypos << 16 | win->xpos, ®s->v_start);
+ writel_relaxed((win->ysrc << 16) | win->xsrc,
+ (void __iomem *)®s->v_size);
+ writel_relaxed((win->ydst << 16) | win->xdst,
+ (void __iomem *)®s->v_size_z);
+ writel_relaxed(win->ypos << 16 | win->xpos,
+ (void __iomem *)®s->v_start);
} else {
- writel_relaxed(win->pitch[0], ®s->g_pitch);
+ writel_relaxed(win->pitch[0], (void __iomem *)®s->g_pitch);
- writel_relaxed((win->ysrc << 16) | win->xsrc, ®s->g_size);
- writel_relaxed((win->ydst << 16) | win->xdst, ®s->g_size_z);
- writel_relaxed(win->ypos << 16 | win->xpos, ®s->g_start);
+ writel_relaxed((win->ysrc << 16) | win->xsrc,
+ (void __iomem *)®s->g_size);
+ writel_relaxed((win->ydst << 16) | win->xdst,
+ (void __iomem *)®s->g_size_z);
+ writel_relaxed(win->ypos << 16 | win->xpos,
+ (void __iomem *)®s->g_start);
}
dmafetch_set_fmt(overlay);
@@ -246,11 +240,11 @@
memcpy(&overlay->addr, addr, sizeof(struct mmp_addr));
if (overlay_is_vid(overlay)) {
- writel_relaxed(addr->phys[0], ®s->v_y0);
- writel_relaxed(addr->phys[1], ®s->v_u0);
- writel_relaxed(addr->phys[2], ®s->v_v0);
+ writel_relaxed(addr->phys[0], (void __iomem *)®s->v_y0);
+ writel_relaxed(addr->phys[1], (void __iomem *)®s->v_u0);
+ writel_relaxed(addr->phys[2], (void __iomem *)®s->v_v0);
} else
- writel_relaxed(addr->phys[0], ®s->g_0);
+ writel_relaxed(addr->phys[0], (void __iomem *)®s->g_0);
return overlay->addr.phys[0];
}
@@ -281,16 +275,18 @@
tmp |= dsi_rbswap & CFG_INTFRBSWAP_MASK;
writel_relaxed(tmp, ctrl_regs(path) + intf_rbswap_ctrl(path->id));
- writel_relaxed((mode->yres << 16) | mode->xres, ®s->screen_active);
+ writel_relaxed((mode->yres << 16) | mode->xres,
+ (void __iomem *)®s->screen_active);
writel_relaxed((mode->left_margin << 16) | mode->right_margin,
- ®s->screen_h_porch);
+ (void __iomem *)®s->screen_h_porch);
writel_relaxed((mode->upper_margin << 16) | mode->lower_margin,
- ®s->screen_v_porch);
+ (void __iomem *)®s->screen_v_porch);
total_x = mode->xres + mode->left_margin + mode->right_margin +
mode->hsync_len;
total_y = mode->yres + mode->upper_margin + mode->lower_margin +
mode->vsync_len;
- writel_relaxed((total_y << 16) | total_x, ®s->screen_size);
+ writel_relaxed((total_y << 16) | total_x,
+ (void __iomem *)®s->screen_size);
/* vsync ctrl */
if (path->output_type == PATH_OUT_DSI)
@@ -298,7 +294,7 @@
else
vsync_ctrl = ((mode->xres + mode->right_margin) << 16)
| (mode->xres + mode->right_margin);
- writel_relaxed(vsync_ctrl, ®s->vsync_ctrl);
+ writel_relaxed(vsync_ctrl, (void __iomem *)®s->vsync_ctrl);
/* set pixclock div */
sclk_src = clk_get_rate(path_to_ctrl(path)->clk);
@@ -379,9 +375,9 @@
writel_relaxed(dma_ctrl1, ctrl_regs(path) + dma_ctrl(1, path->id));
/* Configure default register values */
- writel_relaxed(0x00000000, ®s->blank_color);
- writel_relaxed(0x00000000, ®s->g_1);
- writel_relaxed(0x00000000, ®s->g_start);
+ writel_relaxed(0x00000000, (void __iomem *)®s->blank_color);
+ writel_relaxed(0x00000000, (void __iomem *)®s->g_1);
+ writel_relaxed(0x00000000, (void __iomem *)®s->g_start);
/*
* 1.enable multiple burst request in DMA AXI
@@ -446,7 +442,7 @@
{
struct mmp_mach_plat_info *mi;
struct resource *res;
- int ret, i, size, irq;
+ int ret, i, irq;
struct mmphw_path_plat *path_plat;
struct mmphw_ctrl *ctrl = NULL;
@@ -460,7 +456,6 @@
irq = platform_get_irq(pdev, 0);
if (irq < 0) {
- dev_err(&pdev->dev, "%s: no IRQ defined\n", __func__);
ret = -ENOENT;
goto failed;
}
@@ -474,9 +469,9 @@
}
/* allocate */
- size = sizeof(struct mmphw_ctrl) + sizeof(struct mmphw_path_plat) *
- mi->path_num;
- ctrl = devm_kzalloc(&pdev->dev, size, GFP_KERNEL);
+ ctrl = devm_kzalloc(&pdev->dev,
+ struct_size(ctrl, path_plats, mi->path_num),
+ GFP_KERNEL);
if (!ctrl) {
ret = -ENOMEM;
goto failed;
@@ -498,7 +493,7 @@
goto failed;
}
- ctrl->reg_base = devm_ioremap_nocache(ctrl->dev,
+ ctrl->reg_base = devm_ioremap(ctrl->dev,
res->start, resource_size(res));
if (ctrl->reg_base == NULL) {
dev_err(ctrl->dev, "%s: res %pR map failed\n", __func__, res);
--
Gitblit v1.6.2