* [PATCH v1 0/2] media: atomisp: Fix and refactor PMIC I²C discovery @ 2024-03-26 20:27 Andy Shevchenko 2024-03-26 20:27 ` [PATCH v1 1/2] media: atomisp: Put PMIC device after getting its I²C address Andy Shevchenko 2024-03-26 20:27 ` [PATCH v1 2/2] media: atomisp: Replace open-coded i2c_find_device_by_fwnode() Andy Shevchenko 0 siblings, 2 replies; 8+ messages in thread From: Andy Shevchenko @ 2024-03-26 20:27 UTC (permalink / raw) To: Hans de Goede, linux-media, linux-staging, linux-kernel Cc: Mauro Carvalho Chehab, Sakari Ailus, Greg Kroah-Hartman, Andy Shevchenko Drop the reference count when detecting PMIC. Refactor PMIC detection using new API. Andy Shevchenko (2): media: atomisp: Put PMIC device after getting its I²C address media: atomisp: Replace open-coded i2c_find_device_by_fwnode() .../media/atomisp/pci/atomisp_gmin_platform.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) -- 2.43.0.rc1.1.gbec44491f096 ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v1 1/2] media: atomisp: Put PMIC device after getting its I²C address 2024-03-26 20:27 [PATCH v1 0/2] media: atomisp: Fix and refactor PMIC I²C discovery Andy Shevchenko @ 2024-03-26 20:27 ` Andy Shevchenko 2024-04-10 10:41 ` Hans de Goede 2024-03-26 20:27 ` [PATCH v1 2/2] media: atomisp: Replace open-coded i2c_find_device_by_fwnode() Andy Shevchenko 1 sibling, 1 reply; 8+ messages in thread From: Andy Shevchenko @ 2024-03-26 20:27 UTC (permalink / raw) To: Hans de Goede, linux-media, linux-staging, linux-kernel Cc: Mauro Carvalho Chehab, Sakari Ailus, Greg Kroah-Hartman, Andy Shevchenko We don't use the PMIC I²C client device after getting its address. Drop the reference to it. We do not expect device to disappear as it should be taken care by the OpRegion drivers. Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> --- .../media/atomisp/pci/atomisp_gmin_platform.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/drivers/staging/media/atomisp/pci/atomisp_gmin_platform.c b/drivers/staging/media/atomisp/pci/atomisp_gmin_platform.c index 139ad7ad1dcf..80aa2211cdc3 100644 --- a/drivers/staging/media/atomisp/pci/atomisp_gmin_platform.c +++ b/drivers/staging/media/atomisp/pci/atomisp_gmin_platform.c @@ -497,16 +497,19 @@ static u8 gmin_get_pmic_id_and_addr(struct device *dev) if (pmic_id) return pmic_i2c_addr; - if (gmin_i2c_dev_exists(dev, PMIC_ACPI_TI, &power)) + if (gmin_i2c_dev_exists(dev, PMIC_ACPI_TI, &power)) { pmic_id = PMIC_TI; - else if (gmin_i2c_dev_exists(dev, PMIC_ACPI_AXP, &power)) + } else if (gmin_i2c_dev_exists(dev, PMIC_ACPI_AXP, &power)) { pmic_id = PMIC_AXP; - else if (gmin_i2c_dev_exists(dev, PMIC_ACPI_CRYSTALCOVE, &power)) + } else if (gmin_i2c_dev_exists(dev, PMIC_ACPI_CRYSTALCOVE, &power)) { pmic_id = PMIC_CRYSTALCOVE; - else + } else { pmic_id = PMIC_REGULATOR; + return 0; + } - pmic_i2c_addr = power ? power->addr : 0; + pmic_i2c_addr = power->addr; + put_device(&power->dev); return pmic_i2c_addr; } -- 2.43.0.rc1.1.gbec44491f096 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH v1 1/2] media: atomisp: Put PMIC device after getting its I²C address 2024-03-26 20:27 ` [PATCH v1 1/2] media: atomisp: Put PMIC device after getting its I²C address Andy Shevchenko @ 2024-04-10 10:41 ` Hans de Goede 0 siblings, 0 replies; 8+ messages in thread From: Hans de Goede @ 2024-04-10 10:41 UTC (permalink / raw) To: Andy Shevchenko, linux-media, linux-staging, linux-kernel Cc: Mauro Carvalho Chehab, Sakari Ailus, Greg Kroah-Hartman Hi, On 3/26/24 9:27 PM, Andy Shevchenko wrote: > We don't use the PMIC I²C client device after getting its address. > Drop the reference to it. We do not expect device to disappear > as it should be taken care by the OpRegion drivers. > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Thank you for your patch. I have merged this in my media-atomisp branch: https://git.kernel.org/pub/scm/linux/kernel/git/hansg/linux.git/log/?h=media-atomisp And this patch will be included in my next pull-request to Mauro (to media subsystem maintainer) Regards, Hans > --- > .../media/atomisp/pci/atomisp_gmin_platform.c | 13 ++++++++----- > 1 file changed, 8 insertions(+), 5 deletions(-) > > diff --git a/drivers/staging/media/atomisp/pci/atomisp_gmin_platform.c b/drivers/staging/media/atomisp/pci/atomisp_gmin_platform.c > index 139ad7ad1dcf..80aa2211cdc3 100644 > --- a/drivers/staging/media/atomisp/pci/atomisp_gmin_platform.c > +++ b/drivers/staging/media/atomisp/pci/atomisp_gmin_platform.c > @@ -497,16 +497,19 @@ static u8 gmin_get_pmic_id_and_addr(struct device *dev) > if (pmic_id) > return pmic_i2c_addr; > > - if (gmin_i2c_dev_exists(dev, PMIC_ACPI_TI, &power)) > + if (gmin_i2c_dev_exists(dev, PMIC_ACPI_TI, &power)) { > pmic_id = PMIC_TI; > - else if (gmin_i2c_dev_exists(dev, PMIC_ACPI_AXP, &power)) > + } else if (gmin_i2c_dev_exists(dev, PMIC_ACPI_AXP, &power)) { > pmic_id = PMIC_AXP; > - else if (gmin_i2c_dev_exists(dev, PMIC_ACPI_CRYSTALCOVE, &power)) > + } else if (gmin_i2c_dev_exists(dev, PMIC_ACPI_CRYSTALCOVE, &power)) { > pmic_id = PMIC_CRYSTALCOVE; > - else > + } else { > pmic_id = PMIC_REGULATOR; > + return 0; > + } > > - pmic_i2c_addr = power ? power->addr : 0; > + pmic_i2c_addr = power->addr; > + put_device(&power->dev); > return pmic_i2c_addr; > } > ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v1 2/2] media: atomisp: Replace open-coded i2c_find_device_by_fwnode() 2024-03-26 20:27 [PATCH v1 0/2] media: atomisp: Fix and refactor PMIC I²C discovery Andy Shevchenko 2024-03-26 20:27 ` [PATCH v1 1/2] media: atomisp: Put PMIC device after getting its I²C address Andy Shevchenko @ 2024-03-26 20:27 ` Andy Shevchenko 2024-04-10 10:35 ` Hans de Goede 1 sibling, 1 reply; 8+ messages in thread From: Andy Shevchenko @ 2024-03-26 20:27 UTC (permalink / raw) To: Hans de Goede, linux-media, linux-staging, linux-kernel Cc: Mauro Carvalho Chehab, Sakari Ailus, Greg Kroah-Hartman, Andy Shevchenko gmin_i2c_dev_exists() is using open-coded variant of i2c_find_device_by_fwnode(). Replace it with a corresponding call. Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> --- drivers/staging/media/atomisp/pci/atomisp_gmin_platform.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/staging/media/atomisp/pci/atomisp_gmin_platform.c b/drivers/staging/media/atomisp/pci/atomisp_gmin_platform.c index 80aa2211cdc3..b7c477280986 100644 --- a/drivers/staging/media/atomisp/pci/atomisp_gmin_platform.c +++ b/drivers/staging/media/atomisp/pci/atomisp_gmin_platform.c @@ -394,12 +394,10 @@ static struct i2c_client *gmin_i2c_dev_exists(struct device *dev, char *name, if (!adev) return NULL; - d = bus_find_device_by_acpi_dev(&i2c_bus_type, adev); + d = get_device(acpi_get_first_physical_node(adev)); acpi_dev_put(adev); - if (!d) - return NULL; - *client = i2c_verify_client(d); + *client = i2c_find_device_by_fwnode(dev_fwnode(d)); put_device(d); dev_dbg(dev, "found '%s' at address 0x%02x, adapter %d\n", -- 2.43.0.rc1.1.gbec44491f096 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH v1 2/2] media: atomisp: Replace open-coded i2c_find_device_by_fwnode() 2024-03-26 20:27 ` [PATCH v1 2/2] media: atomisp: Replace open-coded i2c_find_device_by_fwnode() Andy Shevchenko @ 2024-04-10 10:35 ` Hans de Goede 2024-04-10 13:35 ` Andy Shevchenko 0 siblings, 1 reply; 8+ messages in thread From: Hans de Goede @ 2024-04-10 10:35 UTC (permalink / raw) To: Andy Shevchenko, linux-media, linux-staging, linux-kernel Cc: Mauro Carvalho Chehab, Sakari Ailus, Greg Kroah-Hartman Hi Andy, Thank you for the patch. On 3/26/24 9:27 PM, Andy Shevchenko wrote: > gmin_i2c_dev_exists() is using open-coded variant of > i2c_find_device_by_fwnode(). Replace it with a corresponding call. > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> > --- > drivers/staging/media/atomisp/pci/atomisp_gmin_platform.c | 6 ++---- > 1 file changed, 2 insertions(+), 4 deletions(-) > > diff --git a/drivers/staging/media/atomisp/pci/atomisp_gmin_platform.c b/drivers/staging/media/atomisp/pci/atomisp_gmin_platform.c > index 80aa2211cdc3..b7c477280986 100644 > --- a/drivers/staging/media/atomisp/pci/atomisp_gmin_platform.c > +++ b/drivers/staging/media/atomisp/pci/atomisp_gmin_platform.c > @@ -394,12 +394,10 @@ static struct i2c_client *gmin_i2c_dev_exists(struct device *dev, char *name, > if (!adev) > return NULL; > > - d = bus_find_device_by_acpi_dev(&i2c_bus_type, adev); > + d = get_device(acpi_get_first_physical_node(adev)); > acpi_dev_put(adev); > - if (!d) > - return NULL; > > - *client = i2c_verify_client(d); > + *client = i2c_find_device_by_fwnode(dev_fwnode(d)); > put_device(d); > > dev_dbg(dev, "found '%s' at address 0x%02x, adapter %d\n", If we are ging to simplify this I think the change should be: From ea66d15b9a72fcb8baf22a2ff059f2b842a91b67 Mon Sep 17 00:00:00 2001 From: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Date: Wed, 10 Apr 2024 12:32:11 +0200 Subject: [PATCH] media: atomisp: Replace open-coded i2c_find_device_by_fwnode() gmin_i2c_dev_exists() is using open-coded variant of i2c_find_device_by_fwnode(). Replace it with a corresponding call. Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com> --- Changes in v2: - Directly use the ACPI fwnode through acpi_fwnode_handle(adev) instead of first calling acpi_get_first_physical_node(adev) --- drivers/staging/media/atomisp/pci/atomisp_gmin_platform.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/drivers/staging/media/atomisp/pci/atomisp_gmin_platform.c b/drivers/staging/media/atomisp/pci/atomisp_gmin_platform.c index 804ffff245f3..ed6214327ce5 100644 --- a/drivers/staging/media/atomisp/pci/atomisp_gmin_platform.c +++ b/drivers/staging/media/atomisp/pci/atomisp_gmin_platform.c @@ -394,14 +394,11 @@ static struct i2c_client *gmin_i2c_dev_exists(struct device *dev, char *name, if (!adev) return NULL; - d = bus_find_device_by_acpi_dev(&i2c_bus_type, adev); + *client = i2c_find_device_by_fwnode(acpi_fwnode_handle(adev)); acpi_dev_put(adev); - if (!d) + if (!*client) return NULL; - *client = i2c_verify_client(d); - put_device(d); - dev_dbg(dev, "found '%s' at address 0x%02x, adapter %d\n", (*client)->name, (*client)->addr, (*client)->adapter->nr); return *client; -- 2.44.0 Note I added a: if (!*client) return NULL; To fix a bug in the original code where the dev_dbg() arguments are dereferencing a potential NULL *client ptr. I'm going to merge this variant into my media-atomisp branch instead of the orignal. Regards, Hans ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH v1 2/2] media: atomisp: Replace open-coded i2c_find_device_by_fwnode() 2024-04-10 10:35 ` Hans de Goede @ 2024-04-10 13:35 ` Andy Shevchenko 2024-04-10 13:41 ` Hans de Goede 0 siblings, 1 reply; 8+ messages in thread From: Andy Shevchenko @ 2024-04-10 13:35 UTC (permalink / raw) To: Hans de Goede Cc: linux-media, linux-staging, linux-kernel, Mauro Carvalho Chehab, Sakari Ailus, Greg Kroah-Hartman On Wed, Apr 10, 2024 at 12:35:29PM +0200, Hans de Goede wrote: > On 3/26/24 9:27 PM, Andy Shevchenko wrote: ... > I'm going to merge this variant into my media-atomisp branch > instead of the orignal. Thanks! This explains why changelog made the commit message. Was it done deliberately? -- With Best Regards, Andy Shevchenko ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v1 2/2] media: atomisp: Replace open-coded i2c_find_device_by_fwnode() 2024-04-10 13:35 ` Andy Shevchenko @ 2024-04-10 13:41 ` Hans de Goede 2024-04-10 13:49 ` Andy Shevchenko 0 siblings, 1 reply; 8+ messages in thread From: Hans de Goede @ 2024-04-10 13:41 UTC (permalink / raw) To: Andy Shevchenko Cc: linux-media, linux-staging, linux-kernel, Mauro Carvalho Chehab, Sakari Ailus, Greg Kroah-Hartman Hi Andy, On 4/10/24 3:35 PM, Andy Shevchenko wrote: > On Wed, Apr 10, 2024 at 12:35:29PM +0200, Hans de Goede wrote: >> On 3/26/24 9:27 PM, Andy Shevchenko wrote: > > ... > >> I'm going to merge this variant into my media-atomisp branch >> instead of the orignal. > > Thanks! > > This explains why changelog made the commit message. > Was it done deliberately? Oops, no that was by accident. I normally git send-email + git am my patches and then git am cuts it off... I just send out a pull-request with this minor wart in it (after testing), so unless there are other reasons to respin I guess we'll have to live with it. Regards, Hans ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v1 2/2] media: atomisp: Replace open-coded i2c_find_device_by_fwnode() 2024-04-10 13:41 ` Hans de Goede @ 2024-04-10 13:49 ` Andy Shevchenko 0 siblings, 0 replies; 8+ messages in thread From: Andy Shevchenko @ 2024-04-10 13:49 UTC (permalink / raw) To: Hans de Goede Cc: linux-media, linux-staging, linux-kernel, Mauro Carvalho Chehab, Sakari Ailus, Greg Kroah-Hartman On Wed, Apr 10, 2024 at 03:41:15PM +0200, Hans de Goede wrote: > On 4/10/24 3:35 PM, Andy Shevchenko wrote: > > On Wed, Apr 10, 2024 at 12:35:29PM +0200, Hans de Goede wrote: > >> On 3/26/24 9:27 PM, Andy Shevchenko wrote: ... > >> I'm going to merge this variant into my media-atomisp branch > >> instead of the orignal. > > > > Thanks! > > > > This explains why changelog made the commit message. > > Was it done deliberately? > > Oops, no that was by accident. I normally git send-email > + git am my patches and then git am cuts it off... > > I just send out a pull-request with this minor wart in it > (after testing), so unless there are other reasons to respin > I guess we'll have to live with it. You might check the linux-next scripts or ask Stephen if this is an issue. In any case we will know sooner or later :-) -- With Best Regards, Andy Shevchenko ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2024-04-10 13:49 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-03-26 20:27 [PATCH v1 0/2] media: atomisp: Fix and refactor PMIC I²C discovery Andy Shevchenko 2024-03-26 20:27 ` [PATCH v1 1/2] media: atomisp: Put PMIC device after getting its I²C address Andy Shevchenko 2024-04-10 10:41 ` Hans de Goede 2024-03-26 20:27 ` [PATCH v1 2/2] media: atomisp: Replace open-coded i2c_find_device_by_fwnode() Andy Shevchenko 2024-04-10 10:35 ` Hans de Goede 2024-04-10 13:35 ` Andy Shevchenko 2024-04-10 13:41 ` Hans de Goede 2024-04-10 13:49 ` Andy Shevchenko
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox