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

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
...@@ -225,6 +225,8 @@ struct sh_hdmi { ...@@ -225,6 +225,8 @@ struct sh_hdmi {
struct notifier_block notifier; 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) static void hdmi_write(struct sh_hdmi *hdmi, u8 data, u8 reg)
{ {
iowrite8(data, hdmi->base + reg); iowrite8(data, hdmi->base + reg);
...@@ -1204,11 +1206,9 @@ static int sh_hdmi_notify(struct notifier_block *nb, ...@@ -1204,11 +1206,9 @@ static int sh_hdmi_notify(struct notifier_block *nb,
{ {
struct fb_event *event = data; struct fb_event *event = data;
struct fb_info *info = event->info; struct fb_info *info = event->info;
struct sh_mobile_lcdc_chan *ch = info->par; struct sh_hdmi *hdmi = notifier_to_hdmi(nb);
struct sh_mobile_lcdc_board_cfg *board_cfg = &ch->cfg.board_cfg;
struct sh_hdmi *hdmi = board_cfg->board_data;
if (!hdmi || nb != &hdmi->notifier || hdmi->info != info) if (hdmi->info != info)
return NOTIFY_DONE; return NOTIFY_DONE;
switch(action) { switch(action) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment