arse_fwnode_sensor_common()
> and registers the async sub-devices.
>
> After applying this change, we can see the VCM move when changing the scene.
When you derive Cc list, set some threshold to the get_maintainer.pl, like
scripts/get_maintainer.pl --git --git-min-percent=67
--
With Best Regards,
Andy Shevchenko
",
> +GPIOD_OUT_LOW);
> + if (IS_ERR(ov8856->n_shutdn_gpio)) {
> + dev_err(&client->dev, "failed to get reset-gpios\n");
> + return -EINVAL;
> + }
Ditto.
> +static const struct of_device_id ov8856_of_match[] = {
> + { .compatible = "ovti,ov8856" },
> + {},
No comma needed for terminator line.
> +};
--
With Best Regards,
Andy Shevchenko
On Tue, Sep 10, 2019 at 09:04:45PM +0800, dongchun@mediatek.com wrote:
> From: Dongchun Zhu
>
> This patch adds device tree bindings documentation for the ov8856 CMOS
> image sensor.
New bindings in YAML, please.
--
With Best Regards,
Andy Shevchenko
On Mon, Sep 09, 2019 at 12:57:15PM +0300, Sakari Ailus wrote:
> Hi Andy,
>
> On Mon, Sep 09, 2019 at 12:45:01PM +0300, Andy Shevchenko wrote:
> > On Sat, Sep 07, 2019 at 05:27:27PM +0800, dongchun@mediatek.com wrote:
> > > From: Dongchun Zhu
> > >
> >
ov02a10.txt | 54
> ++
> MAINTAINERS| 7 +++
This doesn't belong to dt-bindings.
--
With Best Regards,
Andy Shevchenko
On Thu, Sep 05, 2019 at 03:00:12PM +0300, Sakari Ailus wrote:
> And I see no reason to add a separate patch just for
> MAINTAINERS change.
It's up to maintainers of the subsystem.
--
With Best Regards,
Andy Shevchenko
On Thu, Sep 05, 2019 at 12:57:34PM +0200, Javier Martinez Canillas wrote:
> On 9/5/19 12:40 PM, Sakari Ailus wrote:
> > On Thu, Sep 05, 2019 at 01:19:08PM +0300, Andy Shevchenko wrote:
> >> On Thu, Sep 05, 2019 at 11:21:34AM +0300, Sakari Ailus wrote:
> >>> On Thu, Se
On Thu, Sep 05, 2019 at 01:48:30PM +0300, Sakari Ailus wrote:
> On Thu, Sep 05, 2019 at 01:14:06PM +0300, Andy Shevchenko wrote:
> > On Thu, Sep 05, 2019 at 03:21:41PM +0800, dongchun@mediatek.com wrote:
> > > From: Dongchun Zhu
> > >
> > > This pa
struct v4l2_subdev *sd = i2c_get_clientdata(client);
Ditto.
> + struct dw9768 *dw9768 = sd_to_dw9768_vcm(sd);
> +
> + return dw9768_power_on(dw9768);
> +}
> +static const struct i2c_device_id dw9768_id_table[] = {
> + { DW9768_NAME, 0 },
> + { },
No comma.
> +};
> +static const struct of_device_id dw9768_of_table[] = {
> + { .compatible = "dongwoon,dw9768" },
> + { },
Ditto.
> +};
--
With Best Regards,
Andy Shevchenko
;
> Could you drop the I²C ID table?
But why?
It will allow you to instanciate the device from user space.
+Cc: Javier.
Javier, is it needed in new code?
--
With Best Regards,
Andy Shevchenko
etree/bindings/media/i2c/dongwoon,dw9768.txt | 9 +
> MAINTAINERS | 7 +++
This should be:
1) two separate patches
2) binding in YAML
--
With Best Regards,
Andy Shevchenko
ower_lock);
> + dw9768_subdev_cleanup(dw9768_dev);
> + dev_err(dev, "Probe failed: %d\n", rval);
Noise. Device core has this already.
> + return rval;
> +}
> +static const struct i2c_device_id dw9768_id_table[] = {
> + { DW9768_NAME, 0 },
> + { { 0 } }
{} is enough.
> +};
> +MODULE_DEVICE_TABLE(i2c, dw9768_id_table);
> +
> +static const struct of_device_id dw9768_of_table[] = {
> + { .compatible = "dongwoon,dw9768" },
> + { { 0 } }
Ditto.
> +};
--
With Best Regards,
Andy Shevchenko
Use fwnode_property_count_uXX() directly, that makes code neater.
Signed-off-by: Andy Shevchenko
---
- drop double 'use' in the commit message
- add conversion for u64 array
drivers/media/v4l2-core/v4l2-fwnode.c | 8 +++-
1 file changed, 3 insertions(+), 5 deletions(-)
diff --git
Use use fwnode_property_count_uXX() directly, that makes code neater.
Signed-off-by: Andy Shevchenko
---
drivers/media/v4l2-core/v4l2-fwnode.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/drivers/media/v4l2-core/v4l2-fwnode.c
b/drivers/media/v4l2-core/v4l2-fwnode.c
On Mon, Jun 25, 2018 at 11:02 AM, Sakari Ailus
wrote:
> Hi Alan,
> On Mon, Jun 25, 2018 at 03:29:41PM +0800, alanx.chi...@intel.com wrote:
Agreed on all Sakari's comments against the series.
--
With Best Regards,
Andy Shevchenko
; I found a solution for it and uploaded a patch to the kernel bugzilla.
>
> See here: https://bugzilla.kernel.org/show_bug.cgi?id=197731
>
> Can somebody of the maintainers have a look on it and apply the patch to the
> kernes sources?
You forget to Cc to maintainers (at least Mauro).
--
With Best Regards,
Andy Shevchenko
.remove = pt1_remove,
> .id_table = pt1_id_table,
> -#if CONFIG_PM_SLEEP
> +#ifdef CONFIG_PM_SLEEP
> .driver.pm = &pt1_pm_ops,
> #endif
> };
> --
> 2.17.0
>
--
With Best Regards,
Andy Shevchenko
es.
> + is_sat = !strncmp(cl->name, TC90522_I2C_DEV_SAT,
> + strlen(TC90522_I2C_DEV_SAT));
In this case I don't see a point to use strNcmp(). Plain strcmp() would work.
--
With Best Regards,
Andy Shevchenko
t;
> - if (!atomisp_subdev_get_rect(sd, cfg, which, pad, target))
> + p = atomisp_subdev_get_rect(sd, cfg, which, pad, target);
> + if (!p)
> return -EINVAL;
> - *r = *atomisp_subdev_get_rect(sd, cfg, which, pad, target);
> + *r = *p;
>
> dev_dbg(isp->dev, "sel actual: l %d t %d w %d h %d\n",
> r->left, r->top, r->width, r->height);
--
Andy Shevchenko
Intel Finland Oy
nd, u8 value);
> +#else
> +static inline int sony_pic_camera_command(int command, u8 value) { return 0;
> };
> +#endif
>
> #endif /* __KERNEL__ */
--
With Best Regards,
Andy Shevchenko
2 *wdata = (void *)&data[2];
> +
> + *wdata = be32_to_cpu(*(__be32 *)&data[2]);
For x86 it is okay, though in general it should use get_unaligned().
--
Andy Shevchenko
Intel Finland Oy
a release?
>
>> > I have no idea. Could you contact the original developers?
>> > The answer is interesting, but I have no idea.
>
>> It seems it will be included in the 4.16 release:
>
>> https://www.mail-archive.com/linux-media@vger.kernel.org/msg122619.html
>
>> Probably just a bit too late for 4.15.
>
>> Frederic
> --
> To unsubscribe from this list: send the line "unsubscribe linux-usb" in
> the body of a message to majord...@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
--
With Best Regards,
Andy Shevchenko
-
With Best Regards,
Andy Shevchenko
nother possibility to get rid of them under include/ by (re)moving to
drivers/auxdisplay/.
--
With Best Regards,
Andy Shevchenko
done for working
driver.
--
With Best Regards,
Andy Shevchenko
emove the OV8858 kconfig and files.
Fine with me. We can sort things out later (repository will have the
sources still in any case) when the driver itself shows signs of life.
--
Andy Shevchenko
Intel Finland Oy
On Fri, Jan 26, 2018 at 2:49 PM, LABBE Corentin wrote:
> On Tue, Jan 23, 2018 at 07:20:12PM +0100, Greg Kroah-Hartman wrote:
>> On Tue, Jan 23, 2018 at 07:31:27PM +0200, Andy Shevchenko wrote:
>> > On Tue, Jan 23, 2018 at 4:37 PM, Corentin Labbe
>> > wrote:
&
ardware to test? This is *most* important reason
why to accept or decline a change to the driver.
--
With Best Regards,
Andy Shevchenko
TSI108_TXRING_LEN * sizeof(tx_desc),
> data->txring, data->txdma);
>
> @@ -1576,6 +1579,7 @@ tsi108_init_one(struct platform_device *pdev)
> printk("tsi108_eth%d: probe...\n", pdev->id);
> data = netdev_priv(dev);
> data->dev = dev;
> + data->pdev = pdev;
>
>
> pr_debug("tsi108_eth%d:regs:phyresgs:phy:irq_num=0x%x:0x%x:0x%x:0x%x\n",
> pdev->id, einfo->regs, einfo->phyregs,
> --
> 2.14.2
>
--
With Best Regards,
Andy Shevchenko
On Sat, 2017-12-30 at 20:57 +, Alan Cox wrote:
> On Tue, 19 Dec 2017 22:37:01 +0200
> Andy Shevchenko wrote:
> > On Tue, 2017-12-19 at 14:00 +0200, Sakari Ailus wrote:
> > > > I am trying to get the cameras in a Lenovo IdeaPad Miix 320
> > > > (Atom
>
!
> On BYT I can't currently do much as my latest Intel Android tablet has
> died and it's getting hard to find more because I guess the rest of
> those
> made have also died.
I have MRD7 with some BIOS on it I even don't know if there is any newer
still available inside.
--
Andy Shevchenko
Intel Finland Oy
ually
> get interrupts from it, but not much more at this point.
Seems you are ahead of everyone who is trying AtomISP till now.
--
Andy Shevchenko
Intel Finland Oy
On Sun, Dec 31, 2017 at 5:19 PM, Kristian Beilke wrote:
> On 12/28/2017 05:03 PM, Andy Shevchenko wrote:
>> On Sat, 2017-12-23 at 01:31 +0100, Kristian Beilke wrote:
>>> On 12/21/2017 03:23 PM, Andy Shevchenko wrote:
>>>> On Thu, 2017-12-21 at 13:54 +0100, Kristian B
+Cc Hans.
On Thu, 2017-12-28 at 18:03 +0200, Andy Shevchenko wrote:
> On Sat, 2017-12-23 at 01:31 +0100, Kristian Beilke wrote:
> > On 12/21/2017 03:23 PM, Andy Shevchenko wrote:
I spend more time on investigating some additional stuff Sakari gave me, but no
result so far.
So, th
On Fri, 2017-12-29 at 14:10 +0100, Thomas Gleixner wrote:
> On Fri, 29 Dec 2017, Andy Shevchenko wrote:
>
> > On Thu, 2017-12-28 at 22:59 +0100, Thomas Gleixner wrote:
> > > On Thu, 28 Dec 2017, Thomas Gleixner wrote:
> > > > On Thu, 28 Dec 2017, Andy Shevchenk
On Thu, 2017-12-28 at 22:59 +0100, Thomas Gleixner wrote:
> On Thu, 28 Dec 2017, Thomas Gleixner wrote:
> > On Thu, 28 Dec 2017, Andy Shevchenko wrote:
> > > The result w/o above is (full log is available here
> > > https://pastebin.com
> > > /J5yaTbM9):
&g
On Thu, 2017-12-28 at 21:18 +0100, Thomas Gleixner wrote:
> On Thu, 28 Dec 2017, Andy Shevchenko wrote:
> > On Thu, 2017-12-28 at 18:44 +0100, Thomas Gleixner wrote:
> > > On Thu, 28 Dec 2017, Andy Shevchenko wrote:
> > > > On Thu, 2017-12-28 at 18:2
On Thu, 2017-12-28 at 21:31 +0200, Andy Shevchenko wrote:
> Anything I missed?
Perhaps I could bisect, though it's not so trivial in this case, when I
have a little more time. I guess it might take up to ~16 steps. If you
can point to more narrow range, it would be great.
--
Andy Sh
On Thu, 2017-12-28 at 18:44 +0100, Thomas Gleixner wrote:
> On Thu, 28 Dec 2017, Andy Shevchenko wrote:
> > On Thu, 2017-12-28 at 18:21 +0100, Thomas Gleixner wrote:
> > > > [ 85.167061] spurious APIC interrupt through vector ff on
> > > > C
1,
>
> --- a/arch/x86/kernel/apic/x2apic_cluster.c
> +++ b/arch/x86/kernel/apic/x2apic_cluster.c
> @@ -184,7 +184,7 @@ static struct apic apic_x2apic_cluster _
> .apic_id_valid = x2apic_apic_id_valid,
> .apic_id_registered =
> x2apic_apic_id_registered,
>
> - .irq_delivery_mode = dest_LowestPrio,
> + .irq_delivery_mode = dest_Fixed,
> .irq_dest_mode = 1, /* logical */
>
> .disable_esr= 0,
>
>
--
Andy Shevchenko
Intel Finland Oy
On Thu, 2017-12-28 at 19:17 +0200, Andy Shevchenko wrote:
> Hi!
>
> Experimenting with AtomISP (yes, code is ugly and MSI handling rather
> hackish, though...).
>
> So, with v4.14 base:
See additional note below.
>
> [ 33.639224] atomisp-isp2 :00:03.0: Start st
tps://www.spinics.net/lists/linux-media/msg126250.html
>
> https://patchwork.linuxtv.org/project/linux-media/list/?submitter=Andy
> +Shevchenko&state=*
> <https://patchwork.linuxtv.org/project/linux-media/list/?submitter=And
> y+Shevchenko&state=*>
>
> as a resu
On Sat, 2017-12-23 at 01:31 +0100, Kristian Beilke wrote:
> On 12/21/2017 03:23 PM, Andy Shevchenko wrote:
> > On Thu, 2017-12-21 at 13:54 +0100, Kristian Beilke wrote:
> > > On Tue, Dec 19, 2017 at 10:37:01PM +0200, Andy Shevchenko wrote:
> > > > On Tue, 2017-12-1
On Thu, 2017-12-21 at 13:54 +0100, Kristian Beilke wrote:
> On Tue, Dec 19, 2017 at 10:37:01PM +0200, Andy Shevchenko wrote:
> > On Tue, 2017-12-19 at 14:00 +0200, Sakari Ailus wrote:
> > > Cc Alan and Andy.
> > >
> > > On Sat, Dec 16, 2017 at 04:50:04PM +0100,
On Wed, Dec 20, 2017 at 6:54 AM, Dan Carpenter wrote:
> On Tue, Dec 19, 2017 at 10:59:52PM +0200, Andy Shevchenko wrote:
>> @@ -1147,10 +1145,8 @@ static int gc2235_probe(struct i2c_client *client)
>> if (ret)
>> gc2235_remove(client);
>
> This error
There is no need to keep a reference to PCI root bridge.
Signed-off-by: Andy Shevchenko
---
drivers/staging/media/atomisp/pci/atomisp2/atomisp_internal.h | 1 -
drivers/staging/media/atomisp/pci/atomisp2/atomisp_v4l2.c | 8
2 files changed, 9 deletions(-)
diff --git a/drivers
In case devm_clk_get() call fails the previously requested GPIOs are
left requested.
Fix this by moving GPIO request code after devm_clk_get() call.
Signed-off-by: Andy Shevchenko
---
.../staging/media/atomisp/platform/intel-mid/atomisp_gmin_platform.c | 4 ++--
1 file changed, 2 insertions
The traditional pattern is to use DMI matching table and provide a
corresponding driver_data in it.
Convert driver to use DMI matching table.
Signed-off-by: Andy Shevchenko
---
.../platform/intel-mid/atomisp_gmin_platform.c | 109 +
1 file changed, 70 insertions(+), 39
There is no need to export function which is only used once in
the same module where it's defined.
Signed-off-by: Andy Shevchenko
---
drivers/staging/media/atomisp/include/linux/atomisp_gmin_platform.h | 1 -
.../staging/media/atomisp/platform/intel-mid/atomisp_gmin_platform.c | 5 ++-
ned-off-by: Andy Shevchenko
---
drivers/staging/media/atomisp/include/linux/atomisp.h | 2 ++
drivers/staging/media/atomisp/pci/atomisp2/atomisp_ioctl.c | 5 -
drivers/staging/media/atomisp/pci/atomisp2/atomisp_subdev.c | 2 ++
3 files changed, 8 insertions(+), 1 deletion(-)
diff --git
MRD7 board has in particular
Base Board Information
Manufacturer: Intel Corp.
Product Name: TABLET
Version: MRD 7
Fix the DMI matching entry for it.
Signed-off-by: Andy Shevchenko
---
.../staging/media/atomisp/platform/intel-mid
Driver fails to initialize due to insane settings in the
control init array.
Fix this by moving to sanity.
Signed-off-by: Andy Shevchenko
---
drivers/staging/media/atomisp/i2c/atomisp-lm3554.c | 10 +-
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/drivers/staging/media
Since all drivers are solely requiring ACPI enumeration, there is no
need to additionally check for legacy platform data or ACPI handle.
Remove leftovers from the sensors and platform code.
Signed-off-by: Andy Shevchenko
---
drivers/staging/media/atomisp/i2c/atomisp-gc0310.c | 10
GPIO framework checks for NULL pointer when gpiod_set_value() is called.
Signed-off-by: Andy Shevchenko
---
.../staging/media/atomisp/platform/intel-mid/atomisp_gmin_platform.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git
a/drivers/staging/media/atomisp/platform/intel
In a preparation of split PCI glue driver from core part, convert
the driver to use more generic struct device_driver.
Signed-off-by: Andy Shevchenko
---
.../staging/media/atomisp/pci/atomisp2/atomisp_drvfs.c | 17 -
.../staging/media/atomisp/pci/atomisp2/atomisp_drvfs.h | 5
I do not get a camera device.
> >
> > Am I missing some firmware or dependency?
See above.
> > Can I somehow help to improve
> > the driver?
Yes, definitely, but first of all we need to find at least one device
and corresponding firmware where it actually works.
For me it doesn't generate any interrupt (after huge hacking to make
that firmware loaded and settings / platform data applied).
--
Andy Shevchenko
Intel Finland Oy
as a timer interrupt.
> */
> static void tpd_led_update(struct work_struct *work)
> - {
> +{
> struct eeepc_laptop *eeepc;
>
> eeepc = container_of(work, struct eeepc_laptop, tpd_led_work);
> diff --git a/drivers/rtc/rtc-ab-b5ze-s3.c b/drivers/rtc/rtc-ab-
case of ov2680, we don't seem to use the timestamp at
> all, so I just remove it.
>
Yep,
Reviewed-by: Andy Shevchenko
> Signed-off-by: Arnd Bergmann
> ---
> v2: use min_t() as suggested by Andy Shevchenko
> ---
> drivers/staging/media/atomisp/i2c/ov2680.h|
(u32)DELAY_MAX_PER_STEP_NS));
Since you are touching this, it might make sense to convert to
min_t(u32, ...)
...and locate lines something like:
ktime_t timeday = ns_to_ktime(min_t(u32,
param1,
param2));
>From my pov will make readability better.
--
Andy Shevchenko
Intel Finland Oy
There is no need to repeat what check_range() does for us, i.e. BITMASK
validation in v4l2_ctrl_new().
Signed-off-by: Andy Shevchenko
---
drivers/media/v4l2-core/v4l2-ctrls.c | 4
1 file changed, 4 deletions(-)
diff --git a/drivers/media/v4l2-core/v4l2-ctrls.c
b/drivers/media/v4l2-core
Since i2c_unregister_device() became NULL-aware we may remove duplicate
NULL check.
Cc: Kieran Bingham
Cc: Mauro Carvalho Chehab
Cc: linux-media@vger.kernel.org
Signed-off-by: Andy Shevchenko
---
drivers/media/i2c/adv748x/adv748x-core.c | 6 ++
1 file changed, 2 insertions(+), 4 deletions
Since i2c_unregister_device() became NULL-aware we may remove duplicate checks.
Cc: Lars-Peter Clausen
Cc: Mauro Carvalho Chehab
Cc: linux-media@vger.kernel.org
Signed-off-by: Andy Shevchenko
---
drivers/media/i2c/adv7180.c | 12
1 file changed, 4 insertions(+), 8 deletions
On Wed, 2017-10-18 at 23:53 +0300, Sakari Ailus wrote:
> On Wed, Sep 27, 2017 at 09:24:55PM +0300, Andy Shevchenko wrote:
> > The driver has been submitted with a limitation to few platforms and
> > sensors which it does support. Even though two sensor drivers have
> > no
>
On Wed, Oct 11, 2017 at 5:01 PM, Tuukka Toivonen
wrote:
> On Wed, 2017-10-11 at 16:31 +0300, Andy Shevchenko wrote:
>> On Wed, Oct 11, 2017 at 10:29 AM, sakari.ai...@linux.intel.com
>> wrote:
>> > On Wed, Oct 11, 2017 at 04:14:37AM +, Zhi, Yong wrote:
>>
der to
get it less than counter.
I would consider to use something from log2.h.
Roughly like
if (!counter || divider < counter)
return 0;
return order_base_2(divider) - order_base_2(counter);
--
With Best Regards,
Andy Shevchenko
Name (_CID, "INT5648") // _CID: Compatible ID
> Name (_SUB, "INTL") // _SUB: Subsystem ID
> Name (_DDN, "ov5648") // _DDN: DOS Device Name
> ...
>
> I was not able to properly test this patch on my Lenovo Miix 310 due
> to ot
converting to smbus calls and regulator
framework) would be a material for future changes.
Other than that, please, address the rest of comments and we will be fine.
You may also refer to my last patch series WRT atomisp driver where I
tried to address my own comments to the rest of the code.
--
With Best Regards,
Andy Shevchenko
of the device.
> It will not detect those devices enumerated via ACPI as a field of the
> i915 GPU driver.
>
> -5. The driver supports only v2 of the IPU/Camera. It will not work with the
> +4. The driver supports only v2 of the IPU/Camera. It will not work with the
> versions of the hardware in other SoCs.
>
> --
> 2.7.4
>
--
With Best Regards,
Andy Shevchenko
There is redundant callback which does nothing in upstreamed version of
the driver.
Remove it along with user call places.
Mostly done with help of coccinelle.
Signed-off-by: Andy Shevchenko
---
drivers/staging/media/atomisp/i2c/gc0310.c | 4
drivers/staging/media
There is redundant callback which does nothing in upstreamed version of
the driver.
Remove it along with user call places.
Mostly done with help of coccinelle.
Signed-off-by: Andy Shevchenko
---
drivers/staging/media/atomisp/i2c/gc0310.c | 4
drivers/staging/media
struct camera_af_platform_data and bound functions are not used anywhere.
Signed-off-by: Andy Shevchenko
---
.../media/atomisp/include/linux/atomisp_platform.h | 6 --
.../platform/intel-mid/atomisp_gmin_platform.c | 22 --
2 files changed, 28 deletions(-)
diff
(f);
@d depends on a && b && c@
identifier b.e, a.x;
declarer name module_exit;
declarer name module_i2c_driver;
@@
-module_exit(e);
+module_i2c_driver(x);
//
Signed-off-by: Andy Shevchenko
---
drivers/staging/media/atomisp/i2c/gc0310.c| 15 +--
drivers/st
Remove unused members along with dead code.
Mostly done with help of coccinelle.
Signed-off-by: Andy Shevchenko
---
drivers/staging/media/atomisp/i2c/gc0310.c | 13 -
drivers/staging/media/atomisp/i2c/gc2235.c | 13 -
drivers/staging
This sensor is not used by any known ACPI-enabled platform
(and no kernel users for it so far).
Just remove it for good until we get a platform which actually uses it.
Signed-off-by: Andy Shevchenko
---
drivers/staging/media/atomisp/i2c/Kconfig | 12 -
drivers/staging/media/atomisp/i2c
d.
Signed-off-by: Andy Shevchenko
---
drivers/staging/media/atomisp/i2c/gc0310.h| 4
drivers/staging/media/atomisp/i2c/libmsrlisthelper.c | 4
drivers/staging/media/atomisp/i2c/lm3554.c| 4
drivers/staging/med
media/lm3642.h is not used anywhere. Moreover, there is a driver under
LEDs framework for very same IP which would be used anyway.
Signed-off-by: Andy Shevchenko
---
.../staging/media/atomisp/include/media/lm3642.h | 153 -
1 file changed, 153 deletions(-)
delete mode
There are 3 declarations that are present in atomisp_platform.h and
atomisp_gmin_platform.h. Remove duplications from the latter.
Signed-off-by: Andy Shevchenko
---
drivers/staging/media/atomisp/include/linux/atomisp_gmin_platform.h | 3 ---
1 file changed, 3 deletions(-)
diff --git
a/drivers
as an intermediate clean up. This part toughly related to
removal of unused sensor drivers in patches 1 and 2.
Patch series has been partially compile tested. It would be nice to see
someone with hardware to confirm it doesn't break anything.
Andy Shevchenko (13):
staging: atomisp: Remove
GPIO handling is done only in two modules, the rest do not need to
include linux/gpio.h header.
Signed-off-by: Andy Shevchenko
---
drivers/staging/media/atomisp/i2c/gc0310.c| 1 -
drivers/staging/media/atomisp/i2c/gc2235.c| 1 -
drivers/staging/media/atomisp/i2c/mt9m114.c
Since most of the drivers are being used on ACPI enabled platforms
there is no need to keep legacy API support for them. Thus, switch
to ->probe_new() callback and remove orphaned code.
Signed-off-by: Andy Shevchenko
---
drivers/staging/media/atomisp/i2c/Kconfig|
gpiod_get() configures GPIO line at the time of successful request.
Thus, no need to do this explicitly.
Signed-off-by: Andy Shevchenko
---
.../atomisp/platform/intel-mid/atomisp_gmin_platform.c | 14 ++
1 file changed, 2 insertions(+), 12 deletions(-)
diff --git
a/drivers
int ret;
+ empty line.
Please check all functions.
> + dev_dbg(&client->dev, "@%s:\n", __func__);
Noise. Remove.
Do this for all similar cases.
> + mutex_lock(&dev->input_lock);
> +
> + ret = ov5648_write_reg(client, OV5648_8BIT, OV5648_SW_STREAM,
> + enable ? OV5648_START_STREAMING :
> + OV5648_STOP_STREAMING);
> +
> + mutex_unlock(&dev->input_lock);
> +
> + return ret;
> +}
> +static int ov5648_remove(struct i2c_client *client)
> +{
> + struct v4l2_subdev *sd = i2c_get_clientdata(client);
> + struct ov5648_device *dev = to_ov5648_sensor(sd);
> + dev_dbg(&client->dev, "ov5648_remove...\n");
Noise, remove.
> +
> + dev->platform_data->csi_cfg(sd, 0);
> +
> + v4l2_device_unregister_subdev(sd);
> + media_entity_cleanup(&dev->sd.entity);
> + v4l2_ctrl_handler_free(&dev->ctrl_handler);
> + kfree(dev);
> +
> + return 0;
> +}
> +
> +static int ov5648_probe(struct i2c_client *client,
> + const struct i2c_device_id *id)
> +{
> + struct ov5648_device *dev;
> + size_t len = CAMERA_MODULE_ID_LEN * sizeof(char);
> + int ret;
> + void *pdata;
> + unsigned int i;
> +
> + dev = kzalloc(sizeof(*dev), GFP_KERNEL);
> + if (!dev) {
> + dev_err(&client->dev, "out of memory\n");
> + return -ENOMEM;
> + }
> +
> + dev->camera_module = kzalloc(len, GFP_KERNEL);
> + if (!dev->camera_module) {
> + kfree(dev);
> + dev_err(&client->dev, "out of memory\n");
> + return -ENOMEM;
> + }
> +
> + mutex_init(&dev->input_lock);
> +
> + dev->fmt_idx = 0;
> + //otp functions
Wrong style, noisy comment. Remove.
> + dev->current_otp.otp_en = 1;// enable otp functions
Ditto.
> + v4l2_i2c_subdev_init(&(dev->sd), client, &ov5648_ops);
> +
> + if (gmin_get_config_var(&client->dev, "CameraModule",
> + dev->camera_module, &len)) {
> + kfree(dev->camera_module);
> + dev->camera_module = NULL;
> + dev_info(&client->dev, "Camera module id is
> missing\n");
> + }
> +
> + if (ACPI_COMPANION(&client->dev))
> + pdata = gmin_camera_platform_data(&dev->sd,
> + ATOMISP_INPUT_FORMA
> T_RAW_10,
> + atomisp_bayer_order
> _bggr);
> + else
> + pdata = client->dev.platform_data;
What kind of platforms will use platform_data?
> +out_free:
> + v4l2_device_unregister_subdev(&dev->sd);
Doesn't v4l2 have devm_*() helpers?
> + kfree(dev->camera_module);
> + kfree(dev);
Shouldn't those be devm_kzalloc() ?
> + return ret;
> +}
> +
> +static const struct acpi_device_id ov5648_acpi_match[] = {
> + {"XXOV5648"},
WTF is that?
> + {"INT5648"},
> + {},
> +};
> +MODULE_DEVICE_TABLE(acpi, ov5648_acpi_match);
> +
> +MODULE_DEVICE_TABLE(i2c, ov5648_id);
Where is the table?
> +static struct i2c_driver ov5648_driver = {
> + .driver = {
> + .owner = THIS_MODULE,
Redundant.
> + .name = OV5648_NAME,
> + .acpi_match_table = ACPI_PTR(ov5648_acpi_match),
> + },
> + .probe = ov5648_probe,
> + .remove = ov5648_remove,
> + .id_table = ov5648_id,
> +};
> +
> +static int init_ov5648(void)
> +{
> + return i2c_add_driver(&ov5648_driver);
> +}
> +
> +static void exit_ov5648(void)
> +{
> +
> + i2c_del_driver(&ov5648_driver);
> +}
> +
> +module_init(init_ov5648);
> +module_exit(exit_ov5648);
module_i2c_driver();
> +#ifndef __OV5648_H__
> +#define __OV5648_H__
+ empty line.
> +#include
> +#include
> +#include
> +#include
> +#include
> +#include
> +#include
> +#include
> +#include
> +#include
> +#include
> +#include
> +#include "../include/linux/atomisp_platform.h"
Why? Are they all needed for definitions below?
I'm pretty sure you may leave only couple out of them.
> +
> +#define OV5648_NAME "ov5648"
Why it's here?
> +static const struct i2c_device_id ov5648_id[] = {
> + {OV5648_NAME, 0},
> + {}
> +};
WTF?! It shouldn't be in the header!
--
Andy Shevchenko
Intel Finland Oy
On Wed, 2017-09-20 at 12:01 -0500, Pierre-Louis Bossart wrote:
>
> On 09/20/2017 04:12 AM, Andy Shevchenko wrote:
> > On Tue, 2017-09-19 at 15:45 -0500, Pierre-Louis Bossart wrote:
> > > The Atom ISP driver initializes and configures PMC clocks which
> > > are
>
nd without -D implied?)
Other than that - nice clean up!
Reviewed-by: Andy Shevchenko
> Tested-by: Carlo Caione
> Signed-off-by: Pierre-Louis Bossart com>
> ---
> drivers/staging/media/atomisp/Kconfig | 1 +
> drivers/staging/media/atomisp/platform/Makefile| 1
flag here.
Second, Devid, please answer to the following:
is it an official BIOS which is available in the wild?
If it's so, please, add a paragraph to the commit message explaining how do you
get this and point to the DSDT excerpt.
Put an answer to above question to the commit message as well.
--
Andy Shevchenko
Intel Finland Oy
There is a common for x86 IOSF MBI API. Move atomisp code to use it.
Signed-off-by: Andy Shevchenko
---
drivers/staging/media/atomisp/pci/Kconfig | 1 +
.../media/atomisp/pci/atomisp2/atomisp_cmd.c | 20 +++-
.../media/atomisp/pci/atomisp2/atomisp_v4l2.c | 38
intel_mid_soc_stepping() is not used anywhere.
Signed-off-by: Andy Shevchenko
---
drivers/staging/media/atomisp/include/asm/intel_mid_pcihelpers.h | 1 -
.../media/atomisp/platform/intel-mid/intel_mid_pcihelpers.c| 7 ---
2 files changed, 8 deletions(-)
diff --git a/drivers
In many files in the driver the intel-mid.h header inclusion is redundant.
Signed-off-by: Andy Shevchenko
---
drivers/staging/media/atomisp/i2c/imx/drv201.c| 1 -
drivers/staging/media/atomisp/i2c/imx/dw9714.c| 1 -
drivers/staging/media/atomisp
Since we switched to upstream IOSF MBI API the custom code become not in
use anymore.
Signed-off-by: Andy Shevchenko
---
.../atomisp/include/asm/intel_mid_pcihelpers.h | 22 -
.../media/atomisp/pci/atomisp2/atomisp_internal.h | 1 -
.../media/atomisp/platform/intel-mid/Makefile
Remove dead code. If someone needs it the P-Unit semaphore is handled by
I2C DesignWare driver (drivers/i2c/busses/i2c-designware-baytrail.c).
Signed-off-by: Andy Shevchenko
---
.../atomisp/include/asm/intel_mid_pcihelpers.h | 2 -
.../platform/intel-mid/intel_mid_pcihelpers.c | 101
intel_mid_msgbus_*_raw*() are not used anywhere.
Signed-off-by: Andy Shevchenko
---
.../atomisp/include/asm/intel_mid_pcihelpers.h | 4 --
.../platform/intel-mid/intel_mid_pcihelpers.c | 58 --
2 files changed, 62 deletions(-)
diff --git a/drivers/staging/media
The d3_delay parameter is set by arch/x86/pci/intel_mid_pci.c and
drivers/pci/quirks.c.
No need to override that settings in unrelated driver.
Signed-off-by: Andy Shevchenko
---
.../atomisp/include/asm/intel_mid_pcihelpers.h | 8 --
.../platform/intel-mid/intel_mid_pcihelpers.c
On Sat, Jun 17, 2017 at 9:43 PM, Sakari Ailus wrote:
> On Sat, Jun 17, 2017 at 01:54:51AM +0300, Andy Shevchenko wrote:
>> On Thu, Jun 15, 2017 at 1:19 AM, Yong Zhi wrote:
>> > +static void writes(void *mem, ssize_t len, void __iomem *reg)
>> > +{
&
eed. Thanks for explanation. PM runtime is hard :-)
Previously I didn't meet (and actually never used) check for returning
code of pm_runtime_get*().
> [1]
> http://elixir.free-electrons.com/linux/v4.11.6/source/include/linux/pm_runtime.h#L235
> and the main part:
> http://elixir.free-electrons.com/linux/v4.11.6/source/drivers/base/power/runtime.c#L1027
>
> [2]
> http://elixir.free-electrons.com/linux/v4.11.6/source/Documentation/power/runtime_pm.txt#L128
--
With Best Regards,
Andy Shevchenko
pm_runtime_put(dev);
I'm not sure it's a right thing to do.
How did you test runtime PM counters in this case?
> + return r;
> + }
--
With Best Regards,
Andy Shevchenko
+ reg += 4;
> + len -= 4;
> + }
> +}
Again, I just looked into patches and first what I see is reinventing the wheel.
memcpy_toio()
--
With Best Regards,
Andy Shevchenko
y* recommended you learn what we have under lib/ (and not
only there) in kernel bewfore submitting a new version.
--
With Best Regards,
Andy Shevchenko
ote: it would be good to put it there. Hopefully the
firmware for IPUv3 is not going to be changed two times per day.
--
With Best Regards,
Andy Shevchenko
There is no need to split long string literals.
Join them back.
No functional change intended.
Signed-off-by: Andy Shevchenko
---
drivers/media/i2c/as3645a.c | 12 ++--
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/drivers/media/i2c/as3645a.c b/drivers/media/i2c
ese actually is a good
> thing.
Perhaps removing all code related explicitly to Gmin is a right thing to do.
--
With Best Regards,
Andy Shevchenko
1 - 100 of 237 matches
Mail list logo