From patchwork Wed Mar 23 10:05:58 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Guennadi Liakhovetski X-Patchwork-Id: 654941 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by demeter1.kernel.org (8.14.4/8.14.3) with ESMTP id p2NA601M014235 for ; Wed, 23 Mar 2011 10:06:00 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756005Ab1CWKGA (ORCPT ); Wed, 23 Mar 2011 06:06:00 -0400 Received: from moutng.kundenserver.de ([212.227.17.10]:50517 "EHLO moutng.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755865Ab1CWKF7 (ORCPT ); Wed, 23 Mar 2011 06:05:59 -0400 Received: from axis700.grange (pD9EB90DE.dip0.t-ipconnect.de [217.235.144.222]) by mrelayeu.kundenserver.de (node=mreu0) with ESMTP (Nemesis) id 0MOVST-1Q7ZkR2Fan-005qwy; Wed, 23 Mar 2011 11:05:58 +0100 Received: by axis700.grange (Postfix, from userid 1000) id 33461189B86; Wed, 23 Mar 2011 11:05:58 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by axis700.grange (Postfix) with ESMTP id 30FE6189B85; Wed, 23 Mar 2011 11:05:58 +0100 (CET) Date: Wed, 23 Mar 2011 11:05:58 +0100 (CET) From: Guennadi Liakhovetski X-X-Sender: lyakh@axis700.grange To: Linux Media Mailing List cc: linux-sh@vger.kernel.org Subject: [PATCH] V4L: sh_mobile_csi2: fix module reloading Message-ID: MIME-Version: 1.0 X-Provags-ID: V02:K0:ZqMRUNjxOHjvzZ+9tEzkfXHIpRACcPK0514tuQ6T3ZV gYbn/LNBNkBahu5Kq9jWfK1H+BknBd3f0EWqTpO6JiO0wjssuh itH6lnTuj2RCsYKxMtP2uoWEET0nxneHgNaTB+GOupj+XOtWVc JmrKcknX0wGhrp5bafk62ICIFMJO81bWq7RK3/U+j5bluPlBom cFVItY9CDpA7yHGZFdgzpM9KzquWsWqU/nqf1P6Rs4= Sender: linux-sh-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-sh@vger.kernel.org X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.6 (demeter1.kernel.org [140.211.167.41]); Wed, 23 Mar 2011 10:06:01 +0000 (UTC) diff --git a/drivers/media/video/sh_mobile_csi2.c b/drivers/media/video/sh_mobile_csi2.c index 94e575f..9b68a40 100644 --- a/drivers/media/video/sh_mobile_csi2.c +++ b/drivers/media/video/sh_mobile_csi2.c @@ -38,6 +38,8 @@ struct sh_csi2 { void __iomem *base; struct platform_device *pdev; struct sh_csi2_client_config *client; + unsigned long (*query_bus_param)(struct soc_camera_device *); + int (*set_bus_param)(struct soc_camera_device *, unsigned long); }; static int sh_csi2_try_fmt(struct v4l2_subdev *sd, @@ -216,6 +218,8 @@ static int sh_csi2_notify(struct notifier_block *nb, priv->client = pdata->clients + i; + priv->set_bus_param = icd->ops->set_bus_param; + priv->query_bus_param = icd->ops->query_bus_param; icd->ops->set_bus_param = sh_csi2_set_bus_param; icd->ops->query_bus_param = sh_csi2_query_bus_param; @@ -227,8 +231,10 @@ static int sh_csi2_notify(struct notifier_block *nb, priv->client = NULL; /* Driver is about to be unbound */ - icd->ops->set_bus_param = NULL; - icd->ops->query_bus_param = NULL; + icd->ops->set_bus_param = priv->set_bus_param; + icd->ops->query_bus_param = priv->query_bus_param; + priv->set_bus_param = NULL; + priv->query_bus_param = NULL; v4l2_device_unregister_subdev(&priv->subdev);