Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 12ee2502 authored by Laurent Pinchart's avatar Laurent Pinchart
Browse files

fbdev: sh_mobile_hdmi: Don't access LCDC channel in notifier callback



Instead of relying on info->par being a pointer to an LCDC channel, cast
the notifier block pointer to an sh_hdmi pointer.

Signed-off-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
parent 37c5dcc2
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -225,6 +225,8 @@ struct sh_hdmi {
	struct notifier_block notifier;
};

#define notifier_to_hdmi(n)	container_of(n, struct sh_hdmi, notifier)

static void hdmi_write(struct sh_hdmi *hdmi, u8 data, u8 reg)
{
	iowrite8(data, hdmi->base + reg);
@@ -1204,11 +1206,9 @@ static int sh_hdmi_notify(struct notifier_block *nb,
{
	struct fb_event *event = data;
	struct fb_info *info = event->info;
	struct sh_mobile_lcdc_chan *ch = info->par;
	struct sh_mobile_lcdc_board_cfg	*board_cfg = &ch->cfg.board_cfg;
	struct sh_hdmi *hdmi = board_cfg->board_data;
	struct sh_hdmi *hdmi = notifier_to_hdmi(nb);

	if (!hdmi || nb != &hdmi->notifier || hdmi->info != info)
	if (hdmi->info != info)
		return NOTIFY_DONE;

	switch(action) {