From: Pavel Machek <pavel@ucw.cz>
To: Sakari Ailus <sakari.ailus@iki.fi>
Cc: ivo.g.dimitrov.75@gmail.com, sre@kernel.org,
pali.rohar@gmail.com, linux-media@vger.kernel.org,
galak@codeaurora.org, mchehab@osg.samsung.com,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v4] media: Driver for Toshiba et8ek8 5MP sensor
Date: Sun, 20 Nov 2016 16:20:36 +0100 [thread overview]
Message-ID: <20161120152034.GA5189@amd> (raw)
In-Reply-To: <20161119232943.GF13965@valkosipuli.retiisi.org.uk>
[-- Attachment #1: Type: text/plain, Size: 5070 bytes --]
Hi!
> > + u32 min, max;
> > +
> > + v4l2_ctrl_handler_init(&sensor->ctrl_handler, 4);
> > +
> > + /* V4L2_CID_GAIN */
> > + v4l2_ctrl_new_std(&sensor->ctrl_handler, &et8ek8_ctrl_ops,
> > + V4L2_CID_GAIN, 0, ARRAY_SIZE(et8ek8_gain_table) - 1,
> > + 1, 0);
> > +
> > + /* V4L2_CID_EXPOSURE */
> > + min = et8ek8_exposure_rows_to_us(sensor, 1);
> > + max = et8ek8_exposure_rows_to_us(sensor,
> > + sensor->current_reglist->mode.max_exp);
>
> Haven't I suggested to use lines instead? I vaguely remember doing so...
> this would remove quite some code from the driver.
Do you have some more hints? I'll try to figure it out...
> > +#ifdef CONFIG_PM
> > +
> > +static int et8ek8_suspend(struct device *dev)
>
> static int __maybe_unused ...
>
> Please check the smiapp patches I just sent to the list. The smiapp driver
> had similar issues.
Ok, I guess I figured it out from other code (no network at the
moment).
> > + if (sensor->power_count) {
> > + gpiod_set_value(sensor->reset, 0);
> > + clk_disable_unprepare(sensor->ext_clk);
> > + sensor->power_count = 0;
> > + }
> > +
>
> You're missing v4l2_async_unregister_subdev() here.
Added.
> > + v4l2_device_unregister_subdev(&sensor->subdev);
> > + device_remove_file(&client->dev, &dev_attr_priv_mem);
> > + v4l2_ctrl_handler_free(&sensor->ctrl_handler);
> > + media_entity_cleanup(&sensor->subdev.entity);
> > +
> > + return 0;
> > +}
> > +MODULE_DEVICE_TABLE(i2c, et8ek8_id_table);
> > +
> > +static const struct dev_pm_ops et8ek8_pm_ops = {
> > + .suspend = et8ek8_suspend,
> > + .resume = et8ek8_resume,
>
> How about using SET_SYSTEM_SLEEP_PM_OPS() here?
Ok, I guess that saves few lines.
> > +module_i2c_driver(et8ek8_i2c_driver);
> > +
> > +MODULE_AUTHOR("Sakari Ailus <sakari.ailus@iki.fi>");
>
> You should put your name here as well. :-)
>
> It's been a long time I even tried to use it. :-i
Me? Ok, I can list myself there, but I don't really know much about
that driver.
> > + * Contact: Sakari Ailus <sakari.ailus@iki.fi>
> > + * Tuukka Toivonen <tuukka.o.toivonen@nokia.com>
>
> Tuukka's e-mail is wrong here (the correct address is elsewhere in the
> patch).
Fixed.
Ok, these cleanups are here.
Pavel
diff --git a/drivers/media/i2c/et8ek8/et8ek8_driver.c b/drivers/media/i2c/et8ek8/et8ek8_driver.c
index eb131b2..eb8c1b4 100644
--- a/drivers/media/i2c/et8ek8/et8ek8_driver.c
+++ b/drivers/media/i2c/et8ek8/et8ek8_driver.c
@@ -5,6 +5,7 @@
*
* Contact: Sakari Ailus <sakari.ailus@iki.fi>
* Tuukka Toivonen <tuukkat76@gmail.com>
+ * Pavel Machek <pavel@ucw.cz>
*
* Based on code from Toni Leinonen <toni.leinonen@offcode.fi>.
*
@@ -1435,9 +1436,7 @@ static const struct v4l2_subdev_internal_ops et8ek8_internal_ops = {
/* --------------------------------------------------------------------------
* I2C driver
*/
-#ifdef CONFIG_PM
-
-static int et8ek8_suspend(struct device *dev)
+static int __maybe_unused et8ek8_suspend(struct device *dev)
{
struct i2c_client *client = to_i2c_client(dev);
struct v4l2_subdev *subdev = i2c_get_clientdata(client);
@@ -1449,7 +1448,7 @@ static int et8ek8_suspend(struct device *dev)
return __et8ek8_set_power(sensor, false);
}
-static int et8ek8_resume(struct device *dev)
+static int __maybe_unused et8ek8_resume(struct device *dev)
{
struct i2c_client *client = to_i2c_client(dev);
struct v4l2_subdev *subdev = i2c_get_clientdata(client);
@@ -1461,13 +1460,6 @@ static int et8ek8_resume(struct device *dev)
return __et8ek8_set_power(sensor, true);
}
-#else
-
-#define et8ek8_suspend NULL
-#define et8ek8_resume NULL
-
-#endif /* CONFIG_PM */
-
static int et8ek8_probe(struct i2c_client *client,
const struct i2c_device_id *devid)
{
@@ -1542,6 +1534,7 @@ static int __exit et8ek8_remove(struct i2c_client *client)
v4l2_device_unregister_subdev(&sensor->subdev);
device_remove_file(&client->dev, &dev_attr_priv_mem);
v4l2_ctrl_handler_free(&sensor->ctrl_handler);
+ v4l2_async_unregister_subdev(&sensor->subdev);
media_entity_cleanup(&sensor->subdev.entity);
return 0;
@@ -1559,8 +1552,7 @@ static const struct i2c_device_id et8ek8_id_table[] = {
MODULE_DEVICE_TABLE(i2c, et8ek8_id_table);
static const struct dev_pm_ops et8ek8_pm_ops = {
- .suspend = et8ek8_suspend,
- .resume = et8ek8_resume,
+ SET_SYSTEM_SLEEP_PM_OPS(et8ek8_suspend, et8ek8_resume)
};
static struct i2c_driver et8ek8_i2c_driver = {
@@ -1576,6 +1568,6 @@ static struct i2c_driver et8ek8_i2c_driver = {
module_i2c_driver(et8ek8_i2c_driver);
-MODULE_AUTHOR("Sakari Ailus <sakari.ailus@iki.fi>");
+MODULE_AUTHOR("Sakari Ailus <sakari.ailus@iki.fi>, Pavel Machek <pavel@ucw.cz");
MODULE_DESCRIPTION("Toshiba ET8EK8 camera sensor driver");
MODULE_LICENSE("GPL");
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 181 bytes --]
next prev parent reply other threads:[~2016-11-20 15:20 UTC|newest]
Thread overview: 111+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-10-23 20:03 [PATCH v4] media: Driver for Toshiba et8ek8 5MP sensor Pavel Machek
2016-10-23 20:19 ` Sakari Ailus
2016-10-23 20:33 ` Pavel Machek
2016-10-31 22:54 ` Sakari Ailus
2016-11-01 6:36 ` Ivaylo Dimitrov
2016-11-01 20:11 ` Sakari Ailus
2016-11-01 22:14 ` Ivaylo Dimitrov
2016-11-02 8:15 ` Pavel Machek
2016-11-02 8:16 ` Ivaylo Dimitrov
2016-11-01 15:39 ` Pavel Machek
2016-11-01 20:08 ` Sakari Ailus
2016-11-03 8:14 ` Pavel Machek
2016-11-03 22:48 ` Sebastian Reichel
2016-11-03 23:05 ` Sakari Ailus
2016-11-03 23:40 ` Ivaylo Dimitrov
2016-11-04 0:05 ` Sebastian Reichel
2016-11-14 21:58 ` Sakari Ailus
2016-11-15 0:53 ` Sebastian Reichel
2016-11-15 10:54 ` Pavel Machek
2016-11-15 22:55 ` Sakari Ailus
2016-10-23 20:40 ` Pavel Machek
2016-10-31 22:58 ` Sakari Ailus
2016-11-02 0:45 ` Laurent Pinchart
2016-10-23 20:47 ` Pavel Machek
2016-12-13 21:05 ` Pavel Machek
2016-12-18 21:56 ` Sakari Ailus
2016-11-19 23:29 ` Sakari Ailus
2016-11-20 10:02 ` Pavel Machek
2016-11-20 15:20 ` Pavel Machek [this message]
2016-11-20 15:21 ` Pavel Machek
2016-11-20 15:31 ` Pavel Machek
2016-12-14 12:24 ` [PATCH v5] " Pavel Machek
2016-12-14 13:03 ` Pali Rohár
2016-12-14 15:52 ` Ivaylo Dimitrov
2016-12-14 20:12 ` Pavel Machek
2016-12-14 22:07 ` Pali Rohár
2016-12-14 22:35 ` Pavel Machek
2016-12-18 22:01 ` Sakari Ailus
2016-12-20 12:37 ` Pavel Machek
2016-12-20 14:01 ` Sakari Ailus
2016-12-20 22:42 ` Pavel Machek
2016-12-21 13:42 ` Sakari Ailus
2016-12-21 22:42 ` Pavel Machek
2016-12-21 23:29 ` Sakari Ailus
2016-12-22 9:34 ` Pavel Machek
2016-12-22 10:01 ` [PATCH v6] " Pavel Machek
2016-12-22 13:39 ` [RFC/PATCH] media: Add video bus switch Pavel Machek
2016-12-22 14:32 ` Sebastian Reichel
2016-12-22 20:53 ` Pavel Machek
2016-12-22 23:11 ` Sebastian Reichel
2016-12-22 22:42 ` Pavel Machek
2016-12-22 23:40 ` Sebastian Reichel
2016-12-23 11:42 ` Pavel Machek
2016-12-23 18:53 ` Ivaylo Dimitrov
2016-12-23 20:56 ` Pavel Machek
2016-12-24 14:26 ` Pavel Machek
2016-12-24 14:43 ` Pavel Machek
2016-12-24 15:20 ` [PATCH] " Pavel Machek
2016-12-24 18:35 ` kbuild test robot
2017-01-12 11:17 ` Pavel Machek
2017-02-03 22:25 ` Sakari Ailus
2017-02-05 22:16 ` Pavel Machek
2017-02-05 22:44 ` Sakari Ailus
2017-02-03 12:35 ` [PATCH] devicetree: " Pavel Machek
2017-02-03 12:35 ` Pavel Machek
2017-02-03 13:07 ` Sakari Ailus
2017-02-03 21:06 ` Pavel Machek
2017-02-03 21:34 ` Sakari Ailus
2017-02-04 21:56 ` Pavel Machek
2017-02-04 22:33 ` Sakari Ailus
2017-02-04 22:33 ` Sakari Ailus
2017-02-05 21:12 ` Pavel Machek
2017-02-05 23:40 ` Sebastian Reichel
2017-02-05 23:40 ` Sebastian Reichel
2017-02-06 9:37 ` [PATCH] media: add operation to get configuration of "the other side" of the link Pavel Machek
2017-12-19 15:43 ` Sakari Ailus
2017-12-20 17:54 ` [PATCH] devicetree: Add video bus switch Laurent Pinchart
2017-12-20 17:54 ` Laurent Pinchart
2017-12-21 9:05 ` Sakari Ailus
2017-12-21 9:05 ` Sakari Ailus
2017-12-21 16:36 ` Ivaylo Dimitrov
2017-12-21 16:36 ` Ivaylo Dimitrov
2017-12-22 9:24 ` Pavel Machek
2017-12-22 9:24 ` Pavel Machek
2017-02-03 13:32 ` Pali Rohár
2017-02-03 21:07 ` Pavel Machek
2017-02-03 21:07 ` Pavel Machek
2017-02-04 1:04 ` Sebastian Reichel
2017-02-04 1:04 ` Sebastian Reichel
2017-02-08 21:36 ` Rob Herring
2017-02-08 22:30 ` Pavel Machek
2017-02-09 23:02 ` Rob Herring
2017-02-09 23:03 ` Rob Herring
[not found] ` <CAL_JsqLfbAxBbXOyK0QOCc=wPe6=a+qyrAwtdbt3DtspK6oiaw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-02-10 19:54 ` Pavel Machek
2017-02-10 19:54 ` Pavel Machek
2017-02-10 22:17 ` Sakari Ailus
2017-02-10 22:17 ` Sakari Ailus
[not found] ` <20170210221742.GI13854-S+BSfZ9RZZmRSg0ZkenSGLdO1Tsj/99ntUK59QYPAWc@public.gmane.org>
2017-02-13 9:54 ` Pavel Machek
2017-02-13 9:54 ` Pavel Machek
2017-02-13 10:20 ` Sakari Ailus
2017-02-13 10:20 ` Sakari Ailus
2017-03-02 8:54 ` Pavel Machek
2017-02-08 22:34 ` Pavel Machek
2017-02-09 22:58 ` Rob Herring
[not found] ` <CAL_JsqK2RHLoLc_ikHzP2B5_Lof2g9NG+zvamGe4o1ko1ggGQA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-02-10 21:17 ` Pavel Machek
2017-02-10 21:17 ` Pavel Machek
2016-12-27 9:26 ` [PATCH v6] media: Driver for Toshiba et8ek8 5MP sensor Sakari Ailus
2016-12-27 20:45 ` Pavel Machek
2016-12-27 20:59 ` [PATCH] mark myself as mainainer for camera on N900 Pavel Machek
2016-12-27 23:57 ` Sebastian Reichel
2017-01-25 13:48 ` Sakari Ailus
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20161120152034.GA5189@amd \
--to=pavel@ucw.cz \
--cc=galak@codeaurora.org \
--cc=ivo.g.dimitrov.75@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=mchehab@osg.samsung.com \
--cc=pali.rohar@gmail.com \
--cc=sakari.ailus@iki.fi \
--cc=sre@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.