This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: atomisp: Get rid of PCI device ID hack check
Author:  Andy Shevchenko <andriy.shevche...@linux.intel.com>
Date:    Tue Apr 2 21:44:47 2024 +0100

Always check exact PCI ID match and drop hack checks.

Link: 
https://lore.kernel.org/r/20240402204447.294280-1-andriy.shevche...@linux.intel.com

Signed-off-by: Andy Shevchenko <andriy.shevche...@linux.intel.com>
Signed-off-by: Hans de Goede <hdego...@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mche...@kernel.org>

 .../staging/media/atomisp/pci/atomisp_internal.h   |  3 +-
 drivers/staging/media/atomisp/pci/atomisp_v4l2.c   | 40 +++++++++++-----------
 2 files changed, 21 insertions(+), 22 deletions(-)

---

diff --git a/drivers/staging/media/atomisp/pci/atomisp_internal.h 
b/drivers/staging/media/atomisp/pci/atomisp_internal.h
index ca8ed3a6b9b8..d6e86d013be9 100644
--- a/drivers/staging/media/atomisp/pci/atomisp_internal.h
+++ b/drivers/staging/media/atomisp/pci/atomisp_internal.h
@@ -49,14 +49,13 @@
        (((isp)->media_dev.hw_revision & ATOMISP_HW_REVISION_MASK) == \
         ((rev) << ATOMISP_HW_REVISION_SHIFT))
 
-#define ATOMISP_PCI_DEVICE_SOC_MASK    0xfff8
+#define ATOMISP_PCI_DEVICE_SOC_BYT     0x0f38
 /* MRFLD with 0x1178: ISP freq can burst to 457MHz */
 #define ATOMISP_PCI_DEVICE_SOC_MRFLD   0x1178
 /* MRFLD with 0x1179: max ISP freq limited to 400MHz */
 #define ATOMISP_PCI_DEVICE_SOC_MRFLD_1179      0x1179
 /* MRFLD with 0x117a: max ISP freq is 400MHz and max freq at Vmin is 200MHz */
 #define ATOMISP_PCI_DEVICE_SOC_MRFLD_117A      0x117a
-#define ATOMISP_PCI_DEVICE_SOC_BYT     0x0f38
 #define ATOMISP_PCI_DEVICE_SOC_ANN     0x1478
 #define ATOMISP_PCI_DEVICE_SOC_CHT     0x22b8
 
diff --git a/drivers/staging/media/atomisp/pci/atomisp_v4l2.c 
b/drivers/staging/media/atomisp/pci/atomisp_v4l2.c
index 7f702b151704..1d7d38e2f904 100644
--- a/drivers/staging/media/atomisp/pci/atomisp_v4l2.c
+++ b/drivers/staging/media/atomisp/pci/atomisp_v4l2.c
@@ -1226,7 +1226,8 @@ static int atomisp_pci_probe(struct pci_dev *pdev, const 
struct pci_device_id *i
        const struct atomisp_platform_data *pdata;
        struct atomisp_device *isp;
        unsigned int start;
-       int err, val;
+       u32 val;
+       int err;
 
        /* Pointer to struct device. */
        atomisp_dev = &pdev->dev;
@@ -1254,8 +1255,10 @@ static int atomisp_pci_probe(struct pci_dev *pdev, const 
struct pci_device_id *i
 
        pci_set_drvdata(pdev, isp);
 
-       switch (id->device & ATOMISP_PCI_DEVICE_SOC_MASK) {
+       switch (id->device) {
        case ATOMISP_PCI_DEVICE_SOC_MRFLD:
+       case ATOMISP_PCI_DEVICE_SOC_MRFLD_1179:
+       case ATOMISP_PCI_DEVICE_SOC_MRFLD_117A:
                isp->media_dev.hw_revision =
                    (ATOMISP_HW_REVISION_ISP2400
                     << ATOMISP_HW_REVISION_SHIFT) |
@@ -1408,28 +1411,25 @@ static int atomisp_pci_probe(struct pci_dev *pdev, 
const struct pci_device_id *i
         */
        atomisp_css2_hw_store_32(MRFLD_CSI_RECEIVER_SELECTION_REG, 1);
 
-       if ((id->device & ATOMISP_PCI_DEVICE_SOC_MASK) ==
-           ATOMISP_PCI_DEVICE_SOC_MRFLD) {
-               u32 csi_afe_trim;
-
+       switch (id->device) {
+       case ATOMISP_PCI_DEVICE_SOC_MRFLD:
+       case ATOMISP_PCI_DEVICE_SOC_MRFLD_1179:
+       case ATOMISP_PCI_DEVICE_SOC_MRFLD_117A:
                /*
                 * Workaround for imbalance data eye issue which is observed
                 * on TNG B0.
                 */
-               pci_read_config_dword(pdev, MRFLD_PCI_CSI_AFE_TRIM_CONTROL, 
&csi_afe_trim);
-               csi_afe_trim &= ~((MRFLD_PCI_CSI_HSRXCLKTRIM_MASK <<
-                                  MRFLD_PCI_CSI1_HSRXCLKTRIM_SHIFT) |
-                                 (MRFLD_PCI_CSI_HSRXCLKTRIM_MASK <<
-                                  MRFLD_PCI_CSI2_HSRXCLKTRIM_SHIFT) |
-                                 (MRFLD_PCI_CSI_HSRXCLKTRIM_MASK <<
-                                  MRFLD_PCI_CSI3_HSRXCLKTRIM_SHIFT));
-               csi_afe_trim |= (MRFLD_PCI_CSI1_HSRXCLKTRIM <<
-                                MRFLD_PCI_CSI1_HSRXCLKTRIM_SHIFT) |
-                               (MRFLD_PCI_CSI2_HSRXCLKTRIM <<
-                                MRFLD_PCI_CSI2_HSRXCLKTRIM_SHIFT) |
-                               (MRFLD_PCI_CSI3_HSRXCLKTRIM <<
-                                MRFLD_PCI_CSI3_HSRXCLKTRIM_SHIFT);
-               pci_write_config_dword(pdev, MRFLD_PCI_CSI_AFE_TRIM_CONTROL, 
csi_afe_trim);
+               pci_read_config_dword(pdev, MRFLD_PCI_CSI_AFE_TRIM_CONTROL, 
&val);
+               val &= ~((MRFLD_PCI_CSI_HSRXCLKTRIM_MASK << 
MRFLD_PCI_CSI1_HSRXCLKTRIM_SHIFT) |
+                        (MRFLD_PCI_CSI_HSRXCLKTRIM_MASK << 
MRFLD_PCI_CSI2_HSRXCLKTRIM_SHIFT) |
+                        (MRFLD_PCI_CSI_HSRXCLKTRIM_MASK << 
MRFLD_PCI_CSI3_HSRXCLKTRIM_SHIFT));
+               val |= (MRFLD_PCI_CSI1_HSRXCLKTRIM << 
MRFLD_PCI_CSI1_HSRXCLKTRIM_SHIFT) |
+                      (MRFLD_PCI_CSI2_HSRXCLKTRIM << 
MRFLD_PCI_CSI2_HSRXCLKTRIM_SHIFT) |
+                      (MRFLD_PCI_CSI3_HSRXCLKTRIM << 
MRFLD_PCI_CSI3_HSRXCLKTRIM_SHIFT);
+               pci_write_config_dword(pdev, MRFLD_PCI_CSI_AFE_TRIM_CONTROL, 
val);
+               break;
+       default:
+               break;
        }
 
        err = atomisp_initialize_modules(isp);

Reply via email to