From: "Dr. David Alan Gilbert" <linux@treblig.org>
To: "Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>
Cc: malattia@linux.it, Hans de Goede <hdegoede@redhat.com>,
hverkuil@xs4all.nl, platform-driver-x86@vger.kernel.org,
LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] platform/x86/sony-laptop: Remove unused sony laptop camera code
Date: Mon, 5 May 2025 15:27:05 +0000 [thread overview]
Message-ID: <aBjYyY26SEsIH88Q@gallifrey> (raw)
In-Reply-To: <bbd883e2-7615-c37b-3a6a-acddd76bf3ad@linux.intel.com>
* Ilpo Järvinen (ilpo.jarvinen@linux.intel.com) wrote:
> On Mon, 5 May 2025, linux@treblig.org wrote:
>
> > From: "Dr. David Alan Gilbert" <linux@treblig.org>
> >
> > commit ba47652ba655 ("media: meye: remove this deprecated driver")
> > removed the meye driver but left behind the code in sony-laptop.c
> > which that driver used to call.
> >
> > Remove the sony_pic_camera_command() function, and the set of
> > defines (SONY_PIC_COMMAND_*) in a header used for the interface
> > and the static helpers it called.
> >
> > Signed-off-by: Dr. David Alan Gilbert <linux@treblig.org>
> > ---
> > MAINTAINERS | 1 -
> > drivers/platform/x86/sony-laptop.c | 135 -----------------------------
> > include/linux/sony-laptop.h | 39 ---------
> > 3 files changed, 175 deletions(-)
> > delete mode 100644 include/linux/sony-laptop.h
> >
> > diff --git a/MAINTAINERS b/MAINTAINERS
> > index 2aed76827090..6c865b5d8fae 100644
> > --- a/MAINTAINERS
> > +++ b/MAINTAINERS
> > @@ -22671,7 +22671,6 @@ W: http://www.linux.it/~malattia/wiki/index.php/Sony_drivers
> > F: Documentation/admin-guide/laptops/sony-laptop.rst
> > F: drivers/char/sonypi.c
> > F: drivers/platform/x86/sony-laptop.c
> > -F: include/linux/sony-laptop.h
> >
> > SOPHGO DEVICETREES and DRIVERS
> > M: Chen Wang <unicorn_wang@outlook.com>
> > diff --git a/drivers/platform/x86/sony-laptop.c b/drivers/platform/x86/sony-laptop.c
> > index b52390fbd743..4efd0d7031a5 100644
> > --- a/drivers/platform/x86/sony-laptop.c
> > +++ b/drivers/platform/x86/sony-laptop.c
> > @@ -48,7 +48,6 @@
> > #include <linux/acpi.h>
> > #include <linux/slab.h>
> > #include <linux/sonypi.h>
> > -#include <linux/sony-laptop.h>
> > #include <linux/rfkill.h>
> > #ifdef CONFIG_SONYPI_COMPAT
> > #include <linux/poll.h>
> > @@ -3619,22 +3618,6 @@ static u8 sony_pic_call2(u8 dev, u8 fn)
> > return v1;
> > }
> >
> > -static u8 sony_pic_call3(u8 dev, u8 fn, u8 v)
> > -{
> > - u8 v1;
> > -
> > - wait_on_command(inb_p(spic_dev.cur_ioport->io1.minimum + 4) & 2, ITERATIONS_LONG);
> > - outb(dev, spic_dev.cur_ioport->io1.minimum + 4);
> > - wait_on_command(inb_p(spic_dev.cur_ioport->io1.minimum + 4) & 2, ITERATIONS_LONG);
> > - outb(fn, spic_dev.cur_ioport->io1.minimum);
> > - wait_on_command(inb_p(spic_dev.cur_ioport->io1.minimum + 4) & 2, ITERATIONS_LONG);
> > - outb(v, spic_dev.cur_ioport->io1.minimum);
> > - v1 = inb_p(spic_dev.cur_ioport->io1.minimum);
> > - dprintk("sony_pic_call3(0x%.2x - 0x%.2x - 0x%.2x): 0x%.4x\n",
> > - dev, fn, v, v1);
> > - return v1;
> > -}
> > -
> > /*
> > * minidrivers for SPIC models
> > */
> > @@ -3754,124 +3737,6 @@ static void sony_pic_detect_device_type(struct sony_pic_dev *dev)
> > #define SONYPI_CAMERA_REVISION 8
> > #define SONYPI_CAMERA_ROMVERSION 9
> >
> > -static int __sony_pic_camera_ready(void)
> > -{
> > - u8 v;
> > -
> > - v = sony_pic_call2(0x8f, SONYPI_CAMERA_STATUS);
> > - return (v != 0xff && (v & SONYPI_CAMERA_STATUS_READY));
> > -}
> > -
> > -static int __sony_pic_camera_off(void)
> > -{
> > - if (!camera) {
> > - pr_warn("camera control not enabled\n");
> > - return -ENODEV;
> > - }
> > -
> > - wait_on_command(sony_pic_call3(0x90, SONYPI_CAMERA_PICTURE,
> > - SONYPI_CAMERA_MUTE_MASK),
> > - ITERATIONS_SHORT);
> > -
> > - if (spic_dev.camera_power) {
> > - sony_pic_call2(0x91, 0);
> > - spic_dev.camera_power = 0;
> > - }
> > - return 0;
> > -}
> > -
> > -static int __sony_pic_camera_on(void)
> > -{
> > - int i, j, x;
> > -
> > - if (!camera) {
> > - pr_warn("camera control not enabled\n");
> > - return -ENODEV;
> > - }
> > -
> > - if (spic_dev.camera_power)
> > - return 0;
> > -
> > - for (j = 5; j > 0; j--) {
> > -
> > - for (x = 0; x < 100 && sony_pic_call2(0x91, 0x1); x++)
> > - msleep(10);
> > - sony_pic_call1(0x93);
> > -
> > - for (i = 400; i > 0; i--) {
> > - if (__sony_pic_camera_ready())
> > - break;
> > - msleep(10);
> > - }
> > - if (i)
> > - break;
> > - }
> > -
> > - if (j == 0) {
> > - pr_warn("failed to power on camera\n");
> > - return -ENODEV;
> > - }
> > -
> > - wait_on_command(sony_pic_call3(0x90, SONYPI_CAMERA_CONTROL,
> > - 0x5a),
> > - ITERATIONS_SHORT);
> > -
> > - spic_dev.camera_power = 1;
> > - return 0;
> > -}
> > -
> > -/* External camera command (exported to the motion eye v4l driver) */
> > -int sony_pic_camera_command(int command, u8 value)
> > -{
> > - if (!camera)
> > - return -EIO;
> > -
> > - mutex_lock(&spic_dev.lock);
> > -
> > - switch (command) {
> > - case SONY_PIC_COMMAND_SETCAMERA:
> > - if (value)
> > - __sony_pic_camera_on();
> > - else
> > - __sony_pic_camera_off();
> > - break;
> > - case SONY_PIC_COMMAND_SETCAMERABRIGHTNESS:
> > - wait_on_command(sony_pic_call3(0x90, SONYPI_CAMERA_BRIGHTNESS, value),
> > - ITERATIONS_SHORT);
> > - break;
> > - case SONY_PIC_COMMAND_SETCAMERACONTRAST:
> > - wait_on_command(sony_pic_call3(0x90, SONYPI_CAMERA_CONTRAST, value),
> > - ITERATIONS_SHORT);
> > - break;
> > - case SONY_PIC_COMMAND_SETCAMERAHUE:
> > - wait_on_command(sony_pic_call3(0x90, SONYPI_CAMERA_HUE, value),
> > - ITERATIONS_SHORT);
> > - break;
> > - case SONY_PIC_COMMAND_SETCAMERACOLOR:
> > - wait_on_command(sony_pic_call3(0x90, SONYPI_CAMERA_COLOR, value),
> > - ITERATIONS_SHORT);
> > - break;
> > - case SONY_PIC_COMMAND_SETCAMERASHARPNESS:
> > - wait_on_command(sony_pic_call3(0x90, SONYPI_CAMERA_SHARPNESS, value),
> > - ITERATIONS_SHORT);
> > - break;
> > - case SONY_PIC_COMMAND_SETCAMERAPICTURE:
> > - wait_on_command(sony_pic_call3(0x90, SONYPI_CAMERA_PICTURE, value),
> > - ITERATIONS_SHORT);
> > - break;
> > - case SONY_PIC_COMMAND_SETCAMERAAGC:
> > - wait_on_command(sony_pic_call3(0x90, SONYPI_CAMERA_AGC, value),
> > - ITERATIONS_SHORT);
>
> Hi,
Hi Ilpo,
Thanks for the quick review,
> Shouldn't sony_pic_call3() be removed too? AFAICT, all users are gone
> after this removal?
That one is already gone - see right at the top of the patch.
> And what about SONYPI_CAMERA_* ? Also SONYPI_DIRECTION_BACKWARDS that is
> among the CAMERA defs seems unused.
Ah right, OK - I've deleted those in a v2; see message
20250505152558.40526-1-linux@treblig.org
Thanks again,
Dave
> --
> i.
>
>
> > - break;
> > - default:
> > - pr_err("sony_pic_camera_command invalid: %d\n", command);
> > - break;
> > - }
> > - mutex_unlock(&spic_dev.lock);
> > - return 0;
> > -}
> > -EXPORT_SYMBOL(sony_pic_camera_command);
> > -
> > /* gprs/edge modem (SZ460N and SZ210P), thanks to Joshua Wise */
> > static void __sony_pic_set_wwanpower(u8 state)
> > {
> > diff --git a/include/linux/sony-laptop.h b/include/linux/sony-laptop.h
> > deleted file mode 100644
> > index 1e3c92feea6e..000000000000
> > --- a/include/linux/sony-laptop.h
> > +++ /dev/null
> > @@ -1,39 +0,0 @@
> > -/* SPDX-License-Identifier: GPL-2.0 */
> > -#ifndef _SONYLAPTOP_H_
> > -#define _SONYLAPTOP_H_
> > -
> > -#include <linux/types.h>
> > -
> > -#ifdef __KERNEL__
> > -
> > -/* used only for communication between v4l and sony-laptop */
> > -
> > -#define SONY_PIC_COMMAND_GETCAMERA 1 /* obsolete */
> > -#define SONY_PIC_COMMAND_SETCAMERA 2
> > -#define SONY_PIC_COMMAND_GETCAMERABRIGHTNESS 3 /* obsolete */
> > -#define SONY_PIC_COMMAND_SETCAMERABRIGHTNESS 4
> > -#define SONY_PIC_COMMAND_GETCAMERACONTRAST 5 /* obsolete */
> > -#define SONY_PIC_COMMAND_SETCAMERACONTRAST 6
> > -#define SONY_PIC_COMMAND_GETCAMERAHUE 7 /* obsolete */
> > -#define SONY_PIC_COMMAND_SETCAMERAHUE 8
> > -#define SONY_PIC_COMMAND_GETCAMERACOLOR 9 /* obsolete */
> > -#define SONY_PIC_COMMAND_SETCAMERACOLOR 10
> > -#define SONY_PIC_COMMAND_GETCAMERASHARPNESS 11 /* obsolete */
> > -#define SONY_PIC_COMMAND_SETCAMERASHARPNESS 12
> > -#define SONY_PIC_COMMAND_GETCAMERAPICTURE 13 /* obsolete */
> > -#define SONY_PIC_COMMAND_SETCAMERAPICTURE 14
> > -#define SONY_PIC_COMMAND_GETCAMERAAGC 15 /* obsolete */
> > -#define SONY_PIC_COMMAND_SETCAMERAAGC 16
> > -#define SONY_PIC_COMMAND_GETCAMERADIRECTION 17 /* obsolete */
> > -#define SONY_PIC_COMMAND_GETCAMERAROMVERSION 18 /* obsolete */
> > -#define SONY_PIC_COMMAND_GETCAMERAREVISION 19 /* obsolete */
> > -
> > -#if IS_ENABLED(CONFIG_SONY_LAPTOP)
> > -int sony_pic_camera_command(int command, u8 value);
> > -#else
> > -static inline int sony_pic_camera_command(int command, u8 value) { return 0; }
> > -#endif
> > -
> > -#endif /* __KERNEL__ */
> > -
> > -#endif /* _SONYLAPTOP_H_ */
> >
>
--
-----Open up your eyes, open up your mind, open up your code -------
/ Dr. David Alan Gilbert | Running GNU/Linux | Happy \
\ dave @ treblig.org | | In Hex /
\ _________________________|_____ http://www.treblig.org |_______/
prev parent reply other threads:[~2025-05-05 15:27 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-05-05 0:55 [PATCH] platform/x86/sony-laptop: Remove unused sony laptop camera code linux
2025-05-05 12:04 ` Ilpo Järvinen
2025-05-05 15:27 ` Dr. David Alan Gilbert [this message]
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=aBjYyY26SEsIH88Q@gallifrey \
--to=linux@treblig.org \
--cc=hdegoede@redhat.com \
--cc=hverkuil@xs4all.nl \
--cc=ilpo.jarvinen@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=malattia@linux.it \
--cc=platform-driver-x86@vger.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.