[Openchrome-devel] [PATCH v2] Properly use bitwise operators in viaProbePinStrapping

Mario Rugiero mrugiero at gmail.com
Tue Jun 21 04:51:13 UTC 2016


Your link isn't really valid in this context. The logical equivalence
applies to singular bits, not to a multibit value.
0x10 & 0x01 evaluates to 0x00 (== false), while 0x10 && 0x01 evaluates to
0x01 (a true value).
Those switch statements will always end up in cases 0 or 1.
Further, logical operators && and || are lazy, while bitwise operators &
and | are not.

Regards,
Mario.

2016-06-21 0:30 GMT-03:00 Kevin Brace <kevinbrace at gmx.com>:

> Hi Xavier,
>
> >
> > Signed-off-by: Xavier Bachelot <xavier at bachelot.org>
> > ---
> >  src/via_outputs.c | 24 ++++++++++++------------
> >  1 file changed, 12 insertions(+), 12 deletions(-)
> >
> > diff --git a/src/via_outputs.c b/src/via_outputs.c
> > index 7e21e8c..30602dd 100644
> > --- a/src/via_outputs.c
> > +++ b/src/via_outputs.c
> > @@ -1045,7 +1045,7 @@ viaProbePinStrapping(ScrnInfoPtr pScrn)
> >          /* 3C5.12[4] - FPD17 pin strapping
> >           *             0: TMDS transmitter (DVI) / capture device
> >           *             1: Flat panel */
> > -        if (sr12 && 0x10) {
> > +        if (sr12 & 0x10) {
> >              xf86DrvMsg(pScrn->scrnIndex, X_INFO,
> >                          "A flat panel is connected to "
> >                          "flat panel interface.\n");
> > @@ -1065,7 +1065,7 @@ viaProbePinStrapping(ScrnInfoPtr pScrn)
> >          /* 3C5.12[5] - FPD18 pin strapping
> >           *             0: TMDS transmitter (DVI)
> >           *             1: TV encoder */
> > -        if (sr12 && 0x20) {
> > +        if (sr12 & 0x20) {
> >              xf86DrvMsg(pScrn->scrnIndex, X_INFO,
> >                          "A TMDS transmitter (DVI) is connected to "
> >                          "DVI port.\n");
> > @@ -1079,17 +1079,17 @@ viaProbePinStrapping(ScrnInfoPtr pScrn)
> >               *               01: NTSC
> >               *               10: PAL-N
> >               *               11: PAL-NC */
> > -            if (sr13 && 0x04) {
> > +            if (sr13 & 0x04) {
> >                  xf86DrvMsg(pScrn->scrnIndex, X_INFO,
> >                              "NTSC for the TV encoder.\n");
> >              } else {
> > -                if (!(sr13 && 0x08)) {
> > +                if (!(sr13 & 0x08)) {
> >                      xf86DrvMsg(pScrn->scrnIndex, X_INFO,
> >                                  "PAL for the TV encoder.\n");
> >                  } else {
> >                      xf86DrvMsg(pScrn->scrnIndex, X_INFO,
> >                                  "PAL%s for the TV encoder.\n",
> > -                                sr13 && 0x04 ? "-NC" : "-N");
> > +                                sr13 & 0x04 ? "-NC" : "-N");
> >                  }
> >              }
> >  @@ -1098,7 +1098,7 @@ viaProbePinStrapping(ScrnInfoPtr pScrn)
> >               *             1: 625 lines (PAL) */
> >              xf86DrvMsg(pScrn->scrnIndex, X_INFO,
> >                          "%s lines for the TV encoder.\n",
> > -                        sr12 && 0x40 ? "625" : "525");
> > +                        sr12 & 0x40 ? "625" : "525");
> >          }
> >           break;
> > @@ -1112,12 +1112,12 @@ viaProbePinStrapping(ScrnInfoPtr pScrn)
> >           *                DVI or TV out use
> >           *             1: Enable DVP0 (Digital Video Port 0) for
> >           *                DVI or TV out use */
> > -        if (sr12 && 0x40) {
> > +        if (sr12 & 0x40) {
> >               /* 3C5.12[5] - DVP0D5 pin strapping
> >               *             0: TMDS transmitter (DVI)
> >               *             1: TV encoder */
> > -            if (sr12 && 0x20) {
> > +            if (sr12 & 0x20) {
> >                  xf86DrvMsg(pScrn->scrnIndex, X_INFO,
> >                              "A TV encoder is detected on "
> >                              "DVP0 (Digital Video Port 0).\n");
> > @@ -1133,12 +1133,12 @@ viaProbePinStrapping(ScrnInfoPtr pScrn)
> >           *             0: AGP pins are used for AGP
> >           *             1: AGP pins are used by FPDP
> >           *             (Flat Panel Display Port) */
> > -        if (sr13 && 0x08) {
> > +        if (sr13 & 0x08) {
> >               /* 3C5.12[4] - DVP0D4 pin strapping
> >               *             0: Dual 12-bit FPDP (Flat Panel Display Port)
> >               *             1: 24-bit FPDP  (Flat Panel Display Port) */
> > -            if (sr12 && 0x10) {
> > +            if (sr12 & 0x10) {
> >                  xf86DrvMsg(pScrn->scrnIndex, X_INFO,
> >                              "24-bit FPDP (Flat Panel Display Port) "
> >                              "detected.\n");
> > @@ -1159,7 +1159,7 @@ viaProbePinStrapping(ScrnInfoPtr pScrn)
> >                   * 3C5.12[5] - DVP0D5 pin strapping
> >                   *             0: TMDS transmitter (DVI)
> >                   *             1: TV encoder */
> > -                if ((!(sr12 && 0x40)) && (!(sr12 && 0x20))) {
> > +                if ((!(sr12 & 0x40)) && (!(sr12 & 0x20))) {
> >                      xf86DrvMsg(pScrn->scrnIndex, X_INFO,
> >                                  "A TV encoder is connected to "
> >                                  "FPDP (Flat Panel Display Port).\n");
> > @@ -1206,7 +1206,7 @@ viaProbePinStrapping(ScrnInfoPtr pScrn)
> >           *               01: DVI + LVDS2
> >           *               10: Dual LVDS Channel (High Resolution Panel)
> >           *               11: One DVI only (decrease the clock jitter) */
> > -        switch (sr13 && 0xC0) {
> > +        switch (sr13 & 0xC0) {
> >          case 0x00:
> >              xf86DrvMsg(pScrn->scrnIndex, X_INFO,
> >                          "LVDS1 + LVDS2 detected.\n");
> > --
> > 2.5.5
> >
> >
>
>
> I am rejecting the inclusion of the patch.
> See the below website.
>
> https://en.wikipedia.org/wiki/Bitwise_operations_in_C#Logical_equivalents
>
> I handled the matter correctly.
>
> Regards,
>
> Kevin Brace
> _______________________________________________
> Openchrome-devel mailing list
> Openchrome-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/openchrome-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/openchrome-devel/attachments/20160621/c84fd215/attachment-0001.html>


More information about the Openchrome-devel mailing list